7

我一直在阅读适用于 iOS 的 Google Maps SDK 的文档,但没有看到任何关于在地图上绘制路线的信息。

我知道折线可用,但我认为这不是最好的方法。

是否可以?

4

6 回答 6

5

iOS SDK 尚不支持方向。与此同时,您可以使用Directions API Web 服务并使用 GMSPolyline 自己渲染路线。

您还应该提交功能请求以将其添加到 SDK。

于 2013-02-21T23:05:04.797 回答
4

作为 Saxon Druce 的回答,您可以使用 Google Maps Directions 网络服务来查找路线并通过折线绘制它们。这一将向您展示如何实现它,您可以从这个github 存储库下载示例代码。

于 2013-06-05T08:32:04.050 回答
3

库中的某些内容不在文档中,因此如果您正在寻找功能,则值得下载 SDK 并查看标题。

但是在当前版本 1.0.2 中,我看不到任何路由信息 - 搜索路由或绘制它们(甚至查找地址)。目前,您唯一的选择可能是使用其他一些 Google API 来查找路线,然后正如 Lee 所说,使用折线来绘制它们。

于 2013-02-09T03:29:11.383 回答
2

我有类似的问题,我需要使用相同的谷歌地图 ios sdk 在谷歌地图上绘制方向路径。我所做的是访问Google Distance API

我使用以下代码从 API 中提取了 html_instructions 和 end_location。

我将这些变量定义为属性

@property NSMutableArray *detailedSteps;
@property (strong, nonatomic) IBOutlet GMSMapView *mapview;

并使用以下代码提取 end_location 和 html_instructions

NSURL *url=[[NSURL alloc] initWithString:[NSString stringWithFormat:@"http://maps.googleapis.com/maps/api/directions/json?origin=ahmedabad&destination=%@",self.city]];
NSURLResponse *res;
NSError *err;
NSData *data=[NSURLConnection sendSynchronousRequest:[[NSURLRequest alloc] initWithURL:url] returningResponse:&res error:&err];
NSDictionary *dic=[NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:nil];
NSArray *routes=dic[@"routes"];
 NSArray *legs=routes[0][@"legs"];
NSArray *steps=legs[0][@"steps"];
NSMutableArray *textsteps=[[NSMutableArray alloc] init];
NSMutableArray *latlong=[[NSMutableArray alloc]init];
for(int i=0; i< [steps count]; i++){
    NSString *html=steps[i][@"html_instructions"];
    [latlong addObject:steps[i][@"end_location"]];
    [textsteps addObject:html];
}
self.detailedSteps=textsteps;
[self showDirection:latlong];

这是我在地图上绘制多边形的方法 showDirection。在这里,我传递了 latlong 数组。这实际上是 end_location 数组。

-(void)showDirection:(NSMutableArray*) latlong{
GMSMutablePath *path = [GMSMutablePath path];
for(int i=0; i<[latlong count]; i++){
    double lat=[latlong[i][@"lat"] doubleValue];
    double lng=[latlong[i][@"lng"] doubleValue];
    [path addLatitude:lat longitude:lng];
}
NSLog(@"Direction path");
GMSPolyline *polyline = [GMSPolyline polylineWithPath:path];
polyline.strokeColor = [UIColor blueColor];
polyline.strokeWidth = 5.f;
polyline.map = self.mapview ;

}
于 2014-12-26T12:30:58.617 回答
1

即使是 1.1.0 版也没有实现任何指示工具,所以我建议使用 URL 方案以获得最佳性能。

于 2013-02-25T00:26:02.127 回答
1

我认为现在可以使用Google Maps iOS SDK绘制路线/方向。
在此处关注官方视频教程:http: //talkminer.com/viewtalk.jsp?videoid=AdV7bCWuDYg&q=&row=4&
N=5#.Ui2H1mSAZTE

于 2013-09-09T08:36:08.227 回答