关于地图

  • 给一个经纬度在第三方地图打开并显示
public static String GAODE_MAP = “com.autonavi.minimap”;//高德
public static String BAIDU_MAP = “com.baidu.BaiduMap”;//百度
public static String TENXUN_MAP = “com.tencent.map”;//腾讯
/**
* 判断当前设备是否安装某个应用
* @param context
* @param packageName
* @return
*/
public static boolean isInstalled(Context context, String packageName) {
    boolean installed = false;
    if (TextUtils.isEmpty(packageName)) {
        return false;
    }
    List<ApplicationInfo> installedApplications = context.getPackageManager().getInstalledApplications(0);
    for (ApplicationInfo in : installedApplications) {
        if (packageName.equals(in.packageName)) {
            installed = true;
            break;
        } else {
            installed = false;
        }
    }
    return installed;
}
/**
* 打开地图
*/
private void openMap() {
    if (OperateUtil.isInstalled(mActivity, AppConfig.BAIDU_MAP)
            || OperateUtil.isInstalled(mActivity, AppConfig.GAODE_MAP)
            || OperateUtil.isInstalled(mActivity, AppConfig.TENXUN_MAP)) {
        Uri uri = Uri.parse(String.format(“%1$s%2$s,%3$s”, “geo:”, latitude, longitude));
        Intent intent = new Intent(Intent.ACTION_VIEW, uri);
        startActivity(intent);
    } else {
        showToast(“请安装第三方地图!”);
    }
}
  • 给两个定位坐标,通过第三方地图从一个坐标到另外一个坐标导航
private double longitude;//精度
private double latitude;//纬度
private String thisAddressName;//当前地址名称
private double tolongitude;//精度
private double tolatitude;//纬度
private String addressName;//目的地地址名称
private LocationClient mLocationClient = null;
private BDLocationListener myListener = new MyLocationListener();
public static String GAODE_MAP = “com.autonavi.minimap”;//高德
public static String BAIDU_MAP = “com.baidu.BaiduMap”;//百度
public static String TENXUN_MAP = “com.tencent.map”;//腾讯
//打开地图并导航
private void goNavigation(int type) {
    Intent intent = null;
    switch (type) {
        case 0:
            intent = new Intent();
            intent.setData(Uri.parse(String.format(“baidumap://map/navi?location=%1$s,%2$s&src=andr.baidu.openAPIdemo”, tolongitude, tolatitude)));
            break;
        case 1:
            intent = new Intent();
            intent.setData(Uri.parse(String.format(“androidamap://navi?sourceApplication=appname&poiname=fangheng&lat=%1$s&lon=%2$s&dev=1&style=2”, tolongitude, tolatitude)));
            break;
        case 2:
            if (longitude == 0 || latitude == 0) {
                ToastView.showToast(mActivity, “正在定位中,请稍后…”);
                getThisLL();
            } else {
                intent = new Intent();
                intent.setData(Uri.parse(String.format(“qqmap://map/routeplan?type=drive&from=%1$s&fromcoord=%2$s,%3$s&to=%4$s&tocoord=%5$s,%6$s&referer=OB4BZ-D4W3U-B7VVO-4PJWW-6TKDJ-WPB77”, thisAddressName, latitude, longitude, addressName, tolongitude, tolatitude)));
            }
            break;
    }
    if (intent != null) {
        mActivity.startActivity(intent);
    }
}
//开启定位
public void getThisLL() {
    mLocationClient = new LocationClient(mActivity.getApplicationContext());
    //声明LocationClient类
    mLocationClient.registerLocationListener(myListener);
    BaiduMapHelpUtil.initLocation(mLocationClient);
}
//定位导航
public class MyLocationListener implements BDLocationListener {
    @Override
    public void onReceiveLocation(BDLocation location) {
        longitude = location.getLongitude();
        latitude = location.getLatitude();
        thisAddressName = location.getAddress().street;
        mLocationClient.stop();
        Intent intent = new Intent();
        intent.setData(Uri.parse(String.format(“qqmap://map/routeplan?type=drive&from=%1$s&fromcoord=%2$s,%3$s&to=%4$s&tocoord=%5$s,%6$s&referer=OB4BZ-D4W3U-B7VVO-4PJWW-6TKDJ-WPB77”, thisAddressName, latitude, longitude, addressName, tolongitude, tolatitude)));
        mActivity.startActivity(intent);
    }
}

留下评论

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理