背景:平时app端上传时会由于各种原因,上传的坐标点可能不是完整的。
解决方案:两两坐标点建立连接,最终组成一个完整的轨迹!
参考:
[url]http://lbsyun.baidu.com/cms/jsapi/reference/jsapi_reference.html[/url] (js api)
[url]http://lbsyun.baidu.com/jsdemo.htm#i5_2[/url] (主要原理)
[url]http://www.cnblogs.com/wujy/p/3897501.html[/url] (这位兄弟写的好详细,主要参考他这边的 :idea: )
截图:
[img]http://dl2.iteye.com/upload/attachment/0124/0699/ccda14d6-c226-3ef4-8c10-eaabc1b99ae1.png[/img]
[img]http://dl2.iteye.com/upload/attachment/0124/0701/e40df7e5-32ca-30ee-9e4d-30ee3292292c.png[/img]
附:百度轨迹查询若参数有传纠偏(is_process=1&process_option=[...]),返回的数据定位时间有的可能会重复,要根据loc_time剔重下!
解决方案:两两坐标点建立连接,最终组成一个完整的轨迹!
参考:
[url]http://lbsyun.baidu.com/cms/jsapi/reference/jsapi_reference.html[/url] (js api)
[url]http://lbsyun.baidu.com/jsdemo.htm#i5_2[/url] (主要原理)
[url]http://www.cnblogs.com/wujy/p/3897501.html[/url] (这位兄弟写的好详细,主要参考他这边的 :idea: )
var data = [
[119.307268,26.087294],
[119.300908,26.085607],
[119.299399,26.089598],
[119.305363,26.092161]
];
// 根据轨迹点,两两连线,最终合成一条完整的轨迹
function showMap() {
var abc = $(data);
var chartData = [];
$.each(abc, function (item, value) {
chartData.push(new BMap.Point(value[0], value[1]));
})
for (var i = 0; i < chartData.length-1; i++) {
var startPoint = chartData[i];
var endPoint = chartData[i + 1];
showPath(startPoint, endPoint,i==0,i==chartData.length-2);
}
}
// 两个坐标点连线
function showPath(startPoint, EndPoint,displayStartIcon,displayEndIcon){
var walking = null;
if(displayStartIcon && !displayEndIcon){ // 第一个起点只展示起点图标
walking = new BMap.DrivingRoute(map, { renderOptions: { map: map, autoViewport: true },onMarkersSet:function(routes) {map.removeOverlay(routes[1].marker);}});
}else if(!displayStartIcon && !displayEndIcon){//中间的起点终点不展示起点、终点图标
walking = new BMap.DrivingRoute(map, { renderOptions: { map: map, autoViewport: true },onMarkersSet:function(routes) {map.removeOverlay(routes[0].marker);map.removeOverlay(routes[1].marker);}});
}else{// 最后一个终点只展示终点图标
walking = new BMap.DrivingRoute(map, { renderOptions: { map: map, autoViewport: true },onMarkersSet:function(routes) {map.removeOverlay(routes[0].marker);}});
}
walking.search(startPoint, EndPoint);
}
截图:
[img]http://dl2.iteye.com/upload/attachment/0124/0699/ccda14d6-c226-3ef4-8c10-eaabc1b99ae1.png[/img]
[img]http://dl2.iteye.com/upload/attachment/0124/0701/e40df7e5-32ca-30ee-9e4d-30ee3292292c.png[/img]
附:百度轨迹查询若参数有传纠偏(is_process=1&process_option=[...]),返回的数据定位时间有的可能会重复,要根据loc_time剔重下!