Hledání umístění pomocí služeb Azure Mapy Search
Azure Mapy Search Je sada rozhraní RESTful API navržená tak, aby vývojářům pomohla vyhledávat adresy, místa a obchodní seznamy podle názvu, kategorie a dalších geografických údajů. Kromě podpory tradičního geokódování mohou služby také reverzní geokódové adresy a křížové ulice založené na zeměpisné šířce a délce. Hodnoty zeměpisné šířky a délky vrácené hledáním je možné použít jako parametry v jiných službách Azure Mapy, jako jsou služby Route a Weather.
V tomto článku se naučíte:
- Pomocí rozhraní API pro vyhledávání adres si vyžádejte souřadnice zeměpisné šířky a délky adresy (umístění geografické adresy).
- Pomocí rozhraní API pro vyhledávání přibližných shod vyhledejte adresu nebo bod zájmu(POI).
- Proveďte reverzní vyhledávání adres, které přeloží polohu souřadnice na adresu ulice.
- Překládejte souřadnice polohy na lidsky srozumitelnou křížovou ulice pomocí rozhraní API pro reverzní vyhledávání napříč ulicemi. Nejčastěji je to potřeba při sledování aplikací, které přijímají gpsový kanál ze zařízení nebo assetu a chtějí vědět, kde se souřadnice nachází.
Požadavky
- Nastavení účtu azure Mapy
- Získejte primární klíč předplatného, označované také jako primární klíč nebo klíč předplatného.
V tomto kurzu se používá aplikace Postman, ale můžete zvolit jiné vývojové prostředí API.
Žádost o zeměpisnou šířku a délku adresy (geocoding)
V tomto příkladu použijeme rozhraní API azure Mapy Získat adresu pro vyhledávání k převodu adresy na souřadnice zeměpisné šířky a délky. Tento proces se také nazývá geocoding. Kromě vrácení souřadnic vrátí odpověď také podrobné vlastnosti adresy, jako jsou ulice, PSČ, ulice a země/oblast.
Tip
Pokud máte sadu adres pro geografický kód, můžete pomocí rozhraní API dávky adres po vyhledávání odeslat dávku dotazů v jednom volání rozhraní API.
V aplikaci Postman vytvořte požadavek výběrem možnosti Nový. V okně Vytvořit nový vyberte Požadavek HTTP. Zadejte Název požadavku.
Na kartě Tvůrce vyberte metodu GET HTTP a zadejte následující adresu URL. V tomto požadavku hledáme konkrétní adresu:
400 Braod St, Seattle, WA 98109. U této žádosti a dalších požadavků uvedených v tomto článku nahraďte{Azure-Maps-Primary-Subscription-key}primárním klíčem předplatného.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 98109Klikněte na modré tlačítko Odeslat. Text odpovědi bude obsahovat data pro jedno umístění.
Teď vyhledáme adresu, která má více než jedno možné umístění. V části Params změňte
queryklíč na400 Broad, Seattle. Klikněte na modré tlačítko Odeslat.
Dále zkuste nastavit
queryklíč na400 Broa.Klikněte na tlačítko Odeslat. Teď vidíte, že odpověď zahrnuje odpovědi z více zemí. Pokud chcete geo zaujaté výsledky do příslušné oblasti pro vaše uživatele, vždy do žádosti přidejte co nejvíce podrobností o poloze.
Použití rozhraní API pro vyhledávání přibližných shod
Rozhraní API Mapy Fuzzy Search podporuje standardní jedno řádkové a volné vyhledávání. Pokud pro žádost o vyhledávání nevíte typ vstupu uživatele, doporučujeme použít rozhraní Api pro přibližné vyhledávání ve službě Azure Mapy Search. Vstupem dotazu může být úplná nebo částečná adresa. Může to být také token POI (Bod zájmu), jako je název poi, kategorie POI nebo název značky. Aby se zlepšila relevance výsledků hledání, mohou být výsledky dotazu omezeny umístěním souřadnic a poloměrem nebo definováním ohraničovacího rámečku.
Tip
Většina vyhledávacích dotazů ve výchozím nastavení využívá parametr maxFuzzyLevel=1, aby se získal výkon a snížily neobvyklé výsledky. Úrovně neostýchanosti můžete upravit pomocí maxFuzzyLevel parametrů minFuzzyLevel nebo . Další informace o všech volitelných parametrech a jejich úplný seznam najdete v tématu Parametry identifikátoru maxFuzzyLevel URI vyhledávání přibližných shod.
Hledání adresy pomocí vyhledávání přibližných shod
V tomto příkladu použijeme vyhledávání přibližných shod k hledání v celém pizza světě. Pak vám ukážeme, jak prohledávat rozsah konkrétní země. Nakonec vám ukážeme, jak pomocí umístění souřadnic a poloměru omezit hledání na konkrétní oblast a omezit počet vrácených výsledků.
Důležité
Pokud chcete geo zaujaté výsledky do příslušné oblasti pro vaše uživatele, vždy přidejte co nejvíce podrobností o poloze. Další informace najdete v tématu Osvědčené postupy pro vyhledávání.
V aplikaci Postman vytvořte požadavek výběrem možnosti Nový. V okně Vytvořit nový vyberte Požadavek HTTP. Zadejte Název požadavku.
Na kartě Tvůrce vyberte metodu GET HTTP a zadejte následující adresu URL. U této žádosti a dalších požadavků uvedených v tomto článku nahraďte
{Azure-Maps-Primary-Subscription-key}primárním klíčem předplatného.https://atlas.microsoft.com/search/fuzzy/json?&api-version=1.0&subscription-key={Your-Azure-Maps-Primary-Subscription-key}&language=en-US&query=pizzaPoznámka
Formát odpovědi určuje atribut json v cestě URL. Tento článek používá json pro snadné použití a čitelnost. Další podporované formáty odpovědí najdete v definici parametru v
formatreferenční dokumentaci k parametru URI.Klikněte na Odeslat a zkontrolujte text odpovědi.
Nejednoznačný řetězec dotazu pro "pizzu" vrátil výsledek 10 bodů zájmu (POI) v kategoriích "pizza" i "restaurant". Každý výsledek obsahuje podrobnosti, jako je adresa ulice, zeměpisná šířka a délka, zobrazení portu a vstupních bodů pro umístění. Výsledky tohoto dotazu se teď liší a nejsou svázané s žádným referenčním umístěním.
V dalším kroku použijeme parametr a určíme pouze země/oblasti, pro které vaše aplikace
countrySetpotřebuje pokrytí. Úplný seznam podporovaných zemí/oblastí najdete v tématu Pokrytí vyhledávání.Výchozím chováním je prohledávat celý svět a potenciálně vracet zbytečné výsledky. V dalším kroku budeme hledat pizzu pouze USA. Přidejte
countrySetklíč do oddílu Params a nastavte jeho hodnotu naUS. KdyžcountrySetnastavíte klíč naUS, budou výsledky svázané s USA.
Výsledky jsou teď ohraničené kódem země a dotaz vrátí pizzerii v USA.
Pokud chcete získat ještě cílenější hledání, můžete vyhledat rozsah západky nebo oblasti. pár souřadnic. V tomto příkladu použijeme lat./lon. společnosti Seattle Space Needle. Vzhledem k tomu, že chceme vrátit výsledky pouze v poloměru 400 metrů, přidáme
radiusparametr . Přidáme také parametr , který omezí výsledky na pětlimitnejbližších pizzerií.V části Params přidejte následující páry klíč/hodnota:
Klíč Hodnota Lat 47.620525 Lon -122.349274 Radius 400 limit 5 Klikněte na Odeslat. Odpověď obsahuje výsledky pizzerií v blízkosti Seattlu Space Needle.
Vyhledání adresy ulice pomocí reverzního vyhledávání adres
Rozhraní API pro reverzní vyhledávání adres Azure Mapy překládá souřadnice na adresy ulice čitelné pro člověka. Toto rozhraní API se často používá pro aplikace, které využívají informační kanály GPS a chtějí zjišťovat adresy v konkrétních bodech souřadnic.
Důležité
Pokud chcete geo zaujaté výsledky do příslušné oblasti pro vaše uživatele, vždy přidejte co nejvíce podrobností o poloze. Další informace najdete v tématu Osvědčené postupy pro vyhledávání.
Tip
Pokud máte sadu souřadnic pro reverzní geografický kód, můžete použít rozhraní API reverzní dávky adres po hledání k odeslání dávky dotazů v jednom volání rozhraní API.
V tomto příkladu budeme reverzní vyhledávání vyhledávat pomocí několika volitelných parametrů, které jsou k dispozici. Úplný seznam volitelných parametrů najdete v tématu Reverzní parametry vyhledávání.
V aplikaci po výběru nové vytvořte žádost. V okně vytvořit nové vyberte požadavek HTTP. Zadejte název žádosti .
Na kartě tvůrce vyberte metodu Get http a zadejte následující adresu URL. U této žádosti a dalších žádostí uvedených v tomto článku nahraďte
{Azure-Maps-Primary-Subscription-key}primárním klíčem předplatného. Požadavek by měl vypadat jako na následující adrese 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=1Klikněte na Odeslat a zkontrolujte text odpovědi. Měl by se zobrazit jeden výsledek dotazu. Odpověď obsahuje klíčová informace o adrese pole Safeco Field.
Nyní přidáme následující páry klíč/hodnota do oddílu param :
Klíč Hodnota Návraty číslo 1 Odpověď může zahrnovat stranu ulice (vlevo/vpravo) a také pozici posunu pro dané číslo. returnSpeedLimit true Vrátí omezení rychlosti na adrese. returnRoadUse true Vrátí na adrese cesty pro použití. Všechny možné typy provozu najdete v tématu typy cest pro použití. returnMatchType true Vrátí typ shody. Všechny možné hodnoty najdete v tématu s výsledky hledání zpětné adresy .
Klikněte na Odeslat a zkontrolujte text odpovědi.
V dalším kroku přidáme
entityTypeklíč a nastavíme jeho hodnotu naMunicipality.entityTypeKlíč přepíšereturnMatchTypeklíč v předchozím kroku. Bude také nutné odebratreturnSpeedLimita,returnRoadUseprotože požadujeme informace o úřadu. Všechny možné typy entit naleznete v tématu typy entit.
Klikněte na Odeslat. Porovnejte výsledky s výsledky vrácenými v kroku 5. Vzhledem k tomu, že požadovaný typ entity je nyní
municipality, odpověď neobsahuje informace o ulici. vrácenégeometryIdhodnoty lze také použít k vyžádání mnohoúhelníku hranice prostřednictvím Azure Maps získat rozhraní API pro mnohoúhelník vyhledávání.
Tip
Chcete-li získat další informace o těchto parametrech a získat informace o dalších informacích, přečtěte si část parametry zpětného vyhledávání.
Hledání meziulici pomocí zpětného vyhledávání přes meziulici
V tomto příkladu vyhledáme meziulici na základě souřadnic adresy.
V aplikaci po výběru nové vytvořte žádost. V okně vytvořit nové vyberte požadavek HTTP. Zadejte název žádosti .
Na kartě tvůrce vyberte metodu Get http a zadejte následující adresu URL. U této žádosti a dalších žádostí uvedených v tomto článku nahraďte
{Azure-Maps-Primary-Subscription-key}primárním klíčem předplatného. Požadavek by měl vypadat jako na následující adrese 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
Klikněte na Odeslat a zkontrolujte text odpovědi. Všimněte si, že odpověď obsahuje
crossStreethodnotuSouth Atlantic Street.