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
- Skapa ett Azure Kartor konto
- 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.
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.
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 98109Klicka på den blå knappen Skicka. Svarstexten innehåller data för en enda plats.
Nu ska vi söka efter en adress som har fler än en möjlig plats. I avsnittet Params ändrar du
querynyckeln till400 Broad, Seattle. Klicka på den blå knappen Skicka.
Prova sedan att ange
querynyckeln till400 Broa.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
Söka efter en adress med hjälp av Fuzzy Search
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 ).
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.
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=pizzaAnteckning
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
formatparameterdefinitionen i referensdokumentationen för URI-parametern.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
countrySetendast 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.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
countrySetnyckeln i avsnittet Params och ange värdet tillUS. Om ducountrySetanger nyckelnUStill binds resultatet till USA.
Resultatet begränsas nu av landskoden och frågan returnerar pizza restauranger i USA.
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
radiusparametern . Dessutom lägger vi tilllimitparametern 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 Klicka på Skicka. Svaret innehåller resultat för pizza restauranger nära Seattle Space Needle.
Söka efter en gatuadress med omvänd adresssökning
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.
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.
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=1Klicka på Skicka och granska svarstexten. Du bör se ett frågeresultat. Svaret innehåller viktig adressinformation om Safeco Field.
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
Klicka på Skicka och granska svarstexten.
Därefter lägger vi till nyckeln
entityTypeoch anger värdet tillMunicipality. NyckelnentityTypeåsidosätterreturnMatchTypenyckeln i föregående steg. Vi måste också ta bortreturnSpeedLimitoch eftersom vi begär information omreturnRoadUsemig. Information om alla möjliga entitetstyper finns i Entitetstyper.
Klicka på Skicka. Jämför resultaten med de resultat som returneras i steg 5. Eftersom den begärda entitetstypen
municipalitynu är innehåller svaret inte information om gatuadresser. Dessutom kan den returneradegeometryIdanvä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.
Sök efter Cross Street med reverse address cross street search
I det här exemplet söker vi efter en gatukorsning baserat på koordinaterna för en adress.
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.
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
Klicka på Skicka och granska svarstexten. Du ser att svaret innehåller värdet
crossStreetSouth Atlantic Street.