Delen via


Een locatie zoeken met behulp van Azure Maps 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 Maps-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

Belangrijk

In de URL-voorbeelden in dit artikel moet u vervangen door {Your-Azure-Maps-Subscription-key} uw Azure Maps-abonnementssleutel.

In dit artikel wordt de bruno-toepassing gebruikt, maar u kunt 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. Open de bruno-app, selecteer NIEUWE AANVRAAG om de aanvraag te maken. Stel in het venster NEW REQUEST het type in op HTTP. Voer een naam in voor de aanvraag.

  2. Selecteer de GET HTTP-methode in de vervolgkeuzelijst URL en voer vervolgens de volgende URL in:

    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 knop Maken.

  4. Selecteer de knop Uitvoeren.

    Met deze aanvraag wordt gezocht naar een specifiek adres: 400 Broad St, Seattle, WA 98109. Zoek vervolgens een adres met meer dan één mogelijke locatie.

  5. Wijzig in de sectie Params de query sleutel in 400 Broad, Seattleen selecteer vervolgens de knop Uitvoeren.

    Adres zoeken

  6. Probeer vervolgens de query sleutel in te 400 Broastellen en selecteer vervolgens de knop Uitvoeren.

    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 Fuzzy API van Azure Maps Search 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. Open de bruno-app, selecteer NIEUWE AANVRAAG om de aanvraag te maken. Stel in het venster NEW REQUEST het type in op HTTP. Voer een naam in voor de aanvraag.

  2. Selecteer de GET HTTP-methode in de vervolgkeuzelijst URL en voer vervolgens de volgende URL in:

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

  3. Selecteer de knop Uitvoeren en controleer vervolgens de hoofdtekst van het antwoord.

    De dubbelzinnige queryreeks voor 'pizza' retourneert 10 nuttige plaatsen (POI) resulteert 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 de geografische coderingsdekking van Azure Maps 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.

    Zoeken naar pizza in de Verenigde Staten

    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 Uitvoeren. 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. Open de bruno-app, selecteer NIEUWE AANVRAAG om de aanvraag te maken. Stel in het venster NEW REQUEST het type in op HTTP. Voer een naam in voor de aanvraag.

  2. Selecteer de GET HTTP-methode in de vervolgkeuzelijst URL en voer vervolgens de volgende URL in:

    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
    
  3. Selecteer de knop Uitvoeren 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 Retouren
    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.

    Zoek omgekeerd.

  5. Selecteer de knop Uitvoeren en controleer de hoofdtekst van het antwoord.

  6. Voeg vervolgens de sleutel toe en stel 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.

    Reverse entityType doorzoeken.

  7. Selecteer de knop Uitvoeren. 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 veelhoek aan te vragen via de Get Search Polygon-API van Azure Maps.

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. Open de bruno-app, selecteer NIEUWE AANVRAAG om de aanvraag te maken. Stel in het venster NEW REQUEST het type in op HTTP. Voer een naam in voor de aanvraag.

  2. Selecteer de GET HTTP-methode in de vervolgkeuzelijst URL en voer vervolgens de volgende URL in:

    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
    
  3. Selecteer de knop Uitvoeren en controleer de hoofdtekst van het antwoord. U ziet dat het antwoord een crossStreet waarde van South Atlantic Street.

Volgende stappen