点击地图上的站点,弹出弹窗调取后台接口;
当切换区域时,再次点击站点,会多次触发地图点击事件,多次调取后台接口。
防止多次触发地图点击事件解决方法:
触发前先销毁点击事件 ,关键代码:
// Vue3
const key = (evt) => {
let pixel = mapObj.getEventPixel(evt.originalEvent);
mapObj.forEachFeatureAtPixel(pixel, function (feature) {
let attr = feature.getProperties();
// console.log(attr);
if (attr.features && attr.features[0].values_.label == 1) {
stationId.value = attr.features[0].values_.stationId;
title.value = attr.features[0].values_.value + factorName.value;
// console.log(sourceModelName.value);
// if (sourceModelName.value.substring(0, 4) !== '来源模式') {
getStationForecastValueData();
// }
}
});
// 移除事件
mapObj.un(key.type, key.listener);
};
mapObj.on('singleclick', key);