最初は、StackOverflowに同様の質問がいくつかあることを知っています。現在、他のアプリで処理できるポイントをアドレス指定するためにジオスキームを使用しています。
Androidドキュメント の例のように (ちなみに、RFCは時代遅れのようです!) 私はこのようなものを使おうとしました:
geo:50.95144,6.98725?q=50.95144,6.98725%20(Disneyland)
だから私は、マーカーが付いたGoogle MapsDisneylandの場合に表示されたアプリを選択できるインテントチューザーを取得します。現在、そのサポートを削除するアップデートがインストールされているようです。この場所が見つからないというメッセージが表示されます。
'geo'URIスキームを定義する RFC 587 を理解しようとしました。正確にはわかりません。ラベルを定義することがまったく不可能であるというのは正しいですか?
ポジションをGoogleマップにリンクするにはどうすればよいですか?
WhatsAppの目的は次のとおりです。
START u0 {act = Android.intent.action.VIEW cat = [Android.intent.category.BROWSABLE] dat = https://maps.google.com/maps?q=loc:lat,lng+(You )&rlz = 1Y1TXLS_enDE543DE54 flg = 0x3000000 cmp = com.Android.browser/.BrowserActivity(has extras)} from pid 2115
したがって、次のインテントURIを使用する場合:
String geoUri = "http://maps.google.com/maps?q=loc:" + lat + "," + lng + " (" + mTitle + ")";
... WhatsAppのように動作する必要があります。さらに、他のいくつかの地理アプリもこの意図でトリガーされるようです。ただし、すべてのジオアプリで機能するわけではありません。
これは、Nexus4でテストされた最新のGoogleMapsv7.1で動作しています。
public static void launchGoogleMaps(Context context, double latitude, double longitude, String label) {
String format = "geo:0,0?q=" + Double.toString(latitude) + "," + Double.toString(longitude) + "(" + label + ")";
Uri uri = Uri.parse(format);
Intent intent = new Intent(Intent.ACTION_VIEW, uri);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
context.startActivity(intent);
}
Androidドキュメントの例のように(ちなみにRFCは時代遅れのようです!)私はこのようなものを使おうとしました
ドキュメントの4つのサンプル構造は次のとおりです。
geo:latitude,longitude
geo:latitude,longitude?z=zoom
geo:0,0?q=my+street+address
geo:0,0?q=business+near+city
Uri
の残りの部分からスペースで区切られた、括弧内の「ラベル」がないことに気付くでしょう。
現在、そのサポートを削除するアップデートがインストールされているようです
その「サポート」は、以前に存在していた場合、文書化されておらず、それに依存するべきではありませんでした。また、Android用のmanyマッピングアプリケーションがあり、ユーザーがgeo:
Intent
用に選択できることにも注意してください。これらすべてをテストして確認しましたか。文書化されていない機能がそれらすべてで機能した場合はどうなりますか?
ラベルを定義することがまったく不可能であるというのは正しいですか?
そのRFCに括弧内のラベル構文の証拠は見当たりません。私は同意しますが、これらのIETFRFCは読みにくい傾向があります。
ポジションをGoogleマップにリンクするにはどうすればよいですか?
括弧内のラベルを削除します。
geo:50.95144,6.98725?q=50.95144,6.98725
また、?
の部分はもう必要ないので、次を使用できます。
geo:50.95144,6.98725
あなたの本当の質問が「どうすればポジションをGoogleマップにリンクして、自分のラベルを表示させることができるか」である場合、おそらくできません。
アプリにマッピングエンジン(Android向けGoogleのMaps V2など)を組み込むことができます。その場合、マップをそのエンジンのAPIの制限までマークアップできます。本格的なマッピングエンジンは、ある種のラベル付きのマーカーの追加をサポートすることを期待しています。