Программирование приложения iPhone, мне нужно использовать Google Maps api, чтобы получить маршруты и маршруты. К сожалению, Google Maps работает вокруг javascript.Получите данные Google Maps в iPhone
Любая идея, как это сделать?
Программирование приложения iPhone, мне нужно использовать Google Maps api, чтобы получить маршруты и маршруты. К сожалению, Google Maps работает вокруг javascript.Получите данные Google Maps в iPhone
Любая идея, как это сделать?
Вы можете реализовать это с помощью UIWebView. Когда речь заходит об использовании JavaScript для доступа к сервису Google Maps с помощью своих API Карт Google, вы просто воспользоваться методом UIWebView:
- (NSString *)stringByEvaluatingJavaScriptFromString:(NSString *)script
Обратите внимание, что вам нужно будет бежать в строке, представляющими собой скрипт, все появление двойных кавычек по мере необходимости.
В качестве примера, следующий метод, необходимого для центрирования карты, взят из главы 12 программирования iPhone SDK, по Махер Али:
-(void) centerMap:(NSUInteger) index{
CLLocation *loc = [locations objectAtIndex:index];
NSString *js =
[NSString stringWithFormat:
@"var map = new GMap2(document.getElementById(\"map_canvas\"));"
"map.setMapType(G_HYBRID_MAP);"
"map.setCenter(new GLatLng(%lf, %lf), 18);"
"map.panTo(map.getCenter());"
"map.openInfoWindow(map.getCenter(),"
"document.createTextNode(\"Loc: (%i/%i), Time: %@\"));",
[loc coordinate].latitude, [loc coordinate].longitude,
index+1, [locations count],
[loc timestamp]];
[webView stringByEvaluatingJavaScriptFromString:js];
}
Кроме того, имейте в виду следующее из документации компании Apple :
Время выполнения JavaScript ограничено 10 секундами для каждой точки входа верхнего уровня. Если ваш скрипт выполняется более 10 секунд, Safari прекращает выполнение скрипта. Вероятно, это произойдет в случайном месте вашего кода, поэтому могут возникнуть непредвиденные последствия. Это ограничение наложено, поскольку выполнение JavaScript может привести к блокировке основного потока, поэтому, когда скрипты запущены, пользователь не может взаимодействовать с веб-страницей.
Распределение JavaScript также ограничено до 10 МБ. Исключение составляет Safari, если вы превысите этот предел для общего распределения памяти для JavaScript.
Поскольку для запуска приложения в AppStore вам необходимо выполнить API OS 3.0, вы можете также начать использовать методы MapKit API для встраивания Карты Google в приложение без WebView. Вышеупомянутое решение заключается в том, как карты Google были «встроены» в ваше приложение, но теперь вы можете использовать MapKit с ОС 3.0.
Перед тем, как сделать это, вы должны знать, что это противоречит Условиям использования Google для использования данных Карт в Платной заявке.
От http://code.google.com/apis/maps/terms.html
9.1 Free, общедоступность к вашей Реализации API Карт. Ваш API карт Реализация должна быть в целом доступна для пользователей бесплатно. Возможно, вам потребуются пользователи для входа в в реализацию API Карт, если вы делаете , не требуя от пользователя оплаты. Если вы не вошли в отдельный письменное соглашение с Google или полученного письменного разрешения компании Google, ваш Реализация API Карт не должна:
(а) требовать платную подписку или другой платной основе ограниченного доступа; или (b) работают только за брандмауэром или только во внутренней сети (кроме при разработке и тестировании фазы ).
10.8 используйте API статических карт, кроме как в реализации в веб-браузере ;
Я включил раздел 10.8. Это спорный вопрос, поскольку вы можете утверждать, что UIWebView является браузером, но все же ему это известно.
Если вы решите продолжить и использовать его, это действительно хорошая реализация, которая объединяет большую часть кода, который вам понадобится, http://code.google.com/p/iphone-google-maps-component/