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

Search - Get Reverse Geocoding

用于从经度和纬度坐标获取街道地址和位置信息。

API Get Reverse Geocoding 是一个 HTTP GET 请求,用于将坐标转换为 (示例:37.786505、-122.3862) 为人类可理解的街道地址。 在从设备或资产接收 GPS 源并希望知道与坐标关联的地址的跟踪应用程序中非常有用。 此终结点将返回给定坐标的地址信息。

GET https://atlas.microsoft.com/reverseGeocode?api-version=2023-06-01&coordinates={coordinates}
GET https://atlas.microsoft.com/reverseGeocode?api-version=2023-06-01&coordinates={coordinates}&resultTypes={resultTypes}&view={view}

URI 参数

名称 必需 类型 说明
api-version
query True

string

Azure Maps API 的版本号。

coordinates
query True

number[]

要反向进行地理编码的位置的坐标。 示例:&coordinates=lon,lat

resultTypes
query

ReverseGeocodingResultTypeEnum[]

指定响应中所需的实体类型。 将仅返回指定的类型。 如果点无法映射到指定的实体类型,则响应中不会返回任何位置信息。 默认值是所有可能的实体。 从以下选项中选择的实体类型的逗号分隔列表。

  • 地址
  • 邻近区域
  • PopulatedPlace
  • Postcode1
  • AdminDivision1
  • AdminDivision2
  • CountryRegion

这些实体类型从最具体的实体到最不具体的实体进行排序。 找到多个实体类型的实体时,仅返回最具体的实体。 例如,如果将 Address 和 AdminDistrict1 指定为实体类型,并且为这两种类型都找到了实体,则响应中仅返回 Address 实体信息。

view
query

string

表示 ISO 3166-1 Alpha-2 区域/国家/地区代码的字符串。 这将更改地缘政治争议边界和标签,以与指定的用户区域保持一致。 默认情况下,View 参数设置为“Auto”,即使尚未在请求中定义它。

有关详细信息和可用的 视图 ,请参阅支持的视图。

请求头

名称 必需 类型 说明
x-ms-client-id

string

指定用于与 Azure AD 安全模型结合使用的帐户。 它表示 Azure Maps 帐户的唯一 ID,可从 Azure Maps 管理平面帐户 API 检索。 若要在 Azure Maps 中使用 Azure AD 安全性,请参阅以下 文章 获取指导。

Accept-Language

string

返回搜索结果时应采用的语言。

有关详细信息,请参阅 支持的语言

响应

名称 类型 说明
200 OK

GeocodingResponse

确定

Media Types: "application/geo+json"

Other Status Codes

ErrorResponse

发生了意外错误。

Media Types: "application/geo+json"

安全性

AADToken

这些是 Microsoft Entra OAuth 2.0 流。 与 Azure 基于角色的访问控制 配对时,它可用于控制对 Azure Maps REST API 的访问。 Azure 基于角色的访问控制用于指定对一个或多个 Azure Maps 资源帐户或子资源的访问权限。 可以通过内置角色或由 Azure Maps REST API 的一个或多个权限组成的自定义角色授予任何用户、组或服务主体的访问权限。

若要实现方案,建议查看 身份验证概念。 总之,此安全定义提供了一种解决方案,用于通过能够对特定 API 和作用域进行访问控制的对象对应用程序 () 建模。

注意

  • 此安全定义 需要使用x-ms-client-id 标头来指示应用程序请求访问的 Azure Maps 资源。 这可以从 地图管理 API 获取。
  • Authorization URL特定于 Azure 公有云实例。 主权云具有唯一的授权 URL 和Microsoft Entra ID 配置。
  • Azure 基于角色的访问控制是通过 Azure 门户、PowerShell、CLI、Azure SDK 或 REST API 从 Azure 管理平面 配置的。
  • 使用 Azure Maps Web SDK 可以针对多个用例对应用程序进行基于配置的设置。
  • 有关Microsoft标识平台的详细信息,请参阅 Microsoft标识平台概述

类型: oauth2
Flow: implicit
Authorization URL: https://login.microsoftonline.com/common/oauth2/authorize

Scopes

名称 说明
https://atlas.microsoft.com/.default https://atlas.microsoft.com/.default

subscription-key

这是在通过 Azure 门户、PowerShell、CLI、Azure SDK 或 REST API 通过 Azure 管理平面创建 Azure Maps 资源 时预配的共享密钥。

