如果您将 Google 地图方向邮寄到您的 Android 手机,您可以在地图应用程序中打开它,这看起来完全符合逻辑,其背后的代码也是如此。
现在,进入地图应用程序后,您可以在导航应用程序中打开这些路线以及这些准确的路线。
这是如何运作的?做起来应该没那么难,我知道意图
"google.navigation:q=..."
但这仅适用于某些设备,并且仅适用于坐标或地址...没有地图方向?
有人可以帮我解决这个问题吗?
编辑:
网址如下所示:
如果您以以下格式创建网址
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]
遵循上述答案后,我发现自己所在的国家/地区无法使用 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 地图中的地址或道路名称。
网址应该是这样的:
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);
我要回答什么问题 *
强调文字
*我不明白你的意思