2009-06-02 18 views
0

iPhoneアプリをプログラミングするには、Google Maps APIを使用してルートとルートを取得する必要があります。不幸にも、Google Mapsはjavascriptで動作します。Google MapsデータをiPhoneに取り込む

これを行うにはどのように任意のアイデア?

答えて

1

これは、UIWebViewを使用して実装できます。それはそのGoogleマップAPIを使用してGoogleマップサービスにアクセスするためにJavaScriptを使用して出たとき、あなたは、単にのUIWebView方法の利点を取る:あなたは、あなたのスクリプトを表す文字列でのすべてをエスケープする必要があります

- (NSString *)stringByEvaluatingJavaScriptFromString:(NSString *)script 

注意必要に応じて二重引用符の出現。一例として、

、マップを中央に必要な以下の方法は、マヘル・アリによって、iPhone 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の割り当ても10 MBに制限されています。 Safariは、JavaScriptの合計メモリ割り当てでこの制限を超えた場合、例外を発生させます。

1

OS 3.0 APIに準拠する必要があるため、Appstoreでアプリを起動すると、MapKit APIメソッドを使用してWebViewなしでアプリケーション内にGoogleマップを埋め込むことができます。上記のソリューションは、Googleマップをアプリ内で「埋め込み」していた方法ですが、今度はOS 3.0でMapKitを使用できます。

4

これを行う前に、Googleの利用規約に違反して、有料のアプリケーションで地図データを使用することに注意してください。

無料、公共のアクセシビリティhttp://code.google.com/apis/maps/terms.html

9.1からあなたのマップのAPIの実装に。あなたのMaps API 実装は一般的に無料でユーザーがアクセスできる でなければなりません。 にユーザーが料金を支払う必要がない場合、ユーザーにMaps APIの実装 にログインするよう要求することがあります。 ない限り、あなたがGoogleや 得、Googleの書面による許可を持つ別の 書面による契約を締結した、 [マップのAPIの実装はいけません。

(a)の有料サブスクリプションを必要と またはその他の手数料ベースのアクセス制限。 または(b)ファイアウォール の背後または内部ネットワーク上でのみ動作します( の開発およびテスト中は フェーズ)。

10。8 Web ブラウザの実装ではなく、Static Maps APIを使用します。

私はセクション10.8も含めました。これは議論の余地があるものです。あなたはUIWebViewがブラウザだとは思っていますが、まだ気づいていると思います。

あなたが先に進んでそれを使うことを決めたら、あなたが必要とするほとんどのコードをブリッジする、本当に良い実装です。http://code.google.com/p/iphone-google-maps-component/

関連する問題