Esta vez he recibido una solicitud de un cliente, quiere tener una serie de formas que indiquen países que han registrado usuarios de ese país, así que necesito formas. A continuación, marcadores que aparecen información sobre los miembros.
Pensé que era una tarea fácil, y probablemente lo es, pero luché con el módulo de mapas debido a mis limitaciones de servidor, y Google quería que mi tarjeta de crédito mostrara mis mapas.
Así que, después de actualizar composer en mi servidor resolví uno de mis problemas, los mensajes fuera de memoria que seguía recibiendo mientras intentaba instalar el módulo de geocampo.
En otras palabras, a mi servidor no le gustó este comando, eso es lo que se utiliza para instalarlo en Drupal en 2021:
compositor requieren drupal/geocampo
compositor requieren drupal/folleto
Después de actualizar compositor:
autorre actualización del compositor
Finalmente pude instalar los módulos antes mencionados.
¡En las pruebas de módulos!
A partir de ahí fui a probar las capacidades de esos 2 módulos:
- geocódigo es un tipo de campo que almacenan datos en algunos formatos, como lat-lon, WKT y algunos más
- folleto trabaja en conjunto con el campo de geocodificación para representar esos formatos
Por lo tanto, lo primero que quería hacer es simplemente mostrar un marcador, bastante fácil, establecer el widget lat-lon para la visualización del formulario, crear algún contenido en él, y añadir las coordenadas, funciona mejor con otros módulos que permiten la traducción de una dirección real en coordenadas, pero no voy a mencionar esa parte, ya que no he trabajado con eso todavía.
Entonces quería ver si podía crear formas (polígonos) que pudieran resaltar en el hover, y estar activo sólo en ciertos países. Eso fue un poco más difícil de lograr.
Lo que pasa es que no sabía cómo funciona el folleto, o qué es WKT, aunque es el acrónimo de la conocida representación de texto de la geometría. Por supuesto, como siempre Google es útil, y me permitió encontrar la información y los ejemplos necesarios.
Para dibujar una forma, solo tienes que añadir una serie de puntos dentro de una declaración como:
POLYGON ((30 10, 40 40, 20 40, 10 20, 30 10))
Donde POLYGON le dice al prospecto que tiene que conectar cada par de coordenadas y llenar el área en el medio.
Cada par representa las coordenadas lat-lon reales de cada una de ellas, la anterior sería algo así como:
lat 30 lon 10, lat 40 lon 40, lat 20 lon 40, lat 10 lon 20, lat 30 lon 10
Lenguaje bastante sencillo.
Entonces necesitaba resaltar el área, el país donde el ratón se mantiene. Lo bueno es que el prospecto dibuja con marcas HTML (ruta). Así que podría usar una directiva CSS (:hover), algo así como:
.leaflet-interactive:hover {
trazo: #234;
}
Añadiría un ejemplo en vivo, pero eh… Soy perezoso. Tal vez la próxima vez.