Поделиться через


Поиск расположения с помощью службы "Поиск" Azure Maps

Служба поиска — это набор API RESTful, предназначенных для поиска по адресам, местам и бизнес-спискам разработчиков по имени, категориям и другим географическим данным. Помимо традиционного геокодирования, поддерживается также обратное геокодирование для поиска адресов и пересекающих улиц по широте и долготе. Значения широты и долготы, возвращаемые поиском, можно использовать в качестве параметров в других службах Azure Maps, таких как Route и Weather.

В этой статье демонстрируются следующие возможности.

  • Запрос координат широты и долготы для адреса (расположения адреса геокода) с помощью адреса поиска.
  • Найдите адрес или точку интереса (POI) с помощью нечеткого поиска.
  • Используйте обратный поиск адресов, чтобы перевести расположение координат на адрес улицы.
  • Используйте API обратного перекрестного пересечения адреса поиска , чтобы преобразовать расположение координат в удобочитаемую пользователем перекрестную улицу. Это особенно полезно в приложениях для отслеживания, которые получают данные GPS от устройств или оборудования и им необходимо определить ближайшее местоположение на уровне улицы для этих координат.

Необходимые компоненты

Внимание

В примерах URL-адресов в этой статье вы должны заменить {Your-Azure-Maps-Subscription-key} на свой ключ подписки Azure Maps.

В этой статье используется приложение Бруно , но вы можете выбрать другую среду разработки API.

Запрос широты и долготы по адресу (геокодирование)

В этом разделе используется метод Get Search Address для преобразования адреса в координаты широты и долготы. Этот процесс называется еще геокодированием. Помимо возврата координат, ответ также возвращает подробные свойства адреса, такие как улица, почтовый индекс, муниципалитет и информация о стране или регионе.

Совет

Если у вас есть набор адресов для геокода, можно использовать пакет post search address для отправки пакета запросов в одном запросе.

  1. Откройте приложение Бруно .

  2. Выберите НОВЫЙ ЗАПРОС , чтобы создать запрос. В окне NEW REQUEST задайте для типаHTTP. Введите имя запроса.

  3. Выберите метод GET HTTP в раскрывающемся списке URL-адресов и введите следующий 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
    
  4. Выберите кнопку Создать.

  5. Нажмите кнопку запуска.

    Этот запрос выполняет поиск определенного адреса: 400 Broad St, Seattle, WA 98109 Затем выполните поиск по адресу с несколькими возможными расположениями.

  6. В разделе "Params"ключ queryна , а затем нажмите кнопку запуска.

    Поиск по адресу

  7. Затем попробуйте задать query для ключа значение 400 Broa, а затем нажмите кнопку запуска.

    Ответ включает результаты из нескольких стран или регионов. Чтобы получить результаты геобиа в соответствующую область для пользователей, всегда добавьте в запрос столько сведений о расположении.

Нечеткий поиск поддерживает стандартные однострочные и бесплатные поиски. Использовать этот API рекомендуется, если вы не знаете тип входных данных, введенных пользователем в поисковом запросе. Входными данными запроса могут быть полный адрес, частичный адрес или маркер точки интереса (POI), например имя POI, ее категория или название торговой марки. Кроме того, чтобы повысить релевантность результатов поиска, ограничить результаты запроса с помощью расположения координат и радиуса или определить ограничивающий прямоугольник.

Совет

Большинство запросов поиска по умолчанию позволяют maxFuzzyLevel=1 повысить производительность и уменьшить необычные результаты. Настройте уровни нечеткости с помощью maxFuzzyLevel или minFuzzyLevel параметров. Дополнительные сведения и maxFuzzyLevel полный список всех необязательных параметров см. в разделе URI нечетких параметров поиска.

Пример в этом разделе используется Fuzzy Search для поиска всей области пиццы, а затем выполняет поиск по определенной стране или региону. Наконец, в нем показано, как использовать расположение координат и радиус для области поиска по определенной области и ограничить количество возвращаемых результатов.

Внимание

