double bx=120.653721,ax=120.617797,by=31.293565,ay=31.334048;
var dis=0.5;
var d = 5648.89;
System.out.println("两点距离,保留两位小数:"+d);
var n = Math.ceil(d/dis);
System.out.println("分割点位数量:"+n);
var dx = dis*(bx - ax)/d ;
var dy = dis*(by-ay)/d;
var i=1;
for(;i<=n;i++){
var xc = i*dx + ax;
var yc = i*dy + ay;
System.out.print(xc+","+yc+" ");
}
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>驾车途经点</title>
<script src="http://libs.baidu.com/jquery/2.1.4/jquery.min.js"></script>
<script type="text/javascript" src="http://api.map.baidu.com/api?v=1.2"></script>
</head>
<body>
<p><input type='button' value='开始' onclick='run();' /></p>
<p><input type='button' value='输出' onclick='print();' /></p>
<p><input type='button' value='显示' onclick='disPlay();' /></p>
<div style="width:820px;height:500px;border:1px solid gray" id="container"></div>
<div style="width:820px;height:500px;border:1px solid gray" id="printf" name="printf"></div>
</body>
</html>
<script type="text/javascript">
var map = new BMap.Map("container");
map.centerAndZoom(new BMap.Point(116.404, 39.915), 13);
map.addControl(new BMap.NavigationControl()); // 添加平移缩放控件
map.addControl(new BMap.ScaleControl()); // 添加比例尺控件
map.addControl(new BMap.OverviewMapControl()); //添加缩略地图控件
var myP1 = new BMap.Point(120.558952,31.380589); //起点-苏州
var myP2 = new BMap.Point(120.608323,31.326441); //终点-苏州园区站
var myP3 = new BMap.Point(120.65381,31.293426); //终点-苏州北站
var bx=120.653721,ax=120.617797,by=31.293565,ay=31.334048;
var pointA = new BMap.Point(120.653721,31.293565);
var pointB = new BMap.Point(120.617797,31.334048);
// var pointA = new BMap.Point(ax,ay); // 创建点坐标A--大渡口区
// var pointB = new BMap.Point(bx,by);
function disPlay() {
var point=";
var array=point.split(" ");
alert("gps点个数:"+array.length)
for (let i = 0; i <array.length ; i++) {
if(i%10!=0)
continue;
var p=array[i];
var x=p.split(",")[0];
var y=p.split(",")[1];
var new_point = new BMap.Point(x,y);
var marker = new BMap.Marker(new_point); // 创建标注
map.addOverlay(marker); // 将标注添加到地图中
map.panTo(new_point);
console.log("i="+i+";x="+x+";y="+y);
}
}
function print(){
var dis=1;
var d = (map.getDistance(pointA,pointB)).toFixed(2);
alert("两点距离,保留两位小数:"+d);
var n = Math.ceil(d/dis);
alert("分割点位数量:"+n);
var dx = dis*(bx - ax)/d ;
var dy = dis*(by-ay)/d;
alert(dx);
var xc = dx + ax;
var yc = dy + ay;
var i=1;
for(;i<=n;i++){
var xc = i*dx + ax;
var yc = i*dy + ay;
var new_point = new BMap.Point(xc,yc);
var marker = new BMap.Marker(new_point); // 创建标注
map.addOverlay(marker); // 将标注添加到地图中
map.panTo(new_point);
//document.getElementById("printf").insertAdjacentHTML('afterend',xc+","+yc+" ");
}
//document.getElementById("printf").insertAdjacentHTML('afterend',"-------总数:"+i+"---------");
}
window.run = function () {
map.clearOverlays(); //清除地图上所有的覆盖物
var driving = new BMap.DrivingRoute(map); //创建驾车实例
driving.search(myP1, myP2); //第一个驾车搜索
driving.search(myP2, myP3); //第二个驾车搜索
driving.setSearchCompleteCallback(function () {
var pts = driving.getResults().getPlan(0).getRoute(0).getPath();
try {
document.getElementById("printf").insertAdjacentHTML('afterend','<---------------开始调用-------------------->');
var p=JSON.stringify(pts);
document.getElementById("printf").insertAdjacentHTML('afterend',p);
sleep(4000)
document.getElementById("printf").insertAdjacentHTML('afterend','<----------------结束调用------------------->');
}catch (e) {
alert("pts 转 json 失败")
document.getElementById("printf").insertAdjacentHTML('afterend','<---------------开始调用-------------------->');
//var p=JSON.stringify(driving);
document.getElementById("printf").insertAdjacentHTML('afterend',driving);
sleep(4000)
document.getElementById("printf").insertAdjacentHTML('afterend','<----------------结束调用------------------->');
}
//通过驾车实例,获得一系列点的数组
var polyline = new BMap.Polyline(pts);
map.addOverlay(polyline);
var m1 = new BMap.Marker(myP1);
// 创建3个marker
var m2 = new BMap.Marker(myP2);
var m3 = new BMap.Marker(myP3);
map.addOverlay(m1);
map.addOverlay(m2);
map.addOverlay(m3);
var lab1 = new BMap.Label("起点",{position:myP1});
// 创建3个label
var lab2 = new BMap.Label("途径点",{position:myP2});
var lab3 = new BMap.Label("终点",{position:myP3});
map.addOverlay(lab1);
map.addOverlay(lab2);
map.addOverlay(lab3);
setTimeout(function(){
map.setViewport([myP1,myP2,myP3]);
// 调整到最佳视野
},1000);
});
}
function sleep(n) {
var start = new Date().getTime();
while(true) if(new Date().getTime()-start > n) break;
}
</script>