Wyszukiwanie lokalizacji przy użyciu usługi Azure Mapy 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 Mapy, 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

W tym samouczku jest używana aplikacja Postman , 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. W aplikacji Postman wybierz pozycję Nowy , aby utworzyć żądanie. W oknie Tworzenie nowego wybierz pozycję Żądanie HTTP. Wprowadź nazwę żądania dla żądania.

  2. Wybierz metodę GET HTTP na karcie konstruktora i wprowadź następujący adres URL. W tym żądaniu wyszukujemy określony adres: 400 Braod St, Seattle, WA 98109. W przypadku tego żądania i innych żądań wymienionych w tym artykule zastąp {Your-Azure-Maps-Subscription-key} ciąg kluczem subskrypcji usługi Azure Mapy.

    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. Wybierz niebieski przycisk Wyślij . Treść odpowiedzi zawiera dane dla jednej lokalizacji.

  4. Następnie wyszukaj adres zawierający więcej niż jedną możliwą lokalizację. W sekcji Params zmień klucz na query400 Broad, Seattle. Wybierz niebieski przycisk Wyślij .

    Search for address

  5. Następnie spróbuj ustawić query klucz na 400 Broa.

  6. Kliknij przycisk Wyślij. 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życie interfejsu API rozmytego wyszukiwania usługi Azure Mapy Search, 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. W aplikacji Postman wybierz pozycję Nowy , aby utworzyć żądanie. W oknie Tworzenie nowego wybierz pozycję Żądanie HTTP. Wprowadź nazwę żądania dla żądania.

  2. Wybierz metodę GET HTTP na karcie konstruktora i wprowadź następujący adres URL. W przypadku tego żądania i innych żądań wymienionych w tym artykule zastąp {Your-Azure-Maps-Subscription-key} ciąg kluczem subskrypcji usługi Azure Mapy.

    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 pozycję Wyślij i 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 wyszukiwania.

  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.

    Search for pizza in the United States

    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 Wyślij. 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. W aplikacji Postman wybierz pozycję Nowy , aby utworzyć żądanie. W oknie Tworzenie nowego wybierz pozycję Żądanie HTTP. Wprowadź nazwę żądania dla żądania.

  2. Wybierz metodę GET HTTP na karcie konstruktora i wprowadź następujący adres URL. W przypadku tego żądania i innych żądań wymienionych w tym artykule zastąp {Your-Azure-Maps-Subscription-key} ciąg kluczem subskrypcji usługi Azure Mapy. Żądanie powinno wyglądać podobnie do następującego adresu 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&number=1
    
  3. Wybierz pozycję Wyślij i przejrzyj treść odpowiedzi. Powinien zostać wyświetlony jeden wynik zapytania. Odpowiedź zawiera kluczowe informacje o adresie Sejf co Field.

  4. Następnie dodaj następujące pary klucz/wartość do sekcji Params :

    Key Wartość Powroty
    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.

    Search reverse.

  5. Wybierz pozycję Wyślij i przejrzyj treść odpowiedzi.

  6. Następnie dodamy entityType klucz i ustawimy 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.

    Search reverse entityType.

  7. Wybierz Wyślij. 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 usługi Azure Mapy Uzyskiwanie wielokąta wyszukiwania.

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. W aplikacji Postman wybierz pozycję Nowy , aby utworzyć żądanie. W oknie Tworzenie nowego wybierz pozycję Żądanie HTTP. Wprowadź nazwę żądania dla żądania.

  2. Wybierz metodę GET HTTP na karcie konstruktora i wprowadź następujący adres URL. W przypadku tego żądania i innych żądań wymienionych w tym artykule zastąp {Your-Azure-Maps-Subscription-key} ciąg kluczem subskrypcji usługi Azure Mapy. Żądanie powinno wyglądać podobnie do następującego adresu 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
    

    Search cross street.

  3. Wybierz pozycję Wyślij i przejrzyj treść odpowiedzi. Zwróć uwagę, że odpowiedź zawiera crossStreet wartość South Atlantic Street.

Następne kroki