Z twojego doświadczenia wynika, ile elementów punktowych można dodać do warstwy wektorowej OpenLayers (nowa OpenLayers.Layer.Vector („Warstwa punktowa”)), zanim stanie się ona wyjątkowo wolna?
Moim przypadkiem użycia jest wyświetlanie punktów z tabeli bazy danych. Użytkownik może zdecydować, które ramy czasowe mają być wizualizowane. Dlatego wynik może wynosić od bardzo niewielu do potencjalnie 100 000 punktów. Chciałbym wprowadzić rozsądny limit i ostrzec użytkownika, jeśli jego zapytanie zwróci więcej funkcji.
openlayers
web-mapping
podmrok
źródło
źródło
Odpowiedzi:
Nie mam dla ciebie ostatecznej odpowiedzi, ale przygotowałem stronę, na której możesz bawić się różnymi liczbami punktów na mapie OL: http://derekswingley.com/lab/olpts/
źródło
Jeśli wyświetlanie zwalnia z powodu zbyt wysokiej liczby funkcji, oznacza to, że wyświetlane dane nie są odpowiednie dla poziomu powiększenia. Zwykle, gdy gęstość funkcji jest zbyt wysoka, wyświetlacz nie jest już czytelny (patrz ten przykład ). Nawet gdyby nie było limitu przetwarzania, a wszystkie urządzenia wyświetlające były w stanie wyświetlić 1000000000000 funkcji w 0,001 na małym ekranie, wizualizacja byłaby niemożliwa.
Prawo radix Töpfera stwierdza, że gęstość cech powinna pozostawać poniżej stałego progu, niezależnie od poziomu powiększenia. Sposobem na rozwiązanie tego problemu i dostosowanie danych do skali wizualizacji jest ich transformacja za pomocą operacji uogólnienia takich jak ta lub inna .
źródło
Nie sądzę, aby udzielenie solidnej odpowiedzi na to pytanie nie było możliwe. Punkt renderowania / wielokąty w pełni zależą od przeglądarki i sprzętu (procesor i pamięć), a nie od OpenLayers. Miałem problem z Openlayers i IE6 dla jednego z renderowania Lake (Polygon). ale ładnie ładuje się w Firefoksie. A najlepszą opcją byłoby monitorowanie pamięci i zużycia procesora w Chrome lub lepsze byłyby niektóre narzędzia.
źródło
Podobnie jak inni, nie mam odpowiedzi na to pytanie, ale zastosowanie strategii BBox może pomóc w zachowaniu tylko potrzebnych danych, ponieważ wyświetla tylko funkcje znajdujące się w danym polu ograniczającym.
źródło
W OpenLayers 6 znajduje się mechanizm renderujący punkty WebGL, który powinien umożliwiać renderowanie setek tysięcy funkcji z filtrowaniem na podstawie czasu. Możesz sprawdzić najnowszą wersję oficjalnych warsztatów pod adresem https://openlayers.org/workshop/en/webgl/ .
W przypadku OpenLayers 2, których tak naprawdę nie polecam, maksymalna akceptowalna liczba klatek wyniesie tylko kilkaset funkcji.
źródło
Natknąłem się na podobny przypadek użycia, nie jestem pewien, czy będzie on pasował do wyżej wymienionych potrzeb, ale
Clustering
w OL 5 to, co przyjąłem.Grupowanie, jak sugerują te słowa, bierze grupę punktów i łączy je razem w jednym punkcie, np. Masz 100 punktów w danym mieście, wszystkie punkty będą widoczne jako jeden punkt z powiększenia, powiedzmy,
4
ale jako pojedyncze punkty z powiększenia, powiedzmy powiedz10
więc, co możesz zrobić, gdy zoom jest w stanie4
połączyć te punkty jako jeden, co pomaga zredukować liczbę punktów do renderowania w danym obszarze.Innymi słowy, załóżmy, że masz 10 000 punktów do renderowania na mapie i są one bardzo blisko siebie, dzięki czemu możesz tworzyć ich klastry i zmniejszać renderowanie, a gdy użytkownik zbliża się, łamiesz klastry. Zapewni to mniej renderowania i lepszą wydajność.
Satysfakcjonująca wydajność. Link do przykładów grupowania w Openlayers
źródło