Google 在 iOS 应用程序中映射具有多个值的距离矩阵 Api

Google Maps Distance Matrix Api with multiple values in iOS application

我在我的应用程序中使用 Google 距离矩阵 Api 来获取两点之间的距离和时间:

NSString *link              = [NSString stringWithFormat:@"https://maps.googleapis.com/maps/api/distancematrix/json?origins=55.9667,25.5833&destinations=54.6833,25.2833&mode=drive&key=XXXXXXXXXXXXXXXXXXX"];
NSURL *url                  = [[NSURL alloc]initWithString:link];
NSURLRequest *request       = [NSURLRequest requestWithURL:url];
NSURLConnection *connection = [NSURLConnection connectionWithRequest:request delegate:self];
[connection start];

一切正常,但是当我想使用 URL 获取多个点之间的距离和时间时:

NSString *link = [NSString stringWithFormat:@"https://maps.googleapis.com/maps/api/distancematrix/json?origins=55.9667,25.5833|55.5000,25.6000&destinations=54.6833,25.2833|55.7000,21.1306&mode=drive&key=XXXXXXXXXXXXXXXXXXX-ts"];

我收到一个错误:

@"NSLocalizedDescription" : @"unsupported URL"
@"NSUnderlyingError" : domain: @"kCFErrorDomainCFNetwork" - code: 18446744073709550614  

如果我把这个 URL 放在浏览器中,它就会得到我想要的东西。多个 origins/destinations 在 iOS 中不可用吗?还是我做错了什么?

更新: 它不会将我的 link 转换为 NSURL。为零。

您需要转义 link 中的非 ASCII 字符。

NSString* escapedLink = [link stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];