Buenos días,
Quiero en mi aplicación poder mostrar los elementos espaciales que se pueden agregar al mapa web, que el usuario seleccione uno de ellos y lo agregue en el mapa. Esa parte está lista. El problema que tengo es que me muestra todos los elementos de todas las capas a la vez en el Editor, y aún cuando activo o desactivo una capa, ese listado permanece igual.
Aún cuando activo o desactivo capas en el mapa, los elementos a agregar siguen listandose todos. Me he guiado por el código de ejemplo de diferentes ejercicios en la página de desarrolladores. Quiero saber si existe la forma en que al activar una capa en el LayerList widget, ese cambio se vea reflejado en el EditorWidget y se muestre solo el elemento de la capa activa. El código con el que estoy trabajando es el siguiente:
function createMap() {
parser.parse();
config.defaults.geometryService = new GeometryService("https://utility.arcgisonline.com/ArcGIS/rest/services/Geometry/GeometryServer");
//create the map arcgisUtils.arcgisUrl = "https://xxxxxxxxx.xxx/arcgis/sharing/rest/content/items";
arcgisUtils.createMap("xxxxxxxxxxxxxxxxxxxxxxxxxx", "map", {
ignorePopups: true
}).then(function (response) {
map = response.map;
//create the editor widget
var layerInfo = []; var layers = response.itemInfo.itemData.operationalLayers;
array.forEach(layers, function (layer) {
layerInfo.push({
"featureLayer": layer.layerObject,
"isEditable": true,
"showDeleteButton": false
});
});
var settings = {
map: map,
layerInfos: layerInfo,
toolbarVisible: true
};
var editorWidget = new Editor({
settings: settings
}, "editorDiv");
editorWidget.startup();
var myWidget = new LayerList({
map: map,
layers: arcgisUtils.getLayerList(response) },"layerList");
myWidget.startup();
on(myWidget, "toggle", lang.hitch(this, function (evt) {
array.map(myWidget.layers, function (layer, indx) {
if (evt.visible) {
if (indx !== evt.layerIndex) {
layer.layer.setVisibility(false);
layer.visibility = false;
}
}
});
}));
});
}
Agradezo mucho la ayuda en este tema.