Osvědčené postupy pro Azure Mapy Search

Azure Mapy Search zahrnuje rozhraní API, které vývojářům nabízí různé možnosti, které vývojářům pomáhají hledat adresy, místa, obchodní výpisy podle názvu nebo kategorie a další geografické informace. Například funkce Hledat Přibližnázzy umožňuje uživatelům hledat adresu nebo bod zájmu (POI).

Tento článek vysvětluje, jak používat osvědčené postupy při volání dat z Azure Mapy Search. Získáte následující informace:

  • Vytváření dotazů pro vrácení relevantních shod
  • Omezení výsledků hledání
  • Seznamte se s rozdíly mezi typy výsledků.
  • Čtení struktury odpovědi pro vyhledávání adres

Požadavky

Tento článek používá aplikaci Postman k sestavení volání REST, ale můžete zvolit libovolné vývojové prostředí rozhraní API.

Osvědčené postupy pro geografické kódování adres

Když hledáte úplnou nebo částečnou adresu pomocí Azure Mapy Search, rozhraní API čte klíčová slova z vyhledávacího dotazu. Pak vrátí souřadnice zeměpisné délky a zeměpisné šířky adresy. Tento proces se nazývá geokódování.

Schopnost geokódování v zemi nebo oblasti závisí na dostupnosti silničních dat a přesnosti služby geokódování. Další informace o možnostech geokódování v Azure Mapy podle země nebo oblasti najdete v tématu Pokrytí geokódování.

Omezení výsledků hledání

Rozhraní API služby Azure Mapy Search vám může pomoct správně omezit výsledky hledání. Omezíte výsledky, abyste mohli uživatelům zobrazit relevantní data.

Poznámka:

Rozhraní API vyhledávání podporují více parametrů než jen ty, které tento článek popisuje.

Geobiased search results

Pokud chcete získat výsledky geobias do příslušné oblasti pro uživatele, vždy přidejte co nejvíce podrobností o poloze. Výsledky hledání můžete omezit zadáním některých typů vstupu:

  • countrySet Nastavte parametr. Můžete ho například nastavit na US,FRhodnotu . Ve výchozím nastavení rozhraní API prohledá celý svět, takže může vrátit nepotřebné výsledky. Pokud dotaz nemá žádný countrySet parametr, může hledání vrátit nepřesné výsledky. Například hledání města s názvem Bellevue vrátí výsledky z USA a Francie, protože obě země/oblasti obsahují město s názvem Bellevue.

  • K nastavení ohraničujícího rámečku můžete použít parametry btmRighttopleft . Tyto parametry omezují vyhledávání na konkrétní oblast na mapě.

  • Pokud chcete ovlivnit oblast relevance výsledků, definujte lat parametry a lon souřadnice. Pomocí parametru radius nastavte poloměr vyhledávací oblasti.

Přibližné parametry hledání

