Nearby Search (nueva)

Selecciona la plataforma: Android iOS JavaScript Servicio web

Una búsqueda de Nearby (nuevo) toma uno o más tipos de sitios y devuelve una lista de lugares coincidentes dentro de en un área específica. Es una máscara de campo que especifica uno o más tipos de datos. es obligatorio. Nearby Search (nueva) solo admite solicitudes POST.

El Explorador de APIs te permite realizar solicitudes en tiempo real para que puedas familiarizarte con la API y el Opciones de API:

Pruébalo

Prueba la función interactiva demo para ver los resultados de Nearby Search (nuevo) en un mapa.

Solicitudes de Nearby Search (nuevo)

Una solicitud de búsqueda de sitios cercanos (nueva) es una solicitud HTTP POST a una URL en la formulario:

https://places.googleapis.com/v1/places:searchNearby

Pasa todos los parámetros en el cuerpo de la solicitud JSON o en los encabezados como parte del POST. Por ejemplo:

curl -X POST -d '{
  "includedTypes": ["restaurant"],
  "maxResultCount": 10,
  "locationRestriction": {
    "circle": {
      "center": {
        "latitude": 37.7937,
        "longitude": -122.3965},
      "radius": 500.0
    }
  }
}' \
-H 'Content-Type: application/json' -H "X-Goog-Api-Key: API_KEY" \
-H "X-Goog-FieldMask: places.displayName" \
https://places.googleapis.com/v1/places:searchNearby

Respuestas de Nearby Search (nuevo)

Nearby Search (nueva) devuelve un un objeto JSON como respuesta. En la respuesta, figura lo siguiente:

  • El array places contiene todos los lugares que coinciden.
  • Cada lugar del conjunto está representado por un Place . El objeto Place contiene información detallada sobre un solo en un lugar específico.
  • La FieldMask pasada en la solicitud especifica la lista de campos. que se muestra en el objeto Place.

El objeto JSON completo tiene el siguiente formato:

{
  "places": [
    {
      object (Place)
    }
  ]
}

Parámetros obligatorios

  • FieldMask

    Especifica la lista de campos que se deben mostrar en la respuesta creando un máscara de campo de respuesta. Pasa la máscara de campo de respuesta al método con el parámetro de URL $fields o fields, o mediante el encabezado HTTP X-Goog-FieldMask No hay una lista predeterminada de los campos mostrados en la respuesta. Si omites la máscara de campo, el método mostrará un error.

    El enmascaramiento de campo es una práctica de diseño recomendada para asegurarse de no solicitar datos innecesarios, lo que ayuda a evitar tiempos de procesamiento y cargos de facturación.

    Especifica una lista separada por comas de los tipos de datos de lugar que deseas que se muestren. Por ejemplo: para recuperar el nombre visible y la dirección del lugar.

    X-Goog-FieldMask: places.displayName,places.formattedAddress

    Usa * para recuperar todos los campos.

    X-Goog-FieldMask: *

    Especifica uno o más de los siguientes campos:

    • Los siguientes campos activan el SKU de Nearby Search (Basic):

      places.accessibilityOptions, places.addressComponents, places.adrFormatAddress, places.attributions, places.businessStatus, places.displayName, places.formattedAddress, places.googleMapsUri, places.iconBackgroundColor, places.iconMaskBaseUri, places.id, places.location, places.name*: places.photos, places.plusCode, places.primaryType, places.primaryTypeDisplayName, places.shortFormattedAddress, places.subDestinations, places.types, places.utcOffsetMinutes, places.viewport

      * El campo places.name contiene el nombre de recurso del lugar. en el formato places/PLACE_ID. Utiliza places.displayName para acceder al nombre del lugar en forma de texto.

    • Los siguientes campos activan el SKU de Nearby Search (Advanced):

      places.currentOpeningHours, places.currentSecondaryOpeningHours, places.internationalPhoneNumber, places.nationalPhoneNumber, places.priceLevel, places.rating, places.regularOpeningHours, places.regularSecondaryOpeningHours, places.userRatingCount, places.websiteUri

    • Los siguientes campos activan el SKU de Nearby Search (Preferred):

      places.allowsDogs, places.curbsidePickup, places.delivery, places.dineIn, places.editorialSummary, places.evChargeOptions, places.fuelOptions, places.goodForChildren, places.goodForGroups, places.goodForWatchingSports, places.liveMusic, places.menuForChildren, places.parkingOptions, places.paymentOptions, places.outdoorSeating, places.reservable, places.restroom, places.reviews, places.servesBeer, places.servesBreakfast, places.servesBrunch, places.servesCocktails, places.servesCoffee, places.servesDessert, places.servesDinner, places.servesLunch, places.servesVegetarianFood, places.servesWine, places.takeout

  • locationRestriction

    La región a buscar especificada como un círculo, definida por el punto central y el radio en metros. El radio debe ser de entre 0.0 y 50,000.0, inclusive. El radio predeterminado es 0.0. Debes configúralo en un valor superior a 0.0 en tu solicitud.

    Por ejemplo:

    "locationRestriction": {
      "circle": {
        "center": {
          "latitude": 37.7937,
          "longitude": -122.3965
        },
        "radius": 500.0
      }
    }

