【问题标题】:Starting Google Maps App with provided location and marker使用提供的位置和标记启动 Google 地图应用
【发布时间】:2011-11-02 08:51:10
【问题描述】:

我想从我的应用程序中使用提供的位置和标记启动 Google 地图应用程序。标记应指示该给定位置上有东西。

现在,我有以下代码,它以带有提供位置(51.49234、7.43045)的 Google 地图应用的 Intent 开头。

startActivity(
new Intent(
    android.content.Intent.ACTION_VIEW, 
    Uri.parse("geo:51.49234,7.43045")));

Google 地图应用启动时,如下所示:

没有显示标记。我希望谷歌地图应用程序会在该位置上显示一个标记,这是通过 Intent 给出的。是否有任何“隐藏的”意图 URI 可用于在 Google 地图应用程序中显示标记?

提前致谢。

解决方案

@Rajiv M. 向我指出了使用给定位置查询周围环境的想法。

所以,解决方案是:以给定位置为参数查询给定位置的周围环境。 URI 如下所示:

geo:51.49234,7.43045?q=51.49234,7.43045

Google 地图会将查询结果显示为街道名称:

有点小技巧,但它似乎运作良好。

为什么不应该使用 0,0 作为地图位置

geo:0,0?q=51.49234,7.43045

当您使用提供的地图位置点 0,0 启动 Google Maps App 时,Google Maps App 将开始搜索您当前的设备位置。而这需要时间。在某些情况下,当不提供 GPS 信号时,就太多了。在此之前,Google 地图应用程序将开始搜索您的查询 51.49234,7.43045。

【问题讨论】:

  • 刚刚使用了 geo:lat,lng?q=lat,lng 技巧,谢谢!

标签: android google-maps android-intent google-maps-markers


【解决方案1】:

尝试使用相同的意图启动 Google 地图,但使用以下格式的 URI:

geo:34.067214,-118.349332?q=410+Hauser+Boulevard,+Los+Angeles,+CA

即geo:0,0?q=街道+地址

然后应用程序应实际显示该地址处的一个点。如果您没有地址,则可能需要使用服务将其转换为地址才能正常工作。

-

另一种选择是在您的应用程序中嵌入一个 MapView 并在其中添加一个标记。在您的应用程序中使用 MapViews / Markers 的教程可以在 http://mobiforge.com/developing/story/using-google-maps-android 找到。

【讨论】:

  • 谢谢!您向我指出了一个与您的解决方案略有不同的解决方案。这是一个 hack,但效果很好。
【解决方案2】:

也许你可以尝试把你的uri如下: uri uri =Uri.parse("http://maps.google.com/maps?q=" +_lat +","+_lon);

至少上面的代码对我有用。它可以帮助我在我搜索的位置上添加一个定位点。此外,针点会有一个小对话框可以按下,它为我提供了搜索到那个位置的方向的功能。 :D

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-05-01
    • 2016-11-03
    • 2019-02-26
    • 2011-12-15
    • 1970-01-01
    • 1970-01-01
    • 2013-04-23
    • 1970-01-01
    相关资源
    最近更新 更多