Estoy intentando eliminar una capa del mapView.
var LayertoRemove=map.findLayerById(layerID);
map.remove(LayertoRemove);
La capa se encuentra y se elimina realmente, pero después de eliminarla sigue lanzando TypeError: this.controller.destroy no es una función Cuando elimino estas dos líneas de código, el script funciona correctamente.
el error en la consola apunta a MapView.js de la API y no a ninguna línea de mi script. ¿Alguna sugerencia sobre qué está fallando aquí?
Actualización1: Las FeatureLayers que estoy intentando eliminar no son capas alojadas, sino generadas a partir de geometrías del lado del cliente (los gráficos se crean a partir de dos archivos csv tomados del cliente); sospecho que el error se está produciendo debido a la configuración de una de las propiedades de la capa, que necesito configurar cuando se crea la capa.
Actualización2: el registro de errores completo es:
Uncaught TypeError: this.controller.destroy is not a function MapView.js:510
at Object.d.detach (MapView.js:510)
at Object.update (MapView.js:25)
at k._animationFrame (init.js:329)
Actualización3: Ahora estoy casi seguro de que el problema está relacionado con mis propiedades featurelayer, ya que cuando intento map.remove con un featurelayer alojado, funciona bien. Los featurelayers se generan de la siguiente manera:
function createLayer(graphics,renderer,type,fields,title){
lyr = new FeatureLayer({
source: graphics, //an array of esri/Graphic
fields:fields,
objectIdField: "ObjectID",
renderer:renderer,
spatialReference: {wkid: 4326},
geometryType: type,
title:title,
id:title
});
map.add(lyr);
}