Co lepiej wybrać? WMS lub WFS

9

Muszę wybrać warstwę (warstwy) i zastanawiam się, w jaki sposób powinienem podać tę warstwę.

Wymagania są takie, że muszę być w stanie wybrać wiele elementów jednocześnie, rysując pole lub wielokąt. Powinny zostać wyróżnione i powinienem wyświetlić dane wszystkich funkcji. Nie muszę ich edytować.

Używam geoserver i openlayers

Nate
źródło
Czy udało Ci się uruchomić tę aplikację? Chciałem wiedzieć, jak można to wdrożyć?
Sam007
W przypadku opisywanego wyboru możliwy jest tylko WFS. W przypadku WMS możesz dokonać wyboru w lokalizacji punktowej lub możesz wybrać według niektórych znanych atrybutów / atrybutów i ponownie utworzyć symbol za pomocą SLD.
nmtoken

Odpowiedzi:

9

Wygląda na to, że chcesz przechowywać wektory w przeglądarce i sprawdzać je po stronie klienta. Aby to zrobić, musisz użyć WFS.

Jednym zastrzeżeniem jest to, że przeglądarki mają ograniczenia dotyczące liczby wektorów, które mogą wyświetlać jednocześnie. Jeśli masz do czynienia z dużymi lub skomplikowanymi zestawami danych, być może jedyną opcją będzie użycie WMS. Byłoby to jednak bardziej skomplikowane do wdrożenia, ponieważ zapytania musiałyby być wykonywane po stronie serwera.

canisrufus
źródło
7
faktycznie OpenLayers nie ma limitu liczby funkcji, które może wyświetlić, przeglądarki mają ograniczenia liczby funkcji, które mogą wyświetlić.
Ian Turton
2
Maksymalna liczba funkcji będzie zależeć nie tylko od przeglądarki internetowej, ale także od funkcji komputera klienckiego, takich jak procesor lub pamięć RAM. Biorąc to pod uwagę, ty, programista, nie wiesz, na jakim komputerze klienckim uruchomisz „twoją” przeglądarkę map opartą na OpenLayers, zachowując ostrożność przy szacowaniu tego limitu, jest wskazane.
dariapra
1
Wydaje mi się, że WMS ładnie spełni swój cel. Zachowaj skomplikowane przetwarzanie po stronie serwera (jeśli to możliwe), a renderowanie wyników po stronie klienta. Będziesz miał lepszą wydajność i nadal będziesz mógł używać skryptowych filtrów, takich jak Skrzyżowania, Zawarte, Wewnątrz itp. Spójrz na geoserver.
OptimizePrime
2
Sugeruję, abyś zastosował się do jednego z paradygmatów. 1. Klient Pobiera dane i przetwarza je odpowiednio, serwer obsługuje tylko dane (WFS). 2. Klient zajmuje się tylko renderowaniem, serwer wykonuje zadania przetwarzania / zapytania i dostarcza wynik (WMS). Oba mają plusy i minusy, ale nie mętnieją procesu i nie pobierają danych (WFS), a serwer zleca również przetwarzanie / zapytania. Stwarza to niepotrzebne koszty ogólne i komplikuje sytuację
OptimizePrime
@iant: Rozumiem, że openlayers nie ma ograniczenia liczby funkcji, które może wyświetlić. Myślę, że obaj możemy się zgodzić, że ma jednak ograniczenia;)
canisrufus
5

Jeśli masz już dane wizualne, takie jak mapa bazowa i potrzebujesz tylko wybrać funkcje, WFS działałby bardzo dobrze. Chociaż jeśli potrzebujesz komponentu wizualnego, aby przejść razem z wyborem, lepiej byłbyś obsługiwany przez usługę WMS, ponieważ została stworzona do tego.

Chociaż słyszę opisany przypadek użycia, osobiście skorzystałbym z usługi WMS.

Również GeoServer Blog jako wielki write-up na dwóch usług i kiedy powinien powinien je wykorzystać.

Edycja: Z dodatkowej uwagi, jeśli robisz coś innego niż zwykłe sprawdzanie danych funkcji, ja generalnie używam WFS, wyróżnia się, jeśli chodzi o manipulowanie danymi w porównaniu z innymi usługami OGC, z których ostatnio korzystałem. Weź to również z odrobiną soli, tego właśnie doświadczyłem podczas korzystania z usług, dlatego dołączyłem poprzednie i następne linki.

Normy OGC:
WMS
WFS

dkroy
źródło
+1 za link o tym, kiedy wykorzystać rodzaje usług.
OptimizePrime
Myślę, że jest literówka. Twoje drugie wystąpienie „WFS” wydaje się brzmieć „WMS”.
canisrufus
Dzięki, że tak się stało, że edytowałem, aby naprawić przepływ zdań, a potem uważam, że przypadkowo zmieniłem to, co pierwotnie chciałem powiedzieć.
dkroy