你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
Search - Get Geocoding
使用 获取街道地址或地点名称的经度和纬度坐标。
API Get Geocoding
是返回所搜索位置的经度和纬度坐标的 HTTP GET
请求。
在许多情况下,完整的搜索服务可能太多,例如,如果只对传统的地理编码感兴趣。 也可以以独占方式访问地址查找的搜索。 地理编码是通过仅使用有问题的地址或部分地址命中地理编码终结点来执行的。 地理编码搜索索引将查询街道级别数据以上的所有内容。 不会返回任何兴趣点 (POI) 。 请注意,地理编码器非常能容忍拼写错误和不完整的地址。 它还将处理从确切的街道地址、街道或交叉口以及更高级别的地理区域(如市中心、县和州)的所有内容。 响应还返回详细的地址属性,例如街道、邮政编码、市政当局和国家/地区信息。
GET https://atlas.microsoft.com/geocode?api-version=2023-06-01
GET https://atlas.microsoft.com/geocode?api-version=2023-06-01&top={top}&query={query}&addressLine={addressLine}&countryRegion={countryRegion}&bbox={bbox}&view={view}&coordinates={coordinates}&adminDistrict={adminDistrict}&adminDistrict2={adminDistrict2}&adminDistrict3={adminDistrict3}&locality={locality}&postalCode={postalCode}
URI 参数
名称 | 在 | 必需 | 类型 | 说明 |
---|---|---|---|---|
api-version
|
query | True |
string |
Azure Maps API 的版本号。 |
address
|
query |
string |
相对于区域的地址的官方街道线,由 locality 或 postalCode 属性指定。 此元素的典型用途是提供街道地址或任何官方地址。 如果提供了查询,则 不应使用此参数。 |
|
admin
|
query |
string |
地址的国家/地区细分部分,例如 WA。 如果提供了查询,则 不应使用此参数。 |
|
admin
|
query |
string |
结构化地址的县,如国王。 如果提供了查询,则 不应使用此参数。 |
|
admin
|
query |
string |
结构化地址的命名区域。 如果提供了查询,则 不应使用此参数。 |
|
bbox
|
query |
number[] |
地球上定义为边界框对象的矩形区域。 矩形的边由经度和纬度值定义。 指定此参数时,计算位置查询的结果时会考虑地理区域。 示例:lon1,lat1,lon2,lat2 |
|
coordinates
|
query |
number[] |
地球上的一个点,指定为经度和纬度。 指定此参数时,将考虑用户的位置,返回的结果可能与用户更相关。 示例:&coordinates=lon,lat |
|
country
|
query |
string |
将地理编码结果的信号传递给指定的 ISO 3166-1 Alpha-2 区域/国家/地区代码 ,例如 FR./ 如果提供了查询,则 不应使用此参数。 |
|
locality
|
query |
string |
地址的区域部分,例如西雅图。 如果提供了查询,则 不应使用此参数。 |
|
postal
|
query |
string |
地址的邮政编码部分。 如果提供了查询,则 不应使用此参数。 |
|
query
|
query |
string |
一个字符串,其中包含有关位置的信息,例如地址或地标名称。 |
|
top
|
query |
integer int32 |
将返回的最大响应数。 默认值:5,最小值:1,最大值:20。 |
|
view
|
query |
string |
表示 ISO 3166-1 Alpha-2 区域/国家/地区代码的字符串。 这将更改地缘政治争议边界和标签,以与指定的用户区域保持一致。 默认情况下,View 参数设置为“Auto”,即使尚未在请求中定义它。 有关详细信息和可用的 视图 ,请参阅支持的视图。 |
请求头
名称 | 必需 | 类型 | 说明 |
---|---|---|---|
Accept-Language |
string |
返回搜索结果时应采用的语言。 有关详细信息,请参阅 支持的语言 。 |
|
x-ms-client-id |
string |
指定用于与 Azure AD 安全模型结合使用的帐户。 它表示 Azure Maps 帐户的唯一 ID,可从 Azure Maps 管理平面帐户 API 检索。 若要在 Azure Maps 中使用 Azure AD 安全性,请参阅以下 文章 获取指导。 |
响应
名称 | 类型 | 说明 |
---|---|---|
200 OK |
确定 Media Types: "application/geo+json" 标头 x-ms-request-id: string |
|
Other Status Codes |
发生了意外错误。 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
流向:
implicit
授权 URL:
https://login.microsoftonline.com/common/oauth2/authorize
作用域
名称 | 说明 |
---|---|
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 detail address 15127 NE 24th Street, Redmond, WA
示例请求
GET https://atlas.microsoft.com/geocode?api-version=2023-06-01&addressLine=15127 NE 24th Street&adminDistrict=WA&locality=Redmond
示例响应
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": "High",
"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
]
}
]
}
Search detail address 15127 NE 24th Street, Redmond, WA by addressLine
示例请求
GET https://atlas.microsoft.com/geocode?api-version=2023-06-01&addressLine=15127 NE 24th Street Redmond WA&countryRegion=US
示例响应
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
]
}
]
}
Search detail address 15127 NE 24th Street, Redmond, WA by query
示例请求
GET https://atlas.microsoft.com/geocode?api-version=2023-06-01&query=15127 NE 24th Street Redmond WA
示例响应
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": "High",
"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
]
}
]
}
Search landmark Empire State Building by query
示例请求
GET https://atlas.microsoft.com/geocode?api-version=2023-06-01&query=empire state building
示例响应
Content-Type: application/geo+json
{
"type": "FeatureCollection",
"features": [
{
"type": "Feature",
"properties": {
"address": {
"countryRegion": {
"name": "United States"
},
"adminDistricts": [
{
"shortName": "NY"
}
],
"formattedAddress": "Empire State Building, NY",
"locality": "New York"
},
"type": "PointOfInterest",
"confidence": "High",
"matchCodes": [
"Ambiguous"
],
"geocodePoints": [
{
"geometry": {
"type": "Point",
"coordinates": [
-73.98580932617188,
40.748435974121094
]
},
"calculationMethod": "Rooftop",
"usageTypes": [
"Display"
]
}
]
},
"geometry": {
"type": "Point",
"coordinates": [
-73.98580932617188,
40.748435974121094
]
},
"bbox": [
-73.98590850830078,
40.74833679199219,
-73.98571014404297,
40.74853515625
]
},
{
"type": "Feature",
"properties": {
"address": {
"countryRegion": {
"name": "United States"
},
"adminDistricts": [
{
"shortName": "NY"
},
{
"shortName": "New York County"
}
],
"formattedAddress": "Empire State Building, NY",
"locality": "Manhattan"
},
"type": "LandmarkBuilding",
"confidence": "High",
"matchCodes": [
"Ambiguous"
],
"geocodePoints": [
{
"geometry": {
"type": "Point",
"coordinates": [
-73.98500061035156,
40.74815368652344
]
},
"calculationMethod": "Rooftop",
"usageTypes": [
"Display"
]
}
]
},
"geometry": {
"type": "Point",
"coordinates": [
-73.98500061035156,
40.74815368652344
]
},
"bbox": [
-73.98710632324219,
40.747314453125,
-73.98412322998047,
40.74958038330078
]
}
]
}
定义
名称 | 说明 |
---|---|
Address |
结果的地址 |
Admin |
地址所在国家或地区中的细分名称。 此元素通常被视为第一级管理细分,但在某些情况下,它还包含国家/地区、依赖项或区域中的第二级、第三级或第四级细分。 |
Calculation |
用于计算地理编码点的方法。 |
Confidence |
地理编码位置结果匹配的置信度。 将此值与匹配代码一起使用,以确定有关匹配的更完整信息。 地理编码位置的置信度取决于许多因素,包括地理编码位置和用户位置的相对重要性(如果指定)。 |
Country |
|
Error |
资源管理错误附加信息。 |
Error |
错误详细信息。 |
Error |
错误响应 |
Feature |
FeatureCollection 对象的类型必须为 FeatureCollection。 |
Features |
|
Feature |
特征的类型必须为 Feature。 |
Geocode |
地理编码点的集合,这些点的计算方式及其建议用法不同。 |
Geocoding |
此对象是从成功的地理编码调用返回的 |
Geo |
有效的 |
Intersection |
结果的地址。 |
Match |
一个或多个匹配代码值,表示响应中每个位置的地理编码级别。 例如,匹配代码为 和 同样,匹配代码为 和 可能的值为:
|
Properties | |
Usage |
地理编码点的最佳用途。
每个地理编码点都定义为一个 |
Address
结果的地址
名称 | 类型 | 说明 |
---|---|---|
addressLine |
string |
包含街道名称和号码的 AddressLine |
adminDistricts |
地址所在国家或地区中的细分名称。 此元素通常被视为第一级管理细分,但在某些情况下,它还包含国家/地区、依赖项或区域中的第二级、第三级或第四级细分。 |
|
countryRegion | ||
formattedAddress |
string |
带格式的 Address 属性 |
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 |
如果置信度设置为 如果请求包含位置或视图,则排名可能会相应地更改。 例如,对“Paris”的位置查询将置信返回“Paris, France”和“Paris, TX”。 |
Low |
string |
|
Medium |
string |
在某些情况下,返回的匹配项可能与请求中提供的信息不同。 例如,请求可以指定地址信息,而地理编码服务可能只能匹配邮政编码。 在这种情况下,如果地理编码服务确信邮政编码与数据匹配,则置信度设置为 如果查询中的位置信息不明确,并且没有其他信息来对位置 (进行排名,例如用户位置或位置) 的相对重要性,则置信度设置为 如果查询中的位置信息没有提供足够的信息来对特定位置进行地理编码,可能会返回不太精确的位置值,并将置信度设置为 |
CountryRegion
名称 | 类型 | 说明 |
---|---|---|
ISO |
string |
国家/地区的 ISO |
name |
string |
国家/地区名称 |
ErrorAdditionalInfo
资源管理错误附加信息。
名称 | 类型 | 说明 |
---|---|---|
info |
object |
其他信息。 |
type |
string |
其他信息类型。 |
ErrorDetail
错误详细信息。
名称 | 类型 | 说明 |
---|---|---|
additionalInfo |
错误附加信息。 |
|
code |
string |
错误代码。 |
details |
错误详细信息。 |
|
message |
string |
错误消息。 |
target |
string |
错误目标。 |
ErrorResponse
错误响应
名称 | 类型 | 说明 |
---|---|---|
error |
错误对象。 |
FeatureCollectionEnum
FeatureCollection 对象的类型必须为 FeatureCollection。
名称 | 类型 | 说明 |
---|---|---|
FeatureCollection |
string |
FeaturesItem
名称 | 类型 | 说明 |
---|---|---|
bbox |
number[] |
边界框。 使用的投影 - EPSG:3857。 有关详细信息,请参阅 RFC 7946 。 |
geometry |
有效的 |
|
id |
string |
返回的功能的 ID |
properties | ||
type |
特征的类型必须为 Feature。 |
FeatureTypeEnum
特征的类型必须为 Feature。
名称 | 类型 | 说明 |
---|---|---|
Feature |
string |
GeocodePoints
地理编码点的集合,这些点的计算方式及其建议用法不同。
名称 | 类型 | 说明 |
---|---|---|
calculationMethod |
用于计算地理编码点的方法。 |
|
geometry |
有效的 |
|
usageTypes |
地理编码点的最佳用途。
每个地理编码点都定义为一个 |
GeocodingResponse
此对象是从成功的地理编码调用返回的
名称 | 类型 | 说明 |
---|---|---|
features | ||
nextLink |
string |
是指向返回的功能的下一页的链接。 如果是最后一页,则不使用此字段。 |
type |
FeatureCollection 对象的类型必须为 FeatureCollection。 |
GeoJsonPoint
有效的 GeoJSON Point
几何类型。 有关详细信息,请参阅 RFC 7946 。
名称 | 类型 | 说明 |
---|---|---|
bbox |
number[] |
边界框。 使用的投影 - EPSG:3857。 有关详细信息,请参阅 RFC 7946 。 |
coordinates |
number[] |
是 |
type |
string:
Point |
指定 |
Intersection
结果的地址。
名称 | 类型 | 说明 |
---|---|---|
baseStreet |
string |
位置的主要街道。 |
displayName |
string |
交集的完整名称。 |
intersectionType |
string |
交集的类型。 |
secondaryStreet1 |
string |
第一条相交的街道。 |
secondaryStreet2 |
string |
如果有,则为第二条相交街道。 |
MatchCodesEnum
一个或多个匹配代码值,表示响应中每个位置的地理编码级别。
例如,匹配代码为 和 Ambiguous
的Good
地理编码位置意味着为位置信息找到了多个地理编码位置,并且地理编码服务没有向上搜索层次结构来查找匹配项。
同样,匹配代码为 和 UpHierarchy
的Ambiguous
地理编码位置意味着找不到与所提供的所有位置信息匹配的地理编码位置,因此地理编码服务必须向上搜索层次结构并在该级别找到多个匹配项。 例如,Ambiguous
UpHierarchy
提供完整的地址信息,但地理编码服务找不到街道地址的匹配项,而是返回多个 RoadBlock 值的信息。
可能的值为:
Good
:该位置只有一个匹配项,或者所有返回的匹配项都被视为强匹配项。 例如,对 New York 的查询返回多个 Good 匹配项。
Ambiguous
:位置是一组可能的匹配项之一。 例如,查询街道地址 128 Main St.时,响应可能会返回北主街 128 号和南主街 128 号的两个位置,因为没有足够的信息来确定要选择的选项。
UpHierarchy
:位置表示地理层次结构的上移。 当未找到位置请求的匹配项时,会发生这种情况,因此会返回不太精确的结果。 例如,如果找不到所请求地址的匹配项,则可能会返回具有 RoadBlock 实体类型的 匹配代码 UpHierarchy
。
名称 | 类型 | 说明 |
---|---|---|
Ambiguous |
string |
|
Good |
string |
|
UpHierarchy |
string |
Properties
名称 | 类型 | 说明 |
---|---|---|
address |
结果的地址 |
|
confidence |
地理编码位置结果匹配的置信度。 将此值与匹配代码一起使用,以确定有关匹配的更完整信息。 地理编码位置的置信度取决于许多因素,包括地理编码位置和用户位置的相对重要性(如果指定)。 |
|
geocodePoints |
地理编码点的集合,这些点的计算方式及其建议用法不同。 |
|
matchCodes |
一个或多个匹配代码值,表示响应中每个位置的地理编码级别。 例如,匹配代码为 和 同样,匹配代码为 和 可能的值为:
|
|
type |
string |
下列其中一项:
|
UsageTypeEnum
地理编码点的最佳用途。
每个地理编码点都定义为一个 Route
点、一个 Display
点或两者。
如果要创建指向该位置的路线,请使用 Route
点。 如果要在地图上显示位置,请使用 Display
点。 例如,如果位置是一个公园,则 Route
点可以指定一个可以乘坐汽车进入的公园入口,一个 Display
点可能是一个指定公园中心的点。
名称 | 类型 | 说明 |
---|---|---|
Display |
string |
|
Route |
string |