【问题标题】:Plot directions on Google map based on geo coordinates根据地理坐标在 Google 地图上绘制路线
【发布时间】:2015-06-06 00:47:02
【问题描述】:

我正在构建一个使用 Google Maps SDK 跟踪用户位置的 iOS 应用。我通过检查坐标是否存在以及如果它们不存在,则将任何更改的纬度/经度坐标存储在数组中。

这在我绘制折线时效果很好,但是我想获取其中一些坐标并创建方向(沿着街道、道路、路径等)。

有没有办法从这些坐标中获取 10 或 20 个坐标和绘图方向?创建路线后,返回新路线的纬度/经度坐标?

【问题讨论】:

标签: ios google-maps


【解决方案1】:

是的,您必须调用 Google Directions API 并将您的坐标作为航点传递。您还可以告诉 API 这些航点的顺序以跟踪路线。我是这样做的:

http://maps.googleapis.com/maps/api/directions/json?&origin=28.584442,-81.305543&destination=28.596688, -81.302325&waypoints=28.589793,-81.311122|28.595897, -81.308891&sensor=false

用竖线字符分隔要用作航路点的每对坐标|

您可以在此处了解有关如何在路线中使用航点的更多信息:

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

【讨论】:

  • 谢谢。我不确定如何在 Swift 中使用它(因为我是 Swift 开发的新手)。您是否有任何我可以阅读的进一步参考资料或我可以修改的示例代码?我一直在四处寻找,但找不到太多的样本。
【解决方案2】:

可能会帮助别人

 GMSCameraPosition *cameraPosition=[GMSCameraPosition cameraWithLatitude:13.0733838 longitude:80.19203929 zoom:12];
    _mapView =[GMSMapView mapWithFrame:CGRectZero camera:cameraPosition];
    GMSMarker *marker=[[GMSMarker alloc]init];
    marker.position=CLLocationCoordinate2DMake(13.0733838, 80.19203929);
    marker.icon=[UIImage imageNamed:@"mappinblue"] ;
    marker.groundAnchor=CGPointMake(0.5,0.5);
    marker.map=_mapView;
    GMSMutablePath *path = [GMSMutablePath path];
    [path addCoordinate:CLLocationCoordinate2DMake(@(13.0733838).doubleValue,@(80.19203929).doubleValue)];
    [path addCoordinate:CLLocationCoordinate2DMake(@(13.074099).doubleValue,@(80.1919654).doubleValue)];
    [path addCoordinate:CLLocationCoordinate2DMake(@(13.070933).doubleValue,@(80.1842051).doubleValue)];
    [path addCoordinate:CLLocationCoordinate2DMake(@(13.0770034).doubleValue,@(80.21175909999999).doubleValue)];
    [path addCoordinate:CLLocationCoordinate2DMake(@(13.0784528).doubleValue,@(80.2120139).doubleValue)];
    [path addCoordinate:CLLocationCoordinate2DMake(@(13.078285).doubleValue,@(80.21424979999999).doubleValue)];
    [path addCoordinate:CLLocationCoordinate2DMake(@(13.0774898).doubleValue,@(80.21416479999999).doubleValue)];
    [path addCoordinate:CLLocationCoordinate2DMake(@(13.0774401).doubleValue,@(80.2146616).doubleValue)];


    GMSPolyline *rectangle = [GMSPolyline polylineWithPath:path];
    rectangle.strokeWidth = 4.f;
    rectangle.map = _mapView;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-06-01
    • 2021-02-13
    • 2012-07-23
    • 1970-01-01
    • 2019-07-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多