Pokud neznáte uživatelské vstupy vyhledávacího dotazu, doporučujeme použít funkci Přibližné vyhledávání. Vstupem od uživatele může být například adresa nebo typ bodu zájmu (POI), jako je nákupní centrum. Rozhraní API kombinuje vyhledávání poI a geokódování do kanonického jednořádkového vyhledávání:

  • maxFuzzyLevel Parametry minFuzzyLevel pomáhají vracet relevantní shody, i když parametry dotazu přesně neodpovídají požadovaným informacím. Pokud chcete maximalizovat výkon a snížit neobvyklé výsledky, nastavte vyhledávací dotazy na výchozí hodnoty minFuzzyLevel=1 a maxFuzzyLevel=2.

    Pokud je například maxFuzzyLevel parametr nastaven na hodnotu 2, bude se výraz hledání shodovat s restaurací. Výchozí úrovně přibližných shod můžete přepsat, když potřebujete.

  • Pomocí parametru idxSet upřednostníte přesnou sadu typů výsledků. Pokud chcete určit prioritu přesné sady výsledků, můžete odeslat čárkami oddělený seznam indexů. V seznamu nezáleží na pořadí položek. Azure Mapy podporuje následující indexy:

  • Addr - Rozsahy adres: Body adres, které jsou interpolované od začátku a konce ulice. Tyto body jsou reprezentovány jako rozsahy adres.

  • Geo - Zeměpisné oblasti: Správa istrativní dělení půdy. Zeměpisná oblast může být například země/oblast, stát nebo město.

  • PAD - Adresy bodů: Adresy, které obsahují název a číslo ulice. Adresy bodů najdete v indexu. Příkladem je Soquel Dr. 2501. Adresa bodu poskytuje nejvyšší úroveň přesnosti dostupné pro adresy.

  • POI - Body zájmu: Body na mapě, které jsou považovány za pozornost nebo které mohou být zajímavé. Vyhledávací adresa nevrací použijá ukazatele výkonu.

  • Str - Ulice: Ulice na mapě.

  • XStr - Křížové ulice nebo průsečíky: Křižovatky nebo místa, kde se protínají dvě ulice.

Příklady použití

  • idxSet=POI - Hledat pouze POI.

  • idxSet=PAD,Addr - Hledat jenom adresy. PAD označuje adresu bodu a Addr označuje rozsah adres.

Zpětné geografické kódování a filtrování pro typ entity zeměpisu

Když provedete vyhledávání zpětného geografického kódu pomocí zpětné adresy vyhledávání, může služba vrátit mnohoúhelníky pro administrativní oblasti. Například můžete chtít načíst mnohoúhelník oblasti pro město. Pokud chcete hledání zúžit na konkrétní typy entit zeměpisné oblasti, zahrňte do entityType svých požadavků parametr.

Výsledná odpověď obsahuje ID zeměpisné oblasti a typ entity, který se shodoval. Pokud zadáte více než jednu entitu, koncový bod vrátí nejmenší dostupnou entitu. Pomocí vráceného ID geometrie můžete získat geometrii zeměpisu prostřednictvím služby Hledat mnohoúhelník.

Ukázkový požadavek

https://atlas.microsoft.com/search/address/reverse/json?api-version=1.0&subscription-key={Your-Azure-Maps-Subscription-key}&query=47.6394532,-122.1304551&language=en-US&entityType=Municipality

Response

{
    "summary": {
        "queryTime": 14,
        "numResults": 1
    },
    "addresses": [
        {
            "address": {
                "routeNumbers": [],
                "countryCode": "US",
                "countrySubdivision": "WA",
                "countrySecondarySubdivision": "King",
                "countryTertiarySubdivision": "Seattle East",
                "municipality": "Redmond",
                "country": "United States",
                "countryCodeISO3": "USA",
                "countrySubdivisionName": "Washington"
            },
            "position": "47.639454,-122.130455",
            "dataSources": {
                "geometry": {
                    "id": "00005557-4100-3c00-0000-0000596ae571"
                }
            },
            "entityType": "Municipality"
        }
    ]
}

Nastavení jazyka výsledků

Pomocí parametru language nastavte jazyk pro vrácené výsledky hledání. Pokud požadavek nenastaví jazyk, ve výchozím nastavení Search použije nejběžnější jazyk v zemi nebo oblasti. Pokud nejsou v zadaném jazyce k dispozici žádná data, použije se výchozí jazyk.

Další informace najdete v tématu Azure Mapy podporovaných jazycích.

Použití prediktivního režimu (automatické návrhy)

Pokud chcete najít další shody pro částečné dotazy, nastavte typeahead parametr na truehodnotu . Tento dotaz se interpretuje jako částečný vstup a hledání přejde do prediktivního režimu. Pokud parametr nenastavíte typeaheadtrue, služba předpokládá, že byly předány všechny relevantní informace.

