У меня есть шейп-файл с примерно 6 500 точками по всему миру, который я пытаюсь использовать в Geoserver 2.2.1 с использованием WMS. Все было в порядке с этим, пока я не реализовал функцию фильтрации в моем клиентском приложении, которое использует листовки. Когда я добавляю CQL_FILTER (атрибутный фильтр, а не пространственный) в запрос WMS, при уменьшении масштаба я заметил, что отсутствуют функции. Когда я увеличивал масштаб, они иногда появлялись снова, но не всегда. Смотрите изображение ниже -
На уровне масштабирования слева Атланта не отображается. Когда я увеличиваю, это так. Однако иногда даже точка в Тампе не отображается на уровне масштабирования слева. Если я уменьшу еще 3 уровня, точки вообще не будут отображаться. Я не уверен, что проблема заключается в параметре CQL_FILTER, так как с 6500 точками трудно заметить несколько пропущенных точек в глобальном масштабе, но конкретный фильтр, который я показываю здесь в качестве примера, фильтрует только до 3 функций, и когда От 1 до 3 из них отсутствуют в зависимости от уровня масштабирования, это особенно заметно.
Я могу воссоздать такое же поведение в предварительном просмотре слоя собственного геосервера с помощью фильтра CQL в дополнительных параметрах карты, поэтому я вполне уверен, что это не мое клиентское приложение.
Что касается моих собственных шагов по отладке этой проблемы, я попробовал файл стиля / sld по умолчанию, чтобы исключить мой собственный стиль слоя. Я отключил все кэширование, которое мне известно. Я дважды проверил правильность моих проекций - я создал шейп-файл в ArcGIS 10, используя WGS_1984_Web_Mercator_Auxili_Sphere в качестве проекции, и для слоя задано значение EPSG: 3857 в геосервере, что, я думаю, эквивалентно. Я также обновил геосервер 2.2 до 2.2.1, и у меня была та же проблема в обоих. Я также удалил файл пространственного индекса геосервера (.qix) и позволил ему воссоздать его, поскольку я видел похожие проблемы в Arc с поврежденными пространственными индексами, но, очевидно, это тоже не сработало.
Вот снимок из собственного предварительного просмотра слоя Geoserver с включенным фильтром CQL и увеличенным в той же области, как показано выше. Красный круг примерно там, где я должен видеть другую точку (Атланта).
Я пытался настроить все остальные настройки, о которых я могу думать, но мне не повезло. Я также просматривал журналы геосерверов и включал подробные журналы, и не вижу никаких ошибок / исключений. Я также не вижу плохих запросов в инструментах разработчика Chrome.
Если мне не хватает какой-либо важной информации, я предоставлю все, что смогу, но это внутреннее / непубличное приложение.