Parámetros opcionales

  • includeTypes/excludedTypes, includedPrimaryTypes/excludedPrimaryTypes

    Te permite especificar una lista de tipos de tipos Se usa la Tabla A para filtrar los resultados de la búsqueda. Se pueden especificar hasta 50 tipos en cada categoría de restricción de tipos.

    Un lugar solo puede tener un único tipo principal de los tipos Tabla A asociada con que la modifica. Por ejemplo, el tipo principal podría ser "mexican_restaurant" o "steak_house". Usa includedPrimaryTypes y excludedPrimaryTypes para filtrar los resultados el tipo principal de un lugar.

    Un lugar también puede tener varios valores de tipo de tipos Tabla A asociados con ella. Por ejemplo, un restaurante puede tener los siguientes tipos: "seafood_restaurant", "restaurant" y "food" "point_of_interest", "establishment". Usa includedTypes y excludedTypes para filtrar los resultados en la lista de tipos asociados con un lugar.

    Cuando especificas un tipo principal general, como "restaurant" o "hotel", la respuesta puede contener lugares con un tipo principal más específico que el especificado. Por ejemplo, puedes especificar que se incluya un tipo principal de "restaurant" La respuesta puede contener sitios con un tipo principal de "restaurant", pero la respuesta también puede contener lugares con un tipo principal, como "chinese_restaurant" o "seafood_restaurant".

    Si se especifica una búsqueda con varias restricciones de tipo, solo los lugares que satisfagan todas las restricciones. Por ejemplo, si especificas {"includedTypes": ["restaurant"], "excludedPrimaryTypes": ["steak_house"]}, el Los lugares que se muestran proporcionan servicios relacionados con "restaurant", pero no operan principalmente como "steak_house".

    includedTypes

    Una lista separada por comas de los tipos de lugares de la Tabla A que se buscarán. Si se omite este parámetro, se devuelven lugares de todos los tipos.

    excludedTypes

    Una lista separada por comas de los tipos de lugares de la Tabla A que deseas excluir de una búsqueda.

    Si especificas tanto includedTypes ( como "school") como excludedTypes (como "primary_school") en la solicitud y, luego, el incluye lugares categorizados como "school", pero no como "primary_school" La respuesta incluye lugares que coinciden con al menos uno de el includedTypes y ninguno de los excludedTypes.

    Si hay tipos en conflicto, como uno que aparezca en includedTypes y excludedTypes, se muestra un error INVALID_REQUEST.

    includedPrimaryTypes

    Una lista separada por comas de los tipos de lugares principales de la Tabla A que se incluirán en una búsqueda.

    excludedPrimaryTypes

    Una lista separada por comas de los tipos de lugares principales de la Tabla A que deseas excluir de una búsqueda.

    Si hay tipos principales en conflicto, como uno que aparezca en ambos includedPrimaryTypes y excludedPrimaryTypes, un Se muestra el error INVALID_ARGUMENT.

  • languageCode

    El idioma en el que se mostrarán los resultados.

    • Consulta la lista de idiomas compatibles. Google suele se actualizan los idiomas admitidos, por lo que es posible que esta lista no sea exhaustiva.
    • Si no se proporciona languageCode, la API se establece de forma predeterminada en en. Si especificas un código de idioma no válido, la API muestra un INVALID_ARGUMENT .
    • La API hace todo lo posible para proporcionar una dirección que sea legible tanto para el usuario como para locales. Para lograr ese objetivo, muestra direcciones en el idioma local, transliterado a un script legible por el usuario si es necesario, observando la idioma. Todas las demás direcciones se muestran en el idioma preferido. Los componentes de la dirección son y todas se devuelven en el mismo idioma, que se elige a partir del primer componente.
    • Si un nombre no está disponible en el idioma preferido, la API usa la coincidencia más cercana.
    • El idioma preferido tiene una pequeña influencia en el conjunto de resultados que elige la API. para devolver y el orden en el que se devuelven. El geocodificador interpreta las abreviaturas de forma diferente según el idioma, como las abreviaturas para los tipos de calle o los sinónimos que pueden ser válidos en un idioma, pero no en otro.
  • maxResultCount

    Especifica la cantidad máxima de resultados de lugares que se mostrarán. Debe ser un valor entre 1 y 20 (predeterminado), ambos incluidos.

  • rankPreference

    El tipo de clasificación que se usará. Si se omite este parámetro, los resultados se clasifican por popularidad. Puede ser una de las siguientes opciones:

    • POPULARITY (predeterminado) ordena los resultados según su popularidad.
    • DISTANCE ordena los resultados en forma ascendente por su distancia desde la ubicación especificada.
  • regionCode

    El código de región que se usa para dar formato a la respuesta, especificado como una valor de código CLDR de dos caracteres. No hay un valor predeterminado.

    Si el nombre del país del campo formattedAddress en la respuesta coincide con el regionCode, el código de país se omite de formattedAddress. Este parámetro no tiene efecto en adrFormatAddress, que siempre incluye el país. nombre o en shortFormattedAddress, que nunca lo incluye.

    La mayoría de los códigos CLDR son idénticos a códigos ISO 3166-1, con algunas excepciones notables. Por ejemplo, el ccTLD del Reino Unido es “uk” (.co.uk), mientras que el código ISO 3166-1 es "gb" (técnicamente para el del "Reino Unido de Gran Bretaña e Irlanda del Norte"). El parámetro puede afectar los resultados según la ley aplicable.

