Udostępnij za pośrednictwem


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.

  1. Otwórz aplikację bruno, wybierz pozycję NOWE ŻĄDANIE , aby utworzyć żądanie. W oknie NOWE ŻĄDANIE ustaw wartość Typ na HTTP. Wprowadź nazwę żądania.

  2. 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
    
  3. Zaznacz przycisk Utwórz.

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

  5. W sekcji Params zmień query klucz na 400 Broad, Seattle, a następnie wybierz przycisk uruchamiania.

    Wyszukaj adres

  6. Następnie spróbuj ustawić query klucz na 400 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 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.

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.

  1. Otwórz aplikację bruno, wybierz pozycję NOWE ŻĄDANIE , aby utworzyć żądanie. W oknie NOWE ŻĄDANIE ustaw wartość Typ na HTTP. Wprowadź nazwę żądania.

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

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

  4. 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ść na US. countrySet Ustawienie klucza w celu US ograniczenia wyników do Stany Zjednoczone.

    Wyszukaj pizzę w Stany Zjednoczone

    Wyniki są teraz ograniczone przez kod kraju, a zapytanie zwraca restauracje pizzy w Stany Zjednoczone.

  5. 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 dodamy limit 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
  6. Wybierz pozycję Run (Uruchom). Odpowiedź zawiera wyniki dla restauracji pizzy w pobliżu Seattle Space Needle.

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

  1. Otwórz aplikację bruno, wybierz pozycję NOWE ŻĄDANIE , aby utworzyć żądanie. W oknie NOWE ŻĄDANIE ustaw wartość Typ na HTTP. Wprowadź nazwę żądania.

  2. 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
    
  3. Wybierz przycisk Uruchom i przejrzyj treść odpowiedzi. Powinien zostać wyświetlony jeden wynik zapytania. Odpowiedź zawiera kluczowe informacje o polu Safeco.

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

    Odwróć wyszukiwanie.

  5. Wybierz przycisk Uruchom i przejrzyj treść odpowiedzi.

  6. Następnie dodaj entityType klucz i ustaw jego wartość na Municipality. Klucz entityType zastępuje returnMatchType klucz w poprzednim kroku. returnSpeedLimit a returnRoadUse także trzeba usunąć, ponieważ żądasz informacji o gminie. Aby uzyskać informacje o wszystkich możliwych typach jednostek, zobacz Typy jednostek.

    Wyszukaj odwrotny typ jednostki.

  7. 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 zwracane geometryId 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).

W tym przykładzie pokazano, jak wyszukiwać ulicę na podstawie współrzędnych adresu.

  1. Otwórz aplikację bruno, wybierz pozycję NOWE ŻĄDANIE , aby utworzyć żądanie. W oknie NOWE ŻĄDANIE ustaw wartość Typ na HTTP. Wprowadź nazwę żądania.

  2. 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
    
  3. Wybierz przycisk Uruchom i przejrzyj treść odpowiedzi. Zwróć uwagę, że odpowiedź zawiera crossStreet wartość South Atlantic Street.

Następne kroki