Android导航意图

Sch*_*out 1 navigation android google-maps android-intent android-maps

如果您将谷歌地图方向邮寄到您的Android手机,您可以在地图应用程序中打开它,这似乎完全合乎逻辑,其背后的代码也是如此.

现在,只要在地图应用程序中,您就可以在导航应用程序中打开这些指示,并指出这些指示.

这是如何运作的?它一定不是那么难,我知道它的意图

"google.navigation:q=..."
Run Code Online (Sandbox Code Playgroud)

但这仅适用于某些设备,仅适用于协调或地址......没有地图指示?

任何人都可以帮我解决这个问题吗?

编辑:

这就是URL的样子:

https://maps.google.com/maps?saddr=Durbanville,+Cape+Town,+Western+Cape,+South+Africa&daddr=Parow+North,+Cape+Town,+South+Africa+to:Somerset+West ,+ +角镇,南非+非洲+ +到:米尔纳顿,开普敦+ +镇,南非+非洲+&HL = EN&LL = -33.955037,18.657532&SPN = 0.25032,0.528374&SLL = -33.911454,18.601913&SSPN = 0.250448,0.528374和地理编码= FczB -_0dzIkcASlBKWkzGlfMHTFTuxOUSmpCAw%3BFQTi-v0d5oMbASld0qgMSFrMHTG2XqWY145Ttw%3BFfUG-P0dPHEfASk398T7ZbXNHTG5a6EH84n4Qg%3BFVU8-_0doEkaASnrz9UPVVnMHTFz2N4nnkA7XQ&OQ =帕罗&MRA = LS&T = M&Z = 12

bid*_*h.r 10

如果您以格式创建Web网址

http://maps.google.com/maps?saddr=[lat 1],[lon 1]&daddr=[lat 2],[lon 2]
Run Code Online (Sandbox Code Playgroud)

其中[lat 1][lon 1]是起点的纬度和经度,同样[lat 2][lon 2]是终点,并将其设置为a String,然后你可以将它发送给intent:

Intent navIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(navigationUrl));
activity.startActivity(navIntent);
Run Code Online (Sandbox Code Playgroud)

这将为用户提供打开Web浏览器,Google地图导航的选项.

编辑:

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

+to:[lat 3],[lon 3]
Run Code Online (Sandbox Code Playgroud)

按要求.

因此,对于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]
Run Code Online (Sandbox Code Playgroud)