V následujícím ukázkovém dotazu se služba Search Address service dotazuje na Microso. Zde je typeahead parametr nastavený na truehodnotu . Odpověď ukazuje, že vyhledávací služba interpretovala dotaz jako částečný dotaz. Odpověď obsahuje výsledky pro automaticky navrhovaný dotaz.

Ukázkový dotaz

https://atlas.microsoft.com/search/address/json?subscription-key={Your-Azure-Maps-Subscription-key}&api-version=1.0&typeahead=true&countrySet=US&lat=47.6370891183&lon=-122.123736172&query=Microsoft

Response

{
    "summary": {
        "query": "microsoft",
        "queryType": "NON_NEAR",
        "queryTime": 18,
        "numResults": 7,
        "offset": 0,
        "totalResults": 7,
        "fuzzyLevel": 1,
        "geoBias": {
            "lat": 47.6370891183,
            "lon": -122.123736172
        }
    },
    "results": [
        {
            "type": "Street",
            "id": "US/STR/p0/9438784",
            "score": 2.594099998474121,
            "dist": 314.0590106663596,
            "address": {
                "streetName": "Microsoft Way",
                "municipalitySubdivision": "Redmond",
                "municipality": "Redmond",
            },
            "position": {
                "lat": 47.63988,
                "lon": -122.12438
            },
            "viewport": {
                "topLeftPoint": {
                    "lat": 47.64223,
                    "lon": -122.1256,
                    "valid": true
                },
                "btmRightPoint": {
                    "lat": 47.63748,
                    "lon": -122.12309,
                    "valid": true
                }
            }
        },
        {
            "type": "Street",
            "id": "US/STR/p0/1756074",
            "score": 2.592679977416992,
            "dist": 876.0272035824189,
            "address": {
                "streetName": "Microsoft Road",
                "municipalitySubdivision": "Redmond",
                "municipality": "Redmond",
                "countrySecondarySubdivision": "King",
                "countryTertiarySubdivision": "Seattle East",
                "countrySubdivision": "WA",
                "countrySubdivisionName": "Washington",
                "postalCode": "98052",
                "countryCode": "US",
                "country": "United States",
                "countryCodeISO3": "USA",
                "freeformAddress": "Microsoft Road, Redmond, WA 98052"
            },
            "position": {
                "lat": 47.64032,
                "lon": -122.1344
            },
            "viewport": {
                "topLeftPoint": {
                    "lat": 47.64253,
                    "lon": -122.13535,
                    "valid": true
                },
                "btmRightPoint": {
                    "lat": 47.63816,
                    "lon": -122.13305,
                    "valid": true
                }
            }
        },
        {
            "type": "Street",
            "id": "US/STR/p0/1470668",
            "score": 2.5290400981903076,
            "dist": 2735.4883918101486,
            "address": {
                "streetName": "Microsoft West Campus Road",
                "municipalitySubdivision": "Redmond",
                "municipality": "Bellevue",
                "countrySecondarySubdivision": "King",
                "countryTertiarySubdivision": "Seattle East",
                "countrySubdivision": "WA",
                "countrySubdivisionName": "Washington",
                "postalCode": "98007",
                "countryCode": "US",
                "country": "United States",
                "countryCodeISO3": "USA",
                "freeformAddress": "Microsoft West Campus Road, Bellevue, WA 98007"
            },
            "position": {
                "lat": 47.65784,
                "lon": -122.14335
            },
            "viewport": {
                "topLeftPoint": {
                    "lat": 47.65785,
                    "lon": -122.14335,
                    "valid": true
                },
                "btmRightPoint": {
                    "lat": 47.65784,
                    "lon": -122.14325,
                    "valid": true
                }
            }
        },
        {
            "type": "Street",
            "id": "US/STR/p0/12812615",
            "score": 2.527509927749634,
            "dist": 2870.9579016916873,
            "address": {
                "streetName": "Microsoft West Campus Road",
                "municipalitySubdivision": "Redmond",
                "municipality": "Redmond",
                "countrySecondarySubdivision": "King",
                "countryTertiarySubdivision": "Seattle East",
                "countrySubdivision": "WA",
                "countrySubdivisionName": "Washington",
                "postalCode": "98052",
                "countryCode": "US",
                "country": "United States",
                "countryCodeISO3": "USA",
                "freeformAddress": "Microsoft West Campus Road, Redmond, WA 98052"
            },
            "position": {
                "lat": 47.66034,
                "lon": -122.1404
            },
            "viewport": {
                "topLeftPoint": {
                    "lat": 47.66039,
                    "lon": -122.14325,
                    "valid": true
                },
                "btmRightPoint": {
                    "lat": 47.65778,
                    "lon": -122.13749,
                    "valid": true
                }
            }
        },
        {
            "type": "Street",
            "id": "US/STR/p0/197588",
            "score": 2.4630401134490967,
            "dist": 878.1404663812472,
            "address": {
                "streetName": "157th Avenue Northeast",
                "municipalitySubdivision": "Redmond",
                "municipality": "Redmond",
                "countrySecondarySubdivision": "King",
                "countryTertiarySubdivision": "Seattle East",
                "countrySubdivision": "WA",
                "countrySubdivisionName": "Washington",
                "postalCode": "98052",
                "extendedPostalCode": "980525344, 980525398, 980525399",
                "countryCode": "US",
                "country": "United States",
                "countryCodeISO3": "USA",
                "freeformAddress": "157th Avenue Northeast, Redmond, WA 98052"
            },
            "position": {
                "lat": 47.64351,
                "lon": -122.13056
            },
            "viewport": {
                "topLeftPoint": {
                    "lat": 47.64473,
                    "lon": -122.13058,
                    "valid": true
                },
                "btmRightPoint": {
                    "lat": 47.6425,
                    "lon": -122.13016,
                    "valid": true
                }
            }
        },
        {
            "type": "Street",
            "id": "US/STR/p0/3033991",
            "score": 2.0754499435424805,
            "dist": 3655467.8844475765,
            "address": {
                "streetName": "Microsoft Way",
                "municipalitySubdivision": "Yorkmount, Charlotte",
            },
            "position": {
                "lat": 35.14267,
                "lon": -80.91824
            },
            "viewport": {
                "topLeftPoint": {
                    "lat": 35.14287,
                    "lon": -80.91839,
                    "valid": true
                },
                "btmRightPoint": {
                    "lat": 35.14267,
                    "lon": -80.91814,
                    "valid": true
                }
            }
        },
        {
            "type": "Street",
            "id": "US/STR/p0/8395877",
            "score": 2.0754499435424805,
            "dist": 3655437.0037482483,
            "address": {
                "streetName": "Microsoft Way",
                "municipalitySubdivision": "Charlotte",
                "municipality": "Charlotte",
                "countrySecondarySubdivision": "Mecklenburg",
                "countryTertiarySubdivision": "Township 1 Charlotte",
                "countrySubdivision": "NC",
                "countrySubdivisionName": "North Carolina",
                "postalCode": "28273",
                "extendedPostalCode": "282738105, 282738106, 282738108, 2827382, 282738200",
                "countryCode": "US",
                "country": "United States",
                "countryCodeISO3": "USA",
                "freeformAddress": "Microsoft Way, Charlotte, NC 28273"
            },
            "position": {
                "lat": 35.14134,
                "lon": -80.9198
            },
            "viewport": {
                "topLeftPoint": {
                    "lat": 35.14274,
                    "lon": -80.92159,
                    "valid": true
                },
                "btmRightPoint": {
                    "lat": 35.14002,
                    "lon": -80.91824,
                    "valid": true
                }
            }
        }
    ]
}

