关于#javascript#的问题,如何解决?

麻烦问一下,怎么把这段代码中用for循环生成new BMap.Point()里的数据,就是只写一个new BMap.Point(x,y)
//设置覆盖物
var polygon1 = new BMap.Polygon([
new BMap.Point(108.853,34.2986),
new BMap.Point(108.853,34.3559),
new BMap.Point(108.853,34.2986),
],

封装成函数,通过函数传x,y的参数即可。


    let arr = []
    let points = [[1,2],[3,4],[5,6]]
    for(let i = 0; i < points.length; i++) {
      let item = new BMap.Point(i[0],i[1])
      arr.push(item)
    }

这样吗?


var polygon1 = new BMap.Polygon([
    // new BMap.Point(108.853, 34.2986),
    // new BMap.Point(108.853, 34.3559),
    // new BMap.Point(108.853, 34.2986),
  ]);
  
  console.log(polygon1)
  for(var i=0;i<=3;i++){
    let v=new BMap.Point(108.853, 34.2986);
    polygon1.push(v);
  }

这样试试

把经纬度定义一个数组;
然后循环去添加

 var data = [
      {x:108.853,y:34.2986},
      {x:108.853,y:34.3559},
      {x:108.853,y:34.2986},
     ]
   var Point = []
   data.forEach(item => {
        Point.push(new BMap.Point(item.x,item.y))
   
   })
    var polygon1 = new BMap.Polygon(Point)
    console.log(polygon1)

img


楼主这是申明的地图实体对象,应该不能直接循环polygon,建议打印一下polygon看看三个顶点坐标存储在对象的位置,在将其循环创建点标记