Estou tentando selecionar um grupo de recursos em uma API JavaScript ESRI featureLayer por atributo. A chamada falha. Meu código é o seguinte. Aqui está a definição da camada:
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
});
Em seguida, preencho a camada usando applyEdits
e posteriormente a consulta usando esta função:
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);
});
E chamando assim:
queryCounty("Jefferson");
Quando faço isso, recebo o seguinte erro:
"Erro: FeatureLayer :: selectFeatures - a consulta contém um ou mais parâmetros não suportados
Existem alguns exemplos on-line decentes dessa função usando consultas de geometria, mas nenhuma que eu achei que use e consulta de atributo. o que estou perdendo?
arcgis-javascript-api
query
feature-layer
Frank Conry
fonte
fonte
Respostas:
Você está criando featurelayer pelo FeatureLayer (featureCollectionObject, options?) ?
Se sim, há alguma restrição para o objeto featurelayer. Você não pode executar consultas nessas camadas.
Consulte os documentos https://developers.arcgis.com/javascript/jsapi/featurelayer-amd.html#featurelayer2
fonte
É desajeitado, mas você pode consultar a extensão do mapa e percorrer os resultados para obter os atributos desejados. Por exemplo:
fonte