5 votos

¿Cuándo es recomendable aplicar estilos a tus características en Tilemill en comparación con Leaflet?

Generalmente he encontrado que esto depende de los objetivos de cada proyecto (o lo que el cliente quiere), pero cuando tienes opciones, ¿qué reglas generales o pautas utilizas en un proyecto para determinar si:

  • usar/estilizar un mapa base en Tilemill/tilemill2; crear una capa separada dentro de TM con tus datos únicos que planeas superponer en el mapa base; estilizar los datos dentro de TM2.

  • usar un mapa base en Tilemill/tilemill2, cargarlo en leaflet, agregar las características de un archivo geojson en leaflet con los estilos de las características en el propio archivo geojson.

  • usar un mapa base en Tilemill/tilemill2, cargarlo en leaflet, agregar las características de un archivo geojson en leaflet y luego estilizar las características en el javascript en la página.

En casos en los que estás estilizando muchas características (¿más de cien?), agregaría todo dentro de Tilemill ya que no estás lidiando con la renderización del lado del cliente.

En casos donde tus características son menos de 10 o así, creo que deberías estilizarlas dentro del archivo html.

¿Qué otros factores debo tener en cuenta al considerar estos enfoques?

(Estoy usando TM y tm2 de manera intercambiable aquí; soy consciente de que son programas separados)

8voto

Gatsu Puntos 95

Todavía hay mucha subjetividad en juego, pero creo que una respuesta general a tu pregunta es que cada día es más fácil usar GeoJSON directamente en un mapa leaflet sin realizar mosaicos, y en última instancia, este es un buen rumbo para que vayan los mapas interactivos.

Por lo tanto, tiendo a construir mapas usando tu tercera opción mencionada anteriormente.

Esto viene con algunas advertencias. Ya mencionaste el tamaño del archivo. He encontrado un límite estricto de alrededor de 6MB en archivos geojson cargados directamente en leaflet antes de que el navegador se detenga por completo, por lo que cualquier cosa más grande que eso generalmente necesita ser convertida en mosaicos.

También - y tal vez la consideración más importante - es que los estilos Mapnik y los estilos SVG son dos bestias bastante distintas, aunque hay una área gris creciente entre ellos. Tilemill incorpora Mapnik en la ecuación (en realidad CartoDB también lo hace), junto con sus funciones correspondientes para filtrar, componer, mezclar y una perdiz en un peral. Los estilos SVG son básicos en comparación, pensados para renderizar de manera escalable elementos en toda la página web, no solo en tu cartografía fantasiosa. Por lo general, encuentro limitantes los estilos SVG (como los incorporados en Leaflet) cuando realmente quiero complicar un mapa. Dicho esto, es difícil discutir con el nivel de interacción que se puede lograr cuando cada característica de geojson está disponible como un elemento DOM en la página.

Recientemente creé una interactiva que requería que jonglear con todas estas consideraciones, y puedes ver que opté por geojson vectorial para la mayoría de las capas. Sin embargo, la capa de "Tipos de Suelo" era demasiado detallada y requería demasiado estilo para ser incorporada de esa manera, por lo que la dividí en mosaicos.

De todas maneras, excelente pregunta. Este espacio está cambiando rápidamente.

4voto

Haciendo eco de Bill: depende.

Diría que nunca/rara vez elijo la segunda opción. Mantén tus datos y estilos separados.

Las opciones primera y tercera podrían reformularse como "¿cuándo debo usar un servicio para renderizar características de mapas?" y "¿cuándo debo usar Leaflet para renderizar características de mapas en el navegador?"

Para mí, intento hacer la tercera opción siempre que pueda. Renderizar características en el navegador te brinda una flexibilidad adicional al filtrar y dar estilos a las características dinámicamente. Y depende menos de otro servicio, lo que puede simplificar la logística (otro inicio de sesión, cómo llegan los datos allí, qué pasa si el servicio se cae), las finanzas y las limitaciones de espacio.

Dicho esto, a menudo termino haciendo la primera opción (pero generalmente con CartoDB). ¿Por qué? A veces simplemente hay demasiados datos para renderizar en el navegador. Siento que noto esto cuando supero las 1000 características, pero no he realizado experimentos exhaustivos al respecto.

2voto

mpmckenna8 Puntos 31

Realmente depende del proyecto y del tipo de datos que estés utilizando (y de lo que sepas cómo usar) pero Tom Macwright creó esta útil y sencilla hoja de trucos para creadores de mapas: https://github.com/tmcw/mapmakers-cheatsheet

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X