Geocodificación usando Amazon Location - Amazon Location Service

Geocodificación usando Amazon Location

La geocodificación es un proceso que convierte texto como una dirección, una región, el nombre de una empresa o un punto de interés, en un conjunto de coordenadas geográficas. Puede usar los recursos del índice de ubicación para enviar solicitudes de geocodificación e incorporar los datos recuperados de la geocodificación para mostrarlos en un mapa para su aplicación web o móvil.

En esta sección, se explica cómo enviar una solicitud de geocodificación sencilla y cómo enviar solicitudes de geocodificación con especificaciones opcionales.

Geocodificación

Puede enviar una simple solicitud de geocodificación mediante la operación SearchPlaceIndexForText para convertir una dirección en un conjunto de coordenadas. Una solicitud simple contiene el siguiente parámetro obligatorio:

  • Text: una dirección, un nombre, una ciudad o una región para convertirlos en un conjunto de coordenadas. Por ejemplo, la cadena Any Town.

Para especificar un número máximo de resultados por página, utilice el siguiente parámetro opcional:

  • MaxResults: limita el número máximo de resultados devueltos en la respuesta a la consulta.

Puede usar la AWS CLI o las API de Amazon Location.

API

El siguiente ejemplo es una petición de SearchPlaceIndexForText para buscar en el recurso de índice de ubicación, índice de ubicación de ejemplo, una dirección, un nombre, una ciudad o una región denominada cualquier ciudad.

POST /places/v0/indexes/ExamplePlaceIndex/search/text Content-type: application/json { "Text": "Any Town", "MaxResults": 10 }
AWS CLI

El siguiente ejemplo es un comando de search-place-index-for-text para buscar en el recurso de índice de ubicación, índice de ubicación de ejemplo, una dirección, un nombre, una ciudad o una región denominada cualquier ciudad.

aws location \ search-place-index-for-text \ --index-name ExamplePlaceIndex \ --text "Any Town" \ --max-results 10

Geocodificar cerca de una posición

Al geocodificar, puede geocodificar cerca de una posición determinada con el siguiente parámetro opcional:

  • BiasPosition: la posición cercana a la que desea buscar. Esto reduce la búsqueda al buscar los resultados más cercanos a la posición dada. Definido como [longitude, latitude]

El siguiente ejemplo es una solicitud de SearchPlaceIndexForText para buscar en el recurso de índice de ubicación una dirección, nombre, ciudad o región denominada cualquier ciudad cercana a la posición [-123.4567, 45.6789].

POST /places/v0/indexes/ExamplePlaceIndex/search/text Content-type: application/json { "Text": "Any Town", "BiasPosition": [-123.4567,45.6789] }

Geocodificar dentro de un cuadro delimitador

Puede geocodificar dentro de un cuadro delimitador para limitar los resultados a las coordenadas dentro de un límite determinado mediante el siguiente parámetro opcional:

  • FilterBBox: un cuadro delimitador que se especifica para filtrar los resultados a las coordenadas que se encuentran dentro de los límites del cuadro. Definido como [LongitudeSW, LatitudeSW, LongitudeNE, LatitudeNE]

    nota

    Una solicitud no puede contener los parámetros FilterBBox y BiasPosition a la vez. Si se especifican ambos parámetros en la solicitud, se produce un error de ValidationException.

El siguiente ejemplo es una solicitud de SearchPlaceIndexForText para buscar dentro de un cuadro delimitador una dirección, nombre, ciudad o región denominada cualquier ciudad. El cuadro delimitador es el siguiente:

  • La longitud de la esquina suroeste es -124.1450.

  • La latitud de la esquina suroeste es 41.7045.

  • La longitud de la esquina noreste es −124.1387.

  • La latitud de la esquina noreste es 41.7096.

POST /places/v0/indexes/ExamplePlaceIndex/search/text Content-type: application/json { "Text": "Any Town", "FilterBBox": [ -124.1450,41.7045, -124.1387,41.7096 ] }

Geocodificar dentro de un país

Puede geocodificar en uno o más países que especifique mediante el siguiente parámetro opcional:

  • FilterCountries: el país o la región en los que desea geocodificar. Puede definir hasta 100 países en una solicitud utilizando un código de país de tres letras según el estándar ISO 3166. Por ejemplo, utilice AUS para Australia.

El siguiente ejemplo es una solicitud de SearchPlaceIndexForText para la búsqueda de una dirección, nombre, ciudad o región denominada cualquier ciudad en Alemania o Francia.

POST /places/v0/indexes/ExamplePlaceIndex/search/text Content-type: application/json { "Text": "Any Town", "FilterCountries": ["DEU","FRA"] }

