У меня есть карта Openlayers3 с более чем одним WMS-слоем. Я хочу добавить кнопку (для каждого запрашиваемого слоя), чтобы пользователь мог решить запросить wms-слой или нет.De-/activate getfeature-request через кнопку
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-запрос с "пользовательским интерфейсом" (здесь только флажок)
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???
//...
}
};
этот флажок с идентификатором = "cursor10"
var checkbox = document.getElementById('cursor10');
и добавить функциональность с помощью
checkbox.onchange = userquery;
В настоящее время функция getfeature продолжает работать после ее активации.
Что мне нужно сделать, чтобы функция getfeature перестала работать, когда флажок снят? Или любые идеи для другого подхода?
увидеть код на http://jsfiddle.net/d1wrkb95/ активировать chekbox и нажмите на карте, чтобы получить ответ getfeature-request – MichaelJS
, не стесняйтесь принимать и/или повышать свой ответ, если он соответствует вашим ожиданиям. Искомое слово, тебе предлагается высказать свое мнение. –