Чтобы ограничить результаты нужной пользователю географической областью, всегда указывайте как можно больше сведений о расположении. Дополнительные сведения см. в рекомендациях по поиску.

  1. Откройте приложение Бруно .

  2. Выберите НОВЫЙ ЗАПРОС , чтобы создать запрос. В окне NEW REQUEST задайте для типаHTTP. Введите имя запроса.

  3. Выберите метод GET HTTP в раскрывающемся списке URL-адресов и введите следующий URL-адрес:

    https://atlas.microsoft.com/search/fuzzy/json?api-version=1.0&subscription-key={Your-Azure-Maps-Subscription-key}&language=en-US&query=pizza
    

    Примечание.

    Атрибут json в URL-адресе пути определяет формат ответа. В этой статье используется JSON для удобства использования и удобства чтения. Другие поддерживаемые форматы ответа см. в определении параметра format в документации по параметрам URI.

  4. Нажмите кнопку запуска, а затем просмотрите текст ответа.

    Неоднозначная строка запроса для "пиццы" вернула 10 точек интереса (POI) приводит как к категории "пицца" и "ресторан". Каждый результат содержит улицу и номер дома, значения широты и долготы, окно просмотра и точки входа в интересующее место. Результаты теперь отличаются для этого запроса и не привязаны к любому ссылочного расположения.

    На следующем шаге вы будете использовать countrySet параметр, чтобы указать только страны или регионы, для которых требуется охват приложения. Полный список поддерживаемых стран и регионов см. в разделе "Покрытие геокодирования Azure Maps".

  5. По умолчанию поиск ведется по всему миру, из-за чего ответ может содержать ненужные результаты. Затем найдите пиццу только в США. Добавьте ключ countrySet в раздел Params (Параметры) и задайте для него значение US. countrySet Установка ключа для US привязки результатов к США.

    Поиск пиццы в США

    Теперь результаты ограничены кодом страны и запрос возвращает адреса пиццерий в США.

  6. Чтобы получить еще более целевой поиск, можно выполнить поиск по области пары координат lat/lon. В следующем примере используются координаты lat/lon в Сиэтле Space Needle. Так как мы хотим возвращать результаты только в радиусе 400 метров, мы добавим radius этот параметр. Кроме того, мы добавим limit параметр, чтобы ограничить результаты пятью ближайшими местами пиццы.

    В разделе Params (Параметры) добавьте следующие пары "ключ-значение":

    Ключ Значение
    шир. 47,620525
    lon –122,349274
    радиус 400
    limit 5
  7. Нажмите Выполнить. Ответ будет содержать сведения о пиццериях в окрестности башни Спейс-Нидл в Сиэтле.

Получение обратного адреса поиска преобразует координаты в удобочитаемые уличные адреса. Этот API часто используется в приложениях, которые получают веб-каналы GPS и которым требуется определять адреса, располагающиеся по данным координатам.

Внимание

Чтобы получить результаты геобиа в соответствующую область для пользователей, всегда добавьте максимальное количество сведений о расположении. Дополнительные сведения см. в рекомендациях по поиску.

Совет

Если у вас есть набор расположений координат для обратного геокода, можно использовать обратный пакет для обратного поиска по адресу для отправки пакета запросов в одном запросе.

В этом примере показано, как выполнять обратный поиск с помощью нескольких доступных необязательных параметров. Полный список необязательных параметров см. в разделе "Параметры URI" документации API обратного поиска.

  1. Откройте приложение Бруно .

  2. Выберите НОВЫЙ ЗАПРОС , чтобы создать запрос. В окне NEW REQUEST задайте для типаHTTP. Введите имя запроса.

  3. Выберите метод GET HTTP в раскрывающемся списке URL-адресов и введите следующий 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
    
  4. Нажмите кнопку запуска и просмотрите текст ответа. Должен быть возвращен всего один результат. Ответ содержит ключевые сведения об адресе T-Mobile Park.

  5. Затем добавьте следующие пары "ключ-значение" в раздел Params :

    Ключ Значение Возвраты
    number 1 Ответ может включать сторону улицы (слева или справа), а также положение смещения для числа.
    returnSpeedLimit true Возвращает ограничение скорости для данного адреса.
    returnRoadUse true Возвращает типы дорог по способу использования для данного адреса. Все возможные типы дорог по способу использования см. в описании параметра roadUse.
    returnMatchType true Возвращает тип совпадения. Все возможные значения см. в разделе "Результаты поиска обратного адреса".

    Обратный поиск.

  6. Нажмите кнопку запуска и просмотрите текст ответа.

  7. Затем добавьте ключ и задайте для нее entityType значение Municipality. Ключ entityType переопределяет returnMatchType ключ на предыдущем шаге. returnSpeedLimit а returnRoadUse также необходимо удалить, так как вы запрашиваете информацию о муниципалитете. Все возможные типы сущностей см. в описании объекта EntityType.

    Задание типа сущности при обратном поиске.

  8. Нажмите кнопку запуска. Сравните результаты с теми, которые были возвращены на шаге 5. Так как запрошенный тип сущности теперь municipalityявляется, ответ не содержит сведения об адресе улицы. Кроме того, по возвращаемому значению geometryId можно запросить многоугольный контур интересующей области с помощью API поиска многоугольника (GET) Azure Maps.

