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?
sumber
Anda tentu dapat meningkatkan batas catatan layanan hingga 10rb atau lebih jika Anda berurusan dengan atribut titik dan pasangan - terutama jika Anda tidak menghasilkan grafik.
Anda dapat membuat tugas geoproses yang tidak sinkron dan mengambil data setelah dibuat dalam folder keluaran di server.
Jika Anda melempar jika pesanan dengan klausa dan waktu dalam permintaan Anda. Anda mungkin dapat membaca waktu di catatan terakhir dan mendapatkan kumpulan catatan berikutnya lebih besar dari waktu itu. Teruskan sampai Anda mencapai akhir rentang waktu Anda.
sumber