Estoy migrando de un mapa de folletos a capas abiertas. Mi mapa requiere que muestre alrededor de 12k marcadores en este momento y esta cantidad podría crecer hasta alrededor de 60k (la mayoría de los marcadores se giran en varios ángulos).
En folleto, después de muchos intentos lo he logrado. leaflet-canvas-markers con mi propia implementación de caché, por lo que finalmente puede mostrar 12k elementos sin fallas visibles (en una computadora relativamente fuerte).
Ahora estoy tratando de volver a implementarlo con capas abiertas. Veo los marcadores de Icon y la visualización de RegularShape en un lienzo, es genial, pero el rendimiento aún está por debajo del requerido, aquí está la demostración de codepen (simplemente aumente a 30k marcadores, por ejemplo, si su computadora es demasiado rápida):
https://codepen.io/zxwild/pen/KKyRRKv
La pregunta es: ¿Cómo aumentar el rendimiento para mostrar marcadores de 15k-60k?
En mi propia implementación, uso un lienzo oculto, que contiene todas las posibles variantes de marcadores, y las variantes rotadas también se almacenan en caché.
Entonces, cuando necesito volver a dibujar un marcador, solo recupero una sección requerida de este caché de lienzo por X e Y y la copio en un lienzo de mapa, es una operación muy rápida.
Primero, realmente sugiero que considere la posibilidad de agrupar en clústeres; de todos modos, el mapa será más legible con él.
En segundo lugar, si la mayoría de las personas no comienzan con una visión global del mundo, se beneficiará mucho del uso de teselas vectoriales, especialmente con geojson-vt y, finalmente, supercluster para la agrupación en clústeres del lado del servidor que le permitirá reducir drásticamente la cantidad de datos cargados desde el servidor.