Suchen nach einem Ort mit dem Suchdienst von Azure Maps

Beim Suchdienst handelt es sich um eine Gruppe von RESTful-APIs, die Entwickler bei der Suche nach Adressen, Orten und Brancheneinträgen nach Name, Kategorie und anderen 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. Breiten- und Längengradwerte, die von der Suche zurückgegeben werden, können als Parameter in anderen Azure Karten-Diensten wie Route und Wetter verwendet werden.

Dieser Artikel demonstriert Folgendes:

  • Anfordern von Breitengrad- und Längengradkoordinaten für eine Adresse (Adressposition für Geocodierung) mithilfe von Adresse suchen.
  • Suchen nach einer Adresse oder einem Point of Interest (POI) mithilfe der Fuzzysuche.
  • Verwenden von Reverse Address Search (inverse Adresssuche), um den Koordinatenpositionen in eine Straßenadresse zu übersetzen.
  • Übersetzen Sie die Koordinatenposition mithilfe von Search Address Reverse Cross Street (Suchadresse für Querstraße invers) in eine für Menschen verständliche Straßenüberquerung, die am häufigsten in Tracking-Anwendungen benötigt wird, die einen GPS-Feed von einem Gerät oder Medienobjekt empfangen, und möchten wissen, wo sich die Koordinate befindet.

Voraussetzungen

In diesem Tutorial wird die Anwendung Postman verwendet. Sie können aber auch eine andere API-Entwicklungsumgebung verwenden.

Anfordern des Breiten- und Längengrads für eine Adresse (Geocodierung)

Im Beispiel in diesem Abschnitt wird Get Search Address (Abrufen der Adresssuche) verwendet, um eine Adresse in Breitengrad- 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.

Tipp

Wenn Sie über eine Gruppe von Adressen für die Geocodierung verfügen, können Post Search Address Batch (Batchadresssuche posten) verwenden, um einen Batch von Abfragen in einer einzigen Anforderung zu senden.

  1. Klicken Sie in der Postman-App auf Neu, um die Anforderung zu erstellen. Wählen Sie im Fenster Create New (Neu erstellen) die Option HTTP Request (HTTP-Anforderung) aus. Geben Sie einen Anforderungsnamen (Request name) ein.

  2. Wählen Sie auf der Registerkarte „Builder“ (Generator) die HTTP-Methode GET aus, und geben Sie die folgende URL ein. In dieser Anforderung suchen wir nach einer bestimmten Adresse: 400 Braod St, Seattle, WA 98109. Ersetzen Sie {Your-Azure-Maps-Subscription-key} bei dieser Anforderung sowie bei den anderen in diesem Artikel angegebenen Anforderungen durch Ihren Azure Maps-Abonnementschlüssel.

    https://atlas.microsoft.com/search/address/json?&subscription-key={Your-Azure-Maps-Subscription-key}&api-version=1.0&language=en-US&query=400 Broad St, Seattle, WA 98109
    
  3. Wählen Sie die blaue Schaltfläche Senden aus. Der Antworttext enthält Daten für einen einzelnen Standort.

  4. Dann suchen wir nach einer Adresse mit mehr als einem möglichen Standort. Ändern Sie im Abschnitt Params den Schlüssel query in 400 Broad, Seattle. Wählen Sie die blaue Schaltfläche Senden aus.

    Search for address

  5. Legen Sie als Nächstes den Schlüssel queryauf 400 Broa fest.

  6. Wählen Sie die Schaltfläche Send (Senden) aus. Die Antwort umfasst Ergebnisse aus mehreren Ländern/Regionen. Fügen Sie der Anforderung immer so viele Standortangaben wie möglich hinzu, damit die Ergebnisse dem für Ihren Benutzer relevanten geografischen Bereich entsprechen.

Fuzzy Search (Fuzzysuche) unterstützt einzeilige Standardsuchen und Freiformsuchen. Es wird empfohlen, die Azure Maps-API für die Fuzzysuche zu verwenden, wenn Sie den Benutzereingabetyp für eine Suchabfrage nicht kennen. Die Abfrageeingabe kann eine vollständige oder eine unvollständige Adresse sein. Es kann sich auch um ein POI-Token (Point of Interest) handeln, z. B. einen POI-Namen, eine POI-Kategorie oder einen Markennamen. Darüber hinaus können die Abfrageergebnisse durch eine Koordinatenposition und einen Radius oder durch das Definieren eines Begrenzungsrahmens eingeschränkt werden, um die Relevanz Ihrer Suchergebnisse zu verbessern.

Tipp

Die meisten Suchabfragen sind zur Leistungssteigerung und Verringerung ungewöhnlicher Ergebnisse standardmäßig auf maxFuzzyLevel=1 festgelegt. Passen Sie die Fuzzyebene mithilfe der Parameter maxFuzzyLevel oder minFuzzyLevel an. Weitere Informationen zu maxFuzzyLevel und eine vollständige Liste aller optionalen Parameter finden Sie unter URI-Parameter für Fuzzy Search (Fuzzysuche).