Совет

Дополнительные сведения см. в разделе "Параметры обратного поиска".

В этом примере показано, как искать перекрестную улицу на основе координат адреса.

  1. Откройте приложение Бруно .

  2. Выберите НОВЫЙ ЗАПРОС , чтобы создать запрос. В окне NEW REQUEST задайте для типаHTTP. Введите имя запроса.

  3. Выберите метод GET HTTP в раскрывающемся списке URL-адресов и введите следующий 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
    
  4. Нажмите кнопку запуска и просмотрите текст ответа. Обратите внимание, что ответ содержит crossStreet значение South Atlantic Street.

В этой статье демонстрируются следующие возможности.

  • Запрос координат широты и долготы для адреса (расположения адреса геокода) с помощью get Geocoding.
  • Найдите частичный адрес с помощью Get Geocode Autocomplete.
  • Используйте обратное геокодирование, чтобы перевести местоположение координат на адрес улицы.
  • Перевод расположения координат в понятный для человека перекресток с помощью функции Обратного Геокодирования, чаще всего необходима для приложений отслеживания, которые получают GPS-поток от устройства или ресурса и хотят знать, где расположена эта координата.

Необходимые компоненты

Внимание

В примерах URL-адресов в этой статье вы должны заменить {Your-Azure-Maps-Subscription-key} на свой ключ подписки Azure Maps.

В этой статье используется приложение Бруно , но вы можете выбрать другую среду разработки API.

Запросите координаты для адреса с использованием метода Get Geocoding

В примере в этом разделе используется get Geocoding для преобразования адреса в координаты широты и долготы. Этот процесс называется еще геокодированием. Помимо возврата координат, ответ также возвращает подробные свойства адреса, такие как улица, почтовый индекс, муниципалитет и информация о стране или регионе.

Совет

Если у вас есть набор адресов для геокодирования, вы можете использовать Получить пакет геокодирования для отправки пакета запросов одним запросом.

  1. Откройте приложение Бруно .

  2. Выберите НОВЫЙ ЗАПРОС , чтобы создать запрос. В окне NEW REQUEST задайте для типаHTTP. Введите имя запроса.

  3. Выберите метод GET HTTP в раскрывающемся списке URL-адресов и введите следующий URL-адрес:

    GET https://atlas.microsoft.com/geocode?api-version=2025-01-01&subscription-key={Your-Azure-Maps-Subscription-key}&query=400 Broad St, Seattle, WA 98109
    
  4. Выберите кнопку Создать.

  5. Нажмите кнопку запуска.

    Этот запрос выполняет поиск определенного адреса: 400 Broad St, Seattle, WA 98109 Затем выполните поиск по адресу с несколькими возможными расположениями.

  6. В разделе "Params"ключ queryна , а затем нажмите кнопку запуска.

  7. Затем попробуйте задать query для ключа значение 400 Broa, а затем нажмите кнопку запуска.

    Ответ включает результаты из нескольких стран или регионов. Чтобы получить результаты геобиа в соответствующую область для пользователей, всегда добавьте в запрос столько сведений о расположении.

API Get Geocode Autocomplete поддерживает однострочные и свободные вводы адресов, что идеально в случаях, когда полный адрес недоступен. Вы можете отправить полный или частичный адрес в виде запроса. Чтобы повысить точность и релевантность результатов, рекомендуется ограничить поиск, указав координаты или ограничивающий прямоугольник.

Поиск места

В этом примере показано, как использовать API автозаполнения геокода для поиска места на всем североамериканском континенте для частичного ввода, такого как "университет w". Затем показано, как сузить область поиска до определенной страны или региона с помощью countryRegion параметра. Наконец, в нем показано, как использовать coordinates параметр для фокусировки поиска в определенной области.

Внимание

Чтобы ограничить результаты нужной пользователю географической областью, всегда указывайте как можно больше сведений о расположении. Дополнительные сведения см. в рекомендациях по поиску.

  1. Откройте приложение Бруно .

  2. Выберите НОВЫЙ ЗАПРОС , чтобы создать запрос. В окне NEW REQUEST задайте для типаHTTP. Введите имя запроса.

  3. Выберите метод GET HTTP в раскрывающемся списке URL-адресов и введите следующий URL-адрес:

    https://atlas.microsoft.com/geocode:autocomplete?api-version=2025-06-01-preview&query=university of w&bbox=-168,-52,5,84&subscription-key={Your-Azure-Maps-Subscription-key}
    
  4. Нажмите кнопку запуска, а затем просмотрите текст ответа.

    Примечание.

    Параметр bbox в URL-адресе определяет ограничивающий прямоугольник, охватывающий Канаду, Соединенные Штаты, Мексику, Гренландию и части Карибского бассейна. Он возвращает несколько университетов, расположенных в этой области, в том числе:

    • Университет Вашингтона в округе Кинг, штат Вашингтон, США
    • Университет Ватерлоо в Уотерлоо , Онтарио, Канада
    • Университет Вайоминга в Ларами, Вайоминг, США
    • Университет Виндзора в Виндзоре, Онтарио, Канада
    • Университет Западной Флориды в округе Эскамбиа, Штат Флорида, США

