Android app调用第三方地图(百度地图,高德地图)导航

**
 * 应用外导航工具类
 * Created by guo on 2017/11/14.
 */

public class AMapUtil {
    /** 腾讯地图 Uri 标识*/
    public  final static  String BASE_URL = "qqmap://map/";


    /**
     * 启动高德App进行导航
     * 

Version

1.0 *

CreateTime

2016/6/27,13:58 *

UpdateTime

2016/6/27,13:58 *

CreateAuthor

*

UpdateAuthor

*

UpdateInfo

(此处输入修改内容,若无修改可不写.) * * @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 static void goToNaviActivity(Context context, String sourceApplication , String poiname , String lat , String lon , String dev , String style){ StringBuffer stringBuffer = new StringBuffer("androidamap://navi?sourceApplication=") .append(sourceApplication); if (!TextUtils.isEmpty(poiname)){ 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("com.autonavi.minimap"); context.startActivity(intent); } /** * 调用腾讯地图app驾车导航 * (此处输入方法执行任务.) *

Version

1.0 *

CreateTime

2017/11/9,15:31 *

UpdateTime

2017/11/9,15:31 *

CreateAuthor

*

UpdateAuthor

*

UpdateInfo

(此处输入修改内容,若无修改可不写.) * @param context * @param from 选 出发地址 * @param fromcoord 选 出发经纬度 移动端如果起点名称和起点坐标均未传递,则使用当前定位位置作为起点 如 39.9761,116.3282 * @param to 必 目标地址 * @param tocoord 必 目标经纬度 39.9761,116.3282 * @param policy 选 本参数取决于type参数的取值 * 公交:type=bus,policy有以下取值 0:较快捷 1:少换乘 2:少步行 3:不坐地铁 * 驾车:type=drive,policy有以下取值 0:较快捷 1:无高速 2:距离 policy的取值缺省为0 * @param coord_type 选 坐标类型,取值如下:1 GPS 2 腾讯坐标(默认) 如果用户指定该参数为非腾讯地图坐标系,则URI API自动进行坐标处理,以便准确对应到腾讯地图底图上。 * @param type 必 公交:bus 驾车:drive 步行:walk(仅适用移动端) * @param referer 必 调用来源,一般为您的应用名称,为了保障对您的服务,请务必填写! */ public static void invokeNavi(Context context, @NonNull String type, String coord_type, String from , String fromcoord, @NonNull String to, @NonNull String tocoord, String policy, @NonNull String referer){ StringBuffer stringBuffer = new StringBuffer(BASE_URL) .append("routeplan?") .append("type=") .append(type) .append("&to=") .append(to) .append("&tocoord=") .append(tocoord) .append("&referer=") .append(referer); if (!TextUtils.isEmpty(from)){ stringBuffer.append("&from=").append(from); } if (!TextUtils.isEmpty(fromcoord)){ stringBuffer.append("&fromcoord=").append(fromcoord); } if (!TextUtils.isEmpty(policy)){ stringBuffer .append("&policy=").append(policy); } if (!TextUtils.isEmpty(coord_type)){ stringBuffer .append("&coord_type=").append(coord_type); } Intent intent = new Intent(); intent.setData(Uri.parse(stringBuffer.toString())); context.startActivity(intent); } /** * 百度地图 * (此处输入方法执行任务.) *

Version

1.0 *

CreateTime

2017/11/9,15:31 *

UpdateTime

2017/11/9,15:31 *

CreateAuthor

*

UpdateAuthor

*

UpdateInfo

(此处输入修改内容,若无修改可不写.) * @param context 上下文 * @param coord_type coord_type 可选 坐标类型,可选参数,默认为bd09经纬度坐标 * @param src 必选 调用来源,规则:companyName|appName。 * @param location 经纬度 例如:39.9761,116.3282 */ public static void invokeNavi(Context context, String coord_type , @NonNull String src,@NonNull String location){ StringBuffer stringBuffer = new StringBuffer("baidumap://map/navi?"); if (!TextUtils.isEmpty(coord_type)){ stringBuffer.append("coord_type=").append(coord_type); } stringBuffer.append("&src=").append(src); stringBuffer.append("&location=").append(location); Intent intent = new Intent(); intent.setData(Uri.parse(stringBuffer.toString())); context.startActivity(intent); } /** * 根据包名检测某个APP是否安装 *

Version

1.0 *

CreateTime

2016/6/27,13:02 *

UpdateTime

2016/6/27,13:02 *

CreateAuthor

*

UpdateAuthor

*

UpdateInfo

(此处输入修改内容,若无修改可不写.) * * @param packageName 包名 * @return true 安装 false 没有安装 */ public static boolean isInstallByRead(String packageName) { return new File("/data/data/" + packageName).exists(); } }

你可能感兴趣的:(Android)