Saltar al contenido

Mapbox GL JS frente a Mapbox.js

Solución:

Hasta donde yo sé, Mapbox GL JS va a ser el reemplazo del Mapbox JS actual que usa Leaflet en segundo plano. Muchas de las cosas que hace Leaflet, GL también las puede hacer y más. Pero no todo. Lo mismo ocurre al revés. GL puede hacer cosas que Leaflet no puede hacer. Lo más importante de GL es que se basa en mosaicos vectoriales utilizando WebGL. Del artículo de introducción:

Anuncio de Mapbox GL JS, un nuevo sistema rápido y potente para mapas web. Mapbox GL JS es un renderizador del lado del cliente, por lo que utiliza JavaScript y WebGL para dibujar datos dinámicamente con la velocidad y fluidez de un videojuego. En lugar de corregir estilos y niveles de zoom a nivel de servidor, Mapbox GL potencia JavaScript, lo que permite un estilo dinámico e interactividad de forma libre. Los mapas vectoriales son la próxima evolución y estamos emocionados de ver lo que los desarrolladores construyen con este marco.

Si realmente desea una comparación lado a lado de los dos, lamento que no haya ninguno que yo sepa. Hay demasiadas cosas que mencionar / considerar al hacer una comparación, por lo que es mejor que lo haga usted mismo en función de sus propios requisitos. Un buen comienzo sería comparar los ejemplos de cada marco porque da una buena idea de lo que ambos pueden hacer:

  • https://www.mapbox.com/mapbox-gl-js/examples/
  • https://www.mapbox.com/mapbox.js/example/v1.0.0/

Después de eso, podrías comparar sus API:

  • https://www.mapbox.com/mapbox-gl-js/api/
  • https://www.mapbox.com/mapbox.js/api/v2.2.4/

Una cosa a tener en cuenta es que GL es completamente nuevo y, como todos los desarrolladores sabemos, eso tiene un precio. Algunos problemas no se han solucionado. En cuanto a Leaflet, es muy maduro, ampliamente utilizado y muy bien probado. Si desea echar un vistazo a los problemas que hay actualmente con GL, puede echar un vistazo a los problemas en Github, en el repositorio:

  • https://github.com/mapbox/mapbox-gl-js/issues

Espero que ayude, buena suerte!

La respuesta de iH8 es excelente, para agregar un poco más de detalle:

Para mapas base, Mapbox.js muestra archivos de mosaicos ráster (PNG y JPEG) y los muestra mediante HTML y CSS. Mapbox GL JS muestra mosaicos vectoriales (búferes de protocolo sofisticados) y los muestra usando WebGL. También puede mostrar mosaicos ráster, pero ese no es el foco.

Tanto Mapbox.js como Mapbox GL JS admiten superposiciones como capas y marcadores GeoJSON. Ambos son de código abierto, con licencias similares y algunos colaboradores compartidos.

Los estilos de las capas de Mapbox.js se almacenan en servidores y se procesan con tecnología de servidor. Los estilos de Mapbox GL JS se representan dinámicamente en un navegador, por lo que se pueden cambiar en tiempo real.

Leaflet tiene un soporte de navegador más amplio, a costa de algunas cosas que algunos navegadores no pueden admitir, como la inclinación y rotación del mapa. Mapbox GL admite navegadores compatibles con WebGL y funciona mejor en computadoras más nuevas. Tiene una versión nativa, llamada Mapbox GL Native, que funciona muy bien en todos los teléfonos móviles.

A pesar de los nombres, puede usar Leaflet con Mapbox y Mapbox.js y Mapbox GL con estilos que no sean de Mapbox.

Actualmente estoy trabajando para cambiar un sistema de mapas complejo basado en folletos a Mapbox GL y diría que una diferencia notable que he encontrado está en las herramientas de dibujo y el manejo de las capas GeoJSON. Leaflet tiene un conjunto de herramientas de dibujo que incluyen GeoJSON no estándar como marcadores, rectángulos y círculos. Los desarrolladores de Mapbox GL tomaron la decisión de centrarse en GeoJSON nativo, lo que significa que no hay soporte listo para usar para dibujar / renderizar círculos y rectángulos (por ejemplo, no hay nada como L.Circle en Mapbox GL); hay un marcador, pero darle estilo para que se vea como un marcador de Folleto tradicional requiere crear tus propios sprites o usar un SVG. Todas estas cosas todavía son posibles, pero requieren un poco más de configuración por parte del desarrollador que en Leaflet.

Además, la mayoría de las capas de Mapbox GL se representan como elementos de lienzo. Esto significa que, a diferencia de Leaflet, no hay elementos HTML asociados con sus diversas capas. Esto hace que sea más difícil apuntar a los elementos con CSS si es necesario. Una excepción que he encontrado aquí son los marcadores que se representan como elementos HTML separados.

Dicho todo esto, he podido replicar casi por completo las herramientas de dibujo existentes y los estilos de renderizado con algunas pequeñas diferencias. Si necesita herramientas de dibujo altamente personalizadas, Mapbox GL puede resultarle frustrante.

La compatibilidad con el navegador también se ha mencionado como un problema potencial. Cualquier navegador que admita WebGL puede ejecutar Mapbox GL. Esto incluye todos los navegadores principales. El único conjunto de navegadores significativo que vimos que no era compatible con Mapbox GL era IE10 o anterior, pero nuestros análisis indicaron que casi ninguno de nuestros usuarios todavía usaba estos navegadores, por lo que oficialmente dejamos de admitirlos. Su kilometraje puede variar obviamente.

Sin embargo, en general, estoy contento con el cambio porque creo que es más fácil trabajar con Mapbox GL y proporciona una mejor experiencia de usuario.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *