Najlepsze rozwiązania dotyczące usługi Azure Mapy usługa wyszukiwania

Usługa Azure Mapy usługa wyszukiwania zawiera interfejs API, który oferuje różne możliwości ułatwiające deweloperom wyszukiwanie adresów, miejsc, list biznesowych według nazwy lub kategorii oraz innych informacji geograficznych. Na przykład funkcja wyszukiwania rozmytego umożliwia użytkownikom wyszukiwanie adresu lub punktu orientacyjnego (POI).

W tym artykule wyjaśniono, jak zastosować praktyki dźwiękowe podczas wywoływania danych z usługi Azure Mapy usługa wyszukiwania. Dowiesz się, jak:

  • Tworzenie zapytań w celu zwrócenia odpowiednich dopasowań
  • Ogranicz wyniki wyszukiwania
  • Poznaj różnice między typami wyników
  • Odczytywanie struktury odpowiedzi wyszukiwania adresów

Wymagania wstępne

W tym artykule użyto aplikacji Postman do tworzenia wywołań REST, ale możesz wybrać dowolne środowisko deweloperskie interfejsu API.

Najlepsze rozwiązania dotyczące adresów geokodów

Podczas wyszukiwania pełnego lub częściowego adresu przy użyciu usługi Azure Mapy usługa wyszukiwania interfejs API odczytuje słowa kluczowe z zapytania wyszukiwania. Następnie zwraca współrzędne geograficzne i współrzędne geograficzne adresu. Ten proces jest nazywany geokodowaniem.

Możliwość geokodowania w kraju/regionie zależy od dostępności danych drogowych i dokładności usługi geokodowania. Aby uzyskać więcej informacji na temat możliwości geokodowania platformy Azure Mapy według kraju lub regionu, zobacz Pokrycie geokodowaniem.

Ogranicz wyniki wyszukiwania

Interfejs API usługi Azure Mapy Search może pomóc w odpowiednim ograniczeniu wyników wyszukiwania. Ograniczasz wyniki, dzięki czemu możesz wyświetlać odpowiednie dane użytkownikom.

Uwaga

Interfejsy API wyszukiwania obsługują więcej parametrów niż tylko te, które omówiono w tym artykule.

Wyniki wyszukiwania z stronami geograficznymi

Aby uzyskać wyniki geobiazy do odpowiedniego obszaru dla użytkownika, zawsze dodaj jak najwięcej szczegółów lokalizacji. Możesz ograniczyć wyniki wyszukiwania, określając niektóre typy danych wejściowych:

  • countrySet Ustaw parametr . Można go ustawić na US,FRwartość , na przykład. Domyślnie interfejs API wyszukuje cały świat, aby mógł zwracać niepotrzebne wyniki. Jeśli zapytanie nie countrySet ma parametru, wyszukiwanie może zwracać niedokładne wyniki. Na przykład wyszukiwanie miasta o nazwie Bellevue zwraca wyniki z USA i Francji, ponieważ oba kraje/regiony zawierają miasto o nazwie Bellevue.

  • Możesz użyć parametrów btmRight i topleft , aby ustawić pole ograniczenia. Te parametry ograniczają wyszukiwanie do określonego obszaru na mapie.

  • Aby wpłynąć na obszar istotności wyników, zdefiniuj lat parametry i lon współrzędnych. Użyj parametru , radius aby ustawić promień obszaru wyszukiwania.

Parametry wyszukiwania rozmytego

Zalecamy użycie funkcji Wyszukiwania rozmyte , gdy nie znasz danych wejściowych użytkownika dla zapytania wyszukiwania. Na przykład dane wejściowe od użytkownika mogą być adresem lub typem punktu orientacyjnego (POI), na przykład centrum handlowego. Interfejs API łączy wyszukiwanie interfejsu WIERSZA i geokodowanie w kanoniczne wyszukiwanie jednowierszowe:

  • Parametry minFuzzyLevel i maxFuzzyLevel pomagają zwracać odpowiednie dopasowania, nawet jeśli parametry zapytania nie są dokładnie zgodne z informacjami, których chce użytkownik. Aby zmaksymalizować wydajność i zmniejszyć nietypowe wyniki, ustaw zapytania wyszukiwania na wartości domyślne i minFuzzyLevel=1maxFuzzyLevel=2.

    Na przykład gdy maxFuzzyLevel parametr ma wartość 2, termin wyszukiwania jest dopasowywany do restauracji. W razie potrzeby można zastąpić domyślne poziomy rozmyte.

  • Użyj parametru , idxSet aby określić priorytety dokładnego zestawu typów wyników. Aby określić dokładny zestaw wyników, możesz przesłać rozdzielaną przecinkami listę indeksów. Na liście kolejność elementów nie ma znaczenia. Usługa Azure Mapy obsługuje następujące indeksy:

  • Addr - Zakresy adresów: punkty adresów interpolowane od początku i końca ulicy. Te punkty są reprezentowane jako zakresy adresów.

  • Geo - Geografie: Administracja istracyjne podziały ziemi. Lokalizacja geograficzna może być na przykład krajem/regionem, stanem lub miastem.

  • PAD - Adresy punktów: adresy zawierające nazwę ulicy i numer. Adresy punktów można znaleźć w indeksie. Przykładem jest Soquel Dr 2501. Adres punktu zapewnia najwyższy poziom dokładności dostępnych dla adresów.

  • POI - Punkty orientacyjne: punkty na mapie, które są uważane za warte uwagi lub które mogą być interesujące. Adres wyszukiwania nie zwraca interfejsów POI.

  • Str - Ulice: Ulice na mapie.

  • XStr - Skrzyżowania lub skrzyżowania: skrzyżowania lub miejsca, w których przecinają się dwie ulice.