Filtrar por categoría

Puede filtrar las categorías que se muestran en su solicitud de geocodificación mediante el siguiente parámetro opcional:

  • FilterCategories: las categorías de resultados que desea que se muestren en la consulta. Puede especificar hasta 5 categorías en una única solicitud. Puede encontrar la lista de categorías de Amazon Location Service en la sección Categorías. Por ejemplo, puede utilizar Hotel en la consulta para que se especifiquen solo los hoteles que regresan.

El siguiente ejemplo es una solicitud de SearchPlaceIndexForText para buscar una cafetería llamada Hometown Coffee en los Estados Unidos.

POST /places/v0/indexes/ExamplePlaceIndex/search/text Content-type: application/json { "Text": "Hometown Coffee", "FilterCategories": ["Coffee Shop"], "FilterCountries": ["USA"] }

Para obtener más información sobre el filtrado de categorías, consulte Categorías de lugar y filtrado de resultados con Amazon Location

Geocodifique en un idioma preferido

Puede establecer una preferencia de idioma para los resultados de la búsqueda mediante el parámetro opcional Language. Por ejemplo, es posible que 100 Main St, Anytown, USA devuelva una búsqueda de 100 Main St, Any Town, USA por defecto. Sin embargo, si selecciona fr como Language, es posible que los resultados aparezcan como 100 Rue Principale, Any Town, États-Unis en su lugar.

  • Language: un código de idioma que se utilizará para representar los resultados de la consulta. El valor debe ser un código de idioma BCP 47 válido. Por ejemplo, en para inglés.

nota

Si no se especifica el Language o el idioma especificado no es compatible con un resultado, se utilizará el idioma predeterminado del socio para ese resultado.

El siguiente ejemplo es una solicitud de SearchPlaceIndexforText para buscar un lugar llamado Any Town con el idioma preferido especificado como el de.

POST /places/v0/indexes/ExamplePlaceIndex/search/text Content-type: application/json { "Text": "Any Town", "Language": "de" }

Ejemplo de respuesta

El siguiente es un ejemplo de respuesta cuando llamas a la operación de SearchPlaceIndexForText desde las API de Amazon Location Places. Los resultados incluyen las ubicaciones relevantes y el resumen de la solicitud. Se muestran dos respuestas basadas en la selección de Esri o HERE como socio.

Example request
POST /places/v0/indexes/ExamplePlaceIndex/search/text Content-type: application/json { "Text": "Amazon", "MaxResults": 1, "FilterCountries": ["USA"], "BiasPosition": [-112.10, 46.32] }
Example response (Esri)
{ "Results": [ { "Place": { "Country": "USA", "Geometry": { "Point": [ -112.10667999999998, 46.319090000000074 ] }, "Interpolated": false, "Label": "Amazon, MT, USA", "Municipality": "Amazon", "Region": "Montana", "SubRegion": "Jefferson County" }, "Distance": 523.4619749879726, "Relevance": 1 } ], "Summary": { "BiasPosition": [ -112.1, 46.32 ], "DataSource": "Esri", "FilterCountries": [ "USA" ], "MaxResults": 1, "ResultBBox": [ -112.10667999999998, 46.319090000000074, -112.10667999999998, 46.319090000000074 ], "Text": "Amazon" } }
Example response (HERE)
{ "Summary": { "Text": "Amazon", "BiasPosition": [ -112.1, 46.32 ], "FilterCountries": [ "USA" ], "MaxResults": 1, "ResultBBox": [ -112.10668, 46.31909, -112.10668, 46.31909 ], "DataSource": "Here" }, "Results": [ { "Place": { "Label": "Amazon, Jefferson City, MT, United States", "Geometry": { "Point": [ -112.10668, 46.31909 ] }, "Neighborhood": "Amazon", "Municipality": "Jefferson City", "SubRegion": "Jefferson", "Region": "Montana", "Country": "USA", "Interpolated": false, "TimeZone": { "Name": "America/Denver", "Offset": -25200 } }, "PlaceId": "AQAAAIAADsn2T3KdrRWeaXLeVEyjNx_JfeTsMB0NVCEAnAZoJ-o3nqdlJZAdgcT2oWi1w9pS4wXXOk3O1vsKlGsPyHjV4EJxsu289i3hVO_BUPgP7SFoWAi8BW2v7LvAjQ5NfUPy7a1v9ajT3feIqcUZszWSTqKbJHFYvQqW7wdqhpQq3Wy-et39ZQDWSPLZUzgcjN-6VD2gyKkH0Po7gSm8YSJNSQ", "Distance": 523.4619749905755 } ] }