Kódování identifikátoru URI pro zpracování speciálních znaků

Pokud chcete najít adresy přes ulici, musíte kódovat identifikátor URI, který bude zpracovávat speciální znaky v adrese. Podívejte se na tento příklad adresy: 1st Avenue & Union Street, Seattle. Před odesláním požadavku zakódujte znak ampersandu (&).

Doporučujeme kódovat znaková data v identifikátoru URI. V identifikátoru URI zakódujete všechny znaky pomocí znaku procenta (%) a šestnáctkové hodnoty se dvěma znaky, které odpovídají kódu UTF-8 znaků.

Příklady použití

Začněte s touto adresou:

query=1st Avenue & E 111th St, New York

Zakódujte adresu:

query=1st%20Avenue%20%26%20E%20111th%20St%2C%20New%20York

Můžete použít následující metody.

JavaScript nebo TypeScript:

encodeURIComponent(query)

C# nebo Visual Basic:

Uri.EscapeDataString(query)

Java:

URLEncoder.encode(query, "UTF-8") 

Python:

import urllib.parse 
urllib.parse.quote(query)

C++:

#include <curl/curl.h>
curl_easy_escape(query)

PHP:

urlencode(query)

Ruby:

CGI::escape(query) 

Swift:

query.stringByAddingPercentEncodingWithAllowedCharacters(.URLHostAllowedCharacterSet()) 

