Estoy trabajando en mi primer proyecto usando la biblioteca Leaflet javascript. Después de importar con éxito un archivo geoJSON en el mapa, estoy tratando de crear una nueva capa geoJSON (currShownMarkersLayer), poblada solo con los marcadores que se encuentran actualmente dentro del mosaico del mapa que se muestra, para usarlo como entrada para la búsqueda de control de folletos, por lo que solo estos los marcadores se pueden buscar mediante la búsqueda de control de folletos. Sin embargo, cuando escribo algo en el cuadro de búsqueda de control de folletos, aparece este error:
TypeError no detectado: this._retrieveData no está definido.
¿Qué estoy haciendo mal? A continuación adjunto mi código.
//////////////////////////Return geoJson Layer of visible markers on map/////////////////////// map.on('move', function() { function getCurrentlyShownMarkers() { var currShownMarkers = []; map.eachLayer( function(layer) { if(layer instanceof L.CircleMarker) { if(map.getBounds().contains(layer.getLatLng())) { currShownMarkers.push(layer.feature); } } featuresLayer = new L.GeoJSON(currShownMarkers, { }); }); return featuresLayer; } currShownMarkersLayer = getCurrentlyShownMarkers(); }); ////////////////////////////////////////Leaflet-Search///////////////////////////////////////////// var searchControl = new L.Control.Search({ layer: currShownMarkersLayer, propertyName: 'name', marker: false, }); searchControl.on('search:locationfound', function(e) { e.layer.openPopup(); }); map.addControl( searchControl );¡Gracias por leer!