Söka efter en plats med hjälp av Azure Kartor Search-tjänster

Azure Kartor Search Service är en uppsättning RESTful-API:er som har utformats för att hjälpa utvecklare att söka efter adresser, platser och företagslistor efter namn, kategori och annan geografisk information. Förutom att stödja traditionell geokodning kan tjänster även omvända geokodningsadresser och gatukorsningar baserat på latitud och longitud. Latitud- och longitudvärden som returneras av sökningen kan användas som parametrar i andra Azure Kartor tjänster, till exempel Route- och Weather-tjänster.

I den här artikeln får du lära dig att:

  • Begär latitud- och longitudkoordinater för en adress (geokodad adressplats) med hjälp av SÖKADRESS-API:et.
  • Sök efter en adress eller point of Interest (POI) med hjälp av API:et för fuzzy-sökning.
  • Gör en omvänd adresssökning för att översätta koordinatplatsen till gatuadressen.
  • Översätt koordinatplatsen till en mänsklig begriplig cross street med hjälp av SEARCH Address Reverse Cross Street API. Oftast behövs detta i spårningsprogram som tar emot ett GPS-flöde från en enhet eller tillgång och vill veta var koordinaten finns.

Förutsättningar

  1. Skapa ett Azure Kartor konto
  2. Skaffa en primär prenumerationsnyckel, som även kallas primärnyckel eller prenumerationsnyckel.

I den här självstudien används Postman-programmet, men du kan välja en annan API-utvecklingsmiljö.

Begära latitud och longitud för en adress (geokodning)

I det här exemplet använder vi Azure Kartor Get Search Address API för att konvertera en adress till latitud- och longitudkoordinater. Den här processen kallas även geokodning. Förutom att returnera koordinaterna returnerar svaret även detaljerade adressegenskaper, till exempel gatuadress, postnummer, hotell och information om land/region.

Tips

Om du har en uppsättning adresser att geokoda kan du använda Batch-API:et Post Search Address för att skicka en batch med frågor i ett enda API-anrop.

  1. I Postman-appen väljer du Ny för att skapa begäran. I fönstret Skapa ny väljer du HTTP-begäran. Ange ett begärandenamn för begäran.

  2. Välj METODEN GET HTTP (HÄMTA HTTP) på fliken Builder (Byggare) och ange följande URL. I den här begäran söker vi efter en specifik adress: 400 Braod St, Seattle, WA 98109 . För den här begäran och andra begäranden som nämns i den här artikeln ersätter du {Azure-Maps-Primary-Subscription-key} med din primära prenumerationsnyckel.

    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 98109
    
  3. Klicka på den blå knappen Skicka. Svarstexten innehåller data för en enda plats.

  4. Nu ska vi söka efter en adress som har fler än en möjlig plats. I avsnittet Params ändrar du query nyckeln till 400 Broad, Seattle . Klicka på den blå knappen Skicka.

    Sök efter adress

  5. Prova sedan att ange query nyckeln till 400 Broa .

  6. Klicka på knappen Skicka. Du kan nu se att svaret innehåller svar från flera länder. Om du vill ge geobias resultat till det relevanta området för dina användare lägger du alltid till så många platsuppgifter som möjligt i begäran.

Använda API för fuzzy-sökning

Azure Kartor Fuzzy Search-API:et stöder enkelrads- och friformssökningar av standardformat. Vi rekommenderar att du använder Azure Kartor Search Fuzzy API när du inte känner till din användarindatatyp för en sökbegäran. Frågeindata kan vara en fullständig eller partiell adress. Det kan också vara en POINT of Interest-token (POI), till exempel ett namn på POI, POI-kategori eller namn på varumärke. För att förbättra relevansen för sökresultaten kan frågeresultaten dessutom begränsas av en koordinatplats och radie, eller genom att definiera en avgränsningsruta.

Tips

De flesta sökfrågor använder som standard maxFuzzyLevel=1 för att få bättre prestanda och minska ovanliga resultat. Du kan justera fuzziness-nivåerna med hjälp av maxFuzzyLevel minFuzzyLevel parametrarna eller . Mer information om och en fullständig lista över alla valfria parametrar finns i maxFuzzyLevel URI-parametrar för fuzzy-sökning

I det här exemplet använder vi Fuzzy Search för att söka i hela världen efter pizza . Sedan visar vi hur du söker efter omfånget för ett visst land. Slutligen visar vi hur du använder en koordinatplats och radie för att begränsa en sökning över ett visst område och begränsa antalet returnerade resultat.

Viktigt