Przykłady użycia

  • idxSet=POI — Wyszukaj tylko interfejsy POI.

  • idxSet=PAD,Addr — Tylko adresy wyszukiwania. PAD wskazuje adres punktu i Addr wskazuje zakres adresów.

Odwrotne geokodowanie i filtrowanie dla typu jednostki geografii

Podczas wyszukiwania odwrotnego kodu geograficznego przy użyciu odwrotnego adresu wyszukiwania usługa może zwracać wielokąty dla obszarów administracyjnych. Na przykład możesz pobrać wielokąt obszaru dla miasta. Aby zawęzić wyszukiwanie do określonych typów jednostek geograficznych, uwzględnij entityType parametr w żądaniach.

Wynikowa odpowiedź zawiera identyfikator geografii i typ jednostki, który został dopasowany. Jeśli podasz więcej niż jedną jednostkę, punkt końcowy zwróci najmniejszą dostępną jednostkę. Możesz użyć zwróconego identyfikatora geometrii, aby uzyskać geometrię geografii za pośrednictwem usługi Wielokąta wyszukiwania.

Przykładowe żądanie

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"
        }
    ]
}

Ustawianie języka wyników

Użyj parametru language , aby ustawić język dla zwróconych wyników wyszukiwania. Jeśli żądanie nie ustawi języka, domyślnie usługa wyszukiwania używa najczęściej używanego języka w kraju lub regionie. Jeśli w określonym języku nie są dostępne żadne dane, używany jest język domyślny.

Aby uzyskać więcej informacji, zobacz Azure Mapy obsługiwanych języków.

Korzystanie z trybu predykcyjnego (sugestie automatyczne)

Aby znaleźć więcej dopasowań dla zapytań częściowych, ustaw typeahead parametr na truewartość . To zapytanie jest interpretowane jako dane wejściowe częściowe, a wyszukiwanie przechodzi w tryb predykcyjny. Jeśli nie ustawisz parametru typeahead na true, usługa zakłada, że wszystkie istotne informacje zostały przekazane.

W poniższym przykładowym zapytaniu usługa adresu wyszukiwania jest odpytywane dla mikroso. typeahead W tym miejscu parametr jest ustawiony na truewartość . Odpowiedź pokazuje, że usługa wyszukiwania zinterpretowała zapytanie jako zapytanie częściowe. Odpowiedź zawiera wyniki automatycznie sugerowanego zapytania.

Przykładowe zapytanie

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
                }
            }
        }
    ]
}

Kodowanie identyfikatora URI do obsługi znaków specjalnych

Aby znaleźć adresy krzyżowe, należy zakodować identyfikator URI, aby obsługiwać znaki specjalne w adresie. Rozważmy ten przykład adresu: 1st Avenue & Union Street, Seattle. W tym miejscu zakoduj znak ampersand (&) przed wysłaniem żądania.

Zalecamy kodowanie danych znaków w identyfikatorze URI. W identyfikatorze URI kodujesz wszystkie znaki przy użyciu znaku procentowego (%) i dwuznakowej wartości szesnastkowej odpowiadającej kodowi UTF-8 znaków.

Przykłady użycia

Zacznij od tego adresu:

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

Zakoduj adres:

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

Możesz użyć następujących metod:

JavaScript lub TypeScript:

encodeURIComponent(query)

C# lub 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()) 

Przejdź:

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

Najlepsze rozwiązania dotyczące wyszukiwania poi

W wyszukiwaniu poi można żądać wyników poI według nazwy. Możesz na przykład wyszukać firmę według nazwy.

