Особливості зникнення точок у Geoserver із використанням WMS


10

У мене є форм-файл із приблизно 6500 пунктами по всьому світу, який я намагаюся обслуговувати з Geoserver 2.2.1 за допомогою WMS. З цим явно все добре, поки я не застосував функцію фільтрації на своєму клієнтському додатку, який використовує листівку. Коли я додаю CQL_FILTER (фільтр атрибутів, а не просторовий) до WMS-запиту, я помітив відсутні функції, коли зменшувався. Коли я збільшував зусилля, вони іноді з'являються знову, але не завжди. Дивіться зображення нижче -

Побічне порівняння

На рівні масштабу зліва Атланта не відображається. Коли я збільшую масштаб, це так. Однак іноді навіть точка в Тампа не відображається на рівні масштабування зліва. Якщо я зменшу масштаб ще на 3 рівні, точки не відображатимуться взагалі. Я не впевнений, що проблема - параметр CQL_FILTER, оскільки з 6500 балами важко помітити кілька пропущених точок у глобальному масштабі, але конкретний фільтр, який я показую тут, як приклад, фільтрує лише до 3 функцій, і коли Від 1 до 3 з них відсутня залежно від рівня збільшення, який особливо помітний.

Я можу відтворити цю саму поведінку під час попереднього перегляду власного шару геосервера, використовуючи фільтр CQL у розширених параметрах карти, тому я впевнений, що це не моя клієнтська програма.

Що стосується моїх власних кроків при налагодженні цієї проблеми, я спробував стиль / файл sld за замовчуванням, щоб виключити стилізацію власного шару. Я вимкнув усі кешування, які мені відомо. Я двічі перевірив правильність моїх проекцій - я створив файл форми в ArcGIS 10, використовуючи WGS_1984_Web_Mercator_Auxiliary_Sphere як проекцію, і шар встановлений в EPSG: 3857 в геосервері, що, на мою думку, є рівнозначним. Я також модернізував з geoserver 2.2 до 2.2.1 і мав те саме питання в обох. Я також видалив файл просторового індексу геосервера (.qix) і дозволити його відтворити, оскільки я бачив подібні проблеми в Arc з пошкодженими просторовими індексами, але очевидно, що це також не працювало.

Ось знімок із попереднього попереднього перегляду власного шару Geoserver із включеним фільтром CQL та збільшенням масштабу у тому ж районі, що показано вище. Червоне коло - приблизно там, де я повинен бачити іншу точку (Атланта).

Приклад відкритих шарів

Я спробував налаштувати будь-яку іншу установку, про яку я можу придумати, але мені не пощастило. Я також переглянув журнали геосервера та ввімкнув багатослівний журнал, і не бачу помилок / винятків. Я також не бачу жодних поганих запитів у інструментах для розробників Chrome.

Якщо мені не вистачає будь-якої критичної інформації, я надам все, що можу, але це внутрішня / непублічна програма.


1
Висновок очевидного: чи маєте ви випадково стилі, залежні від масштабів? (тобто точка відображається лише між певними масштабами)
unicoletti

1
Чи можете ви переконатися, що значення в VENUE_TYPE є дійсними / послідовними? Непослідовні результати, які ви бачите, можуть бути пов’язані з тим, що функції повертаються в іншому порядку (через незначні відмінності в bbox), і один з них якимось чином "поганий", що призводить до того, що візуалізація припиняється до того, як вона потрапить в Атланту. Це може бути розумно перевірити експорт ваших даних у інший формат, а потім 1) перевірити все, що було переміщено, як очікувалося, а потім 2) повторно протестувати ваш фільтр / візуалізацію
tomfumb

1
@unicoletti На шарі, що відображається на скріншоті, є залежність від масштабу, але я бачу такий же результат, коли використовую типовий стиль 'point', наданий Geoserver, який не має залежностей від масштабу. .
MWrenn

1
@tomfumb Я переглянув значення у стовпці VENUE_TYPE, і всі вони буквено-цифрові англійською мовою, за винятком випадкової косої риски "/" або "&". Я вийму записи з косою рисою та розширеннями і побачу, чи це має значення. Як бічну зауваження, DBF цього формату файлів закодований у UTF-8, який я також встановив у геосервері. Чи може це змінити значення?
MWrenn

4
@MWrenn Я не впевнений, тому не спробую відповісти, але експорт даних в інший формат повинен допомогти визначити, чи проблема в поточному магазині / форматі. Можливо, спробуйте відкрити свій Shp в ArcMap або QGIS, обмеживши область на скриньці вашого прикладу, а потім перевірте атрибути функцій, що містяться, - чи включають вони якісь спеціальні символи, на які може вплинути кодування?
tomfumb

Відповіді:


1

Я реалізував "рішення" - імпорт файлів форм у базу даних postGIS за допомогою shp2pqsql, який вирішив функції точки зникнення при використанні фільтра CQL. Я можу зробити такий самий запит на фільтр CQL і переглянути всі точки на всіх рівнях масштабування зараз. Тоді мені довелося налаштувати кілька автоматизованих процесів, щоб оновити базу даних PostGIS замість форм-файлів, але це зайняло лише кілька годин.

Я все ще не впевнений у першопричині зникнення точкових особливостей. Я пробував різні проектори та автори форм-файлів (QGis, ESRI, shapefile.py або pyShape або щось подібне) кожного разу з однаковим точним результатом. Я не фахівець з геосервера, тому я вагаюся назвати це помилкою, і це, мабуть, щось особливе для моєї установки, але мені вдалося відтворити на двох різних екземплярах, що працюють на двох різних комп’ютерах з геосервером під керуванням 2.2 та 2.2. 1, обидва в Windows (One Xp, на сервері 2003).

Я також не в змозі розмістити вихідні формати файлів, тому, мабуть, першопричина залишиться загадкою.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.