项目
09/26/2024
9 个参与者
Azure Maps 和 Google Maps 都通过 REST Web 服务提供对空间 API 的访问。 这些平台的 API 接口执行类似的功能。 但是,每个接口使用不同的命名约定和响应对象。
本教程演示如何:
正向/反向地理编码
搜索兴趣点
计算路线和方向
检索地图图像
计算距离矩阵
获取时区详细信息
你还将了解:
从 Google Maps Web 服务迁移时,使用哪种 Azure Maps REST 服务
有关如何充分利用 Azure Maps 服务的提示
对其他相关 Azure Maps 服务的见解
下表显示了功能与所列 Google Maps 服务 API 类似的 Azure Maps 服务 API。
Google Maps 服务 API
Azure Maps 服务 API
以下服务 API 目前在 Azure Maps 中不可用:
地理位置 - Azure Maps 确实提供名为地理位置的服务,但它只在位置信息中提供 IP 地址,当前并不支持手机信号塔或 Wifi 三角测量。
位置详细信息和照片 - 电话号码和网站 URL 在 Azure Maps 搜索 API 中可用。
地图 URL
最近的道路 - 可以通过使用 Web SDK 实现,如
沿实际道路基本逻辑
示例所示,但目前未作为服务提供。
静态街道视图
如果没有 Azure 订阅,请在开始之前创建一个
免费帐户
。
Azure Maps 帐户
有关 Azure Maps 中身份验证的详细信息,请参阅
在 Azure Maps 中管理身份验证
。
地理编码地址
地理编码是将地址转换为坐标的过程。 例如,将“1 Microsoft way, Redmond, WA”转换为经度:-122.1298,纬度:47.64005。 然后,坐标可用于不同的目的,例如,在地图上定位并居中某个标记。
Azure Maps 提供多种方法用于对地址进行地理编码:
Get Search Address
:自由格式的地址地理编码用于指定单个地址字符串(如
"1 Microsoft way, Redmond, WA"
)并立即处理请求。 如果需要快速对各个地址进行地理编码,我们建议使用此服务。
Get Search Address Structured
:指定单个地址的各个部分(例如街道名称、城市、国家/地区和邮政编码),并立即处理请求。 如果需要快速对单个地址进行地理编码,并且数据已分析成各个地址组成部分,则我们建议使用此 API。
Post Search Address Batch
:创建最多包含 10,000 个地址的请求,并在一段时间内对其进行处理。 所有地址会在服务器上并行进行地理编码,完成后,可以下载完整的结果集。 若要对大型数据集进行地理编码,建议使用此方法。
Get Search Fuzzy
:模糊搜索 API 将地址地理编码与兴趣点搜索相结合。 此 API 采用自由格式的字符串(可以是地址、地点、地标、兴趣点或兴趣点类别),并立即处理请求。 对于其用户可以从同一文本框搜索地址或兴趣点的应用程序,建议使用此 API。
Post Search Fuzzy Batch
:使用模糊批量搜索创建包含最多 10,000 个地址、地点、地标或兴趣点的请求,并在一段时间内对其进行处理。 所有数据会在服务器上并行进行处理,完成后,可以下载完整的结果集。
下表对 Google Maps API 参数与 Azure Maps 中的类似 API 参数做了交叉比较。
Google Maps API 参数
类似的 Azure Maps API 参数
components
streetNumber
streetName
crossStreet
postalCode
municipality
- 城市/城镇
municipalitySubdivision
– 周边区域,城市副中心/超级城市
countrySubdivision
- 州或省/自治区/直辖市
countrySecondarySubdivision
- 县
countryTertiarySubdivision
- 区
countryCode
- 双字母国家/地区代码
subscription-key
- 有关详细信息,请参阅
向 Azure Maps 进行身份验证
。
language
language
- 有关详细信息,请参阅
Azure Maps 中的本地化支持
。
region
countrySet
有关使用搜索服务的详细信息,请参阅
使用 Azure Maps 搜索服务搜索位置
。 请务必查看
搜索最佳做法
。
可以通过将
&typeahead=true
添加到请求 URL,在自动完成模式下使用自由格式的地址地理编码和模糊搜索 API。 这可以让服务器知道输入文本可能是不完整的,搜索将进入预测模式。
对坐标进行反向地理编码
反向地理编码是将地理坐标转换为大致地址的过程。 例如,将坐标“经度:-122.1298,纬度:47.64005”转换为“1 Microsoft way, Redmond, WA”。
Azure Maps 提供多种反向地理编码方法:
Get Search Address Reverse
:指定单个地理坐标,以获取对应于此坐标的大致地址。 以近实时的速度处理请求。
Get Search Address Reverse Cross Street
:指定单个地理坐标,以获取附近的十字街信息,并立即处理请求。 例如,你可能会获得以下十字街位置:第一大道和主街。
Post Search Address Reverse Batch
:创建最多包含 10,000 个坐标的请求,并在一段时间内对其进行处理。 所有数据将在服务器上并行进行处理。 请求完成后,可以下载整个结果集。
下表对 Google Maps API 参数与 Azure Maps 中的类似 API 参数做了交叉比较。
Google Maps API 参数
类似的 Azure Maps API 参数
有关详细信息,请参阅
搜索最佳做法
。
Azure Maps 反向地理编码 API 提供 Google Maps 所不能提供的其他一些功能。 在迁移应用时,这些功能可能对集成应用程序有帮助:
检索限速数据
检索道路使用信息:地方道路、干道、限制进入、匝道等
检索坐标所在的街道一侧
搜索兴趣点
在 Google Maps 中可以使用地点搜索 API 搜索兴趣点数据。 此 API 提供三种不同的方式来搜索兴趣点:
从文本中查找地点:
基于兴趣点的名称、地址或电话号码搜索该兴趣点。
附近搜索:
搜索位于某个位置特定距离内的兴趣点。
文本搜索:
使用包含兴趣点和位置信息的自由格式文本来搜索地点。 例如,“纽约的披萨店”或“主街附近的餐厅”。
Azure Maps 提供多个搜索 API 用于搜索兴趣点:
Get Search POI
:按名称搜索兴趣点。 例如“星巴克”。
Get Search POI Category
:按类别搜索兴趣点。 例如“餐厅”。
Get Search Nearby
:搜索位于某个位置特定距离内的兴趣点。
Get Search Fuzzy
:模糊搜索 API 将地址地理编码与兴趣点搜索相结合。 此 API 采用自由格式的字符串(可以是地址、地点、地标、兴趣点或兴趣点类别),并立即处理请求。 对于其用户可以从同一文本框搜索地址或兴趣点的应用程序,建议使用此 API。
Post Search Inside Geometry
:搜索指定几何图形中的兴趣点。 例如,在多边形中搜索兴趣点。
Post Search Along Route
:搜索指定路线上的兴趣点。
Post Search Fuzzy Batch
:使用模糊批量搜索创建包含最多 10,000 个地址、地点、地标或兴趣点的请求,并在一段时间内对其进行处理。 所有数据会在服务器上并行进行处理,完成后,可以下载完整的结果集。
目前,Azure Maps 没有与 Google Maps 中的文本搜索 API 类似的 API。
可以通过将
&typeahead=true
添加到请求 URL,在自动完成模式下使用 POI 搜索、POI 类别搜索和模糊搜索 API。 这可以让服务器知道输入文本可能是不完整的。API 将在预测模式下执行搜索。
有关详细信息,请参阅
搜索最佳做法
。
从文本中查找地点
使用 Azure Maps
Get Search POI
和
Get Search Fuzzy
,可按名称或地址搜索兴趣点。
下表对 Google Maps API 参数与类似的 Azure Maps API 参数做了交叉比较。
Google Maps API 参数
类似的 Azure Maps API 参数
Azure Maps 路线服务提供以下 API 来计算路线:
Get Route Directions
:计算路线并立即处理请求。 此 API 同时支持
GET
和
POST
请求。 指定大量途经点或使用大量路线选项时,建议使用
POST
请求,以确保 URL 请求不会太长并导致出现问题。 Azure Maps 中的“
POST
路线方向”提供了一个选项,可以接受数千个
支持点
,并使用这些支持点在它们之间重新创建一个逻辑路线路径(贴靠到道路)。
Post Route Directions Batch
:创建最多包含 1,000 个路线请求的请求,并在一段时间内对其进行处理。 所有数据会在服务器上并行进行处理,完成后,可以下载完整的结果集。
下表对 Google Maps API 参数与 Azure Maps 中的类似 API 参数做了交叉比较。
Google Maps API 参数
类似的 Azure Maps API 参数
默认情况下,Azure Maps 路线 API 仅返回摘要。 它返回距离和时间,以及路径的坐标。 使用
instructionsType
参数可检索转弯提示说明。 使用
routeRepresentation
参数筛选出摘要和路径。
Azure Maps 路线 API 提供 Google Maps 所不能提供的其他功能。 在迁移应用时,请考虑使用以下功能:
路线类型支持:最短、最快、trilling 和最省油。
支持其他交通方式:公共汽车、摩托车、出租车、货车和面包车。
支持 150 个中途点。
计算单个请求中的多个旅行时间;历史交通状况、实时交通状况、无交通状况。
避开其他道路类型:共乘车道、土路、已占用的道路。
指定要避开的自定义区域。
限制路线可能上升的高度。
基于发动机规格规划路线。 根据发动机规格和剩余燃料或电量计算燃料汽车或电动车的路线。
支持商务车路线参数。 例如车辆尺寸、重量、轴数和货物类型。
指定最大车速。
此外,Azure Maps 中的路线服务还支持
Get Route Range
。 可达范围也称为等时线。 这种计算会生成一个多边形,其中涵盖了在指定的时间内或根据剩余的燃料/电量, 从某个原点朝任意方向可以行进到的区域。
有关详细信息,请参阅
路线规划的最佳做法
。
检索地图图像
Azure Maps 提供一个 API 用于呈现包含叠加数据的静态地图图像。 Azure Maps 中的
Get Map Static Image
API 类似于 Google Maps 中的静态地图 API。
Azure Maps 要求以“经度,纬度”格式的坐标提供中心点、所有标记和路径位置。 而 Google Maps 则使用“纬度,经度”格式。 首先需要对地址进行地理编码。
下表对 Google Maps API 参数与 Azure Maps 中的类似 API 参数做了交叉比较。
Google Maps API 参数
类似的 Azure Maps API 参数
在 Azure Maps 图块系统中,图块大小是 Google Maps 中所用地图图块的两倍。 因此,相比 Google Maps,Azure Maps 中的缩放级别值看上去要更近一个级别。 若要补偿这种差异,请要迁移的请求中降低缩放级别。
有关详细信息,请参阅
在光栅地图上呈现自定义数据
。
除了能够生成静态地图图像以外,Azure Maps 呈现服务还支持直接访问光栅 (PNG) 和矢量格式的地图图块:
Get Map Static Image
:检索基础地图的光栅 (PNG) 和矢量图块(道路、边界、背景)。
Get Map Tile
- 检索航空和卫星图像图块。
许多 Google Maps 应用程序在几年前已从交互式地图体验切换为静态地图图像。 这是一种成本节省的方法。 在 Azure Maps 中,使用 Web SDK 中的交互式地图控件可以提高性价比。 交互式地图控件是按照图块加载次数收费的。 Azure Maps 中的地图图块较大。 通常只需添加少量的图块即可重新创建与静态地图相同的地图视图。 浏览器会自动缓存地图图块。 因此,在再现静态地图视图时,交互式地图控件通常只生成一部分事务。 平移和缩放会加载更多图块,但是,可以使用地图控件中的选项来禁用此行为。 此外,交互式地图控件提供的可视化选项比静态地图服务要多得多。
前者:Google Maps
可以通过在 URL 中使用
markers
参数来添加标记。
markers
参数采用某种样式以及要在地图上呈现的位置列表,其中,样式如下所示: