pra*_*bhu 2 iphone google-maps-api-3 ios
我在我的iOS应用程序中使用google api V3,我要求google api方向服务,通过http GET方法,我得到了一个非常大的json响应,我从源到目的地有很多备用路由,现在我想显示路由地图上的每个替代方案,我该怎么做?是否需要在iOS中集成google sdk,或者我只能使用webView,请帮助我,并提出最简单的方法.提前致谢
您不需要包含任何谷歌SDK来绘制地图上的路线.看下面的课程.
谷歌地图api方向服务将为您提供腿(坐标)来绘制两个特定点之间的路线.
因为你已经有来自Direction api的json响应,你现在必须解析json并从json获得所有的腿指向以创建Coordinate数组.
这些要点可能是或大部分是入选的.如何将Google Directions API折线字段解码为适用于iPhone的objective-C中的lat长点?
如果你有坐标数组,那么首先你必须创建一个CLLocationCoordinate2D数组,如下所示:
CLLocationCoordinate2D *pointArr = malloc(sizeof(CLLocationCoordinate2D) * [your_CoordinateArray count]);
for(int i = 0; i < [your_CoordinateArray count]; i++){
pointArr[i] = [your_CoordinateArray objectAtIndex:i];
}
Run Code Online (Sandbox Code Playgroud)
然后,您必须将折线添加到地图中
MKPolyline *line = [MKPolyline polylineWithCoordinates:pointArr count:[your_CoordinateArray count]];
if (nil != line)
{
[your_Map addOverlay:line];
}
Run Code Online (Sandbox Code Playgroud)
然后你必须实现以下map委托:
- (MKOverlayView *)mapView:(MKMapView *)mapView viewForOverlay:(id <MKOverlay>)overlay
{
MKOverlayView* overlayView = nil;
lineView = [[MKPolylineView alloc] initWithPolyline:overlay];// lineView is an ivar, object of MKPolylineView
lineView.fillColor = [UIColor greenColor];
lineView.strokeColor = [UIColor greenColor];
lineView.lineWidth = 10.0;
lineView.alpha = 0.9;
overlayView = lineView;
return overlayView;
}
Run Code Online (Sandbox Code Playgroud)
现在,如果要在两个点之间显示两条不同的路径,则必须创建两个不同的坐标数组,并对两个数组应用上述方法
希望这会帮助你.
| 归档时间: |
|
| 查看次数: |
2135 次 |
| 最近记录: |