麻烦问一下,怎么把这段代码中用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)
楼主这是申明的地图实体对象,应该不能直接循环polygon,建议打印一下polygon看看三个顶点坐标存储在对象的位置,在将其循环创建点标记