使用此密钥,任何应用程序都有权访问所有 REST API。 换而言之,这些密钥当前可被视为为其颁发帐户的主密钥。

对于公开的应用程序,我们建议使用 Azure Maps REST API 的服务器到服务器访问,以便安全地存储此密钥。

类型: apiKey
在: header

SAS Token

这是通过 Azure 门户、PowerShell、CLI、Azure SDK 或 REST API 通过 Azure 管理平面通过 Azure Maps 资源 上的列出 SAS 操作创建的共享访问签名令牌。

使用此令牌,任何应用程序都有权使用 Azure 基于角色的访问控制进行访问,并精细控制特定令牌的过期、速率和区域 () 。 换句话说,SAS 令牌可用于允许应用程序以比共享密钥更安全的方式控制访问。

对于公开的应用程序,我们建议在 Map 帐户资源 上配置允许的来源的特定列表,以限制呈现滥用,并定期续订 SAS 令牌。

类型: apiKey
在: header

示例

Search point -122.138681, 47.630358

Sample request

GET https://atlas.microsoft.com/reverseGeocode?api-version=2023-06-01&coordinates=-122.138681,47.630358

Sample response

Content-Type: application/geo+json
{
  "type": "FeatureCollection",
  "features": [
    {
      "type": "Feature",
      "properties": {
        "address": {
          "countryRegion": {
            "name": "United States"
          },
          "adminDistricts": [
            {
              "shortName": "WA"
            },
            {
              "shortName": "King County"
            }
          ],
          "formattedAddress": "15127 NE 24th St, Redmond, WA 98052",
          "locality": "Redmond",
          "postalCode": "98052",
          "addressLine": "15127 NE 24th St"
        },
        "type": "Address",
        "confidence": "Medium",
        "matchCodes": [
          "Good"
        ],
        "geocodePoints": [
          {
            "geometry": {
              "type": "Point",
              "coordinates": [
                -122.138681,
                47.630358
              ]
            },
            "calculationMethod": "Rooftop",
            "usageTypes": [
              "Display"
            ]
          },
          {
            "geometry": {
              "type": "Point",
              "coordinates": [
                -122.1386787,
                47.6302179
              ]
            },
            "calculationMethod": "Rooftop",
            "usageTypes": [
              "Route"
            ]
          }
        ]
      },
      "geometry": {
        "type": "Point",
        "coordinates": [
          -122.138681,
          47.630358
        ]
      },
      "bbox": [
        -122.14632282407,
        47.626495282429325,
        -122.13103917593001,
        47.63422071757068
      ]
    }
  ]
}

定义

名称 说明
Address

结果的地址

AdminDistricts

地址所在国家或地区中的细分名称。 此元素通常被视为第一级管理细分,但在某些情况下,它还包含国家/地区、依赖项或区域中的第二级、第三级或第四级细分。

CalculationMethodEnum

用于计算地理编码点的方法。

ConfidenceEnum

地理编码位置结果匹配的置信度。 将此值与匹配代码一起使用,以确定有关匹配的更完整信息。

地理编码位置的置信度取决于许多因素,包括地理编码位置和用户位置的相对重要性(如果指定)。

CountryRegion
ErrorAdditionalInfo

资源管理错误附加信息。

ErrorDetail

错误详细信息。

ErrorResponse

错误响应

FeatureCollectionEnum

FeatureCollection 对象的类型必须为 FeatureCollection。

FeaturesItem
FeatureTypeEnum

特征的类型必须为 Feature。

GeocodePoints

地理编码点的集合,这些点的计算方式及其建议用法不同。

GeocodingResponse

此对象是从成功的地理编码调用返回的

GeoJsonPoint

有效的 GeoJSON Point 几何类型。 有关详细信息,请参阅 RFC 7946

Intersection

结果的地址。

MatchCodesEnum

一个或多个匹配代码值,表示响应中每个位置的地理编码级别。

例如,匹配代码为 和 AmbiguousGood地理编码位置意味着为位置信息找到了多个地理编码位置,并且地理编码服务没有向上搜索层次结构来查找匹配项。

同样,匹配代码为 和 UpHierarchyAmbiguous地理编码位置意味着找不到与所提供的所有位置信息匹配的地理编码位置,因此地理编码服务必须向上搜索层次结构并在该级别找到多个匹配项。 例如,AmbiguousUpHierarchy提供完整的地址信息,但地理编码服务找不到街道地址的匹配项,而是返回多个 RoadBlock 值的信息。

可能的值为:

