2016-02-12 5 views
1

я использую Google Distance Matrix Апи в моем приложении, чтобы получить расстояние и время между двумя точками:Google Maps Distance Matrix Api с несколькими значениями в приложении IOS

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. Это ноль.

+0

Предполагается получить ответ об ошибке от API Google (например, недействительный ключ). Можете ли вы опубликовать, какую ошибку вы получаете, чтобы мы могли помочь отлаживать? –

+0

Обновлен мой вопрос. – Roo

ответ

2

Вам необходимо избегать символов, отличных от ASCII, в вашей ссылке.

NSString* escapedLink = [link stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; 
+0

Ницца, я помню, у меня была эта проблема, как 3 года назад, но не помню :) nice find –