我在使用openlayer的过程中出现了问题, 我在请求中获取坐标,并设置了图标,刷新页面时图标有时候显示,有时候不显示
getSiteList().then((response) => {
response.data.data.records.forEach((item) => {
console.log(this.tableData, "cccc");
this.tableData.forEach((item2) => {
if (item.siteName === item2.siteName) {
console.log(item.siteName, "ssss");
this.siteList.push({
siteName: item.siteName,
coordinate: [Number(item.longitude), Number(item.latitude)]
})
}
})
})
setTimeout(() => {
this.initMap();
}, 700);
})
const map = new ol.Map({
interactions: customInteractions,
target: "map",
layers: [
new ol.layer.Tile({
source: new ol.source.XYZ({
url: "={y}&z={z}",
}),
}),
new ol.layer.Tile({
source: new ol.source.XYZ({
url: ''
}),
}),
new ol.layer.Vector({
source: new ol.source.Vector({
features: this.createMarkers(),
}),
style: new ol.style.Style({
image: new ol.style.Icon({
anchor: [0.5, 1],
src: 'img/icon/water.png', // 请替换为你的图标URL
}),
}),
}),
],
view: new ol.View({
center: ol.proj.fromLonLat([222,3333]),
zoom: 12,
minZoom: 11,
maxZoom: 13
}),
});
createMarkers() {
const markers = [];
this.siteList.forEach((item) => {
console.log(11111);
console.log(item.coordinate);
const marker = new ol.Feature({
geometry: new ol.geom.Point(ol.proj.fromLonLat(item.coordinate)),
siteName: item.siteName
});
marker.on('click', (event) => {
console.log("地图上的标记被点击了");
this.markerClicked(event);
});
markers.push(marker);
});
return markers;
},