打开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原生谷歌地图应用程序获取从当前位置开始的方向的主要内容,如果未能解决你的问题,请参考以下文章