gpt4 book ai didi

javascript - 单击开放层标记上的功能版本 5

转载 作者:行者123 更新时间:2023-11-30 19:31:50 25 4
gpt4 key购买 nike

我正在使用开放层库版本 5。我需要标记上的 onClick 事件来执行一些业务逻辑。任何人都可以帮我解决这个问题谢谢。我已经尝试了所有代码和片段。我正在使用这个库来响应 js。

import Feature from "ol/Feature";
import point from "ol/geom/Point"
import Style from "ol/style/Style";
import Icon from "ol/style/Icon";

renderMap = (lat = 24.8856802, lng = 67.0830459) => {
console.log(lat, lng);
this.map = new Map({
target: 'map',
layers: [
new TileLayer({
source: new OSM()
})
],
view: new View({
center: fromLonLat([lng, lat]),
zoom: 17,

})
});


this.makeMarker(24.8856802, 67.0830459, 0);


}
//here is my marker function
makeMarker = (lat, lng, index) => {
let marker = new Feature({
geometry: new point(fromLonLat([lng, lat])),

});
marker.setStyle(new Style({
image: new Icon(({
// crossOrigin: 'anonymous',
src: require("../../assets/images/location-pin.png"),
enter code here`enter code here`


}))
}));
let vectorSource = new Vector({ features: [marker] })
var markerVectorLayer = new LVector({
source: vectorSource,


});
this.map.addLayer(markerVectorLayer);
marker.on("click", () => {
alert()
})



}

最佳答案

功能没有点击事件。类似于这个例子 https://openlayers.org/en/latest/examples/icon.html您需要监听 map 上的点击,检查点击像素处是否有特征,并且该特征是您的标记

  map.on('click', function(evt) {
var feature = map.forEachFeatureAtPixel(evt.pixel,
function(feature) {
return feature;
});
if (feature === marker) {

关于javascript - 单击开放层标记上的功能版本 5,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56348153/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com