gpt4 book ai didi

javascript - 将事件绑定(bind)到 openlayer3 map

转载 作者:行者123 更新时间:2023-11-28 07:10:16 25 4
gpt4 key购买 nike

我的网页中有一个 div,其中包含许多选项卡,每个选项卡中都包含一个 openlayer map 。

问题是当我使用以下代码将点击事件附加到 map 时,它不起作用。

//create map in given div ID//
createMap : function(id) {

var _this = this;//To refer this dojo AMD module
//Array of maps.
//_this.index to track the total no. of maps.
_this.maps[_this.index] = new ol.Map({
controls: [],
interactions: [],
//layers: [_this.raster],
target: id,
view: new ol.View({
center: [0, 0],
zoom: 4,
})
});

//get the latlong on
//map click


var thisMap = _this.maps[_this.index];
//Attaching the event.
_this.maps[_this.index].on("click", function(evt){
console.log(evt);
});
}

但是当我使用以下代码附加事件时,它工作正常。

//create map in given div ID//
createMap : function(id) {

var _this = this;//To refer this dojo AMD module
//Array of maps.
//_this.index to track the total no. of maps.
_this.maps[_this.index] = new ol.Map({
controls: [],
interactions: [],
//layers: [_this.raster],
target: id,
view: new ol.View({
center: [0, 0],
zoom: 4,
})
});

//get the latlong on
//map click


var thisMap = _this.maps[_this.index];

//Attaching the event

_this.maps[_this.index].getViewport().addEventListener("click", function(evt){
console.log(evt);
});
}

但我不想使用第二种方法来注册事件,因为第一种方法是 openlayer 的一部分,我可以使用 mouseEvent 参数做很多事情,比如我可以直接获取纬度和经度。

早些时候,两者都习惯了工作,但在第一个方法停止工作后,我使用 dojo 小部件重新创建了我的 GUI。

谁能帮我看看出了什么问题吗?或者使用第一种方法需要什么额外的东西?

最佳答案

试试这个方法:

createMap : function(id) {

var thisMap = new ol.Map({
controls: [],
interactions: [],
//layers: [_this.raster],
target: id,
view: new ol.View({
center: [0, 0],
zoom: 4,
})
});

thisMap.on('click', function(evt){

});

this.maps.push(thisMap);
}

关于javascript - 将事件绑定(bind)到 openlayer3 map ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31375923/

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