Вы можете реализовать это с помощью UIWebView. Когда дело доходит до использования JavaScript для доступа к сервису Google Maps через его API-интерфейсы Google Maps, вы просто используете метод 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.