Tengo un par de puntos visualizados en un mapa de folleto como se puede ver en la figura:
Me gustaría agregar una función que seleccione tantos de estos puntos como quiera y guarde su geometría. He hecho algo similar para mostrar el proveedor y los atributos de batería de los marcadores seleccionados:
function onEachFeature ( feature , layer ) { var popupContent = "Provider: " + feature.properties.provider + '</b><br/>' + "Battery level: " + feature.properties.battery; layer.bindPopup(popupContent); }Me gustaría algunas pautas sobre cómo crear un evento de clic cuando hago clic en los marcadores y cómo puedo guardar la geometría (tal vez en una matriz).
Sé que la pregunta es un poco general, pero realmente agradecería cualquier ayuda ya que es mi primer proyecto usando html, javascript y css.
¡Gracias de antemano!
Agregue un detector de clics al marcador. En el detector de clics, puede usar la identificación única del folleto del marcador para agregarlos y eliminarlos de la lista:
var selectedData = {}; function onEachFeature ( feature , layer ) { var popupContent = "Provider: " + feature.properties.provider + '</b><br/>' + "Battery level: " + feature.properties.battery; layer.bindPopup(popupContent); layer.on('click',(e)=>{ var marker = e.target; if(selectedData[marker._leaflet_id]){ delete selectedData[marker._leaflet_id]; } else { selectedData[marker._leaflet_id] = marker; } }) }Para obtener todos los marcadores en la lista, use:
for(var id in selectedData){ var marker = selectedData[id]; console.log(marker.getLatLng()) console.log(marker.toGeoJSON()) }