Mam projekt wykorzystujący OpenLayers, który wyświetla dane radarowe na mapie. Same dane radarowe to tylko kilka wielokątów, z których każdy jest wypełniony jednym z 6 możliwych kolorów. Celem jest animacja radaru na mapie. Każdy plik zawiera dane radarowe dla danego czasu, a pliki są oddzielone przez około 5 minut, więc moim obecnym podejściem jest zapętlenie wszystkich plików i załadowanie ich jeden po drugim do nowych osobnych warstw. Po utworzeniu każdej warstwy jej widoczność jest ustawiona na false i jest dodawana do mapy. Następnie animuję warstwy za pomocą timera, który włącza widoczność jednej warstwy i wyłącza widoczność poprzedniej warstwy. Obecnie wszystkie warstwy są warstwami wektorowymi, a dane są ładowane z plików KML, chociaż pliki danych mogą mieć praktycznie dowolny format, który będzie najlepszy dla tego projektu.
Problem z tym podejściem polega na tym, że po osiągnięciu dość dużego przedziału czasu (około 3 godzin) danych (co odpowiada około 36 warstwom) zużycie pamięci staje się dość wysokie (około 250 MB). Produkt końcowy ma być w stanie obsłużyć do 18 godzin danych w jednej pętli, która w oparciu o powyższą liczbę wymagałaby ponad 1 GB pamięci tylko na animację i prawdopodobnie spowodowałaby awarię przeglądarki lub przynajmniej spowolnienie.
Próbowałem tego samego przy użyciu warstw WMS dla każdej warstwy, ale przerysowanie było zbyt wolne (animacja zmienia warstwy co 100 ms), a zużycie pamięci nie było dużo lepsze niż wersja wektorowa.
Przeszukałem sieć, próbując znaleźć jakiś przykład, jak to zrobić, ale jak dotąd wymyślam z pustymi rękami. Czy ktoś ma jakieś sugestie, jak to zrobić? Przyjmę wszelkie pomysły, które masz w tym momencie, ponieważ utknąłem w tym od tygodni bez odpowiedzi.
Czy rozważałeś uproszczenie warstw wektorowych, aby zmniejszyć ich rozmiar pliku. Jeśli wielokąty zawierają więcej wierzchołków, niż jest to potrzebne do celów wyświetlania, wówczas uproszczenie (wygładzenie) zmniejszy rozmiar pliku kosztem zmniejszenia szczegółów. Nie jestem pewien, jakie oprogramowanie masz do dyspozycji, ale kilka aplikacji komputerowych GIS zawiera funkcję geoprzetwarzania w celu uproszczenia funkcji.
źródło
Oprócz uproszczenia danych (nawet trochę może zaoszczędzić dużo miejsca) wypróbowałeś MapServer lub inny sposób przekształcania danych w kafelki z przezroczystością i tworzenia warstwy mapy, która będzie układać się na warstwie tła. Widziałem to podejście z mapami choropleth, które mają setki do setek tysięcy wielokątów (lub markerów), ale nie byłem jeszcze w stanie tego wypróbować (z powodu wymagań po stronie serwera).
źródło