Uprość dane wyjściowe GeoServer WFS

12

Mam do czynienia z niektórymi dużymi zestawami danych i chciałbym zminimalizować ilość danych przesyłanych przez sieć. Korzystam ze strategii BBox OpenLayers tylko do przesyłania potrzebnych danych, ale zastanawiam się, czy mogę uprościć dane wyjściowe, aby wyświetlać niższe poziomy powiększenia bez konieczności przesyłania danych z niepotrzebną dokładnością / szczegółami.

Używam GeoServer jako serwera WFS jako części pakietu OpenGeo.

Mr_Chimp
źródło

Odpowiedzi:

8

WFS / GeoServer tak naprawdę nie zapewnia żadnego sposobu generalizacji w locie w oparciu o skalę, ale istnieje specjalne rozszerzenie, które robi to, czego szukasz, wykonując pewną pregeneralizację.

http://docs.geoserver.org/stable/en/user/data/featurepregen.html

jdeolive
źródło
1
+1 - bardzo ładne rozszerzenie. Byłoby miło mieć ekwiwalent MapServer ..
geographika
3

Niektóre możliwe rozwiązania:

  • Czy naprawdę potrzebujesz danych w formacie wektorowym? Jeśli duże złożone wielokąty są tylko w celach informacyjnych, będą dobrze jak WMS / obrazy. Jeśli możesz je uprościć, prawdopodobnie i tak nie potrzebujesz geometrii.
  • Możesz przekazać parametr uogólnienia do warstwy mapy przez niestandardowy parametr i użyć go do uproszczenia geometrii. Wątek dotyczy MapServer, ale zakładam, że coś podobnego można zrobić z GeoServer - http://osgeo-org.1803224.n2.nabble.com/WFS-Server-Control-output-by-scale-td2279383.html
  • Przywołane również w powyższym wątku, możesz przechowywać zestawy danych wstępnie uproszczone dla różnych skal i ukryć / pokazać je na mapie w razie potrzeby
  • Upewnij się, że masz włączoną kompresję gZip na swoim serwerze, ponieważ spowoduje to zmniejszenie plików GML / XML do co najmniej połowy rozmiaru
geografia
źródło
Zdecydowanie potrzebuję ich w formacie wektorowym, ponieważ chcę je kliknąć, aby uzyskać dodatkowe informacje, a także edytować wielokąty (choć oczywiście chcę tylko móc edytować prawdziwe kształty, a nie wersje uproszczone, które mogą być trochę trudne).
Mr_Chimp
1
@mr_chimp - możesz użyć żądania GetFeatureInfo WMS, aby zwrócić geometrię i atrybuty obiektu jednym kliknięciem myszy.
geographika
3

Korzystając ze strategii klastrowej OL , można uprościć reprezentację (dla użytkowników), ale ilość przesyłanych danych nie będzie mniejsza, ponieważ klastrowanie odbywa się po stronie klienta.

Zobacz także stronę dokumentacji .

(Nie wiem o dostępnych opcjach po stronie serwera)

simo
źródło
Może się mylę, ale wydaje się, że strategia klastrowa dotyczy danych punktowych. Mam złożone dane wielokątów, które chciałbym uprościć.
Mr_Chimp
Nie zmniejszyłoby to ruchu w sieci, ponieważ wszystkie punkty byłyby potrzebne do klastra po stronie klienta.
geographika
@geographika> to właśnie chciałem powiedzieć, ale jak można się domyślić zapomniałem zaprzeczenia w moim zdaniu (naprawione teraz)! Jest to nadal dobry sposób na zwiększenie czytelności dla użytkowników końcowych
podobnie
@Mr_Chimp> faktycznie nie ma odpowiednika dla wielokątów
podobnie
0

Jeśli obawiasz się, że WFS jest „ciężki” (jego wynik GML jest z natury pełny), radzę, aby zamiast tego używać Dobrze znanego tekstu (WKT), jeśli to możliwe. Myślę, że strategia BBox OpenLayers jest „kompatybilna” z WKT.

dariapra
źródło