1 votos

¿Cómo hacer polígonos resaltados al hacer clic en el mapa Leaflet desde el plugin qgis2web?

He generado el mapa web Leaflet utilizando el plugin qgis2web en el software qgis. El mapa contiene polígonos. Ahora quiero que los polígonos se resalten cuando haga clic en cada uno y que permanezcan resaltados hasta que haga clic en otro. Quiero saber qué parte del código debo cambiar. He intentado activar la opción "Resaltar al pasar el ratón" cuando ejecuto el plugin qgis2web, pero el polígono se resalta sólo al pasar el ratón, no al hacer clic.

Tenga en cuenta que estoy usando qgis 3.0 y la última versión de qgis2web

2voto

Alexander Riccio Puntos 143

Esto se responde en gran medida aquí: https://stackoverflow.com/questions/21029533/reset-style-on-leaflet-polygon-on-click#21032302 . Sin embargo, aquí se explica cómo hacerlo específicamente en una exportación de Leaflet de qgis2web.

En primer lugar, asegúrate de que la opción "Resaltar al pasar el ratón" está marcada al exportar el mapa con qgis2web. A continuación, edita index.html del mapa exportado. Encuentra el siguiente código:

function highlightFeature(e) {
    highlightLayer = e.target;

Sustitúyelo por:

function highlightFeature(e) {
    if (highlightLayer) {
        for (i in e.target._eventParents) {
            e.target._eventParents[i].resetStyle(highlightLayer);
        }
    }
    highlightLayer = e.target;

A continuación encuentra el siguiente código:

layer.on({
    mouseout: function(e) {
        for (i in e.target._eventParents) {
            e.target._eventParents[i].resetStyle(e.target);
        }
    },
    mouseover: highlightFeature,
});

Sustitúyelo por esto:

layer.on({
    click: highlightFeature,
});

Con eso debería bastar.

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