Далее сузите область в США, включенную в поиск, с помощью параметра countryRegion.

  1. Откройте приложение Бруно .

  2. Выберите НОВЫЙ ЗАПРОС , чтобы создать запрос. В окне NEW REQUEST задайте для типаHTTP. Введите имя запроса.

  3. Выберите метод GET HTTP в раскрывающемся списке URL-адресов и введите следующий URL-адрес:

    https://atlas.microsoft.com/geocode:autocomplete?api-version=2025-06-01-preview&query=university of w&bbox=-168,-52,5,84&countryRegion=us&subscription-key={Your-Azure-Maps-Subscription-key}
    
  4. Нажмите кнопку запуска, а затем просмотрите текст ответа.

    Примечание.

    Параметр bbox в URL-адресе определяет тот же ограничивающий прямоугольник, что и в предыдущем примере, однако countryRegion=us параметр ограничивает результаты в США. Он возвращает несколько университетов, расположенных в этой области, в том числе:

    • Университет Вашингтона в округе Кинг, штат Вашингтон, США
    • Университет Вайоминга в Ларами, Вайоминг, США
    • Университет Западной Флориды в округе Эскамбиа, Штат Флорида, США
    • Университет Висконсин-Супериор в округе Дуглас, Висконсин, США
    • Университет Висконсин-Стут в Меномони, Графство Данн, Висконсин, США

Затем сосредоточьтесь на поиске, для включения дополнительных результатов в конкретную зону внутри заданной countryRegion, используя параметр coordinates. Это приводит к тому, что больше элементов возвращается рядом с указанной областью, которые в противном случае не были бы включены в список.

  1. Откройте приложение Бруно .

  2. Выберите НОВЫЙ ЗАПРОС , чтобы создать запрос. В окне NEW REQUEST задайте для типаHTTP. Введите имя запроса.

  3. Выберите метод GET HTTP в раскрывающемся списке URL-адресов и введите следующий URL-адрес:

    https://atlas.microsoft.com/geocode:autocomplete?api-version=2025-06-01-preview&query=university of w&bbox=-168,-52,5,84&countryRegion=us&coordinates=-122.136791,47.642232&subscription-key={Your-Azure-Maps-Subscription-key}
    
  4. Нажмите кнопку запуска, а затем просмотрите текст ответа.

    Примечание.

    Параметры bbox в этом URL-адресе определяют те же границы, что и countryRegion в предыдущем примере, однако coordinates=-122.136791,47.642232 параметр фокусирует результаты поиска на указанной области. Он возвращает местный университет, который в противном случае не будет возвращен.

    • Университет Вашингтона в округе Кинг, штат Вашингтон, США
    • Университет Вашингтона в Такоме, округ Пирс, штат Вашингтон, США
    • Университет Вайоминга в Ларами, Вайоминг, США
    • Университет Западной Флориды в округе Эскамбиа, Штат Флорида, США
    • Университет Висконсин-Стут в Меномони, Графство Данн, Висконсин, США

Поиск адреса

Примеры в этом разделе демонстрируют различие между поиском места и поиском адреса с использованием параметра resultTypeGroups API Get Geocode Autocomplete. Они показывают поиск Диснейленда в южной Калифорнии, применяют частичные вводные данные, такие как "dis", и параметр coordinates, чтобы сосредоточить поиск в определенной области.

Внимание

Чтобы ограничить результаты нужной пользователю географической областью, всегда указывайте как можно больше сведений о расположении. Дополнительные сведения см. в рекомендациях по поиску.

  1. Откройте приложение Бруно .

  2. Выберите НОВЫЙ ЗАПРОС , чтобы создать запрос. В окне NEW REQUEST задайте для типаHTTP. Введите имя запроса.

  3. Выберите метод GET HTTP в раскрывающемся списке URL-адресов и введите следующий URL-адрес:

    https://atlas.microsoft.com/geocode:autocomplete?api-version=2025-06-01-preview&query=dis&coordinates=-117.920219,33.809570&subscription-key={Your-Azure-Maps-Subscription-key}
    
  4. Нажмите кнопку запуска, а затем просмотрите текст ответа.

    Обратите внимание, что ответ содержит значения место, которые включают:

    Название свойства Значение свойства
    typeGroup Место
    type Парк развлечений
    имя Дисней Калифорния Приключенческий парк

    Совет

    Свойство type наиболее релевантно при использовании resultTypeGroups=place. Чтобы просмотреть доступные типы, ознакомьтесь с перечислением типов результирующего автозавершения. Чтобы определить типы для поиска, используйте resultTypesпараметр URI. Дополнительные сведения о реализации см. в вызове API автозаполнения для поиска "Muir Woods", отфильтрованного по типам результатов "парковая зона" и "населенный пункт", группам типов результатов "место".

  5. Если для параметра отсутствуют значения resultTypeGroups , запросы могут возвращать значения места и адреса. Если вас интересует только поиск адресов, включите resultTypeGroups=address в свой запрос.

    https://atlas.microsoft.com/geocode:autocomplete?api-version=2025-06-01-preview&query=dis&coordinates=-117.920219,33.809570&resultTypeGroups=address&subscription-key={Your-Azure-Maps-Subscription-key}
    

    Обратите внимание, что ответ содержит значения адрес, которые включают:

    Название свойства Значение свойства
    typeGroup Address
    Название улицы Диснейленд
    форматированный адрес Диснейленд, Анахайм, CA 92802, Соединенные Штаты

Поиск адреса улицы с помощью обратного геокодирования

Получение обратного геокодирования преобразует координаты в удобочитаемые уличные адреса. Этот API часто используется в приложениях, которые получают веб-каналы GPS и которым требуется определять адреса, располагающиеся по данным координатам.

Внимание

Чтобы получить результаты геобиа в соответствующую область для пользователей, всегда добавьте максимальное количество сведений о расположении. Дополнительные сведения см. в рекомендациях по поиску.

Совет

Если у вас есть набор координат для обратного геокодирования, вы можете использовать Get Reverse Geocoding Batch для отправки пакета запросов в одном запросе.

В этом примере показано, как выполнять обратный поиск с помощью нескольких доступных необязательных параметров. Полный список необязательных параметров см. в разделе "Получение параметров обратного геокодирования".

  1. Откройте приложение Бруно .

  2. Выберите НОВЫЙ ЗАПРОС , чтобы создать запрос. В окне NEW REQUEST задайте для типаHTTP. Введите имя запроса.

  3. Выберите метод GET HTTP в раскрывающемся списке URL-адресов и введите следующий URL-адрес:

    https://atlas.microsoft.com/reverseGeocode?api-version=2025-01-01&subscription-key={Your-Azure-Maps-Subscription-key}&coordinates=-122.332700,47.591180
    
  4. Нажмите кнопку запуска и просмотрите текст ответа. Должен быть возвращен всего один результат. Ответ содержит ключевые сведения об адресе T-Mobile Park.

  5. Затем добавьте следующий параметр в запрос: resultTypes=Postcode1

    https://atlas.microsoft.com/reverseGeocode?api-version=2025-01-01&subscription-key={Your-Azure-Maps-Subscription-key}&coordinates=-122.332700,47.591180&resultTypes=Postcode1
    
  6. Нажмите кнопку запуска и сравните результаты с результатами, возвращенными ранее. Так как запрошенный тип результата теперь Postcode1, ответ не содержит сведения об адресе улицы, а только почтовый индекс.

Поиск перекрестка с использованием обратного геокодирования

В этом примере показано, как искать перекрестную улицу на основе координат адреса.

  1. Откройте приложение Бруно .

  2. Выберите НОВЫЙ ЗАПРОС , чтобы создать запрос. В окне NEW REQUEST задайте для типаHTTP. Введите имя запроса.

  3. Выберите метод GET HTTP в раскрывающемся списке URL-адресов и введите следующий URL-адрес:

    https://atlas.microsoft.com/reverseGeocode?api-version=2025-01-01&coordinates=-122.12429011774091,47.61697905124655&subscription-key={Your-Azure-Maps-Subscription-key}
    
  4. Нажмите кнопку запуска и просмотрите текст ответа.

    Ответ содержит intersection раздел, определяющий часть улицы возвращаемого адреса: NE 8th St. Он также указывает пересекающуюся улицу: 164th Ave NE, и предоставляет полный перекресток как: NE 8th St и 164th Ave NE.

     "intersection": {
     "baseStreet": "NE 8th St",
     "displayName": "NE 8th St and 164th Ave NE",
     "intersectionType": "Near",
     "secondaryStreet1": "164th Ave NE"
     }
    

Следующие шаги