1

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

现在,一旦在地图应用程序中,您就可以在导航应用程序中打开这些方向,以及这些确切的方向。

这是如何运作的?做起来一定不难,我知道的意图

"google.navigation:q=..."

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

谁能帮我解决这个问题?

编辑:

这是 URL 的样子:

https://maps.google.com/maps?saddr=Durbanville,+Cape+Town,+Western+Cape,+South+Africa&daddr=Parow+North,+Cape+Town,+South+Africa+to:Somerset+West ,+Cape+Town,+South+Africa+to:Milnerton,+Cape+Town,+South+Africa&hl=en&ll=-33.955037,18.657532&spn=0.25032,0.528374&sll=-33.911454,18.601913&sspn=0.250448,0.52873 -_0dzIkcASlBKWkzGlfMHTFTuxOUSmpCAw%3BFQTi-v0d5oMbASld0qgMSFrMHTG2XqWY145Ttw%3BFfUG-P0dPHEfASk398T7ZbXNHTG5a6EH84n4Qg%3BFVU8-_0doEkaASnrz9UPVVnMHTFzq=z2N4nnkAls7xt=mTFz2N4nnkAls7xt=mTFz2N4nnkAls7TQ

4

3 回答 3

10

如果您创建的网址格式为

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

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

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

这将为用户提供打开Web 浏览器谷歌地图导航的选项。

编辑:

对于多个目的地,将以下内容添加到 url 的末尾(对于每个额外的地方)

+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]
于 2013-05-09T10:37:01.050 回答
0

按照上面的答案后,我发现自己在一个没有谷歌导航服务的国家。但是导航意图仍然可以通过谷歌地图来完成:

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 地图中的地址或道路名称。

于 2013-07-08T02:00:45.733 回答
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);
于 2018-04-17T02:09:16.353 回答