944 lines
28 KiB
JavaScript
944 lines
28 KiB
JavaScript
var appupdate = false;
|
|
var idup;
|
|
var TileServerG = "http://{s}.tile.osm.org/{z}/{x}/{y}.png";
|
|
var TileServerI = "https://testmap.141.ir/141map/{z}/{x}/{y}.png";
|
|
// var Tnow = Date.now();
|
|
var Tnow = "1610622000";
|
|
//var TileServerW = "https://api.weather.com/v3/TileServer/tile?product=temp&ts=" + Tnow + "&xyz={x}:{y}:{z}&apiKey=d522aa97197fd864d36b418f39ebb323";
|
|
var TileServerW = "https://api.weather.com/v3/TileServer/tile?product=tempFcst&ts=1610625600&fts=1610629200&xyz={x}:{y}:{z}&apiKey=d522aa97197fd864d36b418f39ebb323"
|
|
var Weather_key = "d522aa97197fd864d36b418f39ebb323";
|
|
var mapsNam = ['map1', 'map2', 'map3'];
|
|
var weathers = ['clouds_new', 'precipitation_new', 'pressure_new', 'wind_new', 'temp_new'];
|
|
var lmw1;
|
|
var lmw2;
|
|
var lmw3;
|
|
var wkey = '731610ac3cc936b52c1a1b7d35d76754';
|
|
var mapcenter = [34.620, 52.471];
|
|
var zoomlvl = 7;
|
|
var defaultweather1;
|
|
var defaultweather2;
|
|
var defaultweather3;
|
|
var maxtile1;
|
|
var maxtile2;
|
|
var maxtile3;
|
|
var maxtile4;
|
|
var maxWeather;
|
|
var cl_layer;
|
|
var pe_layer;
|
|
var prd_layer;
|
|
var wnd_layer;
|
|
var tmp_layer;
|
|
var test_layer;
|
|
var map1;
|
|
var map2;
|
|
var map3;
|
|
var map4;
|
|
var Weather_type;
|
|
var Weather_Time;
|
|
var MapRun;
|
|
var FctTime;
|
|
var RunTheMap = 0;
|
|
var ValidWatches = [];
|
|
var looper = 0;
|
|
var mapinstop = true;
|
|
var jsonSetWurl;
|
|
var getSetWurl;
|
|
var defaultweather4 = null;
|
|
var TimeObjects;
|
|
|
|
var map4Layer;
|
|
var IsFct;
|
|
var SliderCurrentStep;
|
|
|
|
var WName = [
|
|
{ id: 1, "24hrMaxTempFcst": "بیشینه دمای 24 ساعت آتی" },
|
|
{ id: 2, '24hrMinTempFcst': "کمینه دمای 24 ساعت آتی" },
|
|
{ id: 3, 'cloudsFcst': "پیشبینی ابر" },
|
|
{ id: 4, 'radarFcst': "پیشبینی رادار هواشناسی" },
|
|
{ id: 5, 'satrad': "رادار و ماهواره هواشناسی" },
|
|
{ id: 6, 'satradFcst': "پیشبینی رادار و ماهواره هواشناسی" },
|
|
{ id: 7, 'sensibleWeather12hrFcst': "هوای حساس 12 ساعت آتی" },
|
|
{ id: 8, 'snow24hrFcst': "بارش برف در 24 ساعت آتی" },
|
|
{ id: 9, 'temp': "دما" },
|
|
{ id: 10, 'tempFcst': "دمای 24 ساعت آتی" },
|
|
{ id: 11, 'uv': "اشعه فرابنفش" },
|
|
{ id: 12, 'uvFcst': "پیشس بینی اشعه فرا بنفش" },
|
|
{ id: 13, 'windSpeedFcst': " سرعت باد در 24 ساعت آتی" },
|
|
{ id: 14, 'windSpeed': " سرعت باد" },
|
|
{ id: 15, 'snow1hrCumulativePrecipFcst': " بارش متراکم برف" },
|
|
{ id: 16, 'thunder12hrFcst': " رعد و برق رد 12 ساعت آتی" },
|
|
|
|
];
|
|
var SetWurl = "https://api.weather.com/v3/TileServer/series/productSet?apiKey=d522aa97197fd864d36b418f39ebb323";
|
|
|
|
|
|
|
|
|
|
//:::::::::::::::::::::::::::::::::::::
|
|
// document.addEventListener('DOMContentLoaded', function() {
|
|
// $('#cover').fadeOut(4000);
|
|
// $('#PContent').fadeIn(4000);
|
|
// }, false);
|
|
//::::::::::Start Document ::::::::::::::::::::::::
|
|
$(document).ready(function() {
|
|
//:::::::::::::::::::::::::::::::::::::Maxter weather Layers
|
|
var clouds = L.OWM.clouds({ showLegend: true, opacity: .5, appId: wkey });
|
|
var cloudscls = L.OWM.cloudsClassic({ appId: wkey });
|
|
var precipitation = L.OWM.precipitation({ appId: wkey });
|
|
var precipitationcls = L.OWM.precipitationClassic({ appId: wkey });
|
|
var rain = L.OWM.rain({ appId: wkey });
|
|
var raincls = L.OWM.rainClassic({ appId: wkey });
|
|
var snow = L.OWM.snow({ appId: wkey });
|
|
var pressure = L.OWM.pressure({ appId: wkey });
|
|
var pressurecntr = L.OWM.pressureContour({ appId: wkey });
|
|
var temp = L.OWM.temperature({ appId: wkey });
|
|
var wind = L.OWM.wind({ appId: wkey });
|
|
//========================================================================
|
|
cl_layer = L.tileLayer("http://tile.openweathermap.org/map/clouds_new/{z}/{x}/{y}.png?appid=731610ac3cc936b52c1a1b7d35d76754&lang=fa", { opacity: 1 });
|
|
pe_layer = L.tileLayer("http://tile.openweathermap.org/map/pressure_new/{z}/{x}/{y}.png?appid=731610ac3cc936b52c1a1b7d35d76754&lang=fa");
|
|
prd_layer = L.tileLayer("http://tile.openweathermap.org/map/precipitation_new/{z}/{x}/{y}.png?appid=731610ac3cc936b52c1a1b7d35d76754&lang=fa");
|
|
wnd_layer = L.tileLayer("http://tile.openweathermap.org/map/wind_new/{z}/{x}/{y}.png?appid=731610ac3cc936b52c1a1b7d35d76754&lang=fa");
|
|
tmp_layer = L.tileLayer("http://tile.openweathermap.org/map/temp_new/{z}/{x}/{y}.png?appid=731610ac3cc936b52c1a1b7d35d76754&lang=fa");
|
|
test_layer = L.tileLayer("http://maps.openweathermap.org/maps/2.0/weather/TA2/{z}/{x}/{y}?date=1527811200&opacity=0.9&fill_bound=true&appid=731610ac3cc936b52c1a1b7d35d76754");
|
|
//:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
|
|
var layersx = [clouds, cloudscls, precipitation, precipitationcls, rain, raincls, snow, pressure, pressurecntr, temp, wind];
|
|
//:::::::::::::::::::::::::::::::::::::::::::::::::::::::::Tiles Maxter:::::::::::::::::::
|
|
var maxtile = L.tileLayer(TileServerG);
|
|
//::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
|
|
//:::::::::::::::::::::::::::Fill default weathers MAxterc0d3r:::::::::::::::::::::::::::::::::
|
|
defaultweather1 = cl_layer;
|
|
defaultweather2 = wnd_layer;
|
|
defaultweather3 = tmp_layer;
|
|
// defaultweather4 = L.tileLayer(TileServerW, { opacity: 0.4 });
|
|
|
|
|
|
|
|
|
|
//:::::::::::::::::::::::::::::::::::::::::::::::::::::::Define layers M4}{T3R::::::::::::::::
|
|
maxtile1 = L.tileLayer(TileServerG);
|
|
maxtile2 = L.tileLayer(TileServerG);
|
|
maxtile3 = L.tileLayer(TileServerG);
|
|
maxtile4 = L.tileLayer(TileServerG);
|
|
maxWeather = {
|
|
"Clouds": clouds
|
|
};
|
|
//=================================================================================================ADDing Layers:::::::::::::::M4><T3R::::::::::::
|
|
map1 = L.map('map1', {
|
|
center: mapcenter,
|
|
zoom: zoomlvl,
|
|
layers: [maxtile1, defaultweather1],
|
|
opacity: 1
|
|
});
|
|
// map2 = L.map('map2', {
|
|
// center: mapcenter,
|
|
// zoom: zoomlvl,
|
|
// layers: [maxtile2, defaultweather2],
|
|
// opacity: 1
|
|
// });
|
|
|
|
map3 = L.map('map3', {
|
|
center: mapcenter,
|
|
zoom: zoomlvl,
|
|
layers: [maxtile3],
|
|
opacity: 1
|
|
});
|
|
//==============================Blank map :::::::::::::::
|
|
map4 = L.map('map4', {
|
|
center: mapcenter,
|
|
zoom: 5,
|
|
layers: [maxtile4],
|
|
// }).addLayer(defaultweather4);
|
|
});
|
|
//::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::Set Delay for MAps Loading:::::::::::
|
|
setInterval(function() {
|
|
map1.invalidateSize();
|
|
// map2.invalidateSize();
|
|
map3.invalidateSize();
|
|
map4.invalidateSize();
|
|
}, 200);
|
|
//:::::::::::::::::::::::::::::::::::::::::REmoving footer of maps::::::::::::::::::::::::::::::::::
|
|
map1.attributionControl.setPrefix("");
|
|
// map2.attributionControl.setPrefix("");
|
|
map3.attributionControl.setPrefix("");
|
|
map4.attributionControl.setPrefix("");
|
|
|
|
|
|
//::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
|
|
|
|
|
|
|
|
|
|
//:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
|
|
|
|
|
|
|
|
});
|
|
|
|
//==============Maxter Functions Here::::::::::::::::::::::::
|
|
|
|
setTimeout(function() {
|
|
|
|
$('#TimeSlider').ionRangeSlider({
|
|
skin: "flat",
|
|
values: ValidWatches,
|
|
grid: true,
|
|
step: 1,
|
|
from: 0,
|
|
onChange: function(data) {
|
|
var timlayerstep = data.from;
|
|
SliderCurrentStep = timlayerstep;
|
|
MapSetCurrentLive(map4Layer, IsFct, timlayerstep, "0");
|
|
console.log(data.from);
|
|
},
|
|
onStart: function(data) {
|
|
|
|
SliderCurrentStep = data.from;
|
|
|
|
}
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// var instance = $('#TimeSlider').data("ionRangeSlider");
|
|
|
|
// instance.update({
|
|
|
|
// });
|
|
|
|
|
|
$('#TimeSlider').css('display', 'block');
|
|
$('#cover').fadeOut(4000);
|
|
$('#PContent').fadeIn(4000);
|
|
|
|
$(".tmpmap").addClass('mapselect');
|
|
$('#LayerSelectBox1').animate({
|
|
scrollTop: 500
|
|
}, 1000);
|
|
|
|
$(".amaliat").css('width', '100px');
|
|
$(".radif").css('width', '10px');
|
|
|
|
|
|
}, 3000);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var Sliderup = function() {
|
|
SliderCurrentStep = SliderCurrentStep + 1;
|
|
var slider = $("#TimeSlider").data("ionRangeSlider");
|
|
|
|
slider.update({
|
|
step: SliderCurrentStep
|
|
// etc.
|
|
});
|
|
|
|
}
|
|
|
|
|
|
//::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
|
|
|
|
function GoLayer(type) {
|
|
|
|
switch (type) {
|
|
|
|
|
|
case 1:
|
|
map1.removeLayer(defaultweather1);
|
|
defaultweather1 = cl_layer;
|
|
map1.addLayer(defaultweather1)
|
|
setInterval(function() {
|
|
map1.invalidateSize();
|
|
|
|
}, 100);
|
|
break;
|
|
case 2:
|
|
map1.removeLayer(defaultweather1);
|
|
defaultweather1 = pe_layer;
|
|
map1.addLayer(defaultweather1);
|
|
setInterval(function() {
|
|
map1.invalidateSize();
|
|
|
|
}, 100);
|
|
|
|
|
|
break;
|
|
|
|
case 3:
|
|
map1.removeLayer(defaultweather1);
|
|
defaultweather1 = prd_layer;
|
|
map1.addLayer(defaultweather1);
|
|
|
|
|
|
setInterval(function() {
|
|
map1.invalidateSize();
|
|
|
|
}, 100);
|
|
|
|
|
|
break;
|
|
|
|
case 4:
|
|
|
|
map1.removeLayer(defaultweather1);
|
|
defaultweather1 = wnd_layer;
|
|
map1.addLayer(defaultweather1);
|
|
|
|
|
|
setInterval(function() {
|
|
map1.invalidateSize();
|
|
|
|
}, 100);
|
|
|
|
|
|
|
|
|
|
break;
|
|
|
|
case 5:
|
|
map1.removeLayer(defaultweather1);
|
|
defaultweather1 = tmp_layer;
|
|
map1.addLayer(defaultweather1);
|
|
|
|
|
|
setInterval(function() {
|
|
map1.invalidateSize();
|
|
|
|
}, 100);
|
|
|
|
break;
|
|
//=================================Map Section2
|
|
case 6:
|
|
map1.removeLayer(defaultweather1);
|
|
defaultweather1 = snow;
|
|
map1.addLayer(defaultweather1);
|
|
|
|
|
|
setInterval(function() {
|
|
map1.invalidateSize();
|
|
|
|
}, 100);
|
|
|
|
|
|
|
|
|
|
|
|
break;
|
|
|
|
|
|
default:
|
|
// code block
|
|
}
|
|
|
|
|
|
}
|
|
//::::::::::::::::::::::::::::::::::
|
|
//:::::::::::::::::::::::::::::::::::::::::Weather map Switches :::::::MAxter
|
|
|
|
function GoWLayer(type) {
|
|
|
|
StopMapmax();
|
|
switch (type) {
|
|
case 1:
|
|
IsFct = true;
|
|
map4Layer = "24hrMaxTempFcst";
|
|
MapSetCurrent("24hrMaxTempFcst", IsFct);
|
|
ValidWatches = LayerTimeLineSetOne("24hrMaxTempFcst", IsFct);
|
|
ReloadSlider(ValidWatches);
|
|
|
|
break;
|
|
case 2:
|
|
IsFct = true;
|
|
map4Layer = "24hrMinTempFcst";
|
|
MapSetCurrent("24hrMinTempFcst", IsFct);
|
|
ValidWatches = LayerTimeLineSetOne("24hrMinTempFcst", IsFct);
|
|
ReloadSlider(ValidWatches);
|
|
break;
|
|
case 3:
|
|
IsFct = true;
|
|
map4Layer = "cloudsFcst";
|
|
MapSetCurrent("cloudsFcst", IsFct);
|
|
ValidWatches = LayerTimeLineSetOne("cloudsFcst", IsFct);
|
|
ReloadSlider(ValidWatches);
|
|
break;
|
|
case 4:
|
|
IsFct = true;
|
|
map4Layer = "radarFcst";
|
|
MapSetCurrent("radarFcst", IsFct);
|
|
ValidWatches = LayerTimeLineSetOne("radarFcst", IsFct);
|
|
ReloadSlider(ValidWatches);
|
|
break;
|
|
case 5:
|
|
IsFct = false;
|
|
map4Layer = "satrad";
|
|
MapSetCurrent("satrad", IsFct);
|
|
ValidWatches = LayerTimeLineSetOne("satrad", IsFct);
|
|
ReloadSlider(ValidWatches);
|
|
break;
|
|
case 6:
|
|
IsFct = true;
|
|
map4Layer = "satradFcst";
|
|
MapSetCurrent("satradFcst", IsFct);
|
|
ValidWatches = LayerTimeLineSetOne("satradFcst", IsFct);
|
|
ReloadSlider(ValidWatches);
|
|
break;
|
|
case 7:
|
|
IsFct = true;
|
|
map4Layer = "sensibleWeather12hrFcst";
|
|
MapSetCurrent("sensibleWeather12hrFcst", IsFct);
|
|
ValidWatches = LayerTimeLineSetOne("sensibleWeather12hrFcst", IsFct);
|
|
ReloadSlider(ValidWatches);
|
|
break;
|
|
case 8:
|
|
IsFct = true;
|
|
map4Layer = "snow24hrFcst";
|
|
MapSetCurrent("snow24hrFcst", IsFct);
|
|
ValidWatches = LayerTimeLineSetOne("snow24hrFcst", IsFct);
|
|
ReloadSlider(ValidWatches);
|
|
break;
|
|
case 9:
|
|
IsFct = false;
|
|
map4Layer = "temp";
|
|
MapSetCurrent("temp", IsFct);
|
|
ValidWatches = LayerTimeLineSetOne("temp", IsFct);
|
|
ReloadSlider(ValidWatches);
|
|
break;
|
|
case 10:
|
|
IsFct = true;
|
|
map4Layer = "tempFcst";
|
|
MapSetCurrent("tempFcst", IsFct);
|
|
ValidWatches = LayerTimeLineSetOne("tempFcst", IsFct);
|
|
ReloadSlider(ValidWatches);
|
|
break;
|
|
case 11:
|
|
IsFct = false;
|
|
map4Layer = "uv";
|
|
MapSetCurrent("uv", IsFct);
|
|
ValidWatches = LayerTimeLineSetOne("uv", IsFct);
|
|
ReloadSlider(ValidWatches);
|
|
break;
|
|
|
|
case 12:
|
|
IsFct = true;
|
|
map4Layer = "uvFcst";
|
|
MapSetCurrent("uvFcst", IsFct);
|
|
ValidWatches = LayerTimeLineSetOne("uvFcst", IsFct);
|
|
ReloadSlider(ValidWatches);
|
|
break;
|
|
|
|
case 13:
|
|
IsFct = true;
|
|
map4Layer = "windSpeedFcst";
|
|
MapSetCurrent("windSpeedFcst", IsFct);
|
|
ValidWatches = LayerTimeLineSetOne("windSpeedFcst", IsFct);
|
|
ReloadSlider(ValidWatches);
|
|
break;
|
|
|
|
case 14:
|
|
IsFct = false;
|
|
map4Layer = "windSpeed";
|
|
MapSetCurrent("windSpeed", IsFct);
|
|
ValidWatches = LayerTimeLineSetOne("windSpeed", IsFct);
|
|
ReloadSlider(ValidWatches);
|
|
|
|
break;
|
|
|
|
case 15:
|
|
IsFct = true;
|
|
map4Layer = "snow1hrCumulativePrecipFcst";
|
|
MapSetCurrent("snow1hrCumulativePrecipFcst", IsFct);
|
|
ValidWatches = LayerTimeLineSetOne("snow1hrCumulativePrecipFcst", IsFct);
|
|
ReloadSlider(ValidWatches);
|
|
|
|
break;
|
|
|
|
case 16:
|
|
IsFct = false;
|
|
map4Layer = "radar";
|
|
MapSetCurrent("radar", IsFct);
|
|
ValidWatches = LayerTimeLineSetOne("radar", IsFct);
|
|
ReloadSlider(ValidWatches);
|
|
|
|
|
|
break;
|
|
|
|
|
|
default:
|
|
|
|
}
|
|
|
|
|
|
}
|
|
//:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
|
|
MapRun = function(AnimGo) {
|
|
if (AnimGo) {
|
|
setInterval(function() {
|
|
map4.removeLayer(defaultweather4);
|
|
FctTime = Date.now();
|
|
defaultweather4 = GetWeather("radarFcst", wtms);
|
|
map4.addLayer(defaultweather4)
|
|
map4.invalidateSize();
|
|
}, 2000);
|
|
}
|
|
}
|
|
|
|
//===========================Get layer Settings Maxter:::::::::::::
|
|
|
|
async function GetWeatherJson() {
|
|
const response = await fetch(SetWurl);
|
|
const WSetJson = await response.json();
|
|
return WSetJson;
|
|
}
|
|
GetWeatherJson().then(WSetJson => {
|
|
console.log("::::::::::::::::::::::::");
|
|
console.log(WSetJson);
|
|
jsonSetWurl = WSetJson;
|
|
|
|
Map4Start();
|
|
|
|
|
|
});
|
|
|
|
//==========================================================Get TimsRecords
|
|
var GetLayerTimeSet = function(LayerName) {
|
|
var TimeRecords = [];
|
|
TimeObjects = jsonSetWurl["seriesInfo"][LayerName]["series"];
|
|
TimeObjects.forEach(function(item, indexthis) {
|
|
var ThisItem = TimeObjects[indexthis]["ts"];
|
|
TimeRecords.push(ThisItem);
|
|
|
|
});
|
|
return TimeRecords; // Maxter here Genrerate Times of weather
|
|
}
|
|
//======================================================================Get TimelayerForecasts MAxter:::::::::
|
|
var GetLayerTimeSetFc = function(LayerName, TimSelect) {
|
|
var TimeFcObjects = [];
|
|
var TimFctRecords = [];
|
|
TimeFcObjects = jsonSetWurl["seriesInfo"][LayerName]["series"];
|
|
TimeFcObjects.forEach(function(itemtime, indextme) {
|
|
var ThisItem = TimeFcObjects[indextme]["ts"];
|
|
if (ThisItem == TimSelect) {
|
|
var ThisItemNods = TimeFcObjects[indextme]["fts"];
|
|
ThisItemNods.forEach(function(itemfct, indexfct) {
|
|
TimFctRecords.push(itemfct);
|
|
});
|
|
|
|
}
|
|
|
|
});
|
|
|
|
return TimFctRecords; // Maxter here Genrerate FctTimes of weather
|
|
}
|
|
//====================================================================Get valid Hour : minutes::::MAxter C0d3r::::
|
|
var GetValidHourGrp = function(timgrp) {
|
|
ValidWatches = [];
|
|
timgrp.forEach(function(item, index) {
|
|
var itemtimstamp = new Date(item * 1000);
|
|
var itemhrs = itemtimstamp.getHours();
|
|
var itemminute = itemtimstamp.getMinutes();
|
|
var timemix = itemhrs + ":" + itemminute;
|
|
ValidWatches.push(timemix);
|
|
|
|
});
|
|
return ValidWatches;
|
|
}
|
|
//====================================================MapRunAll Maxter:::C0der::::::::
|
|
|
|
var MapRunAll = function(LayerName) {
|
|
var thisitemtime;
|
|
var timfcThis;
|
|
var tmefctlayer;
|
|
|
|
var timsofLasyer = GetLayerTimeSet(LayerName);
|
|
timsofLasyer.forEach(function(item, index) {
|
|
thisitemtime = item;
|
|
timfcThis = GetLayerTimeSetFc(LayerName, thisitemtime);
|
|
timfcThis.forEach(function(item, index) {
|
|
tmefctlayer = GetWeatherFct(LayerName, thisitemtime, timfcThis);
|
|
setTimeout(() => {
|
|
map4.removeLayer(defaultweather4);
|
|
defaultweather4 = tmefctlayer;
|
|
map4.addLayer(defaultweather4)
|
|
setInterval(function() {
|
|
map4.invalidateSize();
|
|
|
|
}, 100);
|
|
}, 2000);
|
|
});
|
|
|
|
});
|
|
|
|
}
|
|
|
|
//::::::::::::::::::::::::::::::::::::::::::::::::::::::::
|
|
var CurrentClock = function() {
|
|
var now = new Date();
|
|
var timecurrent = now.getHours();
|
|
return timecurrent;
|
|
}
|
|
|
|
|
|
|
|
var CurrentWeatherTime = function(LayerName) {
|
|
var localtime = Date.now();
|
|
var weatherTimeSet = GetLayerTimeSet(LayerName);
|
|
var BestTime;
|
|
|
|
|
|
var closest = weatherTimeSet.reduce(function(prev, curr) {
|
|
|
|
BestTime = (Math.abs(curr - localtime) < Math.abs(prev - localtime) ? curr : prev);
|
|
});
|
|
return BestTime;
|
|
|
|
}
|
|
|
|
|
|
// var MapSetCurrent = function(LayerName) {
|
|
// var Allitemtime = GetLayerTimeSet(LayerName);
|
|
// var thisitemtime = Allitemtime[0];
|
|
// var thisitemFct = GetLayerTimeSetFc(LayerName, thisitemtime);
|
|
// var currentFct = thisitemFct[0];
|
|
// if (defaultweather4) { map4.removeLayer(defaultweather4); }
|
|
// defaultweather4 = GetWeather(LayerName, thisitemtime, thisitemFct);
|
|
// map4.addLayer(defaultweather4)
|
|
// setInterval(function() {
|
|
// map4.invalidateSize();
|
|
|
|
// }, 100);
|
|
|
|
// }
|
|
|
|
|
|
|
|
var MapSetCurrent = function(LayerName, IsFct) {
|
|
var Allitemtime = GetLayerTimeSet(LayerName);
|
|
var thisitemtime = Allitemtime[0];
|
|
if (IsFct) {
|
|
var thisitemFct = GetLayerTimeSetFc(LayerName, thisitemtime);
|
|
var currentFct = thisitemFct[0];
|
|
if (defaultweather4) { map4.removeLayer(defaultweather4); }
|
|
defaultweather4 = GetWeatherFct(LayerName, thisitemtime, currentFct);
|
|
} else {
|
|
if (defaultweather4) { map4.removeLayer(defaultweather4); }
|
|
defaultweather4 = GetWeather(LayerName, thisitemtime);
|
|
}
|
|
|
|
//==============================================================
|
|
|
|
|
|
|
|
map4.addLayer(defaultweather4)
|
|
setInterval(function() {
|
|
map4.invalidateSize();
|
|
|
|
}, 100);
|
|
|
|
}
|
|
|
|
|
|
|
|
//==================================================
|
|
|
|
//=================================================Live Map Loader MAxter::::::::::::::::::::::::
|
|
|
|
var MapSetCurrentLive = function(LayerName, IsFct, TimeStep, FctStep) {
|
|
var Allitemtime = GetLayerTimeSet(LayerName);
|
|
var thisitemtime = Allitemtime[TimeStep - 1];
|
|
if (IsFct) {
|
|
var thisitemFct = GetLayerTimeSetFc(LayerName, thisitemtime);
|
|
var currentFct = thisitemFct[0];
|
|
if (defaultweather4) { map4.removeLayer(defaultweather4); }
|
|
defaultweather4 = GetWeatherFct(LayerName, thisitemtime, currentFct);
|
|
} else {
|
|
if (defaultweather4) { map4.removeLayer(defaultweather4); }
|
|
defaultweather4 = GetWeather(LayerName, thisitemtime);
|
|
}
|
|
|
|
|
|
map4.addLayer(defaultweather4)
|
|
setInterval(function() {
|
|
map4.invalidateSize();
|
|
|
|
}, 100);
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var Map4Start = function() {
|
|
map4Layer = "temp";
|
|
var Allitemtime = GetLayerTimeSet("temp");
|
|
var ThisItemtime = Allitemtime[0];
|
|
// var TimeGrp = GetValidHourGrp(Allitemtime);
|
|
// console.log(TimeGrp);
|
|
// var itemtimstamp = new Date(ThisItemtime * 1000);
|
|
// console.log(itemtimstamp);
|
|
// var itemhrs = itemtimstamp.getHours();
|
|
// var itemminute = itemtimstamp.getMinutes();
|
|
// alert(itemhrs + ":" + itemminute + "--" + ThisItemtime + "::" + itemhrs);
|
|
// var thisitemFct = GetLayerTimeSetFc("temp", ThisItemtime);
|
|
// var currentFct = thisitemFct[0];
|
|
if (defaultweather4) { map4.removeLayer(defaultweather4); }
|
|
defaultweather4 = GetWeather("temp", ThisItemtime);
|
|
map4.addLayer(defaultweather4)
|
|
setInterval(function() {
|
|
map4.invalidateSize();
|
|
|
|
}, 100);
|
|
|
|
var thistimeline = GetValidHourGrp(Allitemtime);
|
|
|
|
console.log(thistimeline);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
//::::::::::::::::::::::::::::::::::::::::::::::::::::::
|
|
var GetWeatherFct = function(W_type, W_time, W_FcTime) {
|
|
var wurl;
|
|
wurl = "https://api.weather.com/v3/TileServer/tile?product=" + W_type + "&ts=" + W_time + "&fts=" + W_FcTime + "&xyz={x}:{y}:{z}&apiKey=" + Weather_key;
|
|
return L.tileLayer(wurl, { opacity: 0.4 });
|
|
|
|
}
|
|
//:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
|
|
var GetWeather = function(W_type, W_time) {
|
|
var wurl;
|
|
wurl = "https://api.weather.com/v3/TileServer/tile?product=" + W_type + "&ts=" + W_time + "&xyz={x}:{y}:{z}&apiKey=" + Weather_key;
|
|
return L.tileLayer(wurl, { opacity: 0.4 });
|
|
|
|
}
|
|
//:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
|
|
|
|
|
|
//================Map timeline :::MAxC0d3r::::::::::::::::
|
|
var LayerTimeLineSet = function(LayerName, IsFct) {
|
|
var thislayername = LayerName;
|
|
var thisFct = IsFct;
|
|
var thisitemtime;
|
|
var timfcThis;
|
|
var tmefctlayer;
|
|
var TimesLine = [];
|
|
var TimeFctLine = [];
|
|
var thistimeindex = 0;
|
|
var thistimefctindex;
|
|
|
|
var timsofLasyer = GetLayerTimeSet(LayerName);
|
|
// console.log(timsofLasyer);
|
|
timsofLasyer.forEach(function(itemtime, index) {
|
|
thisitemtime = itemtime;
|
|
thistimeindex = thistimeindex + 1;
|
|
var itemtimstamp = new Date(thisitemtime * 1000);
|
|
var itemhrs = itemtimstamp.getHours();
|
|
var itemminute = itemtimstamp.getMinutes();
|
|
var timemix = itemhrs + ":" + itemminute;
|
|
TimesLine.push({ "id": thistimeindex, "timeis": thisitemtime, "validWatch": timemix, "LayerName": thislayername, "Fct": IsFct });
|
|
|
|
|
|
if (IsFct) {
|
|
timfcThis = GetLayerTimeSetFc(LayerName, thisitemtime);
|
|
// console.log(timfcThis);
|
|
timfcThis.forEach(function(itemtimefct, index) {
|
|
|
|
thistimeindex = thistimeindex + 1;
|
|
var itemtimfctstamp = new Date(itemtimefct * 1000);
|
|
var itemfcthrs = itemtimfctstamp.getHours();
|
|
var itemfctminute = itemtimfctstamp.getMinutes();
|
|
var timefctmix = itemfcthrs + ":" + itemfctminute;
|
|
TimesLine.push({ "id": thistimeindex, "timeis": thisitemtime, "validWatch": timefctmix, "timefctis": itemtimefct, "LayerName": thislayername, "Fct": IsFct });
|
|
|
|
});
|
|
}
|
|
|
|
});
|
|
|
|
console.log(TimesLine);
|
|
return TimesLine;
|
|
|
|
|
|
}
|
|
|
|
|
|
//:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
|
|
//================Map timeline :::MAxC0d3r::::::::::::::::
|
|
var LayerTimeLineSetOne = function(LayerName, IsFct) {
|
|
var thislayername = LayerName;
|
|
var thisFct = IsFct;
|
|
var thisitemtime;
|
|
var timfcThis;
|
|
var tmefctlayer;
|
|
var TimesLine = [];
|
|
var TimeFctLine = [];
|
|
var thistimeindex = 0;
|
|
var thistimefctindex;
|
|
|
|
var timsofLasyer = GetLayerTimeSet(LayerName);
|
|
// console.log(timsofLasyer);
|
|
timsofLasyer.forEach(function(itemtime, index) {
|
|
thisitemtime = itemtime;
|
|
thistimeindex = thistimeindex + 1;
|
|
var itemtimstamp = new Date(thisitemtime * 1000);
|
|
var itemhrs = itemtimstamp.getHours();
|
|
var itemminute = itemtimstamp.getMinutes();
|
|
var timemix = itemhrs + ":" + itemminute;
|
|
if (!IsFct) {
|
|
TimesLine.push({ "id": thistimeindex, "timeis": thisitemtime, "validWatch": timemix, "LayerName": thislayername, "Fct": IsFct });
|
|
}
|
|
|
|
|
|
|
|
if (IsFct) {
|
|
timfcThis = GetLayerTimeSetFc(LayerName, thisitemtime);
|
|
var thisvaluefct = timfcThis[0];
|
|
TimesLine.push({ "id": thistimeindex, "timeis": thisitemtime, "validWatch": timemix, "timefctis": thisvaluefct, "LayerName": thislayername, "Fct": IsFct });
|
|
|
|
|
|
|
|
// console.log(TimesLine);
|
|
|
|
}
|
|
|
|
});
|
|
|
|
console.log(TimesLine);
|
|
return TimesLine;
|
|
|
|
|
|
}
|
|
|
|
//:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
|
|
var ReloadSlider = function(Timsgrp) {
|
|
$(".irs").remove();
|
|
$(".TimeSlider").remove();
|
|
var thiswathces = [];
|
|
var thisitemwatch;
|
|
Timsgrp.forEach(function(itemwatch, index) {
|
|
thisitemwatch = itemwatch.validWatch;
|
|
thiswathces.push(thisitemwatch);
|
|
|
|
});
|
|
thiswathces.sort();
|
|
|
|
$(".timelooper").append(" <input type='text' id='TimeSlider' class='TimeSlider' style='display:none'>");
|
|
|
|
// var my_range = $("TimeSlider").data("ionRangeSlider");
|
|
// my_range.destroy();
|
|
// // 3. Update range slider content (this will change handles positions)
|
|
// my_range.update({
|
|
// skin: "flat",
|
|
// values: thiswathces,
|
|
// grid: true,
|
|
// step: 1,
|
|
// onChange: function(data) {
|
|
// var timlayerstep = data.from;
|
|
// SliderCurrentStep = timlayerstep;
|
|
// MapSetCurrentLive(map4Layer, IsFct, timlayerstep, "0");
|
|
// console.log(data.from);
|
|
// },
|
|
// onStart: function(data) {
|
|
|
|
// SliderCurrentStep = data.from;
|
|
|
|
// }
|
|
// });
|
|
|
|
// // 4. Reset range slider to initial values
|
|
// my_range.reset();
|
|
|
|
|
|
|
|
|
|
|
|
$('.TimeSlider').ionRangeSlider({
|
|
skin: "flat",
|
|
values: thiswathces,
|
|
grid: true,
|
|
step: 1,
|
|
from: 0,
|
|
onChange: function(data) {
|
|
var timlayerstep = data.from;
|
|
SliderCurrentStep = timlayerstep;
|
|
MapSetCurrentLive(map4Layer, IsFct, timlayerstep, "0");
|
|
console.log(data.from);
|
|
},
|
|
onStart: function(data) {
|
|
|
|
SliderCurrentStep = data.from;
|
|
|
|
}
|
|
});
|
|
|
|
|
|
$(".TimeSlider").fadeIn();
|
|
}
|
|
|
|
|
|
var RunSlidermax = function() {
|
|
$('#playstat').toggleClass("fa-play-circle fa-pause-circle");
|
|
var GoSlidermax = function() {
|
|
var pop = 1;
|
|
if (!mapinstop) {
|
|
|
|
var ringer = ValidWatches.length;
|
|
|
|
if (looper < ringer) {
|
|
|
|
$('#TimeSlider').data("ionRangeSlider").update({
|
|
from: looper,
|
|
});
|
|
MapSetCurrentLive(map4Layer, IsFct, looper, "0");
|
|
|
|
setTimeout(function() {
|
|
GoSlidermax();
|
|
|
|
|
|
}, 1000);
|
|
looper++;
|
|
|
|
} else {
|
|
looper = 0;
|
|
GoSlidermax();
|
|
}
|
|
|
|
}
|
|
};
|
|
|
|
mapinstop = !mapinstop ? true : false;
|
|
GoSlidermax();
|
|
};
|
|
|
|
var StopMapmax = function() {
|
|
mapinstop = true;
|
|
$('#playstat').removeClass("fa-pause-circle");
|
|
$('#playstat').addClass("fa-play-circle");
|
|
|
|
|
|
} |