我需要使用Google maps API找出从源到目的地的路线数量,然后找出哪一条是最短的路线。
我可以使用此代码
获得一条路线-(NSArray*) calculateRoutesFrom:(CLLocationCoordinate2D) f to: (CLLocationCoordinate2D) t {
NSString* saddr = [NSString stringWithFormat:@"%f,%f", f.latitude, f.longitude];
NSString* daddr = [NSString stringWithFormat:@"%f,%f", t.latitude, t.longitude];
NSString* apiUrlStr = [NSString stringWithFormat:@"http://maps.google.com/maps?output=dragdir&saddr=%@&daddr=%@", saddr, daddr];
NSURL* apiUrl = [NSURL URLWithString:apiUrlStr];
NSLog(@"api url: %@", apiUrl);
NSString *apiResponse = [NSString stringWithContentsOfURL:apiUrl];
NSString* encodedPoints = [apiResponse stringByMatching:@"points:\\\"([^\\\"]*)\\\"" capture:1L];
return [self decodePolyLine:[encodedPoints mutableCopy]];
}
但我无法获得多条路线。
我刚开始使用Google Maps API;我跟着this tutorial。
我该怎么做?任何人都可以发布一些示例代码或教程吗?
答案 0 :(得分:5)
替代品(可选),如果设置为 true,指定方向 服务可能提供不止一个 响应中的路由替代方案。 请注意,提供路线选择 可能会增加响应时间 服务器。
您需要添加查询链接alternatives = true
答案 1 :(得分:0)
要获得多条路线,您必须使用standard google direction api。通过这个api,您可以根据您在驾驶,步行或骑自行车中选择的行驶模式获得不同的路线(仅限美国的自行车路线)例如:http://maps.googleapis.com/maps/api/directions/xml?origin=srcLatitude,srcLongitude&destination=destLatitude,destLongitude&mode=driving&sensor=false
在这里,您可以给出源和目的地纬度和经度,并将模式参数的值更改为驾驶,步行或骑自行车以获得多条路线。