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

  1. Nastavení účtu azure Mapy
  2. 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.

  1. 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.

  2. 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 98109
    
  3. Klikněte na modré tlačítko Odeslat. Text odpovědi bude obsahovat data pro jedno umístění.

  4. Teď vyhledáme adresu, která má více než jedno možné umístění. V části Params změňte query klíč na 400 Broad, Seattle . Klikněte na modré tlačítko Odeslat.

    Hledání adresy

  5. Dále zkuste nastavit query klíč na 400 Broa .

  6. 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.

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í.

  1. 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.

  2. 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=pizza
    

    Pozná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 format referenční dokumentaci k parametru URI.

  3. 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 countrySet potřebuje pokrytí. Úplný seznam podporovaných zemí/oblastí najdete v tématu Pokrytí vyhledávání.

  4. 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 countrySet klíč do oddílu Params a nastavte jeho hodnotu na US . Když countrySet nastavíte klíč na US , budou výsledky svázané s USA.

    Hledání pizzy v USA

    Výsledky jsou teď ohraničené kódem země a dotaz vrátí pizzerii v USA.

  5. 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 radius parametr . Přidáme také parametr , který omezí výsledky na pět limit nejbližší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
  6. Klikněte na Odeslat. Odpověď obsahuje výsledky pizzerií v blízkosti Seattlu Space Needle.

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í.

  1. V aplikaci po výběru nové vytvořte žádost. V okně vytvořit nové vyberte požadavek HTTP. Zadejte název žádosti .

  2. 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=1
    
  3. Klikně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.

  4. 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 .

    Hledání se obrátí.

  5. Klikněte na Odeslat a zkontrolujte text odpovědi.

  6. V dalším kroku přidáme entityType klíč a nastavíme jeho hodnotu na Municipality . entityTypeKlíč přepíše returnMatchType klíč v předchozím kroku. Bude také nutné odebrat returnSpeedLimit a, returnRoadUse protože požadujeme informace o úřadu. Všechny možné typy entit naleznete v tématu typy entit.

    Hledání zpětného entityType.

  7. 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é geometryId hodnoty 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í.

V tomto příkladu vyhledáme meziulici na základě souřadnic adresy.

  1. V aplikaci po výběru nové vytvořte žádost. V okně vytvořit nové vyberte požadavek HTTP. Zadejte název žádosti .

  2. 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
    

    Hledat mezi ulici

  3. Klikněte na Odeslat a zkontrolujte text odpovědi. Všimněte si, že odpověď obsahuje crossStreet hodnotu South Atlantic Street .

Další kroky