如何获取地图上两点之间的路线方向以绘制行车路线?

时间:2009-10-14 15:08:55

标签: xcode iphone-sdk-3.0 mapkit location map-directions

有没有办法使用核心位置或谷歌或其他api在地图上提供两个点并获得路由的结果纬度/经度对?

我在本教程中看到Drawing polyines or routes on a MKMapView如何使用核心图形绘制驾驶方向......但在示例代码中它有route.csv,它具有预定义的经度和纬度......如何我可以制作一对经度和纬度,以便我可以画出行车路线。

4 个答案:

答案 0 :(得分:0)

公司投入数百万美元用于开发路由算法,所以我非常怀疑你能够在任何地方免费获得它(尽管我很高兴错了)。例如,谷歌地图JavaScript API支持路由,所以我猜你可以破解它。请注意,结果不会很快

答案 1 :(得分:0)

如果您对路线请求的使用受到限制(每天少于一定金额)且始终在Google地图上显示结果,则您有资格获得免费的Google Directions API。

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

彻底阅读许可证部分以了解限制。您应该可以轻松地请求一个比xml响应更容易解析的json响应(加上Apple在iOS中添加了json解析器)。

例如

http://maps.googleapis.com/maps/api/directions/json?origin=Boston,MA&destination=Concord,MA&waypoints=Charlestown,MA|Lexington,MA&sensor=false

如果超出限额,您应该查看他们的营业执照。

答案 2 :(得分:0)

旧问题,但MTDirectionsKit最近是开源的,效果很好:

MTDirectionsKit

答案 3 :(得分:0)

使用 Google API ,您可以从两点获取路线,唯一的问题是,如果不付款,您每天只能使用一次。

搜索如何从Google获取关键API,YouTube上有很多关于它的视频。

此外,我有一个图书馆,可帮助您在点之间此点 https://github.com/jd-alexander/Google-Directions-Android

之间画一条线

build.gradle(Module:app)中实现它之后,在

之类的类中实现library

public class LocationMapActivity extends AppCompatActivity implements RoutingListener

在实现这些方法时会出现错误(必须来实现它们,但不必使用它们)。

我只是这样做:

 public void route(){

       Routing routing = new Routing.Builder()
                    .travelMode(/* Travel Mode */)
                    .withListener(/* Listener that delivers routing results.*/)
                    .waypoints(/*waypoints*/)
                    .key(/*api key for quota management*/)
                    .build();
        routing.execute();
    }

链接中的更多信息。