J'essaie de sélectionner un groupe de fonctionnalités dans un FeatureLayer de l'API javascript ESRI par attribut. L'appel sort. Mon code est le suivant. Voici la définition de la couche:
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
});
Je remplis ensuite le calque en utilisant applyEdits
et interroge plus tard le calque en utilisant cette fonction:
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);
});
Et l'appeler comme ça:
queryCounty("Jefferson");
Lorsque je fais cela, j'obtiens l'erreur suivante:
"Erreur: FeatureLayer :: selectFeatures - la requête contient un ou plusieurs paramètres non pris en charge
Il existe des exemples décents en ligne de cette fonction utilisant des requêtes de géométrie, mais aucun que j'ai trouvé qui utilise et attribue une requête. Qu'est-ce que je rate?
arcgis-javascript-api
query
feature-layer
Frank Conry
la source
la source
Réponses:
Créez -vous une couche de fonction par FeatureLayer (featureCollectionObject, options?) ?
Si oui, il existe des restrictions pour l'objet de couche de fonction. Vous ne pouvez pas exécuter de requêtes sur ces couches.
Voir la documentation https://developers.arcgis.com/javascript/jsapi/featurelayer-amd.html#featurelayer2
la source
C'est maladroit, mais vous pouvez interroger l'étendue de la carte, puis parcourir les résultats pour obtenir les attributs souhaités. Par exemple:
la source