你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

迁移 Bing Maps 的 Find a Location by Point API

本文介绍如何将必应地图按点查找位置 API 迁移到 Azure Maps 获取反向地理编码 API。 Azure Maps 获取反向地理编码 API 用于将经度和纬度坐标转换为人类可理解的街道地址。

先决条件

显著差异

  • 必应地图 Find a Location by Point API 支持 XML 和 JSON 响应格式。 Azure Maps 获取反向地理编码 API 支持 GeoJSON 响应格式。
  • 必应地图按点查找位置的 API 使用纬度/经度格式的坐标。 Azure Maps 获取反向地理编码 API 使用 由 GeoJSON 定义的经度/纬度格式的坐标。
  • 与必应地图按点 API 查找位置不同,Azure Maps 获取反向地理编码 API 目前不支持中国的地址或街道级别数据。
  • 与必应地图按点 API 查找位置不同,Azure Maps 获取反向地理编码 API 具有输入 view 参数,该参数是表示 ISO 3166-1 Alpha-2 区域/国家/地区代码的字符串。 输入 view 参数将更改地缘政治争议边界和标签,使其与指定的用户区域保持一致。 有关详细信息,请参阅 URI 参数
  • 与必应地图企业版不同,Azure Maps 是一项支持指定地理范围的全局服务,它允许将数据驻留限制到欧洲(欧盟)或美国(美国)地理区域(地理区域)。 所有请求(包括输入数据)都专门在指定的地理区域进行处理。 有关详细信息,请参阅 Azure Maps 服务地理范围

安全性和身份验证

必应地图企业版仅支持 API 密钥身份验证。 Azure Maps 支持通过多种方式对 API 调用进行身份验证,例如订阅密钥Microsoft Entra ID共享访问签名 (SAS) 令牌。 有关 Azure Maps 中的安全性和身份验证的详细信息,请参阅 Azure Maps 获取地理编码文档中的 “使用 Azure Maps 进行身份验证 ”和“ 安全性”部分

请求参数

下表列出了必应地图按点查找位置请求参数及其在 Azure Maps 中的等效项:

必应地图请求参数 必应地图请求参数别名 Azure Maps 请求参数 Azure Maps 中必需 Azure Maps 数据类型 Description
区域性 c 请求头:Accept-Language 字符串 在 Azure Maps 获取反向地理编码 API 中,这是应返回搜索结果的语言。 这在 Azure Maps 请求标头中指定。 有关详细信息,请参阅支持的语言
include 包括 不需要 不需要 不需要 在必应地图按点查找位置时,需要“include”输入参数才能获取响应中位置结果的双字母 ISO 国家/地区代码。 在 Azure Maps 获取反向地理编码 API 中,默认返回双字母 ISO 国家/地区代码。
includeEntityTypes resultTypes 查询
includeNeighborhood inclnb 不需要 不需要 不需要 在 Azure Maps 获取反向地理编码 API 中,当可用时,社区信息默认在响应中返回。
坐标 True number[] 在必应地图按点 API 查找位置时,请求中的坐标和响应采用纬度/经度格式,而 Azure Maps 获取反向地理编码 API 要求请求中的坐标和响应中的坐标采用经度/纬度格式,如 GeoJSON所定义。
userRegion ur 视图 字符串 一个字符串,表示 ISO 3166-1 Alpha-2 区域/国家/地区代码。 这将改变地缘政治争议边界和标签,使其与指定的用户区域保持一致。 默认情况下,“视图”参数设置为“自动”,即使你未在请求中定义它也是如此。

有关详细信息,请参阅支持的视图 ,并查看可用的视图。
verboseplacenames vbpn 不支持 不支持 不支持 Azure Maps 获取反向地理编码 API 仅支持返回 adminDistricts 短名称(FL 而不是佛罗里达州)。

有关 Azure Maps 获取反向地理编码 API 请求参数的详细信息,请参阅 URI 参数

请求示例

必应地图通过点查找位置的 API 请求

https://dev.virtualearth.net/REST/v1/Locations/48.830345,2.338166&key={BingMapsKey}  

Azure Maps 获取反向地理编码 API 请求:

https://atlas.microsoft.com/reverseGeocode?api-version=2023-06-01&coordinates=2.338166,48.830345&subscription-key={Your-Azure-Maps-Subscription-key}

响应字段

下表列出了在运行必应地图按点查找位置请求和 Azure Maps 的等效请求时,可以在 HTTP 响应中显示的字段:

