ArcGIS Server JS API berisi kelas FeatureTable baru , yang memperlihatkan tabel atribut yang terkait dengan FeatureLayer. Ada pilihan syncSelection yang:
Mengaktifkan interaksi antara peta dan tabel fitur. Mengatur properti ini menjadi true memungkinkan pemilihan fitur pada peta melalui mengklik baris pada tabel, dan pemilihan baris tabel melalui mengklik fitur pada peta
Namun, ini tampaknya tidak menghormati set pilihan yang dibuat secara terprogram terhadap layer.
Mengambil sampel di https://developers.arcgis.com/javascript/3/sandbox/sandbox.html?sample=featuretable , jika saya menerapkan pilihan pada FeatureLayer, itu tidak tercermin dalam FeatureTable:
// Create the feature layer
myFeatureLayer = new FeatureLayer("https://services.arcgis.com/V6ZHFr6zdgNZuVG0/arcgis/rest/services/Warren_College_Trees/FeatureServer/0", {
mode: FeatureLayer.MODE_SELECTION,
visible: true,
outFields: ["*"],
id: "fLayer"
});
var myQuery = new Query();
myQuery.where = "Spp_Code ='SABA'";
myFeatureLayer.selectFeatures(myQuery,FeatureLayer.SELECTION_NEW)
Ini dengan benar menerapkan pemilihan ke lapisan fitur (perhatikan bahwa peta hanya berisi satu titik), tetapi tidak ke tabel fitur (ini mencantumkan semua 1.126 poin dengan 0 dipilih):
Apakah ada cara untuk me-refresh tabel fitur untuk mencerminkan set pilihan?
sumber
Jawaban:
Mulai dari 3.16 dan kemudian, implementasi
SyncSelection
boolean itu sedikit berbeda dari yang Anda jelaskan:Jadi, saya tahu ini adalah masalah besar, tetapi saya yakin Anda harus mengulang-ulang fitur layer-map yang dipilih dan memilihnya LAGI dengan memanggil event klik pilihan pada mereka (secara terprogram).
sumber
Ini adalah solusi saya untuk hanya melihat apa yang terlihat di peta (dalam tampilan :)
...
sumber
Kaitkan ke
selection-complete
acara tersebut, gunakangetSelectedFeatures()
, petakan hasilnya ke berbagai ID, dan sampaikan keFeatureTable
viaselectRows
. Kemudian kaitkanselectFeatures
keclick
acara dan Anda selesai.Sebagai ide kasar:
sumber