Wyszukiwanie lokalizacji przy użyciu usługi Azure Maps usługa wyszukiwania s
Usługa Search to zestaw interfejsów API RESTful, które ułatwiają deweloperom wyszukiwanie adresów, miejsc i list biznesowych według nazw, kategorii i innych informacji geograficznych. Oprócz obsługi tradycyjnego geokodowania usługi mogą również odwrócić adresy geokodów i ulice na podstawie szerokości geograficznej i długości geograficznej. Wartości szerokości i długości geograficznej zwracane przez wyszukiwanie mogą być używane jako parametry w innych usługach Azure Maps, takich jak Route i Weather.
W tym artykule pokazano, jak:
- Żądaj współrzędnych szerokości i długości geograficznej adresu (lokalizacji adresu geokodu) przy użyciu adresu wyszukiwania.
- Wyszukaj adres lub punkt orientacyjny (POI) przy użyciu funkcji wyszukiwania rozmytego.
- Użyj wyszukiwania odwrotnego adresu, aby przetłumaczyć lokalizację współrzędnych na adres ulicy.
- Przetłumacz lokalizację współrzędnych na zrozumiałą ulicę krzyżową przy użyciu adresu wyszukiwania Reverse Cross Street, najczęściej potrzebne w aplikacjach śledzących, które otrzymują kanał informacyjny GPS z urządzenia lub zasobu i chcą wiedzieć, gdzie znajduje się współrzędna.
Wymagania wstępne
Ważne
W przykładach adresów URL w tym artykule należy zastąpić {Your-Azure-Maps-Subscription-key}
kluczem subskrypcji usługi Azure Maps.
W tym artykule jest używana aplikacja bruno , ale możesz wybrać inne środowisko programistyczne interfejsu API.
Żądanie szerokości geograficznej i długości geograficznej dla adresu (geokodowanie)
W przykładzie w tej sekcji użyto funkcji Pobierz adres wyszukiwania, aby przekonwertować adres na współrzędne szerokości i długości geograficznej. Ten proces jest również nazywany geokodowaniem. Oprócz zwracania współrzędnych odpowiedź zwraca również szczegółowe właściwości adresu, takie jak ulica, kod pocztowy, gminy i informacje o kraju/regionie.
Napiwek
Jeśli masz zestaw adresów do geokodowania, możesz użyć usługi Batch post search, aby wysłać partię zapytań w jednym żądaniu.
Otwórz aplikację bruno, wybierz pozycję NOWE ŻĄDANIE , aby utworzyć żądanie. W oknie NOWE ŻĄDANIE ustaw wartość Typ na HTTP. Wprowadź nazwę żądania.
Wybierz metodę GET HTTP z listy rozwijanej Adres URL , a następnie wprowadź następujący adres URL:
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
Zaznacz przycisk Utwórz.
Wybierz przycisk Uruchamiania.
To żądanie wyszukuje określony adres:
400 Broad St, Seattle, WA 98109
. Następnie wyszukaj adres, który ma więcej niż jedną możliwą lokalizację.W sekcji Params zmień
query
klucz na400 Broad, Seattle
, a następnie wybierz przycisk uruchamiania.Następnie spróbuj ustawić
query
klucz na400 Broa
, a następnie wybierz przycisk uruchamiania.Odpowiedź zawiera wyniki z wielu krajów/regionów. Aby uzyskać wyniki geobiazy do odpowiedniego obszaru dla użytkowników, zawsze dodaj jak najwięcej szczegółów lokalizacji do żądania.
Wyszukiwanie rozmyte
Wyszukiwanie rozmyte obsługuje standardowe wyszukiwanie jednowierszowe i bez formularzy. Zalecamy używanie interfejsu API rozmytego wyszukiwania w usłudze Azure Maps, gdy nie znasz typu danych wejściowych użytkownika dla żądania wyszukiwania. Dane wejściowe zapytania mogą być pełnym lub częściowym adresem. Może to być również token punkt orientacyjny (POI), taki jak nazwa poi, kategoria poi lub nazwa marki. Ponadto, aby poprawić istotność wyników wyszukiwania, ogranicz wyniki zapytania przy użyciu lokalizacji współrzędnej i promienia lub definiując pole ograniczenia.
Napiwek
Większość zapytań wyszukiwania jest domyślna, aby maxFuzzyLevel=1
zwiększyć wydajność i zmniejszyć nietypowe wyniki. Dostosuj poziomy rozmycia przy użyciu parametrów maxFuzzyLevel
lub minFuzzyLevel
. Aby uzyskać więcej informacji na maxFuzzyLevel
temat parametrów opcjonalnych i pełną listę wszystkich parametrów opcjonalnych, zobacz Parametry identyfikatora URI rozmytego wyszukiwania.
Wyszukiwanie adresu przy użyciu wyszukiwania rozmytego
W przykładzie w tej sekcji użyto Fuzzy Search
funkcji wyszukiwania na całym świecie pod kątem pizzy, a następnie przeszukuje zakres określonego kraju/regionu. Na koniec pokazuje, jak używać lokalizacji współrzędnej i promienia, aby określić zakres wyszukiwania w określonym obszarze i ograniczyć liczbę zwracanych wyników.
Ważne
Aby uzyskać wyniki geobiazy do odpowiedniego obszaru dla użytkowników, zawsze dodaj jak najwięcej szczegółów lokalizacji. Aby uzyskać więcej informacji, zobacz Najlepsze rozwiązania dotyczące wyszukiwania.
Otwórz aplikację bruno, wybierz pozycję NOWE ŻĄDANIE , aby utworzyć żądanie. W oknie NOWE ŻĄDANIE ustaw wartość Typ na HTTP. Wprowadź nazwę żądania.
Wybierz metodę GET HTTP z listy rozwijanej Adres URL , a następnie wprowadź następujący adres URL:
https://atlas.microsoft.com/search/fuzzy/json?api-version=1.0&subscription-key={Your-Azure-Maps-Subscription-key}&language=en-US&query=pizza
Uwaga
Atrybut json w ścieżce adresu URL określa format odpowiedzi. W tym artykule użyto formatu JSON w celu ułatwienia użycia i czytelności. Aby znaleźć inne obsługiwane formaty odpowiedzi, zobacz definicję
format
parametru w dokumentacji referencyjnej parametru URI.Wybierz przycisk Uruchom, a następnie przejrzyj treść odpowiedzi.
Niejednoznaczny ciąg zapytania dla "pizza" zwrócił 10 punktów orientacyjnych (POI) w kategoriach "pizza" i "restaurant". Każdy wynik zawiera szczegółowe informacje, takie jak adres ulicy, wartości szerokości geograficznej i długości geograficznej, wyświetlanie portu i punkty wejścia dla lokalizacji. Wyniki są teraz zróżnicowane dla tego zapytania i nie są powiązane z żadną lokalizacją referencyjną.
W następnym kroku użyjesz parametru
countrySet
, aby określić tylko kraje/regiony, dla których aplikacja wymaga pokrycia. Aby uzyskać pełną listę obsługiwanych krajów/regionów, zobacz Pokrycie geokodowaniem w usłudze Azure Maps.Domyślne zachowanie polega na przeszukiwaniu całego świata, potencjalnie zwracaniu niepotrzebnych wyników. Następnie wyszukaj pizzę tylko w Stany Zjednoczone.
countrySet
Dodaj klucz do sekcji Params i ustaw jego wartość naUS
.countrySet
Ustawienie klucza w celuUS
ograniczenia wyników do Stany Zjednoczone.Wyniki są teraz ograniczone przez kod kraju, a zapytanie zwraca restauracje pizzy w Stany Zjednoczone.
Aby uzyskać jeszcze bardziej ukierunkowane wyszukiwanie, możesz wyszukać zakres pary współrzędnych lat/lon. W poniższym przykładzie użyto współrzędnych lat/lon seattle Space Needle. Ponieważ chcemy zwrócić wyniki tylko w promieniu 400 metrów, dodamy
radius
parametr . Ponadto dodamylimit
parametr, aby ograniczyć wyniki do pięciu najbliższych miejsc pizzy.W sekcji Params dodaj następujące pary klucz/wartość:
Key Wartość lat 47.620525 Lon -122.349274 promień 400 limit 5 Wybierz pozycję Run (Uruchom). Odpowiedź zawiera wyniki dla restauracji pizzy w pobliżu Seattle Space Needle.
Wyszukiwanie adresu ulicznego przy użyciu wyszukiwania odwrotnego adresu
Funkcja Get Search Address Reverse tłumaczy współrzędne na czytelne dla człowieka adresy uliczne. Ten interfejs API jest często używany w przypadku aplikacji korzystających z kanałów informacyjnych GPS i chce odnajdywać adresy w określonych punktach współrzędnych.
Ważne
Aby uzyskać wyniki geobiazy do odpowiedniego obszaru dla użytkowników, zawsze dodaj jak najwięcej szczegółów lokalizacji. Aby uzyskać więcej informacji, zobacz Najlepsze rozwiązania dotyczące wyszukiwania.
Napiwek
Jeśli masz zestaw lokalizacji współrzędnych do odwrócenia kodu geograficznego, możesz użyć funkcji Post Search Address Reverse Batch , aby wysłać partię zapytań w jednym żądaniu.
W tym przykładzie pokazano, że wyszukiwanie odwrotne jest używane przy użyciu kilku opcjonalnych parametrów, które są dostępne. Aby uzyskać pełną listę parametrów opcjonalnych, zobacz Reverse Search Parameters (Parametry wyszukiwania wstecznego).
Otwórz aplikację bruno, wybierz pozycję NOWE ŻĄDANIE , aby utworzyć żądanie. W oknie NOWE ŻĄDANIE ustaw wartość Typ na HTTP. Wprowadź nazwę żądania.
Wybierz metodę GET HTTP z listy rozwijanej Adres URL , a następnie wprowadź następujący adres URL:
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
Wybierz przycisk Uruchom i przejrzyj treść odpowiedzi. Powinien zostać wyświetlony jeden wynik zapytania. Odpowiedź zawiera kluczowe informacje o polu Safeco.
Następnie dodaj następujące pary klucz/wartość do sekcji Params :
Key Wartość Zwraca Liczba 1 Odpowiedź może zawierać bok ulicy (w lewo/w prawo), a także położenie przesunięcia dla liczby. returnSpeedLimit prawda Zwraca limit prędkości na adresie. returnRoadUse prawda Zwraca typy użycia dróg pod adresem. Aby uzyskać informacje o wszystkich możliwych typach użycia dróg, zobacz Typy użycia dróg. returnMatchType prawda Zwraca typ dopasowania. Aby uzyskać wszystkie możliwe wartości, zobacz Wyniki wyszukiwania odwrotnego adresu. Wybierz przycisk Uruchom i przejrzyj treść odpowiedzi.
Następnie dodaj
entityType
klucz i ustaw jego wartość naMunicipality
. KluczentityType
zastępujereturnMatchType
klucz w poprzednim kroku.returnSpeedLimit
areturnRoadUse
także trzeba usunąć, ponieważ żądasz informacji o gminie. Aby uzyskać informacje o wszystkich możliwych typach jednostek, zobacz Typy jednostek.Wybierz przycisk Uruchamiania. Porównaj wyniki z wynikami zwrócone w kroku 5. Ponieważ żądany typ jednostki to teraz
municipality
, odpowiedź nie zawiera informacji o adresie ulicy. Ponadto zwracanegeometryId
dane mogą służyć do żądania wielokąta granic za pośrednictwem interfejsu API uzyskiwania wielokąta usługi Azure Maps.
Napiwek
Aby uzyskać więcej informacji na temat tych i innych parametrów, zobacz Reverse Search Parameters (Parametry wyszukiwania wstecznego).
Wyszukiwanie ulic krzyżowych przy użyciu wyszukiwania odwrotnego adresu cross street
W tym przykładzie pokazano, jak wyszukiwać ulicę na podstawie współrzędnych adresu.
Otwórz aplikację bruno, wybierz pozycję NOWE ŻĄDANIE , aby utworzyć żądanie. W oknie NOWE ŻĄDANIE ustaw wartość Typ na HTTP. Wprowadź nazwę żądania.
Wybierz metodę GET HTTP z listy rozwijanej Adres URL , a następnie wprowadź następujący adres URL:
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
Wybierz przycisk Uruchom i przejrzyj treść odpowiedzi. Zwróć uwagę, że odpowiedź zawiera
crossStreet
wartośćSouth Atlantic Street
.