public class OpenGDMapUtil { /** * * @param mActivity 上下文 * @param sLatLng 开始点的坐标 * @param sPosition 开锁的位置 * @param ePosition 结束的位置 * @param eLatlng 结束的坐标 * @param type 行走的类型,车,步行,公交 */ public static void startNaviGao(Activity mActivity , LatLng sLatLng, String sPosition, String ePosition, LatLng eLatlng, String type) { if (isAvilible(mActivity, "com.autonavi.minimap")) { openAppMap(mActivity ,sLatLng.latitude,sLatLng.longitude ,sPosition,eLatlng.latitude,eLatlng.longitude,ePosition); } else { openWebGDNavi(mActivity, sPosition,sLatLng.latitude,sLatLng.longitude,ePosition,eLatlng.latitude ,eLatlng.longitude,type); } } //验证各种导航地图是否安装 private static boolean isAvilible(Context context, String packageName) { //获取packagemanager final PackageManager packageManager = context.getPackageManager(); //获取所有已安装程序的包信息 List<PackageInfo> packageInfos = packageManager.getInstalledPackages(0); //用于存储所有已安装程序的包名 List<String> packageNames = new ArrayList<String>(); //从pinfo中将包名字逐一取出,压入pName list中 if (packageInfos != null) { for (int i = 0; i < packageInfos.size(); i++) { String packName = packageInfos.get(i).packageName; packageNames.add(packName); } } //判断packageNames中是否有目标程序的包名,有TRUE,没有FALSE return packageNames.contains(packageName); } /** * 打开高德 Web地图导航 */ private static void openWebGDNavi(Activity mActivity, String sPosition, double sLat, double sLng, String ePosition, double eLat, double eLng, String type) { StringBuffer stringBuffer = new StringBuffer("http://ditu.amap.com/dir?from[name]="+ sPosition+ "&from[lnglat]="+sLng+"%2c"+sLat+"&to[name]="+ePosition + "&to[lnglat]="+eLng+"%2c"+eLat+"&type="+type+"&policy=1"); Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(stringBuffer.toString())); mActivity.startActivity(intent); } /** *打开app高德 */ private static void openAppMap(Activity mActivity, double slat, double slon, String sname, double dlat, double dlon, String dname){ Uri mapUri = Uri.parse(getGdMapUri("map", String.valueOf(slat), String.valueOf(slon), sname, String.valueOf(dlat), String.valueOf(dlon), dname)); Intent loction = new Intent(Intent.ACTION_VIEW, mapUri); mActivity.startActivity(loction); } /** * 获取打开高德地图应用uri */ private static String getGdMapUri(String appName, String slat, String slon, String sname, String dlat, String dlon, String dname){ String uri = "androidamap://route?sourceApplication=%1$s&slat=%2$s&slon=%3$s&sname=%4$s&dlat=%5$s&dlon=%6$s&dname=%7$s&dev=0&m=0&t=2"; return String.format(uri, appName, slat, slon, sname, dlat, dlon, dname); } }
开启第三方地图(高德)
最新推荐文章于 2023-09-26 13:47:00 发布