Good:该位置只有一个匹配项,或者所有返回的匹配项都被视为强匹配项。 例如,对 New York 的查询返回多个 Good 匹配项。

Ambiguous:位置是一组可能的匹配项之一。 例如,查询街道地址 128 Main St.时,响应可能会返回北主街 128 号和南主街 128 号的两个位置,因为没有足够的信息来确定要选择的选项。

UpHierarchy:位置表示地理层次结构的上移。 当未找到位置请求的匹配项时,会发生这种情况,因此会返回不太精确的结果。 例如,如果找不到所请求地址的匹配项,则可能会返回具有 RoadBlock 实体类型的 匹配代码 UpHierarchy

Properties
ReverseGeocodingResultTypeEnum

指定响应中所需的实体类型。 将仅返回指定的类型。 如果点无法映射到指定的实体类型,则响应中不会返回任何位置信息。 默认值是所有可能的实体。 从以下选项中选择的实体类型的逗号分隔列表。

  • 地址
  • 邻近区域
  • PopulatedPlace
  • Postcode1
  • AdminDivision1
  • AdminDivision2
  • CountryRegion

这些实体类型从最具体的实体到最不具体的实体进行排序。 找到多个实体类型的实体时,仅返回最具体的实体。 例如,如果将 Address 和 AdminDistrict1 指定为实体类型,并且为这两种类型都找到了实体,则响应中仅返回 Address 实体信息。

UsageTypeEnum

地理编码点的最佳用途。 每个地理编码点都定义为一个 Route 点、一个 Display 点或两者。 如果要创建指向该位置的路线,请使用 Route 点。 如果要在地图上显示位置,请使用 Display 点。 例如,如果位置是一个公园,则 Route 点可以指定一个可以乘坐汽车进入的公园入口,一个 Display 点可能是一个指定公园中心的点。

Address

结果的地址

名称 类型 说明
addressLine

string

包含街道名称和号码的 AddressLine

adminDistricts

AdminDistricts[]

地址所在国家或地区中的细分名称。 此元素通常被视为第一级管理细分,但在某些情况下,它还包含国家/地区、依赖项或区域中的第二级、第三级或第四级细分。

countryRegion

CountryRegion

formattedAddress

string

带格式的 Address 属性

intersection

Intersection

结果的地址。

locality

string

locality 属性

neighborhood

string

neighborhood 属性

postalCode

string

邮政编码属性

AdminDistricts

地址所在国家或地区中的细分名称。 此元素通常被视为第一级管理细分,但在某些情况下,它还包含国家/地区、依赖项或区域中的第二级、第三级或第四级细分。

名称 类型 说明
name

string

对应 adminDistrict 字段的名称,对于 adminDistrict[0],可以是州的全名,例如 Washington,对于 adminDistrict[1],这可能是县的全名

shortName

string

对应 adminDistrict 字段的短名称,对于 adminDistrict[0],可以是省的短名称,例如 WA,对于 adminDistrict[1],这可能是县的短名称

CalculationMethodEnum

用于计算地理编码点的方法。

名称 类型 说明
Interpolation

string

使用内插将地理编码点与道路上的某个点进行匹配。

InterpolationOffset

string

地理编码点与道路上的某个点匹配,该点使用内插和额外的偏移量将点移动到街道的一侧。

Parcel

string

地理编码点与地块的中心匹配。

Rooftop

string

地理编码点与建筑物的屋顶匹配。

ConfidenceEnum

地理编码位置结果匹配的置信度。 将此值与匹配代码一起使用,以确定有关匹配的更完整信息。

地理编码位置的置信度取决于许多因素,包括地理编码位置和用户位置的相对重要性(如果指定)。

名称 类型 说明
High

string

如果置信度设置为 High,则找到一个或多个强匹配项。 如果适用,多个 High 置信度匹配项按重要性排序。 例如,地标具有重要性,但地址没有。

如果请求包含位置或视图,则排名可能会相应地更改。 例如,对“Paris”的位置查询将置信返回“Paris, France”和“Paris, TX”。High 除非用户位置指示用户位于巴黎或非常接近巴黎,TX 或地图视图指示用户正在该区域搜索,否则“法国巴黎”始终排名第一。

Low

string

Medium

string

在某些情况下,返回的匹配项可能与请求中提供的信息不同。 例如,请求可以指定地址信息,而地理编码服务可能只能匹配邮政编码。 在这种情况下,如果地理编码服务确信邮政编码与数据匹配,则置信度设置为 Medium ,并将匹配代码设置为 UpHierarchy ,以指定它无法匹配所有信息,并且必须向上搜索层次结构。

如果查询中的位置信息不明确,并且没有其他信息来对位置 (进行排名,例如用户位置或位置) 的相对重要性,则置信度设置为 Medium。 例如,针对“148th Ave, Bellevue”的位置查询可能会以置信度返回“148th Ave SE”和“148th Ave NE”。Medium

如果查询中的位置信息没有提供足够的信息来对特定位置进行地理编码,可能会返回不太精确的位置值,并将置信度设置为 Medium。 例如,如果提供了地址,但找不到门牌号的匹配项,则可能会返回具有 Roadblock 实体类型的地理编码结果。

CountryRegion

名称 类型 说明
ISO

string

国家/地区的 ISO

name

string

国家/地区名称

ErrorAdditionalInfo

资源管理错误附加信息。

名称 类型 说明
info

object

其他信息。

type

string

其他信息类型。

ErrorDetail

错误详细信息。

名称 类型 说明
additionalInfo

ErrorAdditionalInfo[]

错误附加信息。

code

string

错误代码。

details

ErrorDetail[]

错误详细信息。

message

string

错误消息。

target

string

错误目标。

ErrorResponse

错误响应

名称 类型 说明
error

ErrorDetail

错误对象。

FeatureCollectionEnum

FeatureCollection 对象的类型必须为 FeatureCollection。

名称 类型 说明
FeatureCollection

string

FeaturesItem

名称 类型 说明
bbox

number[]

边界框。 使用的投影 - EPSG:3857。 有关详细信息,请参阅 RFC 7946

geometry

GeoJsonPoint

有效的 GeoJSON Point 几何类型。 有关详细信息,请参阅 RFC 7946

id

string

返回的功能的 ID

properties

Properties

type

FeatureTypeEnum

特征的类型必须为 Feature。

FeatureTypeEnum

特征的类型必须为 Feature。

名称 类型 说明
Feature

string

GeocodePoints

地理编码点的集合,这些点的计算方式及其建议用法不同。

名称 类型 说明
calculationMethod

CalculationMethodEnum

用于计算地理编码点的方法。

geometry

GeoJsonPoint

有效的 GeoJSON Point 几何类型。 有关详细信息,请参阅 RFC 7946

usageTypes

UsageTypeEnum[]

地理编码点的最佳用途。 每个地理编码点都定义为一个 Route 点、一个 Display 点或两者。 如果要创建指向该位置的路线,请使用 Route 点。 如果要在地图上显示位置,请使用 Display 点。 例如,如果位置是一个公园,则 Route 点可以指定一个可以乘坐汽车进入的公园入口,一个 Display 点可能是一个指定公园中心的点。

GeocodingResponse

此对象是从成功的地理编码调用返回的

名称 类型 说明
features

FeaturesItem[]

nextLink

string

是指向返回的功能的下一页的链接。 如果是最后一页,则不使用此字段。

type

FeatureCollectionEnum

FeatureCollection 对象的类型必须为 FeatureCollection。

GeoJsonPoint

有效的 GeoJSON Point 几何类型。 有关详细信息,请参阅 RFC 7946

名称 类型 说明
bbox

number[]

边界框。 使用的投影 - EPSG:3857。 有关详细信息,请参阅 RFC 7946

coordinates

number[]

Position 包含两个或多个元素的数字数组。 前两个元素是 经度纬度,精确按此顺序排列。 海拔高度 是可选的第三个元素。 有关详细信息,请参阅 RFC 7946

type string:

Point

指定 GeoJSON 类型。 必须是九种有效的 GeoJSON 对象类型之一 - Point、MultiPoint、LineString、MultiLineString、Polygon、MultiPolygon、GeometryCollection、Feature 和 FeatureCollection。

Intersection

结果的地址。

名称 类型 说明
baseStreet

string

位置的主要街道。

displayName

string

交集的完整名称。

intersectionType

string

交集的类型。

secondaryStreet1

string

第一条相交的街道。

secondaryStreet2

string

如果有,则为第二条相交街道。

MatchCodesEnum

一个或多个匹配代码值,表示响应中每个位置的地理编码级别。

例如,匹配代码为 和 AmbiguousGood地理编码位置意味着为位置信息找到了多个地理编码位置,并且地理编码服务没有向上搜索层次结构来查找匹配项。

