4

ローカルのKMLファイルを受け入れるようにgooglemapsを取得しようとしています。

final Intent myIntent = new Intent(android.content.Intent.ACTION_VIEW,
Uri.parse("geo:0,0?q=file://" + Environment.getExternalStorageDirectory() + "/locate.kml"));
startActivity(myIntent);

このファイルはSDカード上にあり、有効なkmlファイルです。Googlemapsは読み込まれますが、ファイルが見つからないと表示されます。

final Intent myIntent = new Intent(android.content.Intent.ACTION_VIEW,
Uri.parse("geo:0,0?q=http://www.website.com/locate.kml"));
startActivity(myIntent);

正常に動作します。geo:0,0?q =は非常に文書化されていないようですが、ローカルファイルを参照するためにそれを使用する方法を誰かが手伝ってくれますか?

4

3 に答える 3

1

問題は、Google マップを使用して URL を開こうとすると、指定した URL を使用してアプリケーションが Google に検索要求を送信することだと思います。
次に、Google サーバーは、提供された URL からデータを取得し、結果を返します。

Google サーバーは「file://」などの URL や「http://localhost」などのローカルの URL にアクセスできないため、エラーが発生します。これが 2 番目のコマンドが機能する理由です。Google サーバーはhttp://www.website.com/locate.kmlにアクセスできます。

于 2012-06-03T15:08:09.567 に答える
0

Android 2.1まではできないようです

http://code.google.com/p/android/issues/detail?id=2454

于 2010-03-05T15:44:24.110 に答える
-1

JavaScriptはサンドボックスで実行されるため、独自の拡張子がないとローカルファイルにアクセスできません。

于 2010-03-05T14:19:57.573 に答える