1

我在我的应用程序中使用 Google Distance Matrix 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 放在浏览器中,它就会得到我想要的。iOS 中是否不提供多个起点/终点?还是我做错了什么?

更新: 它不会将我的链接转换为 NSURL。它是零。

4

1 回答 1

2

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

NSString* escapedLink = [link stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
于 2016-02-12T17:49:28.947 回答