iPhone 앱 프로그래밍하기, 길 찾기와 경로를 얻으려면 Google지도 api를 사용해야합니다. 유감스럽게도 Google지도는 자바 스크립트에서 작동합니다.Google지도 데이터를 iPhone으로 가져 오기
어떻게하면 좋을까요?
iPhone 앱 프로그래밍하기, 길 찾기와 경로를 얻으려면 Google지도 api를 사용해야합니다. 유감스럽게도 Google지도는 자바 스크립트에서 작동합니다.Google지도 데이터를 iPhone으로 가져 오기
어떻게하면 좋을까요?
UIWebView를 사용하여이를 구현할 수 있습니다. 그것의 Google지도 API를 통해 Google지도 서비스에 액세스하기 위해 자바 스크립트를 사용하여 올 때, 당신은 단순히있는 UIWebView 방법을 활용 : 당신이 당신의 스크립트를 나타내는 문자열 탈출의 모든 필요합니다
- (NSString *)stringByEvaluatingJavaScriptFromString:(NSString *)script
주 필요에 따라 큰 따옴표를 사용합니다. 지도를 중심에 필요한 예를 들어, 다음과 같은 방법으로
은 마 헤르 알리, 아이폰 SDK 프로그래밍 12 장에서 가져온 것입니다 : 또한-(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];
}
은 염두에 곰은 애플의 문서에서 다음 :
JavaScript 실행 시간은 각 최상위 진입 점에 대해 10 초로 제한됩니다. 스크립트가 10 초 이상 실행되면 Safari는 스크립트 실행을 중지합니다. 이는 코드의 임의의 위치에서 발생하기 때문에 의도하지 않은 결과가 발생할 수 있습니다. JavaScript 실행으로 인해 주 스레드가 차단 될 수 있으므로 스크립트가 실행 중일 때 사용자가 웹 페이지와 상호 작용할 수 없기 때문에이 제한이 적용됩니다.
JavaScript 할당도 10MB로 제한됩니다. 자바 스크립트의 총 메모리 할당량을 초과하면 Safari에서 예외가 발생합니다.
appstore에서 앱을 실행하려면 OS 3.0 API를 준수해야하므로 MapKit API 메소드를 사용하여 WebView없이 애플리케이션 내에 Google지도를 삽입 할 수 있습니다. 위의 솔루션은 Google지도가 이전에 앱 내에 '임베디드'된 방식 이었지만 이제는 OS 3.0에서 MapKit을 사용할 수 있습니다.
유료 애플리케이션에서지도 데이터를 사용하는 것은 Google의 이용 약관에 위배된다는 것을 알고 있어야합니다. 귀하의지도 API 구현에 http://code.google.com/apis/maps/terms.html
9.1 무료에서
, 공공 접근성. 지도 API 구현은 일반적으로 사용자가 무료로 에 액세스 할 수 있어야합니다. 사용자가 요금을 지불 할 필요가없는 경우 사용자가 Maps API 구현에 로그인해야 할 수 있습니다. 하지 않는 한 당신은 구글이나 얻을 구글의 서면 허가를 별도의 서면 계약을 체결 한 하여지도 API 구현이되지해야합니다
(a)는 유료 구독을 요구 또는 기타 유료 제한된 액세스; 이거나 (b) 방화벽 뒤에서 만 작동하거나 내부 네트워크에서만 작동합니다 ( 개발 및 테스트 중 단계 제외).
10.8 웹 브라우저의 구현 이외에 정적지도 API를 사용합니다.
섹션 10.8도 포함 시켰습니다. 이것은 논쟁의 여지가있는 하나로서 당신은 UIWebView가 브라우저이지만 여전히 그것을 알고 있다고 주장 할 수 있습니다.
다음 코드를 사용하면 다음 코드는 필요한 코드 대부분을 연결하는 매우 유용한 구현입니다. http://code.google.com/p/iphone-google-maps-component/