Estoy tratando de seleccionar un grupo de características en una API de JavaScript ESRI featureLayer por atributo. La llamada falla. Mi código es el siguiente. Aquí está la definición de la capa:
var fieldDefs = [{
"name": "county",
"type": "esriFieldTypeString",
"alias": "county"
},
{
"name": "pop",
"type": "esriFieldTypeInteger",
"alias": "pop"
},
"name": "ObjectID",
"alias": "ObjectID",
"type": "esriFieldTypeOID"
}
];
var featureCollection = {
"layerDefinition": null,
"featureSet": {
"features": [],
"geometryType": "esriGeometryPolygon";
}
};
var featureCollection.layerDefinition = {
"geometryType": "esriGeometryPolygon";,
"objectIdField": "ObjectID",
"drawingInfo": {
"renderer": {
"type": "simple",
"symbol": symbol
}
},
"fields": fieldDefs
};
var featureLayer = new FeatureLayer(featureCollection, {
id: idString,
mode: FeatureLayer.MODE_SNAPSHOT,
fields: fieldDefs
});
Luego relleno la capa usando applyEdits
y luego consulto la capa usando esta función:
queryCounty = function(county_name) {
var query = new Query();
query.where = "county = '" + county_name + "'";
//projectsOverlayMap.clearSelection();
console.log("WHERE: " + "county = '" + county_name + "'");
projectsOverlayMap.selectFeatures(query, FeatureLayer.SELECTION_NEW, function(results){
alert(results.length);
});
Y llamándolo así:
queryCounty("Jefferson");
Cuando hago eso me sale el siguiente error:
"Error: FeatureLayer :: selectFeatures - la consulta contiene uno o más parámetros no compatibles
Hay algunos ejemplos en línea decentes de esta función que utilizan consultas de geometría, pero ninguno que he encontrado que utiliza y consulta de atributos. ¿Qué me estoy perdiendo?
arcgis-javascript-api
query
feature-layer
Frank Conry
fuente
fuente
Respuestas:
¿Estás creando featurelayer por FeatureLayer (featureCollectionObject, options?) ?
En caso afirmativo, hay alguna restricción para el objeto de capa de características. No puede ejecutar consultas en tales capas.
Consulte los documentos https://developers.arcgis.com/javascript/jsapi/featurelayer-amd.html#featurelayer2
fuente
Es torpe, pero puede consultar la extensión del mapa y luego recorrer los resultados para obtener los atributos que desea. Por ejemplo:
fuente