初始化完地图以后,将以下代码封装为一个js,在html中引用该js,直接调用封装好的方法,传入对应的值即可。
var longpatStr
var reg = /,$/gi; //此处是正则
/**
* a,b是起点的经度和纬度,c,d是终点的经度和纬度
* @param a,b,c,d
*/
function loadLine(a,b,c,d) {
var myP1 = new BMap.Point(parseFloat(a), parseFloat(b)); //起点
var myP2 = new BMap.Point(parseFloat(c), parseFloat(d)); //终点
var driving = new BMap.DrivingRoute(map, {
onSearchComplete: function (results) {
if (driving.getStatus() == BMAP_STATUS_SUCCESS) {
longpatStr = "";
var pts = driving.getResults().getPlan(0).getRoute(0).getPath(); //通过驾车实例,获得一系列点的数组
var paths = pts.length;
for (var i = 0; i < paths; i++) {
console.log(pts[i].lng + " " + pts[i].lat);
longpatStr += parseFloat(pts[i].lat) + "|" + parseFloat(pts[i].lng) + ","
}
longpatStr = longpatStr.replace("undefined", "");
longpatStr = longpatStr.replace(reg, "");
$("#point").val(longpatStr)
line(longpatStr)
}
}
}, {
renderOptions: {
map: map,
autoViewport: true
}
});
//驾车实例
driving.search(myP1, myP2);
}
/**
* 连线
* @param lonlat
*/
function line(lonlat) {
var co = lonlat.split(",");
var pointAttr = new Array();
for (var i = 0; i < co.length - 1; i++) {
var loglats = co[i].split("|")
var point = new BMap.Point(loglats[1], loglats[0])
pointAttr.push(point);
}
var polyline = new BMap.Polyline(pointAttr, {
strokeColor: "#cc0000",
strokeWeight: 5,
strokeOpacity: 0.5
});
map.addOverlay(polyline);
}