14

起初我知道 StackOverflow 上有几个类似的问题。目前,我使用地理方案来处理其他应用程序可以处理的点。

就像在Android 文档的示例中一样 (顺便说一下,它似乎已经过时了 RFC!)我尝试使用这样的东西:

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

所以我得到了一个意图选择器,我可以在其中选择一个应用程序,该应用程序向我展示了谷歌地图迪斯尼乐园的情况,上面有一个标记。现在似乎安装了一个更新,删除了该支持。我只是收到消息说找不到这个地方。

我试图理解定义“地理”URI 方案的RFC 5870 。我不完全明白。根本不可能定义标签是正确的吗?

我现在如何将职位链接到 Google 地图?

4

3 回答 3

13

WhatsApp 的意图是:

开始 u0 {act=android.intent.action.VIEW cat=[android.intent.category.BROWSABLE] dat= https://maps.google.com/maps?q=loc:lat,lng+(You)&rlz=1Y1TXLS_enDE543DE543 来自 pid 2115 的 flg=0x3000000 cmp=com.android.browser/.BrowserActivity(有附加功能)}

因此,如果您使用以下意图 URI:

String geoUri = "http://maps.google.com/maps?q=loc:" + lat + "," + lng + " (" + mTitle + ")";

...它应该表现得像 WhatsApp。此外,似乎其他一些地理应用程序也会触发此意图。但它不适用于所有地理应用程序!

于 2013-07-31T14:26:41.950 回答
3

这适用于在我的 Nexus 4 上测试的最新 Google Maps v7.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);
}
于 2013-09-20T11:08:45.593 回答
1

就像在 Android 文档的示例中一样(顺便说一下,它似乎已经过时了 RFC!)我尝试使用类似这样的东西

文档中的四个示例结构是:

geo:latitude,longitude
geo:latitude,longitude?z=zoom
geo:0,0?q=my+street+address
geo:0,0?q=business+near+city

您会注意到,这些都没有括号中的“标签”,并用空格与Uri.

现在似乎安装了一个更新,删除了该支持

这种“支持”,如果它以前存在的话,是没有记录的,你不应该依赖它。您还会注意到,有许多适用于 Android 的地图应用程序,用户可以选择其中的任何一个geo: Intent——您是否测试了所有这些应用程序以查看您未记录的功能是否适用于所有这些应用程序?

根本不可能定义标签是正确的吗?

我在该 RFC 中没有看到您的括号内标签语法的任何证据。虽然,我同意,这些 IETF RFC 往往难以阅读。

我现在如何将职位链接到 Google 地图?

删除括号中的标签:

geo:50.95144,6.98725?q=50.95144,6.98725

而且,由于您不再需要该?部件,您可以使用:

geo:50.95144,6.98725

如果您真正的问题是“我现在如何将位置链接到 Google 地图并让它显示我自己的标签”,那么您可能做不到。

欢迎您将地图引擎嵌入到您的应用程序中(例如,Google 的 Maps V2 for Android),在这种情况下,您可以将地图标记为该引擎的 API 的限制。我希望任何严肃的映射引擎都支持添加带有某种标签的标记。

于 2013-07-11T11:10:13.753 回答