地图拟路化实现——利用百度鹰眼
来源:互联网 发布:淘宝白底图片怎么拍 编辑:程序博客网 时间:2024/05/16 12:11
这次的项目难点是需要将一串gps轨迹纠偏为绑路的轨迹,鉴于这个情况,超图需要购买服务,而百度和高德提供了免费接口,百度还额外提供了鹰眼平台管理这些数据,所以这次预研了下鹰眼地图。
实现思路就是,1.上传excel解析出点位list,2添加终端addEntity,2上传点位addpoint,3查询纠偏后轨迹gettrack
百度鹰眼api地址:http://lbsyun.baidu.com/index.php?title=yingyan/api/v3/trackupload
业务模块主要分为1终端管理,2点位上传,3纠偏查询,4轨迹分析,5电子围栏
终端:可以理解为设备、人、车,为移动轨迹的载体;
点位:可以理解为终端在时间轴上的单位位置信息;
纠偏:普通的纠偏在webGis内的概念主要是不同地图厂商投影坐标系不同产生了误差,需要坐标系转换,这里用于轨迹的纠偏,分为去噪、抽稀、绑路,
去噪,则是去除前后时间轴上方差过大的点,简言之就是速度100码,但前一个点在西湖,后一个点已在湘湖,偏差过大了,也可能根据radius精度判断,
抽稀,则是去除重复性太大的点,点位一秒上传一次,但一条100米的路却因为开的慢上传了上万个点,轨迹几乎是直线,优化下,
绑路,则是将点位纠正到道路上,对点位进行最近距离的路网信息进行搜索,然后选取最适道路绑定,坐标也做一个纠正
轨迹:可以理解为终端在时间轴上的历史位置展示,可根据速度分析出停留点、驾驶行为、里程信息;
围栏:可以理解为一个多边形区域,终端在一个时间段在区域外,或在区域内但不满足限速,产生出栏、超速、低速、停止等可报警元素。
出现问题:addpoints批量上传点位接口,反复出现loc_time类型不匹配,经查,不是类型不匹配,而可能原因有
1、loc_time是unix时间戳,取得是秒数,js举例为Math.round((new Date()).getTime()/1000)
2、loc_name时间小于了或重复了原已存在点位时间
3、entity_name不存在,
4、掺夹了没有添加的自定义字段
2017-11-7续接新问题:
gettrack查不出纠偏后数据,源于addpoints上传的点位只有经纬度,并没有设模拟的方向和速度,速度暂设100km/h,而方向则根据前后两个点形成的向量算出与y正轴顺时针的方向夹角即可。
2017-11-8续接新问题:
gettrack无法查询出wgs84坐标系的数据,只支持百度和国测局,百度公开的坐标转换api——
http://api.map.baidu.com/geoconv/v1/?coords=x,y&from=1&to=5 ,无法将百度转化为wgs84坐标系;
解决办法:找到另一个百度不公开的api转换,顺手研究了下坐标系转换相关知识,见下篇WebGis坐标系转换知识
api为http://api.map.baidu.com/ag/coord/convert?from=0&to=2&x=longitude&y=latitude
其中:from: 来源坐标系(0 表示 WGS-84 坐标;2 表示 GCJ-02 坐标,即 iOS 地图 / Google Maps / 高德地图使用的(900913);4 表示 BD-09 坐标,即百度地图使用的(3857)),
to: 转换后的坐标系,x: 经度,y: 纬度
返回的结果是一个 JSON 字符串:
{"error":0,"x":"MTIxLjUwMDIyODIxNDk2","y":"MzEuMjM1ODUwMjYwMTE3"}
error:是结果是否出错标志位,
0 表示成功,
x: 坐标系 2 时为经度,4 时为纬度(Base64 编码);
坐标系 4 时为经度,2 时为纬度(Base64 编码)
2017-11-9续接新问题:
无法将国测局或百度转成wgs84,百度不公开api也不行,超图api也不提供,民间算法也不准确,有偏差
而目前基线地图不能全盘切成百度地图,之前承载太多的业务,且支持离线企业应用
最后解决办法:
addPoint上传wgs84,然后gettrack查出未绑路的gcj02,算出这两条线的平均偏移,
再gettrack查出绑路后的gcj02,减去之前算出的偏移,算出绑路后的wgs84。
因为这两者距离很小,可以避开国测局大范围的不同经纬区块偏移策略,偏移基本够用,误差很小。
- 地图拟路化实现——利用百度鹰眼
- 百度地图鹰眼
- 百度鹰眼地图使用
- 百度鹰眼接口实现
- iOS开发(第三方使用)——百度地图鹰眼轨迹SDK接入
- ArcGIS 鹰眼地图功能实现
- 百度地图api---鹰眼服务物流解决方案
- 百度地图鹰眼轨迹---乱码问题
- 利用百度地图API实现百度地图坐标拾取
- 百度地图API基础操作--百度鹰眼篇
- 地图鹰眼
- 鹰眼地图的实现(C++)
- 利用百度地图API实现WEB定位
- 第三方SDK:百度地图(二)定位 + 鹰眼轨迹
- Android-百度地图鹰眼轨迹SDK使用全解析
- iOS 百度地图使用鹰眼时,出现image not found
- iOS 百度地图鹰眼,导入库时,报错误
- 百度地图之鹰眼轨迹V3之初探
- 2017年第十五届中国医疗器械,检验医学及口腔器材(福建)博览会会刊(参展商名录)
- 数据库索引
- react-native监听Android(Android向RN发送事件)
- 透彻理解IoC(控制反转)
- 启用ss-manager
- 地图拟路化实现——利用百度鹰眼
- HTML虚拟键盘带声音特效
- Kafka 设计与原理详解
- boost正则库
- 百度地图加载百度js 出现 BMap is not defined
- Android 使用RecyclerView实现快速索引
- C++ BMP图片转换为PNG图片
- Json的格式化
- 为什么全新的Open Container Initiative标准是软件行业的里程碑?