Zdecydowanie zalecamy użycie parametru countrySet w celu określenia krajów/regionów, w których aplikacja wymaga pokrycia. Domyślne zachowanie polega na przeszukiwaniu całego świata. To szerokie wyszukiwanie może zwracać niepotrzebne wyniki, a wyszukiwanie może zająć dużo czasu.

Aby poprawić znaczenie wyników i informacji w odpowiedzi, odpowiedź wyszukiwania poi zawiera informacje o marce. Możesz użyć tych informacji, aby dokładniej przeanalizować odpowiedź.

W żądaniu można przesłać rozdzielaną przecinkami listę nazw marek. Użyj listy, aby ograniczyć wyniki do określonych marek, ustawiając brandSet parametr . Na liście kolejność elementów nie ma znaczenia. Po podaniu wielu list markowych zwracane wyniki muszą należeć do co najmniej jednej z list.

Aby zapoznać się z wyszukiwaniem marki, utwórzmy żądanie wyszukiwania kategorii POI. W poniższym przykładzie szukamy stacji benzynowych w pobliżu kampusu firmy Microsoft w Redmond w stanie Waszyngton. Odpowiedź zawiera informacje o marce dla każdego zwróconego interfejsu POI.

Przykładowe zapytanie

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
                    }
                }
            ]
        }
    ]
}

Korzystając z interfejsu API wyszukiwania poi, można wyszukiwać lotniska przy użyciu ich oficjalnego kodu. Na przykład możesz użyć protokołu SEA , aby znaleźć międzynarodowe lotnisko Seattle-Tacoma:

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

Aby pobrać wyniki poi wokół określonej lokalizacji, możesz spróbować użyć funkcji Wyszukaj w pobliżu. Punkt końcowy zwraca tylko wyniki poi. Nie bierze parametru zapytania wyszukiwania.

Aby ograniczyć wyniki, zalecamy ustawienie promienia.

Informacje o odpowiedziach

Znajdźmy adres w Seattle, wysyłając żądanie wyszukiwania adresów do usługi Azure Mapy usługa wyszukiwania. W poniższym adresie URL żądania ustawiliśmy countrySet parametr na US wartość , aby wyszukać adres w Stanach Zjednoczonych.

Przykładowe zapytanie

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

Obsługiwane typy wyników

  • Adres punktu: punkty na mapie, które mają określony adres z nazwą ulicy i numerem. Punkt adresowy zapewnia najwyższy poziom dokładności adresów.

  • Zakres adresów: zakres punktów adresowych interpolowanych od początku i końca ulicy.

  • Geografia: Obszary na mapie reprezentujące podziały administracyjne ziemi, na przykład kraj/region, stan lub miasto.

  • PoI: Punkty na mapie, które są warte uwagi i które mogą być interesujące.

  • Ulica: Ulice na mapie. Adresy są rozpoznawane ze współrzędnymi szerokości i długości geograficznej ulicy, która zawiera adres. Numer domu może nie zostać przetworzony.

  • Cross Street: Skrzyżowania. Skrzyżowania ulic reprezentują skrzyżowania, na których przecinają się dwie ulice.

Response

Przyjrzyjmy się strukturze odpowiedzi. W poniższej odpowiedzi typy obiektów wynikowych są różne. Jeśli przyjrzysz się uważnie, zobaczysz trzy typy obiektów wyników:

  • Adres punktu
  • Ulica
  • Cross Street

Zwróć uwagę, że wyszukiwanie adresów nie zwraca interfejsów POI.

Parametr Score dla każdego obiektu odpowiedzi wskazuje, w jaki sposób pasujący wynik odnosi się do wyników innych obiektów w tej samej odpowiedzi. Aby uzyskać więcej informacji na temat parametrów obiektu odpowiedzi, zobacz Get Search Address (Uzyskiwanie adresu wyszukiwania).

{
    "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
                }
            }
        }
    ]
}

Geometria

Typ odpowiedzi Geometry może zawierać identyfikator geometrii zwrócony w dataSources obiekcie w obszarze geometry i id. Na przykład możesz użyć usługi Wielokąta wyszukiwania, aby zażądać danych geometrycznych w formacie GeoJSON. Korzystając z tego formatu, możesz uzyskać konspekt miasta lub lotniska dla zestawu jednostek. Następnie możesz użyć tych danych granic do skonfigurowania geofencingu lub wyszukiwania interfejsów POI wewnątrz geometrii.

Odpowiedzi na adres wyszukiwania lub rozmyte wyszukiwanie mogą zawierać identyfikator geometrii zwrócony w dataSources obiekcie w obszarze geometry i id:

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

Następne kroki

Aby dowiedzieć się więcej, zobacz: