Android 导航意图

问题描述 投票:0回答:4

如果您将 Google 地图方向邮寄到您的 Android 手机,您可以在地图应用程序中打开它,这看起来完全符合逻辑,其背后的代码也是如此。

现在,进入地图应用程序后,您可以在导航应用程序中打开这些路线以及这些准确的路线。

这是如何运作的?做起来应该没那么难,我知道意图

"google.navigation:q=..."

但这仅适用于某些设备,并且仅适用于坐标或地址...没有地图方向?

有人可以帮我解决这个问题吗?

编辑:

网址如下所示:

https://maps.google.com/maps?saddr=杜班维尔、+开普+镇、+西部+开普、+南+非洲&daddr=帕罗+北、+开普+镇、+南+Af rica+至:萨默塞特+西,+开普+镇,+南+非洲+至:米尔纳顿,+开普+镇,+南+非洲&hl=en&ll=-33.955037,18.657532&spn=0.25032, 0.528374&sll=-33.911454,18.601913&sspn=0.250448,0.528374&geocode=FczB-_0dzIkcASlBKWkzGlfMHTFTuxOUSmpCAw%3BFQTi-v0d5oMbASld0qgM SFrMHTG2XqWY145Ttw%3BFfUG-P0dPHEfASk398T7ZbXNHTG5a6EH84n4Qg%3BFVU8-_0doEkaASnrz9UPVVnMHTFz2N4nnkA7XQ&oq=parow&mra=ls&t=m&z=12

android google-maps android-intent navigation android-maps
4个回答
10
投票

如果您以以下格式创建网址

http://maps.google.com/maps?saddr=[lat 1],[lon 1]&daddr=[lat 2],[lon 2]

其中 [lat 1][lon 1] 是起点的纬度和经度,同样 [lat 2][lon 2] 是终点,并将其设置为

String
,然后您可以将其发送至
intent
:

Intent navIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(navigationUrl));
activity.startActivity(navIntent);

用户可以选择打开 Web 浏览器Google 地图导航

编辑:

对于多个目的地,请将以下内容添加到网址末尾(对于每个其他位置)

+to:[lat 3],[lon 3]

按要求。

因此对于 4 个目的地,您将拥有:

http://maps.google.com/maps?saddr=[lat 1],[lon 1]&daddr=[lat 2],
  [lon 2]+to:[lat 3],[lon 3]+to:[lat 4],[lon 4]

0
投票

遵循上述答案后,我发现自己所在的国家/地区无法使用 Google 导航服务。但导航意图仍然可以通过Google Map来完成:

Uri routeUri = Uri.parse("http://maps.google.com/maps?&saddr=" +
                                MyApplication.Lat + "," +
                                MyApplication.Lon + "&daddr=" + merchantAddr.getText());

Intent i = new Intent(Intent.ACTION_VIEW, routeUri);
startActivity(i);

看来我们可以将起点设置为带有纬度/经度的地理位置,将终点设置为地址,反之亦然。地理位置似乎已转换为 Google 地图中的地址或道路名称。


0
投票

网址应该是这样的:

String navigationUrl = "http://maps.google.com/maps?saddr=latitude,longitude&daddr=latitude,longitude";
Intent navIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(navigationUrl));
startActivity(navIntent);

0
投票

我要回答什么问题 *

强调文字

*我不明白你的意思

© www.soinside.com 2019 - 2024. All rights reserved.