谷歌地图静态绘制“路线”而不是直线

时间:2010-10-13 08:56:42

标签: api google-maps

我成功获得了一个谷歌静态地图,显示了两个坐标之间的路径。

问题在于绘制的路径只是两点之间的直线。

我读到这是为了能够在静态谷歌地图上的2个点之间画出“路线”,就像在道路和城市地理而不是直线之后,我需要添加所有坐标/十字路口路径。

有谁知道解决这个问题的简单解决方案?

4 个答案:

答案 0 :(得分:23)

您绝对可以使用Static Maps API执行此操作:

使用DirectionsService获取路线:

http://code.google.com/apis/maps/documentation/javascript/reference.html#DirectionsService

并转换概述路径以满足Static Maps API的要求:

http://code.google.com/apis/maps/documentation/staticmaps/#Paths

答案 1 :(得分:1)

使用折线,你可以画直线。

Polyline类定义地图上连接线段的线性叠加。 Polyline对象由LatLng位置数组组成,并创建一系列以有序顺序连接这些位置的线段。

你可以看到这里的例子

https://google-developers.appspot.com/maps/documentation/javascript/examples/polyline-simple

关于折线

https://developers.google.com/maps/documentation/javascript/overlays

答案 2 :(得分:0)

我认为你不能将此功能与staticmap api一起使用。但是,您可以将Directions与JavaScript API V3一起使用。

答案 3 :(得分:-1)

我深入研究了许多建议和代码,并将所有建议和代码结合起来制作了一个非常简单的解决方案,上面的代码应该对你有用:

NSURL *url = [NSURL URLWithString:[NSString stringWithFormat:@"https://maps.googleapis.com/maps/api/directions/json?origin=%f,%f&destination=%f,%f&sensor=false&mode=driving",[startLat floatValue] ,[startLong floatValue], [endLat floatValue], [endLong floatValue]]];

NSDictionary *PathInfo;//the json of the result

NSURLRequest *request = [NSURLRequest requestWithURL:url];
NSURLResponse *response = nil;
NSError *error = nil;
NSData *responseData =  [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error];
if (!error) {
    PathInfo = [NSJSONSerialization JSONObjectWithData:responseData options:NSJSONReadingAllowFragments error:&error];
    GMSPath *path =[GMSPath PathInfo[@"routes"][0][@"overview_polyline"][@"points"]];
    GMSPolyline *singleLine = [GMSPolyline polylineWithPath:path];
    singleLine.strokeWidth = 3;
    singleLine.strokeColor = [UIColor redColor];
    singleLine.map = mapView_;
}