Im Beispiel in diesem Abschnitt wird Fuzzy Search verwendet, um die gesamte Welt nach Pizza zu durchsuchen, und dann wird der Bereich eines bestimmten Landes/einer bestimmten Region durchsucht. Abschließend wird beschrieben, wie Sie eine Koordinatenposition und einen Radius verwenden, um eine Suche auf einen bestimmten Bereich einzuschränken und die Anzahl der zurückgegebenen Ergebnisse zu begrenzen.

Wichtig

Fügen Sie immer so viele Standortangaben wie möglich hinzu, damit die Ergebnisse dem für Ihren Benutzer relevanten geografischen Bereich entsprechen. Weitere Informationen finden Sie unter Best Practices für die Suche.

  1. Klicken Sie in der Postman-App auf Neu, um die Anforderung zu erstellen. Wählen Sie im Fenster Create New (Neu erstellen) die Option HTTP Request (HTTP-Anforderung) aus. Geben Sie einen Anforderungsnamen (Request name) ein.

  2. Wählen Sie auf der Registerkarte „Builder“ (Generator) die HTTP-Methode GET aus, und geben Sie die folgende URL ein. Ersetzen Sie {Your-Azure-Maps-Subscription-key} bei dieser Anforderung sowie bei den anderen in diesem Artikel angegebenen Anforderungen durch Ihren Azure Maps-Abonnementschlüssel.

    https://atlas.microsoft.com/search/fuzzy/json?&api-version=1.0&subscription-key={Your-Azure-Maps-Subscription-key}&language=en-US&query=pizza
    

    Hinweis

    Das Attribut json im URL-Pfad legt das Antwortformat fest. In diesem Artikel wird JSON verwendet, um die Benutzerfreundlichkeit und Lesbarkeit zu verbessern. Informationen zu weiteren unterstützten Antwortformaten finden Sie in der Definition des format-Parameters in der Dokumentation Referenz für URI-Parameter.

  3. Klicken Sie auf Send (Senden), und überprüfen Sie den Antworttext.

    Die mehrdeutige Abfragezeichenfolge „pizza“ hat 10 POI-Ergebnisse sowohl in der Kategorie „Pizza“ als auch in der Kategorie „Restaurant“ zurückgegeben. Jedes Ergebnis enthält eine Adresse, Werte für den Breiten- und Längengrad, ein Bildausschnitt und Einstiegspunkte für den Standort. Die Ergebnisse für diese Abfrage variieren und sind mit keinem bestimmten Referenzstandort verbunden.

    Im nächsten Schritt wird der Parameter countrySet verwendet, um nur die Länder/Regionen anzugeben, die von Ihrer Anwendung abgedeckt werden sollen. Eine vollständige Liste der unterstützten Länder/Regionen finden Sie im Artikel zur Suchabdeckung.

  4. Das Standardverhalten besteht darin, die ganze Welt zu durchsuchen, wodurch unnötige Ergebnisse zurückgegeben werden können. Als Nächstes suchen wir nach „pizza“ nur in den USA. Fügen Sie dem Abschnitt countrySetParamsden Schlüssel hinzu, und legen Sie seinen Wert auf US fest. Durch das Festlegen des Schlüssels countrySet auf US werden die Ergebnisse auf die USA beschränkt.

    Search for pizza in the United States

    Die Ergebnisse werden nun durch den Ländercode begrenzt, und die Abfrage gibt Pizzerien in den USA zurück.

  5. Um eine noch gezieltere Suche durchzuführen, können Sie als Suchbereich ein lat/lon-Koordinatenpaar festlegen. Im folgenden Beispiel werden die lat/lon-Koordinaten der Seattle Space Needle verwendet. Da wir nur die Ergebnisse innerhalb eines Radius von 400 Metern zurückgeben möchten, fügen wir den Parameter radius hinzu. Außerdem verwenden wir den Parameter limit, um die Ergebnisse auf die fünf nächstgelegenen Pizzerien zu beschränken.

    Fügen Sie dem Abschnitt Params die folgenden Schlüssel-Wert-Paare hinzu:

    Schlüssel Wert
    lat 47.620525
    lon -122.349274
    Radius 400
    limit 5
  6. Wählen Sie Send (Senden) aus. Die Antwort enthält die Ergebnisse für Pizzerien in der Nähe der Space Needle in Seattle.

Get Search Address Reverse (Abrufen der inversen Adresssuche) übersetzt Koordinaten in für Menschen lesbare Straßenadressen. Diese API wird häufig für Anwendungen verwendet, die einen GPS-Feed empfangen und Adressen an bestimmten Koordinatenpunkten ermitteln sollen.

Wichtig

Fügen Sie immer so viele Standortangaben wie möglich hinzu, damit die Ergebnisse dem für Ihren Benutzer relevanten geografischen Bereich entsprechen. Weitere Informationen finden Sie unter Best Practices für die Suche.

