3

を使用してmaps.google.comからライブ.kmlファイルを取得して表示しようとしています

Uri.parse("geo:0,0?q=http://maps.google.com/maps/ms?ie=UTF8&hl=en&msa=0&msid=104538451667315338387.0004887d133ba2ab6eec9&ll=42.029611,-93.646109&spn=0.011396,0.022724&z=16l&output=kml");

Intent mapIntent = new Intent(Intent.ACTION_VIEW, mapUri);

startActivity(Intent.createChooser(mapIntent, "lol"));

ただし、マップビューを開いた後、「エラーが含まれているため、コミュニティマップを表示できませんでした」という通知が表示されます。

このエラーが発生するのは、maps.googleから直接.kmlをダウンロードした場合のみです。まったく同じリンクをアドレスバーにコピーし、.kmlファイルをダウンロードして他の場所にアップロードすると、正常に機能します。Googleから直接地図を取得できるようにしたいと思います。そうすれば、変更を加えることができ、すぐにユーザーに反映されます。

4

4 に答える 4

2

同じ問題が発生しました。パラメータの区切り文字として「&」を使用すると、Android向けGoogleマップでURLが切り捨てられるため、代わりに「%26」を使用してください。

Intent navigateToIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(
    "geo:0,0?q=http://m.konzoomer.com/kml?id=" + id +
    "%26latitudeE12=" + latitudeE12 + "%26longitudeE12=" + longitudeE12 +
    "%26radiusMeters=" + radiusMeters));
于 2010-12-15T20:13:22.217 に答える
1

Androidでダウンロードしたデータをどこかにテキストとして表示してみてください(つまり、System.out.printlnを介して)。おそらく、Googleのエラーメッセージの説明が含まれています。

于 2010-06-08T18:23:16.900 に答える
1

私はしばらく前にこれを解決し、この問題に直面している他の人のために更新することを考えました。私が使用した解決策は、リンクをカスタムマップにコピーし、&output = kmlを追加して、リンク短縮サービスを使用することでした。どういうわけか、アンドロイドはグーグルマップが与えるURLを好まないだけで、ファイル自体にはまったく問題がありません。

KMLファイルをユーザーの電話に取り込むためにGoogleマップと選択したURL短縮サービスの両方に依存しているため、これは洗練されたソリューションとはほど遠いものです。それらのいずれかが失敗した場合、私のシステムは機能しません。

私は他の選択肢を受け入れており、別の選択肢が生じた場合は答えを変更します。

于 2010-09-12T07:42:01.927 に答える
0

「&output = kml」を使用せずに、プレーンなmaps.google.comリンクのみを使用してインテントを作成するとどうなりますか?

于 2010-06-08T19:43:11.070 に答える