Jít:

import ("net/url") 
url.QueryEscape(query)

Osvědčené postupy pro vyhledávání poi

Ve vyhledávání poi můžete požádat o výsledky poi podle názvu. Můžete například hledat firmu podle názvu.

Důrazně doporučujeme použít countrySet parametr k určení zemí a oblastí, ve kterých vaše aplikace potřebuje pokrytí. Výchozím chováním je prohledávat celý svět. Toto široké hledání může vracet nepotřebné výsledky a hledání může trvat dlouhou dobu.

Aby se zlepšila relevance výsledků a informací v odpovědi, obsahuje odpověď vyhledávání poI informace o značce. Tyto informace můžete použít k další analýze odpovědi.

V žádosti můžete odeslat čárkami oddělený seznam jmen značek. Pomocí seznamu omezte výsledky na konkrétní značky nastavením parametru brandSet . V seznamu nezáleží na pořadí položek. Když zadáte více seznamů značek, musí vrácené výsledky patřit alespoň do jednoho z vašich seznamů.

Abychom mohli prozkoumat vyhledávání značek, vytvoříme žádost o hledání kategorií POI. V následujícím příkladu vyhledáme čerpací stanice v blízkosti areálu Microsoftu v Redmondu ve Washingtonu. V odpovědi se zobrazí informace o značce pro každou vrácenou žádost o zadání.

Ukázkový dotaz

https://atlas.microsoft.com/search/poi/json?subscription-key={Your-Azure-Maps-Subscription-key}&api-version=1.0&query=gas%20station&limit=3&lat=47.6413362&lon=-122.1327968

Response

