安卓浏览器意图 - 使用GPS坐标打开导航应用

4
我希望能在网页上添加一个简单的一键解决方案,以便安卓用户可以点击“立即导航”链接,自动打开导航应用程序(例如Google地图),因此他们可以轻松地导航到目的地。
我已经在安卓浏览器中看到过这种实现方式,比如当你搜索一个企业名称时,但是我似乎无法自己想出来,且混淆在这种基于浏览器的API中使用的技术术语使我走到了死路。
有人能告诉我应该搜索什么,或者将我指向可以找到答案的地方吗?
非常感谢您的帮助。
5个回答

7
您所需要做的就是将链接指向 Google Maps 的 URL(例如“http://maps.google.com/maps?saddr=20.344,34.34&daddr=20.5666,45.345”)。浏览器会自动处理必要的操作,因为它使用 ACTION_VIEW 意图。用户将有选择在地图或浏览器中打开该链接的选项,具体取决于他们是否安装了 Google Maps。
我想其他答案都假设您正在开发一个应用程序,但据我所知,您只是想在网页上提供一个链接以调用 Android 设备上的 Google Maps。也就是说,只需按照我上面说的做,就可以正常工作。

1
太棒了。我不知道浏览器有这样的功能,而且解释得很清楚。谢谢 :) - kirgy
没问题 :) 只要确保我的答案对你有用就好了! - dennisdrew
有没有一种方法可以调用手机上安装的导航应用程序(例如iGO)?Google地图的URL在摩托罗拉Android手机上运行良好(调用Motonav),但现在我想在LG Optimus 4x HD和三星GS 3上调用iGO,但iGO不在“使用完整操作”列表中。谢谢。 - Matjaž Tercelj
由于地图URL的广播意图,类似于Google Maps应用程序一样,这些应用程序的开发人员需要注册来接收。听起来iGO可能无法处理该意图。您可能需要联系开发人员。 - dennisdrew
给iGO的人发送了电子邮件,希望得到答复。不过,从UI的角度来看,iGO似乎太定制化了,无法支持GEO意图。那会做什么呢?添加路线点?添加收藏夹? - David Airapetyan
一切取决于iGO的开发人员。他们在清单中声明要侦听什么意图URI方案和主机(即geo://方案,或http://maps.google.com方案+主机),一旦他们完成了这个步骤,就可以将其路由到任何他们喜欢的操作。如果您需要更多澄清,请告诉我! - dennisdrew

2

替换

http://maps.google.com/maps?daddr=37.322778,-122.031944 

使用:

google.navigation:q=37.322778,-122.031944

2

1
您可以使用类似这样的东西:
Uri uri = Uri.parse("http://maps.google.com/maps?saddr=" [userLocation] "&daddr=" [destinationLocation] "&z=" + zoomLevel);
Intent intent = new Intent(Intent.ACTION_VIEW, uri)
startActivity(intent)

您可以在“纬度,经度”的格式中设置用户和目的地位置,并且zoomLevel是您所需的缩放级别。


1

经过大量的链接测试,我已经解决了这个问题:

<a href="http://maps.google.com/maps?q=loc: <lat>,<lng>&navigate=yes">nav</a>

这个链接会打开用户导航应用程序的菜单,并传递您想要导航到的坐标。

祝您使用愉快!


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接