美文网首页
如何调用外部百度地图导航,未安装时调起浏览器导航

如何调用外部百度地图导航,未安装时调起浏览器导航

作者: 铁肩侠 | 来源:发表于2019-08-02 10:11 被阅读0次

这是从sdk里抽取的源码:

    @SuppressLint("WrongConstant")
    private void openWebMap(RouteParaOption paraOption, Context context, int mode) {
        StringBuilder var3 = new StringBuilder();
        var3.append("http://api.map.baidu.com/direction?");
        var3.append("origin=");
        LatLng var4 = paraOption.getStartPoint();
        if (SDKInitializer.getCoordType() == CoordType.GCJ02 && var4 != null) {
            var4 = CoordTrans.gcjToBaidu(var4);
        }
 
        if (paraOption.getStartPoint() != null && paraOption.getStartName() != null && !paraOption.getStartName().equals("")) {
            var3.append("latlng:");
            var3.append(var4.latitude);
            var3.append(",");
            var3.append(var4.longitude);
            var3.append("|");
            var3.append("name:");
            var3.append(paraOption.getStartName());
        } else if (paraOption.getStartPoint() != null) {
            var3.append(var4.latitude);
            var3.append(",");
            var3.append(var4.longitude);
        } else {
            var3.append(paraOption.getStartName());
        }
 
        LatLng var5 = paraOption.getEndPoint();
        if (SDKInitializer.getCoordType() == CoordType.GCJ02 && var5 != null) {
            var5 = CoordTrans.gcjToBaidu(var5);
        }
 
        var3.append("&destination=");
        if (paraOption.getEndPoint() != null && paraOption.getEndName() != null && !paraOption.getEndName().equals("")) {
            var3.append("latlng:");
            var3.append(var5.latitude);
            var3.append(",");
            var3.append(var5.longitude);
            var3.append("|");
            var3.append("name:");
            var3.append(paraOption.getEndName());
        } else if (paraOption.getEndPoint() != null) {
            var3.append(var5.latitude);
            var3.append(",");
            var3.append(var5.longitude);
        } else {
            var3.append(paraOption.getEndName());
        }
 
        String var6 = "";
        switch (mode) {
            case 0:
                var6 = "driving";
                break;
            case 1:
                var6 = "transit";
                break;
            case 2:
                var6 = "walking";
        }
 
        var3.append("&mode=");
        var3.append(var6);
        var3.append("&region=");
        if (paraOption.getCityName() != null && !paraOption.getCityName().equals("")) {
            var3.append(paraOption.getCityName());
        } else {
            var3.append("全国");
        }
 
        var3.append("&output=html");
        var3.append("&src=");
        var3.append(context.getPackageName());
        Uri var7 = Uri.parse(var3.toString());
        Intent var8 = new Intent();
        var8.setAction("android.intent.action.VIEW");
        var8.setFlags(268435456);
        var8.setData(var7);
        context.startActivity(var8);
    }

这是调用方法:

    /**
     * 启动百度地图导航(Web)
     */
    public void openBrowserMap() {
 
       // LatLng pt1 = new LatLng(mLatitude, mLongitude);不传起始位置就是以网页定位的自己的位置为起始点
        LatLng pt2 = new LatLng(mLatitude, mLongitude);
        // 构建 导航参数
        RouteParaOption para = new RouteParaOption()
                .startPoint(null).endPoint(pt2).startName("我的位置").endName("目标位置");
 
        try {
 
            openWebMap(para, this, 0);
            //       BaiduMapRoutePlan.openBaiduMapDrivingRoute(para,this);
        } catch (IllegalNaviArgumentException e) {
            e.printStackTrace();
        }
    }

相关文章

网友评论

      本文标题:如何调用外部百度地图导航,未安装时调起浏览器导航

      本文链接:https://www.haomeiwen.com/subject/rypkdctx.html