根据地理坐标在Google地图上绘制路线

时间:2015-06-06 00:47:02

标签: ios google-maps

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

当我绘制折线时这很有效但是我想采取一些坐标并创建方向(按照街道,道路,路径等)。

有没有办法说出10或20坐标并绘制出来的方向?创建方向后,返回新路径的纬度/经度坐标?

2 个答案:

答案 0 :(得分:0)

是的,您必须调用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

答案 1 :(得分:0)

可以帮助别人

 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;