1

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

我在本教程中看到在MKMapView 上绘制折线或路线,说明如何使用核心图形绘制行车方向……但在示例代码中,它有 route.csv,它具有预定义的经度和纬度集……怎么做我制作了一对经度和纬度,以便我可以绘制行车路线。

4

4 回答 4

1

公司投资了数百万美元来开发路由算法,所以我非常怀疑你是否能够在任何地方免费获得它(不过我很高兴错了)。例如,Google Maps JavaScript API 支持路由,所以我想你可以破解它。请注意,结果不会很快漂亮。

于 2009-10-14T15:22:51.053 回答
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|列克星敦,MA&sensor=false

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

于 2012-03-26T16:15:45.790 回答
0

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

MTDirectionsKit

于 2014-02-19T14:05:17.633 回答
0

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

搜索如何从 google 获取 key 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();
    }

链接中的更多信息。

于 2019-08-21T16:21:46.367 回答