【发布时间】:2017-12-01 22:12:06
【问题描述】:
我有 js 代码,它返回存储在我的 PC 上的图层日期(使用 OpenLayers 和 Momentjs)。
正如我们所见,该函数以 60 秒的步长返回文件夹(文件夹)中两个日期之间的所有日期。但我只想返回我在 PC 上拥有文件(图层)的日期,因为我没有所有日期的图层。
所以我需要一个函数返回一个我只有瓦片的日期数组,然后根据输入的日期从该图层添加到地图
function loopLayer() {
const FromDateTime = document.getElementById("fromdate").value;
const dateFrom = moment(FromDateTime, "YYYY-MM-DD HH:mm:ss", true);
if (!dateFrom.isValid()) {
log("something");
return;
}
const ToDateTime = document.getElementById("todate").value;
const dateTo = moment(ToDateTime, "YYYY-MM-DD HH:mm:ss", true);
if (!dateTo.isValid()) {
log("something");
return;
}
let loopDate = dateFrom;
for(let i=0; dateFrom.isSameOrBefore(dateTo) && i < 100; i++) {
// preventing from loading thousands of layers
loopLayerByDate(loopDate);
loopDate = loopDate.add(60, 'seconds');
}
}
function loopLayerByDate(dateObject) {
const folderDate = dateObject.format("YYYY-MM-DD_HHmmss");
const source = new ol.source.XYZ({
projection: 'EPSG:3854',
// adapt url and source tile type to your setup
url: "folder/" + folderDate + "/{z}/{x}/{-y}.png"
});
const layer = new ol.layer.Tile({
source: source,
title: "layer"
});
map.addLayer(layer)
}
【问题讨论】:
标签: javascript momentjs openlayers layer