安卓调起三方导航应用(谷爹地图)导航

2019-12-13  本文已影响0人  奥创没电了

1.亲爸爸谷歌。

1)

话不多说。文档地址:

https://developers.google.com/maps/documentation/urls/android-intents

使用Intent打开谷歌地图。

官方文档悉尼案例:

Uri gmmIntentUri = Uri.parse("google.navigation:q=Taronga+Zoo,+Sydney+Australia");

Intent mapIntent = new Intent(Intent.ACTION_VIEW, gmmIntentUri);

mapIntent.setPackage("com.google.android.apps.maps");

startActivity(mapIntent);

实际最简单使用时这样

Uri gmmIntentUri = Uri.parse("google.navigation:q=" + lat+"," + longi);//直接导航的

Intent mapIntent =new Intent(Intent.ACTION_VIEW, gmmIntentUri);

mapIntent.setPackage("com.google.android.apps.maps");

context.startActivity(mapIntent);

参数纬度和经度。默认驾车。打开后,直接自动进入驾车导航模式。退回上一级是交通方式选择、路线规划页。

image

更多设置还有参数

mode d驾车,b自行车,l(two-wheeler,英语18级直译两轮),w走路 此参数设置一个。

avoid 顾名思义,避免什么 t(tolls收费的),h (highways,高速),f(ferries,渡轮,英语18级猜测是不要码头的路线?,属实不解) 此参数可以设置多个。

Uri.parse("google.navigation:q=Taronga+Zoo,+Sydney+Australia&avoid=tf");

Uri.parse("google.navigation:q=Taronga+Zoo,+Sydney+Australia&mode=b");

由于本人集成的是高德,经纬度再加上高德的地名参数传入,经常会出现找不到地方问题。所以只传入了纬度和经度。

再一个,高德在使用的是gcj02,即国测局坐标系,而谷歌在国内也是用的gcj02,

高德在国外和谷歌一样,都用的gps84坐标系,因此高德坐标系打开谷歌地图导航,不需要坐标转换。

百度使用自己的坐标系Bd09 ,转换算法很容易找到。

2)https://developers.google.com/maps/documentation/urls/guide

打开交通方式选择和路线规划页。

Uri gmmIntentUri = Uri.parse("https://www.google.com/maps/dir/?api=1&" +

"      origin=" + startLat+","+startLongi+"&" +

"destination="+toLati+"," + toLongi);

Intent mapIntent =new Intent(Intent.ACTION_VIEW, gmmIntentUri);

mapIntent.setPackage("com.google.android.apps.maps");

context.startActivity(mapIntent);
image

可以看到默认也是驾车,只是我第一次打开时,默认是走路路线?

复杂参数设置来个:

##
    [https://www.google.com/maps/dir/?api=1&origin=Space+Needle+Seattle+WA&destination=Pike+Place+Market+Seattle+WA&travelmode=bicycling]

对于调起外部应用导航,一般简单参数的就可以满足需求了。

2.国内的百度高德腾讯地图。基本不用多说了.

和谷歌地图类似,可选择打开路线规划页,或者直接驾车导航,都是两个不同的Uri.

详情整理待续...

上一篇 下一篇

猜你喜欢

热点阅读