获取整个路线,Google地图或OpenStreetMap的精确地理坐标

时间:2013-05-23 10:19:31

标签: google-maps geolocation openstreetmap

假设我有一个从一个城镇定义到另一个城镇的路线。从Google Maps API我可以恢复两者之间的路由。但是,从谷歌返回的路线是一条行车路线,其中包括仅在腿部有另一步的地方(例如,我必须从一条高速公路转向另一条高速公路的地方)的地理坐标。

我需要的是整个路线上的地理位置(纬度/经度),以特定的间隔(例如,每1/4英里或100米)。

有没有办法通过Google Maps API /网络服务实现这一目标?

或者OpenStreetMap数据库是否可以这样做?

亲切的问候, 松糕。

4 个答案:

答案 0 :(得分:25)

OSRM为您提供具有道路几何形状的路线,因为它们位于OpenStreetMap数据库中。例如,您可以将路径作为GPX(并根据需要对此文件进行后处理)。这看起来如下:

GET http://router.project-osrm.org/viaroute?hl=en&loc=47.064970,15.458470&loc=47.071100,15.476760&output=gpx

了解详情:OSRM API docs

答案 1 :(得分:5)

这只是google.maps.DirectionsService()。route()方法。您需要传递服务请求,然后传递一个在服务请求完成时执行的回调。

https://developers.google.com/maps/documentation/javascript/directions

答案 2 :(得分:0)

添加Marlio的答案。

您可以使用Google Maps Directions API本身。 对于给定的起点和目的地,在JSON输出中,查找以下内容:

"polyline" : {
  "points" : ""
}

您可以使用解码器从折线获取坐标: https://github.com/emcconville/google-map-polyline-encoding-tool 要么。您可以使用R中的googleway软件包对其进行解码。 https://cran.r-project.org/web/packages/googleway/googleway.pdf

我不知道如何将分辨率设置为您想要的水平。但API输出中的分辨率非常好。

答案 3 :(得分:0)

虽然不用作API,这里:https://www.nmeagen.org/ 可以创建“多点线”,设置点之间的距离和下载路线(坐标)为CSV。