Ejemplos de Nearby Search (nuevo)

Buscar lugares de un mismo tipo

El siguiente ejemplo muestra una solicitud de Nearby Search (nuevo) para la pantalla nombres de todos los restaurantes dentro de un radio de 500 metros, definidos por circle:

curl -X POST -d '{
  "includedTypes": ["restaurant"],
  "maxResultCount": 10,
  "locationRestriction": {
    "circle": {
      "center": {
        "latitude": 37.7937,
        "longitude": -122.3965},
      "radius": 500.0
    }
  }
}' \
-H 'Content-Type: application/json' -H "X-Goog-Api-Key: API_KEY" \
-H "X-Goog-FieldMask: places.displayName" \
https://places.googleapis.com/v1/places:searchNearby

Ten en cuenta que el encabezado X-Goog-FieldMask especifica que la respuesta contiene los siguientes campos de datos: places.displayName. La respuesta se ve entonces en el formato:

{
  "places": [
    {
      "displayName": {
        "text": "La Mar Cocina Peruana",
        "languageCode": "en"
      }
    },
    {
      "displayName": {
        "text": "Kokkari Estiatorio",
        "languageCode": "en"
      }
    },
    {
      "displayName": {
        "text": "Harborview Restaurant & Bar",
        "languageCode": "en"
      }
    },
...
}

Agrega más tipos de datos a la máscara de campo para mostrar información adicional. Por ejemplo, agrega places.formattedAddress,places.types,places.websiteUri para incluir el la dirección, el tipo y la dirección web del restaurante en la respuesta:

curl -X POST -d '{
  "includedTypes": ["restaurant"],
  "maxResultCount": 10,
  "locationRestriction": {
    "circle": {
      "center": {
        "latitude": 37.7937,
        "longitude": -122.3965},
      "radius": 500.0
    }
  }
}' \
-H 'Content-Type: application/json' -H "X-Goog-Api-Key: API_KEY" \
-H "X-Goog-FieldMask: places.displayName,places.formattedAddress,places.types,places.websiteUri" \
https://places.googleapis.com/v1/places:searchNearby

La respuesta ahora tiene el siguiente formato:

{
  "places": [
    {
      "types": [
        "seafood_restaurant",
        "restaurant",
        "food",
        "point_of_interest",
        "establishment"
      ],
      "formattedAddress": "PIER 1 1/2 The Embarcadero N, San Francisco, CA 94105, USA",
      "websiteUri": "http://lamarsf.com/",
      "displayName": {
        "text": "La Mar Cocina Peruana",
        "languageCode": "en"
      }
    },
    {
      "types": [
        "greek_restaurant",
        "meal_takeaway",
        "restaurant",
        "food",
        "point_of_interest",
        "establishment"
      ],
      "formattedAddress": "200 Jackson St, San Francisco, CA 94111, USA",
      "websiteUri": "https://kokkari.com/",
      "displayName": {
        "text": "Kokkari Estiatorio",
        "languageCode": "en"
      }
    },
...
}

Encuentra lugares de varios tipos

En el siguiente ejemplo, se muestra una solicitud de Nearby Search (nuevo) para el los nombres visibles de todos los minimercados y las licorerías en un radio de 1000 metros del circle especificado:

curl -X POST -d '{
  "includedTypes": ["liquor_store", "convenience_store"],
  "maxResultCount": 10,
  "locationRestriction": {
    "circle": {
      "center": {
        "latitude": 37.7937,
        "longitude": -122.3965
      },
      "radius": 1000.0
    }
  }
}' \
-H 'Content-Type: application/json' -H "X-Goog-Api-Key: API_KEY" \
-H "X-Goog-FieldMask: places.displayName,places.primaryType,places.types" \
https://places.googleapis.com/v1/places:searchNearby
En este ejemplo, se agregan places.primaryType y places.types a la máscara de campo para que la respuesta incluya información sobre el tipo de cada lugar, lo que facilita la selección del el lugar correcto en los resultados.

En el siguiente ejemplo, se muestra una solicitud de Nearby Search (nuevo) para todos los lugares. de tipo "school", excepto todos los lugares del tipo "primary_school", clasificación de los resultados por distancia:

curl -X POST -d '{
  "includedTypes": ["school"],
  "excludedTypes": ["primary_school"],
  "maxResultCount": 10,
  "locationRestriction": {
    "circle": {
      "center": {
        "latitude": 37.7937,
        "longitude": -122.3965
      },
      "radius": 1000.0
    }
  },
  "rankPreference": "DISTANCE"
}' \
-H 'Content-Type: application/json' -H "X-Goog-Api-Key: API_KEY" \
-H "X-Goog-FieldMask: places.displayName" \
https://places.googleapis.com/v1/places:searchNearby

Buscar todos los lugares cerca de un área, clasificados por distancia

En el siguiente ejemplo, se muestra una solicitud de Nearby Search (nueva) para lugares cerca de un punto del centro de San Francisco. En este ejemplo, se incluye rankPreference. para clasificar los resultados por distancia:

curl -X POST -d '{
  "maxResultCount": 10,
  "rankPreference": "DISTANCE",
  "locationRestriction": {
    "circle": {
      "center": {
        "latitude": 37.7937,
        "longitude": -122.3965
      },
      "radius": 1000.0
    }
  }
}' \
-H 'Content-Type: application/json' -H "X-Goog-Api-Key: API_KEY" \
-H "X-Goog-FieldMask: places.displayName" \
https://places.googleapis.com/v1/places:searchNearby

Pruébalo

El Explorador de APIs te permite realizar solicitudes de muestra para que puedes familiarizarte con la API y sus opciones.

  1. Selecciona el ícono de la API, Expande el Explorador de APIs., en el lado derecho de la página.
  2. De manera opcional, expande Mostrar parámetros estándar y establece el parámetro fields a la máscara de campo.
  3. De manera opcional, edita el Cuerpo de la solicitud.
  4. Selecciona el botón Ejecutar. En la ventana emergente, elige la cuenta que deseas usar para realizar la solicitud.
  5. En el panel Explorador de APIs, selecciona el ícono de expansión, Expande el Explorador de APIs., para expandir la ventana del Explorador de API