1

アプリケーションで Google Distance Matrix Api を使用して、2 点間の距離と時間を取得しています。

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 に答える