Een locatie zoeken met behulp van Azure Kaarten Search-service s

De Search-service is een set RESTful-API's die zijn ontworpen om ontwikkelaars te helpen bij het zoeken naar adressen, plaatsen en zakelijke vermeldingen op naam, categorie en andere geografische informatie. Naast het ondersteunen van traditionele geocodering, kunnen services ook de adressen van geocoderen en dwarsstraten omkeren op basis van breedtegraad en lengtegraad. Waarden voor breedtegraad en lengtegraad die door de zoekopdracht worden geretourneerd, kunnen worden gebruikt als parameters in andere Azure Kaarten-services, zoals Route en Weer.

In dit artikel wordt uitgelegd hoe u het volgende kunt doen:

  • Vraag de breedte- en lengtegraadcoördinaten voor een adres (locatie van geocodeeradres) aan met behulp van het zoekadres.
  • Zoek naar een adres of nuttige plaats (NUTTIGE) met behulp van Fuzzy Search.
  • Gebruik Reverse Address Search om de coördinaatlocatie te vertalen naar adres.
  • Vertaal de coördinatenlocatie in een begrijpelijke cross street met behulp van Search Address Reverse Cross Street, meestal nodig bij het bijhouden van toepassingen die een GPS-feed ontvangen van een apparaat of asset en wil weten waar de coördinaat zich bevindt.

Vereisten

In deze zelfstudie wordt gebruikgemaakt van de Postman-toepassing, maar u kunt ook een andere API-ontwikkelomgeving kiezen.

Breedtegraad en lengtegraad aanvragen voor een adres (geocodering)

In het voorbeeld in deze sectie wordt Het zoekadres ophalen gebruikt om een adres te converteren naar coördinaten voor breedtegraad en lengtegraad. Dit proces wordt ook wel geocodering genoemd. Naast het retourneren van de coördinaten retourneert het antwoord ook gedetailleerde adreseigenschappen zoals straat-, postcode-, gemeente- en land-/regiogegevens.

Tip

Als u een set adressen voor geocode hebt, kunt u Post Search Address Batch gebruiken om een batch query's in één aanvraag te verzenden.

  1. Selecteer Nieuw in de Postman-app om de aanvraag te maken. Selecteer HTTP-aanvraag in het venster Nieuw maken. Voer een Request name (Aanvraagnaam) in voor de aanvraag.

  2. Selecteer de GET HTTP-methode 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. Vervang voor deze aanvraag en andere aanvragen die in dit artikel worden genoemd, door {Your-Azure-Maps-Subscription-key} uw Azure Kaarten-abonnementssleutel.

    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. Selecteer de blauwe knop Verzenden . De hoofdtekst van het antwoord bevat gegevens voor één locatie.

  4. Zoek vervolgens een adres met meer dan één mogelijke locatie. Wijzig in de sectie Params de query sleutel in 400 Broad, Seattle. Selecteer de blauwe knop Verzenden .

    Search for address

  5. Stel vervolgens de query sleutel in op 400 Broa.

  6. Selecteer de knop Verzenden. Het antwoord bevat resultaten van meerdere landen/regio's. Als u resultaten van geobias wilt toevoegen aan het relevante gebied voor uw gebruikers, voegt u altijd zoveel mogelijk locatiegegevens toe aan de aanvraag.

Fuzzy Search ondersteunt standaard zoekopdrachten met één regel en vrije vormen. U wordt aangeraden de Azure Kaarten Search Fuzzy-API te gebruiken wanneer u uw invoertype van de gebruiker niet weet voor een zoekaanvraag. De query-invoer kan een volledig of gedeeltelijk adres zijn. Het kan ook een NUTTIGE-token (Point of Interest) zijn, zoals een naam van POI, POI-categorie of merknaam. Als u bovendien de relevantie van uw zoekresultaten wilt verbeteren, beperkt u de queryresultaten met behulp van een coördinaatlocatie en radius, of door een begrenzingsvak te definiëren.

Tip

De meeste zoekquery's zijn standaard ingesteld om de prestaties te maxFuzzyLevel=1 verbeteren en ongebruikelijke resultaten te verminderen. Pas de niveaus van de scherpte aan met behulp van de maxFuzzyLevel of minFuzzyLevel parameters. Zie Fuzzy Search URI-parameters voor meer informatie over maxFuzzyLevel en een volledige lijst met alle optionele parameters.

In het voorbeeld in deze sectie wordt gebruikgemaakt Fuzzy Search van het doorzoeken van de hele wereld naar pizza en wordt vervolgens gezocht naar het bereik van een specifiek land/regio. Ten slotte wordt gedemonstreerd hoe u een coördinaatlocatie en radius gebruikt om een zoekopdracht over een bepaald gebied te beperken en het aantal geretourneerde resultaten te beperken.

Belangrijk

Als u resultaten van geobias wilt toevoegen aan het relevante gebied voor uw gebruikers, voegt u altijd zoveel mogelijk locatiegegevens toe. Zie Aanbevolen procedures voor zoeken voor meer informatie.

  1. Selecteer Nieuw in de Postman-app om de aanvraag te maken. Selecteer HTTP-aanvraag in het venster Nieuw maken. Voer een Request name (Aanvraagnaam) in voor de aanvraag.

  2. Selecteer de GET HTTP-methode op het tabblad Builder en voer de volgende URL in. Vervang voor deze aanvraag en andere aanvragen die in dit artikel worden genoemd, door {Your-Azure-Maps-Subscription-key} uw Azure Kaarten-abonnementssleutel.

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

    Notitie

    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 formatreferentiedocumentatie voor URI-parameters voor andere ondersteunde antwoordindelingen.

  3. Selecteer Verzenden en controleer de hoofdtekst van het antwoord.

    De dubbelzinnige queryreeks voor 'pizza' retourneert 10 nuttige plaatsen (POI) in zowel de categorieën 'pizza' als 'restaurant'. Elk resultaat bevat details zoals straatadres, breedtegraad- en lengtegraadwaarden, weergavepoort en toegangspunten voor de locatie. De resultaten zijn nu gevarieerd voor deze query en zijn niet gekoppeld aan een referentielocatie.

    In de volgende stap gebruikt u de countrySet parameter om alleen de landen/regio's op te geven waarvoor uw toepassing dekking nodig heeft. Zie Zoekdekking voor een volledige lijst met ondersteunde landen/regio's.

  4. Het standaardgedrag is het doorzoeken van de hele wereld, waardoor onnodige resultaten kunnen worden geretourneerd. Zoek vervolgens alleen naar pizza in de Verenigde Staten. Voeg de sleutel toe aan de sectie Params en stel de countrySet waarde in op US. Als u de countrySet sleutel instelt om de resultaten te US koppelen aan de Verenigde Staten.

    Search for pizza in the United States

    De resultaten zijn nu gebonden aan de landcode en de query retourneert pizzarestaurants in de Verenigde Staten.

  5. Om een nog gerichtere zoekopdracht te krijgen, kunt u zoeken over het bereik van een lat/lon-coördinaatpaar. In het volgende voorbeeld worden de lat/lon-coördinaten van de Seattle Space Needle gebruikt. Omdat we alleen resultaten binnen een straal van 400 meter willen retourneren, voegen we de radius parameter toe. Daarnaast voegen we de limit parameter toe om de resultaten te beperken tot de vijf dichtstbijzijnde pizzaplaatsen.

    Voeg in de sectie Params de volgende sleutel-waardeparen toe:

    Sleutel Weergegeven als
    Lat 47.620525
    Lon -122.349274
    Radius 400
    limiet 5
  6. Selecteer Verzenden. Het antwoord bevat resultaten voor pizzarestaurants in de buurt van de Seattle Space Needle.

