OpenLayers5: похоже, что hitTolerance не работает со слоем WMS - PullRequest
0 голосов
/ 05 июля 2018

Я новичок в OpenLayers, так как только что попробовал перенести свою карту с Leaflet на OL, поскольку hitTolerance - это именно то, что я искал. Кроме того, я понимаю, что v5 является довольно новым, так что мои документы не полностью обновлены в моем опыте.

Я не могу заставить hitTolerance работать со слоями WMS.

Я понимаю, что начиная с версии 5 теперь вы можете указать hitTolerance в forEachLayerAtPixel, но мне все равно нужно довольно точно попасть в слой, чтобы он был подхвачен forEachLayerAtPixel.

Я тоже пытался forEachFeatureAtPixel, но это мне ничего не дало, никогда. Есть ли у слоев WMS функции?

Я пробовал оба с TileLayer/TileWMS и ImageLayer/ImageWMS. Оба ведут себя одинаково. Используя forEachLayerAtPixel даже с hitTolerance из 100 Мне все еще нужно быть очень точным, чтобы попасть в слой.

Я что-то не так делаю? Я не знаю, является ли это ошибкой, или hitTolerance просто не работает со слоями WMS. Любая помощь будет оценена. Спасибо.

1 Ответ

0 голосов
/ 05 июля 2018

hitTolerance применяется к векторным данным. OL берет ваши координаты клика и ищет ближайшие объекты.

При работе с WMS OL не знает функций, а просто отображает изображение. Он просто отправляет координаты щелчка на картографический сервер, который может применить к нему буфер или нет, и возвращает информацию о найденных функциях.

Итак, для WMS допуск попадания - это настройка сервера, а не клиента.

Например, вот соответствующий документ для Geoserver.

...