m0_37578846 2019-05-28 11:27 采纳率: 0%
浏览 958
已结题

如何在高德地图上根据画好的线,在他周边200米范围内画出多边行,这条线是随意长度,可以拐外的

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.可是算出来的不对
图片说明
有一部分线没在这个画出的多边形里面

  • 写回答

1条回答 默认 最新

  • dabocaiqq 2019-06-07 09:43
    关注
    评论

报告相同问题?

悬赏问题

  • ¥15 用matlab 设计一个不动点迭代法求解非线性方程组的代码
  • ¥15 牛顿斯科特系数表表示
  • ¥15 arduino 步进电机
  • ¥20 程序进入HardFault_Handler
  • ¥15 oracle集群安装出bug
  • ¥15 关于#python#的问题:自动化测试
  • ¥20 问题请教!vue项目关于Nginx配置nonce安全策略的问题
  • ¥15 教务系统账号被盗号如何追溯设备
  • ¥20 delta降尺度方法,未来数据怎么降尺度
  • ¥15 c# 使用NPOI快速将datatable数据导入excel中指定sheet,要求快速高效