Я розміщував на форумі арггіс, але жодної відповіді не отримав. Хтось може сказати мені, як це вирішити?
Припустимо, у вас є записи про відстеження автомобіля з 1 жовтня по 31 грудня з інформацією про швидкість вітру. Всі дані зберігаються в базі даних геоданих (sde-sqlserver) та вище в ArcGIS Server 10.1 як функціональний рівень. Повзунок часу показує розташування автомобіля зі швидкістю вітру.
Коли користувач змінює часовий діапазон (наприклад, 2 жовтня - жовтень 4), перше завдання запиту (для підрахунку) обчислює кількість функцій у межах діапазону. Зазвичай за два дні є більше 1000 результатів (наприклад, 1750) (я не хочу змінювати цю межу).
Я використав ще одне завдання запиту (ExecuteforIds), щоб тримати всі записи в руці, але зменшити кількість за допомогою модуля (1/10), що ще є достатньою кількістю для створення приємної діаграми для загальної тенденції швидкості вітру. Однак я також хочу надати можливість завантажити цілий набір даних у форматі csv (в даному випадку 1750 рядків)
Тут я використовував findtask для отримання набору даних атрибутів у часовому діапазоні.
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 не визначено в console.log2, хоча всі csvdata (у console.log1) показують дані в консолі. Проблема здається, що термін find.execute завершений, тому я додав setTimeout.
Здається, це працює, але коли я збільшую часовий діапазон, очевидно, це не буде.
Чи все-таки потрібно зберігати всі записи (1000 - 200 000) у визначений часовий діапазон та експортувати до CSV?