Get Search Address Reverse vertaalt coördinaten in door mensen leesbare straatadressen. Deze API wordt vaak gebruikt voor toepassingen die GPS-feeds verbruiken en adressen op specifieke coördinatenpunten willen detecteren.

Belangrijk

Als u resultaten van geobias wilt toevoegen aan het relevante gebied voor uw gebruikers, voegt u altijd zoveel mogelijk locatiegegevens toe. Zie Aanbevolen procedures voor zoeken voor meer informatie.

Tip

Als u een set coördinaatlocaties hebt om geocode om te keren, kunt u Post Search Address Reverse Batch gebruiken om een batch query's in één aanvraag te verzenden.

In dit voorbeeld ziet u hoe u omgekeerde zoekopdrachten maakt met behulp van een aantal optionele parameters die beschikbaar zijn. Zie Parameters voor reverse search voor de volledige lijst met optionele parameters.

  1. Selecteer Nieuw in de Postman-app om de aanvraag te maken. Selecteer HTTP-aanvraag in het venster Nieuw maken. Voer een Request name (Aanvraagnaam) in voor de aanvraag.

  2. Selecteer de GET HTTP-methode op het tabblad Builder en voer de volgende URL in. Vervang voor deze aanvraag en andere aanvragen die in dit artikel worden genoemd, door {Your-Azure-Maps-Subscription-key} uw Azure Kaarten-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-Subscription-key}&language=en-US&query=47.591180,-122.332700&number=1
    
  3. Selecteer Verzenden en controleer de hoofdtekst van het antwoord. Als het goed is, ziet u één queryresultaat. Het antwoord bevat belangrijke adresinformatie over Safeco Field.

  4. Voeg vervolgens de volgende sleutel-/waardeparen toe aan de sectie Params :

    Sleutel Weergegeven als Retourneert
    Nummer 1 Het antwoord kan de zijkant van de straat (links/rechts) en ook een verschuivingspositie voor het getal bevatten.
    returnSpeedLimit true Retourneert de snelheidslimiet op het adres.
    returnRoadUse true Retourneert weggebruiktypen 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.

    Search reverse.

  5. Selecteer Verzenden en controleer de hoofdtekst van het antwoord.

  6. Vervolgens voegen we de sleutel toe en stellen we de entityType waarde in op Municipality. De entityType sleutel overschrijft de returnMatchType sleutel in de vorige stap. returnSpeedLimit en returnRoadUse moet ook worden verwijderd omdat u informatie over de gemeente aanvraagt. Zie Entiteitstypen voor alle mogelijke entiteitstypen.

    Search reverse entityType.

  7. Selecteer Verzenden. Vergelijk de resultaten met de resultaten die in stap 5 zijn geretourneerd. Omdat het aangevraagde entiteitstype nu municipalityis, bevat het antwoord geen adresgegevens. De geretourneerde geometryId functie kan ook worden gebruikt om grens polygoon aan te vragen via Azure Kaarten Get Search Polygon-API.

Tip

Zie Parameters voor reverse search voor meer informatie over deze en andere parameters.

In dit voorbeeld ziet u hoe u zoekt naar een kruisstraat op basis van de coördinaten van een adres.

  1. Selecteer Nieuw in de Postman-app om de aanvraag te maken. Selecteer HTTP-aanvraag in het venster Nieuw maken. Voer een Request name (Aanvraagnaam) in voor de aanvraag.

  2. Selecteer de GET HTTP-methode op het tabblad Builder en voer de volgende URL in. Vervang voor deze aanvraag en andere aanvragen die in dit artikel worden genoemd, door {Your-Azure-Maps-Subscription-key} uw Azure Kaarten-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-Subscription-key}&language=en-US&query=47.591180,-122.332700
    

    Search cross street.

  3. Selecteer Verzenden en controleer de hoofdtekst van het antwoord. U ziet dat het antwoord een crossStreet waarde van South Atlantic Street.

Volgende stappen