Ich versuche, eine Gruppe von Features in einer ESRI-Javascript-API featureLayer nach Attribut auszuwählen. Der Anruf fällt aus. Mein Code lautet wie folgt. Hier ist die Ebenendefinition:
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
});
Ich fülle dann die Ebene mit applyEdits
und frage die Ebene später mit dieser Funktion ab:
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);
});
Und nenne es so:
queryCounty("Jefferson");
Wenn ich das mache, bekomme ich folgenden Fehler:
"Fehler: FeatureLayer :: selectFeatures - Abfrage enthält einen oder mehrere nicht unterstützte Parameter
Es gibt einige anständige Online-Beispiele für diese Funktion, bei denen Geometrieabfragen verwendet werden, aber keine, bei denen ich diese Verwendung und Attributabfrage gefunden habe. Was vermisse ich?
arcgis-javascript-api
query
feature-layer
Frank Conry
quelle
quelle
Antworten:
Erstellen Sie Featurelayer mit FeatureLayer (featureCollectionObject, Optionen?) ?
Wenn ja, gibt es einige Einschränkungen für das Featurelayer-Objekt. Sie können keine Abfragen auf solchen Ebenen ausführen.
Siehe die Dokumente https://developers.arcgis.com/javascript/jsapi/featurelayer-amd.html#featurelayer2
quelle
Es ist klobig, aber Sie können den Umfang der Karte abfragen und dann die Ergebnisse durchlaufen, um die gewünschten Attribute zu erhalten. Zum Beispiel:
quelle