Freigeben über


Azure Maps Search-Clientbibliothek für JavaScript – Version 1.0.0-beta.2

/Typescript

Beim Azure Maps-Suchdienst handelt es sich um eine Gruppe von RESTful-APIs, die Entwickler bei der Suche nach Adressen, Orten, Brancheneinträgen (nach Name oder Kategorie) und weiteren geografischen Informationen unterstützen. Zusätzlich zur Unterstützung der traditionellen Geocodierung kann mit den Diensten eine inverse Geocodierung für Adressen und Querstraßen basierend auf Breiten- und Längengraden durchgeführt werden. Die bei der Suche zurückgegebenen Werte für den Breiten- und Längengrad können als Parameter in anderen Azure Maps-Diensten verwendet werden, beispielsweise in den Diensten für Routen und Wetter.

Dieses Paket enthält ein isomorphes SDK (wird sowohl in Node.js als auch in Browsern ausgeführt) für Azure Maps Search-Client.

Quellcode | Paket (NPM) | Proben | Produktinformationen

Erste Schritte

Die derzeitig unterstützten Umgebungen

Voraussetzungen

Wenn Sie die Azure CLI verwenden, ersetzen <resource-group-name> Sie und <map-account-name> Ihrer Wahl, und wählen Sie einen geeigneten Tarif basierend auf Ihren Anforderungen über den <sku-name> Parameter aus. Weitere Informationen finden Sie auf dieser Seite.

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

Installieren Sie das Paket @azure/maps-search.

Installieren Sie die Azure Maps Search-Clientbibliothek mit npm:

npm install @azure/maps-search

Erstellen und Authentifizieren eines MapsSearchClient

Um ein Clientobjekt für den Zugriff auf die Azure Maps-Such-APIs zu erstellen, benötigen Sie ein credential -Objekt. Der Azure Maps Search-Client kann azure Active Directory-Anmeldeinformationen oder Azure Key-Anmeldeinformationen für die Authentifizierung verwenden.

Verwenden von Azure Active Directory-Anmeldeinformationen

Sie können sich mit Azure Active Directory mithilfe der Azure Identity-Bibliothek authentifizieren. Um den unten gezeigten DefaultAzureCredential-Anbieter oder andere Anmeldeinformationsanbieter zu verwenden, die mit dem Azure SDK bereitgestellt werden, installieren Sie das @azure/identity Paket:

npm install @azure/identity

Außerdem müssen Sie eine neue AAD-Anwendung registrieren und Zugriff auf Azure Maps gewähren, indem Sie Ihrem Dienstprinzipal die geeignete Rolle zuweisen. Weitere Informationen finden Sie auf der Seite Authentifizierung verwalten .

Legen Sie die Werte der Client-ID, der Mandanten-ID und des geheimen Clientschlüssels der AAD-Anwendung als Umgebungsvariablen fest: AZURE_CLIENT_ID, AZURE_TENANT_ID, AZURE_CLIENT_SECRET.

Sie müssen auch die Azure Maps Ressource angeben, die Sie verwenden möchten, indem Sie in clientId den Clientoptionen angeben. Die Azure Maps Ressourcenclient-ID finden Sie in den Abschnitten Authentifizierung in der Azure Maps-Ressource. Informationen zur Suche finden Sie in der Dokumentation .

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

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

Verwenden von Anmeldeinformationen für Abonnementschlüssel

Sie können sich mit Ihrem Azure Maps-Abonnementschlüssel authentifizieren.

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

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

Wichtige Begriffe

MapsSearchClient

MapsSearchClientist die primäre Schnittstelle für Entwickler, die die Azure Maps Search-Clientbibliothek verwenden. Erkunden Sie die Methoden für dieses Clientobjekt, um die verschiedenen Features der Azure Maps Suchdienst zu verstehen, auf die Sie zugreifen können.

Beispiele

Die folgenden Abschnitte enthalten mehrere Codeausschnitte, die einige der gängigsten Azure Maps Suchaufgaben abdecken, einschließlich:

Anfordern von Breiten- und Längengradkoordinaten für eine Adresse

Sie können einen authentifizierten Client verwenden, um eine Adresse in Breiten- und Längengradkoordinaten zu konvertieren. Dieser Vorgang wird auch als Geocodierung bezeichnet. Zusätzlich zu den Koordinaten werden in der Antwort auch detaillierte Adressinformationen zurückgegeben, darunter beispielsweise Straße, Postleitzahl, Gemeinde und Land/Region.

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

Suchen nach einer Adresse oder einem Point of Interest

Sie können die Fuzzysuche verwenden, um eine Adresse oder einen Point of Interest (POI) zu suchen. Im folgenden Beispiel wird veranschaulicht, wie Sie im Bereich eines bestimmten Landes (Francein diesem Beispiel) nach suchenpizza.

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

Erstellen einer Reverse-Adresssuche zum Übersetzen des Koordinatenstandorts in die Adresse

Sie können Koordinaten in lesbare Straßenadressen übersetzen. Dieser Prozess wird auch als reverse Geocodierung bezeichnet. Dies wird häufig für Anwendungen verwendet, die GPS-Feeds nutzen und Adressen an bestimmten Koordinatenpunkten ermitteln möchten.

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

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

Übersetzen der Koordinatenposition in eine menschlich verständliche Kreuzstraße

Übersetzen der Koordinaten in ein von Menschen lesbares Format nach Querstraßen mithilfe der API für die inverse Adresssuche nach Querstraßen Diese Funktion wird meistens in Trackinganwendungen benötigt, die einen GPS-Feed von einem Gerät oder einer Ressource empfangen und Adressen an bestimmten Koordinatenpunkten ermitteln sollen.

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

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

Problembehandlung

Protokollierung

Die Aktivierung der Protokollierung kann hilfreiche Informationen über Fehler aufdecken. Um ein Protokoll von HTTP-Anforderungen und -Antworten anzuzeigen, legen Sie die Umgebungsvariable AZURE_LOG_LEVEL auf info fest. Alternativ kann die Protokollierung zur Laufzeit aktiviert werden, indem Sie setLogLevel in @azure/logger aufrufen:

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

Ausführlichere Anweisungen zum Aktivieren von Protokollen finden Sie in der Paketdokumentation zu @azure/logger.

Nächste Schritte

Ausführliche Beispiele zur Verwendung dieser Bibliothek finden Sie im Beispielverzeichnis .

Mitwirken

Wenn Sie an dieser Bibliothek mitwirken möchten, lesen Sie die Anleitung für Mitwirkende, um mehr darüber zu erfahren, wie Sie den Code erstellen und testen können.

Aufrufe