first commit
107
public/js/Backup_Code.js
Normal file
@@ -0,0 +1,107 @@
|
||||
geoDataListComb.forEach((c) => {
|
||||
const myArray = c.split(",");
|
||||
//console.log("c: "+myArray[0]+myArray[1]);
|
||||
if (!uniqueData.includes(myArray[0] + myArray[1])) {
|
||||
uniqueData.push(myArray[0] + myArray[1]);
|
||||
uniqueDataTooltip.push(c);
|
||||
listIdLDs.push(parseInt(myArray[3]));
|
||||
//console.log(c);
|
||||
}
|
||||
else {
|
||||
doubleData.push(myArray[0] + "," + myArray[1]);
|
||||
//console.log(doubleData);
|
||||
L.marker([myArray[0], myArray[1]],
|
||||
{
|
||||
icon: markerGroup
|
||||
|
||||
}).addTo(map);
|
||||
}
|
||||
});
|
||||
dataMeasures.forEach((c) => {
|
||||
//console.log(c);
|
||||
if (!uniqueGMAFilter.includes(c.IdLD)) {
|
||||
uniqueGMAFilter.push(c.IdLD);
|
||||
uniqueGMA.push(c);
|
||||
|
||||
}
|
||||
else {
|
||||
|
||||
}
|
||||
});
|
||||
|
||||
//console.log(uniqueGMA);
|
||||
|
||||
for (let index = 0; index < uniqueDataTooltip.length; index++) {
|
||||
let element = uniqueDataTooltip[index].split(",");
|
||||
let lat = element[0];
|
||||
let lng = element[1];
|
||||
let ID = element[2];
|
||||
let IdLD = element[3];
|
||||
|
||||
const Tooltip = L.marker([lat, lng], { icon: invisibleMarker }).bindTooltip('<div>'
|
||||
+ '<div id="value1-' + IdLD + '" style="font-weight:700;">---</div>'
|
||||
+ '<div id="value2-' + IdLD + '" style="font-weight:700;">---</div>'
|
||||
+ '<div id="value3-' + IdLD + '" style="font-weight:700;">---</div>'
|
||||
+ '<div id="value4-' + IdLD + '" style="font-weight:700;">---</div>'
|
||||
+ '</div>', { permanent: true, direction: "right", opacity: 0.8, offset: L.point({ x: 10, y: 0 }) }).openTooltip().addTo(GMA);
|
||||
|
||||
}
|
||||
/////////////////////////////////////////////////////////////////////////
|
||||
|
||||
let uniqueDataApp = [];
|
||||
let uniqueGMAApp = [];
|
||||
|
||||
console.log(geoDataListComb);
|
||||
console.log(dataMeasures);
|
||||
console.log(uniqueGMA);
|
||||
|
||||
geoDataListComb.forEach((c) => {
|
||||
const myArray = c.split(",");
|
||||
console.log("c: "+myArray[0]+myArray[1]);
|
||||
if (!uniqueDataApp.includes(myArray[0]+myArray[1]+myArray[2]+myArray[3])) {
|
||||
uniqueDataApp.push(myArray[0]+myArray[1]+myArray[2]+myArray[3]);
|
||||
//console.log(c);
|
||||
}
|
||||
});
|
||||
|
||||
dataMeasures.forEach((c) => {
|
||||
const myArray = c.split(",");
|
||||
if (!uniqueGMAApp.includes(myArray[0]+myArray[1]+myArray[2]+myArray[3])) {
|
||||
uniqueGMAApp.push(myArray[0]+myArray[1]+myArray[2]+myArray[3]);
|
||||
}
|
||||
});
|
||||
|
||||
console.log("Datalist");
|
||||
console.log(uniqueDataApp);
|
||||
console.log("GMAlist");
|
||||
console.log(uniqueGMAApp);
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
/*Polyline example
|
||||
[53.46130277, 7.91247367],
|
||||
[53.46010189, 7.92521953],
|
||||
[53.45266587, 7.91526317],
|
||||
[53.44338822, 8.02525520],
|
||||
[53.39612505, 8.10301780],
|
||||
[53.35034638, 8.119068145],
|
||||
[53.29661923, 8.14344406],
|
||||
[53.24229794, 8.17610263],
|
||||
[53.24241351, 8.17718625]
|
||||
|
||||
];
|
||||
|
||||
var polyline = L.polyline(latlngs, {color: 'green',weight: 5,lineCap: 'square'}).bindPopup('<b style="font-size:1.25rem;">Name</b><br /><b>Device</b><br /><b>Area</b> ( Area Name )<br /><b>Location Short</b> ( Test )').addTo(map);
|
||||
|
||||
polyline.on('mouseover', function (e) {
|
||||
this.openPopup();
|
||||
this.setStyle({
|
||||
weight: 15
|
||||
});
|
||||
});
|
||||
polyline.on('mouseout', function (e) {
|
||||
this.closePopup();
|
||||
this.setStyle({
|
||||
weight: 5
|
||||
});
|
||||
});*/
|
||||
160
public/js/app.js
Normal file
@@ -0,0 +1,160 @@
|
||||
/**
|
||||
* @file app.js
|
||||
* @author Andreas Tholen
|
||||
* Contact: info@littwin-systechnik.de
|
||||
* @version 0.5.3
|
||||
* @description Basic Functions
|
||||
*/
|
||||
|
||||
$(document).foundation();
|
||||
|
||||
//document.getElementById("fullSideMenuCard").style.height = windowHeight+"px";
|
||||
|
||||
// Sidemenu Config
|
||||
if ((!standardSideMenu) || (fullSideMenu)) {
|
||||
const collection = document.getElementsByClassName("standardSideMenu");
|
||||
for (let i = 0; i < collection.length; i++) {
|
||||
collection[i].style.display = "none";
|
||||
}
|
||||
}
|
||||
|
||||
if ((!fullSideMenu) || (standardSideMenu)) {
|
||||
const collectionb = document.getElementsByClassName("fullSideMenu");
|
||||
for (let i = 0; i < collectionb.length; i++) {
|
||||
collectionb[i].style.display = "none";
|
||||
}
|
||||
}
|
||||
|
||||
var stationCardTempList = "";
|
||||
var stationCardTemp = '<div class="card">'
|
||||
+'<div class="title-bar">'
|
||||
+'<div class="title-bar-left">'
|
||||
+'<span class="title-bar-title" style="color:#000000;padding-left:0.5rem ;">Standort</span>'
|
||||
+'</div>'
|
||||
+'<div class="title-bar-right">'
|
||||
+'<a><i class="fi-alert" title="Weitere Infos" style="color:red;font-size:1.5rem;padding-right:10px;" data-open="weitereInfos"></i></a>'
|
||||
+'</div>'
|
||||
+'</div>'
|
||||
+'<div class="card-section" style="padding: 0px 0px 1rem 1rem !important">'
|
||||
+'Test'
|
||||
+'</div>'
|
||||
+'</div>';
|
||||
|
||||
for (let index = 0; index < 11; index++) {
|
||||
stationCardTempList += stationCardTemp;
|
||||
}
|
||||
|
||||
//document.getElementById('stationenFullSideMenu').innerHTML = stationCardTempList;
|
||||
|
||||
function getDataMenu() {
|
||||
var stationsListing = [];
|
||||
|
||||
// Stationen erfassen
|
||||
for (var i = 0; i < dataStaticlength; i++) {
|
||||
var gisStatics = dataStatic[i];
|
||||
if(filterSystems.includes(gisStatics.System)){
|
||||
var stationListing = gisStatics.Area_Name; // Area_Name
|
||||
stationsListing.push(stationListing);
|
||||
}
|
||||
}
|
||||
|
||||
// Doppelte Einträge löschen
|
||||
console.log("%cMAP| Einträge der Stationen werden geprüft",'color: green');
|
||||
let uniqueStations = [];
|
||||
stationsListing.forEach((c) => {
|
||||
if (!uniqueStations.includes(c)) {
|
||||
uniqueStations.push(c);
|
||||
}
|
||||
});
|
||||
|
||||
console.log("%cMAP| Stationen indexiert: %c"+uniqueStations.sort(),'color: green', 'color:grey');
|
||||
uniqueStations = uniqueStations.sort();
|
||||
|
||||
var select = document.getElementById("stationListing");
|
||||
|
||||
for(var i = 0; i < uniqueStations.length; i++) {
|
||||
var opt = uniqueStations[i];
|
||||
var el = document.createElement("option");
|
||||
el.textContent = opt;
|
||||
el.value = opt;
|
||||
el.style.color = "#000000";
|
||||
el.style.fontWeight = "thin";
|
||||
select.appendChild(el);
|
||||
}
|
||||
}
|
||||
|
||||
/*var checkbox = document.querySelector("#box-TALAS");
|
||||
|
||||
checkbox.addEventListener('change', function() {
|
||||
if (this.checked) {
|
||||
map.addLayer(TALAS);
|
||||
|
||||
console.log("TALAS is checked..");
|
||||
} else {
|
||||
map.removeLayer(TALAS);
|
||||
|
||||
console.log("TALAS is not checked..");
|
||||
}
|
||||
});
|
||||
|
||||
var checkbox = document.querySelector("#box-GMA");
|
||||
|
||||
checkbox.addEventListener('change', function() {
|
||||
if (this.checked) {
|
||||
map.addLayer(GMA);
|
||||
document.getElementById("data-"+LocID).style.display = "none";
|
||||
console.log("GMA is checked..");
|
||||
} else {
|
||||
map.removeLayer(GMA);
|
||||
|
||||
console.log("GMA is not checked..");
|
||||
}
|
||||
});
|
||||
|
||||
var checkbox = document.querySelector("#box-MODEM");
|
||||
|
||||
checkbox.addEventListener('change', function() {
|
||||
if (this.checked) {
|
||||
map.addLayer(GSM);
|
||||
|
||||
console.log("GSM is checked..");
|
||||
} else {
|
||||
map.removeLayer(GSM);
|
||||
|
||||
console.log("GSM is not checked..");
|
||||
}
|
||||
});
|
||||
|
||||
var checkbox = document.querySelector("#box-SIEMENS");
|
||||
|
||||
checkbox.addEventListener('change', function() {
|
||||
if (this.checked) {
|
||||
map.addLayer(Siemens);
|
||||
|
||||
console.log("Notrufsäulen is checked..");
|
||||
} else {
|
||||
map.removeLayer(Siemens);
|
||||
|
||||
console.log("Notrufsäulen is not checked..");
|
||||
}
|
||||
});*/
|
||||
|
||||
|
||||
// ISS Positions-Update Test
|
||||
var iss;
|
||||
function update_position() {
|
||||
$.getJSON('http://api.open-notify.org/iss-now.json', function(data) {
|
||||
var latitude = data["iss_position"]["latitude"];
|
||||
var longitude = data["iss_position"]["longitude"];
|
||||
if (!iss) {
|
||||
iss = L.marker([latitude,longitude], {icon: spaceStationMarker}).bindPopup("Ich bin die ISS").addTo(map);
|
||||
}
|
||||
iss.setLatLng([latitude,longitude]).update();
|
||||
setTimeout(update_position, 1000);
|
||||
});
|
||||
}
|
||||
update_position();
|
||||
|
||||
|
||||
|
||||
|
||||
206
public/js/conditions.js
Normal file
@@ -0,0 +1,206 @@
|
||||
var statusData = [];
|
||||
var statusDataCable = [];
|
||||
var statusDataKue = [];
|
||||
|
||||
function getConditions() {
|
||||
//console.log("%cDAT | Angezeigte Punkte : 4880", "color:blue;");
|
||||
//console.log("%cDAT | Angezeigte Linien : ---", "color:blue;");
|
||||
|
||||
console.log("%cSYS | Meldungen werden geladen","color:orange;");
|
||||
|
||||
var req = new XMLHttpRequest();
|
||||
req.open("GET", jsonStatusURL , true);
|
||||
|
||||
req.onreadystatechange = function(){
|
||||
if ( req.readyState == 4) {
|
||||
if ( req.status >= 200 && req.status < 300 ||req.status == 304 ) {
|
||||
var returnData = req.responseText;
|
||||
console.log('Statis geladen');
|
||||
statusData = JSON.parse(returnData);
|
||||
setConditions();
|
||||
} else {
|
||||
console.log("Fehler; request.status = " + req.status);
|
||||
}
|
||||
req = null;
|
||||
};
|
||||
}
|
||||
req.send();
|
||||
}
|
||||
|
||||
function getConditionsCable() {
|
||||
console.log("%cSYS | Meldungen werden geladen","color:orange;");
|
||||
|
||||
var req = new XMLHttpRequest();
|
||||
req.open("GET", jsonServiceURL , true);
|
||||
|
||||
req.onreadystatechange = function(){
|
||||
if ( req.readyState == 4) {
|
||||
if ( req.status >= 200 && req.status < 300 ||req.status == 304 ) {
|
||||
var returnData = req.responseText;
|
||||
console.log('Dienst Statis geladen');
|
||||
statusDataCable = JSON.parse(returnData);
|
||||
getConditionsKue();
|
||||
} else {
|
||||
console.log("Fehler; request.status = " + req.status);
|
||||
}
|
||||
req = null;
|
||||
};
|
||||
}
|
||||
req.send();
|
||||
}
|
||||
|
||||
function getConditionsKue() {
|
||||
console.log("%cSYS | Meldungen werden geladen","color:orange;");
|
||||
|
||||
var req = new XMLHttpRequest();
|
||||
req.open("GET", jsonKueStatusURL , true);
|
||||
|
||||
req.onreadystatechange = function(){
|
||||
if ( req.readyState == 4) {
|
||||
if ( req.status >= 200 && req.status < 300 ||req.status == 304 ) {
|
||||
var returnData = req.responseText;
|
||||
console.log('KUE Statis geladen');
|
||||
statusDataKue= JSON.parse(returnData);
|
||||
setConditionsCable();
|
||||
document.getElementById("loadingMap").innerHTML = "";
|
||||
} else {
|
||||
console.log("Fehler; request.status = " + req.status);
|
||||
}
|
||||
req = null;
|
||||
};
|
||||
}
|
||||
req.send();
|
||||
}
|
||||
|
||||
function setConditions() {
|
||||
// Shape Color Change
|
||||
var anzahlStatis = statusData.Statis.length;
|
||||
var IdLalt = 0;
|
||||
var idlSet = [];
|
||||
|
||||
for (var n = 0; n < anzahlStatis; n++) {
|
||||
|
||||
if (statusData.Statis[n].IdL > 0) {
|
||||
//console.log(statusData.Statis[n].IdL);
|
||||
var statusID = statusData.Statis[n].IdL;
|
||||
var statusColor = statusData.Statis[n].Co;
|
||||
var statusFeld = statusData.Statis[n].Feld;
|
||||
var statusNa = statusData.Statis[n].Na;
|
||||
var shape = stage.find("#stationCircle"+statusID);
|
||||
|
||||
if(idlSet.indexOf(statusID) !== -1){
|
||||
//console.log("ID vorhanden! "+statusID)
|
||||
|
||||
} else{
|
||||
//console.log("ID noch nicht vorhanden! "+statusID)
|
||||
|
||||
shape.fill(statusColor);
|
||||
var shapeQuad = stage.find("#station"+statusFeld+"f"+statusID);
|
||||
//console.log("StatusID= station"+statusFeld+"f"+statusID+" Statusfarbe= "+statusColor);
|
||||
shapeQuad.fill(statusColor);
|
||||
|
||||
|
||||
if (newScale <= 10){
|
||||
shape.height((standardMeldestationen/5)*meldungMeldestationen);
|
||||
shape.width((standardMeldestationen/5)*meldungMeldestationen);
|
||||
shape.strokeWidth((standardMeldestationen/100)*meldungMeldestationen);
|
||||
}
|
||||
else {
|
||||
shape.height(standardMeldestationen/5);
|
||||
shape.width(standardMeldestationen/5);
|
||||
shape.strokeWidth(standardMeldestationen/100);
|
||||
}
|
||||
}
|
||||
IdLalt = statusID;
|
||||
idlSet.push(statusID);
|
||||
}
|
||||
}
|
||||
layer.batchDraw();
|
||||
}
|
||||
|
||||
function setConditionsCable() {
|
||||
// Menge an Meldungen Service
|
||||
var anzahlStatis = statusDataCable.Statis.length;
|
||||
console.log("Anzahl geladener Dienst Stati : "+anzahlStatis);
|
||||
// Menge an Meldungen KUE
|
||||
var anzahlStatisKue = statusDataKue.Statis.length;
|
||||
console.log("Anzahl geladener KUEG Stati : "+anzahlStatisKue);
|
||||
|
||||
// Dienste Meldungen
|
||||
if (document.getElementById("buttonDienste").style.opacity > 0.6) {
|
||||
for (var n = 0; n < anzahlStatis; n++) {
|
||||
var sucheTemp = statusDataCable.Statis[n].IdLD;
|
||||
console.log("IdlD Services: "+sucheTemp);
|
||||
for (var x = 0; x < jso.Services.length; x++) {
|
||||
if (sucheTemp == jso.Services[x].IdLD) {
|
||||
//console.log("Test: "+sucheTemp+" IdS "+jso.Services[x].IdS);
|
||||
var statusColor = statusDataCable.Statis[n].Co;
|
||||
var shape = stage.find("#line"+jso.Services[x].IdS);
|
||||
shape.stroke(statusColor);
|
||||
shape.strokeWidth(meldungCableThickness/20);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else {
|
||||
console.log("Dienste Layer abgeschaltet");
|
||||
}
|
||||
|
||||
// KUE Meldungen
|
||||
if (document.getElementById("buttonKabel").style.opacity > 0.6) {
|
||||
for (var n = 0; n < anzahlStatisKue; n++) {
|
||||
var sucheTemp = statusDataKue.Statis[n].IdLD;
|
||||
var sucheSlTemp = statusDataKue.Statis[n].Sl;
|
||||
|
||||
for (var x = 0; x < jko.Services.length; x++) {
|
||||
if (sucheTemp == jko.Services[x].IdLD && sucheSlTemp == jko.Services[x].Sl) {
|
||||
//console.log("Test: "+sucheTemp+" IdS "+jko.Services[x].IdS);
|
||||
var statusColor = statusDataKue.Statis[n].Co;
|
||||
var shape = stage.find("#line"+jko.Services[x].IdS);
|
||||
shape.stroke(statusColor);
|
||||
shape.strokeWidth(meldungCableThickness/5);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else {
|
||||
console.log("KÜG Layer abgeschaltet");
|
||||
}
|
||||
|
||||
layer.batchDraw();
|
||||
|
||||
}
|
||||
|
||||
function ulafCableDisable() {
|
||||
var anzahlUlafKabel = jso.Services.length;
|
||||
for (var n = 0; n < anzahlUlafKabel; n++) {
|
||||
var shape = stage.find("#line"+jso.Services[n].IdS);
|
||||
//console.log(jso.Services[n].IdS);
|
||||
shape.hide();
|
||||
layer.batchDraw();
|
||||
}
|
||||
var anzahlKUEKabel = jko.Services.length;
|
||||
for (var n = 0; n < anzahlKUEKabel; n++) {
|
||||
var shape = stage.find("#line"+jko.Services[n].IdS);
|
||||
//console.log(jko.Services[n].IdS);
|
||||
shape.show();
|
||||
layer.batchDraw();
|
||||
}
|
||||
}
|
||||
|
||||
function kueCableDisable() {
|
||||
var anzahlKUEKabel = jko.Services.length;
|
||||
for (var n = 0; n < anzahlKUEKabel; n++) {
|
||||
var shape = stage.find("#line"+jko.Services[n].IdS);
|
||||
//console.log(jso.Services[n].IdS);
|
||||
shape.hide();
|
||||
layer.batchDraw();
|
||||
}
|
||||
var anzahlUlafKabel = jso.Services.length;
|
||||
for (var n = 0; n < anzahlUlafKabel; n++) {
|
||||
var shape = stage.find("#line"+jso.Services[n].IdS);
|
||||
//console.log(jko.Services[n].IdS);
|
||||
shape.show();
|
||||
layer.batchDraw();
|
||||
}
|
||||
}
|
||||
47
public/js/config copy.js
Normal file
@@ -0,0 +1,47 @@
|
||||
/**
|
||||
* @file config.js
|
||||
* @author Andreas Tholen
|
||||
* Contact: info@littwin-systechnik.de
|
||||
* @version 0.5.3
|
||||
* @description Config-File for the TALAS.Map
|
||||
**/
|
||||
|
||||
//Versionsnummer
|
||||
var mapVersion = "0.5.3";
|
||||
|
||||
//Zoom
|
||||
var mapZoomMin = 4;
|
||||
var mapZoomMax = 15;
|
||||
|
||||
//Datenquelle
|
||||
var offlineData = true; //
|
||||
|
||||
// GMA LTE Modem
|
||||
var mapDataStaticUrl = "http://10.10.0.13/talas5/ClientData/WebserviceMap.asmx/GisStationsStatic?idMap=8";
|
||||
var mapDataStatusUrl = "http://10.10.0.13/talas5/ClientData/WebserviceMap.asmx/GisStationsStatus?idMap=8";
|
||||
var notrufDataStaticUrl = "http://10.10.0.13/talas5/ClientData/WebserviceMap.asmx/GisStationsStatic?idMap=10";
|
||||
var notrufDataStatusUrl = "http://10.10.0.13/talas5/ClientData/WebserviceMap.asmx/GisStationsStatus?idMap=10";
|
||||
const mapStaticOfflineURL = "offlineTestData/idMap8GisStationenStatic.json";
|
||||
const mapStatusOfflineURL = "offlineTestData/idMap8GisStationenStatus.json";
|
||||
const notrufStaticOfflineURL = "offlineTestData/idMap10GisStationenStatic.json";
|
||||
const notrufStatusOfflineURL = "offlineTestData/idMap10GisStationenStatus.json";
|
||||
if (offlineData = true) {
|
||||
console.log("%cSYSTEM| Offline Daten aktiviert!", 'color: blue');
|
||||
mapDataStaticUrl = mapStaticOfflineURL;
|
||||
mapDataStatusUrl = mapStatusOfflineURL;
|
||||
notrufDataStaticUrl = notrufStaticOfflineURL;
|
||||
notrufDataStatusUrl = notrufStatusOfflineURL;
|
||||
console.log("%cSYSTEM| Static URL: %c"+mapDataStaticUrl, 'color: blue', 'color: green');
|
||||
console.log("%cSYSTEM| Status URL: %c"+mapDataStatusUrl, 'color: blue', 'color: green');
|
||||
console.log("%cSYSTEM| Static URL: %c"+notrufDataStaticUrl, 'color: blue', 'color: green');
|
||||
console.log("%cSYSTEM| Status URL: %c"+notrufDataStatusUrl, 'color: blue', 'color: green');
|
||||
}
|
||||
|
||||
// Update Zeit
|
||||
var updateIntervall = 5000; // in Millisekunden
|
||||
|
||||
// example -> L.marker([51.5, -0.09], {icon: greenIcon}).addTo(map);
|
||||
console.log("%cSYSTEM| Kartenfunktionen geladen", 'color: blue');
|
||||
console.log("%cSYSTEM| Die aktuelle Fenstergröße Breite: " + window.innerWidth+"px Höhe: "+window.innerHeight + "px", 'color: blue');
|
||||
console.log("%cMAP| Marker-Icons preload abgeschlossen", 'color: green');
|
||||
console.log("%cMAP| Updateintervall: "+updateIntervall+" ms", 'color: green');
|
||||
70
public/js/config.js
Normal file
@@ -0,0 +1,70 @@
|
||||
/**
|
||||
* @file config.js
|
||||
* @author Andreas Tholen
|
||||
* Contact: info@littwin-systechnik.de
|
||||
* @version 0.5.3
|
||||
* @description Config-File for the TALAS.Map
|
||||
**/
|
||||
|
||||
//Versionsnummer
|
||||
var mapVersion = "0.5.3";
|
||||
|
||||
//Visual Config
|
||||
var standardSideMenu = true;
|
||||
var fullSideMenu = false;
|
||||
|
||||
// Window Height erkennen
|
||||
var windowHeight = window.innerHeight;
|
||||
//console.log("windowheighet:"+windowHeight);
|
||||
|
||||
//Zoom
|
||||
var mapZoomMin = 4;
|
||||
var mapZoomMax = 17;
|
||||
|
||||
//Datenquelle
|
||||
var offlineData = false;
|
||||
var serverURL = "http://10.10.0.13";
|
||||
|
||||
var url_string = window.location;
|
||||
var url = new URL(url_string);
|
||||
var c = url.searchParams.get("m");
|
||||
//c = 10;
|
||||
console.log("idMap: "+c);
|
||||
|
||||
var user = url.searchParams.get("u");
|
||||
if (user === null) {
|
||||
user = 487;
|
||||
}
|
||||
console.log("idUser: "+user);
|
||||
|
||||
// Kartedaten einlesen
|
||||
var mapDataStaticUrl = serverURL+"/talas5/ClientData/WebserviceMap.asmx/GisStationsStaticDistrict?idMap="+c+"&idUser="+user;
|
||||
var mapDataStatusUrl = serverURL+"/talas5/ClientData/WebserviceMap.asmx/GisStationsStatusDistrict?idMap="+c+"&idUser="+user;
|
||||
var mapDataMeasures = serverURL+"/talas5/ClientData/WebserviceMap.asmx/GisStationsMeasurements?idMap="+c;
|
||||
var mapDataIconUrl = serverURL+"/talas5/ClientData/WebserviceMap.asmx/GetIconsStatic";
|
||||
var mapDataSystemUrl = serverURL+"/talas5/ClientData/WebserviceMap.asmx/GisSystemStatic?idMap="+c+"&idUser="+user;
|
||||
const mapStaticOfflineURL = "offlineTestData/idMap"+c+"GisStationenStatic.json";
|
||||
const mapStatusOfflineURL = "offlineTestData/idMap"+c+"GisStationenStatus.json";
|
||||
const mapSystemOfflineURL = "offlineTestData/idMap"+c+"GisSystemStatic.json";
|
||||
const mapIconsOfflineURL = "offlineTestData/icons.json";
|
||||
const mapMeasuresOfflineURL = "offlineTestData/idMap"+c+"GisSystemMeasures.json";
|
||||
|
||||
if (offlineData) {
|
||||
console.log("%cSYSTEM| Offline Daten aktiviert!", 'color: blue');
|
||||
mapDataStaticUrl = mapStaticOfflineURL;
|
||||
mapDataSystemUrl = mapSystemOfflineURL;
|
||||
mapDataStatusUrl = mapStatusOfflineURL;
|
||||
mapDataIconUrl = mapIconsOfflineURL;
|
||||
mapDataMeasures = mapMeasuresOfflineURL;
|
||||
console.log("%cSYSTEM| Static URL: %c"+mapDataStaticUrl, 'color: blue', 'color: green');
|
||||
console.log("%cSYSTEM| Status URL: %c"+mapDataStatusUrl, 'color: blue', 'color: green');
|
||||
}
|
||||
|
||||
// Update Zeit
|
||||
var updateIntervall = 5000; // in Millisekunden
|
||||
|
||||
// example -> L.marker([51.5, -0.09], {icon: greenIcon}).addTo(map);
|
||||
console.log("%cSYSTEM| Kartenfunktionen geladen", 'color: blue');
|
||||
console.log("%cSYSTEM| Die aktuelle Fenstergröße Breite: " + window.innerWidth+"px Höhe: "+window.innerHeight + "px", 'color: blue');
|
||||
console.log("%cMAP| Marker-Icons preload abgeschlossen", 'color: green');
|
||||
console.log("%cMAP| Updateintervall: "+updateIntervall+" ms", 'color: green');
|
||||
52
public/js/config.server
Normal file
@@ -0,0 +1,52 @@
|
||||
/**
|
||||
* @file config.js
|
||||
* @author Andreas Tholen
|
||||
* Contact: info@littwin-systechnik.de
|
||||
* @version 0.5.3
|
||||
* @description Config-File for the TALAS.Map
|
||||
**/
|
||||
|
||||
//Versionsnummer
|
||||
var mapVersion = "0.5.3";
|
||||
|
||||
//Zoom
|
||||
var mapZoomMin = 4;
|
||||
var mapZoomMax = 15;
|
||||
|
||||
//Datenquelle
|
||||
var offlineData = false;
|
||||
var serverURL = "http://10.10.0.13";
|
||||
|
||||
var url_string = window.location;
|
||||
console.log(window.location);
|
||||
var url = new URL(url_string);
|
||||
var c = url.searchParams.get("m");
|
||||
console.log("idMap: "+c);
|
||||
|
||||
// Kartedaten einlesen
|
||||
var mapDataStaticUrl = serverURL+"/talas5/ClientData/WebserviceMap.asmx/GisStationsStatic?idMap="+c;
|
||||
var mapDataStatusUrl = serverURL+"/talas5/ClientData/WebserviceMap.asmx/GisStationsStatus?idMap="+c;
|
||||
var mapDataIconUrl = serverURL+"/talas5/ClientData/WebserviceMap.asmx/GetIconsStatic";
|
||||
const mapStaticOfflineURL = "offlineTestData/idMap"+c+"GisStationenStatic.json";
|
||||
const mapStatusOfflineURL = "offlineTestData/idMap"+c+"GisStationenStatus.json";
|
||||
const mapIconsOfflineURL = "offlineTestData/icons.json";
|
||||
|
||||
|
||||
|
||||
if (offlineData) {
|
||||
console.log("%cSYSTEM| Offline Daten aktiviert!", 'color: blue');
|
||||
mapDataStaticUrl = mapStaticOfflineURL;
|
||||
mapDataStatusUrl = mapStatusOfflineURL;
|
||||
mapDataIconUrl = mapIconsOfflineURL;
|
||||
console.log("%cSYSTEM| Static URL: %c"+mapDataStaticUrl, 'color: blue', 'color: green');
|
||||
console.log("%cSYSTEM| Status URL: %c"+mapDataStatusUrl, 'color: blue', 'color: green');
|
||||
}
|
||||
|
||||
// Update Zeit
|
||||
var updateIntervall = 5000; // in Millisekunden
|
||||
|
||||
// example -> L.marker([51.5, -0.09], {icon: greenIcon}).addTo(map);
|
||||
console.log("%cSYSTEM| Kartenfunktionen geladen", 'color: blue');
|
||||
console.log("%cSYSTEM| Die aktuelle Fenstergröße Breite: " + window.innerWidth+"px Höhe: "+window.innerHeight + "px", 'color: blue');
|
||||
console.log("%cMAP| Marker-Icons preload abgeschlossen", 'color: green');
|
||||
console.log("%cMAP| Updateintervall: "+updateIntervall+" ms", 'color: green');
|
||||
463
public/js/functions.js
Normal file
@@ -0,0 +1,463 @@
|
||||
function fitStageIntoParentContainer() {
|
||||
|
||||
var container = document.querySelector('#stage-parent');
|
||||
|
||||
// now we need to fit stage into parent
|
||||
var containerWidth = container.offsetWidth;
|
||||
// to do this we need to scale the stage
|
||||
var scale = containerWidth / stageWidth;
|
||||
|
||||
// stage. und layer. Test
|
||||
|
||||
stage.width(stageWidth * scale);
|
||||
stage.height(stageHeight * scale);
|
||||
stage.scale({ x: scale, y: scale });
|
||||
|
||||
stage.on('wheel', (e) => {
|
||||
//getConditions()
|
||||
e.evt.preventDefault();
|
||||
var oldScale = stage.scaleX();
|
||||
|
||||
var pointer = stage.getPointerPosition();
|
||||
|
||||
var mousePointTo = {
|
||||
x: (pointer.x - stage.x()) / oldScale,
|
||||
y: (pointer.y - stage.y()) / oldScale,
|
||||
};
|
||||
|
||||
newScale = e.evt.deltaY > 0 ? oldScale * scaleBy : oldScale / scaleBy; // Mouse Wheel Richtung > oder <
|
||||
scaleRatio = newScale;
|
||||
localStorage.setItem('zoomStage', newScale);
|
||||
//console.log("Scale Wert: "+scaleRatio+" x: "+stage.x() +" y: "+stage.y());
|
||||
|
||||
//console.log("Pointer Wert x: "+pointer.x+" y: "+pointer.y);
|
||||
if (newScale > 0.20 && newScale < 150){
|
||||
stage.scale({ x: newScale, y: newScale });
|
||||
//console.log("ZOOM");
|
||||
var newPos = {
|
||||
x: pointer.x - mousePointTo.x * newScale,
|
||||
y: pointer.y - mousePointTo.y * newScale,
|
||||
};
|
||||
|
||||
stage.position(newPos);
|
||||
var pos = JSON.stringify(stage.position());
|
||||
localStorage.setItem("Position",pos);
|
||||
if(newScale <= 10 && big === 0) {
|
||||
big = 1;
|
||||
setConditions();
|
||||
}
|
||||
if(newScale > 10 && big === 1) {
|
||||
big = 0;
|
||||
setConditions();
|
||||
}
|
||||
}
|
||||
|
||||
layer.batchDraw();
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
function fitStageReset() {
|
||||
localStorage.removeItem('xStage');
|
||||
localStorage.removeItem('yStage');
|
||||
localStorage.removeItem('Position');
|
||||
localStorage.removeItem('Scale');
|
||||
localStorage.removeItem('zoomStage');
|
||||
localStorage.removeItem('AbsolutePosition');
|
||||
location.reload();
|
||||
}
|
||||
|
||||
function getStageData() {
|
||||
localStorage.removeItem('xStage');
|
||||
localStorage.removeItem('yStage');
|
||||
localStorage.removeItem('Position');
|
||||
localStorage.removeItem('Scale');
|
||||
localStorage.removeItem('zoomStage');
|
||||
localStorage.removeItem('AbsolutePosition');
|
||||
location.reload();
|
||||
}
|
||||
|
||||
fitStageIntoParentContainer();
|
||||
// adapt the stage on any window resize
|
||||
window.addEventListener('resize', fitStageIntoParentContainer);
|
||||
|
||||
function getDistance(p1, p2) {
|
||||
return Math.sqrt(Math.pow(p2.x - p1.x, 2) + Math.pow(p2.y - p1.y, 2));
|
||||
}
|
||||
|
||||
function getCenter(p1, p2) {
|
||||
return {
|
||||
x: (p1.x + p2.x) / 2,
|
||||
y: (p1.y + p2.y) / 2,
|
||||
};
|
||||
}
|
||||
|
||||
function stageTouchController(){
|
||||
var lastCenter = null;
|
||||
var lastDist = 0;
|
||||
|
||||
stage.on('touchmove', function (e) {
|
||||
stage.draggable(true);
|
||||
stage.listening(false);
|
||||
e.evt.preventDefault();
|
||||
var touch1 = e.evt.touches[0];
|
||||
var touch2 = e.evt.touches[1];
|
||||
|
||||
if (touch1 && touch2) {
|
||||
// if the stage was under Konva's drag&drop
|
||||
// we need to stop it, and implement our own pan logic with two pointers
|
||||
if (stage.isDragging()) {
|
||||
stage.stopDrag();
|
||||
}
|
||||
|
||||
var p1 = {
|
||||
x: touch1.clientX,
|
||||
y: touch1.clientY,
|
||||
};
|
||||
var p2 = {
|
||||
x: touch2.clientX,
|
||||
y: touch2.clientY,
|
||||
};
|
||||
|
||||
if (!lastCenter) {
|
||||
lastCenter = getCenter(p1, p2);
|
||||
return;
|
||||
}
|
||||
var newCenter = getCenter(p1, p2);
|
||||
|
||||
var dist = getDistance(p1, p2);
|
||||
|
||||
if (!lastDist) {
|
||||
lastDist = dist;
|
||||
}
|
||||
|
||||
// local coordinates of center point
|
||||
var pointTo = {
|
||||
x: (newCenter.x - stage.x()) / stage.scaleX(),
|
||||
y: (newCenter.y - stage.y()) / stage.scaleX(),
|
||||
};
|
||||
|
||||
var scale = stage.scaleX() * (dist / lastDist);
|
||||
|
||||
stage.scaleX(scale);
|
||||
stage.scaleY(scale);
|
||||
|
||||
// calculate new position of the stage
|
||||
var dx = newCenter.x - lastCenter.x;
|
||||
var dy = newCenter.y - lastCenter.y;
|
||||
|
||||
var newPos = {
|
||||
x: newCenter.x - pointTo.x * scale + dx,
|
||||
y: newCenter.y - pointTo.y * scale + dy,
|
||||
};
|
||||
|
||||
stage.position(newPos);
|
||||
stage.batchDraw();
|
||||
|
||||
//setConditions();
|
||||
//setConditionsCable();
|
||||
|
||||
lastDist = dist;
|
||||
lastCenter = newCenter;
|
||||
}
|
||||
});
|
||||
|
||||
stage.on('touchend', function () {
|
||||
stage.draggable(false);
|
||||
stage.listening(true);
|
||||
lastDist = 0;
|
||||
lastCenter = null;
|
||||
});
|
||||
|
||||
var container = stage.container();
|
||||
|
||||
// make it focusable
|
||||
|
||||
container.tabIndex = 1;
|
||||
// focus it
|
||||
// also stage will be in focus on its click
|
||||
container.focus();
|
||||
|
||||
const DELTA = 10;
|
||||
|
||||
container.addEventListener('keydown', function (e) {
|
||||
if (e.keyCode === 39 || e.keyCode === 68) {
|
||||
stage.listening(false);
|
||||
stage.x(stage.x() - DELTA);
|
||||
} else if (e.keyCode === 40 || e.keyCode === 83) {
|
||||
stage.listening(false);
|
||||
stage.y(stage.y() - DELTA);
|
||||
} else if (e.keyCode === 37 || e.keyCode === 65) {
|
||||
stage.listening(false);
|
||||
stage.x(stage.x() + DELTA);
|
||||
} else if (e.keyCode === 38 || e.keyCode === 87) {
|
||||
stage.listening(false);
|
||||
stage.y(stage.y() + DELTA);
|
||||
} else {
|
||||
return;
|
||||
}
|
||||
e.preventDefault();
|
||||
|
||||
layer.batchDraw();
|
||||
});
|
||||
container.addEventListener('keyup', function (e) {
|
||||
if (e.keyCode === 39 || e.keyCode === 68) {
|
||||
stage.listening(true);
|
||||
} else if (e.keyCode === 40 || e.keyCode === 83) {
|
||||
stage.listening(true);
|
||||
} else if (e.keyCode === 37 || e.keyCode === 65) {
|
||||
stage.listening(true);
|
||||
} else if (e.keyCode === 38 || e.keyCode === 87) {
|
||||
stage.listening(true);
|
||||
} else {
|
||||
return;
|
||||
}
|
||||
e.preventDefault();
|
||||
layer.batchDraw();
|
||||
});
|
||||
}
|
||||
|
||||
stageTouchController();
|
||||
|
||||
function sideReload() {
|
||||
window.location.reload(false);
|
||||
}
|
||||
|
||||
function getStationInfos(id,color) {
|
||||
//console.log("getStationInfo Test: "+id+" Farbe: "+color);
|
||||
var res = id.split("station");
|
||||
var stationIdInfo = res[1];
|
||||
//console.log("Stations Listen ID: "+stationIdInfo);
|
||||
var stationName = "";
|
||||
for(i=0;i<anzahlStationen;i++) {
|
||||
if(jdo.Points[i].IdL == stationIdInfo) {
|
||||
stationName = jdo.Points[i].Name;
|
||||
}
|
||||
}
|
||||
document.getElementById("tooltipTest").innerHTML = "<h4 style='text-transform: uppercase;'><i class='fi-marker'></i> "+stationName+"</h4><b style='color:"+color+";text-transform: uppercase;'><i class='fi-alert'></i> Fehlertext Test</b><p style='padding-top:5px;'>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et...</p>";
|
||||
}
|
||||
|
||||
function getLineInfos(id,color) {
|
||||
//console.log("getStationInfo Test: "+id+" Farbe: "+color);
|
||||
var res = id.split("line");
|
||||
var lineId = res[1];
|
||||
//console.log("Strang Listen ID: "+lineId);
|
||||
document.getElementById("tooltipTest").innerHTML = "<h4 style='text-transform: uppercase;'><i class='fi-share'></i> Strang ID: "+jco.Lines[lineId].Short+"</h4><b style='color:"+color+";text-transform: uppercase;'><i class='fi-x'></i> Fehlertext Test</b><p style='padding-top:5px;'>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et...</p>";
|
||||
}
|
||||
|
||||
dragElement(document.getElementById("mainDataSheet"));
|
||||
|
||||
function dragElement(elmnt) {
|
||||
var pos1 = 0, pos2 = 0, pos3 = 0, pos4 = 0;
|
||||
if (document.getElementById(elmnt.id + "header")) {
|
||||
// if present, the header is where you move the DIV from:
|
||||
document.getElementById(elmnt.id + "header").onmousedown = dragMouseDown;
|
||||
} else {
|
||||
// otherwise, move the DIV from anywhere inside the DIV:
|
||||
elmnt.onmousedown = dragMouseDown;
|
||||
}
|
||||
|
||||
function dragMouseDown(e) {
|
||||
e = e || window.event;
|
||||
e.preventDefault();
|
||||
// get the mouse cursor position at startup:
|
||||
pos3 = e.clientX;
|
||||
pos4 = e.clientY;
|
||||
document.onmouseup = closeDragElement;
|
||||
// call a function whenever the cursor moves:
|
||||
document.onmousemove = elementDrag;
|
||||
}
|
||||
|
||||
function elementDrag(e) {
|
||||
e = e || window.event;
|
||||
e.preventDefault();
|
||||
// calculate the new cursor position:
|
||||
pos1 = pos3 - e.clientX;
|
||||
pos2 = pos4 - e.clientY;
|
||||
pos3 = e.clientX;
|
||||
pos4 = e.clientY;
|
||||
// set the element's new position:
|
||||
elmnt.style.top = (elmnt.offsetTop - pos2) + "px";
|
||||
elmnt.style.left = (elmnt.offsetLeft - pos1) + "px";
|
||||
localStorage.setItem("mainDataSheetX", elmnt.style.left);
|
||||
localStorage.setItem("mainDataSheetY", elmnt.style.top);
|
||||
}
|
||||
|
||||
function closeDragElement() {
|
||||
// stop moving when mouse button is released:
|
||||
document.onmouseup = null;
|
||||
document.onmousemove = null;
|
||||
}
|
||||
}
|
||||
|
||||
if (localStorage.getItem("mainDataSheetX")) {
|
||||
document.getElementById("mainDataSheet").style.left = localStorage.getItem("mainDataSheetX");
|
||||
document.getElementById("mainDataSheet").style.top = localStorage.getItem("mainDataSheetY");
|
||||
}
|
||||
|
||||
function mainDataSheetPositionReset() {
|
||||
localStorage.removeItem("mainDataSheetX");
|
||||
localStorage.removeItem("mainDataSheetY");
|
||||
document.getElementById("mainDataSheet").style.left = "";
|
||||
document.getElementById("mainDataSheet").style.right = "25px";
|
||||
document.getElementById("mainDataSheet").style.top = "25px";
|
||||
}
|
||||
|
||||
document.getElementById("mousovertext").innerHTML = "OGE Masterkarte<br />Version 0.9.7";
|
||||
|
||||
setInterval(() => {
|
||||
if (swapShiftKey === 0) {
|
||||
//document.getElementById("loadingMap").innerHTML = "<div class='spinner-wrapper'><span class='spinner-text'>Update der Daten...</span><span class='spinner'></span></div>";
|
||||
cableReset();
|
||||
}
|
||||
}, (updateInterval*60000));
|
||||
|
||||
stage.on('dragstart', function () {
|
||||
layer.listening(false);
|
||||
var pos = JSON.stringify(stage.position());
|
||||
localStorage.setItem("Position",pos);
|
||||
var sca = JSON.stringify(stage.scale());
|
||||
localStorage.setItem("Scale",sca);
|
||||
console.log("AUS");
|
||||
});
|
||||
stage.on('dragend', function () {
|
||||
layer.listening(true);
|
||||
var pos = JSON.stringify(stage.absolutePosition());
|
||||
localStorage.setItem("AbsolutePosition",pos);
|
||||
var pos = JSON.stringify(stage.position());
|
||||
localStorage.setItem("Position",pos);
|
||||
var sca = JSON.stringify(stage.scale());
|
||||
localStorage.setItem("Scale",sca);
|
||||
layer.batchDraw();
|
||||
console.log("EIN");
|
||||
});
|
||||
|
||||
function stationButtonChange() {
|
||||
var el = document.getElementById("buttonStation");
|
||||
if(el.style.opacity > 0.6) {
|
||||
console.log("Aus");
|
||||
el.style.border = "none";
|
||||
el.style.opacity = 0.4;
|
||||
document.getElementById("ebenenSpeichernButton").style.opacity = 1;
|
||||
}
|
||||
else {
|
||||
console.log("Ein");
|
||||
el.style.border = "2px solid #63de17";
|
||||
el.style.opacity = 1;
|
||||
document.getElementById("ebenenSpeichernButton").style.opacity = 1;
|
||||
}
|
||||
}
|
||||
|
||||
function ustationButtonChange() {
|
||||
|
||||
var el = document.getElementById("buttonUStation");
|
||||
if(el.style.opacity > 0.6) {
|
||||
console.log("Aus");
|
||||
el.style.border = "none";
|
||||
el.style.opacity = 0.4;
|
||||
document.getElementById("ebenenSpeichernButton").style.opacity = 1;
|
||||
}
|
||||
else {
|
||||
console.log("Ein");
|
||||
el.style.border = "2px solid #63de17";
|
||||
el.style.opacity = 1;
|
||||
document.getElementById("ebenenSpeichernButton").style.opacity = 1;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
function pstationButtonChange() {
|
||||
|
||||
var el = document.getElementById("buttonPStation");
|
||||
if(el.style.opacity > 0.6) {
|
||||
console.log("Aus");
|
||||
el.style.border = "none";
|
||||
el.style.opacity = 0.4;
|
||||
document.getElementById("ebenenSpeichernButton").style.opacity = 1;
|
||||
}
|
||||
else {
|
||||
console.log("Ein");
|
||||
el.style.border = "2px solid #63de17";
|
||||
el.style.opacity = 1;
|
||||
document.getElementById("ebenenSpeichernButton").style.opacity = 1;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
function diensteButtonChange() {
|
||||
|
||||
var el = document.getElementById("buttonDienste");
|
||||
if(el.style.opacity > 0.6) {
|
||||
console.log("Aus");
|
||||
el.style.border = "none";
|
||||
el.style.opacity = 0.4;
|
||||
document.getElementById("ebenenSpeichernButton").style.opacity = 1;
|
||||
}
|
||||
else {
|
||||
console.log("Ein");
|
||||
el.style.border = "2px solid #63de17";
|
||||
el.style.opacity = 1;
|
||||
document.getElementById("ebenenSpeichernButton").style.opacity = 1;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
function kabelButtonChange() {
|
||||
|
||||
var el = document.getElementById("buttonKabel");
|
||||
if(el.style.opacity > 0.6) {
|
||||
console.log("Aus");
|
||||
el.style.border = "none";
|
||||
el.style.opacity = 0.4;
|
||||
document.getElementById("ebenenSpeichernButton").style.opacity = 1;
|
||||
}
|
||||
else {
|
||||
console.log("Ein");
|
||||
el.style.border = "2px solid #63de17";
|
||||
el.style.opacity = 1;
|
||||
document.getElementById("ebenenSpeichernButton").style.opacity = 1;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
function ebenenSpeichern() {
|
||||
var ebenenNamen = ["buttonStation","buttonUStation","buttonPStation","buttonDienste","buttonKabel"];
|
||||
var ebenenTemp = [];
|
||||
for (x = 0;x < 5; x++){
|
||||
var el = document.getElementById(ebenenNamen[x]);
|
||||
if(el.style.opacity > 0.6) {
|
||||
ebenenTemp.push(1);
|
||||
}
|
||||
else{
|
||||
ebenenTemp.push(0);
|
||||
}
|
||||
}
|
||||
localStorage.setItem("ebenenLayer",ebenenTemp);
|
||||
cableReset();
|
||||
}
|
||||
|
||||
function ebenenZuruecksetzen() {
|
||||
var ebenenNamen = ["buttonStation","buttonUStation","buttonPStation","buttonDienste","buttonKabel"];
|
||||
document.getElementById("ebenenSpeichernButton").style.opacity = 0;
|
||||
ebenenLayer = localStorage.getItem("ebenenLayer");
|
||||
ebenenLayer = ebenenLayer.replaceAll(",","");
|
||||
//console.log("Layer "+ebenenLayer);
|
||||
for (x = 0;x < 5; x++){
|
||||
if (parseInt(ebenenLayer[x]) > 0) {
|
||||
//console.log("Layer "+x+" Ein - " +ebenenLayer[x]);
|
||||
var el = document.getElementById(ebenenNamen[x]);
|
||||
el.style.border = "2px solid #63de17";
|
||||
el.style.opacity = 1;
|
||||
}
|
||||
else {
|
||||
//console.log("Layer "+x+" Aus - " +ebenenLayer[x]);
|
||||
var el = document.getElementById(ebenenNamen[x]);
|
||||
el.style.border = "none";
|
||||
el.style.opacity = 0.4;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
setTimeout(() => {
|
||||
ebenenZuruecksetzen();
|
||||
}, 5000);
|
||||
896
public/js/icons.js
Normal file
@@ -0,0 +1,896 @@
|
||||
// OK
|
||||
var greenMarkerBox = L.icon({
|
||||
//iconUrl: 'img/icons/green-marker-icon.png',
|
||||
iconUrl: 'img/group_round_white.png',
|
||||
iconSize: [20, 20], // Größe
|
||||
iconAnchor: [31, 51], // Ankerpunkt
|
||||
popupAnchor: [-3, -76] // PopUp Anker
|
||||
});
|
||||
|
||||
// 0
|
||||
var redMarkerBoxlg = L.divIcon({
|
||||
iconSize: [30, 75], // Größe
|
||||
iconAnchor: [-20, 65], // Ankerpunkt
|
||||
html:'<div style="border-right:5px solid green">'
|
||||
+'<div class="value1" style="padding-left:5px;font-weight:700;color:blue;">20</div>'
|
||||
+'<div class="value2" style="padding-left:5px;font-weight:700;">20</div>'
|
||||
+'<div class="value3" style="padding-left:5px;font-weight:700;">20</div>'
|
||||
+'<div class="value4" style="padding-left:5px;font-weight:700;color:red;">20</div>'
|
||||
+'</div>'
|
||||
});
|
||||
|
||||
var markerGroup = L.icon({
|
||||
iconUrl: 'img/plus_round.png',
|
||||
iconSize: [20, 20], // Größe
|
||||
iconAnchor: [25, 50], // Ankerpunkt
|
||||
popupAnchor: [-3, -76] // PopUp Anker
|
||||
});
|
||||
|
||||
var invisibleMarker = L.icon({
|
||||
iconUrl: 'img/plus_round.png',
|
||||
iconSize: [1, 1], // Größe
|
||||
iconAnchor: [25, 50], // Ankerpunkt
|
||||
popupAnchor: [-3, -76] // PopUp Anker
|
||||
});
|
||||
|
||||
var redMarkerBox = L.icon({
|
||||
iconUrl: 'img/icons/marker-icon-lr-critical.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
// 1 - Eis
|
||||
var systemMarker1 = L.icon({
|
||||
iconUrl: 'img/icons/system-marker-icon-ac-unit.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
var criticalMarker1 = L.icon({
|
||||
iconUrl: 'img/icons/marker-icon-ac-unit.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
var majorMarker1 = L.icon({
|
||||
iconUrl: 'img/icons/major-marker-icon-ac-unit.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
var minorMarker1 = L.icon({
|
||||
iconUrl: 'img/icons/minor-marker-icon-ac-unit.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
// 2 - Luft
|
||||
var systemMarker2 = L.icon({
|
||||
iconUrl: 'img/icons/system-marker-icon-air.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
var criticalMarker2 = L.icon({
|
||||
iconUrl: 'img/icons/marker-icon-air.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
var majorMarker2 = L.icon({
|
||||
iconUrl: 'img/icons/major-marker-icon-air.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
var minorMarker2 = L.icon({
|
||||
iconUrl: 'img/icons/minor-marker-icon-air.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
// 3 - Antenne
|
||||
var systemMarker3 = L.icon({
|
||||
iconUrl: 'img/icons/system-marker-icon-antenna.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
var criticalMarker3 = L.icon({
|
||||
iconUrl: 'img/icons/marker-icon-antenna.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
var majorMarker3 = L.icon({
|
||||
iconUrl: 'img/icons/major-marker-icon-antenna.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
var minorMarker3 = L.icon({
|
||||
iconUrl: 'img/icons/minor-marker-icon-antenna.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
// 4 - Baugruppenträger
|
||||
var systemMarker4 = L.icon({
|
||||
iconUrl: 'img/icons/system-marker-icon-bgt2.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
var criticalMarker4 = L.icon({
|
||||
iconUrl: 'img/icons/marker-icon-bgt2.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
var majorMarker4 = L.icon({
|
||||
iconUrl: 'img/icons/major-marker-icon-bgt2.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
var minorMarker4 = L.icon({
|
||||
iconUrl: 'img/icons/minor-marker-icon-bgt2.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
// 5 - PC Client
|
||||
var systemMarker5 = L.icon({
|
||||
iconUrl: 'img/icons/system-marker-icon-desktop-windows.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
var criticalMarker5 = L.icon({
|
||||
iconUrl: 'img/icons/marker-icon-desktop-windows.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
var majorMarker5 = L.icon({
|
||||
iconUrl: 'img/icons/major-marker-icon-desktop-windows.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
var minorMarker5 = L.icon({
|
||||
iconUrl: 'img/icons/minor-marker-icon-desktop-windows.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
// 6 - Gerät
|
||||
var systemMarker6 = L.icon({
|
||||
iconUrl: 'img/icons/system-marker-icon-devices.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
var criticalMarker6 = L.icon({
|
||||
iconUrl: 'img/icons/marker-icon-devices.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
var majorMarker6 = L.icon({
|
||||
iconUrl: 'img/icons/major-marker-icon-devices.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
var minorMarker6 = L.icon({
|
||||
iconUrl: 'img/icons/minor-marker-icon-devices.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
// 7 - KFZ
|
||||
var systemMarker7 = L.icon({
|
||||
iconUrl: 'img/icons/system-marker-icon-car.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
var criticalMarker7 = L.icon({
|
||||
iconUrl: 'img/icons/marker-icon-car.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
var majorMarker7 = L.icon({
|
||||
iconUrl: 'img/icons/major-marker-icon-car.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
var minorMarker7 = L.icon({
|
||||
iconUrl: 'img/icons/minor-marker-icon-car.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
////////////////////////////////////////////////////////////////////////////
|
||||
// 8 - Person
|
||||
var systemMarker8 = L.icon({
|
||||
iconUrl: 'img/icons/system-marker-icon-car.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
var criticalMarker8 = L.icon({
|
||||
iconUrl: 'img/icons/marker-icon-car.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
var majorMarker8 = L.icon({
|
||||
iconUrl: 'img/icons/major-marker-icon-car.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
var minorMarker8 = L.icon({
|
||||
iconUrl: 'img/icons/minor-marker-icon-car.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
// 9 - DNS
|
||||
var systemMarker9 = L.icon({
|
||||
iconUrl: 'img/icons/system-marker-icon-car.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
var criticalMarker9 = L.icon({
|
||||
iconUrl: 'img/icons/marker-icon-car.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
var majorMarker9 = L.icon({
|
||||
iconUrl: 'img/icons/major-marker-icon-car.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
var minorMarker9 = L.icon({
|
||||
iconUrl: 'img/icons/minor-marker-icon-car.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
// 10 - Monitor Tabelle
|
||||
var systemMarker10 = L.icon({
|
||||
iconUrl: 'img/icons/system-marker-icon-car.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
var criticalMarker10 = L.icon({
|
||||
iconUrl: 'img/icons/marker-icon-car.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
var majorMarker10 = L.icon({
|
||||
iconUrl: 'img/icons/major-marker-icon-car.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
var minorMarker10 = L.icon({
|
||||
iconUrl: 'img/icons/minor-marker-icon-car.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
// 11 - Techniker
|
||||
var systemMarker11 = L.icon({
|
||||
iconUrl: 'img/icons/system-marker-icon-car.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
var criticalMarker11 = L.icon({
|
||||
iconUrl: 'img/icons/marker-icon-car.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
var majorMarker11 = L.icon({
|
||||
iconUrl: 'img/icons/major-marker-icon-car.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
var minorMarker11 = L.icon({
|
||||
iconUrl: 'img/icons/minor-marker-icon-car.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
// 12 - Blitz
|
||||
var systemMarker12 = L.icon({
|
||||
iconUrl: 'img/icons/system-marker-icon-car.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
var criticalMarker12 = L.icon({
|
||||
iconUrl: 'img/icons/marker-icon-car.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
var majorMarker12 = L.icon({
|
||||
iconUrl: 'img/icons/major-marker-icon-car.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
var minorMarker12 = L.icon({
|
||||
iconUrl: 'img/icons/minor-marker-icon-car.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
// 13 - Haus
|
||||
var systemMarker13 = L.icon({
|
||||
iconUrl: 'img/icons/system-marker-icon-car.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
var criticalMarker13 = L.icon({
|
||||
iconUrl: 'img/icons/marker-icon-car.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
var majorMarker13 = L.icon({
|
||||
iconUrl: 'img/icons/major-marker-icon-car.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
var minorMarker13 = L.icon({
|
||||
iconUrl: 'img/icons/minor-marker-icon-car.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
// 14 - LAN
|
||||
var systemMarker14 = L.icon({
|
||||
iconUrl: 'img/icons/system-marker-icon-car.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
var criticalMarker14 = L.icon({
|
||||
iconUrl: 'img/icons/marker-icon-car.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
var majorMarker14 = L.icon({
|
||||
iconUrl: 'img/icons/major-marker-icon-car.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
var minorMarker14 = L.icon({
|
||||
iconUrl: 'img/icons/minor-marker-icon-car.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
// 15 - Management
|
||||
var systemMarker15 = L.icon({
|
||||
iconUrl: 'img/icons/system-marker-icon-car.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
var criticalMarker15 = L.icon({
|
||||
iconUrl: 'img/icons/marker-icon-car.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
var majorMarker15 = L.icon({
|
||||
iconUrl: 'img/icons/major-marker-icon-car.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
var minorMarker15 = L.icon({
|
||||
iconUrl: 'img/icons/minor-marker-icon-car.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
// 16 - Tür
|
||||
var systemMarker16 = L.icon({
|
||||
iconUrl: 'img/icons/system-marker-icon-car.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
var criticalMarker16 = L.icon({
|
||||
iconUrl: 'img/icons/marker-icon-car.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
var majorMarker16 = L.icon({
|
||||
iconUrl: 'img/icons/major-marker-icon-car.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
var minorMarker16 = L.icon({
|
||||
iconUrl: 'img/icons/minor-marker-icon-car.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
// 17 - Speicher
|
||||
var systemMarker17 = L.icon({
|
||||
iconUrl: 'img/icons/system-marker-icon-car.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
var criticalMarker17 = L.icon({
|
||||
iconUrl: 'img/icons/marker-icon-car.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
var majorMarker17 = L.icon({
|
||||
iconUrl: 'img/icons/major-marker-icon-car.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
var minorMarker17 = L.icon({
|
||||
iconUrl: 'img/icons/minor-marker-icon-car.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
// 18 - Alarmglocke
|
||||
var systemMarker18 = L.icon({
|
||||
iconUrl: 'img/icons/system-marker-icon-car.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
var criticalMarker18 = L.icon({
|
||||
iconUrl: 'img/icons/marker-icon-car.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
var majorMarker18 = L.icon({
|
||||
iconUrl: 'img/icons/major-marker-icon-car.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
var minorMarker18 = L.icon({
|
||||
iconUrl: 'img/icons/minor-marker-icon-car.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
// 19 - Telefon
|
||||
var redMarkerTelefonBox = L.icon({
|
||||
iconUrl: 'img/icons/marker-icon-phone-talk.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
var spaceStationMarker = L.icon({
|
||||
iconUrl: 'img/space-station.png',
|
||||
iconSize: [50, 50], // Größe
|
||||
iconAnchor: [25, 50], // Ankerpunkt
|
||||
popupAnchor: [0, -60] // PopUp Anker
|
||||
});
|
||||
|
||||
// 20 - Router
|
||||
var systemMarker20 = L.icon({
|
||||
iconUrl: 'img/icons/system-marker-icon-car.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
var criticalMarker20 = L.icon({
|
||||
iconUrl: 'img/icons/marker-icon-car.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
var majorMarker20 = L.icon({
|
||||
iconUrl: 'img/icons/major-marker-icon-car.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
var minorMarker20 = L.icon({
|
||||
iconUrl: 'img/icons/minor-marker-icon-car.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
// 21 - Sicherheit
|
||||
var systemMarker21 = L.icon({
|
||||
iconUrl: 'img/icons/system-marker-icon-car.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
var criticalMarker21 = L.icon({
|
||||
iconUrl: 'img/icons/marker-icon-car.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
var majorMarker21 = L.icon({
|
||||
iconUrl: 'img/icons/major-marker-icon-car.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
var minorMarker21 = L.icon({
|
||||
iconUrl: 'img/icons/minor-marker-icon-car.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
// 22 - Einstellungen
|
||||
var systemMarker22 = L.icon({
|
||||
iconUrl: 'img/icons/system-marker-icon-car.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
var criticalMarker22 = L.icon({
|
||||
iconUrl: 'img/icons/marker-icon-car.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
var majorMarker22 = L.icon({
|
||||
iconUrl: 'img/icons/major-marker-icon-car.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
var minorMarker22 = L.icon({
|
||||
iconUrl: 'img/icons/minor-marker-icon-car.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
// 23 - Messwerk
|
||||
var systemMarker23 = L.icon({
|
||||
iconUrl: 'img/icons/system-marker-icon-car.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
var criticalMarker23 = L.icon({
|
||||
iconUrl: 'img/icons/marker-icon-car.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
var majorMarker23 = L.icon({
|
||||
iconUrl: 'img/icons/major-marker-icon-car.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
var minorMarker23 = L.icon({
|
||||
iconUrl: 'img/icons/minor-marker-icon-car.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
// 24 - Lager
|
||||
var systemMarker24 = L.icon({
|
||||
iconUrl: 'img/icons/system-marker-icon-car.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
var criticalMarker24 = L.icon({
|
||||
iconUrl: 'img/icons/marker-icon-car.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
var majorMarker24 = L.icon({
|
||||
iconUrl: 'img/icons/major-marker-icon-car.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
var minorMarker24 = L.icon({
|
||||
iconUrl: 'img/icons/minor-marker-icon-car.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
// 25 - Thermometer
|
||||
var systemMarker25 = L.icon({
|
||||
iconUrl: 'img/icons/system-marker-icon-car.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
var criticalMarker25 = L.icon({
|
||||
iconUrl: 'img/icons/marker-icon-car.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
var majorMarker25 = L.icon({
|
||||
iconUrl: 'img/icons/major-marker-icon-car.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
var minorMarker25 = L.icon({
|
||||
iconUrl: 'img/icons/minor-marker-icon-car.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
// 26 - Gewitter
|
||||
var systemMarker26 = L.icon({
|
||||
iconUrl: 'img/icons/system-marker-icon-car.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
var criticalMarker26 = L.icon({
|
||||
iconUrl: 'img/icons/marker-icon-car.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
var majorMarker26 = L.icon({
|
||||
iconUrl: 'img/icons/major-marker-icon-car.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
var minorMarker26 = L.icon({
|
||||
iconUrl: 'img/icons/minor-marker-icon-car.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
// 27 - Kamera
|
||||
var systemMarker27 = L.icon({
|
||||
iconUrl: 'img/icons/system-marker-icon-car.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
var criticalMarker27 = L.icon({
|
||||
iconUrl: 'img/icons/marker-icon-car.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
var majorMarker27 = L.icon({
|
||||
iconUrl: 'img/icons/major-marker-icon-car.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
var minorMarker27 = L.icon({
|
||||
iconUrl: 'img/icons/minor-marker-icon-car.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
// 28 - Schlüssel
|
||||
var systemMarker28 = L.icon({
|
||||
iconUrl: 'img/icons/system-marker-icon-car.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
var criticalMarker28 = L.icon({
|
||||
iconUrl: 'img/icons/marker-icon-car.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
var majorMarker28 = L.icon({
|
||||
iconUrl: 'img/icons/major-marker-icon-car.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
var minorMarker28 = L.icon({
|
||||
iconUrl: 'img/icons/minor-marker-icon-car.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
// 29 - Warnung
|
||||
var systemMarker29 = L.icon({
|
||||
iconUrl: 'img/icons/system-marker-icon-car.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
var criticalMarker29 = L.icon({
|
||||
iconUrl: 'img/icons/marker-icon-car.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
var majorMarker29 = L.icon({
|
||||
iconUrl: 'img/icons/major-marker-icon-car.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
var minorMarker29 = L.icon({
|
||||
iconUrl: 'img/icons/minor-marker-icon-car.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
// 30 - Wasser
|
||||
var systemMarker30 = L.icon({
|
||||
iconUrl: 'img/icons/system-marker-icon-car.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
var criticalMarker30 = L.icon({
|
||||
iconUrl: 'img/icons/marker-icon-car.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
var majorMarker30 = L.icon({
|
||||
iconUrl: 'img/icons/major-marker-icon-car.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
var minorMarker30 = L.icon({
|
||||
iconUrl: 'img/icons/minor-marker-icon-car.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
91
public/js/icons.server
Normal file
@@ -0,0 +1,91 @@
|
||||
//Markergrafiken
|
||||
var greenMarker = L.icon({
|
||||
iconUrl: '../tilemap/css/images/marker-icon-green.png',
|
||||
iconSize: [18, 30], // Größe
|
||||
iconAnchor: [9, 30], // Ankerpunkt
|
||||
popupAnchor: [4, -25] // PopUp Anker
|
||||
});
|
||||
|
||||
var redMarker = L.icon({
|
||||
iconUrl: '../tilemap/css/images/marker-icon-red.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
var yellowMarker = L.icon({
|
||||
iconUrl: '../tilemap/css/images/marker-icon-yellow.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [-3, -76] // PopUp Anker
|
||||
});
|
||||
|
||||
var greenMarkerBox = L.icon({
|
||||
iconUrl: '../tilemap/css/images/marker-icon-green-box.png',
|
||||
iconSize: [18, 30], // Größe
|
||||
iconAnchor: [9, 30], // Ankerpunkt
|
||||
popupAnchor: [4, -25] // PopUp Anker
|
||||
});
|
||||
|
||||
var redMarkerBox = L.icon({
|
||||
iconUrl: '../tilemap/css/images/marker-icon-red-box.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
var yellowMarkerBox = L.icon({
|
||||
iconUrl: '../tilemap/css/images/marker-icon-yellow-box.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [-3, -76] // PopUp Anker
|
||||
});
|
||||
|
||||
var redMarkerBox = L.icon({
|
||||
iconUrl: '../tilemap/css/images/marker-icon-lr-critical.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
var systemMarkerModemBox = L.icon({
|
||||
iconUrl: '../tilemap/css/images/system-marker-icon-antenna.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
var criticalMarkerModemBox = L.icon({
|
||||
iconUrl: '../tilemap/css/images/marker-icon-antenna.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
var majorMarkerModemBox = L.icon({
|
||||
iconUrl: '../tilemap/css/images/major-marker-icon-antenna.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
var minorMarkerModemBox = L.icon({
|
||||
iconUrl: '../tilemap/css/images/minor-marker-icon-antenna.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
var redMarkerTelefonBox = L.icon({
|
||||
iconUrl: '../tilemap/css/images/marker-icon-phone-talk.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
var spaceStationMarker = L.icon({
|
||||
iconUrl: '../tilemap/css/images/space-station.png',
|
||||
iconSize: [50, 50], // Größe
|
||||
iconAnchor: [25, 50], // Ankerpunkt
|
||||
popupAnchor: [0, -60] // PopUp Anker
|
||||
});
|
||||
4
public/js/jquery.min.js
vendored
Normal file
107
public/js/js/Backup_Code.js
Normal file
@@ -0,0 +1,107 @@
|
||||
geoDataListComb.forEach((c) => {
|
||||
const myArray = c.split(",");
|
||||
//console.log("c: "+myArray[0]+myArray[1]);
|
||||
if (!uniqueData.includes(myArray[0] + myArray[1])) {
|
||||
uniqueData.push(myArray[0] + myArray[1]);
|
||||
uniqueDataTooltip.push(c);
|
||||
listIdLDs.push(parseInt(myArray[3]));
|
||||
//console.log(c);
|
||||
}
|
||||
else {
|
||||
doubleData.push(myArray[0] + "," + myArray[1]);
|
||||
//console.log(doubleData);
|
||||
L.marker([myArray[0], myArray[1]],
|
||||
{
|
||||
icon: markerGroup
|
||||
|
||||
}).addTo(map);
|
||||
}
|
||||
});
|
||||
dataMeasures.forEach((c) => {
|
||||
//console.log(c);
|
||||
if (!uniqueGMAFilter.includes(c.IdLD)) {
|
||||
uniqueGMAFilter.push(c.IdLD);
|
||||
uniqueGMA.push(c);
|
||||
|
||||
}
|
||||
else {
|
||||
|
||||
}
|
||||
});
|
||||
|
||||
//console.log(uniqueGMA);
|
||||
|
||||
for (let index = 0; index < uniqueDataTooltip.length; index++) {
|
||||
let element = uniqueDataTooltip[index].split(",");
|
||||
let lat = element[0];
|
||||
let lng = element[1];
|
||||
let ID = element[2];
|
||||
let IdLD = element[3];
|
||||
|
||||
const Tooltip = L.marker([lat, lng], { icon: invisibleMarker }).bindTooltip('<div>'
|
||||
+ '<div id="value1-' + IdLD + '" style="font-weight:700;">---</div>'
|
||||
+ '<div id="value2-' + IdLD + '" style="font-weight:700;">---</div>'
|
||||
+ '<div id="value3-' + IdLD + '" style="font-weight:700;">---</div>'
|
||||
+ '<div id="value4-' + IdLD + '" style="font-weight:700;">---</div>'
|
||||
+ '</div>', { permanent: true, direction: "right", opacity: 0.8, offset: L.point({ x: 10, y: 0 }) }).openTooltip().addTo(GMA);
|
||||
|
||||
}
|
||||
/////////////////////////////////////////////////////////////////////////
|
||||
|
||||
let uniqueDataApp = [];
|
||||
let uniqueGMAApp = [];
|
||||
|
||||
console.log(geoDataListComb);
|
||||
console.log(dataMeasures);
|
||||
console.log(uniqueGMA);
|
||||
|
||||
geoDataListComb.forEach((c) => {
|
||||
const myArray = c.split(",");
|
||||
console.log("c: "+myArray[0]+myArray[1]);
|
||||
if (!uniqueDataApp.includes(myArray[0]+myArray[1]+myArray[2]+myArray[3])) {
|
||||
uniqueDataApp.push(myArray[0]+myArray[1]+myArray[2]+myArray[3]);
|
||||
//console.log(c);
|
||||
}
|
||||
});
|
||||
|
||||
dataMeasures.forEach((c) => {
|
||||
const myArray = c.split(",");
|
||||
if (!uniqueGMAApp.includes(myArray[0]+myArray[1]+myArray[2]+myArray[3])) {
|
||||
uniqueGMAApp.push(myArray[0]+myArray[1]+myArray[2]+myArray[3]);
|
||||
}
|
||||
});
|
||||
|
||||
console.log("Datalist");
|
||||
console.log(uniqueDataApp);
|
||||
console.log("GMAlist");
|
||||
console.log(uniqueGMAApp);
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
/*Polyline example
|
||||
[53.46130277, 7.91247367],
|
||||
[53.46010189, 7.92521953],
|
||||
[53.45266587, 7.91526317],
|
||||
[53.44338822, 8.02525520],
|
||||
[53.39612505, 8.10301780],
|
||||
[53.35034638, 8.119068145],
|
||||
[53.29661923, 8.14344406],
|
||||
[53.24229794, 8.17610263],
|
||||
[53.24241351, 8.17718625]
|
||||
|
||||
];
|
||||
|
||||
var polyline = L.polyline(latlngs, {color: 'green',weight: 5,lineCap: 'square'}).bindPopup('<b style="font-size:1.25rem;">Name</b><br /><b>Device</b><br /><b>Area</b> ( Area Name )<br /><b>Location Short</b> ( Test )').addTo(map);
|
||||
|
||||
polyline.on('mouseover', function (e) {
|
||||
this.openPopup();
|
||||
this.setStyle({
|
||||
weight: 15
|
||||
});
|
||||
});
|
||||
polyline.on('mouseout', function (e) {
|
||||
this.closePopup();
|
||||
this.setStyle({
|
||||
weight: 5
|
||||
});
|
||||
});*/
|
||||
158
public/js/js/app.js
Normal file
@@ -0,0 +1,158 @@
|
||||
/**
|
||||
* @file app.js
|
||||
* @author Andreas Tholen
|
||||
* Contact: info@littwin-systechnik.de
|
||||
* @version 0.5.3
|
||||
* @description Basic Functions
|
||||
*/
|
||||
|
||||
$(document).foundation();
|
||||
|
||||
document.getElementById("fullSideMenuCard").style.height = windowHeight+"px";
|
||||
|
||||
// Sidemenu Config
|
||||
if ((!standardSideMenu) || (fullSideMenu)) {
|
||||
const collection = document.getElementsByClassName("standardSideMenu");
|
||||
for (let i = 0; i < collection.length; i++) {
|
||||
collection[i].style.display = "none";
|
||||
}
|
||||
}
|
||||
|
||||
if ((!fullSideMenu) || (standardSideMenu)) {
|
||||
const collectionb = document.getElementsByClassName("fullSideMenu");
|
||||
for (let i = 0; i < collectionb.length; i++) {
|
||||
collectionb[i].style.display = "none";
|
||||
}
|
||||
}
|
||||
|
||||
var stationCardTempList = "";
|
||||
var stationCardTemp = '<div class="card">'
|
||||
+'<div class="title-bar">'
|
||||
+'<div class="title-bar-left">'
|
||||
+'<span class="title-bar-title" style="color:#000000;padding-left:0.5rem ;">Standort</span>'
|
||||
+'</div>'
|
||||
+'<div class="title-bar-right">'
|
||||
+'<a><i class="fi-alert" title="Weitere Infos" style="color:red;font-size:1.5rem;padding-right:10px;" data-open="weitereInfos"></i></a>'
|
||||
+'</div>'
|
||||
+'</div>'
|
||||
+'<div class="card-section" style="padding: 0px 0px 1rem 1rem !important">'
|
||||
+'Test'
|
||||
+'</div>'
|
||||
+'</div>';
|
||||
|
||||
for (let index = 0; index < 11; index++) {
|
||||
stationCardTempList += stationCardTemp;
|
||||
}
|
||||
|
||||
document.getElementById('stationenFullSideMenu').innerHTML = stationCardTempList;
|
||||
|
||||
function getDataMenu() {
|
||||
var stationsListing = [];
|
||||
|
||||
// Stationen erfassen
|
||||
for (var i = 0; i < dataStaticlength; i++) {
|
||||
var gisStatics = dataStatic[i];
|
||||
var stationListing = gisStatics.Area_Name; // Area_Name
|
||||
stationsListing.push(stationListing);
|
||||
}
|
||||
|
||||
// Doppelte Einträge löschen
|
||||
console.log("%cMAP| Einträge der Stationen werden geprüft",'color: green');
|
||||
let uniqueStations = [];
|
||||
stationsListing.forEach((c) => {
|
||||
if (!uniqueStations.includes(c)) {
|
||||
uniqueStations.push(c);
|
||||
}
|
||||
});
|
||||
|
||||
console.log("%cMAP| Stationen indexiert: %c"+uniqueStations.sort(),'color: green', 'color:grey');
|
||||
uniqueStations = uniqueStations.sort();
|
||||
|
||||
var select = document.getElementById("stationListing");
|
||||
|
||||
for(var i = 0; i < uniqueStations.length; i++) {
|
||||
var opt = uniqueStations[i];
|
||||
var el = document.createElement("option");
|
||||
el.textContent = opt;
|
||||
el.value = opt;
|
||||
el.style.color = "#000000";
|
||||
el.style.fontWeight = "thin";
|
||||
select.appendChild(el);
|
||||
}
|
||||
}
|
||||
|
||||
var checkbox = document.querySelector("#box-TALAS");
|
||||
|
||||
checkbox.addEventListener('change', function() {
|
||||
if (this.checked) {
|
||||
map.addLayer(TALAS);
|
||||
|
||||
console.log("TALAS is checked..");
|
||||
} else {
|
||||
map.removeLayer(TALAS);
|
||||
|
||||
console.log("TALAS is not checked..");
|
||||
}
|
||||
});
|
||||
|
||||
var checkbox = document.querySelector("#box-GMA");
|
||||
|
||||
checkbox.addEventListener('change', function() {
|
||||
if (this.checked) {
|
||||
map.addLayer(GMA);
|
||||
document.getElementById("data-"+LocID).style.display = "none";
|
||||
console.log("GMA is checked..");
|
||||
} else {
|
||||
map.removeLayer(GMA);
|
||||
|
||||
console.log("GMA is not checked..");
|
||||
}
|
||||
});
|
||||
|
||||
var checkbox = document.querySelector("#box-MODEM");
|
||||
|
||||
checkbox.addEventListener('change', function() {
|
||||
if (this.checked) {
|
||||
map.addLayer(GSM);
|
||||
|
||||
console.log("GSM is checked..");
|
||||
} else {
|
||||
map.removeLayer(GSM);
|
||||
|
||||
console.log("GSM is not checked..");
|
||||
}
|
||||
});
|
||||
|
||||
var checkbox = document.querySelector("#box-SIEMENS");
|
||||
|
||||
checkbox.addEventListener('change', function() {
|
||||
if (this.checked) {
|
||||
map.addLayer(Siemens);
|
||||
|
||||
console.log("Notrufsäulen is checked..");
|
||||
} else {
|
||||
map.removeLayer(Siemens);
|
||||
|
||||
console.log("Notrufsäulen is not checked..");
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
// ISS Positions-Update Test
|
||||
var iss;
|
||||
function update_position() {
|
||||
$.getJSON('http://api.open-notify.org/iss-now.json', function(data) {
|
||||
var latitude = data["iss_position"]["latitude"];
|
||||
var longitude = data["iss_position"]["longitude"];
|
||||
if (!iss) {
|
||||
iss = L.marker([latitude,longitude], {icon: spaceStationMarker}).bindPopup("Ich bin die ISS").addTo(map);
|
||||
}
|
||||
iss.setLatLng([latitude,longitude]).update();
|
||||
setTimeout(update_position, 1000);
|
||||
});
|
||||
}
|
||||
update_position();
|
||||
|
||||
|
||||
|
||||
|
||||
47
public/js/js/config copy.js
Normal file
@@ -0,0 +1,47 @@
|
||||
/**
|
||||
* @file config.js
|
||||
* @author Andreas Tholen
|
||||
* Contact: info@littwin-systechnik.de
|
||||
* @version 0.5.3
|
||||
* @description Config-File for the TALAS.Map
|
||||
**/
|
||||
|
||||
//Versionsnummer
|
||||
var mapVersion = "0.5.3";
|
||||
|
||||
//Zoom
|
||||
var mapZoomMin = 4;
|
||||
var mapZoomMax = 15;
|
||||
|
||||
//Datenquelle
|
||||
var offlineData = true; //
|
||||
|
||||
// GMA LTE Modem
|
||||
var mapDataStaticUrl = "http://10.10.0.13/talas5/ClientData/WebserviceMap.asmx/GisStationsStatic?idMap=8";
|
||||
var mapDataStatusUrl = "http://10.10.0.13/talas5/ClientData/WebserviceMap.asmx/GisStationsStatus?idMap=8";
|
||||
var notrufDataStaticUrl = "http://10.10.0.13/talas5/ClientData/WebserviceMap.asmx/GisStationsStatic?idMap=10";
|
||||
var notrufDataStatusUrl = "http://10.10.0.13/talas5/ClientData/WebserviceMap.asmx/GisStationsStatus?idMap=10";
|
||||
const mapStaticOfflineURL = "offlineTestData/idMap8GisStationenStatic.json";
|
||||
const mapStatusOfflineURL = "offlineTestData/idMap8GisStationenStatus.json";
|
||||
const notrufStaticOfflineURL = "offlineTestData/idMap10GisStationenStatic.json";
|
||||
const notrufStatusOfflineURL = "offlineTestData/idMap10GisStationenStatus.json";
|
||||
if (offlineData = true) {
|
||||
console.log("%cSYSTEM| Offline Daten aktiviert!", 'color: blue');
|
||||
mapDataStaticUrl = mapStaticOfflineURL;
|
||||
mapDataStatusUrl = mapStatusOfflineURL;
|
||||
notrufDataStaticUrl = notrufStaticOfflineURL;
|
||||
notrufDataStatusUrl = notrufStatusOfflineURL;
|
||||
console.log("%cSYSTEM| Static URL: %c"+mapDataStaticUrl, 'color: blue', 'color: green');
|
||||
console.log("%cSYSTEM| Status URL: %c"+mapDataStatusUrl, 'color: blue', 'color: green');
|
||||
console.log("%cSYSTEM| Static URL: %c"+notrufDataStaticUrl, 'color: blue', 'color: green');
|
||||
console.log("%cSYSTEM| Status URL: %c"+notrufDataStatusUrl, 'color: blue', 'color: green');
|
||||
}
|
||||
|
||||
// Update Zeit
|
||||
var updateIntervall = 5000; // in Millisekunden
|
||||
|
||||
// example -> L.marker([51.5, -0.09], {icon: greenIcon}).addTo(map);
|
||||
console.log("%cSYSTEM| Kartenfunktionen geladen", 'color: blue');
|
||||
console.log("%cSYSTEM| Die aktuelle Fenstergröße Breite: " + window.innerWidth+"px Höhe: "+window.innerHeight + "px", 'color: blue');
|
||||
console.log("%cMAP| Marker-Icons preload abgeschlossen", 'color: green');
|
||||
console.log("%cMAP| Updateintervall: "+updateIntervall+" ms", 'color: green');
|
||||
69
public/js/js/config.js
Normal file
@@ -0,0 +1,69 @@
|
||||
/**
|
||||
* @file config.js
|
||||
* @author Andreas Tholen
|
||||
* Contact: info@littwin-systechnik.de
|
||||
* @version 0.5.3
|
||||
* @description Config-File for the TALAS.Map
|
||||
**/
|
||||
|
||||
//Versionsnummer
|
||||
var mapVersion = "0.5.3";
|
||||
|
||||
//Visual Config
|
||||
var standardSideMenu = true;
|
||||
var fullSideMenu = false;
|
||||
|
||||
// Window Height erkennen
|
||||
var windowHeight = window.innerHeight;
|
||||
//console.log("windowheighet:"+windowHeight);
|
||||
|
||||
//Zoom
|
||||
var mapZoomMin = 4;
|
||||
var mapZoomMax = 15;
|
||||
|
||||
//Datenquelle
|
||||
var offlineData = false;
|
||||
var serverURL = "http://10.10.0.13";
|
||||
|
||||
var url_string = window.location;
|
||||
var url = new URL(url_string);
|
||||
var c = url.searchParams.get("idMap");
|
||||
//console.log("idMap: "+c);
|
||||
|
||||
var user = url.searchParams.get("idUser");
|
||||
if (user === null) {
|
||||
user = 0;
|
||||
}
|
||||
//console.log("idUser: "+user);
|
||||
|
||||
// Kartedaten einlesen
|
||||
var mapDataStaticUrl = serverURL+"/talas5/ClientData/WebserviceMap.asmx/GisStationsStatic?idMap="+c;
|
||||
var mapDataStatusUrl = serverURL+"/talas5/ClientData/WebserviceMap.asmx/GisStationsStatus?idMap="+c;
|
||||
var mapDataMeasures = serverURL+"/talas5/ClientData/WebserviceMap.asmx/GisStationsMeasurements?idMap="+c;
|
||||
var mapDataIconUrl = serverURL+"/talas5/ClientData/WebserviceMap.asmx/GetIconsStatic";
|
||||
var mapDataSystemUrl = serverURL+"/talas5/ClientData/WebserviceMap.asmx/GisSystemStatic?idMap="+c+"&idUser="+user;
|
||||
const mapStaticOfflineURL = "offlineTestData/idMap"+c+"GisStationenStatic.json";
|
||||
const mapStatusOfflineURL = "offlineTestData/idMap"+c+"GisStationenStatus.json";
|
||||
const mapSystemOfflineURL = "offlineTestData/idMap"+c+"GisSystemStatic.json";
|
||||
const mapIconsOfflineURL = "offlineTestData/icons.json";
|
||||
const mapMeasuresOfflineURL = "offlineTestData/idMap"+c+"GisSystemMeasures.json";
|
||||
|
||||
if (offlineData) {
|
||||
console.log("%cSYSTEM| Offline Daten aktiviert!", 'color: blue');
|
||||
mapDataStaticUrl = mapStaticOfflineURL;
|
||||
mapDataSystemUrl = mapSystemOfflineURL;
|
||||
mapDataStatusUrl = mapStatusOfflineURL;
|
||||
mapDataIconUrl = mapIconsOfflineURL;
|
||||
mapDataMeasures = mapMeasuresOfflineURL;
|
||||
console.log("%cSYSTEM| Static URL: %c"+mapDataStaticUrl, 'color: blue', 'color: green');
|
||||
console.log("%cSYSTEM| Status URL: %c"+mapDataStatusUrl, 'color: blue', 'color: green');
|
||||
}
|
||||
|
||||
// Update Zeit
|
||||
var updateIntervall = 5000; // in Millisekunden
|
||||
|
||||
// example -> L.marker([51.5, -0.09], {icon: greenIcon}).addTo(map);
|
||||
console.log("%cSYSTEM| Kartenfunktionen geladen", 'color: blue');
|
||||
console.log("%cSYSTEM| Die aktuelle Fenstergröße Breite: " + window.innerWidth+"px Höhe: "+window.innerHeight + "px", 'color: blue');
|
||||
console.log("%cMAP| Marker-Icons preload abgeschlossen", 'color: green');
|
||||
console.log("%cMAP| Updateintervall: "+updateIntervall+" ms", 'color: green');
|
||||
52
public/js/js/config.server
Normal file
@@ -0,0 +1,52 @@
|
||||
/**
|
||||
* @file config.js
|
||||
* @author Andreas Tholen
|
||||
* Contact: info@littwin-systechnik.de
|
||||
* @version 0.5.3
|
||||
* @description Config-File for the TALAS.Map
|
||||
**/
|
||||
|
||||
//Versionsnummer
|
||||
var mapVersion = "0.5.3";
|
||||
|
||||
//Zoom
|
||||
var mapZoomMin = 4;
|
||||
var mapZoomMax = 15;
|
||||
|
||||
//Datenquelle
|
||||
var offlineData = false;
|
||||
var serverURL = "http://10.10.0.13";
|
||||
|
||||
var url_string = window.location;
|
||||
console.log(window.location);
|
||||
var url = new URL(url_string);
|
||||
var c = url.searchParams.get("m");
|
||||
console.log("idMap: "+c);
|
||||
|
||||
// Kartedaten einlesen
|
||||
var mapDataStaticUrl = serverURL+"/talas5/ClientData/WebserviceMap.asmx/GisStationsStatic?idMap="+c;
|
||||
var mapDataStatusUrl = serverURL+"/talas5/ClientData/WebserviceMap.asmx/GisStationsStatus?idMap="+c;
|
||||
var mapDataIconUrl = serverURL+"/talas5/ClientData/WebserviceMap.asmx/GetIconsStatic";
|
||||
const mapStaticOfflineURL = "offlineTestData/idMap"+c+"GisStationenStatic.json";
|
||||
const mapStatusOfflineURL = "offlineTestData/idMap"+c+"GisStationenStatus.json";
|
||||
const mapIconsOfflineURL = "offlineTestData/icons.json";
|
||||
|
||||
|
||||
|
||||
if (offlineData) {
|
||||
console.log("%cSYSTEM| Offline Daten aktiviert!", 'color: blue');
|
||||
mapDataStaticUrl = mapStaticOfflineURL;
|
||||
mapDataStatusUrl = mapStatusOfflineURL;
|
||||
mapDataIconUrl = mapIconsOfflineURL;
|
||||
console.log("%cSYSTEM| Static URL: %c"+mapDataStaticUrl, 'color: blue', 'color: green');
|
||||
console.log("%cSYSTEM| Status URL: %c"+mapDataStatusUrl, 'color: blue', 'color: green');
|
||||
}
|
||||
|
||||
// Update Zeit
|
||||
var updateIntervall = 5000; // in Millisekunden
|
||||
|
||||
// example -> L.marker([51.5, -0.09], {icon: greenIcon}).addTo(map);
|
||||
console.log("%cSYSTEM| Kartenfunktionen geladen", 'color: blue');
|
||||
console.log("%cSYSTEM| Die aktuelle Fenstergröße Breite: " + window.innerWidth+"px Höhe: "+window.innerHeight + "px", 'color: blue');
|
||||
console.log("%cMAP| Marker-Icons preload abgeschlossen", 'color: green');
|
||||
console.log("%cMAP| Updateintervall: "+updateIntervall+" ms", 'color: green');
|
||||
896
public/js/js/icons.js
Normal file
@@ -0,0 +1,896 @@
|
||||
// OK
|
||||
var greenMarkerBox = L.icon({
|
||||
//iconUrl: 'img/icons/green-marker-icon.png',
|
||||
iconUrl: 'img/group_round_white.png',
|
||||
iconSize: [20, 20], // Größe
|
||||
iconAnchor: [31, 51], // Ankerpunkt
|
||||
popupAnchor: [-3, -76] // PopUp Anker
|
||||
});
|
||||
|
||||
// 0
|
||||
var redMarkerBoxlg = L.divIcon({
|
||||
iconSize: [30, 75], // Größe
|
||||
iconAnchor: [-20, 65], // Ankerpunkt
|
||||
html:'<div style="border-right:5px solid green">'
|
||||
+'<div class="value1" style="padding-left:5px;font-weight:700;color:blue;">20</div>'
|
||||
+'<div class="value2" style="padding-left:5px;font-weight:700;">20</div>'
|
||||
+'<div class="value3" style="padding-left:5px;font-weight:700;">20</div>'
|
||||
+'<div class="value4" style="padding-left:5px;font-weight:700;color:red;">20</div>'
|
||||
+'</div>'
|
||||
});
|
||||
|
||||
var markerGroup = L.icon({
|
||||
iconUrl: 'img/plus_round.png',
|
||||
iconSize: [20, 20], // Größe
|
||||
iconAnchor: [25, 50], // Ankerpunkt
|
||||
popupAnchor: [-3, -76] // PopUp Anker
|
||||
});
|
||||
|
||||
var invisibleMarker = L.icon({
|
||||
iconUrl: 'img/plus_round.png',
|
||||
iconSize: [1, 1], // Größe
|
||||
iconAnchor: [25, 50], // Ankerpunkt
|
||||
popupAnchor: [-3, -76] // PopUp Anker
|
||||
});
|
||||
|
||||
var redMarkerBox = L.icon({
|
||||
iconUrl: 'img/icons/marker-icon-lr-critical.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
// 1 - Eis
|
||||
var systemMarker1 = L.icon({
|
||||
iconUrl: 'img/icons/system-marker-icon-ac-unit.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
var criticalMarker1 = L.icon({
|
||||
iconUrl: 'img/icons/marker-icon-ac-unit.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
var majorMarker1 = L.icon({
|
||||
iconUrl: 'img/icons/major-marker-icon-ac-unit.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
var minorMarker1 = L.icon({
|
||||
iconUrl: 'img/icons/minor-marker-icon-ac-unit.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
// 2 - Luft
|
||||
var systemMarker2 = L.icon({
|
||||
iconUrl: 'img/icons/system-marker-icon-air.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
var criticalMarker2 = L.icon({
|
||||
iconUrl: 'img/icons/marker-icon-air.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
var majorMarker2 = L.icon({
|
||||
iconUrl: 'img/icons/major-marker-icon-air.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
var minorMarker2 = L.icon({
|
||||
iconUrl: 'img/icons/minor-marker-icon-air.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
// 3 - Antenne
|
||||
var systemMarker3 = L.icon({
|
||||
iconUrl: 'img/icons/system-marker-icon-antenna.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
var criticalMarker3 = L.icon({
|
||||
iconUrl: 'img/icons/marker-icon-antenna.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
var majorMarker3 = L.icon({
|
||||
iconUrl: 'img/icons/major-marker-icon-antenna.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
var minorMarker3 = L.icon({
|
||||
iconUrl: 'img/icons/minor-marker-icon-antenna.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
// 4 - Baugruppenträger
|
||||
var systemMarker4 = L.icon({
|
||||
iconUrl: 'img/icons/system-marker-icon-bgt2.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
var criticalMarker4 = L.icon({
|
||||
iconUrl: 'img/icons/marker-icon-bgt2.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
var majorMarker4 = L.icon({
|
||||
iconUrl: 'img/icons/major-marker-icon-bgt2.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
var minorMarker4 = L.icon({
|
||||
iconUrl: 'img/icons/minor-marker-icon-bgt2.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
// 5 - PC Client
|
||||
var systemMarker5 = L.icon({
|
||||
iconUrl: 'img/icons/system-marker-icon-desktop-windows.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
var criticalMarker5 = L.icon({
|
||||
iconUrl: 'img/icons/marker-icon-desktop-windows.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
var majorMarker5 = L.icon({
|
||||
iconUrl: 'img/icons/major-marker-icon-desktop-windows.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
var minorMarker5 = L.icon({
|
||||
iconUrl: 'img/icons/minor-marker-icon-desktop-windows.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
// 6 - Gerät
|
||||
var systemMarker6 = L.icon({
|
||||
iconUrl: 'img/icons/system-marker-icon-devices.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
var criticalMarker6 = L.icon({
|
||||
iconUrl: 'img/icons/marker-icon-devices.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
var majorMarker6 = L.icon({
|
||||
iconUrl: 'img/icons/major-marker-icon-devices.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
var minorMarker6 = L.icon({
|
||||
iconUrl: 'img/icons/minor-marker-icon-devices.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
// 7 - KFZ
|
||||
var systemMarker7 = L.icon({
|
||||
iconUrl: 'img/icons/system-marker-icon-car.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
var criticalMarker7 = L.icon({
|
||||
iconUrl: 'img/icons/marker-icon-car.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
var majorMarker7 = L.icon({
|
||||
iconUrl: 'img/icons/major-marker-icon-car.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
var minorMarker7 = L.icon({
|
||||
iconUrl: 'img/icons/minor-marker-icon-car.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
////////////////////////////////////////////////////////////////////////////
|
||||
// 8 - Person
|
||||
var systemMarker8 = L.icon({
|
||||
iconUrl: 'img/icons/system-marker-icon-car.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
var criticalMarker8 = L.icon({
|
||||
iconUrl: 'img/icons/marker-icon-car.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
var majorMarker8 = L.icon({
|
||||
iconUrl: 'img/icons/major-marker-icon-car.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
var minorMarker8 = L.icon({
|
||||
iconUrl: 'img/icons/minor-marker-icon-car.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
// 9 - DNS
|
||||
var systemMarker9 = L.icon({
|
||||
iconUrl: 'img/icons/system-marker-icon-car.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
var criticalMarker9 = L.icon({
|
||||
iconUrl: 'img/icons/marker-icon-car.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
var majorMarker9 = L.icon({
|
||||
iconUrl: 'img/icons/major-marker-icon-car.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
var minorMarker9 = L.icon({
|
||||
iconUrl: 'img/icons/minor-marker-icon-car.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
// 10 - Monitor Tabelle
|
||||
var systemMarker10 = L.icon({
|
||||
iconUrl: 'img/icons/system-marker-icon-car.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
var criticalMarker10 = L.icon({
|
||||
iconUrl: 'img/icons/marker-icon-car.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
var majorMarker10 = L.icon({
|
||||
iconUrl: 'img/icons/major-marker-icon-car.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
var minorMarker10 = L.icon({
|
||||
iconUrl: 'img/icons/minor-marker-icon-car.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
// 11 - Techniker
|
||||
var systemMarker11 = L.icon({
|
||||
iconUrl: 'img/icons/system-marker-icon-car.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
var criticalMarker11 = L.icon({
|
||||
iconUrl: 'img/icons/marker-icon-car.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
var majorMarker11 = L.icon({
|
||||
iconUrl: 'img/icons/major-marker-icon-car.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
var minorMarker11 = L.icon({
|
||||
iconUrl: 'img/icons/minor-marker-icon-car.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
// 12 - Blitz
|
||||
var systemMarker12 = L.icon({
|
||||
iconUrl: 'img/icons/system-marker-icon-car.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
var criticalMarker12 = L.icon({
|
||||
iconUrl: 'img/icons/marker-icon-car.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
var majorMarker12 = L.icon({
|
||||
iconUrl: 'img/icons/major-marker-icon-car.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
var minorMarker12 = L.icon({
|
||||
iconUrl: 'img/icons/minor-marker-icon-car.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
// 13 - Haus
|
||||
var systemMarker13 = L.icon({
|
||||
iconUrl: 'img/icons/system-marker-icon-car.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
var criticalMarker13 = L.icon({
|
||||
iconUrl: 'img/icons/marker-icon-car.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
var majorMarker13 = L.icon({
|
||||
iconUrl: 'img/icons/major-marker-icon-car.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
var minorMarker13 = L.icon({
|
||||
iconUrl: 'img/icons/minor-marker-icon-car.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
// 14 - LAN
|
||||
var systemMarker14 = L.icon({
|
||||
iconUrl: 'img/icons/system-marker-icon-car.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
var criticalMarker14 = L.icon({
|
||||
iconUrl: 'img/icons/marker-icon-car.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
var majorMarker14 = L.icon({
|
||||
iconUrl: 'img/icons/major-marker-icon-car.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
var minorMarker14 = L.icon({
|
||||
iconUrl: 'img/icons/minor-marker-icon-car.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
// 15 - Management
|
||||
var systemMarker15 = L.icon({
|
||||
iconUrl: 'img/icons/system-marker-icon-car.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
var criticalMarker15 = L.icon({
|
||||
iconUrl: 'img/icons/marker-icon-car.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
var majorMarker15 = L.icon({
|
||||
iconUrl: 'img/icons/major-marker-icon-car.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
var minorMarker15 = L.icon({
|
||||
iconUrl: 'img/icons/minor-marker-icon-car.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
// 16 - Tür
|
||||
var systemMarker16 = L.icon({
|
||||
iconUrl: 'img/icons/system-marker-icon-car.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
var criticalMarker16 = L.icon({
|
||||
iconUrl: 'img/icons/marker-icon-car.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
var majorMarker16 = L.icon({
|
||||
iconUrl: 'img/icons/major-marker-icon-car.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
var minorMarker16 = L.icon({
|
||||
iconUrl: 'img/icons/minor-marker-icon-car.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
// 17 - Speicher
|
||||
var systemMarker17 = L.icon({
|
||||
iconUrl: 'img/icons/system-marker-icon-car.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
var criticalMarker17 = L.icon({
|
||||
iconUrl: 'img/icons/marker-icon-car.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
var majorMarker17 = L.icon({
|
||||
iconUrl: 'img/icons/major-marker-icon-car.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
var minorMarker17 = L.icon({
|
||||
iconUrl: 'img/icons/minor-marker-icon-car.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
// 18 - Alarmglocke
|
||||
var systemMarker18 = L.icon({
|
||||
iconUrl: 'img/icons/system-marker-icon-car.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
var criticalMarker18 = L.icon({
|
||||
iconUrl: 'img/icons/marker-icon-car.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
var majorMarker18 = L.icon({
|
||||
iconUrl: 'img/icons/major-marker-icon-car.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
var minorMarker18 = L.icon({
|
||||
iconUrl: 'img/icons/minor-marker-icon-car.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
// 19 - Telefon
|
||||
var redMarkerTelefonBox = L.icon({
|
||||
iconUrl: 'img/icons/marker-icon-phone-talk.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
var spaceStationMarker = L.icon({
|
||||
iconUrl: 'img/space-station.png',
|
||||
iconSize: [50, 50], // Größe
|
||||
iconAnchor: [25, 50], // Ankerpunkt
|
||||
popupAnchor: [0, -60] // PopUp Anker
|
||||
});
|
||||
|
||||
// 20 - Router
|
||||
var systemMarker20 = L.icon({
|
||||
iconUrl: 'img/icons/system-marker-icon-car.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
var criticalMarker20 = L.icon({
|
||||
iconUrl: 'img/icons/marker-icon-car.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
var majorMarker20 = L.icon({
|
||||
iconUrl: 'img/icons/major-marker-icon-car.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
var minorMarker20 = L.icon({
|
||||
iconUrl: 'img/icons/minor-marker-icon-car.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
// 21 - Sicherheit
|
||||
var systemMarker21 = L.icon({
|
||||
iconUrl: 'img/icons/system-marker-icon-car.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
var criticalMarker21 = L.icon({
|
||||
iconUrl: 'img/icons/marker-icon-car.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
var majorMarker21 = L.icon({
|
||||
iconUrl: 'img/icons/major-marker-icon-car.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
var minorMarker21 = L.icon({
|
||||
iconUrl: 'img/icons/minor-marker-icon-car.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
// 22 - Einstellungen
|
||||
var systemMarker22 = L.icon({
|
||||
iconUrl: 'img/icons/system-marker-icon-car.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
var criticalMarker22 = L.icon({
|
||||
iconUrl: 'img/icons/marker-icon-car.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
var majorMarker22 = L.icon({
|
||||
iconUrl: 'img/icons/major-marker-icon-car.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
var minorMarker22 = L.icon({
|
||||
iconUrl: 'img/icons/minor-marker-icon-car.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
// 23 - Messwerk
|
||||
var systemMarker23 = L.icon({
|
||||
iconUrl: 'img/icons/system-marker-icon-car.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
var criticalMarker23 = L.icon({
|
||||
iconUrl: 'img/icons/marker-icon-car.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
var majorMarker23 = L.icon({
|
||||
iconUrl: 'img/icons/major-marker-icon-car.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
var minorMarker23 = L.icon({
|
||||
iconUrl: 'img/icons/minor-marker-icon-car.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
// 24 - Lager
|
||||
var systemMarker24 = L.icon({
|
||||
iconUrl: 'img/icons/system-marker-icon-car.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
var criticalMarker24 = L.icon({
|
||||
iconUrl: 'img/icons/marker-icon-car.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
var majorMarker24 = L.icon({
|
||||
iconUrl: 'img/icons/major-marker-icon-car.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
var minorMarker24 = L.icon({
|
||||
iconUrl: 'img/icons/minor-marker-icon-car.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
// 25 - Thermometer
|
||||
var systemMarker25 = L.icon({
|
||||
iconUrl: 'img/icons/system-marker-icon-car.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
var criticalMarker25 = L.icon({
|
||||
iconUrl: 'img/icons/marker-icon-car.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
var majorMarker25 = L.icon({
|
||||
iconUrl: 'img/icons/major-marker-icon-car.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
var minorMarker25 = L.icon({
|
||||
iconUrl: 'img/icons/minor-marker-icon-car.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
// 26 - Gewitter
|
||||
var systemMarker26 = L.icon({
|
||||
iconUrl: 'img/icons/system-marker-icon-car.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
var criticalMarker26 = L.icon({
|
||||
iconUrl: 'img/icons/marker-icon-car.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
var majorMarker26 = L.icon({
|
||||
iconUrl: 'img/icons/major-marker-icon-car.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
var minorMarker26 = L.icon({
|
||||
iconUrl: 'img/icons/minor-marker-icon-car.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
// 27 - Kamera
|
||||
var systemMarker27 = L.icon({
|
||||
iconUrl: 'img/icons/system-marker-icon-car.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
var criticalMarker27 = L.icon({
|
||||
iconUrl: 'img/icons/marker-icon-car.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
var majorMarker27 = L.icon({
|
||||
iconUrl: 'img/icons/major-marker-icon-car.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
var minorMarker27 = L.icon({
|
||||
iconUrl: 'img/icons/minor-marker-icon-car.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
// 28 - Schlüssel
|
||||
var systemMarker28 = L.icon({
|
||||
iconUrl: 'img/icons/system-marker-icon-car.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
var criticalMarker28 = L.icon({
|
||||
iconUrl: 'img/icons/marker-icon-car.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
var majorMarker28 = L.icon({
|
||||
iconUrl: 'img/icons/major-marker-icon-car.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
var minorMarker28 = L.icon({
|
||||
iconUrl: 'img/icons/minor-marker-icon-car.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
// 29 - Warnung
|
||||
var systemMarker29 = L.icon({
|
||||
iconUrl: 'img/icons/system-marker-icon-car.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
var criticalMarker29 = L.icon({
|
||||
iconUrl: 'img/icons/marker-icon-car.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
var majorMarker29 = L.icon({
|
||||
iconUrl: 'img/icons/major-marker-icon-car.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
var minorMarker29 = L.icon({
|
||||
iconUrl: 'img/icons/minor-marker-icon-car.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
// 30 - Wasser
|
||||
var systemMarker30 = L.icon({
|
||||
iconUrl: 'img/icons/system-marker-icon-car.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
var criticalMarker30 = L.icon({
|
||||
iconUrl: 'img/icons/marker-icon-car.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
var majorMarker30 = L.icon({
|
||||
iconUrl: 'img/icons/major-marker-icon-car.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
var minorMarker30 = L.icon({
|
||||
iconUrl: 'img/icons/minor-marker-icon-car.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
91
public/js/js/icons.server
Normal file
@@ -0,0 +1,91 @@
|
||||
//Markergrafiken
|
||||
var greenMarker = L.icon({
|
||||
iconUrl: '../tilemap/css/images/marker-icon-green.png',
|
||||
iconSize: [18, 30], // Größe
|
||||
iconAnchor: [9, 30], // Ankerpunkt
|
||||
popupAnchor: [4, -25] // PopUp Anker
|
||||
});
|
||||
|
||||
var redMarker = L.icon({
|
||||
iconUrl: '../tilemap/css/images/marker-icon-red.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
var yellowMarker = L.icon({
|
||||
iconUrl: '../tilemap/css/images/marker-icon-yellow.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [-3, -76] // PopUp Anker
|
||||
});
|
||||
|
||||
var greenMarkerBox = L.icon({
|
||||
iconUrl: '../tilemap/css/images/marker-icon-green-box.png',
|
||||
iconSize: [18, 30], // Größe
|
||||
iconAnchor: [9, 30], // Ankerpunkt
|
||||
popupAnchor: [4, -25] // PopUp Anker
|
||||
});
|
||||
|
||||
var redMarkerBox = L.icon({
|
||||
iconUrl: '../tilemap/css/images/marker-icon-red-box.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
var yellowMarkerBox = L.icon({
|
||||
iconUrl: '../tilemap/css/images/marker-icon-yellow-box.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [-3, -76] // PopUp Anker
|
||||
});
|
||||
|
||||
var redMarkerBox = L.icon({
|
||||
iconUrl: '../tilemap/css/images/marker-icon-lr-critical.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
var systemMarkerModemBox = L.icon({
|
||||
iconUrl: '../tilemap/css/images/system-marker-icon-antenna.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
var criticalMarkerModemBox = L.icon({
|
||||
iconUrl: '../tilemap/css/images/marker-icon-antenna.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
var majorMarkerModemBox = L.icon({
|
||||
iconUrl: '../tilemap/css/images/major-marker-icon-antenna.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
var minorMarkerModemBox = L.icon({
|
||||
iconUrl: '../tilemap/css/images/minor-marker-icon-antenna.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
var redMarkerTelefonBox = L.icon({
|
||||
iconUrl: '../tilemap/css/images/marker-icon-phone-talk.png',
|
||||
iconSize: [26, 41], // Größe
|
||||
iconAnchor: [13, 41], // Ankerpunkt
|
||||
popupAnchor: [0, -36] // PopUp Anker
|
||||
});
|
||||
|
||||
var spaceStationMarker = L.icon({
|
||||
iconUrl: '../tilemap/css/images/space-station.png',
|
||||
iconSize: [50, 50], // Größe
|
||||
iconAnchor: [25, 50], // Ankerpunkt
|
||||
popupAnchor: [0, -60] // PopUp Anker
|
||||
});
|
||||
4
public/js/js/jquery.min.js
vendored
Normal file
BIN
public/js/js/leaflet/images/layers-2x.png
Normal file
|
After Width: | Height: | Size: 1.2 KiB |
BIN
public/js/js/leaflet/images/layers.png
Normal file
|
After Width: | Height: | Size: 696 B |
BIN
public/js/js/leaflet/images/marker-icon-2x.png
Normal file
|
After Width: | Height: | Size: 2.4 KiB |
BIN
public/js/js/leaflet/images/marker-icon.png
Normal file
|
After Width: | Height: | Size: 1.4 KiB |
BIN
public/js/js/leaflet/images/marker-shadow.png
Normal file
|
After Width: | Height: | Size: 618 B |
13968
public/js/js/leaflet/leaflet-src.esm.js
Normal file
1
public/js/js/leaflet/leaflet-src.esm.js.map
Normal file
14062
public/js/js/leaflet/leaflet-src.js
Normal file
1
public/js/js/leaflet/leaflet-src.js.map
Normal file
6
public/js/js/leaflet/leaflet.js
Normal file
1
public/js/js/leaflet/leaflet.js.map
Normal file
18
public/js/js/list.js
Normal file
@@ -0,0 +1,18 @@
|
||||
|
||||
var test = ["hase","ente","ente","igel","hase","ente","ente","igel"];
|
||||
|
||||
// doppelte Löschen
|
||||
function doublesDelete(listing) {
|
||||
let temp = [];
|
||||
listing.forEach((c) => {
|
||||
if (!temp.includes(c)) {
|
||||
temp.push(c);
|
||||
}
|
||||
});
|
||||
return temp;
|
||||
}
|
||||
|
||||
var testreturn = doublesDelete(test);
|
||||
console.log(testreturn)
|
||||
|
||||
// html Liste erstellen
|
||||
869
public/js/js/vendor/bundle.js
vendored
Normal file
@@ -0,0 +1,869 @@
|
||||
(function (L) {
|
||||
'use strict';
|
||||
|
||||
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
||||
|
||||
var L__default = /*#__PURE__*/_interopDefaultLegacy(L);
|
||||
|
||||
function _classCallCheck(instance, Constructor) {
|
||||
if (!(instance instanceof Constructor)) {
|
||||
throw new TypeError("Cannot call a class as a function");
|
||||
}
|
||||
}
|
||||
|
||||
function _defineProperties(target, props) {
|
||||
for (var i = 0; i < props.length; i++) {
|
||||
var descriptor = props[i];
|
||||
descriptor.enumerable = descriptor.enumerable || false;
|
||||
descriptor.configurable = true;
|
||||
if ("value" in descriptor) descriptor.writable = true;
|
||||
Object.defineProperty(target, descriptor.key, descriptor);
|
||||
}
|
||||
}
|
||||
|
||||
function _createClass(Constructor, protoProps, staticProps) {
|
||||
if (protoProps) _defineProperties(Constructor.prototype, protoProps);
|
||||
if (staticProps) _defineProperties(Constructor, staticProps);
|
||||
return Constructor;
|
||||
}
|
||||
|
||||
function _defineProperty(obj, key, value) {
|
||||
if (key in obj) {
|
||||
Object.defineProperty(obj, key, {
|
||||
value: value,
|
||||
enumerable: true,
|
||||
configurable: true,
|
||||
writable: true
|
||||
});
|
||||
} else {
|
||||
obj[key] = value;
|
||||
}
|
||||
|
||||
return obj;
|
||||
}
|
||||
|
||||
function _slicedToArray(arr, i) {
|
||||
return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();
|
||||
}
|
||||
|
||||
function _arrayWithHoles(arr) {
|
||||
if (Array.isArray(arr)) return arr;
|
||||
}
|
||||
|
||||
function _iterableToArrayLimit(arr, i) {
|
||||
if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return;
|
||||
var _arr = [];
|
||||
var _n = true;
|
||||
var _d = false;
|
||||
var _e = undefined;
|
||||
|
||||
try {
|
||||
for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {
|
||||
_arr.push(_s.value);
|
||||
|
||||
if (i && _arr.length === i) break;
|
||||
}
|
||||
} catch (err) {
|
||||
_d = true;
|
||||
_e = err;
|
||||
} finally {
|
||||
try {
|
||||
if (!_n && _i["return"] != null) _i["return"]();
|
||||
} finally {
|
||||
if (_d) throw _e;
|
||||
}
|
||||
}
|
||||
|
||||
return _arr;
|
||||
}
|
||||
|
||||
function _unsupportedIterableToArray(o, minLen) {
|
||||
if (!o) return;
|
||||
if (typeof o === "string") return _arrayLikeToArray(o, minLen);
|
||||
var n = Object.prototype.toString.call(o).slice(8, -1);
|
||||
if (n === "Object" && o.constructor) n = o.constructor.name;
|
||||
if (n === "Map" || n === "Set") return Array.from(o);
|
||||
if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);
|
||||
}
|
||||
|
||||
function _arrayLikeToArray(arr, len) {
|
||||
if (len == null || len > arr.length) len = arr.length;
|
||||
|
||||
for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];
|
||||
|
||||
return arr2;
|
||||
}
|
||||
|
||||
function _nonIterableRest() {
|
||||
throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
|
||||
}
|
||||
|
||||
function _classPrivateFieldGet(receiver, privateMap) {
|
||||
var descriptor = privateMap.get(receiver);
|
||||
|
||||
if (!descriptor) {
|
||||
throw new TypeError("attempted to get private field on non-instance");
|
||||
}
|
||||
|
||||
if (descriptor.get) {
|
||||
return descriptor.get.call(receiver);
|
||||
}
|
||||
|
||||
return descriptor.value;
|
||||
}
|
||||
|
||||
function _classPrivateFieldSet(receiver, privateMap, value) {
|
||||
var descriptor = privateMap.get(receiver);
|
||||
|
||||
if (!descriptor) {
|
||||
throw new TypeError("attempted to set private field on non-instance");
|
||||
}
|
||||
|
||||
if (descriptor.set) {
|
||||
descriptor.set.call(receiver, value);
|
||||
} else {
|
||||
if (!descriptor.writable) {
|
||||
throw new TypeError("attempted to set read only private field");
|
||||
}
|
||||
|
||||
descriptor.value = value;
|
||||
}
|
||||
|
||||
return value;
|
||||
}
|
||||
|
||||
var BouncingOptions = /*#__PURE__*/function () {
|
||||
/**
|
||||
* How high marker can bounce (px)
|
||||
* @type {number}
|
||||
*/
|
||||
|
||||
/**
|
||||
* How much marker can contract (px)
|
||||
* @type {number}
|
||||
*/
|
||||
|
||||
/**
|
||||
* Bouncing speed coefficient
|
||||
* @type {number}
|
||||
*/
|
||||
|
||||
/**
|
||||
* Contracting speed coefficient
|
||||
* @type {number}
|
||||
*/
|
||||
|
||||
/**
|
||||
* Shadow inclination angle(radians); null to cancel shadow movement
|
||||
* @type {number}
|
||||
*/
|
||||
|
||||
/**
|
||||
* Activate contract animation
|
||||
* @type {boolean}
|
||||
*/
|
||||
|
||||
/**
|
||||
* Many markers can bounce in the same time
|
||||
* @type {boolean}
|
||||
*/
|
||||
function BouncingOptions(options) {
|
||||
_classCallCheck(this, BouncingOptions);
|
||||
|
||||
_defineProperty(this, "bounceHeight", 15);
|
||||
|
||||
_defineProperty(this, "contractHeight", 12);
|
||||
|
||||
_defineProperty(this, "bounceSpeed", 52);
|
||||
|
||||
_defineProperty(this, "contractSpeed", 52);
|
||||
|
||||
_defineProperty(this, "shadowAngle", -Math.PI / 4);
|
||||
|
||||
_defineProperty(this, "elastic", true);
|
||||
|
||||
_defineProperty(this, "exclusive", false);
|
||||
|
||||
options && Object.assign(this, options);
|
||||
}
|
||||
|
||||
_createClass(BouncingOptions, [{
|
||||
key: "override",
|
||||
value: function override(options) {
|
||||
return Object.assign(new BouncingOptions(this), options);
|
||||
}
|
||||
}]);
|
||||
|
||||
return BouncingOptions;
|
||||
}();
|
||||
|
||||
var _bouncingMarkers = new WeakMap();
|
||||
|
||||
var Orchestration = /*#__PURE__*/function () {
|
||||
function Orchestration() {
|
||||
_classCallCheck(this, Orchestration);
|
||||
|
||||
_bouncingMarkers.set(this, {
|
||||
writable: true,
|
||||
value: []
|
||||
});
|
||||
}
|
||||
|
||||
_createClass(Orchestration, [{
|
||||
key: "getBouncingMarkers",
|
||||
value: function getBouncingMarkers() {
|
||||
return _classPrivateFieldGet(this, _bouncingMarkers);
|
||||
}
|
||||
/**
|
||||
* Adds the marker to the list of bouncing markers.
|
||||
* If flag 'exclusive' is set to true, stops all bouncing markers before.
|
||||
*
|
||||
* @param marker {Marker} marker object
|
||||
* @param exclusive {boolean} flag of exclusive bouncing. If set to true, stops the bouncing
|
||||
* of all other markers.
|
||||
*/
|
||||
|
||||
}, {
|
||||
key: "addBouncingMarker",
|
||||
value: function addBouncingMarker(marker, exclusive) {
|
||||
if (exclusive || marker._bouncingMotion.bouncingOptions.exclusive) {
|
||||
this.stopAllBouncingMarkers();
|
||||
} else {
|
||||
this.stopExclusiveMarkerBouncing();
|
||||
}
|
||||
|
||||
_classPrivateFieldGet(this, _bouncingMarkers).push(marker);
|
||||
}
|
||||
/**
|
||||
* Stops the bouncing of exclusive marker.
|
||||
*/
|
||||
|
||||
}, {
|
||||
key: "stopExclusiveMarkerBouncing",
|
||||
value: function stopExclusiveMarkerBouncing() {
|
||||
var exclusiveMarker = _classPrivateFieldGet(this, _bouncingMarkers).find(function (marker) {
|
||||
return marker._bouncingMotion.bouncingOptions.exclusive;
|
||||
});
|
||||
|
||||
if (exclusiveMarker) {
|
||||
exclusiveMarker.stopBouncing();
|
||||
}
|
||||
}
|
||||
/**
|
||||
* Removes the marker from the list of bouncing markers.
|
||||
* @param marker {Marker} marker
|
||||
*/
|
||||
|
||||
}, {
|
||||
key: "removeBouncingMarker",
|
||||
value: function removeBouncingMarker(marker) {
|
||||
var i = _classPrivateFieldGet(this, _bouncingMarkers).indexOf(marker);
|
||||
|
||||
if (~i) {
|
||||
_classPrivateFieldGet(this, _bouncingMarkers).splice(i, 1);
|
||||
}
|
||||
}
|
||||
/**
|
||||
* Stops the bouncing of all currently bouncing markers. Purge the array of bouncing markers.
|
||||
*/
|
||||
|
||||
}, {
|
||||
key: "stopAllBouncingMarkers",
|
||||
value: function stopAllBouncingMarkers() {
|
||||
var marker;
|
||||
|
||||
while (marker = _classPrivateFieldGet(this, _bouncingMarkers).shift()) {
|
||||
marker.stopBouncing();
|
||||
}
|
||||
}
|
||||
}]);
|
||||
|
||||
return Orchestration;
|
||||
}();
|
||||
|
||||
var oldSetPos = L.Marker.prototype._setPos;
|
||||
var oldOnAdd = L.Marker.prototype.onAdd;
|
||||
var oldSetIcon = L.Marker.prototype.setIcon;
|
||||
var MarkerPrototypeExt = {
|
||||
/** Bouncing options shared by all markers. */
|
||||
_bouncingOptions: new BouncingOptions(),
|
||||
_orchestration: new Orchestration(),
|
||||
|
||||
/**
|
||||
* Registers options of bouncing animation for this marker. After registration of options for
|
||||
* this marker, it will ignore changes of default options. Function automatically recalculates
|
||||
* animation steps and delays.
|
||||
*
|
||||
* @param options {BouncingOptions|object} options object
|
||||
* @return {Marker} this marker
|
||||
*/
|
||||
setBouncingOptions: function setBouncingOptions(options) {
|
||||
this._bouncingMotion.updateBouncingOptions(options);
|
||||
|
||||
return this;
|
||||
},
|
||||
|
||||
/**
|
||||
* Returns true if this marker is bouncing. If this marker is not bouncing returns false.
|
||||
* @return {boolean} true if marker is bouncing, false if not
|
||||
*/
|
||||
isBouncing: function isBouncing() {
|
||||
return this._bouncingMotion.isBouncing;
|
||||
},
|
||||
|
||||
/**
|
||||
* Starts bouncing of this marker.
|
||||
* @param times {number|null} number of times the marker must to bounce
|
||||
* @return {Marker} this marker
|
||||
*/
|
||||
bounce: function bounce() {
|
||||
var times = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
|
||||
|
||||
this._bouncingMotion.bounce(times);
|
||||
|
||||
var exclusive = this._bouncingMotion.bouncingOptions.exclusive;
|
||||
|
||||
L.Marker.prototype._orchestration.addBouncingMarker(this, exclusive);
|
||||
|
||||
return this;
|
||||
},
|
||||
|
||||
/**
|
||||
* Stops bouncing of this marker.
|
||||
* Note: the bouncing not stops immediately after the call of this method.
|
||||
* Instead, the animation is executed until marker returns to it's original position and takes
|
||||
* it's full size.
|
||||
*
|
||||
* @return {Marker} this marker
|
||||
*/
|
||||
stopBouncing: function stopBouncing() {
|
||||
this._bouncingMotion.stopBouncing();
|
||||
|
||||
L.Marker.prototype._orchestration.removeBouncingMarker(this);
|
||||
|
||||
return this;
|
||||
},
|
||||
|
||||
/**
|
||||
* Starts/stops bouncing of this marker.
|
||||
* @return {Marker} marker
|
||||
*/
|
||||
toggleBouncing: function toggleBouncing() {
|
||||
if (this._bouncingMotion.isBouncing) {
|
||||
this.stopBouncing();
|
||||
} else {
|
||||
this.bounce();
|
||||
}
|
||||
|
||||
return this;
|
||||
},
|
||||
isRealMarker: function isRealMarker() {
|
||||
return this.__proto__ === L.Marker.prototype;
|
||||
},
|
||||
_setPos: function _setPos(position) {
|
||||
oldSetPos.call(this, position);
|
||||
|
||||
if (this.isRealMarker()) {
|
||||
this._bouncingMotion.position = position;
|
||||
|
||||
this._bouncingMotion.resetStyles(this);
|
||||
}
|
||||
},
|
||||
onAdd: function onAdd(map) {
|
||||
oldOnAdd.call(this, map);
|
||||
|
||||
if (this.isRealMarker()) {
|
||||
this._bouncingMotion.resetStyles(this);
|
||||
}
|
||||
},
|
||||
setIcon: function setIcon(icon) {
|
||||
oldSetIcon.call(this, icon);
|
||||
|
||||
if (this.isRealMarker()) {
|
||||
this._bouncingMotion.resetStyles(this);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* Calculates the points to draw the continous line on the screen. Returns the array of ordered
|
||||
* point coordinates. Uses Bresenham algorithm.
|
||||
*
|
||||
* @param x {number} x coordinate of origin
|
||||
* @param y {number} y coordinate of origin
|
||||
* @param angle {number} angle (radians)
|
||||
* @param length {number} length of line (px)
|
||||
*
|
||||
* @return {[number, number][]} array of ordered point coordinates
|
||||
*
|
||||
* @see http://rosettacode.org/wiki/Bitmap/Bresenham's_line_algorithm#JavaScript
|
||||
*/
|
||||
function calculateLine(x, y, angle, length) {
|
||||
// TODO: use something else than multiply length by 2 to calculate the line with defined
|
||||
// length
|
||||
var xD = Math.round(x + Math.cos(angle) * (length * 2)),
|
||||
yD = Math.round(y + Math.sin(angle) * (length * 2)),
|
||||
dx = Math.abs(xD - x),
|
||||
sx = x < xD ? 1 : -1,
|
||||
dy = Math.abs(yD - y),
|
||||
sy = y < yD ? 1 : -1,
|
||||
err = (dx > dy ? dx : -dy) / 2,
|
||||
e2,
|
||||
p = [],
|
||||
i = 0;
|
||||
|
||||
while (true) {
|
||||
p.push([x, y]);
|
||||
i++;
|
||||
if (i === length) break;
|
||||
e2 = err;
|
||||
|
||||
if (e2 > -dx) {
|
||||
err -= dy;
|
||||
x += sx;
|
||||
}
|
||||
|
||||
if (e2 < dy) {
|
||||
err += dx;
|
||||
y += sy;
|
||||
}
|
||||
}
|
||||
|
||||
return p;
|
||||
}
|
||||
|
||||
function styleInject(css, ref) {
|
||||
if ( ref === void 0 ) ref = {};
|
||||
var insertAt = ref.insertAt;
|
||||
|
||||
if (!css || typeof document === 'undefined') { return; }
|
||||
|
||||
var head = document.head || document.getElementsByTagName('head')[0];
|
||||
var style = document.createElement('style');
|
||||
style.type = 'text/css';
|
||||
|
||||
if (insertAt === 'top') {
|
||||
if (head.firstChild) {
|
||||
head.insertBefore(style, head.firstChild);
|
||||
} else {
|
||||
head.appendChild(style);
|
||||
}
|
||||
} else {
|
||||
head.appendChild(style);
|
||||
}
|
||||
|
||||
if (style.styleSheet) {
|
||||
style.styleSheet.cssText = css;
|
||||
} else {
|
||||
style.appendChild(document.createTextNode(css));
|
||||
}
|
||||
}
|
||||
|
||||
var css_248z = "@keyframes l-smooth-marker-bouncing-move {\n from {\n transform: translate(var(--pos-x), var(--pos-y))\n }\n to {\n transform: translate(var(--pos-x-jump, var(--pos-x)), var(--pos-y-jump))\n }\n}\n\n@keyframes l-smooth-marker-bouncing-contract {\n from {\n transform: translate(var(--pos-x), var(--pos-y))\n }\n to {\n transform: translate(var(--pos-x), var(--pos-y-contract)) scaleY(var(--scale-contract))\n }\n}\n\n.bouncing {\n animation-name: l-smooth-marker-bouncing-move, l-smooth-marker-bouncing-move, l-smooth-marker-bouncing-contract, l-smooth-marker-bouncing-contract;\n animation-direction: normal, reverse, normal, reverse;\n animation-duration: var(--duration-jump), var(--duration-jump), var(--duration-contract), var(--duration-contract);\n animation-delay: var(--delays)\n}\n\n.bouncing.simple {\n animation-name: l-smooth-marker-bouncing-move, l-smooth-marker-bouncing-move;\n animation-direction: normal, reverse;\n animation-duration: var(--duration-jump), var(--duration-jump);\n animation-delay: var(--delays)\n}\n";
|
||||
styleInject(css_248z);
|
||||
|
||||
/** Regex to parse style definitions. */
|
||||
var regStyle = /([\w-]+): ([^;]+);/g;
|
||||
|
||||
var Styles = /*#__PURE__*/function () {
|
||||
function Styles(styles) {
|
||||
_classCallCheck(this, Styles);
|
||||
|
||||
styles && Object.assign(this, styles);
|
||||
}
|
||||
|
||||
_createClass(Styles, [{
|
||||
key: "findOpacity",
|
||||
value: function findOpacity(options) {
|
||||
this.opacity = (options === null || options === void 0 ? void 0 : options.opacityWhenUnclustered // used by cluster plugin
|
||||
) || (options === null || options === void 0 ? void 0 : options.opacity) || 1;
|
||||
}
|
||||
/**
|
||||
* Creates a copy of styles merged with provided 'styles'.
|
||||
* @param {Object} styles object with styles to merge
|
||||
* @return {Styles} copy of styles
|
||||
*/
|
||||
|
||||
}, {
|
||||
key: "withStyles",
|
||||
value: function withStyles(styles) {
|
||||
var copy = new Styles(this);
|
||||
copy && Object.assign(copy, styles);
|
||||
return copy;
|
||||
}
|
||||
}, {
|
||||
key: "toString",
|
||||
value: function toString() {
|
||||
return Object.entries(this).map(function (entry) {
|
||||
return "".concat(entry[0], ": ").concat(entry[1], ";");
|
||||
}).join(' ');
|
||||
}
|
||||
/**
|
||||
* Parses cssText attribute into Styles object.
|
||||
* @param cssText {string} cssText string
|
||||
* @return {Styles} Styles object
|
||||
*/
|
||||
|
||||
}], [{
|
||||
key: "parse",
|
||||
value: function parse(cssText) {
|
||||
var styles = {};
|
||||
var match = regStyle.exec(cssText);
|
||||
|
||||
while (match) {
|
||||
styles[match[1]] = match[2];
|
||||
match = regStyle.exec(cssText);
|
||||
}
|
||||
|
||||
delete styles['z-index'];
|
||||
delete styles['opacity'];
|
||||
styles['outline'] = 'none';
|
||||
return new Styles(styles);
|
||||
}
|
||||
/**
|
||||
* @param marker {Marker}
|
||||
*/
|
||||
|
||||
}, {
|
||||
key: "ofMarker",
|
||||
value: function ofMarker(marker) {
|
||||
var styles = Styles.parse(marker._icon.style.cssText);
|
||||
styles.findOpacity(marker.options);
|
||||
styles['z-index'] = marker._zIndex;
|
||||
return styles;
|
||||
}
|
||||
}]);
|
||||
|
||||
return Styles;
|
||||
}();
|
||||
|
||||
var animationNamePrefix = 'l-smooth-marker-bouncing-';
|
||||
var moveAnimationName = animationNamePrefix + 'move';
|
||||
var contractAnimationName = animationNamePrefix + 'contract';
|
||||
/*
|
||||
* CSS3 animation runs faster than transform-based animation. We need to reduce speed in order
|
||||
* to be compatible with old API.
|
||||
*/
|
||||
|
||||
var speedCoefficient = 0.8;
|
||||
/**
|
||||
* Removes and then resets required classes on the HTML element.
|
||||
* Used as hack to restart CSS3 animation.
|
||||
*
|
||||
* @param element {HTMLElement} HTML element
|
||||
* @param classes {string[]} names of classes
|
||||
*/
|
||||
|
||||
function resetClasses(element, classes) {
|
||||
classes.forEach(function (className) {
|
||||
return L.DomUtil.removeClass(element, className);
|
||||
});
|
||||
void element.offsetWidth;
|
||||
classes.forEach(function (className) {
|
||||
return L.DomUtil.addClass(element, className);
|
||||
});
|
||||
}
|
||||
|
||||
var _lastAnimationName = new WeakMap();
|
||||
|
||||
var _classes = new WeakMap();
|
||||
|
||||
var _eventCounter = new WeakMap();
|
||||
|
||||
var _times = new WeakMap();
|
||||
|
||||
var _listener = new WeakMap();
|
||||
|
||||
var BouncingMotionCss3 = /*#__PURE__*/function () {
|
||||
/**
|
||||
* Constructor.
|
||||
*
|
||||
* @param marker {Marker} marker
|
||||
* @param position {Point} marker current position on the map canvas
|
||||
* @param bouncingOptions {BouncingOptions} options of bouncing animation
|
||||
*/
|
||||
function BouncingMotionCss3(marker, position, bouncingOptions) {
|
||||
var _this = this;
|
||||
|
||||
_classCallCheck(this, BouncingMotionCss3);
|
||||
|
||||
_defineProperty(this, "marker", void 0);
|
||||
|
||||
_defineProperty(this, "position", void 0);
|
||||
|
||||
_defineProperty(this, "bouncingOptions", void 0);
|
||||
|
||||
_defineProperty(this, "isBouncing", false);
|
||||
|
||||
_defineProperty(this, "iconStyles", void 0);
|
||||
|
||||
_defineProperty(this, "shadowStyles", void 0);
|
||||
|
||||
_defineProperty(this, "bouncingAnimationPlaying", false);
|
||||
|
||||
_lastAnimationName.set(this, {
|
||||
writable: true,
|
||||
value: contractAnimationName
|
||||
});
|
||||
|
||||
_classes.set(this, {
|
||||
writable: true,
|
||||
value: ['bouncing']
|
||||
});
|
||||
|
||||
_eventCounter.set(this, {
|
||||
writable: true,
|
||||
value: void 0
|
||||
});
|
||||
|
||||
_times.set(this, {
|
||||
writable: true,
|
||||
value: void 0
|
||||
});
|
||||
|
||||
_listener.set(this, {
|
||||
writable: true,
|
||||
value: function value(event) {
|
||||
return _this.onAnimationEnd(event);
|
||||
}
|
||||
});
|
||||
|
||||
this.marker = marker;
|
||||
this.position = position;
|
||||
this.updateBouncingOptions(bouncingOptions);
|
||||
}
|
||||
|
||||
_createClass(BouncingMotionCss3, [{
|
||||
key: "updateBouncingOptions",
|
||||
value: function updateBouncingOptions(options) {
|
||||
this.bouncingOptions = options instanceof BouncingOptions ? options : this.bouncingOptions.override(options);
|
||||
|
||||
if (!this.bouncingOptions.elastic) {
|
||||
_classPrivateFieldSet(this, _lastAnimationName, moveAnimationName);
|
||||
|
||||
_classPrivateFieldGet(this, _classes).push('simple');
|
||||
}
|
||||
}
|
||||
}, {
|
||||
key: "onAnimationEnd",
|
||||
value: function onAnimationEnd(event) {
|
||||
var _this2 = this;
|
||||
|
||||
if (event.animationName === _classPrivateFieldGet(this, _lastAnimationName)) {
|
||||
var _this$eventCounter;
|
||||
|
||||
_classPrivateFieldSet(this, _eventCounter, (_this$eventCounter = +_classPrivateFieldGet(this, _eventCounter)) + 1), _this$eventCounter;
|
||||
|
||||
_classPrivateFieldSet(this, _eventCounter, _classPrivateFieldGet(this, _eventCounter) % 2);
|
||||
|
||||
if (!_classPrivateFieldGet(this, _eventCounter)) {
|
||||
if (this.isBouncing && (_classPrivateFieldGet(this, _times) === null || _classPrivateFieldSet(this, _times, +_classPrivateFieldGet(this, _times) - 1))) {
|
||||
resetClasses(this.marker._icon, _classPrivateFieldGet(this, _classes));
|
||||
|
||||
if (this.marker._shadow) {
|
||||
resetClasses(this.marker._shadow, _classPrivateFieldGet(this, _classes));
|
||||
}
|
||||
} else {
|
||||
_classPrivateFieldGet(this, _classes).forEach(function (className) {
|
||||
L.DomUtil.removeClass(_this2.marker._icon, className);
|
||||
|
||||
if (_this2.marker._shadow) {
|
||||
L.DomUtil.removeClass(_this2.marker._shadow, className);
|
||||
}
|
||||
});
|
||||
|
||||
this.bouncingAnimationPlaying = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}, {
|
||||
key: "resetStyles",
|
||||
value: function resetStyles(marker) {
|
||||
var _this$marker$getIcon, _this$marker$getIcon$, _this$marker, _this$marker$_iconObj, _this$marker$_iconObj2;
|
||||
|
||||
this.marker = marker;
|
||||
this.iconStyles = Styles.ofMarker(marker);
|
||||
|
||||
if (marker._shadow) {
|
||||
this.shadowStyles = Styles.parse(marker._shadow.style.cssText);
|
||||
}
|
||||
|
||||
var iconHeight = ((_this$marker$getIcon = this.marker.getIcon()) === null || _this$marker$getIcon === void 0 ? void 0 : (_this$marker$getIcon$ = _this$marker$getIcon.options) === null || _this$marker$getIcon$ === void 0 ? void 0 : _this$marker$getIcon$.iconSize[1]) || ((_this$marker = this.marker) === null || _this$marker === void 0 ? void 0 : (_this$marker$_iconObj = _this$marker._iconObj) === null || _this$marker$_iconObj === void 0 ? void 0 : (_this$marker$_iconObj2 = _this$marker$_iconObj.options) === null || _this$marker$_iconObj2 === void 0 ? void 0 : _this$marker$_iconObj2.iconSize[1]);
|
||||
var iconAnimationParams = BouncingMotionCss3.animationParams(this.position, this.bouncingOptions, iconHeight);
|
||||
this.iconStyles = this.iconStyles.withStyles(iconAnimationParams);
|
||||
this.marker._icon.style.cssText = this.iconStyles.toString();
|
||||
|
||||
if (this.bouncingAnimationPlaying) {
|
||||
resetClasses(this.marker._icon, _classPrivateFieldGet(this, _classes));
|
||||
|
||||
this.marker._icon.addEventListener('animationend', _classPrivateFieldGet(this, _listener));
|
||||
}
|
||||
|
||||
var _this$bouncingOptions = this.bouncingOptions,
|
||||
bounceHeight = _this$bouncingOptions.bounceHeight,
|
||||
contractHeight = _this$bouncingOptions.contractHeight,
|
||||
shadowAngle = _this$bouncingOptions.shadowAngle;
|
||||
|
||||
if (this.marker._shadow && shadowAngle) {
|
||||
var _this$marker$getIcon2, _this$marker$getIcon3;
|
||||
|
||||
var _this$position = this.position,
|
||||
x = _this$position.x,
|
||||
y = _this$position.y;
|
||||
var points = calculateLine(x, y, shadowAngle, bounceHeight + 1);
|
||||
|
||||
var _points$bounceHeight = _slicedToArray(points[bounceHeight], 2),
|
||||
posXJump = _points$bounceHeight[0],
|
||||
posYJump = _points$bounceHeight[1];
|
||||
|
||||
var shadowHeight = (_this$marker$getIcon2 = this.marker.getIcon()) === null || _this$marker$getIcon2 === void 0 ? void 0 : (_this$marker$getIcon3 = _this$marker$getIcon2.options) === null || _this$marker$getIcon3 === void 0 ? void 0 : _this$marker$getIcon3.shadowSize[1];
|
||||
var shadowScaleContract = BouncingMotionCss3.contractScale(shadowHeight, contractHeight);
|
||||
this.shadowStyles = this.shadowStyles.withStyles(iconAnimationParams).withStyles({
|
||||
'--pos-x-jump': "".concat(posXJump, "px"),
|
||||
'--pos-y-jump': "".concat(posYJump, "px"),
|
||||
'--scale-contract': shadowScaleContract
|
||||
});
|
||||
this.marker._shadow.style.cssText = this.shadowStyles.toString();
|
||||
|
||||
if (this.bouncingAnimationPlaying) {
|
||||
resetClasses(this.marker._shadow, _classPrivateFieldGet(this, _classes));
|
||||
}
|
||||
}
|
||||
}
|
||||
}, {
|
||||
key: "bounce",
|
||||
value: function bounce() {
|
||||
var times = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
|
||||
|
||||
_classPrivateFieldSet(this, _times, times);
|
||||
|
||||
_classPrivateFieldSet(this, _eventCounter, 0);
|
||||
|
||||
this.isBouncing = true;
|
||||
|
||||
if (this.bouncingAnimationPlaying) {
|
||||
return;
|
||||
}
|
||||
|
||||
this.bouncingAnimationPlaying = true;
|
||||
resetClasses(this.marker._icon, _classPrivateFieldGet(this, _classes));
|
||||
|
||||
if (this.marker._shadow) {
|
||||
resetClasses(this.marker._shadow, _classPrivateFieldGet(this, _classes));
|
||||
}
|
||||
|
||||
this.marker._icon.addEventListener('animationend', _classPrivateFieldGet(this, _listener));
|
||||
}
|
||||
}, {
|
||||
key: "stopBouncing",
|
||||
value: function stopBouncing() {
|
||||
this.isBouncing = false;
|
||||
}
|
||||
/**
|
||||
* Calculates parameters of CSS3 animation of bouncing.
|
||||
*
|
||||
* @param position {Point} marker current position on the map canvas
|
||||
* @param bouncingOptions {BouncingOptions} options of bouncing animation
|
||||
* @param height {number} icons height
|
||||
* @return {object} CSS3 animation parameters
|
||||
*/
|
||||
|
||||
}], [{
|
||||
key: "animationParams",
|
||||
value: function animationParams(position, bouncingOptions, height) {
|
||||
var x = position.x,
|
||||
y = position.y;
|
||||
var bounceHeight = bouncingOptions.bounceHeight,
|
||||
contractHeight = bouncingOptions.contractHeight,
|
||||
bounceSpeed = bouncingOptions.bounceSpeed,
|
||||
contractSpeed = bouncingOptions.contractSpeed;
|
||||
var scaleContract = BouncingMotionCss3.contractScale(height, contractHeight);
|
||||
var durationJump = BouncingMotionCss3.calculateDuration(bounceHeight, bounceSpeed);
|
||||
var durationContract = BouncingMotionCss3.calculateDuration(contractHeight, contractSpeed);
|
||||
var delays = [0, durationJump, durationJump * 2, durationJump * 2 + durationContract];
|
||||
return {
|
||||
'--pos-x': "".concat(x, "px"),
|
||||
'--pos-y': "".concat(y, "px"),
|
||||
'--pos-y-jump': "".concat(y - bounceHeight, "px"),
|
||||
'--pos-y-contract': "".concat(y + contractHeight, "px"),
|
||||
'--scale-contract': scaleContract,
|
||||
'--duration-jump': "".concat(durationJump, "ms"),
|
||||
'--duration-contract': "".concat(durationContract, "ms"),
|
||||
'--delays': "0ms, ".concat(delays[1], "ms, ").concat(delays[2], "ms, ").concat(delays[3], "ms")
|
||||
};
|
||||
}
|
||||
/**
|
||||
* Calculates scale of contracting.
|
||||
*
|
||||
* @param {number} height original height
|
||||
* @param {number} contractHeight how much it must contract
|
||||
* @return {number} contracting scale between 0 and 1
|
||||
*/
|
||||
|
||||
}, {
|
||||
key: "contractScale",
|
||||
value: function contractScale(height, contractHeight) {
|
||||
return (height - contractHeight) / height;
|
||||
}
|
||||
/**
|
||||
* Calculates duration of animation.
|
||||
*
|
||||
* @param height {number} height of movement or resizing (px)
|
||||
* @param speed {number} speed coefficient
|
||||
*
|
||||
* @return {number} duration of animation (ms)
|
||||
*/
|
||||
|
||||
}, {
|
||||
key: "calculateDuration",
|
||||
value: function calculateDuration(height, speed) {
|
||||
var duration = Math.round(speed * speedCoefficient);
|
||||
var i = height;
|
||||
|
||||
while (--i) {
|
||||
duration += Math.round(speed / (height - i));
|
||||
}
|
||||
|
||||
return duration;
|
||||
}
|
||||
}]);
|
||||
|
||||
return BouncingMotionCss3;
|
||||
}();
|
||||
|
||||
L__default['default'].Marker.include(MarkerPrototypeExt);
|
||||
/**
|
||||
* Registers default options of bouncing animation.
|
||||
* @param options {BouncingOptions|object} object with options
|
||||
*/
|
||||
|
||||
L__default['default'].Marker.setBouncingOptions = function (options) {
|
||||
L.Marker.prototype._bouncingOptions = options instanceof BouncingOptions ? options : new BouncingOptions(options);
|
||||
};
|
||||
/**
|
||||
* Returns array of currently bouncing markers.
|
||||
* @return {Marker[]} array of bouncing markers
|
||||
*/
|
||||
|
||||
|
||||
L__default['default'].Marker.getBouncingMarkers = function () {
|
||||
L.Marker.prototype._orchestration.getBouncingMarkers();
|
||||
};
|
||||
/**
|
||||
* Stops the bouncing of all currently bouncing markers. Purge the array of bouncing markers.
|
||||
*/
|
||||
|
||||
|
||||
L__default['default'].Marker.stopAllBouncingMarkers = function () {
|
||||
L.Marker.prototype._orchestration.stopAllBouncingMarkers();
|
||||
};
|
||||
|
||||
L__default['default'].Marker.addInitHook(function () {
|
||||
if (this.isRealMarker()) {
|
||||
var bouncingOptions = new BouncingOptions(L.Marker.prototype._bouncingOptions);
|
||||
this._bouncingMotion = new BouncingMotionCss3(this, new L.Point(0, 0), bouncingOptions);
|
||||
}
|
||||
});
|
||||
|
||||
}(L));
|
||||
531
public/js/js/vendor/foundation.js
vendored
Normal file
1
public/js/js/vendor/foundation.min.js
vendored
Normal file
66
public/js/js/vendor/gktowgs.js
vendored
Normal file
@@ -0,0 +1,66 @@
|
||||
const proj4 = require('proj4')
|
||||
const epsg = require('epsg')
|
||||
const isObject = require('lodash.isobject')
|
||||
const isNumber = require('lodash.isnumber')
|
||||
|
||||
const epsgFromZone = (zone) => 'EPSG:'+(31464+zone) // zone 2 = 31466, zone 5 = 31469
|
||||
|
||||
const toWGS = (coordinates) => {
|
||||
if(!isObject(coordinates) || !isNumber(coordinates.x) || !isNumber(coordinates.y)){
|
||||
throw new Error('missing or invalid parameter `coordinates`')
|
||||
}
|
||||
if(coordinates.x < 0 || coordinates.x >= Math.pow(10, 7)){
|
||||
throw new Error('`coordinates.x` out of bounds')
|
||||
}
|
||||
if(coordinates.y < 0 || coordinates.y >= Math.pow(10, 7)){
|
||||
throw new Error('`coordinates.y` out of bounds')
|
||||
}
|
||||
|
||||
const zone = +(coordinates.x+'')[0]
|
||||
|
||||
const projected = proj4.default(epsg[epsgFromZone(zone)], 'WGS84', Object.assign({}, coordinates))
|
||||
return ({
|
||||
longitude: projected.x,
|
||||
latitude: projected.y
|
||||
})
|
||||
}
|
||||
|
||||
const toGK = (coordinates, zone) => {
|
||||
if(!isObject(coordinates) || !isNumber(coordinates.longitude) || !isNumber(coordinates.latitude)){
|
||||
throw new Error('missing or invalid parameter `coordinates`')
|
||||
}
|
||||
if(coordinates.longitude < -180 || coordinates.longitude > 180){
|
||||
throw new Error('`coordinates.longitude` out of bounds')
|
||||
}
|
||||
if(coordinates.latitude < -360 || coordinates.latitude > 360){
|
||||
throw new Error('`coordinates.latitude` out of bounds')
|
||||
}
|
||||
|
||||
if(zone){
|
||||
if(!isNumber(zone)){
|
||||
throw new Error('`zone` parameter must be a number')
|
||||
}
|
||||
if(![2,3,4,5].includes(zone)){
|
||||
throw new Error('if set, `zone` parameter must be one of 2, 3, 4, 5')
|
||||
}
|
||||
}
|
||||
else{
|
||||
zone = Math.floor((+coordinates.longitude + 1.5) / 3)
|
||||
if(![2,3,4,5].includes(zone)){
|
||||
throw new Error('could not detect valid zone (2, 3, 4, 5) from input coordinates')
|
||||
}
|
||||
}
|
||||
|
||||
const proj4coordinates = {
|
||||
x: coordinates.longitude,
|
||||
y: coordinates.latitude
|
||||
}
|
||||
|
||||
const projected = proj4('WGS84', epsg[epsgFromZone(zone)], proj4coordinates)
|
||||
return ({
|
||||
x: projected.x,
|
||||
y: projected.y
|
||||
})
|
||||
}
|
||||
|
||||
module.exports = {toWGS, toGK}
|
||||
10598
public/js/js/vendor/jquery.js
vendored
Normal file
7
public/js/js/vendor/leaflet.contextmenu.min.js
vendored
Normal file
293
public/js/js/vendor/oms.min.js
vendored
Normal file
@@ -0,0 +1,293 @@
|
||||
(function () {
|
||||
/*
|
||||
OverlappingMarkerSpiderfier
|
||||
https://github.com/jawj/OverlappingMarkerSpiderfier-Leaflet
|
||||
Copyright (c) 2011 - 2012 George MacKerron
|
||||
Released under the MIT licence: http://opensource.org/licenses/mit-license
|
||||
Note: The Leaflet maps API must be included *before* this code
|
||||
*/
|
||||
(function () {
|
||||
var q = {}.hasOwnProperty,
|
||||
r = [].slice;
|
||||
null != this.L &&
|
||||
(this.OverlappingMarkerSpiderfier = (function () {
|
||||
function n(c, b) {
|
||||
var a,
|
||||
e,
|
||||
g,
|
||||
f,
|
||||
d = this;
|
||||
this.map = c;
|
||||
null == b && (b = {});
|
||||
for (a in b) q.call(b, a) && ((e = b[a]), (this[a] = e));
|
||||
this.initMarkerArrays();
|
||||
this.listeners = {};
|
||||
f = ["click", "zoomend"];
|
||||
e = 0;
|
||||
for (g = f.length; e < g; e++)
|
||||
(a = f[e]),
|
||||
this.map.addEventListener(a, function () {
|
||||
return d.unspiderfy();
|
||||
});
|
||||
}
|
||||
var d, k;
|
||||
d = n.prototype;
|
||||
d.VERSION = "0.2.6";
|
||||
k = 2 * Math.PI;
|
||||
d.keepSpiderfied = !1;
|
||||
d.nearbyDistance = 20;
|
||||
d.circleSpiralSwitchover = 9;
|
||||
d.circleFootSeparation = 25;
|
||||
d.circleStartAngle = k / 12;
|
||||
d.spiralFootSeparation = 28;
|
||||
d.spiralLengthStart = 11;
|
||||
d.spiralLengthFactor = 5;
|
||||
d.legWeight = 1.5;
|
||||
d.legColors = { usual: "#222", highlighted: "#f00" };
|
||||
d.initMarkerArrays = function () {
|
||||
this.markers = [];
|
||||
return (this.markerListeners = []);
|
||||
};
|
||||
d.addMarker = function (c) {
|
||||
|
||||
var b,
|
||||
a = this;
|
||||
if (null != c._oms) return this;
|
||||
c._oms = !0;
|
||||
b = function () {
|
||||
return a.spiderListener(c);
|
||||
};
|
||||
c.addEventListener("click", b);
|
||||
this.markerListeners.push(b);
|
||||
this.markers.push(c);
|
||||
return this;
|
||||
};
|
||||
d.getMarkers = function () {
|
||||
return this.markers.slice(0);
|
||||
};
|
||||
d.removeMarker = function (c) {
|
||||
var b, a;
|
||||
null != c._omsData && this.unspiderfy();
|
||||
b = this.arrIndexOf(this.markers, c);
|
||||
if (0 > b) return this;
|
||||
a = this.markerListeners.splice(b, 1)[0];
|
||||
c.removeEventListener("click", a);
|
||||
delete c._oms;
|
||||
this.markers.splice(b, 1);
|
||||
return this;
|
||||
};
|
||||
d.clearMarkers = function () {
|
||||
var c, b, a, e, g;
|
||||
this.unspiderfy();
|
||||
g = this.markers;
|
||||
c = a = 0;
|
||||
for (e = g.length; a < e; c = ++a)
|
||||
(b = g[c]),
|
||||
(c = this.markerListeners[c]),
|
||||
b.removeEventListener("click", c),
|
||||
delete b._oms;
|
||||
this.initMarkerArrays();
|
||||
return this;
|
||||
};
|
||||
d.addListener = function (c, b) {
|
||||
|
||||
var a, e;
|
||||
(null != (e = (a = this.listeners)[c]) ? e : (a[c] = [])).push(b);
|
||||
return this;
|
||||
};
|
||||
d.removeListener = function (c, b) {
|
||||
var a;
|
||||
a = this.arrIndexOf(this.listeners[c], b);
|
||||
0 > a || this.listeners[c].splice(a, 1);
|
||||
return this;
|
||||
};
|
||||
d.clearListeners = function (c) {
|
||||
this.listeners[c] = [];
|
||||
return this;
|
||||
};
|
||||
d.trigger = function () {
|
||||
var c, b, a, e, g, f;
|
||||
b = arguments[0];
|
||||
c = 2 <= arguments.length ? r.call(arguments, 1) : [];
|
||||
b = null != (a = this.listeners[b]) ? a : [];
|
||||
f = [];
|
||||
e = 0;
|
||||
for (g = b.length; e < g; e++) (a = b[e]), f.push(a.apply(null, c));
|
||||
return f;
|
||||
};
|
||||
d.generatePtsCircle = function (c, b) {
|
||||
var a, e, g, f, d;
|
||||
g = (this.circleFootSeparation * (2 + c)) / k;
|
||||
e = k / c;
|
||||
d = [];
|
||||
for (a = f = 0; 0 <= c ? f < c : f > c; a = 0 <= c ? ++f : --f)
|
||||
(a = this.circleStartAngle + a * e),
|
||||
d.push(new L.Point(b.x + g * Math.cos(a), b.y + g * Math.sin(a)));
|
||||
return d;
|
||||
};
|
||||
d.generatePtsSpiral = function (c, b) {
|
||||
var a, e, g, f, d;
|
||||
g = this.spiralLengthStart;
|
||||
a = 0;
|
||||
d = [];
|
||||
for (e = f = 0; 0 <= c ? f < c : f > c; e = 0 <= c ? ++f : --f)
|
||||
(a += this.spiralFootSeparation / g + 5e-4 * e),
|
||||
(e = new L.Point(b.x + g * Math.cos(a), b.y + g * Math.sin(a))),
|
||||
(g += (k * this.spiralLengthFactor) / a),
|
||||
d.push(e);
|
||||
return d;
|
||||
};
|
||||
// Which Icon was clicked - c Icon Data
|
||||
d.spiderListener = function (c) {
|
||||
var b, a, e, g, f, d, h, k, l;
|
||||
((b = null != c._omsData) && this.keepSpiderfied) ||
|
||||
this.unspiderfy();
|
||||
if (b) return this.trigger("click", c);
|
||||
g = [];
|
||||
f = [];
|
||||
d = this.nearbyDistance * this.nearbyDistance;
|
||||
e = this.map.latLngToLayerPoint(c.getLatLng());
|
||||
l = this.markers;
|
||||
h = 0;
|
||||
for (k = l.length; h < k; h++)
|
||||
(b = l[h]),
|
||||
this.map.hasLayer(b) &&
|
||||
((a = this.map.latLngToLayerPoint(b.getLatLng())),
|
||||
this.ptDistanceSq(a, e) < d
|
||||
? g.push({ marker: b, markerPt: a })
|
||||
: f.push(b));
|
||||
return 1 === g.length
|
||||
? this.trigger("click", c)
|
||||
: this.spiderfy(g, f);
|
||||
};
|
||||
d.makeHighlightListeners = function (c) {
|
||||
var b = this;
|
||||
return {
|
||||
highlight: function () {
|
||||
return c._omsData.leg.setStyle({
|
||||
color: b.legColors.highlighted,
|
||||
});
|
||||
},
|
||||
unhighlight: function () {
|
||||
return c._omsData.leg.setStyle({ color: b.legColors.usual });
|
||||
},
|
||||
};
|
||||
};
|
||||
// spiderfy event
|
||||
d.spiderfy = function (c, b) {
|
||||
var a, e, g, d, p, h, k, l, n, m;
|
||||
this.spiderfying = !0;
|
||||
m = c.length;
|
||||
a = this.ptAverage(
|
||||
(function () {
|
||||
var a, b, e;
|
||||
e = [];
|
||||
a = 0;
|
||||
for (b = c.length; a < b; a++) (k = c[a]), e.push(k.markerPt);
|
||||
return e;
|
||||
})()
|
||||
);
|
||||
d =
|
||||
m >= this.circleSpiralSwitchover
|
||||
? this.generatePtsSpiral(m, a).reverse()
|
||||
: this.generatePtsCircle(m, a);
|
||||
a = function () {
|
||||
var a,
|
||||
b,
|
||||
k,
|
||||
m = this;
|
||||
k = [];
|
||||
a = 0;
|
||||
for (b = d.length; a < b; a++)
|
||||
(g = d[a]),
|
||||
(e = this.map.layerPointToLatLng(g)),
|
||||
(n = this.minExtract(c, function (a) {
|
||||
return m.ptDistanceSq(a.markerPt, g);
|
||||
})),
|
||||
(h = n.marker),
|
||||
(p = new L.Polyline([h.getLatLng(), e], {
|
||||
color: this.legColors.usual,
|
||||
weight: this.legWeight,
|
||||
clickable: !1,
|
||||
})),
|
||||
this.map.addLayer(p),
|
||||
(h._omsData = { usualPosition: h.getLatLng(), leg: p }),
|
||||
this.legColors.highlighted !== this.legColors.usual &&
|
||||
((l = this.makeHighlightListeners(h)),
|
||||
(h._omsData.highlightListeners = l),
|
||||
h.addEventListener("mouseover", l.highlight),
|
||||
h.addEventListener("mouseout", l.unhighlight)),
|
||||
h.setLatLng(e),
|
||||
h.setZIndexOffset(1e6),
|
||||
k.push(h);
|
||||
return k;
|
||||
}.call(this);
|
||||
delete this.spiderfying;
|
||||
this.spiderfied = !0;
|
||||
return this.trigger("spiderfy", a, b);
|
||||
};
|
||||
d.unspiderfy = function (c) {
|
||||
var b, a, e, d, f, k, h;
|
||||
null == c && (c = null);
|
||||
if (null == this.spiderfied) return this;
|
||||
this.unspiderfying = !0;
|
||||
d = [];
|
||||
e = [];
|
||||
h = this.markers;
|
||||
f = 0;
|
||||
for (k = h.length; f < k; f++)
|
||||
(b = h[f]),
|
||||
null != b._omsData
|
||||
? (this.map.removeLayer(b._omsData.leg),
|
||||
b !== c && b.setLatLng(b._omsData.usualPosition),
|
||||
b.setZIndexOffset(0),
|
||||
(a = b._omsData.highlightListeners),
|
||||
null != a &&
|
||||
(b.removeEventListener("mouseover", a.highlight),
|
||||
b.removeEventListener("mouseout", a.unhighlight)),
|
||||
delete b._omsData,
|
||||
d.push(b))
|
||||
: e.push(b);
|
||||
delete this.unspiderfying;
|
||||
delete this.spiderfied;
|
||||
this.trigger("unspiderfy", d, e);
|
||||
return this;
|
||||
};
|
||||
d.ptDistanceSq = function (c, b) {
|
||||
var a, e;
|
||||
a = c.x - b.x;
|
||||
e = c.y - b.y;
|
||||
return a * a + e * e;
|
||||
};
|
||||
d.ptAverage = function (c) {
|
||||
var b, a, e, d, f;
|
||||
d = a = e = 0;
|
||||
for (f = c.length; d < f; d++) (b = c[d]), (a += b.x), (e += b.y);
|
||||
c = c.length;
|
||||
return new L.Point(a / c, e / c);
|
||||
};
|
||||
d.minExtract = function (c, b) {
|
||||
var a, d, g, f, k, h;
|
||||
g = k = 0;
|
||||
for (h = c.length; k < h; g = ++k)
|
||||
if (
|
||||
((f = c[g]),
|
||||
(f = b(f)),
|
||||
"undefined" === typeof a || null === a || f < d)
|
||||
)
|
||||
(d = f), (a = g);
|
||||
return c.splice(a, 1)[0];
|
||||
};
|
||||
d.arrIndexOf = function (c, b) {
|
||||
var a, d, g, f;
|
||||
if (null != c.indexOf) return c.indexOf(b);
|
||||
a = g = 0;
|
||||
for (f = c.length; g < f; a = ++g)
|
||||
if (((d = c[a]), d === b)) return a;
|
||||
return -1;
|
||||
};
|
||||
return n;
|
||||
})());
|
||||
}.call(this));
|
||||
}.call(this));
|
||||
/* Mon 14 Oct 2013 10:54:59 BST */
|
||||
494
public/js/js/vendor/what-input.js
vendored
Normal file
@@ -0,0 +1,494 @@
|
||||
/**
|
||||
* what-input - A global utility for tracking the current input method (mouse, keyboard or touch).
|
||||
* @version v5.2.3
|
||||
* @link https://github.com/ten1seven/what-input
|
||||
* @license MIT
|
||||
*/
|
||||
(function webpackUniversalModuleDefinition(root, factory) {
|
||||
if(typeof exports === 'object' && typeof module === 'object')
|
||||
module.exports = factory();
|
||||
else if(typeof define === 'function' && define.amd)
|
||||
define("whatInput", [], factory);
|
||||
else if(typeof exports === 'object')
|
||||
exports["whatInput"] = factory();
|
||||
else
|
||||
root["whatInput"] = factory();
|
||||
})(this, function() {
|
||||
return /******/ (function(modules) { // webpackBootstrap
|
||||
/******/ // The module cache
|
||||
/******/ var installedModules = {};
|
||||
|
||||
/******/ // The require function
|
||||
/******/ function __webpack_require__(moduleId) {
|
||||
|
||||
/******/ // Check if module is in cache
|
||||
/******/ if(installedModules[moduleId])
|
||||
/******/ return installedModules[moduleId].exports;
|
||||
|
||||
/******/ // Create a new module (and put it into the cache)
|
||||
/******/ var module = installedModules[moduleId] = {
|
||||
/******/ exports: {},
|
||||
/******/ id: moduleId,
|
||||
/******/ loaded: false
|
||||
/******/ };
|
||||
|
||||
/******/ // Execute the module function
|
||||
/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
|
||||
|
||||
/******/ // Flag the module as loaded
|
||||
/******/ module.loaded = true;
|
||||
|
||||
/******/ // Return the exports of the module
|
||||
/******/ return module.exports;
|
||||
/******/ }
|
||||
|
||||
|
||||
/******/ // expose the modules object (__webpack_modules__)
|
||||
/******/ __webpack_require__.m = modules;
|
||||
|
||||
/******/ // expose the module cache
|
||||
/******/ __webpack_require__.c = installedModules;
|
||||
|
||||
/******/ // __webpack_public_path__
|
||||
/******/ __webpack_require__.p = "";
|
||||
|
||||
/******/ // Load entry module and return exports
|
||||
/******/ return __webpack_require__(0);
|
||||
/******/ })
|
||||
/************************************************************************/
|
||||
/******/ ([
|
||||
/* 0 */
|
||||
/***/ (function(module, exports) {
|
||||
|
||||
'use strict';
|
||||
|
||||
module.exports = function () {
|
||||
/*
|
||||
* bail out if there is no document or window
|
||||
* (i.e. in a node/non-DOM environment)
|
||||
*
|
||||
* Return a stubbed API instead
|
||||
*/
|
||||
if (typeof document === 'undefined' || typeof window === 'undefined') {
|
||||
return {
|
||||
// always return "initial" because no interaction will ever be detected
|
||||
ask: function ask() {
|
||||
return 'initial';
|
||||
},
|
||||
|
||||
// always return null
|
||||
element: function element() {
|
||||
return null;
|
||||
},
|
||||
|
||||
// no-op
|
||||
ignoreKeys: function ignoreKeys() {},
|
||||
|
||||
// no-op
|
||||
specificKeys: function specificKeys() {},
|
||||
|
||||
// no-op
|
||||
registerOnChange: function registerOnChange() {},
|
||||
|
||||
// no-op
|
||||
unRegisterOnChange: function unRegisterOnChange() {}
|
||||
};
|
||||
}
|
||||
|
||||
/*
|
||||
* variables
|
||||
*/
|
||||
|
||||
// cache document.documentElement
|
||||
var docElem = document.documentElement;
|
||||
|
||||
// currently focused dom element
|
||||
var currentElement = null;
|
||||
|
||||
// last used input type
|
||||
var currentInput = 'initial';
|
||||
|
||||
// last used input intent
|
||||
var currentIntent = currentInput;
|
||||
|
||||
// UNIX timestamp of current event
|
||||
var currentTimestamp = Date.now();
|
||||
|
||||
// check for sessionStorage support
|
||||
// then check for session variables and use if available
|
||||
try {
|
||||
if (window.sessionStorage.getItem('what-input')) {
|
||||
currentInput = window.sessionStorage.getItem('what-input');
|
||||
}
|
||||
|
||||
if (window.sessionStorage.getItem('what-intent')) {
|
||||
currentIntent = window.sessionStorage.getItem('what-intent');
|
||||
}
|
||||
} catch (e) {}
|
||||
|
||||
// form input types
|
||||
var formInputs = ['button', 'input', 'select', 'textarea'];
|
||||
|
||||
// empty array for holding callback functions
|
||||
var functionList = [];
|
||||
|
||||
// list of modifier keys commonly used with the mouse and
|
||||
// can be safely ignored to prevent false keyboard detection
|
||||
var ignoreMap = [16, // shift
|
||||
17, // control
|
||||
18, // alt
|
||||
91, // Windows key / left Apple cmd
|
||||
93 // Windows menu / right Apple cmd
|
||||
];
|
||||
|
||||
var specificMap = [];
|
||||
|
||||
// mapping of events to input types
|
||||
var inputMap = {
|
||||
keydown: 'keyboard',
|
||||
keyup: 'keyboard',
|
||||
mousedown: 'mouse',
|
||||
mousemove: 'mouse',
|
||||
MSPointerDown: 'pointer',
|
||||
MSPointerMove: 'pointer',
|
||||
pointerdown: 'pointer',
|
||||
pointermove: 'pointer',
|
||||
touchstart: 'touch',
|
||||
touchend: 'touch'
|
||||
|
||||
// boolean: true if the page is being scrolled
|
||||
};var isScrolling = false;
|
||||
|
||||
// store current mouse position
|
||||
var mousePos = {
|
||||
x: null,
|
||||
y: null
|
||||
|
||||
// map of IE 10 pointer events
|
||||
};var pointerMap = {
|
||||
2: 'touch',
|
||||
3: 'touch', // treat pen like touch
|
||||
4: 'mouse'
|
||||
|
||||
// check support for passive event listeners
|
||||
};var supportsPassive = false;
|
||||
|
||||
try {
|
||||
var opts = Object.defineProperty({}, 'passive', {
|
||||
get: function get() {
|
||||
supportsPassive = true;
|
||||
}
|
||||
});
|
||||
|
||||
window.addEventListener('test', null, opts);
|
||||
} catch (e) {}
|
||||
|
||||
/*
|
||||
* set up
|
||||
*/
|
||||
|
||||
var setUp = function setUp() {
|
||||
// add correct mouse wheel event mapping to `inputMap`
|
||||
inputMap[detectWheel()] = 'mouse';
|
||||
|
||||
addListeners();
|
||||
doUpdate('input');
|
||||
doUpdate('intent');
|
||||
};
|
||||
|
||||
/*
|
||||
* events
|
||||
*/
|
||||
|
||||
var addListeners = function addListeners() {
|
||||
// `pointermove`, `MSPointerMove`, `mousemove` and mouse wheel event binding
|
||||
// can only demonstrate potential, but not actual, interaction
|
||||
// and are treated separately
|
||||
var options = supportsPassive ? { passive: true } : false;
|
||||
|
||||
// pointer events (mouse, pen, touch)
|
||||
if (window.PointerEvent) {
|
||||
window.addEventListener('pointerdown', setInput);
|
||||
window.addEventListener('pointermove', setIntent);
|
||||
} else if (window.MSPointerEvent) {
|
||||
window.addEventListener('MSPointerDown', setInput);
|
||||
window.addEventListener('MSPointerMove', setIntent);
|
||||
} else {
|
||||
// mouse events
|
||||
window.addEventListener('mousedown', setInput);
|
||||
window.addEventListener('mousemove', setIntent);
|
||||
|
||||
// touch events
|
||||
if ('ontouchstart' in window) {
|
||||
window.addEventListener('touchstart', setInput, options);
|
||||
window.addEventListener('touchend', setInput);
|
||||
}
|
||||
}
|
||||
|
||||
// mouse wheel
|
||||
window.addEventListener(detectWheel(), setIntent, options);
|
||||
|
||||
// keyboard events
|
||||
window.addEventListener('keydown', setInput);
|
||||
window.addEventListener('keyup', setInput);
|
||||
|
||||
// focus events
|
||||
window.addEventListener('focusin', setElement);
|
||||
window.addEventListener('focusout', clearElement);
|
||||
};
|
||||
|
||||
// checks conditions before updating new input
|
||||
var setInput = function setInput(event) {
|
||||
var eventKey = event.which;
|
||||
var value = inputMap[event.type];
|
||||
|
||||
if (value === 'pointer') {
|
||||
value = pointerType(event);
|
||||
}
|
||||
|
||||
var ignoreMatch = !specificMap.length && ignoreMap.indexOf(eventKey) === -1;
|
||||
|
||||
var specificMatch = specificMap.length && specificMap.indexOf(eventKey) !== -1;
|
||||
|
||||
var shouldUpdate = value === 'keyboard' && eventKey && (ignoreMatch || specificMatch) || value === 'mouse' || value === 'touch';
|
||||
|
||||
// prevent touch detection from being overridden by event execution order
|
||||
if (validateTouch(value)) {
|
||||
shouldUpdate = false;
|
||||
}
|
||||
|
||||
if (shouldUpdate && currentInput !== value) {
|
||||
currentInput = value;
|
||||
|
||||
try {
|
||||
window.sessionStorage.setItem('what-input', currentInput);
|
||||
} catch (e) {}
|
||||
|
||||
doUpdate('input');
|
||||
}
|
||||
|
||||
if (shouldUpdate && currentIntent !== value) {
|
||||
// preserve intent for keyboard interaction with form fields
|
||||
var activeElem = document.activeElement;
|
||||
var notFormInput = activeElem && activeElem.nodeName && (formInputs.indexOf(activeElem.nodeName.toLowerCase()) === -1 || activeElem.nodeName.toLowerCase() === 'button' && !checkClosest(activeElem, 'form'));
|
||||
|
||||
if (notFormInput) {
|
||||
currentIntent = value;
|
||||
|
||||
try {
|
||||
window.sessionStorage.setItem('what-intent', currentIntent);
|
||||
} catch (e) {}
|
||||
|
||||
doUpdate('intent');
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
// updates the doc and `inputTypes` array with new input
|
||||
var doUpdate = function doUpdate(which) {
|
||||
docElem.setAttribute('data-what' + which, which === 'input' ? currentInput : currentIntent);
|
||||
|
||||
fireFunctions(which);
|
||||
};
|
||||
|
||||
// updates input intent for `mousemove` and `pointermove`
|
||||
var setIntent = function setIntent(event) {
|
||||
var value = inputMap[event.type];
|
||||
|
||||
if (value === 'pointer') {
|
||||
value = pointerType(event);
|
||||
}
|
||||
|
||||
// test to see if `mousemove` happened relative to the screen to detect scrolling versus mousemove
|
||||
detectScrolling(event);
|
||||
|
||||
// only execute if scrolling isn't happening
|
||||
if ((!isScrolling && !validateTouch(value) || isScrolling && event.type === 'wheel' || event.type === 'mousewheel' || event.type === 'DOMMouseScroll') && currentIntent !== value) {
|
||||
currentIntent = value;
|
||||
|
||||
try {
|
||||
window.sessionStorage.setItem('what-intent', currentIntent);
|
||||
} catch (e) {}
|
||||
|
||||
doUpdate('intent');
|
||||
}
|
||||
};
|
||||
|
||||
var setElement = function setElement(event) {
|
||||
if (!event.target.nodeName) {
|
||||
// If nodeName is undefined, clear the element
|
||||
// This can happen if click inside an <svg> element.
|
||||
clearElement();
|
||||
return;
|
||||
}
|
||||
|
||||
currentElement = event.target.nodeName.toLowerCase();
|
||||
docElem.setAttribute('data-whatelement', currentElement);
|
||||
|
||||
if (event.target.classList && event.target.classList.length) {
|
||||
docElem.setAttribute('data-whatclasses', event.target.classList.toString().replace(' ', ','));
|
||||
}
|
||||
};
|
||||
|
||||
var clearElement = function clearElement() {
|
||||
currentElement = null;
|
||||
|
||||
docElem.removeAttribute('data-whatelement');
|
||||
docElem.removeAttribute('data-whatclasses');
|
||||
};
|
||||
|
||||
/*
|
||||
* utilities
|
||||
*/
|
||||
|
||||
var pointerType = function pointerType(event) {
|
||||
if (typeof event.pointerType === 'number') {
|
||||
return pointerMap[event.pointerType];
|
||||
} else {
|
||||
// treat pen like touch
|
||||
return event.pointerType === 'pen' ? 'touch' : event.pointerType;
|
||||
}
|
||||
};
|
||||
|
||||
// prevent touch detection from being overridden by event execution order
|
||||
var validateTouch = function validateTouch(value) {
|
||||
var timestamp = Date.now();
|
||||
|
||||
var touchIsValid = value === 'mouse' && currentInput === 'touch' && timestamp - currentTimestamp < 200;
|
||||
|
||||
currentTimestamp = timestamp;
|
||||
|
||||
return touchIsValid;
|
||||
};
|
||||
|
||||
// detect version of mouse wheel event to use
|
||||
// via https://developer.mozilla.org/en-US/docs/Web/API/Element/wheel_event
|
||||
var detectWheel = function detectWheel() {
|
||||
var wheelType = null;
|
||||
|
||||
// Modern browsers support "wheel"
|
||||
if ('onwheel' in document.createElement('div')) {
|
||||
wheelType = 'wheel';
|
||||
} else {
|
||||
// Webkit and IE support at least "mousewheel"
|
||||
// or assume that remaining browsers are older Firefox
|
||||
wheelType = document.onmousewheel !== undefined ? 'mousewheel' : 'DOMMouseScroll';
|
||||
}
|
||||
|
||||
return wheelType;
|
||||
};
|
||||
|
||||
// runs callback functions
|
||||
var fireFunctions = function fireFunctions(type) {
|
||||
for (var i = 0, len = functionList.length; i < len; i++) {
|
||||
if (functionList[i].type === type) {
|
||||
functionList[i].fn.call(undefined, type === 'input' ? currentInput : currentIntent);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
// finds matching element in an object
|
||||
var objPos = function objPos(match) {
|
||||
for (var i = 0, len = functionList.length; i < len; i++) {
|
||||
if (functionList[i].fn === match) {
|
||||
return i;
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
var detectScrolling = function detectScrolling(event) {
|
||||
if (mousePos['x'] !== event.screenX || mousePos['y'] !== event.screenY) {
|
||||
isScrolling = false;
|
||||
|
||||
mousePos['x'] = event.screenX;
|
||||
mousePos['y'] = event.screenY;
|
||||
} else {
|
||||
isScrolling = true;
|
||||
}
|
||||
};
|
||||
|
||||
// manual version of `closest()`
|
||||
var checkClosest = function checkClosest(elem, tag) {
|
||||
var ElementPrototype = window.Element.prototype;
|
||||
|
||||
if (!ElementPrototype.matches) {
|
||||
ElementPrototype.matches = ElementPrototype.msMatchesSelector || ElementPrototype.webkitMatchesSelector;
|
||||
}
|
||||
|
||||
if (!ElementPrototype.closest) {
|
||||
do {
|
||||
if (elem.matches(tag)) {
|
||||
return elem;
|
||||
}
|
||||
|
||||
elem = elem.parentElement || elem.parentNode;
|
||||
} while (elem !== null && elem.nodeType === 1);
|
||||
|
||||
return null;
|
||||
} else {
|
||||
return elem.closest(tag);
|
||||
}
|
||||
};
|
||||
|
||||
/*
|
||||
* init
|
||||
*/
|
||||
|
||||
// don't start script unless browser cuts the mustard
|
||||
// (also passes if polyfills are used)
|
||||
if ('addEventListener' in window && Array.prototype.indexOf) {
|
||||
setUp();
|
||||
}
|
||||
|
||||
/*
|
||||
* api
|
||||
*/
|
||||
|
||||
return {
|
||||
// returns string: the current input type
|
||||
// opt: 'intent'|'input'
|
||||
// 'input' (default): returns the same value as the `data-whatinput` attribute
|
||||
// 'intent': includes `data-whatintent` value if it's different than `data-whatinput`
|
||||
ask: function ask(opt) {
|
||||
return opt === 'intent' ? currentIntent : currentInput;
|
||||
},
|
||||
|
||||
// returns string: the currently focused element or null
|
||||
element: function element() {
|
||||
return currentElement;
|
||||
},
|
||||
|
||||
// overwrites ignored keys with provided array
|
||||
ignoreKeys: function ignoreKeys(arr) {
|
||||
ignoreMap = arr;
|
||||
},
|
||||
|
||||
// overwrites specific char keys to update on
|
||||
specificKeys: function specificKeys(arr) {
|
||||
specificMap = arr;
|
||||
},
|
||||
|
||||
// attach functions to input and intent "events"
|
||||
// funct: function to fire on change
|
||||
// eventType: 'input'|'intent'
|
||||
registerOnChange: function registerOnChange(fn, eventType) {
|
||||
functionList.push({
|
||||
fn: fn,
|
||||
type: eventType || 'input'
|
||||
});
|
||||
},
|
||||
|
||||
unRegisterOnChange: function unRegisterOnChange(fn) {
|
||||
var position = objPos(fn);
|
||||
|
||||
if (position || position === 0) {
|
||||
functionList.splice(position, 1);
|
||||
}
|
||||
}
|
||||
};
|
||||
}();
|
||||
|
||||
/***/ })
|
||||
/******/ ])
|
||||
});
|
||||
;
|
||||
BIN
public/js/leaflet/images/layers-2x.png
Normal file
|
After Width: | Height: | Size: 1.2 KiB |
BIN
public/js/leaflet/images/layers.png
Normal file
|
After Width: | Height: | Size: 696 B |
BIN
public/js/leaflet/images/marker-icon-2x.png
Normal file
|
After Width: | Height: | Size: 2.4 KiB |
BIN
public/js/leaflet/images/marker-icon.png
Normal file
|
After Width: | Height: | Size: 1.4 KiB |
BIN
public/js/leaflet/images/marker-shadow.png
Normal file
|
After Width: | Height: | Size: 618 B |
13968
public/js/leaflet/leaflet-src.esm.js
Normal file
1
public/js/leaflet/leaflet-src.esm.js.map
Normal file
14062
public/js/leaflet/leaflet-src.js
Normal file
1
public/js/leaflet/leaflet-src.js.map
Normal file
6
public/js/leaflet/leaflet.js
Normal file
1
public/js/leaflet/leaflet.js.map
Normal file
18
public/js/list.js
Normal file
@@ -0,0 +1,18 @@
|
||||
|
||||
var test = ["hase","ente","ente","igel","hase","ente","ente","igel"];
|
||||
|
||||
// doppelte Löschen
|
||||
function doublesDelete(listing) {
|
||||
let temp = [];
|
||||
listing.forEach((c) => {
|
||||
if (!temp.includes(c)) {
|
||||
temp.push(c);
|
||||
}
|
||||
});
|
||||
return temp;
|
||||
}
|
||||
|
||||
var testreturn = doublesDelete(test);
|
||||
console.log(testreturn)
|
||||
|
||||
// html Liste erstellen
|
||||
1172
public/js/map.js
Normal file
130
public/js/static.js
Normal file
@@ -0,0 +1,130 @@
|
||||
function getMapGeoStatic(){
|
||||
var req = new XMLHttpRequest();
|
||||
req.open("GET", jsonMapBorderURL, true);
|
||||
|
||||
req.onreadystatechange = function(){
|
||||
if ( req.readyState == 4) {
|
||||
if ( req.status >= 200 && req.status < 300 ||req.status == 304 ) {
|
||||
var returnData = req.responseText;
|
||||
console.log('Datentransfer -Geo Karte- erfolgreich');
|
||||
JsonMapBorder = JSON.parse(returnData);
|
||||
drawMapBorder();
|
||||
|
||||
} else {
|
||||
console.log("Fehler; request.status = " + req.status);
|
||||
}
|
||||
req = null;
|
||||
};
|
||||
}
|
||||
req.send();
|
||||
}
|
||||
function getMapGeoStatic2(){
|
||||
var req = new XMLHttpRequest();
|
||||
req.open("GET", jsonMapBorderURL2, true);
|
||||
|
||||
req.onreadystatechange = function(){
|
||||
if ( req.readyState == 4) {
|
||||
if ( req.status >= 200 && req.status < 300 ||req.status == 304 ) {
|
||||
var returnData = req.responseText;
|
||||
console.log('Datentransfer -Geo Karte- erfolgreich');
|
||||
JsonMapBorder2 = JSON.parse(returnData);
|
||||
drawMapBorder2();
|
||||
|
||||
} else {
|
||||
console.log("Fehler; request.status = " + req.status);
|
||||
}
|
||||
req = null;
|
||||
};
|
||||
}
|
||||
req.send();
|
||||
}
|
||||
|
||||
function drawMapBorder() {
|
||||
borderpoints = [];
|
||||
countPointsMapBorder = JsonMapBorder.coordinates.length;
|
||||
//console.log("Point Border Count: "+countPointsMapBorder);
|
||||
|
||||
//var cableLayer = new Konva.Layer();
|
||||
// Namen schreiben
|
||||
|
||||
// Stationen zeichnen
|
||||
for(i=0;i<countPointsMapBorder;i++) {
|
||||
// console.log("Coordinates: "+JsonMapBorder.coordinates[i]);
|
||||
var BorderXY = JsonMapBorder.coordinates[i].toString();
|
||||
var LineParts = BorderXY.split(",");
|
||||
LineParts[0] = (parseFloat(LineParts[0]))/10;
|
||||
LineParts[1] = (parseFloat(LineParts[1]))/10;
|
||||
|
||||
// console.log("X: "+LineParts[0]+" Y: "+LineParts[1]);
|
||||
|
||||
var xLineTemp = Math.round(parseInt(((LineParts[0])/skalierung)-minX)/displayFactor);
|
||||
var yLineTemp = Math.round(parseInt((maxY-(LineParts[1])/skalierung))/displayFactor);
|
||||
|
||||
// console.log("X: "+parseInt(xLineTemp)+" Y: "+parseInt(yLineTemp));
|
||||
|
||||
borderpoints.push(parseInt(xLineTemp));
|
||||
borderpoints.push(parseInt(yLineTemp));
|
||||
}
|
||||
|
||||
//console.log(borderpoints);
|
||||
var border = new Konva.Line({
|
||||
points: borderpoints,
|
||||
stroke: 'grey',
|
||||
strokeWidth: 1,
|
||||
lineJoin: 'square',
|
||||
tension: 0,
|
||||
lineCap: 'square',
|
||||
closed: true,
|
||||
fill: '#fbf5e0',
|
||||
});
|
||||
layer.add(border);
|
||||
|
||||
stage.add(layer);
|
||||
}
|
||||
|
||||
function drawMapBorder2() {
|
||||
borderpoints2 = [];
|
||||
countPointsMapBorder = JsonMapBorder2.coordinates.length;
|
||||
//console.log("Point Border Count: "+countPointsMapBorder);
|
||||
|
||||
//var cableLayer = new Konva.Layer();
|
||||
// Namen schreiben
|
||||
|
||||
// Stationen zeichnen
|
||||
for(i=0;i<countPointsMapBorder;i++) {
|
||||
// console.log("Coordinates: "+JsonMapBorder.coordinates[i]);
|
||||
var BorderXY2 = JsonMapBorder2.coordinates[i].toString();
|
||||
var LineParts2 = BorderXY2.split(",");
|
||||
LineParts2[0] = (parseFloat(LineParts2[0]))/10;
|
||||
LineParts2[1] = (parseFloat(LineParts2[1]))/10;
|
||||
|
||||
// console.log("X: "+LineParts[0]+" Y: "+LineParts[1]);
|
||||
|
||||
var xLineTemp2 = Math.round(parseInt(((LineParts2[0])/skalierung)-minX)/displayFactor);
|
||||
var yLineTemp2 = Math.round(parseInt((maxY-(LineParts2[1])/skalierung))/displayFactor);
|
||||
|
||||
// console.log("X: "+parseInt(xLineTemp)+" Y: "+parseInt(yLineTemp));
|
||||
|
||||
borderpoints2.push(parseInt(xLineTemp2));
|
||||
borderpoints2.push(parseInt(yLineTemp2));
|
||||
}
|
||||
|
||||
//console.log(borderpoints);
|
||||
var border2 = new Konva.Line({
|
||||
points: borderpoints2,
|
||||
//stroke: 'grey',
|
||||
//strokeWidth: 1,
|
||||
lineJoin: 'square',
|
||||
tension: 0,
|
||||
lineCap: 'square',
|
||||
closed: true,
|
||||
fill: '#f3f0dd',
|
||||
offsetX: 20,
|
||||
});
|
||||
layer.add(border2);
|
||||
|
||||
stage.add(layer);
|
||||
}
|
||||
|
||||
getMapGeoStatic2();
|
||||
getMapGeoStatic()
|
||||
869
public/js/vendor/bundle.js
vendored
Normal file
@@ -0,0 +1,869 @@
|
||||
(function (L) {
|
||||
'use strict';
|
||||
|
||||
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
||||
|
||||
var L__default = /*#__PURE__*/_interopDefaultLegacy(L);
|
||||
|
||||
function _classCallCheck(instance, Constructor) {
|
||||
if (!(instance instanceof Constructor)) {
|
||||
throw new TypeError("Cannot call a class as a function");
|
||||
}
|
||||
}
|
||||
|
||||
function _defineProperties(target, props) {
|
||||
for (var i = 0; i < props.length; i++) {
|
||||
var descriptor = props[i];
|
||||
descriptor.enumerable = descriptor.enumerable || false;
|
||||
descriptor.configurable = true;
|
||||
if ("value" in descriptor) descriptor.writable = true;
|
||||
Object.defineProperty(target, descriptor.key, descriptor);
|
||||
}
|
||||
}
|
||||
|
||||
function _createClass(Constructor, protoProps, staticProps) {
|
||||
if (protoProps) _defineProperties(Constructor.prototype, protoProps);
|
||||
if (staticProps) _defineProperties(Constructor, staticProps);
|
||||
return Constructor;
|
||||
}
|
||||
|
||||
function _defineProperty(obj, key, value) {
|
||||
if (key in obj) {
|
||||
Object.defineProperty(obj, key, {
|
||||
value: value,
|
||||
enumerable: true,
|
||||
configurable: true,
|
||||
writable: true
|
||||
});
|
||||
} else {
|
||||
obj[key] = value;
|
||||
}
|
||||
|
||||
return obj;
|
||||
}
|
||||
|
||||
function _slicedToArray(arr, i) {
|
||||
return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();
|
||||
}
|
||||
|
||||
function _arrayWithHoles(arr) {
|
||||
if (Array.isArray(arr)) return arr;
|
||||
}
|
||||
|
||||
function _iterableToArrayLimit(arr, i) {
|
||||
if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return;
|
||||
var _arr = [];
|
||||
var _n = true;
|
||||
var _d = false;
|
||||
var _e = undefined;
|
||||
|
||||
try {
|
||||
for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {
|
||||
_arr.push(_s.value);
|
||||
|
||||
if (i && _arr.length === i) break;
|
||||
}
|
||||
} catch (err) {
|
||||
_d = true;
|
||||
_e = err;
|
||||
} finally {
|
||||
try {
|
||||
if (!_n && _i["return"] != null) _i["return"]();
|
||||
} finally {
|
||||
if (_d) throw _e;
|
||||
}
|
||||
}
|
||||
|
||||
return _arr;
|
||||
}
|
||||
|
||||
function _unsupportedIterableToArray(o, minLen) {
|
||||
if (!o) return;
|
||||
if (typeof o === "string") return _arrayLikeToArray(o, minLen);
|
||||
var n = Object.prototype.toString.call(o).slice(8, -1);
|
||||
if (n === "Object" && o.constructor) n = o.constructor.name;
|
||||
if (n === "Map" || n === "Set") return Array.from(o);
|
||||
if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);
|
||||
}
|
||||
|
||||
function _arrayLikeToArray(arr, len) {
|
||||
if (len == null || len > arr.length) len = arr.length;
|
||||
|
||||
for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];
|
||||
|
||||
return arr2;
|
||||
}
|
||||
|
||||
function _nonIterableRest() {
|
||||
throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
|
||||
}
|
||||
|
||||
function _classPrivateFieldGet(receiver, privateMap) {
|
||||
var descriptor = privateMap.get(receiver);
|
||||
|
||||
if (!descriptor) {
|
||||
throw new TypeError("attempted to get private field on non-instance");
|
||||
}
|
||||
|
||||
if (descriptor.get) {
|
||||
return descriptor.get.call(receiver);
|
||||
}
|
||||
|
||||
return descriptor.value;
|
||||
}
|
||||
|
||||
function _classPrivateFieldSet(receiver, privateMap, value) {
|
||||
var descriptor = privateMap.get(receiver);
|
||||
|
||||
if (!descriptor) {
|
||||
throw new TypeError("attempted to set private field on non-instance");
|
||||
}
|
||||
|
||||
if (descriptor.set) {
|
||||
descriptor.set.call(receiver, value);
|
||||
} else {
|
||||
if (!descriptor.writable) {
|
||||
throw new TypeError("attempted to set read only private field");
|
||||
}
|
||||
|
||||
descriptor.value = value;
|
||||
}
|
||||
|
||||
return value;
|
||||
}
|
||||
|
||||
var BouncingOptions = /*#__PURE__*/function () {
|
||||
/**
|
||||
* How high marker can bounce (px)
|
||||
* @type {number}
|
||||
*/
|
||||
|
||||
/**
|
||||
* How much marker can contract (px)
|
||||
* @type {number}
|
||||
*/
|
||||
|
||||
/**
|
||||
* Bouncing speed coefficient
|
||||
* @type {number}
|
||||
*/
|
||||
|
||||
/**
|
||||
* Contracting speed coefficient
|
||||
* @type {number}
|
||||
*/
|
||||
|
||||
/**
|
||||
* Shadow inclination angle(radians); null to cancel shadow movement
|
||||
* @type {number}
|
||||
*/
|
||||
|
||||
/**
|
||||
* Activate contract animation
|
||||
* @type {boolean}
|
||||
*/
|
||||
|
||||
/**
|
||||
* Many markers can bounce in the same time
|
||||
* @type {boolean}
|
||||
*/
|
||||
function BouncingOptions(options) {
|
||||
_classCallCheck(this, BouncingOptions);
|
||||
|
||||
_defineProperty(this, "bounceHeight", 15);
|
||||
|
||||
_defineProperty(this, "contractHeight", 12);
|
||||
|
||||
_defineProperty(this, "bounceSpeed", 52);
|
||||
|
||||
_defineProperty(this, "contractSpeed", 52);
|
||||
|
||||
_defineProperty(this, "shadowAngle", -Math.PI / 4);
|
||||
|
||||
_defineProperty(this, "elastic", true);
|
||||
|
||||
_defineProperty(this, "exclusive", false);
|
||||
|
||||
options && Object.assign(this, options);
|
||||
}
|
||||
|
||||
_createClass(BouncingOptions, [{
|
||||
key: "override",
|
||||
value: function override(options) {
|
||||
return Object.assign(new BouncingOptions(this), options);
|
||||
}
|
||||
}]);
|
||||
|
||||
return BouncingOptions;
|
||||
}();
|
||||
|
||||
var _bouncingMarkers = new WeakMap();
|
||||
|
||||
var Orchestration = /*#__PURE__*/function () {
|
||||
function Orchestration() {
|
||||
_classCallCheck(this, Orchestration);
|
||||
|
||||
_bouncingMarkers.set(this, {
|
||||
writable: true,
|
||||
value: []
|
||||
});
|
||||
}
|
||||
|
||||
_createClass(Orchestration, [{
|
||||
key: "getBouncingMarkers",
|
||||
value: function getBouncingMarkers() {
|
||||
return _classPrivateFieldGet(this, _bouncingMarkers);
|
||||
}
|
||||
/**
|
||||
* Adds the marker to the list of bouncing markers.
|
||||
* If flag 'exclusive' is set to true, stops all bouncing markers before.
|
||||
*
|
||||
* @param marker {Marker} marker object
|
||||
* @param exclusive {boolean} flag of exclusive bouncing. If set to true, stops the bouncing
|
||||
* of all other markers.
|
||||
*/
|
||||
|
||||
}, {
|
||||
key: "addBouncingMarker",
|
||||
value: function addBouncingMarker(marker, exclusive) {
|
||||
if (exclusive || marker._bouncingMotion.bouncingOptions.exclusive) {
|
||||
this.stopAllBouncingMarkers();
|
||||
} else {
|
||||
this.stopExclusiveMarkerBouncing();
|
||||
}
|
||||
|
||||
_classPrivateFieldGet(this, _bouncingMarkers).push(marker);
|
||||
}
|
||||
/**
|
||||
* Stops the bouncing of exclusive marker.
|
||||
*/
|
||||
|
||||
}, {
|
||||
key: "stopExclusiveMarkerBouncing",
|
||||
value: function stopExclusiveMarkerBouncing() {
|
||||
var exclusiveMarker = _classPrivateFieldGet(this, _bouncingMarkers).find(function (marker) {
|
||||
return marker._bouncingMotion.bouncingOptions.exclusive;
|
||||
});
|
||||
|
||||
if (exclusiveMarker) {
|
||||
exclusiveMarker.stopBouncing();
|
||||
}
|
||||
}
|
||||
/**
|
||||
* Removes the marker from the list of bouncing markers.
|
||||
* @param marker {Marker} marker
|
||||
*/
|
||||
|
||||
}, {
|
||||
key: "removeBouncingMarker",
|
||||
value: function removeBouncingMarker(marker) {
|
||||
var i = _classPrivateFieldGet(this, _bouncingMarkers).indexOf(marker);
|
||||
|
||||
if (~i) {
|
||||
_classPrivateFieldGet(this, _bouncingMarkers).splice(i, 1);
|
||||
}
|
||||
}
|
||||
/**
|
||||
* Stops the bouncing of all currently bouncing markers. Purge the array of bouncing markers.
|
||||
*/
|
||||
|
||||
}, {
|
||||
key: "stopAllBouncingMarkers",
|
||||
value: function stopAllBouncingMarkers() {
|
||||
var marker;
|
||||
|
||||
while (marker = _classPrivateFieldGet(this, _bouncingMarkers).shift()) {
|
||||
marker.stopBouncing();
|
||||
}
|
||||
}
|
||||
}]);
|
||||
|
||||
return Orchestration;
|
||||
}();
|
||||
|
||||
var oldSetPos = L.Marker.prototype._setPos;
|
||||
var oldOnAdd = L.Marker.prototype.onAdd;
|
||||
var oldSetIcon = L.Marker.prototype.setIcon;
|
||||
var MarkerPrototypeExt = {
|
||||
/** Bouncing options shared by all markers. */
|
||||
_bouncingOptions: new BouncingOptions(),
|
||||
_orchestration: new Orchestration(),
|
||||
|
||||
/**
|
||||
* Registers options of bouncing animation for this marker. After registration of options for
|
||||
* this marker, it will ignore changes of default options. Function automatically recalculates
|
||||
* animation steps and delays.
|
||||
*
|
||||
* @param options {BouncingOptions|object} options object
|
||||
* @return {Marker} this marker
|
||||
*/
|
||||
setBouncingOptions: function setBouncingOptions(options) {
|
||||
this._bouncingMotion.updateBouncingOptions(options);
|
||||
|
||||
return this;
|
||||
},
|
||||
|
||||
/**
|
||||
* Returns true if this marker is bouncing. If this marker is not bouncing returns false.
|
||||
* @return {boolean} true if marker is bouncing, false if not
|
||||
*/
|
||||
isBouncing: function isBouncing() {
|
||||
return this._bouncingMotion.isBouncing;
|
||||
},
|
||||
|
||||
/**
|
||||
* Starts bouncing of this marker.
|
||||
* @param times {number|null} number of times the marker must to bounce
|
||||
* @return {Marker} this marker
|
||||
*/
|
||||
bounce: function bounce() {
|
||||
var times = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
|
||||
|
||||
this._bouncingMotion.bounce(times);
|
||||
|
||||
var exclusive = this._bouncingMotion.bouncingOptions.exclusive;
|
||||
|
||||
L.Marker.prototype._orchestration.addBouncingMarker(this, exclusive);
|
||||
|
||||
return this;
|
||||
},
|
||||
|
||||
/**
|
||||
* Stops bouncing of this marker.
|
||||
* Note: the bouncing not stops immediately after the call of this method.
|
||||
* Instead, the animation is executed until marker returns to it's original position and takes
|
||||
* it's full size.
|
||||
*
|
||||
* @return {Marker} this marker
|
||||
*/
|
||||
stopBouncing: function stopBouncing() {
|
||||
this._bouncingMotion.stopBouncing();
|
||||
|
||||
L.Marker.prototype._orchestration.removeBouncingMarker(this);
|
||||
|
||||
return this;
|
||||
},
|
||||
|
||||
/**
|
||||
* Starts/stops bouncing of this marker.
|
||||
* @return {Marker} marker
|
||||
*/
|
||||
toggleBouncing: function toggleBouncing() {
|
||||
if (this._bouncingMotion.isBouncing) {
|
||||
this.stopBouncing();
|
||||
} else {
|
||||
this.bounce();
|
||||
}
|
||||
|
||||
return this;
|
||||
},
|
||||
isRealMarker: function isRealMarker() {
|
||||
return this.__proto__ === L.Marker.prototype;
|
||||
},
|
||||
_setPos: function _setPos(position) {
|
||||
oldSetPos.call(this, position);
|
||||
|
||||
if (this.isRealMarker()) {
|
||||
this._bouncingMotion.position = position;
|
||||
|
||||
this._bouncingMotion.resetStyles(this);
|
||||
}
|
||||
},
|
||||
onAdd: function onAdd(map) {
|
||||
oldOnAdd.call(this, map);
|
||||
|
||||
if (this.isRealMarker()) {
|
||||
this._bouncingMotion.resetStyles(this);
|
||||
}
|
||||
},
|
||||
setIcon: function setIcon(icon) {
|
||||
oldSetIcon.call(this, icon);
|
||||
|
||||
if (this.isRealMarker()) {
|
||||
this._bouncingMotion.resetStyles(this);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* Calculates the points to draw the continous line on the screen. Returns the array of ordered
|
||||
* point coordinates. Uses Bresenham algorithm.
|
||||
*
|
||||
* @param x {number} x coordinate of origin
|
||||
* @param y {number} y coordinate of origin
|
||||
* @param angle {number} angle (radians)
|
||||
* @param length {number} length of line (px)
|
||||
*
|
||||
* @return {[number, number][]} array of ordered point coordinates
|
||||
*
|
||||
* @see http://rosettacode.org/wiki/Bitmap/Bresenham's_line_algorithm#JavaScript
|
||||
*/
|
||||
function calculateLine(x, y, angle, length) {
|
||||
// TODO: use something else than multiply length by 2 to calculate the line with defined
|
||||
// length
|
||||
var xD = Math.round(x + Math.cos(angle) * (length * 2)),
|
||||
yD = Math.round(y + Math.sin(angle) * (length * 2)),
|
||||
dx = Math.abs(xD - x),
|
||||
sx = x < xD ? 1 : -1,
|
||||
dy = Math.abs(yD - y),
|
||||
sy = y < yD ? 1 : -1,
|
||||
err = (dx > dy ? dx : -dy) / 2,
|
||||
e2,
|
||||
p = [],
|
||||
i = 0;
|
||||
|
||||
while (true) {
|
||||
p.push([x, y]);
|
||||
i++;
|
||||
if (i === length) break;
|
||||
e2 = err;
|
||||
|
||||
if (e2 > -dx) {
|
||||
err -= dy;
|
||||
x += sx;
|
||||
}
|
||||
|
||||
if (e2 < dy) {
|
||||
err += dx;
|
||||
y += sy;
|
||||
}
|
||||
}
|
||||
|
||||
return p;
|
||||
}
|
||||
|
||||
function styleInject(css, ref) {
|
||||
if ( ref === void 0 ) ref = {};
|
||||
var insertAt = ref.insertAt;
|
||||
|
||||
if (!css || typeof document === 'undefined') { return; }
|
||||
|
||||
var head = document.head || document.getElementsByTagName('head')[0];
|
||||
var style = document.createElement('style');
|
||||
style.type = 'text/css';
|
||||
|
||||
if (insertAt === 'top') {
|
||||
if (head.firstChild) {
|
||||
head.insertBefore(style, head.firstChild);
|
||||
} else {
|
||||
head.appendChild(style);
|
||||
}
|
||||
} else {
|
||||
head.appendChild(style);
|
||||
}
|
||||
|
||||
if (style.styleSheet) {
|
||||
style.styleSheet.cssText = css;
|
||||
} else {
|
||||
style.appendChild(document.createTextNode(css));
|
||||
}
|
||||
}
|
||||
|
||||
var css_248z = "@keyframes l-smooth-marker-bouncing-move {\n from {\n transform: translate(var(--pos-x), var(--pos-y))\n }\n to {\n transform: translate(var(--pos-x-jump, var(--pos-x)), var(--pos-y-jump))\n }\n}\n\n@keyframes l-smooth-marker-bouncing-contract {\n from {\n transform: translate(var(--pos-x), var(--pos-y))\n }\n to {\n transform: translate(var(--pos-x), var(--pos-y-contract)) scaleY(var(--scale-contract))\n }\n}\n\n.bouncing {\n animation-name: l-smooth-marker-bouncing-move, l-smooth-marker-bouncing-move, l-smooth-marker-bouncing-contract, l-smooth-marker-bouncing-contract;\n animation-direction: normal, reverse, normal, reverse;\n animation-duration: var(--duration-jump), var(--duration-jump), var(--duration-contract), var(--duration-contract);\n animation-delay: var(--delays)\n}\n\n.bouncing.simple {\n animation-name: l-smooth-marker-bouncing-move, l-smooth-marker-bouncing-move;\n animation-direction: normal, reverse;\n animation-duration: var(--duration-jump), var(--duration-jump);\n animation-delay: var(--delays)\n}\n";
|
||||
styleInject(css_248z);
|
||||
|
||||
/** Regex to parse style definitions. */
|
||||
var regStyle = /([\w-]+): ([^;]+);/g;
|
||||
|
||||
var Styles = /*#__PURE__*/function () {
|
||||
function Styles(styles) {
|
||||
_classCallCheck(this, Styles);
|
||||
|
||||
styles && Object.assign(this, styles);
|
||||
}
|
||||
|
||||
_createClass(Styles, [{
|
||||
key: "findOpacity",
|
||||
value: function findOpacity(options) {
|
||||
this.opacity = (options === null || options === void 0 ? void 0 : options.opacityWhenUnclustered // used by cluster plugin
|
||||
) || (options === null || options === void 0 ? void 0 : options.opacity) || 1;
|
||||
}
|
||||
/**
|
||||
* Creates a copy of styles merged with provided 'styles'.
|
||||
* @param {Object} styles object with styles to merge
|
||||
* @return {Styles} copy of styles
|
||||
*/
|
||||
|
||||
}, {
|
||||
key: "withStyles",
|
||||
value: function withStyles(styles) {
|
||||
var copy = new Styles(this);
|
||||
copy && Object.assign(copy, styles);
|
||||
return copy;
|
||||
}
|
||||
}, {
|
||||
key: "toString",
|
||||
value: function toString() {
|
||||
return Object.entries(this).map(function (entry) {
|
||||
return "".concat(entry[0], ": ").concat(entry[1], ";");
|
||||
}).join(' ');
|
||||
}
|
||||
/**
|
||||
* Parses cssText attribute into Styles object.
|
||||
* @param cssText {string} cssText string
|
||||
* @return {Styles} Styles object
|
||||
*/
|
||||
|
||||
}], [{
|
||||
key: "parse",
|
||||
value: function parse(cssText) {
|
||||
var styles = {};
|
||||
var match = regStyle.exec(cssText);
|
||||
|
||||
while (match) {
|
||||
styles[match[1]] = match[2];
|
||||
match = regStyle.exec(cssText);
|
||||
}
|
||||
|
||||
delete styles['z-index'];
|
||||
delete styles['opacity'];
|
||||
styles['outline'] = 'none';
|
||||
return new Styles(styles);
|
||||
}
|
||||
/**
|
||||
* @param marker {Marker}
|
||||
*/
|
||||
|
||||
}, {
|
||||
key: "ofMarker",
|
||||
value: function ofMarker(marker) {
|
||||
var styles = Styles.parse(marker._icon.style.cssText);
|
||||
styles.findOpacity(marker.options);
|
||||
styles['z-index'] = marker._zIndex;
|
||||
return styles;
|
||||
}
|
||||
}]);
|
||||
|
||||
return Styles;
|
||||
}();
|
||||
|
||||
var animationNamePrefix = 'l-smooth-marker-bouncing-';
|
||||
var moveAnimationName = animationNamePrefix + 'move';
|
||||
var contractAnimationName = animationNamePrefix + 'contract';
|
||||
/*
|
||||
* CSS3 animation runs faster than transform-based animation. We need to reduce speed in order
|
||||
* to be compatible with old API.
|
||||
*/
|
||||
|
||||
var speedCoefficient = 0.8;
|
||||
/**
|
||||
* Removes and then resets required classes on the HTML element.
|
||||
* Used as hack to restart CSS3 animation.
|
||||
*
|
||||
* @param element {HTMLElement} HTML element
|
||||
* @param classes {string[]} names of classes
|
||||
*/
|
||||
|
||||
function resetClasses(element, classes) {
|
||||
classes.forEach(function (className) {
|
||||
return L.DomUtil.removeClass(element, className);
|
||||
});
|
||||
void element.offsetWidth;
|
||||
classes.forEach(function (className) {
|
||||
return L.DomUtil.addClass(element, className);
|
||||
});
|
||||
}
|
||||
|
||||
var _lastAnimationName = new WeakMap();
|
||||
|
||||
var _classes = new WeakMap();
|
||||
|
||||
var _eventCounter = new WeakMap();
|
||||
|
||||
var _times = new WeakMap();
|
||||
|
||||
var _listener = new WeakMap();
|
||||
|
||||
var BouncingMotionCss3 = /*#__PURE__*/function () {
|
||||
/**
|
||||
* Constructor.
|
||||
*
|
||||
* @param marker {Marker} marker
|
||||
* @param position {Point} marker current position on the map canvas
|
||||
* @param bouncingOptions {BouncingOptions} options of bouncing animation
|
||||
*/
|
||||
function BouncingMotionCss3(marker, position, bouncingOptions) {
|
||||
var _this = this;
|
||||
|
||||
_classCallCheck(this, BouncingMotionCss3);
|
||||
|
||||
_defineProperty(this, "marker", void 0);
|
||||
|
||||
_defineProperty(this, "position", void 0);
|
||||
|
||||
_defineProperty(this, "bouncingOptions", void 0);
|
||||
|
||||
_defineProperty(this, "isBouncing", false);
|
||||
|
||||
_defineProperty(this, "iconStyles", void 0);
|
||||
|
||||
_defineProperty(this, "shadowStyles", void 0);
|
||||
|
||||
_defineProperty(this, "bouncingAnimationPlaying", false);
|
||||
|
||||
_lastAnimationName.set(this, {
|
||||
writable: true,
|
||||
value: contractAnimationName
|
||||
});
|
||||
|
||||
_classes.set(this, {
|
||||
writable: true,
|
||||
value: ['bouncing']
|
||||
});
|
||||
|
||||
_eventCounter.set(this, {
|
||||
writable: true,
|
||||
value: void 0
|
||||
});
|
||||
|
||||
_times.set(this, {
|
||||
writable: true,
|
||||
value: void 0
|
||||
});
|
||||
|
||||
_listener.set(this, {
|
||||
writable: true,
|
||||
value: function value(event) {
|
||||
return _this.onAnimationEnd(event);
|
||||
}
|
||||
});
|
||||
|
||||
this.marker = marker;
|
||||
this.position = position;
|
||||
this.updateBouncingOptions(bouncingOptions);
|
||||
}
|
||||
|
||||
_createClass(BouncingMotionCss3, [{
|
||||
key: "updateBouncingOptions",
|
||||
value: function updateBouncingOptions(options) {
|
||||
this.bouncingOptions = options instanceof BouncingOptions ? options : this.bouncingOptions.override(options);
|
||||
|
||||
if (!this.bouncingOptions.elastic) {
|
||||
_classPrivateFieldSet(this, _lastAnimationName, moveAnimationName);
|
||||
|
||||
_classPrivateFieldGet(this, _classes).push('simple');
|
||||
}
|
||||
}
|
||||
}, {
|
||||
key: "onAnimationEnd",
|
||||
value: function onAnimationEnd(event) {
|
||||
var _this2 = this;
|
||||
|
||||
if (event.animationName === _classPrivateFieldGet(this, _lastAnimationName)) {
|
||||
var _this$eventCounter;
|
||||
|
||||
_classPrivateFieldSet(this, _eventCounter, (_this$eventCounter = +_classPrivateFieldGet(this, _eventCounter)) + 1), _this$eventCounter;
|
||||
|
||||
_classPrivateFieldSet(this, _eventCounter, _classPrivateFieldGet(this, _eventCounter) % 2);
|
||||
|
||||
if (!_classPrivateFieldGet(this, _eventCounter)) {
|
||||
if (this.isBouncing && (_classPrivateFieldGet(this, _times) === null || _classPrivateFieldSet(this, _times, +_classPrivateFieldGet(this, _times) - 1))) {
|
||||
resetClasses(this.marker._icon, _classPrivateFieldGet(this, _classes));
|
||||
|
||||
if (this.marker._shadow) {
|
||||
resetClasses(this.marker._shadow, _classPrivateFieldGet(this, _classes));
|
||||
}
|
||||
} else {
|
||||
_classPrivateFieldGet(this, _classes).forEach(function (className) {
|
||||
L.DomUtil.removeClass(_this2.marker._icon, className);
|
||||
|
||||
if (_this2.marker._shadow) {
|
||||
L.DomUtil.removeClass(_this2.marker._shadow, className);
|
||||
}
|
||||
});
|
||||
|
||||
this.bouncingAnimationPlaying = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}, {
|
||||
key: "resetStyles",
|
||||
value: function resetStyles(marker) {
|
||||
var _this$marker$getIcon, _this$marker$getIcon$, _this$marker, _this$marker$_iconObj, _this$marker$_iconObj2;
|
||||
|
||||
this.marker = marker;
|
||||
this.iconStyles = Styles.ofMarker(marker);
|
||||
|
||||
if (marker._shadow) {
|
||||
this.shadowStyles = Styles.parse(marker._shadow.style.cssText);
|
||||
}
|
||||
|
||||
var iconHeight = ((_this$marker$getIcon = this.marker.getIcon()) === null || _this$marker$getIcon === void 0 ? void 0 : (_this$marker$getIcon$ = _this$marker$getIcon.options) === null || _this$marker$getIcon$ === void 0 ? void 0 : _this$marker$getIcon$.iconSize[1]) || ((_this$marker = this.marker) === null || _this$marker === void 0 ? void 0 : (_this$marker$_iconObj = _this$marker._iconObj) === null || _this$marker$_iconObj === void 0 ? void 0 : (_this$marker$_iconObj2 = _this$marker$_iconObj.options) === null || _this$marker$_iconObj2 === void 0 ? void 0 : _this$marker$_iconObj2.iconSize[1]);
|
||||
var iconAnimationParams = BouncingMotionCss3.animationParams(this.position, this.bouncingOptions, iconHeight);
|
||||
this.iconStyles = this.iconStyles.withStyles(iconAnimationParams);
|
||||
this.marker._icon.style.cssText = this.iconStyles.toString();
|
||||
|
||||
if (this.bouncingAnimationPlaying) {
|
||||
resetClasses(this.marker._icon, _classPrivateFieldGet(this, _classes));
|
||||
|
||||
this.marker._icon.addEventListener('animationend', _classPrivateFieldGet(this, _listener));
|
||||
}
|
||||
|
||||
var _this$bouncingOptions = this.bouncingOptions,
|
||||
bounceHeight = _this$bouncingOptions.bounceHeight,
|
||||
contractHeight = _this$bouncingOptions.contractHeight,
|
||||
shadowAngle = _this$bouncingOptions.shadowAngle;
|
||||
|
||||
if (this.marker._shadow && shadowAngle) {
|
||||
var _this$marker$getIcon2, _this$marker$getIcon3;
|
||||
|
||||
var _this$position = this.position,
|
||||
x = _this$position.x,
|
||||
y = _this$position.y;
|
||||
var points = calculateLine(x, y, shadowAngle, bounceHeight + 1);
|
||||
|
||||
var _points$bounceHeight = _slicedToArray(points[bounceHeight], 2),
|
||||
posXJump = _points$bounceHeight[0],
|
||||
posYJump = _points$bounceHeight[1];
|
||||
|
||||
var shadowHeight = (_this$marker$getIcon2 = this.marker.getIcon()) === null || _this$marker$getIcon2 === void 0 ? void 0 : (_this$marker$getIcon3 = _this$marker$getIcon2.options) === null || _this$marker$getIcon3 === void 0 ? void 0 : _this$marker$getIcon3.shadowSize[1];
|
||||
var shadowScaleContract = BouncingMotionCss3.contractScale(shadowHeight, contractHeight);
|
||||
this.shadowStyles = this.shadowStyles.withStyles(iconAnimationParams).withStyles({
|
||||
'--pos-x-jump': "".concat(posXJump, "px"),
|
||||
'--pos-y-jump': "".concat(posYJump, "px"),
|
||||
'--scale-contract': shadowScaleContract
|
||||
});
|
||||
this.marker._shadow.style.cssText = this.shadowStyles.toString();
|
||||
|
||||
if (this.bouncingAnimationPlaying) {
|
||||
resetClasses(this.marker._shadow, _classPrivateFieldGet(this, _classes));
|
||||
}
|
||||
}
|
||||
}
|
||||
}, {
|
||||
key: "bounce",
|
||||
value: function bounce() {
|
||||
var times = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
|
||||
|
||||
_classPrivateFieldSet(this, _times, times);
|
||||
|
||||
_classPrivateFieldSet(this, _eventCounter, 0);
|
||||
|
||||
this.isBouncing = true;
|
||||
|
||||
if (this.bouncingAnimationPlaying) {
|
||||
return;
|
||||
}
|
||||
|
||||
this.bouncingAnimationPlaying = true;
|
||||
resetClasses(this.marker._icon, _classPrivateFieldGet(this, _classes));
|
||||
|
||||
if (this.marker._shadow) {
|
||||
resetClasses(this.marker._shadow, _classPrivateFieldGet(this, _classes));
|
||||
}
|
||||
|
||||
this.marker._icon.addEventListener('animationend', _classPrivateFieldGet(this, _listener));
|
||||
}
|
||||
}, {
|
||||
key: "stopBouncing",
|
||||
value: function stopBouncing() {
|
||||
this.isBouncing = false;
|
||||
}
|
||||
/**
|
||||
* Calculates parameters of CSS3 animation of bouncing.
|
||||
*
|
||||
* @param position {Point} marker current position on the map canvas
|
||||
* @param bouncingOptions {BouncingOptions} options of bouncing animation
|
||||
* @param height {number} icons height
|
||||
* @return {object} CSS3 animation parameters
|
||||
*/
|
||||
|
||||
}], [{
|
||||
key: "animationParams",
|
||||
value: function animationParams(position, bouncingOptions, height) {
|
||||
var x = position.x,
|
||||
y = position.y;
|
||||
var bounceHeight = bouncingOptions.bounceHeight,
|
||||
contractHeight = bouncingOptions.contractHeight,
|
||||
bounceSpeed = bouncingOptions.bounceSpeed,
|
||||
contractSpeed = bouncingOptions.contractSpeed;
|
||||
var scaleContract = BouncingMotionCss3.contractScale(height, contractHeight);
|
||||
var durationJump = BouncingMotionCss3.calculateDuration(bounceHeight, bounceSpeed);
|
||||
var durationContract = BouncingMotionCss3.calculateDuration(contractHeight, contractSpeed);
|
||||
var delays = [0, durationJump, durationJump * 2, durationJump * 2 + durationContract];
|
||||
return {
|
||||
'--pos-x': "".concat(x, "px"),
|
||||
'--pos-y': "".concat(y, "px"),
|
||||
'--pos-y-jump': "".concat(y - bounceHeight, "px"),
|
||||
'--pos-y-contract': "".concat(y + contractHeight, "px"),
|
||||
'--scale-contract': scaleContract,
|
||||
'--duration-jump': "".concat(durationJump, "ms"),
|
||||
'--duration-contract': "".concat(durationContract, "ms"),
|
||||
'--delays': "0ms, ".concat(delays[1], "ms, ").concat(delays[2], "ms, ").concat(delays[3], "ms")
|
||||
};
|
||||
}
|
||||
/**
|
||||
* Calculates scale of contracting.
|
||||
*
|
||||
* @param {number} height original height
|
||||
* @param {number} contractHeight how much it must contract
|
||||
* @return {number} contracting scale between 0 and 1
|
||||
*/
|
||||
|
||||
}, {
|
||||
key: "contractScale",
|
||||
value: function contractScale(height, contractHeight) {
|
||||
return (height - contractHeight) / height;
|
||||
}
|
||||
/**
|
||||
* Calculates duration of animation.
|
||||
*
|
||||
* @param height {number} height of movement or resizing (px)
|
||||
* @param speed {number} speed coefficient
|
||||
*
|
||||
* @return {number} duration of animation (ms)
|
||||
*/
|
||||
|
||||
}, {
|
||||
key: "calculateDuration",
|
||||
value: function calculateDuration(height, speed) {
|
||||
var duration = Math.round(speed * speedCoefficient);
|
||||
var i = height;
|
||||
|
||||
while (--i) {
|
||||
duration += Math.round(speed / (height - i));
|
||||
}
|
||||
|
||||
return duration;
|
||||
}
|
||||
}]);
|
||||
|
||||
return BouncingMotionCss3;
|
||||
}();
|
||||
|
||||
L__default['default'].Marker.include(MarkerPrototypeExt);
|
||||
/**
|
||||
* Registers default options of bouncing animation.
|
||||
* @param options {BouncingOptions|object} object with options
|
||||
*/
|
||||
|
||||
L__default['default'].Marker.setBouncingOptions = function (options) {
|
||||
L.Marker.prototype._bouncingOptions = options instanceof BouncingOptions ? options : new BouncingOptions(options);
|
||||
};
|
||||
/**
|
||||
* Returns array of currently bouncing markers.
|
||||
* @return {Marker[]} array of bouncing markers
|
||||
*/
|
||||
|
||||
|
||||
L__default['default'].Marker.getBouncingMarkers = function () {
|
||||
L.Marker.prototype._orchestration.getBouncingMarkers();
|
||||
};
|
||||
/**
|
||||
* Stops the bouncing of all currently bouncing markers. Purge the array of bouncing markers.
|
||||
*/
|
||||
|
||||
|
||||
L__default['default'].Marker.stopAllBouncingMarkers = function () {
|
||||
L.Marker.prototype._orchestration.stopAllBouncingMarkers();
|
||||
};
|
||||
|
||||
L__default['default'].Marker.addInitHook(function () {
|
||||
if (this.isRealMarker()) {
|
||||
var bouncingOptions = new BouncingOptions(L.Marker.prototype._bouncingOptions);
|
||||
this._bouncingMotion = new BouncingMotionCss3(this, new L.Point(0, 0), bouncingOptions);
|
||||
}
|
||||
});
|
||||
|
||||
}(L));
|
||||
531
public/js/vendor/foundation.js
vendored
Normal file
1
public/js/vendor/foundation.min.js
vendored
Normal file
66
public/js/vendor/gktowgs.js
vendored
Normal file
@@ -0,0 +1,66 @@
|
||||
const proj4 = require('proj4')
|
||||
const epsg = require('epsg')
|
||||
const isObject = require('lodash.isobject')
|
||||
const isNumber = require('lodash.isnumber')
|
||||
|
||||
const epsgFromZone = (zone) => 'EPSG:'+(31464+zone) // zone 2 = 31466, zone 5 = 31469
|
||||
|
||||
const toWGS = (coordinates) => {
|
||||
if(!isObject(coordinates) || !isNumber(coordinates.x) || !isNumber(coordinates.y)){
|
||||
throw new Error('missing or invalid parameter `coordinates`')
|
||||
}
|
||||
if(coordinates.x < 0 || coordinates.x >= Math.pow(10, 7)){
|
||||
throw new Error('`coordinates.x` out of bounds')
|
||||
}
|
||||
if(coordinates.y < 0 || coordinates.y >= Math.pow(10, 7)){
|
||||
throw new Error('`coordinates.y` out of bounds')
|
||||
}
|
||||
|
||||
const zone = +(coordinates.x+'')[0]
|
||||
|
||||
const projected = proj4.default(epsg[epsgFromZone(zone)], 'WGS84', Object.assign({}, coordinates))
|
||||
return ({
|
||||
longitude: projected.x,
|
||||
latitude: projected.y
|
||||
})
|
||||
}
|
||||
|
||||
const toGK = (coordinates, zone) => {
|
||||
if(!isObject(coordinates) || !isNumber(coordinates.longitude) || !isNumber(coordinates.latitude)){
|
||||
throw new Error('missing or invalid parameter `coordinates`')
|
||||
}
|
||||
if(coordinates.longitude < -180 || coordinates.longitude > 180){
|
||||
throw new Error('`coordinates.longitude` out of bounds')
|
||||
}
|
||||
if(coordinates.latitude < -360 || coordinates.latitude > 360){
|
||||
throw new Error('`coordinates.latitude` out of bounds')
|
||||
}
|
||||
|
||||
if(zone){
|
||||
if(!isNumber(zone)){
|
||||
throw new Error('`zone` parameter must be a number')
|
||||
}
|
||||
if(![2,3,4,5].includes(zone)){
|
||||
throw new Error('if set, `zone` parameter must be one of 2, 3, 4, 5')
|
||||
}
|
||||
}
|
||||
else{
|
||||
zone = Math.floor((+coordinates.longitude + 1.5) / 3)
|
||||
if(![2,3,4,5].includes(zone)){
|
||||
throw new Error('could not detect valid zone (2, 3, 4, 5) from input coordinates')
|
||||
}
|
||||
}
|
||||
|
||||
const proj4coordinates = {
|
||||
x: coordinates.longitude,
|
||||
y: coordinates.latitude
|
||||
}
|
||||
|
||||
const projected = proj4('WGS84', epsg[epsgFromZone(zone)], proj4coordinates)
|
||||
return ({
|
||||
x: projected.x,
|
||||
y: projected.y
|
||||
})
|
||||
}
|
||||
|
||||
module.exports = {toWGS, toGK}
|
||||
10598
public/js/vendor/jquery.js
vendored
Normal file
7
public/js/vendor/leaflet.contextmenu.min.js
vendored
Normal file
293
public/js/vendor/oms.min.js
vendored
Normal file
@@ -0,0 +1,293 @@
|
||||
(function () {
|
||||
/*
|
||||
OverlappingMarkerSpiderfier
|
||||
https://github.com/jawj/OverlappingMarkerSpiderfier-Leaflet
|
||||
Copyright (c) 2011 - 2012 George MacKerron
|
||||
Released under the MIT licence: http://opensource.org/licenses/mit-license
|
||||
Note: The Leaflet maps API must be included *before* this code
|
||||
*/
|
||||
(function () {
|
||||
var q = {}.hasOwnProperty,
|
||||
r = [].slice;
|
||||
null != this.L &&
|
||||
(this.OverlappingMarkerSpiderfier = (function () {
|
||||
function n(c, b) {
|
||||
var a,
|
||||
e,
|
||||
g,
|
||||
f,
|
||||
d = this;
|
||||
this.map = c;
|
||||
null == b && (b = {});
|
||||
for (a in b) q.call(b, a) && ((e = b[a]), (this[a] = e));
|
||||
this.initMarkerArrays();
|
||||
this.listeners = {};
|
||||
f = ["click", "zoomend"];
|
||||
e = 0;
|
||||
for (g = f.length; e < g; e++)
|
||||
(a = f[e]),
|
||||
this.map.addEventListener(a, function () {
|
||||
return d.unspiderfy();
|
||||
});
|
||||
}
|
||||
var d, k;
|
||||
d = n.prototype;
|
||||
d.VERSION = "0.2.6";
|
||||
k = 2 * Math.PI;
|
||||
d.keepSpiderfied = !1;
|
||||
d.nearbyDistance = 20;
|
||||
d.circleSpiralSwitchover = 9;
|
||||
d.circleFootSeparation = 25;
|
||||
d.circleStartAngle = k / 12;
|
||||
d.spiralFootSeparation = 28;
|
||||
d.spiralLengthStart = 11;
|
||||
d.spiralLengthFactor = 5;
|
||||
d.legWeight = 1.5;
|
||||
d.legColors = { usual: "#222", highlighted: "#f00" };
|
||||
d.initMarkerArrays = function () {
|
||||
this.markers = [];
|
||||
return (this.markerListeners = []);
|
||||
};
|
||||
d.addMarker = function (c) {
|
||||
|
||||
var b,
|
||||
a = this;
|
||||
if (null != c._oms) return this;
|
||||
c._oms = !0;
|
||||
b = function () {
|
||||
return a.spiderListener(c);
|
||||
};
|
||||
c.addEventListener("click", b);
|
||||
this.markerListeners.push(b);
|
||||
this.markers.push(c);
|
||||
return this;
|
||||
};
|
||||
d.getMarkers = function () {
|
||||
return this.markers.slice(0);
|
||||
};
|
||||
d.removeMarker = function (c) {
|
||||
var b, a;
|
||||
null != c._omsData && this.unspiderfy();
|
||||
b = this.arrIndexOf(this.markers, c);
|
||||
if (0 > b) return this;
|
||||
a = this.markerListeners.splice(b, 1)[0];
|
||||
c.removeEventListener("click", a);
|
||||
delete c._oms;
|
||||
this.markers.splice(b, 1);
|
||||
return this;
|
||||
};
|
||||
d.clearMarkers = function () {
|
||||
var c, b, a, e, g;
|
||||
this.unspiderfy();
|
||||
g = this.markers;
|
||||
c = a = 0;
|
||||
for (e = g.length; a < e; c = ++a)
|
||||
(b = g[c]),
|
||||
(c = this.markerListeners[c]),
|
||||
b.removeEventListener("click", c),
|
||||
delete b._oms;
|
||||
this.initMarkerArrays();
|
||||
return this;
|
||||
};
|
||||
d.addListener = function (c, b) {
|
||||
|
||||
var a, e;
|
||||
(null != (e = (a = this.listeners)[c]) ? e : (a[c] = [])).push(b);
|
||||
return this;
|
||||
};
|
||||
d.removeListener = function (c, b) {
|
||||
var a;
|
||||
a = this.arrIndexOf(this.listeners[c], b);
|
||||
0 > a || this.listeners[c].splice(a, 1);
|
||||
return this;
|
||||
};
|
||||
d.clearListeners = function (c) {
|
||||
this.listeners[c] = [];
|
||||
return this;
|
||||
};
|
||||
d.trigger = function () {
|
||||
var c, b, a, e, g, f;
|
||||
b = arguments[0];
|
||||
c = 2 <= arguments.length ? r.call(arguments, 1) : [];
|
||||
b = null != (a = this.listeners[b]) ? a : [];
|
||||
f = [];
|
||||
e = 0;
|
||||
for (g = b.length; e < g; e++) (a = b[e]), f.push(a.apply(null, c));
|
||||
return f;
|
||||
};
|
||||
d.generatePtsCircle = function (c, b) {
|
||||
var a, e, g, f, d;
|
||||
g = (this.circleFootSeparation * (2 + c)) / k;
|
||||
e = k / c;
|
||||
d = [];
|
||||
for (a = f = 0; 0 <= c ? f < c : f > c; a = 0 <= c ? ++f : --f)
|
||||
(a = this.circleStartAngle + a * e),
|
||||
d.push(new L.Point(b.x + g * Math.cos(a), b.y + g * Math.sin(a)));
|
||||
return d;
|
||||
};
|
||||
d.generatePtsSpiral = function (c, b) {
|
||||
var a, e, g, f, d;
|
||||
g = this.spiralLengthStart;
|
||||
a = 0;
|
||||
d = [];
|
||||
for (e = f = 0; 0 <= c ? f < c : f > c; e = 0 <= c ? ++f : --f)
|
||||
(a += this.spiralFootSeparation / g + 5e-4 * e),
|
||||
(e = new L.Point(b.x + g * Math.cos(a), b.y + g * Math.sin(a))),
|
||||
(g += (k * this.spiralLengthFactor) / a),
|
||||
d.push(e);
|
||||
return d;
|
||||
};
|
||||
// Which Icon was clicked - c Icon Data
|
||||
d.spiderListener = function (c) {
|
||||
var b, a, e, g, f, d, h, k, l;
|
||||
((b = null != c._omsData) && this.keepSpiderfied) ||
|
||||
this.unspiderfy();
|
||||
if (b) return this.trigger("click", c);
|
||||
g = [];
|
||||
f = [];
|
||||
d = this.nearbyDistance * this.nearbyDistance;
|
||||
e = this.map.latLngToLayerPoint(c.getLatLng());
|
||||
l = this.markers;
|
||||
h = 0;
|
||||
for (k = l.length; h < k; h++)
|
||||
(b = l[h]),
|
||||
this.map.hasLayer(b) &&
|
||||
((a = this.map.latLngToLayerPoint(b.getLatLng())),
|
||||
this.ptDistanceSq(a, e) < d
|
||||
? g.push({ marker: b, markerPt: a })
|
||||
: f.push(b));
|
||||
return 1 === g.length
|
||||
? this.trigger("click", c)
|
||||
: this.spiderfy(g, f);
|
||||
};
|
||||
d.makeHighlightListeners = function (c) {
|
||||
var b = this;
|
||||
return {
|
||||
highlight: function () {
|
||||
return c._omsData.leg.setStyle({
|
||||
color: b.legColors.highlighted,
|
||||
});
|
||||
},
|
||||
unhighlight: function () {
|
||||
return c._omsData.leg.setStyle({ color: b.legColors.usual });
|
||||
},
|
||||
};
|
||||
};
|
||||
// spiderfy event
|
||||
d.spiderfy = function (c, b) {
|
||||
var a, e, g, d, p, h, k, l, n, m;
|
||||
this.spiderfying = !0;
|
||||
m = c.length;
|
||||
a = this.ptAverage(
|
||||
(function () {
|
||||
var a, b, e;
|
||||
e = [];
|
||||
a = 0;
|
||||
for (b = c.length; a < b; a++) (k = c[a]), e.push(k.markerPt);
|
||||
return e;
|
||||
})()
|
||||
);
|
||||
d =
|
||||
m >= this.circleSpiralSwitchover
|
||||
? this.generatePtsSpiral(m, a).reverse()
|
||||
: this.generatePtsCircle(m, a);
|
||||
a = function () {
|
||||
var a,
|
||||
b,
|
||||
k,
|
||||
m = this;
|
||||
k = [];
|
||||
a = 0;
|
||||
for (b = d.length; a < b; a++)
|
||||
(g = d[a]),
|
||||
(e = this.map.layerPointToLatLng(g)),
|
||||
(n = this.minExtract(c, function (a) {
|
||||
return m.ptDistanceSq(a.markerPt, g);
|
||||
})),
|
||||
(h = n.marker),
|
||||
(p = new L.Polyline([h.getLatLng(), e], {
|
||||
color: this.legColors.usual,
|
||||
weight: this.legWeight,
|
||||
clickable: !1,
|
||||
})),
|
||||
this.map.addLayer(p),
|
||||
(h._omsData = { usualPosition: h.getLatLng(), leg: p }),
|
||||
this.legColors.highlighted !== this.legColors.usual &&
|
||||
((l = this.makeHighlightListeners(h)),
|
||||
(h._omsData.highlightListeners = l),
|
||||
h.addEventListener("mouseover", l.highlight),
|
||||
h.addEventListener("mouseout", l.unhighlight)),
|
||||
h.setLatLng(e),
|
||||
h.setZIndexOffset(1e6),
|
||||
k.push(h);
|
||||
return k;
|
||||
}.call(this);
|
||||
delete this.spiderfying;
|
||||
this.spiderfied = !0;
|
||||
return this.trigger("spiderfy", a, b);
|
||||
};
|
||||
d.unspiderfy = function (c) {
|
||||
var b, a, e, d, f, k, h;
|
||||
null == c && (c = null);
|
||||
if (null == this.spiderfied) return this;
|
||||
this.unspiderfying = !0;
|
||||
d = [];
|
||||
e = [];
|
||||
h = this.markers;
|
||||
f = 0;
|
||||
for (k = h.length; f < k; f++)
|
||||
(b = h[f]),
|
||||
null != b._omsData
|
||||
? (this.map.removeLayer(b._omsData.leg),
|
||||
b !== c && b.setLatLng(b._omsData.usualPosition),
|
||||
b.setZIndexOffset(0),
|
||||
(a = b._omsData.highlightListeners),
|
||||
null != a &&
|
||||
(b.removeEventListener("mouseover", a.highlight),
|
||||
b.removeEventListener("mouseout", a.unhighlight)),
|
||||
delete b._omsData,
|
||||
d.push(b))
|
||||
: e.push(b);
|
||||
delete this.unspiderfying;
|
||||
delete this.spiderfied;
|
||||
this.trigger("unspiderfy", d, e);
|
||||
return this;
|
||||
};
|
||||
d.ptDistanceSq = function (c, b) {
|
||||
var a, e;
|
||||
a = c.x - b.x;
|
||||
e = c.y - b.y;
|
||||
return a * a + e * e;
|
||||
};
|
||||
d.ptAverage = function (c) {
|
||||
var b, a, e, d, f;
|
||||
d = a = e = 0;
|
||||
for (f = c.length; d < f; d++) (b = c[d]), (a += b.x), (e += b.y);
|
||||
c = c.length;
|
||||
return new L.Point(a / c, e / c);
|
||||
};
|
||||
d.minExtract = function (c, b) {
|
||||
var a, d, g, f, k, h;
|
||||
g = k = 0;
|
||||
for (h = c.length; k < h; g = ++k)
|
||||
if (
|
||||
((f = c[g]),
|
||||
(f = b(f)),
|
||||
"undefined" === typeof a || null === a || f < d)
|
||||
)
|
||||
(d = f), (a = g);
|
||||
return c.splice(a, 1)[0];
|
||||
};
|
||||
d.arrIndexOf = function (c, b) {
|
||||
var a, d, g, f;
|
||||
if (null != c.indexOf) return c.indexOf(b);
|
||||
a = g = 0;
|
||||
for (f = c.length; g < f; a = ++g)
|
||||
if (((d = c[a]), d === b)) return a;
|
||||
return -1;
|
||||
};
|
||||
return n;
|
||||
})());
|
||||
}.call(this));
|
||||
}.call(this));
|
||||
/* Mon 14 Oct 2013 10:54:59 BST */
|
||||
494
public/js/vendor/what-input.js
vendored
Normal file
@@ -0,0 +1,494 @@
|
||||
/**
|
||||
* what-input - A global utility for tracking the current input method (mouse, keyboard or touch).
|
||||
* @version v5.2.3
|
||||
* @link https://github.com/ten1seven/what-input
|
||||
* @license MIT
|
||||
*/
|
||||
(function webpackUniversalModuleDefinition(root, factory) {
|
||||
if(typeof exports === 'object' && typeof module === 'object')
|
||||
module.exports = factory();
|
||||
else if(typeof define === 'function' && define.amd)
|
||||
define("whatInput", [], factory);
|
||||
else if(typeof exports === 'object')
|
||||
exports["whatInput"] = factory();
|
||||
else
|
||||
root["whatInput"] = factory();
|
||||
})(this, function() {
|
||||
return /******/ (function(modules) { // webpackBootstrap
|
||||
/******/ // The module cache
|
||||
/******/ var installedModules = {};
|
||||
|
||||
/******/ // The require function
|
||||
/******/ function __webpack_require__(moduleId) {
|
||||
|
||||
/******/ // Check if module is in cache
|
||||
/******/ if(installedModules[moduleId])
|
||||
/******/ return installedModules[moduleId].exports;
|
||||
|
||||
/******/ // Create a new module (and put it into the cache)
|
||||
/******/ var module = installedModules[moduleId] = {
|
||||
/******/ exports: {},
|
||||
/******/ id: moduleId,
|
||||
/******/ loaded: false
|
||||
/******/ };
|
||||
|
||||
/******/ // Execute the module function
|
||||
/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
|
||||
|
||||
/******/ // Flag the module as loaded
|
||||
/******/ module.loaded = true;
|
||||
|
||||
/******/ // Return the exports of the module
|
||||
/******/ return module.exports;
|
||||
/******/ }
|
||||
|
||||
|
||||
/******/ // expose the modules object (__webpack_modules__)
|
||||
/******/ __webpack_require__.m = modules;
|
||||
|
||||
/******/ // expose the module cache
|
||||
/******/ __webpack_require__.c = installedModules;
|
||||
|
||||
/******/ // __webpack_public_path__
|
||||
/******/ __webpack_require__.p = "";
|
||||
|
||||
/******/ // Load entry module and return exports
|
||||
/******/ return __webpack_require__(0);
|
||||
/******/ })
|
||||
/************************************************************************/
|
||||
/******/ ([
|
||||
/* 0 */
|
||||
/***/ (function(module, exports) {
|
||||
|
||||
'use strict';
|
||||
|
||||
module.exports = function () {
|
||||
/*
|
||||
* bail out if there is no document or window
|
||||
* (i.e. in a node/non-DOM environment)
|
||||
*
|
||||
* Return a stubbed API instead
|
||||
*/
|
||||
if (typeof document === 'undefined' || typeof window === 'undefined') {
|
||||
return {
|
||||
// always return "initial" because no interaction will ever be detected
|
||||
ask: function ask() {
|
||||
return 'initial';
|
||||
},
|
||||
|
||||
// always return null
|
||||
element: function element() {
|
||||
return null;
|
||||
},
|
||||
|
||||
// no-op
|
||||
ignoreKeys: function ignoreKeys() {},
|
||||
|
||||
// no-op
|
||||
specificKeys: function specificKeys() {},
|
||||
|
||||
// no-op
|
||||
registerOnChange: function registerOnChange() {},
|
||||
|
||||
// no-op
|
||||
unRegisterOnChange: function unRegisterOnChange() {}
|
||||
};
|
||||
}
|
||||
|
||||
/*
|
||||
* variables
|
||||
*/
|
||||
|
||||
// cache document.documentElement
|
||||
var docElem = document.documentElement;
|
||||
|
||||
// currently focused dom element
|
||||
var currentElement = null;
|
||||
|
||||
// last used input type
|
||||
var currentInput = 'initial';
|
||||
|
||||
// last used input intent
|
||||
var currentIntent = currentInput;
|
||||
|
||||
// UNIX timestamp of current event
|
||||
var currentTimestamp = Date.now();
|
||||
|
||||
// check for sessionStorage support
|
||||
// then check for session variables and use if available
|
||||
try {
|
||||
if (window.sessionStorage.getItem('what-input')) {
|
||||
currentInput = window.sessionStorage.getItem('what-input');
|
||||
}
|
||||
|
||||
if (window.sessionStorage.getItem('what-intent')) {
|
||||
currentIntent = window.sessionStorage.getItem('what-intent');
|
||||
}
|
||||
} catch (e) {}
|
||||
|
||||
// form input types
|
||||
var formInputs = ['button', 'input', 'select', 'textarea'];
|
||||
|
||||
// empty array for holding callback functions
|
||||
var functionList = [];
|
||||
|
||||
// list of modifier keys commonly used with the mouse and
|
||||
// can be safely ignored to prevent false keyboard detection
|
||||
var ignoreMap = [16, // shift
|
||||
17, // control
|
||||
18, // alt
|
||||
91, // Windows key / left Apple cmd
|
||||
93 // Windows menu / right Apple cmd
|
||||
];
|
||||
|
||||
var specificMap = [];
|
||||
|
||||
// mapping of events to input types
|
||||
var inputMap = {
|
||||
keydown: 'keyboard',
|
||||
keyup: 'keyboard',
|
||||
mousedown: 'mouse',
|
||||
mousemove: 'mouse',
|
||||
MSPointerDown: 'pointer',
|
||||
MSPointerMove: 'pointer',
|
||||
pointerdown: 'pointer',
|
||||
pointermove: 'pointer',
|
||||
touchstart: 'touch',
|
||||
touchend: 'touch'
|
||||
|
||||
// boolean: true if the page is being scrolled
|
||||
};var isScrolling = false;
|
||||
|
||||
// store current mouse position
|
||||
var mousePos = {
|
||||
x: null,
|
||||
y: null
|
||||
|
||||
// map of IE 10 pointer events
|
||||
};var pointerMap = {
|
||||
2: 'touch',
|
||||
3: 'touch', // treat pen like touch
|
||||
4: 'mouse'
|
||||
|
||||
// check support for passive event listeners
|
||||
};var supportsPassive = false;
|
||||
|
||||
try {
|
||||
var opts = Object.defineProperty({}, 'passive', {
|
||||
get: function get() {
|
||||
supportsPassive = true;
|
||||
}
|
||||
});
|
||||
|
||||
window.addEventListener('test', null, opts);
|
||||
} catch (e) {}
|
||||
|
||||
/*
|
||||
* set up
|
||||
*/
|
||||
|
||||
var setUp = function setUp() {
|
||||
// add correct mouse wheel event mapping to `inputMap`
|
||||
inputMap[detectWheel()] = 'mouse';
|
||||
|
||||
addListeners();
|
||||
doUpdate('input');
|
||||
doUpdate('intent');
|
||||
};
|
||||
|
||||
/*
|
||||
* events
|
||||
*/
|
||||
|
||||
var addListeners = function addListeners() {
|
||||
// `pointermove`, `MSPointerMove`, `mousemove` and mouse wheel event binding
|
||||
// can only demonstrate potential, but not actual, interaction
|
||||
// and are treated separately
|
||||
var options = supportsPassive ? { passive: true } : false;
|
||||
|
||||
// pointer events (mouse, pen, touch)
|
||||
if (window.PointerEvent) {
|
||||
window.addEventListener('pointerdown', setInput);
|
||||
window.addEventListener('pointermove', setIntent);
|
||||
} else if (window.MSPointerEvent) {
|
||||
window.addEventListener('MSPointerDown', setInput);
|
||||
window.addEventListener('MSPointerMove', setIntent);
|
||||
} else {
|
||||
// mouse events
|
||||
window.addEventListener('mousedown', setInput);
|
||||
window.addEventListener('mousemove', setIntent);
|
||||
|
||||
// touch events
|
||||
if ('ontouchstart' in window) {
|
||||
window.addEventListener('touchstart', setInput, options);
|
||||
window.addEventListener('touchend', setInput);
|
||||
}
|
||||
}
|
||||
|
||||
// mouse wheel
|
||||
window.addEventListener(detectWheel(), setIntent, options);
|
||||
|
||||
// keyboard events
|
||||
window.addEventListener('keydown', setInput);
|
||||
window.addEventListener('keyup', setInput);
|
||||
|
||||
// focus events
|
||||
window.addEventListener('focusin', setElement);
|
||||
window.addEventListener('focusout', clearElement);
|
||||
};
|
||||
|
||||
// checks conditions before updating new input
|
||||
var setInput = function setInput(event) {
|
||||
var eventKey = event.which;
|
||||
var value = inputMap[event.type];
|
||||
|
||||
if (value === 'pointer') {
|
||||
value = pointerType(event);
|
||||
}
|
||||
|
||||
var ignoreMatch = !specificMap.length && ignoreMap.indexOf(eventKey) === -1;
|
||||
|
||||
var specificMatch = specificMap.length && specificMap.indexOf(eventKey) !== -1;
|
||||
|
||||
var shouldUpdate = value === 'keyboard' && eventKey && (ignoreMatch || specificMatch) || value === 'mouse' || value === 'touch';
|
||||
|
||||
// prevent touch detection from being overridden by event execution order
|
||||
if (validateTouch(value)) {
|
||||
shouldUpdate = false;
|
||||
}
|
||||
|
||||
if (shouldUpdate && currentInput !== value) {
|
||||
currentInput = value;
|
||||
|
||||
try {
|
||||
window.sessionStorage.setItem('what-input', currentInput);
|
||||
} catch (e) {}
|
||||
|
||||
doUpdate('input');
|
||||
}
|
||||
|
||||
if (shouldUpdate && currentIntent !== value) {
|
||||
// preserve intent for keyboard interaction with form fields
|
||||
var activeElem = document.activeElement;
|
||||
var notFormInput = activeElem && activeElem.nodeName && (formInputs.indexOf(activeElem.nodeName.toLowerCase()) === -1 || activeElem.nodeName.toLowerCase() === 'button' && !checkClosest(activeElem, 'form'));
|
||||
|
||||
if (notFormInput) {
|
||||
currentIntent = value;
|
||||
|
||||
try {
|
||||
window.sessionStorage.setItem('what-intent', currentIntent);
|
||||
} catch (e) {}
|
||||
|
||||
doUpdate('intent');
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
// updates the doc and `inputTypes` array with new input
|
||||
var doUpdate = function doUpdate(which) {
|
||||
docElem.setAttribute('data-what' + which, which === 'input' ? currentInput : currentIntent);
|
||||
|
||||
fireFunctions(which);
|
||||
};
|
||||
|
||||
// updates input intent for `mousemove` and `pointermove`
|
||||
var setIntent = function setIntent(event) {
|
||||
var value = inputMap[event.type];
|
||||
|
||||
if (value === 'pointer') {
|
||||
value = pointerType(event);
|
||||
}
|
||||
|
||||
// test to see if `mousemove` happened relative to the screen to detect scrolling versus mousemove
|
||||
detectScrolling(event);
|
||||
|
||||
// only execute if scrolling isn't happening
|
||||
if ((!isScrolling && !validateTouch(value) || isScrolling && event.type === 'wheel' || event.type === 'mousewheel' || event.type === 'DOMMouseScroll') && currentIntent !== value) {
|
||||
currentIntent = value;
|
||||
|
||||
try {
|
||||
window.sessionStorage.setItem('what-intent', currentIntent);
|
||||
} catch (e) {}
|
||||
|
||||
doUpdate('intent');
|
||||
}
|
||||
};
|
||||
|
||||
var setElement = function setElement(event) {
|
||||
if (!event.target.nodeName) {
|
||||
// If nodeName is undefined, clear the element
|
||||
// This can happen if click inside an <svg> element.
|
||||
clearElement();
|
||||
return;
|
||||
}
|
||||
|
||||
currentElement = event.target.nodeName.toLowerCase();
|
||||
docElem.setAttribute('data-whatelement', currentElement);
|
||||
|
||||
if (event.target.classList && event.target.classList.length) {
|
||||
docElem.setAttribute('data-whatclasses', event.target.classList.toString().replace(' ', ','));
|
||||
}
|
||||
};
|
||||
|
||||
var clearElement = function clearElement() {
|
||||
currentElement = null;
|
||||
|
||||
docElem.removeAttribute('data-whatelement');
|
||||
docElem.removeAttribute('data-whatclasses');
|
||||
};
|
||||
|
||||
/*
|
||||
* utilities
|
||||
*/
|
||||
|
||||
var pointerType = function pointerType(event) {
|
||||
if (typeof event.pointerType === 'number') {
|
||||
return pointerMap[event.pointerType];
|
||||
} else {
|
||||
// treat pen like touch
|
||||
return event.pointerType === 'pen' ? 'touch' : event.pointerType;
|
||||
}
|
||||
};
|
||||
|
||||
// prevent touch detection from being overridden by event execution order
|
||||
var validateTouch = function validateTouch(value) {
|
||||
var timestamp = Date.now();
|
||||
|
||||
var touchIsValid = value === 'mouse' && currentInput === 'touch' && timestamp - currentTimestamp < 200;
|
||||
|
||||
currentTimestamp = timestamp;
|
||||
|
||||
return touchIsValid;
|
||||
};
|
||||
|
||||
// detect version of mouse wheel event to use
|
||||
// via https://developer.mozilla.org/en-US/docs/Web/API/Element/wheel_event
|
||||
var detectWheel = function detectWheel() {
|
||||
var wheelType = null;
|
||||
|
||||
// Modern browsers support "wheel"
|
||||
if ('onwheel' in document.createElement('div')) {
|
||||
wheelType = 'wheel';
|
||||
} else {
|
||||
// Webkit and IE support at least "mousewheel"
|
||||
// or assume that remaining browsers are older Firefox
|
||||
wheelType = document.onmousewheel !== undefined ? 'mousewheel' : 'DOMMouseScroll';
|
||||
}
|
||||
|
||||
return wheelType;
|
||||
};
|
||||
|
||||
// runs callback functions
|
||||
var fireFunctions = function fireFunctions(type) {
|
||||
for (var i = 0, len = functionList.length; i < len; i++) {
|
||||
if (functionList[i].type === type) {
|
||||
functionList[i].fn.call(undefined, type === 'input' ? currentInput : currentIntent);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
// finds matching element in an object
|
||||
var objPos = function objPos(match) {
|
||||
for (var i = 0, len = functionList.length; i < len; i++) {
|
||||
if (functionList[i].fn === match) {
|
||||
return i;
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
var detectScrolling = function detectScrolling(event) {
|
||||
if (mousePos['x'] !== event.screenX || mousePos['y'] !== event.screenY) {
|
||||
isScrolling = false;
|
||||
|
||||
mousePos['x'] = event.screenX;
|
||||
mousePos['y'] = event.screenY;
|
||||
} else {
|
||||
isScrolling = true;
|
||||
}
|
||||
};
|
||||
|
||||
// manual version of `closest()`
|
||||
var checkClosest = function checkClosest(elem, tag) {
|
||||
var ElementPrototype = window.Element.prototype;
|
||||
|
||||
if (!ElementPrototype.matches) {
|
||||
ElementPrototype.matches = ElementPrototype.msMatchesSelector || ElementPrototype.webkitMatchesSelector;
|
||||
}
|
||||
|
||||
if (!ElementPrototype.closest) {
|
||||
do {
|
||||
if (elem.matches(tag)) {
|
||||
return elem;
|
||||
}
|
||||
|
||||
elem = elem.parentElement || elem.parentNode;
|
||||
} while (elem !== null && elem.nodeType === 1);
|
||||
|
||||
return null;
|
||||
} else {
|
||||
return elem.closest(tag);
|
||||
}
|
||||
};
|
||||
|
||||
/*
|
||||
* init
|
||||
*/
|
||||
|
||||
// don't start script unless browser cuts the mustard
|
||||
// (also passes if polyfills are used)
|
||||
if ('addEventListener' in window && Array.prototype.indexOf) {
|
||||
setUp();
|
||||
}
|
||||
|
||||
/*
|
||||
* api
|
||||
*/
|
||||
|
||||
return {
|
||||
// returns string: the current input type
|
||||
// opt: 'intent'|'input'
|
||||
// 'input' (default): returns the same value as the `data-whatinput` attribute
|
||||
// 'intent': includes `data-whatintent` value if it's different than `data-whatinput`
|
||||
ask: function ask(opt) {
|
||||
return opt === 'intent' ? currentIntent : currentInput;
|
||||
},
|
||||
|
||||
// returns string: the currently focused element or null
|
||||
element: function element() {
|
||||
return currentElement;
|
||||
},
|
||||
|
||||
// overwrites ignored keys with provided array
|
||||
ignoreKeys: function ignoreKeys(arr) {
|
||||
ignoreMap = arr;
|
||||
},
|
||||
|
||||
// overwrites specific char keys to update on
|
||||
specificKeys: function specificKeys(arr) {
|
||||
specificMap = arr;
|
||||
},
|
||||
|
||||
// attach functions to input and intent "events"
|
||||
// funct: function to fire on change
|
||||
// eventType: 'input'|'intent'
|
||||
registerOnChange: function registerOnChange(fn, eventType) {
|
||||
functionList.push({
|
||||
fn: fn,
|
||||
type: eventType || 'input'
|
||||
});
|
||||
},
|
||||
|
||||
unRegisterOnChange: function unRegisterOnChange(fn) {
|
||||
var position = objPos(fn);
|
||||
|
||||
if (position || position === 0) {
|
||||
functionList.splice(position, 1);
|
||||
}
|
||||
}
|
||||
};
|
||||
}();
|
||||
|
||||
/***/ })
|
||||
/******/ ])
|
||||
});
|
||||
;
|
||||