Android导航意图

时间:2013-05-09 10:17:00

标签: android google-maps android-intent navigation android-maps

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

现在,一旦进入地图应用程序,您就可以在导航应用程序中打开这些方向,并指出这些方向。

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

的意图
"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.528374&geocode=FczB-_0dzIkcASlBKWkzGlfMHTFTuxOUSmpCAw%3BFQTi-v0d5oMbASld0qgMSFrMHTG2XqWY145Ttw%3BFfUG-P0dPHEfASk398T7ZbXNHTG5a6EH84n4Qg%3BFVU8-_0doEkaASnrz9UPVVnMHTFz2N4nnkA7XQ&oq=parow&mra=ls&t=m&z=12

3 个答案:

答案 0 :(得分: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]

答案 1 :(得分:0)

按照上述答案后,我发现自己身处 Google导航服务不可用的国家/地区。但导航意图仍然可以通过谷歌地图完成:

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);

似乎我们可以使用lat / lon将起点设置为Geo位置,并将结束点设置为地址,反之亦然。地理位置似乎已转换为Google地图中的地址或道路名称。

答案 2 :(得分:-1)

网址应该是这样的:

docker run ubuntu env DEBUG=1 path/to/script.sh