Een locatie zoeken met behulp van Azure Kaarten Search-services
De Azure Kaarten Search Service is een set RESTful API's die is ontworpen om ontwikkelaars te helpen bij het zoeken naar adressen, plaatsen en bedrijfsvermeldingen op naam, categorie en andere geografische informatie. Naast de ondersteuning van traditionele geocoderen, kunnen services ook omgekeerde geocodes gebruiken voor adressen en straten op basis van breedte- en lengtegraden. De waarden voor breedtegraad en lengtegraad die door de zoekopdracht worden geretourneerd, kunnen worden gebruikt als parameters in andere Azure Kaarten-services, zoals route- en weerservices.
In dit artikel leert u het volgende:
- Vraag de breedtegraad en lengtegraadcoördinaten aan voor een adres (locatie van geocodeadres) met behulp van de API Voor zoekadres.
- Zoek naar een adres of nuttige plaats (POI) met behulp van de Api voor fuzzy zoekopdrachten.
- Maak een Reverse Address Search om coördinatenlocatie om te zetten in adres.
- Vertaal coördinatenlocatie naar een voor mensen begrijpelijke cross street met behulp van search address reverse cross street API. Dit is meestal nodig bij het bijhouden van toepassingen die een GPS-feed van een apparaat of asset ontvangen en willen weten waar de coördinaat zich bevindt.
Vereisten
- Een Azure Maps-account maken
- Een primaire sleutel voor een abonnement verkrijgen, ook wel bekend als de primaire sleutel of de abonnementssleutel.
In deze zelfstudie wordt gebruikgemaakt van de Postman-toepassing, maar u kunt ook een andere API-ontwikkelomgeving kiezen.
Breedtegraad en lengtegraad voor een adres aanvragen (geocoderen)
In dit voorbeeld gebruiken we de Azure Kaarten Get Search Address API om een adres te converteren naar breedtegraad- en lengtegraadcoördinaten. Dit proces wordt ook wel geocoderen genoemd. Naast het retourneren van de coördinaten retourneert het antwoord ook gedetailleerde adreseigenschappen, zoals straat-, postcode-, provincie- en land-/regiogegevens.
Tip
Als u een set adressen hebt om te geocoderen, kunt u de Batch-API Post Search Address gebruiken om een batch query's te verzenden in één API-aanroep.
Selecteer nieuw in de Postman-app om de aanvraag te maken. Selecteer in het venster Nieuwe maken de optie HTTP-aanvraag. Voer een Request name (Aanvraagnaam) in voor de aanvraag.
Selecteer de HTTP-methode GET op het tabblad Builder en voer de volgende URL in. In deze aanvraag zoeken we naar een specifiek adres:
400 Braod St, Seattle, WA 98109. Voor deze aanvraag en andere aanvragen die in dit artikel worden vermeld, vervangt u{Azure-Maps-Primary-Subscription-key}door uw primaire abonnementssleutel.https://atlas.microsoft.com/search/address/json?&subscription-key={Your-Azure-Maps-Primary-Subscription-key}&api-version=1.0&language=en-US&query=400 Broad St, Seattle, WA 98109Klik op de blauwe knop Verzenden. De antwoord-body bevat gegevens voor één locatie.
We gaan nu zoeken naar een adres dat meer dan één mogelijke locatie heeft. Wijzig in de sectie Params de
querysleutel in400 Broad, Seattle. Klik op de blauwe knop Verzenden.
Probeer vervolgens de sleutel in
queryte stellen op400 Broa.Klik op de knop Verzenden. U kunt nu zien dat het antwoord reacties uit meerdere landen bevat. Voeg altijd zoveel mogelijk locatiedetails toe aan de aanvraag om resultaten te geobias voor het relevante gebied voor uw gebruikers.
Fuzzy zoekopdrachten-API gebruiken
De Azure Kaarten Fuzzy Search-API ondersteunt standaard zoekopdrachten met één regel en in vrije vorm. U wordt aangeraden de Azure Kaarten Search Fuzzy API te gebruiken wanneer u uw gebruikersinvoertype niet weet voor een zoekaanvraag. De query-invoer kan een volledig of gedeeltelijk adres zijn. Het kan ook een POI-token (Point of Interest) zijn, zoals een naam van POI, POI-categorie of merknaam. Om de relevantie van uw zoekresultaten te verbeteren, kunnen de queryresultaten bovendien worden beperkt door een coördinaatlocatie en radius, of door een begrenssend vak te definiëren.
Tip
De meeste Search-query's worden standaard ingesteld op maxFutermLevel=1 om prestaties te verkrijgen en ongebruikelijke resultaten te verminderen. U kunt de funess-niveaus aanpassen met behulp van de maxFuzzyLevel parameters of minFuzzyLevel . Zie URI-parameters voor fuzzy zoekopdrachten voor meer informatie over en een volledige lijst met alle maxFuzzyLevel optionele parameters
Een adres zoeken met fuzzy zoekopdrachten
In dit voorbeeld gebruiken we Fuzzy zoekopdrachten om de hele wereld te doorzoeken op pizza . Vervolgens laten we u zien hoe u kunt zoeken in het bereik van een specifiek land. Ten slotte laten we u zien hoe u een coördinaatlocatie en radius kunt gebruiken om een zoekopdracht te beperken tot een bepaald gebied en het aantal geretourneerde resultaten te beperken.
Belangrijk
Voeg altijd zoveel mogelijk locatiedetails toe om resultaten te bepalen voor het relevante gebied voor uw gebruikers. Zie Best Practices for Search (Best practices voor zoeken) voor meer informatie.
Selecteer nieuw in de Postman-app om de aanvraag te maken. Selecteer in het venster Nieuwe maken de optie HTTP-aanvraag. Voer een Request name (Aanvraagnaam) in voor de aanvraag.
Selecteer de HTTP-methode GET op het tabblad Builder en voer de volgende URL in. Voor deze aanvraag en andere aanvragen die in dit artikel worden vermeld, vervangt u
{Azure-Maps-Primary-Subscription-key}door uw primaire abonnementssleutel.https://atlas.microsoft.com/search/fuzzy/json?&api-version=1.0&subscription-key={Your-Azure-Maps-Primary-Subscription-key}&language=en-US&query=pizzaNotitie
Het json-kenmerk in het URL-pad bepaalt de antwoordindeling. In dit artikel wordt json gebruikt voor gebruiksgemak en leesbaarheid. Zie de parameterdefinitie in de referentiedocumentatie voor URI-parameters voor andere
formatondersteunde antwoordindelingen.Klik op Verzenden en controleer de antwoord body.
De dubbelzinnige queryreeks voor 'pizza' heeft het resultaat van 10 nuttige plaatsen (POI) geretourneerd in zowel de categorieën 'pizza' als 'restaurant'. Elk resultaat bevat details zoals adres, breedtegraad en lengtegraad, poortweergave en toegangspunten voor de locatie. De resultaten zijn nu verschillend voor deze query en zijn niet gekoppeld aan een referentielocatie.
In de volgende stap gebruiken we de parameter om alleen de landen/regio's op te geven waarvoor uw
countrySettoepassing dekking nodig heeft. Zie Zoekdekking voor een volledige lijst met ondersteunde landen/regio's.Het standaardgedrag is om de hele wereld te doorzoeken en onnodige resultaten te retourneren. Vervolgens zoeken we alleen naar de pizza die Verenigde Staten. Voeg de
countrySetsleutel toe aan de sectie Params en stel de waarde ervan in opUS. Als ucountrySetde sleutelUSinstelt op , worden de resultaten gebonden aan de Verenigde Staten.
De resultaten zijn nu gebonden aan de landcode en de query retourneert pizza-restaurants in de Verenigde Staten.
Als u een nog gerichtere zoekopdracht wilt, kunt u zoeken in het bereik van een lat./lon. coördinaatpaar. In dit voorbeeld gebruiken we de lat./lon. van de Seattle Space Needle. Omdat we alleen resultaten willen retourneren binnen een radius van 400 meter, voegen we de
radiusparameter toe. We voegen ook de parameter toe om de resultaten te beperken tot delimitvijf dichtstbijzijnde pizza's.Voeg in de sectie Params de volgende sleutel-waardeparen toe:
Sleutel Waarde Lat 47.620525 Lon -122.349274 Radius 400 limiet 5 Klik op Verzenden. Het antwoord bevat resultaten voor pizza-restaurants in de buurt van Seattle Space Needle.
Zoeken naar een adres met behulp van Reverse Address Search
Met de Azure Kaarten Get Search Address Reverse API worden coördinaten omgezet in door mensen leesbare adressen. Deze API wordt vaak gebruikt voor toepassingen die GPS-feeds gebruiken en adressen op specifieke coördinatenpunten willen ontdekken.
Belangrijk
Voeg altijd zoveel mogelijk locatiedetails toe om resultaten te bepalen voor het relevante gebied voor uw gebruikers. Zie Best Practices for Search (Best practices voor zoeken) voor meer informatie.
Tip
Als u een set coördinatenlocaties hebt om geocode om te draaien, kunt u Post Search Address Reverse Batch API gebruiken om een batch query's in één API-aanroep te verzenden.
In dit voorbeeld doen we omgekeerde zoekopdrachten met behulp van een aantal optionele parameters die beschikbaar zijn. Zie Parameters voor reverse search voor de volledige lijst met optionele parameters.
Selecteer nieuw in de Postman-app om de aanvraag te maken. Selecteer in het venster Nieuwe maken de optie HTTP-aanvraag. Voer een Request name (Aanvraagnaam) in voor de aanvraag.
Selecteer de HTTP-methode GET op het tabblad Builder en voer de volgende URL in. Voor deze aanvraag en andere aanvragen die in dit artikel worden vermeld, vervangt u
{Azure-Maps-Primary-Subscription-key}door uw primaire abonnementssleutel. De aanvraag moet lijken op de volgende URL:https://atlas.microsoft.com/search/address/reverse/json?api-version=1.0&subscription-key={Your-Azure-Maps-Primary-Subscription-key}&language=en-US&query=47.591180,-122.332700&number=1Klik op Verzenden en controleer de antwoord body. Als het goed is, ziet u één queryresultaat. Het antwoord bevat informatie over sleuteladressen over Safeco Field.
Nu voegen we de volgende sleutel-waardeparen toe aan de sectie Params:
Sleutel Waarde Retouren getal 1 Het antwoord kan de zijkant van de straat (links/rechts) en ook een offsetpositie voor het getal bevatten. returnSpeedLimit true Retourneert de snelheidslimiet op het adres. returnRoadUse true Retourneert weggebruikstypen op het adres. Zie Weggebruikstypen voor alle mogelijke typen weggebruik. returnMatchType true Retourneert het type overeenkomst. Zie Zoekresultaten voor omgekeerde adressen voor alle mogelijke waarden
Klik op Verzenden en controleer de antwoord body.
Vervolgens voegen we de sleutel
entityTypetoe en stellen we de waarde ervan in opMunicipality. DeentityTypesleutel overschrijven de sleutelreturnMatchTypein de vorige stap. We moeten en ook verwijderen, omdat we informatie over dereturnSpeedLimitreturnRoadUsenoodvoorziening aanvragen. Zie Entiteitstypen voor alle mogelijke entiteitstypen.
Klik op Verzenden. Vergelijk de resultaten met de resultaten die in stap 5 zijn geretourneerd. Omdat het aangevraagde entiteitstype nu is, bevat het antwoord
municipalitygeen adresgegevens. De geretourneerde kangeometryIdook worden gebruikt om grens-veelhoek aan te vragen via Azure Kaarten Get Search Polygon API.
Tip
Zie de sectie Parameters voor reverse search voor meer informatie over deze parameters en voor meer informatie over andere parameters.
Zoeken naar cross street met behulp van Reverse Address Cross Street Search
In dit voorbeeld zoeken we naar een cross street op basis van de coördinaten van een adres.
Selecteer nieuw in de Postman-app om de aanvraag te maken. Selecteer in het venster Nieuwe maken de optie HTTP-aanvraag. Voer een Request name (Aanvraagnaam) in voor de aanvraag.
Selecteer de HTTP-methode GET op het tabblad Builder en voer de volgende URL in. Voor deze aanvraag en andere aanvragen die in dit artikel worden vermeld, vervangt u
{Azure-Maps-Primary-Subscription-key}door uw primaire abonnementssleutel. De aanvraag moet lijken op de volgende URL:https://atlas.microsoft.com/search/address/reverse/crossstreet/json?&api-version=1.0&subscription-key={Your-Azure-Maps-Primary-Subscription-key}&language=en-US&query=47.591180,-122.332700
Klik op Verzenden en controleer de antwoord body. U ziet dat het antwoord de waarde
crossStreetSouth Atlantic Streetbevat.