有没有办法使用核心位置或谷歌或其他一些 api 在地图上提供两个点并获得路线的纬度/经度对的结果集?
我在本教程中看到在MKMapView 上绘制折线或路线,说明如何使用核心图形绘制行车方向……但在示例代码中,它有 route.csv,它具有预定义的经度和纬度集……怎么做我制作了一对经度和纬度,以便我可以绘制行车路线。
有没有办法使用核心位置或谷歌或其他一些 api 在地图上提供两个点并获得路线的纬度/经度对的结果集?
我在本教程中看到在MKMapView 上绘制折线或路线,说明如何使用核心图形绘制行车方向……但在示例代码中,它有 route.csv,它具有预定义的经度和纬度集……怎么做我制作了一对经度和纬度,以便我可以绘制行车路线。
公司投资了数百万美元来开发路由算法,所以我非常怀疑你是否能够在任何地方免费获得它(不过我很高兴错了)。例如,Google Maps JavaScript API 支持路由,所以我想你可以破解它。请注意,结果不会很快或漂亮。
如果您对路线请求的使用有限(每天少于一定数量)并且始终在 Google 地图上显示结果,那么您确实有资格使用免费的 Google Directions API。
https://developers.google.com/maps/documentation/directions/
仔细阅读许可证部分以了解限制。您应该能够轻松地请求一个比 xml 更容易解析的 json 响应(加上 Apple 在 iOS 中添加的 json 解析器)。
例如
如果您超过限制,您应该查看他们的营业执照。
老问题,但 MTDirectionsKit 最近是开源的,效果很好:
使用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();
}
链接中的更多信息。