{
    "summary": {
        "query": "gas station",
        "queryType": "NON_NEAR",
        "queryTime": 276,
        "numResults": 3,
        "offset": 0,
        "totalResults": 762680,
        "fuzzyLevel": 1,
        "geoBias": {
            "lat": 47.6413362,
            "lon": -122.1327968
        }
    },
    "results": [
        {
            "type": "POI",
            "id": "US/POI/p0/8831765",
            "score": 5.6631999015808105,
            "dist": 1037.0280221303253,
            "info": "search:ta:840531000004190-US",
            "poi": {
                "name": "Chevron",
                "phone": "+(1)-(425)-6532200",
                "brands": [
                    {
                        "name": "Chevron"
                    }
                ],
                "categorySet": [
                    {
                        "id": 7311
                    }
                ],
                "url": "www.chevron.com",
                "categories": [
                    "petrol station"
                ],
                "classifications": [
                    {
                        "code": "PETROL_STATION",
                        "names": [
                            {
                                "nameLocale": "en-US",
                                "name": "petrol station"
                            }
                        ]
                    }
                ]
            },
            "address": {
                "streetNumber": "2444",
                "streetName": "Bel Red Rd",
                "municipalitySubdivision": "Northeast Bellevue, Bellevue",
            },
            "position": {
                "lat": 47.63201,
                "lon": -122.13281
            },
            "viewport": {
                "topLeftPoint": {
                    "lat": 47.63291,
                    "lon": -122.13414,
                    "valid": true
                },
                "btmRightPoint": {
                    "lat": 47.63111,
                    "lon": -122.13148,
                    "valid": true
                }
            },
            "entryPoints": [
                {
                    "type": "main",
                    "position": {
                        "lat": 47.63222,
                        "lon": -122.13312,
                        "valid": true
                    }
                }
            ]
        },
        {
            "type": "POI",
            "id": "US/POI/p0/8831752",
            "score": 5.662710189819336,
            "dist": 1330.1278248163273,
            "info": "search:ta:840539001100326-US",
            "poi": {
                "name": "76",
                "phone": "+(1)-(425)-7472126",
                "brands": [
                    {
                        "name": "76"
                    }
                ],
                "categorySet": [
                    {
                        "id": 7311
                    }
                ],
                "url": "www.76.com",
                "categories": [
                    "petrol station"
                ],
                "classifications": [
                    {
                        "code": "PETROL_STATION",
                        "names": [
                            {
                                "nameLocale": "en-US",
                                "name": "petrol station"
                            }
                        ]
                    }
                ]
            },
            "address": {
                "streetNumber": "2421",
                "streetName": "148Th Ave Ne",
                "municipalitySubdivision": "Redmond, Bridle Trails, Bellevue",
                "municipality": "Redmond, Bellevue",
                "countrySecondarySubdivision": "King",
                "countryTertiarySubdivision": "Seattle East",
                "countrySubdivision": "WA",
                "countrySubdivisionName": "Washington",
                "postalCode": "98007",
                "countryCode": "US",
                "country": "United States",
                "countryCodeISO3": "USA",
                "freeformAddress": "2421 148Th Ave Ne, Bellevue, WA 98007",
                "localName": "Bellevue"
            },
            "position": {
                "lat": 47.63187,
                "lon": -122.14365
            },
            "viewport": {
                "topLeftPoint": {
                    "lat": 47.63277,
                    "lon": -122.14498,
                    "valid": true
                },
                "btmRightPoint": {
                    "lat": 47.63097,
                    "lon": -122.14232,
                    "valid": true
                }
            },
            "entryPoints": [
                {
                    "type": "minor",
                    "position": {
                        "lat": 47.63187,
                        "lon": -122.14374,
                        "valid": true
                    }
                },
                {
                    "type": "main",
                    "position": {
                        "lat": 47.63186,
                        "lon": -122.14313,
                        "valid": true
                    }
                }
            ]
        },
        {
            "type": "POI",
            "id": "US/POI/p0/8831764",
            "score": 5.662449836730957,
            "dist": 1458.645407416307,
            "info": "search:ta:840539000488527-US",
            "poi": {
                "name": "BROWN BEAR CAR WASH",
                "phone": "+(1)-(425)-6442868",
                "brands": [
                    {
                        "name": "Texaco"
                    }
                ],
                "categorySet": [
                    {
                        "id": 7311
                    }
                ],
                "url": "www.texaco.com/",
                "categories": [
                    "petrol station"
                ],
                "classifications": [
                    {
                        "code": "PETROL_STATION",
                        "names": [
                            {
                                "nameLocale": "en-US",
                                "name": "petrol station"
                            }
                        ]
                    }
                ]
            },
            "address": {
                "streetNumber": "15248",
                "streetName": "Bel Red Rd",
                "municipalitySubdivision": "Redmond",
            },
            "position": {
                "lat": 47.62843,
                "lon": -122.13628
            },
            "viewport": {
                "topLeftPoint": {
                    "lat": 47.62933,
                    "lon": -122.13761,
                    "valid": true
                },
                "btmRightPoint": {
                    "lat": 47.62753,
                    "lon": -122.13495,
                    "valid": true
                }
            },
            "entryPoints": [
                {
                    "type": "main",
                    "position": {
                        "lat": 47.62827,
                        "lon": -122.13628,
                        "valid": true
                    }
                }
            ]
        }
    ]
}

