2022-03-11 04:03:38 +00:00
|
|
|
var mmap,mmmap
|
2018-09-08 19:22:46 +00:00
|
|
|
function Radar(divIDin, intervalHoursIn, zoomIn, latitudeIn, longitudeIn, withSat) {
|
|
|
|
var map,
|
|
|
|
divID = divIDin,
|
|
|
|
intervalHours = intervalHoursIn,
|
|
|
|
zoom = zoomIn,
|
|
|
|
latitude = latitudeIn,
|
2021-08-24 23:10:16 +00:00
|
|
|
longitude = longitudeIn,
|
|
|
|
timeLayers = [];
|
2018-09-08 19:22:46 +00:00
|
|
|
this.setView = function(lat, long, zoomLevel){
|
2021-03-23 18:02:42 +00:00
|
|
|
map.setView(L.latLng(lat, long), zoomLevel)
|
2018-09-08 19:22:46 +00:00
|
|
|
};
|
2021-03-23 18:02:42 +00:00
|
|
|
|
2018-09-08 19:22:46 +00:00
|
|
|
|
|
|
|
startAnimation();
|
2021-03-23 18:02:42 +00:00
|
|
|
|
2018-09-08 19:22:46 +00:00
|
|
|
// snap date to 5 minute intervals
|
|
|
|
function roundDate(date) {
|
|
|
|
date.setUTCMinutes( Math.round(date.getUTCMinutes() / 5) * 5);
|
|
|
|
date.setUTCSeconds(0);
|
|
|
|
return date;
|
|
|
|
}
|
2021-03-23 18:02:42 +00:00
|
|
|
|
2018-09-08 19:22:46 +00:00
|
|
|
function startAnimation () {
|
|
|
|
|
|
|
|
var endDate = roundDate(new Date()),
|
2021-03-23 18:02:42 +00:00
|
|
|
player;
|
2022-03-11 04:03:38 +00:00
|
|
|
if (divID == 'radar-1') {if (mmap !== undefined) { mmap.remove(); }};
|
|
|
|
if (divID == 'minimap') {if (mmmap !== undefined) { mmmap.remove(); }};
|
2018-09-08 19:22:46 +00:00
|
|
|
map = L.map(divID, {
|
|
|
|
zoom: zoom,
|
|
|
|
fullscreenControl: false,
|
2022-03-03 23:21:10 +00:00
|
|
|
center: [latitude, longitude],
|
|
|
|
dragging: false,
|
2021-08-24 23:10:16 +00:00
|
|
|
// 31.205482,-82.4331197 test coordinates
|
2018-09-08 19:22:46 +00:00
|
|
|
});
|
2021-08-29 15:58:22 +00:00
|
|
|
if (divID == "radar-1") {
|
|
|
|
mmap = map;
|
2022-03-11 04:03:38 +00:00
|
|
|
} else if (divID == "minimap") {
|
|
|
|
mmmap = map;
|
|
|
|
};
|
2021-03-23 18:02:42 +00:00
|
|
|
|
2018-09-08 19:22:46 +00:00
|
|
|
// basemap
|
|
|
|
// streets cj9fqw1e88aag2rs2al6m3ko2
|
|
|
|
// satellite streets cj8p1qym6976p2rqut8oo6vxr
|
|
|
|
// weatherscan green cj8owq50n926g2smvagdxg9t8
|
2021-03-23 18:02:42 +00:00
|
|
|
// mapbox://styles/goldbblazez/ckgc7fwvr4qmn19pevtvhyabl
|
2021-08-24 23:10:16 +00:00
|
|
|
// https://api.mapbox.com/styles/v1/goldbblazez/ckgc8lzdz4lzh19qt7q9wbbr9.html?fresh=true&title=copy&access_token=pk.eyJ1IjoiZ29sZGJibGF6ZXoiLCJhIjoiY2tiZTRnb2Q2MGkxajJwbzV2bWd5dXI5MyJ9.jU-2DqGCBI14K-acyN9RCw
|
2021-08-25 01:02:59 +00:00
|
|
|
L.tileLayer('https://api.mapbox.com/styles/v1/goldbblazez/ckgc8lzdz4lzh19qt7q9wbbr9/tiles/{z}/{x}/{y}?access_token=' + map_key, {
|
2018-09-08 19:22:46 +00:00
|
|
|
tileSize: 512,
|
|
|
|
zoomOffset: -1
|
2021-03-23 18:02:42 +00:00
|
|
|
}).addTo(map);
|
2022-02-08 03:27:06 +00:00
|
|
|
if (weatherInfo.radarTempUnavialable == true) {
|
2022-03-03 23:21:10 +00:00
|
|
|
|
2022-02-08 03:27:06 +00:00
|
|
|
} else {
|
2021-08-29 15:58:22 +00:00
|
|
|
if (withSat == true) {
|
|
|
|
$.getJSON("https://api.weather.com/v3/TileServer/series/productSet/PPAcore?filter=satrad&apiKey=" + api_key, function(data) {
|
|
|
|
for (var i = 0; i < data.seriesInfo.satrad.series.length; i++) {
|
|
|
|
timeLayers.push(
|
|
|
|
L.tileLayer("https://api.weather.com/v3/TileServer/tile/satrad?ts="+ data.seriesInfo.satrad.series[i].ts +"&xyz={x}:{y}:{z}&apiKey=" + api_key, {
|
|
|
|
opacity: 0
|
|
|
|
}))
|
|
|
|
}
|
|
|
|
timeLayers.forEach(timeLayers => {
|
2018-09-08 19:22:46 +00:00
|
|
|
|
2021-08-29 15:58:22 +00:00
|
|
|
timeLayers.addTo(map);
|
|
|
|
});
|
|
|
|
});
|
|
|
|
} else {
|
2021-08-25 01:02:59 +00:00
|
|
|
$.getJSON("https://api.weather.com/v3/TileServer/series/productSet/PPAcore?filter=radar&apiKey=" + api_key, function(data) {
|
2021-08-24 23:10:16 +00:00
|
|
|
for (var i = 0; i < data.seriesInfo.radar.series.length; i++) {
|
|
|
|
timeLayers.push(
|
2021-08-25 01:02:59 +00:00
|
|
|
L.tileLayer("https://api.weather.com/v3/TileServer/tile/radar?ts="+ data.seriesInfo.radar.series[i].ts +"&xyz={x}:{y}:{z}&apiKey=" + api_key, {
|
2021-08-24 23:10:16 +00:00
|
|
|
opacity: 0
|
|
|
|
}))
|
|
|
|
}
|
|
|
|
timeLayers.forEach(timeLayers => {
|
|
|
|
timeLayers.addTo(map);
|
2022-03-03 23:21:10 +00:00
|
|
|
timeLayers.getContainer().className += ' radarTile';
|
2021-08-24 23:10:16 +00:00
|
|
|
});
|
2018-09-08 19:22:46 +00:00
|
|
|
});
|
2021-08-29 15:58:22 +00:00
|
|
|
}
|
2021-08-24 23:10:16 +00:00
|
|
|
const sleepNow = (delay) => new Promise((resolve) => setTimeout(resolve, delay))
|
|
|
|
|
|
|
|
async function animationLoop() {
|
2021-08-29 15:58:22 +00:00
|
|
|
|
2021-08-24 23:10:16 +00:00
|
|
|
for (let i = timeLayers.length; i > 0; i--) {
|
|
|
|
timeLayers[i - 1].setOpacity(1)
|
|
|
|
await sleepNow(100)
|
|
|
|
timeLayers[i - 1].setOpacity(0)
|
|
|
|
if (i === 1) {
|
|
|
|
timeLayers[i - 1].setOpacity(1)
|
|
|
|
await sleepNow(1750)
|
|
|
|
timeLayers[i - 1].setOpacity(0)
|
|
|
|
animationLoop()
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
setTimeout(function() {
|
|
|
|
animationLoop()
|
|
|
|
}, 1000);
|
|
|
|
|
2022-02-08 03:27:06 +00:00
|
|
|
}
|
2018-09-08 19:22:46 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2021-03-23 18:02:42 +00:00
|
|
|
/*
|
2018-09-08 19:22:46 +00:00
|
|
|
* Workaround for 1px lines appearing in some browsers due to fractional transforms
|
|
|
|
* and resulting anti-aliasing.
|
|
|
|
* https://github.com/Leaflet/Leaflet/issues/3575
|
|
|
|
*/
|
|
|
|
|
|
|
|
(function(){
|
|
|
|
//return;
|
|
|
|
var originalInitTile = L.GridLayer.prototype._initTile
|
|
|
|
L.GridLayer.include({
|
|
|
|
_initTile: function (tile) {
|
|
|
|
originalInitTile.call(this, tile);
|
|
|
|
|
|
|
|
var tileSize = this.getTileSize();
|
|
|
|
|
|
|
|
tile.style.width = tileSize.x + 1 + 'px';
|
|
|
|
tile.style.height = tileSize.y + 1 + 'px';
|
|
|
|
}
|
|
|
|
});
|
|
|
|
})()
|