1 votos

¿Cómo seleccionar múltiples elementos con un rectángulo usando la API de ArcGIS para JavaScript?

Estoy utilizando ArcGIS API for JavaScript 3.7.

Estoy tratando de ver si puedo seleccionar entidades de la misma manera que shift+click y arrastrar te permite hacer zoom en el mapa dibujando un rectángulo. El problema que estoy encontrando es que quiero esta funcionalidad en una capa específica del mapa, pero no sé si esta capa está lista aún. He intentado usando lo siguiente:

map.on('load', function initSelectToolbar(event) {
    selectionToolbar = new Draw(event.map);
    var selectQuery = new Query();

    on(selectionToolbar, "DrawEnd", function (geometry) {
        selectionToolbar.deactivate();
        selectQuery.geometry = geometry;
        featureLayer.selectFeatures(selectQuery, FeatureLayer.SELECTION_NEW);
    });
});

Me gustaría ver si es posible ejecutar este código cuando sé con certeza que la capa está lista. Hasta donde tengo entendido, no puedo cambiar la capa de entidad a la que hace referencia el código una vez que se carga.

EDICIÓN: Parece que logré que funcionara. Encontré una manera de obtener la URL de las capas usando map.getLayer(layerId).url (cómo se me pasó eso, no lo entiendo), creé una nueva capa de entidad para la selección y la eliminé cuando el usuario terminó. Aún así, creo que esto podría hacerse mejor.

2voto

Michael La Voie Puntos 56

Puedes verificar si una capa específica está cargada (usando map.addLayer) con el evento layer-add-result del mapa. Dado que este evento se activa cuando se carga cualquier capa (incluidos los mapas base), debes verificar la capa específica

map.addLayer(featureLayer);
map.on('layer-add-result', function(addLayer){
  if (addLayer.layer === featureLayer){
    console.log(featureLayer);
  }
});

Si estás usando map.addLayers para agregar múltiples capas, puedes utilizar el evento layers-add-result

map.addLayers([featureLayer]);
map.on('layers-add-result', function (){
  console.log(featureLayer);
});

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X