我成功获得了一个谷歌静态地图,显示了两个坐标之间的路径。
问题在于绘制的路径只是两点之间的直线。
我读到这是为了能够在静态谷歌地图上的2个点之间画出“路线”,就像在道路和城市地理而不是直线之后,我需要添加所有坐标/十字路口路径。
有谁知道解决这个问题的简单解决方案?
答案 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_;
}