同样,匹配代码为 和 UpHierarchyAmbiguous地理编码位置意味着找不到与所提供的所有位置信息匹配的地理编码位置,因此地理编码服务必须向上搜索层次结构并在该级别找到多个匹配项。 例如,AmbiguousUpHierarchy提供完整的地址信息,但地理编码服务找不到街道地址的匹配项,而是返回多个 RoadBlock 值的信息。

可能的值为:

Good:该位置只有一个匹配项,或者所有返回的匹配项都被视为强匹配项。 例如,对 New York 的查询返回多个 Good 匹配项。

Ambiguous:位置是一组可能的匹配项之一。 例如,查询街道地址 128 Main St.时,响应可能会返回北主街 128 号和南主街 128 号的两个位置,因为没有足够的信息来确定要选择的选项。

UpHierarchy:位置表示地理层次结构的上移。 当未找到位置请求的匹配项时,会发生这种情况,因此会返回不太精确的结果。 例如,如果找不到所请求地址的匹配项,则可能会返回具有 RoadBlock 实体类型的 匹配代码 UpHierarchy

名称 类型 说明
Ambiguous

string

Good

string

UpHierarchy

string

Properties

名称 类型 说明
address

Address

结果的地址

confidence

ConfidenceEnum

地理编码位置结果匹配的置信度。 将此值与匹配代码一起使用,以确定有关匹配的更完整信息。

地理编码位置的置信度取决于许多因素,包括地理编码位置和用户位置的相对重要性(如果指定)。

geocodePoints

GeocodePoints[]

地理编码点的集合,这些点的计算方式及其建议用法不同。

matchCodes

MatchCodesEnum[]

一个或多个匹配代码值,表示响应中每个位置的地理编码级别。

例如,匹配代码为 和 AmbiguousGood地理编码位置意味着为位置信息找到了多个地理编码位置,并且地理编码服务没有向上搜索层次结构来查找匹配项。

同样,匹配代码为 和 UpHierarchyAmbiguous地理编码位置意味着找不到与所提供的所有位置信息匹配的地理编码位置,因此地理编码服务必须向上搜索层次结构并在该级别找到多个匹配项。 例如,AmbiguousUpHierarchy提供完整的地址信息,但地理编码服务找不到街道地址的匹配项,而是返回多个 RoadBlock 值的信息。

可能的值为:

Good:该位置只有一个匹配项,或者所有返回的匹配项都被视为强匹配项。 例如,对 New York 的查询返回多个 Good 匹配项。

Ambiguous:位置是一组可能的匹配项之一。 例如,查询街道地址 128 Main St.时,响应可能会返回北主街 128 号和南主街 128 号的两个位置,因为没有足够的信息来确定要选择的选项。

UpHierarchy:位置表示地理层次结构的上移。 当未找到位置请求的匹配项时,会发生这种情况,因此会返回不太精确的结果。 例如,如果找不到所请求地址的匹配项,则可能会返回具有 RoadBlock 实体类型的 匹配代码 UpHierarchy

type

string

下列其中一项:

  • 地址
  • 路障
  • RoadIntersection
  • 邻近区域
  • PopulatedPlace
  • Postcode1
  • AdminDivision1
  • AdminDivision2
  • CountryRegion

ReverseGeocodingResultTypeEnum

指定响应中所需的实体类型。 将仅返回指定的类型。 如果点无法映射到指定的实体类型,则响应中不会返回任何位置信息。 默认值是所有可能的实体。 从以下选项中选择的实体类型的逗号分隔列表。

  • 地址
  • 邻近区域
  • PopulatedPlace
  • Postcode1
  • AdminDivision1
  • AdminDivision2
  • CountryRegion

这些实体类型从最具体的实体到最不具体的实体进行排序。 找到多个实体类型的实体时,仅返回最具体的实体。 例如,如果将 Address 和 AdminDistrict1 指定为实体类型,并且为这两种类型都找到了实体,则响应中仅返回 Address 实体信息。

名称 类型 说明
Address

string

AdminDivision1

string

AdminDivision2

string

CountryRegion

string

Neighborhood

string

PopulatedPlace

string

Postcode1

string

UsageTypeEnum

地理编码点的最佳用途。 每个地理编码点都定义为一个 Route 点、一个 Display 点或两者。 如果要创建指向该位置的路线,请使用 Route 点。 如果要在地图上显示位置,请使用 Display 点。 例如,如果位置是一个公园,则 Route 点可以指定一个可以乘坐汽车进入的公园入口,一个 Display 点可能是一个指定公园中心的点。

名称 类型 说明
Display

string

Route

string