Saya mencoba untuk memilih sekelompok fitur di ESRI javascript API featureLayer berdasarkan atribut. Panggilan keluar. Kode saya adalah sebagai berikut. Berikut ini definisi layer:
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
});
Saya kemudian mengisi layer menggunakan applyEdits
dan kemudian permintaan layer menggunakan fungsi ini:
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);
});
Dan menyebutnya seperti ini:
queryCounty("Jefferson");
Ketika saya melakukan itu, saya mendapatkan kesalahan berikut:
"Kesalahan: FeatureLayer :: selectFeatures - kueri berisi satu atau lebih parameter yang tidak didukung
Ada beberapa contoh online yang layak dari fungsi ini menggunakan kueri geometri tetapi tidak ada yang saya temukan yang menggunakan dan mengaitkan kueri. Apa yang saya lewatkan?
arcgis-javascript-api
query
feature-layer
Frank Conry
sumber
sumber
Jawaban:
Apakah Anda membuat featureelayer dengan FeatureLayer (featureCollectionObject, options?) ?
Jika ya ada beberapa batasan untuk objek featureelayer. Anda tidak dapat menjalankan query pada layer tersebut.
Lihat dokumen https://developers.arcgis.com/javascript/jsapi/featurelayer-amd.html#featurelayer2
sumber
Itu kikuk tetapi Anda dapat meminta pada sejauh mana peta dan kemudian loop melalui hasil untuk mendapatkan atribut yang Anda inginkan. Sebagai contoh:
sumber