Pomocí rozhraní API pro vyhledávání poi můžete hledat letiště pomocí oficiálního kódu. Můžete například použít SEA k vyhledání mezinárodního letiště Seattle-Tacoma:

https://atlas.microsoft.com/search/poi/json?subscription-key={Your-Azure-Maps-Subscription-key}&api-version=1.0&query=SEA 

Pokud chcete načíst výsledky POI kolem konkrétního umístění, můžete zkusit použít funkci Hledat poblíž. Koncový bod vrátí pouze výsledky poI. Nepřebírají parametr vyhledávacího dotazu.

Pokud chcete omezit výsledky, doporučujeme nastavit poloměr.

Vysvětlení odpovědí

Pojďme najít adresu v Seattlu tak, že v Azure Mapy Search vytvoříme požadavek na vyhledávání adres. V následující adrese URL požadavku nastavíme countrySet parametr tak, aby US vyhledal adresu v USA.

Ukázkový dotaz

https://atlas.microsoft.com/search/address/json?subscription-key={Your-Azure-Maps-Subscription-key}&api-version=1&query=400%20Broad%20Street%2C%20Seattle%2C%20WA&countrySet=US

Podporované typy výsledků

  • Adresa bodu: Body na mapě, které mají konkrétní adresu s názvem ulice a číslem. Adresa bodu poskytuje nejvyšší úroveň přesnosti adres.

  • Rozsah adres: Rozsah adres, který je interpolovaný od začátku a konce ulice.

  • Zeměpis: Oblasti na mapě, které představují správní rozdělení země, například země/oblast, stát nebo město.

  • POI: Body na mapě, které stojí za pozornost a které by mohly být zajímavé.

  • Ulice: Ulice na mapě. Adresy se překládají na souřadnice zeměpisné šířky a délky ulice, která adresu obsahuje. Číslo domu nemusí být zpracováno.

  • Křížová ulice: Průsečíky. Křížové ulice představují křižovatky, kde se protínají dvě ulice.

Response

Pojďme se podívat na strukturu odpovědí. V následující odpovědi se typy výsledných objektů liší. Pokud se podíváte pečlivě, zobrazí se tři typy výsledných objektů:

  • Adresa bodu
  • Ulice
  • Křížová ulice

Všimněte si, že vyhledávání adres nevrací poi.

Parametr Score pro každý objekt odpovědi označuje, jak odpovídající skóre souvisí se skóre jiných objektů ve stejné odpovědi. Další informace o parametrech objektu odpovědi naleznete v tématu Získání adresy hledání.

