Http-запрос Google Maps не работает - PullRequest
0 голосов
/ 25 августа 2010

Я пытаюсь использовать запрос http для карт Google, чтобы получить расстояние вождения между двумя точками, используя JSON.Однако кажется, что они обрабатываются в браузере иначе, чем в приложении (iphone).

Я создаю строку NSString, которая содержит URL, используя координаты и% 20 (пробел).Я NSLog () URL, чтобы убедиться, и это выглядит нормально (то есть, он отлично работает в браузере и выглядит отлично) ... но когда NSLogging строка инициализируется с содержимым этого URL, я получаю (null).

Вот код:

NSString *urlString=[[NSString alloc] initWithFormat:@"http://maps.google.com/maps/nav?q=from:%.7f%@%.7f%@to:%.7f%@%.7f", testLocation.coordinate.latitude, @"%%20", testLocation.coordinate.longitude, @"%%20", thePark.coordinate.latitude, @"%%20", thePark.coordinate.longitude];

, который я затем NSLog () и получаю http://maps.google.com/maps/nav?q=from:51.4986110%20-0.1236110%20to:51.4960938%20-0.2200041 ... безрезультатно.

NSString *json=[[NSString alloc] initWithContentsOfURL:[NSURL URLWithString:urlString]];

Когда я NSLog () это, он печатает ноль.У кого-нибудь есть какие-либо предложения относительно того, почему это может происходить, или более простой способ сделать это?Я планирую затем проанализировать JSON и получить расстояние до машины

1 Ответ

1 голос
/ 25 августа 2010

Вы должны экранировать строку urlString, используя «stringByAddingPercentEscapesUsingEncoding: NSUTF8StringEncoding» вместо того, чтобы экранировать вручную с% 20.


Edit:

Я протестировал эти 3 строки кодов и получил строку json.

NSString *urlString=[[[[NSString alloc] initWithFormat:@"http://maps.google.com/maps/nav?q=from:%.7f %.7f to:%.7f %.7f", 51.4986110, -0.1236110, 51.4960938, -0.2200041] stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding] autorelease];

NSString *json=[[[NSString alloc] initWithContentsOfURL:[NSURL URLWithString:urlString]] autorelease];
NSLog(@"json = %@", json);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...