必应地图响应 Azure Maps 响应 Description
地址:addressLine (JSON)
地址:地址行(XML)
地址:addressLine
地址:adminDistrict (JSON)
地址:AdminDistrict (XML)
地址:adminDistricts
地址:adminDistrict2 (JSON)
地址:AdminDistrict2 (XML)
地址:adminDistricts
地址:国家地区 (JSON)
地址:CountryRegion (XML)
地址:国家地区
地址:countryRegionIso2 (JSON)
地址:CountryRegionIso2 (XML)
地址:国家/地区 - 标准代码
地址:社区(JSON)
地址:社区(XML)
地址:附近位置
address:formattedAddress(JSON)
地址:FormattedAddress (XML)
地址:格式化地址
address:locality(JSON)
地址:区域(XML)
地址:区域
地址:postalCode (JSON)
地址:邮政编码(XML)
地址:邮政编码
地址:交叉口 - baseStreet(JSON)
地址:交叉口 - BaseStreet (XML)
地址:交汇点 - baseStreet
地址:交汇点 - secondaryStreet1 (JSON)
地址:交叉路口 - 次要街道1 (XML)
地址:交叉路口 - 次要街道1
地址:路口 - secondaryStreet2 (JSON)
地址:交叉口 - "SecondaryStreet2" (XML)
address: 交叉口 - 次要街道2
地址:交汇点 - intersectionType (JSON)
地址:交汇点 - IntersectionType (XML)
地址:交汇点 - intersectionType
地址:Intersection – displayName(JSON)
地址:交叉点 - DisplayName (XML)
地址:交汇点 - displayName
bbox (JSON)
BoundingBox (XML)
功能:bbox 在必应地图按点 API 查找位置时,响应中的坐标采用纬度/经度格式。 在 Azure Maps 获取反向地理编码 API 中,响应中的坐标使用 GeoJSON 定义的经度/纬度。
计算方法(JSON)
CalculationMethod(XML)
属性:geocodePoints - 计算方法
置信度 (JSON)
置信度 (XML)
属性:置信度
entityType(JSON)
EntityType (XML)
属性:类型
geocodePoints (JSON)
GeocodePoint (XML)
属性:geocodePoints - 坐标
matchCodes(JSON)
MatchCode (XML)
属性:matchCodes
名称(JSON)
名称(XML)
不支持 Azure Maps formattedAddress 提供与必应地图类似的功能 name
point (JSON)
点(XML)
功能:坐标 在必应地图按点 API 查找位置时,响应中的坐标采用纬度/经度格式。 在 Azure Maps 获取反向地理编码 API 中,响应中的坐标使用 GeoJSON 定义的经度/纬度格式。
usageTypes(JSON)
usageType (XML)
属性:geocodePoints::usageTypes

有关 Azure Maps 获取反向地理编码 API 响应字段的详细信息,请参阅 定义

响应示例

以下 JSON 示例显示了执行必应地图按点查找位置请求时,HTTP 响应正文中返回的内容:

{
    "authenticationResultCode": "ValidCredentials",
    "brandLogoUri": "https://dev.virtualearth.net/Branding/logo_powered_by.png",
    "copyright": "Copyright © 2024 Microsoft and its suppliers. All rights reserved. This API cannot be accessed and the content and any results may not be used, reproduced or transmitted in any manner without express written permission from Microsoft Corporation.",
    "resourceSets": [
        {
            "estimatedTotal": 1,
            "resources": [
                {
                    "__type": "Location:http://schemas.microsoft.com/search/local/ws/rest/v1",
                    "bbox": [
                        48.826534682429326,
                        2.330334564829834,
                        48.83426011757068,
                        2.345980835170166
                    ],
                    "name": "30 Rue Cabanis, 75014 Paris, France",
                    "point": {
                        "type": "Point",
                        "coordinates": [
                            48.8303974,
                            2.3381577
                        ]
                    },
                    "address": {
                        "addressLine": "30 Rue Cabanis",
                        "adminDistrict": "Île-de-France",
                        "adminDistrict2": "Paris",
                        "countryRegion": "France",
                        "formattedAddress": "30 Rue Cabanis, 75014 Paris, France",
                        "intersection": {
                            "baseStreet": "Rue Cabanis",
                            "secondaryStreet1": "Villa de Lourcine",
                            "intersectionType": "Near",
                            "displayName": "Rue Cabanis and Villa de Lourcine"
                        },
                        "locality": "Paris",
                        "neighborhood": "14th Arrondissement",
                        "postalCode": "75014"
                    },
                    "confidence": "High",
                    "entityType": "Address",
                    "geocodePoints": [
                        {
                            "type": "Point",
                            "coordinates": [
                                48.8303974,
                                2.3381577
                            ],
                            "calculationMethod": "Rooftop",
                            "usageTypes": [
                                "Display"
                            ]
                        }
                    ],
                    "matchCodes": [
                        "Good"
                    ]
                }
            ]
        }
    ],
    "statusCode": 200,
    "statusDescription": "OK",
    "traceId": "c525b02f7f1e9e4ee3d7b81cce266671"

以下 JSON 示例演示执行 Azure Maps 获取反向地理编码 请求时 HTTP 响应正文中返回的内容:

{
    "type": "FeatureCollection",
    "features": [
        {
            "type": "Feature",
            "geometry": {
                "type": "Point",
                "coordinates": [
                    2.3381577,
                    48.8303974
                ]
            },
            "properties": {
                "geocodePoints": [
                    {
                        "geometry": {
                            "type": "Point",
                            "coordinates": [
                                2.3381577,
                                48.8303974
                            ]
                        },
                        "calculationMethod": "Rooftop",
                        "usageTypes": [
                            "Display"
                        ]
                    }
                ],
                "address": {
                    "addressLine": "30 Rue Cabanis",
                    "adminDistricts": [
                        {
                            "shortName": "Île-de-France"
                        },
                        {
                            "shortName": "Paris"
                        }
                    ],
                    "countryRegion": {
                        "name": "France",
                        "iso": "FR"
                    },
                    "intersection": {
                        "baseStreet": "Rue Cabanis",
                        "displayName": "Rue Cabanis and Villa de Lourcine",
                        "intersectionType": "Near",
                        "secondaryStreet1": "Villa de Lourcine",
                        "secondaryStreet2": null
                    },
                    "locality": "Paris",
                    "neighborhood": "14th Arrondissement",
                    "postalCode": "75014",
                    "formattedAddress": "30 Rue Cabanis, 75014 Paris, France"
                },
                "confidence": "High",
                "matchCodes": [
                    "Good"
                ],
                "type": "Address"
            },
            "bbox": [
                2.330334564829834,
                48.826534682429326,
                2.345980835170166,
                48.83426011757068
            ]
        }
    ]
}

事务用法

与必应地图按点查找位置 API 一样,Azure Maps 获取反向地理编码 API 也会针对每个请求记录一个计费事务。 有关 Azure Maps 事务的详细信息,请参阅了解 Azure Maps 事务

其他信息

Support