使用提供的位置和标记启动Google Maps App

时间:2011-08-23 22:58:59

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

从我的应用中,我想使用提供的位置和标记启动Google地图应用。标记应指示该给定位置上有某些内容。

目前,我有以下代码,该代码以带有提供位置的Google Maps App的Intent开头(51.49234,7.43045)。

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

Google地图应用启动时,如下所示: enter image description here

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

提前致谢。

解决方案

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

因此,解决方案是:使用给定位置作为参数查询给定位置的周围环境。 URI看起来像:

geo:51.49234,7.43045?q=51.49234,7.43045

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

有点黑客,但似乎运作良好。

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

geo:0,0?q=51.49234,7.43045

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

2 个答案:

答案 0 :(得分:16)

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

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

即。地理:0,0 Q =街道地址+

然后,应用程序应该在该地址显示一个点。如果您没有该地址,则可能必须使用服务将其转换为可以使用的地址。

-

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

答案 1 :(得分:0)

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

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