打开android原生谷歌地图应用程序获取从当前位置开始的方向

Posted

技术标签:

【中文标题】打开android原生谷歌地图应用程序获取从当前位置开始的方向【英文标题】:Open android native google maps app obtaining directions starting from current position 【发布时间】:2013-08-09 22:36:00 【问题描述】:

我正在尝试从我的应用程序打开谷歌地图,设置从手机当前位置到固定位置的路线。我正在使用此代码:

String uri = "https://maps.google.com/maps?saddr=&daddr=example";        
Intent i = new Intent(Intent.ACTION_VIEW, Uri.parse(uri));
startActivity(i);

问题是我不知道在 saddr= 中添加什么来引用我当前的位置。我发现了许多其他类似的问题,但没有任何答案有效(例如将saddr=空或saddr=Current,它们不起作用)。

我不想使用原生 android 定位器,我只想知道是否有办法让谷歌地图“从我当前的位置开始”。

【问题讨论】:

如果你点击地图的标记,它应该去谷歌导航?或者你想从当前位置绘制路线? 我希望我的应用程序直接使用intent调用地图来显示从当前位置到固定位置的路线,这样用户就不需要自己设置导航了 【参考方案1】:

您可以使用f=d 参数明确地对其以方向模式打开。使用该设置且没有起始地址,它应该使用设备的当前位置。所以更像这样:

"https://maps.google.com/maps?f=d&daddr=berlin"

注意:这在浏览器中不起作用;它会打开带有空白字段的方向页面作为开始。在发送到本机地图应用程序的意图中使用,它可以正常工作(至少在我的 4.2.2 gNex 上)。

【讨论】:

这非常有用。如果要使用自己位置以外的起始地址,请将 url 修改为"http://maps.google.com/maps?saddr=hamburg&daddr=berlin"。也适用于浏览器(至少在 Chrome 中)。【参考方案2】:

在上面的帖子中

https://maps.google.com/maps?f=d&daddr=berlin

它会询问你的源地址,它不会自动传递你的源地址,你需要通过点击在地图上选择它,

您可以为此目的使用 GPS...在获取 LatLng 坐标后,您可以将它们传递给 url...但它应该在 f=a 而不是 f=d..

https://maps.google.com/maps?f=a@saddr=LatLng&daddr=badlapur

【讨论】:

它仍然将您的位置作为源地址。知道如何使其工作或具体步骤吗?【参考方案3】:

我刚刚使用它,它以导航模式直接打开谷歌地图,从我当前的位置到文本变量中指定的地址。文本的格式应与您在搜索栏中输入的格式相同

Intent intent = new Intent(android.content.Intent.ACTION_VIEW,Uri.parse("google.navigation:q="+text));
startActivity(intent);

【讨论】:

【参考方案4】:

请把网址设为这样

https://maps.google.com/maps?f=d&daddr=newdelhi

但要说清楚一点

在清单文件中:使用互联网许可

否则会崩溃

【讨论】:

【参考方案5】:

试试这个:

"https://www.google.com/maps/dir//41.3951982,-72.855568/41.279386,-72.825098"

您可以有多个位置,但起始位置将是当前位置。

【讨论】:

以上是关于打开android原生谷歌地图应用程序获取从当前位置开始的方向的主要内容,如果未能解决你的问题,请参考以下文章

在 Xcode 中打开原生谷歌地图

ANDROID - 谷歌地图获取当前位置

Android:使用谷歌地图实时获取当前坐标

应用启动时在 android 谷歌地图中获取当前位置(纬度,经度)

在反应原生中链接谷歌地图应用程序时如何呈现方向?

通过intent-Android打开地图以显示当前位置的方向