1.我是在高德地图上画了一条线,想在这条线周边画出一个多边形,这个多边形是根据线上所有的点 垂直200米范围。
2.我试过高德地图API接口 画多边形
//这是所有的点 按90度来计算距离200米的经纬度
for(var j=0;j<linearraypath.length;j++){
juxingshuzu.push(jisun(linearraypath[j],90));
}
//这是所有的点 按180度来计算距离200米的经纬度
for (var k=0;k<linearraypath.length;k++){
juxingshuzu.push(jisun(linearraypath[linearraypath.length-k-1],180));
}
//这是高德地图API来画多边形
set_juxing(juxingshuzu);
//这是高德地图API来画多边形的方法
function set_juxing(data){
var polygon = new AMap.Polygon({
path: data,//设置多边形边界路径
strokeColor: "#CD4F39", //线颜色
strokeOpacity: 0.2, //线透明度
strokeWeight: 3, //线宽
fillColor: "#CD4F39", //填充色
fillOpacity: 0.75//填充透明度
});
maps.add(polygon);
}
//这是计算经纬度方法
function jisun(point,cos){
var long1=point.lng;
var lat1=point.lat;
var ARC=6371.393*1000;
var long2;
var π=3.1415926;
var d_cos=cos;
long2 = long1 + 200*Math.sin(d_cos)/(ARC*Math.cos(lat1)*2*π/360);
var jd= Math.floor(long2*1000000)/1000000;
var lat2;
lat2 = lat1 + 200*Math.cos(d_cos)/ (ARC *2*π/360);
var wd=Math.floor(lat2*1000000)/1000000;
//return jwd=new AMap.LngLat(jd, wd);
var gis=[];
gis.push(jd);
gis.push(wd);
return jwd=gis;
}
3.可是算出来的不对
有一部分线没在这个画出的多边形里面