我在表格和地图中显示了一组位置。我正在为表中的每个元素显示标记和圆形或多边形之一。当我从表格标记中选择蚂蚁元素时,该特定元素的图标会发生变化。我还有一个滑块可以更改每个元素的圆的半径。所有这一切都成功发生了,但我想分别分离标记、圆形和多边形图层,然后使用 layerGroup 对它们进行分组,这样当我更改半径时,我只更新圆形图层(现在我必须重置图层并更新标记、多边形和圆形) . 同样,如果我选择表中的任何元素,那么我应该只更新标记层而不是全部三个。我试图像这样对图层进行分组:
updateLayers(layerData) {
this.marker = [];
for (const ld of layerData) {
this.marker.push(
marker([ld['latitude'], ld['longitude']], {
icon: icon({
iconSize: [20, 32],
iconAnchor: [10, 16],
iconUrl: this.selectedPlaces.indexOf(ld) !== -1 ? this.iconEnablelink : this.iconDisableLink
})
}),
// ld['geofence_type'] && ld['geofence_type'] == 'POLYGON' ? polygon([ld['geofence']['coordinates'][0][0]]) : circle([ld['latitude'], ld['longitude']], { radius: this.radius }),
);
}
console.log('lg', layerGroup([this.marker]));
this.layers = layerGroup([this.marker]);
}
回应是这样的:
options: {}
_initHooksCalled: true
_layers: {45: Array(25)}
__proto__: NewClass
我收到以下错误:“尝试区分'[object Object]'时出错。只允许使用数组和可迭代对象”
有什么方法可以有效地实现这一点。
编辑:下面是工作代码。每次单击复选框时,我都会将该元素添加或删除到selectedPlaces
. 然后我调用这个函数。即使在滑块更改时,我也必须一次又一次地调用此函数。我在图层中使用标记、多边形和滑块,但我想将图层分成三个部分,这样当我选择任何元素时,我只更新标记(如果可能,则更新该特定元素的标记)而不是所有的圆圈和多边形。如果我使用滑块更新半径,那么我应该能够只更新圆而不修改标记和多边形。
updateLayers(layerData) {
this.layers = [];
for (const ld of layerData) {
this.layers.push(
marker([ld['latitude'], ld['longitude']], {
icon: icon({
iconSize: [20, 32],
iconAnchor: [10, 16],
iconUrl: this.selectedPlaces.indexOf(ld) !== -1 ? this.iconEnablelink : this.iconDisableLink
})
}),
ld['geofence_type'] && ld['geofence_type'] == 'POLYGON' ? polygon([ld['geofence']['coordinates'][0][0]]) : circle([ld['latitude'], ld['longitude']], { radius: this.radius }),
);
}