地图坐标轨迹平滑和纠偏
轨迹平滑和纠偏
纠偏
通过gps获取坐标点时 因为gps信号不稳定等原因 出现坐标点异常 不符合实际 进行异常点的处理 来对轨迹纠正 轨迹偏移不正常
取得轨迹坐标集合 对此段轨迹设置起点和终点 取得相邻两坐标点 计算出两点之间距离 对比获取坐标点的时间 判断坐标时速异常 对坐标点移除处理 代码逻辑:
异常点去除之后轨迹
轨迹平滑处理
实现思路方法 1.百度地图鹰眼服务: 源码主要实现思路:计算相邻坐标点之间距离 通过时间判断速度 挑出 异常点 绑定道路的实现方式 2.数据库坐标去重过滤:
百度鹰眼服务
文档地址: 上传轨迹 —轨迹处理—返回轨迹 请求方式 http://yingyan.baidu.com/api/v3/track/addpoint //POST请求
参数 核心参数 ak 用户授权标识 Service_id 鹰眼服务标识 entity_name 轨迹所属实例 Longitude 经度 Latitude 纬度 loc_time 获取坐标点时间 coord_type_input 坐标类型 wgs84:GPS 坐标 gcj02:国测局加密坐标 bd09ll:百度经纬度坐标
请求参数:
返回值参数
多轨迹上传 可上传多个实例的多个轨迹 核心方法 addpoins http://yingyan.baidu.com/api/v3/track/addpoints //POST请求
所需参数如下:
Point_list 为多个实例和轨迹的集合格式如下 返回值如下
这是entity实例 可单个上传或批量 这是属于entity的轨迹addpionts 可批量上传 单独上传 进行轨迹处理 可有去噪 抽稀 绑路 终端补偿等 在传递参数时设置 返回纠正后集合
纠正之后
数据库坐标去重过滤 以下方案摘取:
将取到的若干坐标点存入到数据库 核心字段 id 经纬度 时间
将数据库坐标点去重
数据平滑采用高斯滤波进行平滑处理
将处理后的坐标点铺到地图上 坐标匹配到道路上去,但是由于精度不是那么可靠,切在转弯处的数据匹配也是明显的错误,但是目前没找到好的解决方案
总结: 无论纠偏、异常点处理、轨迹平滑 其根本都是对坐标点的处理 核心参数是经纬度以及经纬度对应的时间 进行处理 在坐标点做够多的情况下 gps不稳定获取的坐标点不够精确导致的问题
小白编写 不喜勿喷 欢迎纠错 博文地址: