Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

421
Vistas
Cómo agregar una ventana emergente al hacer clic en la capa usando Vue3 y el folleto

Estoy creando una aplicación web usando Vue 3 y Leaflet. Yo uso el complemento vue-leaflet .

Tengo un mapa de fondo y capas superpuestas, es decir, capas de mosaico WMS servidas por Geoserver.

Ahora quiero que se abra una ventana emergente en la ubicación (latitud, longitud) donde hago clic en la capa. Para el complemento vue-leaflet, solo pude encontrar ejemplos para agregar una ventana emergente a marcadores, círculos o geometrías, pero ningún ejemplo para ventanas emergentes en capas.

Para empezar, traté de definir una función de folleto que agrega una ventana emergente al mapa cuando se ejecuta un evento de clic. pero eso me tira un error. Encuentre el fragmento de código relevante y el registro de errores adjuntos.

¿Alguna idea de cómo abordar esto? ¿Usando el complemento vue-leaflet o el script de folleto puro?

Me alegra cualquier idea =)

//HTML

 <div id="bg-map"> <l-map ref="map" v-model="zoom" v-model:zoom="zoom" :center="center" :options="{zoomControl:false, attributionControl:false}" :minZoom="minzoom" @click="addPopUp" > <!-- Layers from Geoserver as cached tile layers: --> <l-wms-tile-layer v-for="wmsLayer in getCheckedLayers" :key="wmsLayer.path" :layers="wmsLayer.path" :format="format_tile" :transparent="true" :tiled="true" :zIndex="wmsLayer.zindex" :base-url="wmsurl" :visible="true" :opacity="wmsLayer.opacity" > </l-wms-tile-layer>

// JS

 methods: { addPopUp(e) { const map = this.$refs.map.leafletObject; var popLocation = e.latlng; var popup = new L.popup() .setLatLng(popLocation) .setContent('<p> Hello popup </p>') .openOn(map) },

// registro de errores

 Uncaught TypeError: Failed to execute 'appendChild' on 'Node': parameter 1 is not of type 'Node'. at NewClass._updateContent (leaflet-src.esm.js?6bb3:9617:1) at NewClass.update (leaflet-src.esm.js?6bb3:9528:1) at NewClass.onAdd (leaflet-src.esm.js?6bb3:9465:1) at NewClass.onAdd (leaflet-src.esm.js?6bb3:9751:1) at NewClass._layerAdd (leaflet-src.esm.js?6bb3:6561:1) at Proxy.whenReady (leaflet-src.esm.js?6bb3:4422:1) at Proxy.addLayer (leaflet-src.esm.js?6bb3:6623:1) at Proxy.openPopup (leaflet-src.esm.js?6bb3:9975:1) at NewClass.openOn (leaflet-src.js?e11e:9752:1) at Proxy.addPopUp (BGMap.vue?112f:315:1)
about 4 years ago · Juan Pablo Isaza
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda