En su experiencia, ¿cuántas entidades de puntos se pueden agregar a una capa vectorial de OpenLayers (nuevo OpenLayers.Layer.Vector ("Capa de puntos")) antes de que se vuelva inusualmente lenta?
Mi caso de uso es mostrar puntos de una tabla de base de datos. El usuario puede decidir qué marco de tiempo visualizar. Por lo tanto, el resultado puede ser de muy pocos a potencialmente 100.000 puntos de puntos. Me gustaría introducir un límite razonable y advertir al usuario si su consulta devolvería más funciones.
openlayers
web-mapping
bajo oscuro
fuente
fuente
Respuestas:
No tengo una respuesta definitiva para ti, pero te puse una página donde puedes jugar con diferentes números de puntos en un mapa OL: http://derekswingley.com/lab/olpts/
fuente
Si la visualización se vuelve lenta debido al número de función demasiado alto, significa que los datos a mostrar no son adecuados para el nivel de zoom. Por lo general, cuando la densidad de las funciones es demasiado alta, la pantalla ya no se puede leer (consulte este ejemplo ). Incluso si no hubiera un límite de procesamiento y todos los dispositivos de visualización pudieran mostrar las características 1000000000000 en 0.001s en una pantalla pequeña, la visualización seguiría siendo imposible.
La ley de radix de Töpfer establece que la densidad de características debe permanecer por debajo de un umbral constante, sea cual sea el nivel de zoom. Una forma de resolver este problema y adaptar los datos a la escala de visualización es transformarlo utilizando operaciones de generalización como esta u otra .
fuente
No creo que sea posible dar una respuesta sólida a esta pregunta. Los polígonos / puntos de representación dependen completamente del navegador y el hardware (CPU y memoria) no con OpenLayers. Tuve problemas con Openlayers e IE6 para uno de los renderizados de Lake (Polygon). pero, se cargó muy bien en Firefox. Y la mejor opción sería monitorear el uso de la memoria y la CPU con Chrome o algunas herramientas serían mejores.
fuente
Como otros, no tengo respuesta con respecto a esa pregunta, pero la aplicación de una estrategia BBox podría ayudarlo a mantener solo los datos necesarios, ya que muestra solo las características ubicadas dentro del cuadro delimitador dado.
fuente
En OpenLayers 6, hay un renderizador de puntos WebGL que debería permitirle renderizar cientos de miles de características, con filtrado basado en el tiempo. Puede consultar la última versión del taller oficial en https://openlayers.org/workshop/en/webgl/ .
Con OpenLayers 2, que realmente no recomiendo usar más, el máximo de velocidad de fotogramas aceptable será de unos pocos cientos de características.
fuente
Me topé con un caso de uso similar, no estoy seguro de si satisfará las necesidades mencionadas anteriormente, pero
Clustering
en OL 5 es lo que adopté.La agrupación, como sugieren las palabras, toma un grupo de puntos y los fusiona en un solo punto, por ejemplo, tiene 100 puntos en una ciudad en particular, todos los puntos serán visibles como un punto desde un zoom de, digamos,
4
pero como puntos individuales desde un zoom de digamos10
que lo que puedes hacer es cuando el zoom es4
que puedes unir esos puntos como uno solo, lo que esto hace ayuda a reducir la cantidad de puntos que se representarán en un área en particular.En otras palabras, supongamos que tiene 10.000 puntos para representar en el mapa y están bastante cerca uno del otro, por lo que puede hacer grupos de ellos y reducir la representación y cuando el usuario hace zoom, sigue rompiendo los grupos. Esto asegurará que tenga menos renderizado y un mejor rendimiento.
Rendimiento satisfactorio. Enlace a ejemplos de Clustering en Openlayers
fuente