Tipp

Wenn Sie über eine Gruppe von Koordinatenpositionen für die inverse Geocodierung verfügen, können Sie Post Search Address Reverse Batch (Inverse Batchadresssuche posten) verwenden, um einen Batch von Abfragen in einer einzigen Anforderung zu senden.

In diesem Beispiel wird erklärt, wie mithilfe einiger der verfügbaren optionalen Parameter eine umgekehrte Suche durchgeführt wird. Eine vollständige Liste der optionalen Parameter finden Sie im Abschnitt zu den Parametern für die umgekehrte Suche.

  1. Klicken Sie in der Postman-App auf Neu, um die Anforderung zu erstellen. Wählen Sie im Fenster Create New (Neu erstellen) die Option HTTP Request (HTTP-Anforderung) aus. Geben Sie einen Anforderungsnamen (Request name) ein.

  2. Wählen Sie auf der Registerkarte „Builder“ (Generator) die HTTP-Methode GET aus, und geben Sie die folgende URL ein. Ersetzen Sie {Your-Azure-Maps-Subscription-key} bei dieser Anforderung sowie bei den anderen in diesem Artikel angegebenen Anforderungen durch Ihren Azure Maps-Abonnementschlüssel. Die Anforderung sollte wie die folgende URL aussehen:

    https://atlas.microsoft.com/search/address/reverse/json?api-version=1.0&subscription-key={Your-Azure-Maps-Subscription-key}&language=en-US&query=47.591180,-122.332700&number=1
    
  3. Klicken Sie auf Send (Senden), und überprüfen Sie den Antworttext. Es sollte nur ein Abfrageergebnis angezeigt werden. Die Antwort enthält Schlüsseladressinformationen über Safeco Field.

  4. Fügen Sie dann dem Abschnitt Params die folgenden Schlüssel-Wert-Paare hinzu:

    Schlüssel Wert Rückgabe
    number 1 Die Antwort enthält möglicherweise die Straßenseite (links/rechts) und außerdem eine Versatzposition für die Hausnummer.
    returnSpeedLimit true Gibt das Tempolimit an der Adresse zurück.
    returnRoadUse true Gibt den Straßentyp an der Adresse zurück. Eine Übersicht der möglichen Straßentypen finden Sie im Abschnitt URI-Parameter.
    returnMatchType true Gibt den Typ der Übereinstimmung zurück. Eine Übersicht aller möglichen Werte finden Sie unter Reverse Address Search Results (Ergebnisse der inversen Adresssuche).

    Search reverse.

  5. Klicken Sie auf Send (Senden), und überprüfen Sie den Antworttext.

  6. Als Nächstes fügen wir den Schlüssel entityType hinzu und legen seinen Wert auf Municipality fest. Der Schlüssel entityType überschreibt den Schlüssel returnMatchType im vorherigen Schritt. returnSpeedLimit und returnRoadUse müssen auch entfernt werden, da Sie Informationen über die Gemeinde anfordern. Eine Liste aller möglichen Typen finden Sie unter EntityType.

    Search reverse entityType.

  7. Wählen Sie Send (Senden) aus. Vergleichen Sie die Ergebnisse mit denen in Schritt 5. Der angeforderte Entitätstyp lautet jetzt municipality, deshalb enthält die Antwort keine Informationen zur Anschrift. Der zurückgegebene geometryId-Wert kann darüber hinaus zum Anfordern eines Begrenzungspolygons über die Azure Maps-API zum Abrufen von Suchpolygonen verwendet werden.

Tipp

Weitere Informationen zu diesen und anderen Parametern finden Sie unter Parameter für inverse Suche.

In diesem Beispiel wird gezeigt, wie basierend auf den Koordinaten einer Adresse nach einer Querstraße gesucht werden kann.

  1. Klicken Sie in der Postman-App auf Neu, um die Anforderung zu erstellen. Wählen Sie im Fenster Create New (Neu erstellen) die Option HTTP Request (HTTP-Anforderung) aus. Geben Sie einen Anforderungsnamen (Request name) ein.

  2. Wählen Sie auf der Registerkarte „Builder“ (Generator) die HTTP-Methode GET aus, und geben Sie die folgende URL ein. Ersetzen Sie {Your-Azure-Maps-Subscription-key} bei dieser Anforderung sowie bei den anderen in diesem Artikel angegebenen Anforderungen durch Ihren Azure Maps-Abonnementschlüssel. Die Anforderung sollte wie die folgende URL aussehen:

    https://atlas.microsoft.com/search/address/reverse/crossstreet/json?&api-version=1.0&subscription-key={Your-Azure-Maps-Subscription-key}&language=en-US&query=47.591180,-122.332700
    

    Search cross street.

  3. Klicken Sie auf Send (Senden), und überprüfen Sie den Antworttext. Beachten Sie, dass die Antwort den Wert South Atlantic Street für crossStreet enthält.

Nächste Schritte