如何获取道路的地理坐标?

How to get geo coordinates of road?

我正在尝试沿着道路创建一条走廊。因此我需要某种坐标集。目前我正在请求一条路线并使用它的坐标。但是如果有一个长段,我 运行 使用这种方法会遇到问题,例如。 200公里在高速公路上。如果我在上高速公路和下高速公路时只使用指示的位置,走廊可能会错过道路的某些部分,因为它可能不是直的。

所以我想做的是查询一条道路的"major"道路坐标。现在,id 是否需要 ID、道路名称或任何坐标都无关紧要。

我目前正在使用 HERE 地图,但如果有任何其他服务可以满足我的要求,我愿意审查和测试它。我还查看了 google-maps api,但仍然没有找到服务或任何类似的方法。 提前致谢。

如果我对你的问题的理解正确,你需要先获取路线的完整几何形状,然后将结果修剪成你想要的坐标。

对于 HERE 7.2 routing API and the 6.2 Enterprise Routing API,如果你想获得路线的形状,你只需要包含参数 routeattributes=shape.

例如

.../calculateroute.json?waypoint0=lat,lng&waypoint1=lat,lng&mode=fastest:car:traffic:Adefault&routeattributes=shape&app_id=YOR_APPID&app_code=YOUR_TOKEN

如果没有设置 shape 枚举,通常不会返回完整的几何图形(路线或操纵)。

这在API User guide中有解释,如图:

路由属性

定义响应中包含哪些属性作为路由数据表示的一部分。默认为 waypoints, summary,summaryByCountry legs, lines。另见 RouteAttributeType.

枚举[waypoints | summary | summaryByCountry | shape | boundingBox | legs | notes]

API 资源管理器中的 route shape example returns :

[
"52.5160414,13.3782982",
"52.5163436,13.3782148",
"52.5162363,13.3783329",
"52.5162148,13.3786547",
"52.5162792,13.3795774",
"52.5163651,13.3808541",
"52.5165153,13.3807898",
"52.516644,13.3807361",
"52.5169337,13.3806503",
"52.5181997,13.3804357",
"52.5189185,13.380264",
"52.5189829,13.3811975",
"52.5191653,13.3820879",
"52.5197446,13.3840835",
"52.5201201,13.3851671",
"52.5203025,13.3855319",
"52.52056,13.3859825",
"52.5206485,13.3861105"
],  ... etc.

在响应中。