{
    "summary": {
        "query": "400 broad street seattle wa",
        "queryType": "NON_NEAR",
        "queryTime": 146,
        "numResults": 6,
        "offset": 0,
        "totalResults": 7,
        "fuzzyLevel": 1
    },
    "results": [
        {
            "type": "Point Address",
            "id": "US/PAD/p0/28725082",
            "score": 9.893799781799316,
            "address": {
                "streetNumber": "400",
                "streetName": "Broad Street",
            },
            "position": {
                "lat": 47.62039,
                "lon": -122.34928
            },
            "viewport": {
                "topLeftPoint": {
                    "lat": 47.62129,
                    "lon": -122.35061,
                    "valid": true
                },
                "btmRightPoint": {
                    "lat": 47.61949,
                    "lon": -122.34795,
                    "valid": true
                }
            },
            "entryPoints": [
                {
                    "type": "main",
                    "position": {
                        "lat": 47.61982,
                        "lon": -122.34886,
                        "valid": true
                    }
                }
            ]
        },
        {
            "type": "Street",
            "id": "US/STR/p0/6700384",
            "score": 8.129190444946289,
            "address": {
                "streetName": "Broad Street",
            },
            "position": {
                "lat": 47.61724,
                "lon": -122.35207
            },
            "viewport": {
                "topLeftPoint": {
                    "lat": 47.61825,
                    "lon": -122.35336,
                    "valid": true
                },
                "btmRightPoint": {
                    "lat": 47.61626,
                    "lon": -122.35078,
                    "valid": true
                }
            }
        },
        {
            "type": "Street",
            "id": "US/STR/p0/9701953",
            "score": 8.129190444946289,
            "address": {
                "streetName": "Broad Street",
            },
            "position": {
                "lat": 47.61965,
                "lon": -122.349
            },
            "viewport": {
                "topLeftPoint": {
                    "lat": 47.62066,
                    "lon": -122.35041,
                    "valid": true
                },
                "btmRightPoint": {
                    "lat": 47.61857,
                    "lon": -122.34761,
                    "valid": true
                }
            }
        },
        {
            "type": "Street",
            "id": "US/STR/p0/11721297",
            "score": 8.129190444946289,
            "address": {
                "streetName": "Broad Street",
                "municipalitySubdivision": "Seattle, Downtown Seattle, Denny Regrade, Belltown",
                "municipality": "Seattle",
                "countrySecondarySubdivision": "King",
                "countryTertiarySubdivision": "Seattle",
                "countrySubdivision": "WA",
                "countrySubdivisionName": "Washington",
                "postalCode": "98121",
                "extendedPostalCode": "981211237",
                "countryCode": "US",
                "country": "United States",
                "countryCodeISO3": "USA",
                "freeformAddress": "Broad Street, Seattle, WA 98121"
            },
            "position": {
                "lat": 47.61825,
                "lon": -122.35078
            },
            "viewport": {
                "topLeftPoint": {
                    "lat": 47.61857,
                    "lon": -122.35078,
                    "valid": true
                },
                "btmRightPoint": {
                    "lat": 47.61825,
                    "lon": -122.35041,
                    "valid": true
                }
            }
        },
        {
            "type": "Cross Street",
            "id": "US/XSTR/p1/232144",
            "score": 6.754479885101318,
            "address": {
                "streetName": "Broad Street & Valley Street",
                "municipalitySubdivision": "South Lake Union, Seattle",
            },
            "position": {
                "lat": 47.62545,
                "lon": -122.33974
            },
            "viewport": {
                "topLeftPoint": {
                    "lat": 47.62635,
                    "lon": -122.34107,
                    "valid": true
                },
                "btmRightPoint": {
                    "lat": 47.62455,
                    "lon": -122.33841,
                    "valid": true
                }
            }
        }
    ]
}

Geometrie

Typ odpovědi geometrie může obsahovat ID geometrie, které je vráceno v objektu dataSources pod geometry a id. Pomocí služby Hledat mnohoúhelník můžete například požadovat data geometrie ve formátu GeoJSON. Pomocí tohoto formátu můžete získat osnovu města nebo letiště pro sadu entit. Tato data hranic pak můžete použít k nastavení geografické zóny nebo hledání cílů uvnitř geometrie.

Odpovědi pro vyhledávací adresu nebo přibližné vyhledávání můžou obsahovat ID geometrie, které je vráceno v objektu dataSources pod geometry a id:

"dataSources": { 
        "geometry": { 
            "id": "00005557-4100-3c00-0000-000059690938" // The geometry ID is returned in the dataSources object under "geometry" and "id".
        }
} 

Další kroky

Další informace najdete tady: