Hely keresése az Azure Maps Search szolgáltatás használatával
A Keresési szolgáltatás RESTful API-k készlete, amelyek segítségével a fejlesztők név, kategória és egyéb földrajzi adatok alapján kereshetnek címeket, helyeket és üzleti listákat. A hagyományos geokódolás támogatása mellett a szolgáltatások a földrajzi címeket és az utcakereszteket is megfordíthatják a szélességek és hosszúságok alapján. A keresés által visszaadott szélességi és hosszúsági értékek paraméterekként használhatók más Azure Maps-szolgáltatásokban, például az Útvonal és az Időjárás szolgáltatásban.
Ez a cikk bemutatja, hogyan:
- Földrajzi szélességi és hosszúsági koordináták kérése egy címhez (geokód címhelyéhez) a Keresési cím használatával.
- Keressen egy címet vagy érdeklődési pontot (POI) a Fuzzy Search használatával.
- A Fordított címkeresés funkcióval lefordíthatja a koordináták helyét utcacímre.
- Lefordítani a koordináták helyét egy emberi, érthető keresztutcába a Keresési cím fordított kereszt utca használatával, amely leggyakrabban olyan alkalmazások nyomon követéséhez szükséges, amelyek gps-csatornát kapnak egy eszközről vagy eszközről, és szeretnék tudni, hogy hol található a koordináták.
Előfeltételek
Fontos
A cikkben szereplő URL-példákban le kell cserélnie {Your-Azure-Maps-Subscription-key}
az Azure Maps-előfizetési kulcsát.
Ez a cikk a bruno alkalmazást használja, de választhat egy másik API-fejlesztési környezetet.
Földrajzi szélesség és hosszúság kérése egy címhez (geokódolás)
Az ebben a szakaszban szereplő példa a Keresési cím lekérése használatával konvertál egy címet szélességi és hosszúsági koordinátákká. Ezt a folyamatot geokódolásnak is nevezik. A koordináták visszaadása mellett a válasz olyan részletes címtulajdonságokat is visszaad, mint az utca, az irányítószám, az önkormányzat és az ország/régió adatai.
Tipp.
Ha több címmel rendelkezik a geokódoláshoz, a Post Search Címköteg használatával egyetlen kérelemben küldhet lekérdezéseket.
Nyissa meg a bruno alkalmazást, és válassza az ÚJ KÉRÉS lehetőséget a kérés létrehozásához. Az ÚJ KÉRELEM ablakban állítsa a Típust HTTP-nek. Adja meg a kérés nevét.
Válassza ki a GET HTTP metódust az URL-legördülő listában, majd adja meg a következő URL-címet:
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
Válassza a Létrehozás gombot.
Válassza a futtatás gombot.
Ez a kérés egy adott címet keres:
400 Broad St, Seattle, WA 98109
. Ezután keressen egy olyan címet, amely több lehetséges hellyel rendelkezik.A Params szakaszban módosítsa a
query
kulcsot a következőre400 Broad, Seattle
, majd válassza a futtatás gombot.Ezután próbálja meg beállítani a
query
kulcsot400 Broa
, majd válassza a futtatás gombot.A válasz több országból/régióból származó eredményeket is tartalmaz. Ha a felhasználók számára a megfelelő területre szeretne eredményeket geobiázni , mindig adja hozzá a lehető legtöbb helyadatokat a kéréshez.
Homályos keresés
A Fuzzy Search támogatja a szabványos egysoros és szabad formátumú kereséseket. Javasoljuk, hogy akkor használja az Azure Maps Search Fuzzy API-t, ha nem ismeri a felhasználói beviteli típust a keresési kérelemhez. A lekérdezés bemenete lehet teljes vagy részleges cím. Ez lehet egy Pont típusú (POI) jogkivonat is, például a POI neve, a POI-kategória vagy a márka neve. Ezenkívül a keresési eredmények relevanciájának javítása érdekében korlátozza a lekérdezési eredményeket egy koordináta-hely és sugár használatával, vagy határolókeret meghatározásával.
Tipp.
A legtöbb keresési lekérdezés alapértelmezés szerint a teljesítmény javítása és a szokatlan eredmények csökkentése érdekében van.maxFuzzyLevel=1
A homályossági szinteket a paraméterek vagy minFuzzyLevel
a maxFuzzyLevel
paraméterek használatával módosíthatja. További információ maxFuzzyLevel
és az összes választható paraméter teljes listája: Fuzzy Search URI Parameters.
Cím keresése a Fuzzy Search használatával
Az ebben a szakaszban Fuzzy Search
szereplő példa az egész világon keres pizzát, majd egy adott ország/régió hatókörén keres. Végül bemutatja, hogyan használható koordinátahely és sugár egy adott területen végzett keresés hatókörére, és hogyan korlátozhatja a visszaadott találatok számát.
Fontos
Ha a felhasználók számára a megfelelő területre szeretne eredményeket geobiázni, mindig adja hozzá a lehető legtöbb helyadatokat. További információ: Ajánlott eljárások a kereséshez.
Nyissa meg a bruno alkalmazást, és válassza az ÚJ KÉRÉS lehetőséget a kérés létrehozásához. Az ÚJ KÉRELEM ablakban állítsa a Típust HTTP-nek. Adja meg a kérés nevét.
Válassza ki a GET HTTP metódust az URL-legördülő listában, majd adja meg a következő URL-címet:
https://atlas.microsoft.com/search/fuzzy/json?api-version=1.0&subscription-key={Your-Azure-Maps-Subscription-key}&language=en-US&query=pizza
Feljegyzés
Az URL-útvonal json attribútuma határozza meg a válaszformátumot. Ez a cikk json-t használ a könnyű használat és az olvashatóság érdekében. A többi támogatott válaszformátum megkereséséhez tekintse meg a
format
paraméterdefiníciót az URI paraméter referenciadokumentációjában .Válassza a Futtatás gombot, majd tekintse át a válasz törzsét.
A "pizza" nem egyértelmű lekérdezési sztringje 10 érdekes pontot adott vissza (POI) a "pizza" és az "étterem" kategóriában is. Minden eredmény olyan részleteket tartalmaz, mint az utcacím, a szélességi és hosszúsági értékek, a port megtekintése és a hely belépési pontjai. Az eredmények mostantól változnak a lekérdezéshez, és nincsenek hivatkozási helyhez kötve.
A következő lépésben a
countrySet
paraméter használatával csak azokat az országokat/régiókat adja meg, amelyek esetében az alkalmazásnak lefedettségre van szüksége. A támogatott országok/régiók teljes listájáért tekintse meg az Azure Maps geokódolási lefedettségét.Az alapértelmezett viselkedés az egész világon való keresés, ami esetleg szükségtelen eredményeket ad vissza. Ezután csak a Egyesült Államok keressen pizzát. Adja hozzá a
countrySet
kulcsot a Params szakaszhoz, és állítsa az értékét a következőreUS
: . Ha a kulcsot úgycountrySet
állítja be, hogyUS
az eredményeket a Egyesült Államok köti össze.Az eredményeket az országkód határolja, és a lekérdezés a Egyesült Államok pizzaéttermeket adja vissza.
A még célzottabb keresés érdekében egy lat/lon koordináta-pár hatókörén is kereshet. Az alábbi példa a Seattle Space Needle lat/lon koordinátáit használja. Mivel csak 400 méter sugarú körben szeretnénk eredményeket visszaadni, hozzáadjuk a paramétert
radius
. Emellett hozzáadjuk alimit
paramétert, hogy az eredményeket az öt legközelebbi pizzahelyre korlátozzuk.A Params szakaszban adja hozzá a következő kulcs-érték párokat:
Kulcs Érték Lat 47.620525 Lon -122.349274 orsócsont 400 korlát 5 Válassza a Futtatás lehetőséget. A válasz tartalmazza az eredményeket pizza éttermek közelében a Seattle Space Needle.
Utcacím keresése fordított címkereséssel
A Keresési cím fordított lekérése a koordinátákat emberi olvasható utcacímekké fordítja le. Ezt az API-t gyakran használják GPS-hírcsatornákat használó alkalmazásokhoz, és adott koordinátákon szeretnének címeket felderíteni.
Fontos
Ha a felhasználók számára a megfelelő területre szeretne eredményeket geobiázni , mindig adja hozzá a lehető legtöbb helyadatokat. További információ: Ajánlott eljárások a kereséshez.
Tipp.
Ha koordináta-helyekkel rendelkezik a geokód visszafejtéséhez, a Post Search Address Reverse Batch használatával egyetlen kérelemben küldhet lekérdezéseket.
Ez a példa bemutatja, hogy fordított kereséseket végez néhány választható paraméter használatával. Az opcionális paraméterek teljes listáját lásd : Fordított keresési paraméterek.
Nyissa meg a bruno alkalmazást, és válassza az ÚJ KÉRÉS lehetőséget a kérés létrehozásához. Az ÚJ KÉRELEM ablakban állítsa a Típust HTTP-nek. Adja meg a kérés nevét.
Válassza ki a GET HTTP metódust az URL-legördülő listában, majd adja meg a következő URL-címet:
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
Válassza ki a futtatás gombot, és tekintse át a válasz törzsét. Egy lekérdezési eredménynek kell megjelennie. A válasz tartalmazza a Safeco Mező kulcscímadatait.
Ezután adja hozzá a következő kulcs/érték párokat a Params szakaszhoz:
Kulcs Érték Válaszok szám 0 A válasz tartalmazhatja az utca oldalát (balra/jobbra) és a szám eltolási pozícióját is. returnSpeedLimit true A címben megadott sebességkorlátot adja vissza. returnRoadUse true A címben szereplő úthasználati típusokat adja vissza. Az összes lehetséges úthasználati típust lásd : Úthasználati típusok. returnMatchType true Az egyezés típusát adja vissza. Az összes lehetséges értékről lásd : Fordított cím keresési eredményei. Válassza ki a futtatás gombot, és tekintse át a válasz törzsét.
Ezután adja hozzá a
entityType
kulcsot, és állítsa az értékét a következőreMunicipality
: . AentityType
kulcs felülbírálja areturnMatchType
kulcsot az előző lépésben.returnSpeedLimit
ésreturnRoadUse
el is kell távolítani, mivel adatokat kér az önkormányzatról. Az összes lehetséges entitástípust lásd : Entitástípusok.Válassza a futtatás gombot. Hasonlítsa össze az eredményeket az 5. lépésben visszaadott eredményekkel. Mivel a kért entitástípus most már
municipality
létezik, a válasz nem tartalmaz utcacímadatokat. A visszaadott értékgeometryId
felhasználható a határ sokszög lekérésére is az Azure Maps Get Search Polygon API-val.
Tipp.
Ezekről és más paraméterekről további információt a Fordított keresési paraméterek című témakörben talál.
Utcakereszt keresése fordított címmel keresztutcás kereséssel
Ez a példa bemutatja, hogyan kereshet keresztutcát egy cím koordinátái alapján.
Nyissa meg a bruno alkalmazást, és válassza az ÚJ KÉRÉS lehetőséget a kérés létrehozásához. Az ÚJ KÉRELEM ablakban állítsa a Típust HTTP-nek. Adja meg a kérés nevét.
Válassza ki a GET HTTP metódust az URL-legördülő listában, majd adja meg a következő URL-címet:
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
Válassza ki a futtatás gombot, és tekintse át a válasz törzsét. Figyelje meg, hogy a válasz a következő értéket
South Atlantic Street
tartalmazzacrossStreet
: .