第三方应用调取百度地图、高德地图操作实例导航
2017-08-31 18:00
656 查看
在项目中需要使用导航功能,为用户提供便捷,但是集成地图导航还要涉及到语音等问题,所以本篇文章帮住初学者直接使用第三方的应用;百度地图客户端,高德地图客户端;
一、首先判断手机内有没有对应客户端,如果没有怎么可能调动。。。
二、实现弹出对话框,因为手机可能有多个地图,让用户可以选择:
三、开启百度地图导航
上面是最简单的导航方式,如果需求更大可以看官方文档:
http://lbsyun.baidu.com/index.php?title=uri/api/android
四、开启高德地图
五、总结,以上就是简单的调用第三方地图进行实时导航的实现。如果有更多需求还是建议自己集成相关的SDK。感谢生活,感谢可科技!
一、首先判断手机内有没有对应客户端,如果没有怎么可能调动。。。
/** * 判断是否安装目标应用 * @param packageName 目标应用安装后的包名 * @return 是否已安装目标应用 */ private boolean isInstallByread(String packageName) { return new File("/data/data/" + packageName).exists(); }
二、实现弹出对话框,因为手机可能有多个地图,让用户可以选择:
private void changeMap() { AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this); builder.setIcon(R.drawable.ic_launcher); builder.setTitle("请选择"); // 指定下拉列表的显示数据 final String[] cities = {"百度地图", "高德地图", "腾讯地图"}; // 设置一个下拉的列表选择项 builder.setItems(cities, new DialogInterface.OnClickListener(){ @Override public void onClick(DialogInterface dialog, int which) { Intent intent; switch (which){ case 0: //百度地图 if(isInstallByread("com.baidu.BaiduMap")){ openBaiDuMap("39.9049340000,116.4272200000","xxxxx","driving"); }else{ Toast.makeText(MainActivity.this, "您没有安装百度地图客户端", Toast.LENGTH_SHORT).show(); } break; case 1: //高德地图 if(isInstallByread("com.autonavi.minimap")){ openGaoDeMap(MainActivity.this,"com.autonavi.minimap","目的地","39.9049340000","116.4272200000","1","2"); }else{ Toast.makeText(MainActivity.this, "您没有安装高德地图客户端", Toast.LENGTH_SHORT).show(); } break; case 2: //腾讯地图 break; }
三、开启百度地图导航
/*parms lat表示经纬度 * destination 表示目的地 * mode 表示导航类型,驾车、骑行、步行 * * */ protected void openBaiDuMap(String lat,String destination,String mode) { // 驾车路线规划 Intent i1 = new Intent(); i1.setData(Uri.parse("baidumap://map/direction?&origin="+lat+"&destination="+destination+"&mode="+mode)); startActivity(i1); }
上面是最简单的导航方式,如果需求更大可以看官方文档:
http://lbsyun.baidu.com/index.php?title=uri/api/android
四、开启高德地图
/** * 启动高德App进行导航 * @param sourceApplication 必填 第三方调用应用名称。如 amap * @param poiname 非必填 POI 名称 * @param lat 必填 纬度 * @param lon 必填 经度 * @param dev 必填 是否偏移(0:lat 和 lon 是已经加密后的,不需要国测加密; 1:需要国测加密) * @param style 必填 导航方式(0 速度快; 1 费用少; 2 路程短; 3 不走高速;4 躲避拥堵;5 不走高速且避免收费;6 不走高速且躲避拥堵;7 躲避收费和拥堵;8 不走高速躲避收费和拥堵)) */ public void openGaoDeMap(Context context,String sourceApplication , String poiname , String lat , String lon , String dev , String style){ StringBuffer stringBuffer = new StringBuffer("androidamap://navi?sourceApplication=") .append(sourceApplication); if (poiname!=null){ stringBuffer.append("&poiname=").append(poiname); } stringBuffer.append("&lat=").append(lat) .append("&lon=").append(lon) .append("&dev=").append(dev) .append("&style=").append(style); Intent intent = new Intent("android.intent.action.VIEW", android.net.Uri.parse(stringBuffer.toString())); intent.setPackage(sourceApplication); startActivity(intent); }
五、总结,以上就是简单的调用第三方地图进行实时导航的实现。如果有更多需求还是建议自己集成相关的SDK。感谢生活,感谢可科技!
相关文章推荐
- Android仿微信调用第三方地图应用导航(高德、百度、腾讯)
- 封装的导航工具类,两行代码搞定iOS App内部跳转第三方应用(百度、高德、苹果)地图导航
- Android仿微信调用第三方地图应用导航(高德、百度、腾讯)
- 通过jar包和url调取第三方地图应用以及自动导航
- Android仿微信调用第三方地图应用导航(高德、百度、腾讯)
- IOS实现应用内打开第三方地图app进行导航
- Android 仿微信调用第三方应用导航(百度、高德、腾讯)
- Android app调用第三方地图(百度地图,高德地图)导航
- 第三方应用如何调用google maps导航或显示某个区域的地图
- Android开发 PopupWindow弹窗调用第三方地图(百度,高德)实现导航功能
- 第三方应用调用高德地图
- iOS开发 - iOS实现应用内打开第三方地图app进行导航
- 第三方应用如何调用google maps导航或显示某个区域的地图
- android app调用第三方地图路线规划导航(百度,高德,腾讯)
- 调用第三方地图导航,高德、百度、谷歌,无需引用sdk
- IOS实现应用内打开第三方地图app进行导航
- 地图-导航(百度/高德)
- Android应用集成高德地图
- android APP调起地图导航(谷歌,高德,百度)工具类
- 最全Pycharm教程(28)——Pycharm搜索导航之搜索应用实例