La API JS de ArcGIS Server contiene una nueva clase FeatureTable , que muestra la tabla de atributos correspondiente a un FeatureLayer. Hay una opción syncSelection que:
Permite una interacción entre el mapa y la tabla de características. Establecer esta propiedad en verdadero permite la selección de una característica en un mapa haciendo clic en la fila de la tabla y la selección de una fila de la tabla haciendo clic en una característica del mapa
Sin embargo, esto no parece honrar un conjunto de selección realizado programáticamente contra la capa.
Tomando la muestra en https://developers.arcgis.com/javascript/3/sandbox/sandbox.html?sample=featuretable , si aplico una selección a FeatureLayer no se refleja en FeatureTable:
// Create the feature layer
myFeatureLayer = new FeatureLayer("https://services.arcgis.com/V6ZHFr6zdgNZuVG0/arcgis/rest/services/Warren_College_Trees/FeatureServer/0", {
mode: FeatureLayer.MODE_SELECTION,
visible: true,
outFields: ["*"],
id: "fLayer"
});
var myQuery = new Query();
myQuery.where = "Spp_Code ='SABA'";
myFeatureLayer.selectFeatures(myQuery,FeatureLayer.SELECTION_NEW)
Esto aplica correctamente la selección a la capa de entidades (tenga en cuenta que el mapa solo contiene un punto), pero no a la tabla de entidades (enumera todos los 1146 puntos con 0 seleccionados):
¿Hay alguna manera de actualizar la tabla de características para reflejar el conjunto de selección?
fuente
Respuestas:
A partir de 3.16 y posteriores, la implementación de ese
SyncSelection
booleano es ligeramente diferente de lo que usted describió:Por lo tanto, sé que es un dolor real, pero creo que debe recorrer las características seleccionadas de las capas de mapa y seleccionarlas OTRA VEZ llamando al evento de clic de selección sobre ellas (mediante programación).
fuente
Esta es mi solución para ver solo lo que está visible en el mapa (a la vista :)
...
fuente
Enganche al
selection-complete
evento, usegetSelectedFeatures()
, asigne el resultado a una matriz de ID y páselo a laFeatureTable
víaselectRows
. Luego conécteseselectFeatures
alclick
evento y listo.Como una idea aproximada:
fuente