För att ge geobias resultat till det relevanta området för dina användare lägger du alltid till så många platsuppgifter som möjligt. Mer information finns i Best Practices for Search ( Metodtips för att sökaefter ).

  1. I Postman-appen väljer du Ny för att skapa begäran. I fönstret Skapa ny väljer du HTTP-begäran. Ange ett begärandenamn för begäran.

  2. Välj METODEN GET HTTP (HÄMTA HTTP) på fliken Builder (Byggare) och ange följande URL. För den här begäran och andra begäranden som nämns i den här artikeln ersätter du {Azure-Maps-Primary-Subscription-key} med din primära prenumerationsnyckel.

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

    Anteckning

    Json-attributet i URL-sökvägen avgör svarsformatet. Den här artikeln använder json för enkel användning och läsbarhet. Information om andra svarsformat som stöds finns i format parameterdefinitionen i referensdokumentationen för URI-parametern.

  3. Klicka på Skicka och granska svarstexten.

    Den tvetydiga frågesträngen för "pizza" returnerade 10 point of interest-resultat (POI) i både kategorierna "pizza" och "restaurang". Varje resultat innehåller information som gatuadress, latitud- och longitudvärden, visningsport och startpunkter för platsen. Resultatet varierar nu för den här frågan och är inte knutna till någon referensplats.

    I nästa steg använder vi parametern för att countrySet endast ange de länder/regioner som ditt program behöver täckning för. En fullständig lista över länder/regioner som stöds finns i Sök täckning.

  4. Standardbeteendet är att söka i hela världen och potentiellt returnera onödiga resultat. Nu ska vi söka efter pizza endast USA. Lägg till countrySet nyckeln i avsnittet Params och ange värdet till US . Om du countrySet anger nyckeln US till binds resultatet till USA.

    Sök efter pizza i USA

    Resultatet begränsas nu av landskoden och frågan returnerar pizza restauranger i USA.

  5. Om du vill få en ännu mer riktad sökning kan du söka i omfånget för en lat./lon. koordinatpar. I det här exemplet använder vi lat./lon. i Seattle Space Needle. Eftersom vi bara vill returnera resultat inom en radie på 400 meter lägger vi till radius parametern . Dessutom lägger vi till limit parametern för att begränsa resultatet till de fem närmaste pizzaplatserna.

    I avsnittet Params lägger du till följande nyckel/värde-par:

    Tangent Värde
    Lat 47.620525
    Lon -122.349274
    Radie 400
    gräns 5
  6. Klicka på Skicka. Svaret innehåller resultat för pizza restauranger nära Seattle Space Needle.

Azure Kartor Get Search Address Reverse API översätter koordinater till gatuadresser som kan läsas av människor. Det här API:et används ofta för program som använder GPS-flöden och vill identifiera adresser vid specifika koordinatpunkter.

Viktigt

För att ge geobias resultat till det relevanta området för dina användare lägger du alltid till så många platsuppgifter som möjligt. Mer information finns i Best Practices for Search ( Metodtips för att sökaefter ).

Tips

Om du har en uppsättning koordinater för omvänd geokodning kan du använda API:et Omvänd batch för postsökningsadress för att skicka en batch med frågor i ett enda API-anrop.

I det här exemplet gör vi omvända sökningar med några av de valfria parametrar som är tillgängliga. En fullständig lista över valfria parametrar finns i Parametrar för omvänd sökning.

  1. I Postman-appen väljer du Nytt för att skapa begäran. I fönstret Skapa ny väljer du HTTP-begäran. Ange ett begärandenamn för begäran.

  2. Välj METODEN GET HTTP på fliken Builder (Byggare) och ange följande URL. För den här begäran och andra begäranden som nämns i den här artikeln ersätter du {Azure-Maps-Primary-Subscription-key} med din primära prenumerationsnyckel. Begäran bör se ut som följande 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=1
    
  3. Klicka på Skicka och granska svarstexten. Du bör se ett frågeresultat. Svaret innehåller viktig adressinformation om Safeco Field.

  4. Nu ska vi lägga till följande nyckel/värde-par i avsnittet Params:

    Tangent Värde Returer
    antal 1 Svaret kan innehålla sidan av gata (vänster/höger) och även en offsetposition för talet.
    returnLimit true Returnerar hastighetsbegränsningen för adressen.
    returnRoadUse true Returnerar trafikanvändningstyper på adressen. Information om alla möjliga typer av väganvändning finns i Typer av väganvändning.
    returnMatchType true Returnerar matchningstypen. Alla möjliga värden finns i Sökresultat för omvänd adress

    Sök omvänd.

  5. Klicka på Skicka och granska svarstexten.

  6. Därefter lägger vi till nyckeln entityType och anger värdet till Municipality . Nyckeln entityType åsidosätter returnMatchType nyckeln i föregående steg. Vi måste också ta bort returnSpeedLimit och eftersom vi begär information om returnRoadUse mig. Information om alla möjliga entitetstyper finns i Entitetstyper.

    Sök efter omvänd entityType.

  7. Klicka på Skicka. Jämför resultaten med de resultat som returneras i steg 5. Eftersom den begärda entitetstypen municipality nu är innehåller svaret inte information om gatuadresser. Dessutom kan den returnerade geometryId användas för att begära gränspolygon via Azure Kartor Get Search Polygon API.

Tips

Mer information om dessa parametrar och om du vill veta mer om andra finns i avsnittet Parametrar för omvänd sökning.

I det här exemplet söker vi efter en gatukorsning baserat på koordinaterna för en adress.

  1. I Postman-appen väljer du Nytt för att skapa begäran. I fönstret Skapa ny väljer du HTTP-begäran. Ange ett begärandenamn för begäran.

  2. Välj METODEN GET HTTP på fliken Builder (Byggare) och ange följande URL. För den här begäran och andra begäranden som nämns i den här artikeln ersätter du {Azure-Maps-Primary-Subscription-key} med din primära prenumerationsnyckel. Begäran bör se ut som följande 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
    

    Sök på cross street.

  3. Klicka på Skicka och granska svarstexten. Du ser att svaret innehåller värdet crossStreet South Atlantic Street .

Nästa steg