Mam plik kształtu z około 6500 punktami na całym świecie, który próbuję obsłużyć w Geoserver 2.2.1 przy użyciu WMS. Wszystko było w porządku, dopóki nie zaimplementowałem funkcji filtrowania w mojej aplikacji klienckiej, która korzysta z ulotki. Kiedy dołączam CQL_FILTER (filtr atrybutów, a nie przestrzenny) do zapytania WMS, zauważyłem brak funkcji po pomniejszeniu. Kiedy powiększyłem widok, czasem się pojawiały, ale nie zawsze. Zobacz zdjęcie poniżej -
Na poziomie powiększenia po lewej stronie Atlanta nie jest wyświetlana. Kiedy powiększam, to jest. Czasami jednak nawet punkt w Tampie nie jest wyświetlany na poziomie powiększenia po lewej stronie. Jeśli pomniejszę 3 kolejne poziomy, żadne punkty w ogóle nie będą wyświetlane. Nie jestem pewien, czy problemem jest parametr CQL_FILTER, ponieważ przy 6500 punktach trudno zauważyć kilka brakujących punktów w skali globalnej, ale konkretny filtr, który pokazuję tutaj jako przykład, filtruje tylko 3 funkcje, a kiedy Brakuje 1 do 3 z nich, w zależności od stopnia powiększenia, który jest szczególnie zauważalny.
Mogę odtworzyć to samo zachowanie w podglądzie własnej geoservera za pomocą filtra CQL w zaawansowanych opcjach mapy, więc jestem całkiem pewien, że nie jest to moja aplikacja kliencka.
Jeśli chodzi o własne kroki związane z debugowaniem tego problemu, wypróbowałem domyślny plik stylu / sld punktów, aby wykluczyć własne style warstw. Wyłączyłem wszystkie buforowanie, o którym wiem. Dokładnie sprawdziłem, czy moje projekcje są prawidłowe - utworzyłem plik kształtu w ArcGIS 10, używając WGS_1984_Web_Mercator_Auxiliary_Sphere jako projekcji, a warstwa jest ustawiona na EPSG: 3857 w geoserver, co moim zdaniem jest równoważne. Uaktualniłem także z geoserver 2.2 do 2.2.1 i miałem ten sam problem w obu. Usunąłem również plik indeksu przestrzennego geoservera (.qix) i pozwoliłem go odtworzyć, ponieważ widziałem podobne problemy w Arc z uszkodzonymi indeksami przestrzennymi, ale oczywiście to też nie działało.
Oto migawka z własnego podglądu warstwy Geoservera z włączonym filtrem CQL i powiększonym do tego samego obszaru, jak pokazano powyżej. Czerwone kółko jest mniej więcej tam, gdzie powinienem zobaczyć inny punkt (Atlanta).
Próbowałem ulepszyć każde inne ustawienie, o jakim tylko mogę pomyśleć, ale nie mam szczęścia. Przeglądałem również dzienniki geoservera i włączyłem pełne rejestrowanie i nie widzę żadnych błędów / wyjątków. Nie widzę też złych próśb w narzędziach programistycznych Chrome.
Jeśli brakuje mi krytycznych informacji, podam, co mogę, ale jest to aplikacja wewnętrzna / niepubliczna.