Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этой статье объясняется, как перенести API Geocode Dataflow Bing Maps в API Geocoding Batch и API Reverse Geocoding Batch Azure Maps. API пакетной геокодирования Azure Maps используется для получения координат широты и долготы уличного адреса или названия места в пакетном режиме с помощью одного вызова API. API пакетной службы Azure Maps — это HTTP-запрос POST, который отправляет пакетные пакеты запросов в API геокодирования Azure Maps в одном запросе. API пакетной службы Обратного геокодирования Azure Maps используется для преобразования координат широты и долготы в понятный адрес улицы человека. API пакетного обратного геокодирования Azure Maps — это HTTP-запрос POST, который отправляет пакеты запросов в API обратного геокодирования Azure Maps за один запрос.
Необходимые условия
- Учетная запись Azure
- Azure Maps учетная запись
- Ключ подписки или другая форма проверки подлинности с помощью Azure Maps
Заметные различия
- API потоковой обработки данных Bing Maps поддерживает прямое и обратное пакетное геокодирование в одном API. Azure Maps имеет отдельный API для прямого и обратного геокодирования.
- API обработки данных для геокодирования Bing Maps требует загрузки ваших данных о расположении в виде XML-файла или текстового файла, разделенного запятыми, вертикальными чертами или табуляцией. Пакетный и обратный геокодинг Azure Maps API не используют подход загрузки файлов данных, а вместо этого используют запрос HTTP POST с данными о местоположении в формате GeoJSON в теле запроса.
- API Geocode Dataflow Карт Bing поддерживает до 200 000 сущностей за загрузку. Пакетный API геокодирования и обратного геокодирования Azure Maps поддерживает до 100 пакетных запросов при синхронном запросе и до 200 000 при асинхронном запросе.
- API геокодирования и потоковой передачи данных Bing Maps требует выполнения серии вызовов API после первоначальной загрузки данных, чтобы получить статус и загрузить результаты. Синхронные запросы API пакетного геокодирования и пакетного обратного геокодирования Azure Maps не требуют дополнительных вызовов API. Асинхронный запрос требует дополнительных вызовов для получения состояния пакетного процесса и скачивания результатов.
- Координаты потока данных Geocode в Bing Maps находятся в формате широты и долготы. Координаты пакетов API геокодирования и обратного геокодирования Azure Maps представлены в формате долготы и широты, поскольку они находятся в формате GeoJSON.
- В отличие от Bing Maps для предприятий, Azure Maps — это глобальная служба, которая поддерживает указание географического охвата, что позволяет ограничить расположение данных европейскими (ЕС) или американскими (США) географическими областями (геос). Все запросы (включая входные данные) обрабатываются исключительно в указанной географической области. Для получения дополнительной информации см. географическую область охвата службы Azure Maps.
Безопасность и проверка подлинности
Карты Bing для enterprise поддерживают только проверку подлинности ключа API. Azure Maps поддерживает несколько способов проверки подлинности вызовов API, таких как ключ подписки, Microsoft Entra ID или токен общего доступа (SAS). Дополнительные сведения о безопасности и проверке подлинности в Azure Maps см. в разделе "Проверка подлинности с помощью Azure Maps " и раздел "Безопасность " в документации по пакетной службе Azure Maps.
Параметры запроса
В следующей таблице перечислены параметры запроса Dataflow для геокодирования Карт Bing и их эквиваленты в Azure Maps:
| Параметр Bing Maps | Параметр Azure Maps | Описание |
|---|---|---|
| dataLocation | Не требуется | |
| ввод | Не требуется | API потока данных Геокодов Bing Maps поддерживает формат XML и текста (csv, tab и разделителя канала) для файла входных данных пакетного геокодирования. Azure Maps поддерживает формат JSON для входных данных пакетного геокодирования в HTTP-запросе POST. |
| Выход | Не требуется | API Bing Maps Geocode Dataflow поддерживает JSON и XML для пакетных выходных данных геокодирования. Azure Maps поддерживает формат JSON для выходных данных пакетного геокодирования. |
Дополнительные сведения о параметрах URI Azure Maps и тексте запроса см. в документации по пакетной службе Azure Maps и обратному геокодированию пакетной службы .
Сравнение входных и выходных данных схемы карт Bing Maps 2.0 с пакетной службой геокодирования Azure Maps и пакетной службой обратного геокодирования API:
| Поле «Bing Maps» | Операция Bing Maps | Поле Azure Maps | Тип данных Azure Maps | Описание |
|---|---|---|---|---|
| Address.AddressLine | Запрос геокода Ответ геокода |
addressLine | string | |
| Address.АдминистративныйРайон | Запрос геокода Геокод: Ответ |
административный_округ | струна | |
| Address.CountryRegion | Запрос геокода Ответ на запрос геокодирования |
страна/регион | струна | |
| Address.District | Запрос геокода | adminDistrict2 | струна | |
| Address.FormattedAddress | Ответ геокода | |||
| Адрес. Ориентир | Ответ геокода | Не поддерживается | Не поддерживается | |
| Адрес.Локальность | Запрос геокода Ответ геокода |
местность | string | |
| Адрес.Район | Ответ геокода | Район | string | |
| Address.PostalCode | Запрос геокода Ответ геокода |
почтовый код | string | |
| Адрес.ПочтовыйГород | Запрос геокода | adminDistrict3 | ||
| BoundingBox.SouthLatitude, BoundingBox.EastLongitude, BoundingBox.NorthLatitude, BoundingBox.EastLongitude | Ответ геокода | bbox | число[] | Используемая проекция для Azure Maps: EPSG:3857. Дополнительные сведения см. в RFC 7946. |
| Уверенность | Ответ геокода | Уверенность | ConfidenceEnum | Дополнительные сведения см. в документации по API пакетного геокодирования и обратного пакетного геокодирования Azure Maps. |
| ConfidenceFilter.MinimumConfidence | Запрос геокода Обратный запрос геокода |
Не поддерживается | Не поддерживается | |
| Культура | Запрос геокода Обратный запрос геокода |
Заголовок запроса: Accept-Language | string | Дополнительные сведения см. в статье "Поддерживаемые языки Azure Maps". |
| Тип сущности | Ответ геокода | Тип | string | Дополнительные сведения см. в документации по API пакетного геокодирования и обратного пакетного геокодирования Azure Maps. |
| Причина ошибки | Ответ геокода | Не поддерживается | Не поддерживаются | |
| GeocodeEntity | КОНТЕЙНЕР XML | Не требуется | Не требуется | |
| GeocodeFeed | КОНТЕЙНЕР XML | Не требуется | Не требуется | |
| GeocodePoint | Ответ геокода | geocodePoints | GeocodePoints[] | Дополнительные сведения см. в документации по API пакетного геокодирования и обратного пакетного геокодирования Azure Maps. |
| GeocodeRequest | КОНТЕЙНЕР XML | Не требуется | Не требуется | В Azure Maps есть отдельные API для прямого геокодирования и обратного геокодирования. |
| Id | Запрос геокода | Не требуется | Не требуется | |
| ВключитьТипыСущностей | Запрос геокода Обратный запрос геокода |
Не поддерживается | Не поддерживается | |
| Включить соседство | Запрос геокода Обратный запрос геокода |
Не требуется | Не требуется | В Azure Maps сведения о районе возвращаются в ответе по умолчанию при наличии. |
| IncludeQueryParse | Запрос геокода | Не поддерживается | Не поддерживается | |
| Расположение.Широта Location.МестоположениеДолгота |
Обратный запрос геокода | Координаты | число[] | Требуется в качестве входных данных при использовании API Azure Maps для обратной геокодировки. |
| MatchCodes | Ответ геокода | matchCodes | MatchCodesEnum | Дополнительные сведения см. в документации по API пакетного геокодирования и обратного пакетного геокодирования Azure Maps. |
| MaxResults | Запрос геокода Обратный запрос геокода |
Вверх | целое число int32 |
Максимальное количество ответов, которые возвращаются в Azure Maps. Значение по умолчанию — 5, минимальное — 1, а максимальное — 20. |
| Имя | Ответ геокода | Не поддерживается | Не поддерживается | |
| Point.Широта, Point.Долгота | Ответ геокода | Координаты | число[] | Карты Bing возвращают координаты в формате широты и долготы. Azure Maps возвращает координаты в порядке долготы и широты (из-за формата GeoJSON). |
| Запрос | Запрос геокода | запрос | string | |
| QueryParseValue | Ответ геокода | Не поддерживается | Не поддерживаются | |
| ReverseGeocodeRequest | КОНТЕЙНЕР XML | Не требуется | Не требуется | В Azure Maps есть отдельные API для прямого геокодирования и обратного геокодирования. |
| Код состояния | Ответ геокода | Не поддерживается | Не поддерживается | |
| StrictMatch | Запрос геокода | Не поддерживается | Не поддерживается | |
| TraceId | Ответ геокода | Не поддерживается | Не поддерживается | |
| Версия | Не требуется | Не требуется |
Дополнительная информация о полях ответа пакетного геокодирования Azure Maps доступна в разделе определения.
Примеры запросов
Запрос к API Bing Maps потока данных геокодирования:
http://spatial.virtualearth.net/REST/v1/Dataflows/Geocode?input=xml&key={BingMapsKey}
Примеры входных и выходных данных для Geocode Dataflow версии 2.0 можно найти в разделе Geocode Dataflow Sample Input and Output Data Version 2.0.
Запрос API пакетного геокодирования Azure Maps:
POST https://atlas.microsoft.com/geocode:batch?api-version=2023-06-01&subscription-key={Your-Azure-Maps-Subscription-key}
Чтобы отправить запросы геокодирования, используйте HTTP-запрос POST, в котором текст запроса содержит массив batchItems в формате JSON и заголовок Content-Type , заданный для application/json.
В следующем формате JSON показан пример запроса, содержащего два запроса геокодирования, с одним расположением в неструктурированном формате и одним расположением в структурированном формате:
{
"batchItems": [
{
"addressLine": "One, Microsoft Way, Redmond, WA 98052",
"top": 2
},
{
"addressLine": "Pike Pl",
"adminDistrict": "WA",
"locality": "Seattle",
"top": 3
}
]
}
Пример запроса API пакетного обратного геокодирования Azure Maps:
POST https://atlas.microsoft.com/reverseGeocode:batch?api-version=2023-06-01&subscription-key={Your-Azure-Maps-Subscription-key}
Чтобы отправить обратные геокодирующие запросы, используйте HTTP-запрос POST, в котором текст запроса содержит массив batchItems в формате JSON, а заголовок Content-Type имеет значение application/json.
В следующем формате JSON показан пример запроса, содержащего два обратных геокодирующих запроса:
{
"batchItems": [
{
"coordinates": [
-122.128275,
47.639429
],
"resultTypes": [
"Address",
"PopulatedPlace"
],
"optionalId": "4C3681A6C8AA4AC3441412763A2A25C81444DC8B"
},
{
"coordinates": [
-122.341979399674,
47.6095253501216
],
"optionalId": "6M9W39P12SNHGAIZ4JQ7F57NWJLV2BRYEQRD7OH7"
}
]
}
Примеры ответов
URL-адрес для скачивания результатов задания геокода предоставляется при успешном выполнении пакетного задания Bing Maps Geocode Dataflow, как показано в состоянии завершенного задания. Пример успешного вывода потока геокодирования данных для карт Bing см. в разделе документации Bing Maps Примеры входных и выходных данных геокода, версия 2.0.
В следующем примере показано, что возвращается в теле HTTP-ответа при выполнении запроса API пакетного геокодирования Azure Maps:
{
"summary": {
"successfulRequests": 1,
"totalRequests": 2
},
"batchItems": [
{
"type": "FeatureCollection",
"features": [
{
"type": "Feature",
"properties": {
"type": "Address",
"confidence": "High",
"matchCodes": [
"Good"
],
"address": {
"locality": "Redmond",
"adminDistricts": [
{
"shortName": "WA"
},
{
"shortName": "King"
}
],
"countryRegion": {
"ISO": "US",
"name": "United States"
},
"postalCode": "98052",
"formattedAddress": "1 Microsoft Way, Redmond, WA 98052",
"addressLine": "1 Microsoft Way"
},
"geocodePoints": [
{
"geometry": {
"type": "Point",
"coordinates": [
-122.128275,
47.639429
]
},
"calculationMethod": "Rooftop",
"usageTypes": [
"Display",
"Route"
]
},
{
"geometry": {
"type": "Point",
"coordinates": [
-122.127028,
47.638545
]
},
"calculationMethod": "Rooftop",
"usageTypes": [
"Route"
]
}
]
},
"geometry": {
"type": "Point",
"coordinates": [
-122.128275,
47.639429
]
},
"bbox": [
-122.1359181505759,
47.63556628242932,
-122.1206318494241,
47.643291717570676
]
}
]
},
{
"error": {
"code": "Conflicting Parameters",
"message": "When 'query' is present, only the following parameters are valid: 'bbox, location, view, top'. 'addressLine' was passed"
}
}
]
}
В следующем примере показано, что возвращается в теле HTTP-ответа при выполнении запроса API Azure Maps для массового обратного геокодирования.
{
"batchItems": [
{
"type": "FeatureCollection",
"features": [
{
"type": "Feature",
"geometry": {
"type": "Point",
"coordinates": [
-122.1294081,
47.6391325
]
},
"properties": {
"geocodePoints": [
{
"geometry": {
"type": "Point",
"coordinates": [
-122.1294081,
47.6391325
]
},
"calculationMethod": "Rooftop",
"usageTypes": [
"Display"
]
}
],
"address": {
"addressLine": "15770 NE 31st St",
"adminDistricts": [
{
"shortName": "WA"
},
{
"shortName": "King Co."
}
],
"countryRegion": {
"name": "United States",
"iso": "US"
},
"locality": "Redmond",
"neighborhood": "Overlake",
"postalCode": "98052",
"formattedAddress": "15770 NE 31st St, Redmond, WA 98052, United States"
},
"confidence": "High",
"matchCodes": [
"Good"
],
"type": "Address"
},
"bbox": [
-122.13705120720665,
47.635269782429326,
-122.12176499279336,
47.64299521757068
]
}
]
},
{
"type": "FeatureCollection",
"features": [
{
"type": "Feature",
"geometry": {
"type": "Point",
"coordinates": [
-122.341979399674,
47.6095253501216
]
},
"properties": {
"geocodePoints": [
{
"geometry": {
"type": "Point",
"coordinates": [
-122.341979399674,
47.6095253501216
]
},
"calculationMethod": "Interpolation",
"usageTypes": [
"Display",
"Route"
]
}
],
"address": {
"addressLine": "1736 Pike Pl",
"adminDistricts": [
{
"shortName": "WA"
},
{
"shortName": "King Co."
}
],
"countryRegion": {
"name": "United States",
"iso": "US"
},
"intersection": {
"baseStreet": "Pike Pl",
"displayName": "Pike Pl and Stewart St",
"intersectionType": "Near",
"secondaryStreet1": "Stewart St",
"secondaryStreet2": null
},
"locality": "Seattle",
"neighborhood": "Downtown Seattle",
"postalCode": "98101",
"formattedAddress": "1736 Pike Pl, Seattle, WA 98101, United States"
},
"confidence": "Medium",
"matchCodes": [
"Good"
],
"type": "Address"
},
"bbox": [
-122.34961817972945,
47.605662632550924,
-122.33434061961856,
47.61338806769228
]
}
]
}
],
"summary": {
"successfulRequests": 2,
"totalRequests": 2
}
}
Использование транзакций
Подобно API обработки геокодов Bing Maps, API пакетного геокодирования Azure Maps и API пакетного обратного геокодирования регистрируют одну оплачиваемую транзакцию для каждого геокодированного элемента. Например, 100 местоположений, геокодированных в пакетном запросе, приводят к 100 оплачиваемым транзакциям. Дополнительные сведения о транзакциях Azure Maps см. в статье "Основные сведения о транзакциях Azure Maps".
Дополнительные сведения
Дополнительные API геокодирования Azure Maps
- Получение геокодирования: используйте для получения координат широты и долготы адреса или имени места.
- Получение обратного геокодирования: используйте для получения адреса улицы и сведений о расположении из координат широты и долготы.
Поддержка