web-dev-qa-db-ja.com

場所を含むGoogleMaps7.0.0のインテント

最初は、StackOverflowに同様の質問がいくつかあることを知っています。現在、他のアプリで処理できるポイントをアドレス指定するためにジオスキームを使用しています。

Androidドキュメント の例のように (ちなみに、RFCは時代遅れのようです!) 私はこのようなものを使おうとしました:

geo:50.95144,6.98725?q=50.95144,6.98725%20(Disneyland)

だから私は、マーカーが付いたGoogle MapsDisneylandの場合に表示されたアプリを選択できるインテントチューザーを取得します。現在、そのサポートを削除するアップデートがインストールされているようです。この場所が見つからないというメッセージが表示されます。

'geo'URIスキームを定義する RFC 587 を理解しようとしました。正確にはわかりません。ラベルを定義することがまったく不可能であるというのは正しいですか?

ポジションをGoogleマップにリンクするにはどうすればよいですか?

14
rekire

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のように動作する必要があります。さらに、他のいくつかの地理アプリもこの意図でトリガーされるようです。ただし、すべてのジオアプリで機能するわけではありません。

13
cradle

これは、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);
}
2
Meanman

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の制限までマークアップできます。本格的なマッピングエンジンは、ある種のラベル付きのマーカーの追加をサポートすることを期待しています。

1
CommonsWare