Используя кусок кода из этого примера: < /p>
map.on('singleclick', function (evt) {
document.getElementById('info').innerHTML = '';
const viewResolution = /** @type {number} */ (view.getResolution());
const url = wmsSource.getFeatureInfoUrl(
evt.coordinate,
viewResolution,
'EPSG:3857',
{'INFO_FORMAT': 'text/html'},
);
if (url) {
fetch(url)
.then((response) => response.text())
.then((html) => {
document.getElementById('info').innerHTML = html;
});
}
});
map.on('pointermove', function (evt) {
if (evt.dragging) {
return;
}
const data = wmsLayer.getData(evt.pixel);
const hit = data && data[3] > 0; // transparent pixels have zero for data[3]
map.getTargetElement().style.cursor = hit ? 'pointer' : '';
});
< /code>
Я пытаюсь получить информацию от одного уровня WMS (также несколько слоев) на Hover вместо использования «Singleclick». Вот текущий код для этого: < /p>
let layers;
let pixel;
map.on('pointermove', function (evt) {
if (evt.dragging) {
return;
}
//const data = ?????.getData(evt.pixel);
//const hit = data && data[3] > 0; // transparent pixels have zero for data[3]
//map.getTargetElement().style.cursor = hit ? 'pointer' : '';
let pgPattern = "_pg";
const layers = map.getAllLayers().filter(function (layer) {
return layer.get('name');
});
const viewResolution = (view.getResolution());
let url;
let mygeojson;
layers.forEach(function (layer, i, layers) {
if (layer.getVisible() && layer.get('name').match(pgPattern)) {
url = layer.getSource().getFeatureInfoUrl(
evt.coordinate,
viewResolution,
'EPSG:4326',
{'INFO_FORMAT': 'geojson'},
);
}
if (url) {
fetch(url)
.then((response) => response.json())
.then((mygeojson) => {
if (mygeojson && mygeojson.features.length > 0) {
const pixel = map.getEventPixel(evt.originalEvent);
info.style.left = pixel[0] + 'px';
info.style.top = pixel[1] + 'px';
info.style.visibility = 'visible';
info.innerText =
"id_estacion: "+mygeojson.features[0].properties.id_estacion +"\n"+
"muestreo: "+mygeojson.features[0].properties.muestreo +"\n"+
"descripcion_abordo: "+mygeojson.features[0].properties.descripcion_abordo;
}
})
}
})
});
map.getTargetElement().addEventListener('pointerleave', function () {
info.style.visibility = 'hidden';
});
< /code>
Я застрял в том, как решить неустойчивое поведение указателя после получения информации из слоя WMS (т.е. наклонение на функции слоя WMS). < /p>
Как я могу адаптировать код для решения этого? Здесь изображение проблемы:
Подробнее здесь: https://stackoverflow.com/questions/795 ... ointermove
Как адаптировать wms getfeatureinfo 'singleclick' для использования Hover ('pointrodeove') ⇐ Javascript
Форум по Javascript
1743345679
Anonymous
Используя кусок кода из этого примера: < /p>
map.on('singleclick', function (evt) {
document.getElementById('info').innerHTML = '';
const viewResolution = /** @type {number} */ (view.getResolution());
const url = wmsSource.getFeatureInfoUrl(
evt.coordinate,
viewResolution,
'EPSG:3857',
{'INFO_FORMAT': 'text/html'},
);
if (url) {
fetch(url)
.then((response) => response.text())
.then((html) => {
document.getElementById('info').innerHTML = html;
});
}
});
map.on('pointermove', function (evt) {
if (evt.dragging) {
return;
}
const data = wmsLayer.getData(evt.pixel);
const hit = data && data[3] > 0; // transparent pixels have zero for data[3]
map.getTargetElement().style.cursor = hit ? 'pointer' : '';
});
< /code>
Я пытаюсь получить информацию от одного уровня WMS (также несколько слоев) на Hover вместо использования «Singleclick». Вот текущий код для этого: < /p>
let layers;
let pixel;
map.on('pointermove', function (evt) {
if (evt.dragging) {
return;
}
//const data = ?????.getData(evt.pixel);
//const hit = data && data[3] > 0; // transparent pixels have zero for data[3]
//map.getTargetElement().style.cursor = hit ? 'pointer' : '';
let pgPattern = "_pg";
const layers = map.getAllLayers().filter(function (layer) {
return layer.get('name');
});
const viewResolution = (view.getResolution());
let url;
let mygeojson;
layers.forEach(function (layer, i, layers) {
if (layer.getVisible() && layer.get('name').match(pgPattern)) {
url = layer.getSource().getFeatureInfoUrl(
evt.coordinate,
viewResolution,
'EPSG:4326',
{'INFO_FORMAT': 'geojson'},
);
}
if (url) {
fetch(url)
.then((response) => response.json())
.then((mygeojson) => {
if (mygeojson && mygeojson.features.length > 0) {
const pixel = map.getEventPixel(evt.originalEvent);
info.style.left = pixel[0] + 'px';
info.style.top = pixel[1] + 'px';
info.style.visibility = 'visible';
info.innerText =
"id_estacion: "+mygeojson.features[0].properties.id_estacion +"\n"+
"muestreo: "+mygeojson.features[0].properties.muestreo +"\n"+
"descripcion_abordo: "+mygeojson.features[0].properties.descripcion_abordo;
}
})
}
})
});
map.getTargetElement().addEventListener('pointerleave', function () {
info.style.visibility = 'hidden';
});
< /code>
Я застрял в том, как решить неустойчивое поведение указателя после получения информации из слоя WMS (т.е. наклонение на функции слоя WMS). < /p>
Как я могу адаптировать код для решения этого? Здесь изображение проблемы:
Подробнее здесь: [url]https://stackoverflow.com/questions/79544731/how-to-adapt-wms-getfeatureinfo-singleclick-to-use-hover-pointermove[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия