Share via


biblioteca cliente de Azure Maps Search para JavaScript: versión 1.0.0-beta.2

/TypeScript

El servicio Search de Azure Maps es un conjunto de API de RESTful diseñadas para que los desarrolladores busquen direcciones, lugares y listados de empresas por nombre y categoría u otra información geográfica. Además de permitir la geocodificación tradicional, los servicios pueden realizar también la geocodificación inversa de direcciones y calles transversales en función de la longitud y la latitud. Los valores de latitud y longitud devueltos por la búsqueda se pueden usar como parámetros en otros servicios de Azure Maps, como los servicios de ruta y tiempo.

Este paquete contiene un SDK isomórfico (se ejecuta tanto en Node.js como en exploradores) para Azure Maps cliente search.

Código | fuente Paquete (NPM) | Muestras | Información del producto

Introducción

Entornos admitidos actualmente

Prerrequisitos

Si usa la CLI de Azure, reemplace <resource-group-name> y <map-account-name> elija y seleccione un plan de tarifa adecuado en función de sus necesidades a través del <sku-name> parámetro . Consulte esta página para obtener más detalles.

az maps account create --resource-group <resource-group-name> --name <map-account-name> --sku <sku-name>

Instalar el paquete @azure/maps-search

Instale la biblioteca cliente de Azure Maps Search con npm:

npm install @azure/maps-search

Crear y autenticar una MapsSearchClient

Para crear un objeto de cliente para acceder a las API de Azure Maps Search, necesitará un credential objeto . El cliente de Azure Maps Search puede usar una credencial de Azure Active Directory o una credencial de clave de Azure para autenticarse.

Uso de una credencial de Azure Active Directory

Puede autenticarse con Azure Active Directory mediante la biblioteca de identidades de Azure. Para usar el proveedor DefaultAzureCredential que se muestra a continuación u otros proveedores de credenciales proporcionados con el SDK de Azure, instale el @azure/identity paquete:

npm install @azure/identity

También deberá registrar una nueva aplicación de AAD y conceder acceso a Azure Maps mediante la asignación del rol adecuado a la entidad de servicio. Consulte la página Administrar autenticación .

Establezca los valores del identificador de cliente, el identificador de inquilino y el secreto de cliente de la aplicación de AAD como variables de entorno: AZURE_CLIENT_ID, AZURE_TENANT_ID, AZURE_CLIENT_SECRET.

También deberá especificar el recurso de Azure Maps que desea usar especificando en clientId las opciones de cliente. El identificador de cliente de recursos Azure Maps se puede encontrar en las secciones Autenticación del recurso Azure Maps. Consulte la documentación sobre cómo encontrarlo.

const { MapsSearchClient } = require("@azure/maps-search");
const { DefaultAzureCredential } = require("@azure/identity");

const credential = new DefaultAzureCredential();
const client = new MapsSearchClient(credential, "<maps-account-client-id>");

Uso de una credencial de clave de suscripción

Puede autenticarse con la clave de suscripción de Azure Maps.

const { MapsSearchClient, AzureKeyCredential } = require("@azure/maps-search");

const credential = new AzureKeyCredential("<subscription-key>");
const client = new MapsSearchClient(credential);

Conceptos clave

MapsSearchClient

MapsSearchClientes la interfaz principal para los desarrolladores que usan la biblioteca cliente de Azure Maps Search. Explore los métodos de este objeto de cliente para comprender las distintas características de la Azure Maps servicio Search a la que puede acceder.

Ejemplos

En las secciones siguientes se proporcionan varios fragmentos de código que abarcan algunas de las tareas de búsqueda de Azure Maps más comunes, entre las que se incluyen:

Solicitar coordenadas de latitud y longitud para una dirección

Puede usar un cliente autenticado para convertir una dirección en coordenadas de latitud y longitud. Este proceso también se denomina geocodificación. Además de devolver las coordenadas, la respuesta también devolverá propiedades de dirección detalladas como la calle, el código postal, el municipio y la información de país o región.

const searchResult = await client.searchAddress("400 Broad, Seattle");
for (const {
  position: { lat, lon },
} of searchResult.results) {
  console.log(`Latitude: ${lat}, Longitude: ${lon}`);
}

Buscar una dirección o un punto de interés

Puede usar la búsqueda aproximada para buscar una dirección o un punto de interés (POI). En el ejemplo siguiente se muestra cómo buscar pizza en el ámbito de un país específico (Franceen este ejemplo).

const fuzzySearchResult = await client.fuzzySearch({ query: "pizza", countryCodeFilter: ["fr"] });
for (const result of fuzzySearchResult.results) {
  console.log(result);
}

Realizar una búsqueda de direcciones inversas para traducir la ubicación de coordenadas a la dirección postal

Puede traducir las coordenadas en direcciones postales legibles humanas. Este proceso también se denomina geocodificación inversa. Esto se usa a menudo para aplicaciones que consumen fuentes GPS y quieren detectar direcciones en puntos de coordenadas específicos.

const coordinates: LatLon = [47.59118, -122.3327]; // [latitude, longitude]

const { addresses } = await client.reverseSearchAddress(coordinates);
for (const { address } of addresses) {
  console.log(address);
}

Traducción de la ubicación de coordenadas en una calle cruzada comprensible

Traducir la ubicación de coordenadas a una calle transversal que pueda entender cualquier persona mediante Search Address Reverse Cross Street API. Por lo general, esto es necesario en las aplicaciones de seguimiento que reciben una fuente GPS de un dispositivo o recurso y desea saber en qué dirección se encuentra en la coordenada.

const coordinates: LatLon = [47.59118, -122.3327];

const { addresses } = await client.reverseSearchCrossStreetAddress(coordinates);
for (const { address } of addresses) {
  console.log(address);
}

Solución de problemas

Registro

La habilitación del registro puede ayudar a descubrir información útil sobre los errores. Para ver un registro de solicitudes y respuestas HTTP, establezca la variable de entorno AZURE_LOG_LEVEL en info. Como alternativa, el registro se puede habilitar en tiempo de ejecución llamando a setLogLevel en @azure/logger:

const { setLogLevel } = require("@azure/logger");
setLogLevel("info");

Para obtener instrucciones más detalladas sobre cómo habilitar los registros, consulte los documentos del paquete @azure/logger.

Pasos siguientes

Eche un vistazo al directorio de ejemplos para obtener ejemplos detallados sobre cómo usar esta biblioteca.

Contribuciones

Si desea contribuir a esta biblioteca, lea la guía de contribución para obtener más información sobre cómo compilar y probar el código.

Impresiones