gpt4 book ai didi

javascript - 通过按钮取消/激活 getfeature-request

转载 作者:行者123 更新时间:2023-11-28 00:12:54 27 4
gpt4 key购买 nike

我有一个 Openlayers3-map,其中包含多个 WMS 层。我想添加一个按钮(对于每个可查询层),以便用户可以决定是否查询 wms 层。

var getfeature = function(click) {
map.on(click, function (evt) {
document.getElementById('info').innerHTML = '';
var viewResolution = (view.getResolution());
var url = wms_url.getGetFeatureInfoUrl(
evt.coordinate, viewResolution, projection,
{
'INFO_FORMAT': 'text/html'
});
if (url) {
document.getElementById('info').innerHTML =
'<iframe seamless src="' + url + '"></iframe>';
}
});
}

到目前为止,这部分工作正常。

现在将 getfeature-request 与“用户界面”(这里只是一个复选框)结合起来

var userquery = function() {
var $input = $( this );
//checkbox true/false
if($input.prop("checked")) {
//change cursor appearance
map.getViewport().style.cursor = 'help';
//getfeature-request on singleclick
getfeature('singleclick');
}
else {
//change cursor appearance, when checkbox is unchecked
map.getViewport().style.cursor = '';
//WHAT TO DO HERE???
//...
}
};

id=“cursor10”的复选框

var checkbox = document.getElementById('cursor10');

并通过添加功能

checkbox.onchange = userquery;

目前,getfeature 功能一旦激活就会继续工作。

我需要做什么,才能使 getfeature 函数在取消选中该复选框时停止工作?或者有其他方法的想法吗?

最佳答案

您可以使用unByKey() function通过其键取消注册 map 的事件监听器

参见:http://jsfiddle.net/d1wrkb95/2/

var mapEventKey;

var getfeature = function(click) {
mapEventKey = map.on(click, function (evt) {
document.getElementById('info').innerHTML = '';
var viewResolution = (view.getResolution());
var url = wms_url.getGetFeatureInfoUrl(
evt.coordinate, viewResolution, projection_to,
{
'INFO_FORMAT': 'text/html'
});
if (url) {
document.getElementById('info').innerHTML =
'<iframe seamless src="' + url + '"></iframe>';
}
});
};


var userquery = function() {
var $input = $( this );
//checkbox true/false
if($input.prop("checked")) {
//cursor ändern
map.getViewport().style.cursor = 'help';
//getfeatureabfrage bei einzelklick
getfeature('singleclick');
}
else {
map.unByKey(mapEventKey);
map.getViewport().style.cursor = '';
}
};

关于javascript - 通过按钮取消/激活 getfeature-request,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30735405/

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