首先,我想准确地说我是 JavaScript 和地理空间领域的新手。
最近有一个REST在线服务下载数据的需求: *https://map.sitr.regione.sicilia.it/gis/rest/services/catasto/cartografia_catastale/MapServer/4/query * 由于我必须发送数千个请求,我发现这个工具应该可以解决我的问题:https://github.com/tannerjt/AGStoShapefile
不幸的是,这个存储库的 index.js 脚本向服务器传递了一个查询,这给了我 502 错误。可能是因为意大利服务器每次只允许 1000 个请求。
有没有一种方法,从index.js脚本开始,以迭代的方式向服务器请求数据?
服务器压力问题与这段index.js脚本有关:
data.toString().split('\n').forEach(function (service) {
var service = service.split('|');
if(service[0].split('').length == 0) return;
var baseUrl = getBaseUrl(service[0].trim());
var reqQS = {
where: '1=1',
returnIdsOnly: true,
f: 'json'
};
var userQS = getUrlVars(service[0].trim());
// mix one obj with another
var qs = mixin(userQS, reqQS);
qs = queryString.stringify(qs);
var url = decodeURIComponent(getBaseUrl(baseUrl) + '/query/?' + qs);
var throttle = 0;
if(service.length > 2) {
throttle = +service[2];
}
rp({
url : url,
method : 'GET',
json : true
}).then((body) => {
requestService(service[0].trim(), service[1].trim(), body.objectIds, throttle);
}).catch((err) => {
console.log(err);
});
})
我尝试了很多次通过更改查询来更改请求,但由于我对 javascript 和节点主题的了解不足,我还没有找到解决方案。