当前位置:   article > 正文

Android客户端调起地图定位不准,导航路线出现偏差,目的地坐标偏离的解决方法_android 高德导航 路径偏移 回调

android 高德导航 路径偏移 回调

前言

APP调起地图导航出现偏差 是什么问题造成的呢
一:可能是模糊定位造成的
二:也有可能 改变了经纬度的数据
解决思路如下
先了解一下调起高德APP的各个参数是什么

百度地图 参数如下:

参数名称描述是否必选格式(示例)
origin起点名称或经纬度,或者可同时提供名称和经纬度,此时经纬度优先级高,将作为导航依据,名称只负责展示。如果没有origin的情况下,会使用用户定位的坐标点作为起点origin 和 destination 二者至少一个有值(默认值是当前定位地址)latlng:39.98871,116.43234 (注意:坐标先纬度,后经度)名称和经纬度:name:天安门latlng:39.98871, 116.43234addr:北京市东城区东长安街(注意:坐标先纬度,后经度)建筑ID和楼层ID: name:天安门latlng:39.98871, 116.43234building:10041552286161815796floor:F1(注意:建筑ID和楼层ID必须同时提供,用于是内步行路线规划)注意:仅有名称的情况下,请不要带“name:”,只需要origin=“起点名称”
destination终点名称或经纬度,或者可同时提供名称和经纬度,此时经纬度优先级高,将作为导航依据,名称只负责展示。origin 和 destination 二者至少一个有值(默认值是当前定位地址)latlng:39.98871,116.43234 (注意:坐标先纬度,后经度)名称和经纬度:name:天安门latlng:39.98871, 116.43234addr:北京市东城区东长安街(注意:坐标先纬度,后经度)建筑ID和楼层ID: name:天安门latlng:39.98871, 116.43234building:10041552286161815796floor:F1(注意:建筑ID和楼层ID必须同时提供,用于是内步行路线规划)注意:仅有名称的情况下,请不要带“name:”,只需要origin=“起点名称”
mode导航模式,可选transit(公交)、driving(驾车)、walking(步行)和riding(骑行)默认:driving可选
region城市名或县名可选
origin_region起点所在城市或县可选
destination_region终点所在城市或县可选
sy公交检索策略,只针对mode字段填写transit情况下有效,值为数字。0:推荐路线2:少换乘3:少步行4:不坐地铁5:时间短6:地铁优先可选
index公交结果结果项,只针对公交检索,值为数字,从0开始可选
target0 图区,1 详情,只针对公交检索有效可选默认0
car_type驾车路线规划类型可选BLK:躲避拥堵(自驾)TIME:高速优先(自驾)DIS:不走高速(自驾)FEE:少收费(自驾)DEFAULT: 默认偏好; 默认使用地图中已保存的路线偏好(缺省值)。除缺省值外,若用户已勾选车牌限行,其他类型都会默认增加车牌限行的偏好。
viaPoints途经点参数,内容为json格式,需要把内容encode后拼接到url中。未编码的参数内容示例如下,其中name为名称,lat为纬度,lng为经度{“viaPoints”: [{“name”: “北京西站”,“lat”: 39.902463,“lng”: 116.327737},{“name”: “北京动物园”,“lat”: 39.945136,“lng”: 116.346983},{“name”: “清华大学”,“lat”: 40.011006,“lng”: 116.338897}]}可选10.2新增
src统计来源可选参数格式为:andr.companyName.appName不传此参数,不保证服务

高德地图 参数如下:

参数说明是否必填
route服务类型
sourceApplication第三方调用应用名称 如 amap
sid起点的POIID
slat起点纬度。如果不填写此参数则自动将用户当前位置设为起点纬度。
slon起点经度。如果不填写此参数则自动将用户当前位置设为起点经度。
sname起点名称
did终点的POIID
dlat终点纬度
dlon终点经度
dname终点名称
dev起终点是否偏移(0:lat 和 lon 是已经加密后的,不需要国测加密; 1:需要国测加密)
m驾车方式 =0(速度快)=1(费用少) =2(路程短)=3 不走高速 =4(躲避拥堵)=5(不走高速且避免收费) =6(不走高速且躲避拥堵) =7(躲避收费和拥堵) =8(不走高速躲避收费和拥堵)。 公交 =0(速度快)=1(费用少) =2(换乘较少)=3(步行少)=4(舒适)=5(不乘地铁)由于与用户本地设置冲突,Android平台7.5.9版本起不支持该参数,偏好设置将以用户本地设置为准
rideType仅当 t = 3 时该参数生效。rideType = elebike 电动车,rideType = bike/为空 自行车(电动车规划仅在V8.65.0及以上版本支持)

高德地图导航URL拼接

	//跳转intent 拼参数
	 Intent intent = new Intent("android.intent.action.VIEW",
                android.net.Uri.parse("androidamap://navi?sourceApplication=APP名称&poiname="
                        + poiname
                        + "&lat=+"
                        + latitude
                        + "&lon="
                        + longitude + "&dev=0&style=2"));
        intent.setPackage("com.autonavi.minimap");
        startActivity(intent);
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

百度地图导航URL拼接

	  private void baidu() {
        StringBuilder sb = new StringBuilder();
        sb.append("baidumap://map/direction?region=").append("shenzhen");
        StoreModel.LatLng position = mStoreModel.getPosition();
        double[] doubles = gcj02_To_Bd09(position.getLatitude(), position.getLongitude());
        sb.append("&origin=").append(doubles[0] + "," + doubles[1]);
        sb.append("&destination=").append(mStoreModel.getStoreName());
        sb.append("&mode=driving");
        Intent intent = new Intent();
        intent.setData(Uri.parse(sb.toString()));
        try {
            startActivity(intent);
        } catch (Exception e) {
            ToastUtils.showShort(this, "没有安装百度地图");
        }
    }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16

问题解决说明

我们要修改的就是 dev这个参数
起终点是否偏移(0:lat 和 lon 是已经加密后的,不需要国测加密; 1:需要国测加密)
改成dev=0 然后运行app 和地图导航对比一下路线图和终点位置就可以了

共勉

我要一步一步往上爬
在最高点乘着叶片往前飞
任风吹干流过的泪和汗
我要一步一步往上爬
等待阳光静静看着它的脸
小小的天有大大的梦想
我有属于我的天
任风吹干流过的泪和汗
总有一天我有属于我的天
在这里插入图片描述

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/很楠不爱3/article/detail/290389
推荐阅读
相关标签
  

闽ICP备14008679号