Saya diposting di forum arcgis tetapi tidak pernah mendapat jawaban. Adakah yang bisa memberitahu saya cara mengatasi ini?
Anggap Anda memiliki catatan pelacakan kendaraan mulai 1 Oktober hingga 31 Desember dengan informasi kecepatan angin. Semua data disimpan dalam geodatabase (sde-sqlserver) dan di ArcGIS Server 10.1 sebagai lapisan fitur. Penggeser waktu menunjukkan lokasi mobil dengan kecepatan angin.
Saat pengguna mengubah rentang waktu (mis. 2 Oktober - 4 Oktober), tugas kueri pertama (untuk hitungan) menghitung jumlah fitur dalam rentang tersebut. Biasanya ada lebih dari 1000 hasil bahkan dua hari (mis. 1750) (saya tidak ingin mengubah batas ini).
Saya menggunakan tugas kueri lain (executeforIds) untuk menyimpan semua catatan di tangan tetapi mengurangi jumlah dengan modulus (1/10) yang masih cukup banyak untuk membuat grafik yang bagus untuk tren keseluruhan kecepatan angin. Namun, saya juga ingin memberikan opsi untuk mengunduh seluruh dataset dalam csv (dalam hal ini 1750 baris)
Di sini, saya menggunakan findtask untuk mengambil dataset atribut dalam rentang waktu.
try {
//console.log(app.objIDs);
var attribs;
csvdata = "";
var find = new esri.tasks.FindTask("http://xyz.com/arcgis/rest/services/Realtime/Car_Wind_WM/MapServer");
var params = new esri.tasks.FindParameters();
params.layerIds = [0];
params.searchFields = ["OBJECTID"];
for (var i = 0; i < app.objIDs.length; i++) {
params.searchText = app.objIDs[i];
find.execute(params, function (results) {
attribs = results[0].feature.attributes;
csvdata += attribs.Date_Central + ',' + attribs.Longitude + "," + attribs.Latitude + "," + attribs.windspeed + "\n";
console.log(csvdata); //1
}, function (error) {
alert("Error");
});
}
} catch (error) {
alert("Change the time range first");
}
console.log(csvdata); //2
setTimeout(function () {
formatData(app.csvdata);
}, (3 * 1000));
csvdata tidak terdefinisi di console.log2, meskipun semua csvdata (di console.log1) menunjukkan data di konsol. Masalahnya tampaknya waktu find.execute selesai, jadi saya menambahkan setTimeout.
Ini tampaknya berhasil tetapi ketika saya meningkatkan rentang waktu, itu tidak akan jelas.
Apakah ada pula untuk menyimpan semua catatan (1000 - 200.000) dalam rentang waktu tertentu dan ekspor ke csv?