add cityCoords
params for city chnaged add 'center city' in settings
This commit is contained in:
@@ -48,5 +48,6 @@
|
|||||||
"MeanValueLAeq": "Mittelwert LAeq",
|
"MeanValueLAeq": "Mittelwert LAeq",
|
||||||
"Peaks": "Spitzen",
|
"Peaks": "Spitzen",
|
||||||
"Day": "Tag",
|
"Day": "Tag",
|
||||||
"Night": "Nacht"
|
"Night": "Nacht",
|
||||||
|
"CenterMap": "Karte zentrieren auf"
|
||||||
}
|
}
|
||||||
@@ -41,6 +41,7 @@
|
|||||||
"Version": "Version",
|
"Version": "Version",
|
||||||
"from": "vom",
|
"from": "vom",
|
||||||
"RemoveFromMap": "Sensoren nicht anzeigen, die nicht gesendet haben seit",
|
"RemoveFromMap": "Sensoren nicht anzeigen, die nicht gesendet haben seit",
|
||||||
"weeks": "Wochen"
|
"weeks": "Wochen",
|
||||||
|
"CenterMap": "Center map on"
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -48,5 +48,6 @@
|
|||||||
"MeanValueLAeq": "Mean value LAeq",
|
"MeanValueLAeq": "Mean value LAeq",
|
||||||
"Peaks": "Peaks",
|
"Peaks": "Peaks",
|
||||||
"Day": "Day",
|
"Day": "Day",
|
||||||
"Night": "Night"
|
"Night": "Night",
|
||||||
|
"CenterMap": "Center map on"
|
||||||
}
|
}
|
||||||
@@ -207,7 +207,7 @@ export const getCurrentTab = () => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export const fetchfromserver = async (url) => {
|
export const fetchfromserver = async (url) => {
|
||||||
const ret = await fetch(url)
|
const ret = await fetch(encodeURI(url))
|
||||||
.catch(e => {
|
.catch(e => {
|
||||||
showError(e)
|
showError(e)
|
||||||
});
|
});
|
||||||
@@ -225,3 +225,14 @@ export const addAddress = async (sid) => {
|
|||||||
return "no address"
|
return "no address"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export const cityCoords = async (city) => {
|
||||||
|
let url = `/srv/getcitycoords?city=${city}`
|
||||||
|
let erg = await fetchfromserver(url)
|
||||||
|
if (!erg.err) {
|
||||||
|
return erg.coords
|
||||||
|
} else {
|
||||||
|
return "no coordinates"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -5,17 +5,13 @@ import * as map from './map.js'
|
|||||||
import * as dt from './datetime.js'
|
import * as dt from './datetime.js'
|
||||||
import {loadAll, showChart, setNoUTC} from './showcharts.js'
|
import {loadAll, showChart, setNoUTC} from './showcharts.js'
|
||||||
import { DateTime } from './luxon.min.js'
|
import { DateTime } from './luxon.min.js'
|
||||||
import {setCurrentTab, getCurrentTab, showError, fetchfromserver} from "./chart_utilities.js";
|
import {setCurrentTab, getCurrentTab, showError, fetchfromserver, cityCoords} from "./chart_utilities.js";
|
||||||
|
|
||||||
(async () => {
|
(async () => {
|
||||||
|
|
||||||
// global constants
|
|
||||||
const Stuttgart = [48.779, 9.16]
|
|
||||||
// END global constants
|
|
||||||
|
|
||||||
// global variables
|
// global variables
|
||||||
const params = { // set defaults
|
const params = { // set defaults
|
||||||
center: Stuttgart,
|
center: {name: 'Stuttgart', coords: [48.778, 9.180]},
|
||||||
zoom: 10,
|
zoom: 10,
|
||||||
span: 1,
|
span: 1,
|
||||||
peak: 70,
|
peak: 70,
|
||||||
@@ -25,11 +21,17 @@ import {setCurrentTab, getCurrentTab, showError, fetchfromserver} from "./chart_
|
|||||||
refreshRate: 5,
|
refreshRate: 5,
|
||||||
sid: -1
|
sid: -1
|
||||||
}
|
}
|
||||||
|
|
||||||
// END global variables
|
// END global variables
|
||||||
|
|
||||||
|
// localStorage.clear()
|
||||||
|
|
||||||
|
|
||||||
|
// Check new map center
|
||||||
|
const checkNewCenter = (oldC, newC) => {
|
||||||
|
if((oldC[0] !== newC[0]) || (oldC[1] !== newC[1])) {
|
||||||
|
map.setNewCenter(newC)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Register events
|
// Register events
|
||||||
// Every input with value check
|
// Every input with value check
|
||||||
@@ -59,6 +61,12 @@ import {setCurrentTab, getCurrentTab, showError, fetchfromserver} from "./chart_
|
|||||||
params.span = parseInt(document.getElementById('nbrofdays').value)
|
params.span = parseInt(document.getElementById('nbrofdays').value)
|
||||||
params.peak = parseInt(document.getElementById('peaklim').value)
|
params.peak = parseInt(document.getElementById('peaklim').value)
|
||||||
params.weeks = parseInt(document.getElementById('olderthan').value)
|
params.weeks = parseInt(document.getElementById('olderthan').value)
|
||||||
|
const city = document.getElementById('centercity').value
|
||||||
|
const oldCoords = params.center
|
||||||
|
params.center.coords = await cityCoords(city)
|
||||||
|
params.center.name = city
|
||||||
|
checkNewCenter(oldCoords, params.center.coords)
|
||||||
|
localStorage.setItem('centercity',JSON.stringify(params.center))
|
||||||
let newlng = document.querySelector('#sellan input:checked').id
|
let newlng = document.querySelector('#sellan input:checked').id
|
||||||
let oldlng = localStorage.getItem('curlang')
|
let oldlng = localStorage.getItem('curlang')
|
||||||
localStorage.setItem('curlang', newlng)
|
localStorage.setItem('curlang', newlng)
|
||||||
@@ -95,13 +103,17 @@ import {setCurrentTab, getCurrentTab, showError, fetchfromserver} from "./chart_
|
|||||||
document.getElementById('nbrofdays').value = params.span
|
document.getElementById('nbrofdays').value = params.span
|
||||||
document.getElementById('peaklim').value = params.peak
|
document.getElementById('peaklim').value = params.peak
|
||||||
document.getElementById('olderthan').value = params.weeks
|
document.getElementById('olderthan').value = params.weeks
|
||||||
|
const centercity = JSON.parse(localStorage.getItem('centercity'))
|
||||||
|
document.getElementById('centercity').value = centercity.name
|
||||||
// select different infos depoending on the selcted tab
|
// select different infos depoending on the selcted tab
|
||||||
// first clear all
|
// first clear all
|
||||||
|
document.querySelector('#ccity').style.display = 'none'
|
||||||
document.querySelector('#stday').style.display = 'inline'
|
document.querySelector('#stday').style.display = 'inline'
|
||||||
document.querySelector('#nbday').style.display = 'none'
|
document.querySelector('#nbday').style.display = 'none'
|
||||||
document.querySelector('#pklim').style.display = 'none'
|
document.querySelector('#pklim').style.display = 'none'
|
||||||
document.querySelector('#odth').style.display = 'none'
|
document.querySelector('#odth').style.display = 'none'
|
||||||
if(curtab === 'maptab') {
|
if(curtab === 'maptab') {
|
||||||
|
document.querySelector('#ccity').style.display = 'inline'
|
||||||
document.querySelector('#stday').style.display = 'none'
|
document.querySelector('#stday').style.display = 'none'
|
||||||
document.querySelector('#odth').style.display = 'inline'
|
document.querySelector('#odth').style.display = 'inline'
|
||||||
}
|
}
|
||||||
@@ -127,7 +139,21 @@ import {setCurrentTab, getCurrentTab, showError, fetchfromserver} from "./chart_
|
|||||||
async function main() {
|
async function main() {
|
||||||
setNoUTC() // no UTC for HighCharts
|
setNoUTC() // no UTC for HighCharts
|
||||||
// set correct language
|
// set correct language
|
||||||
const currentLang = localStorage.getItem('curlang')
|
let currentLang = localStorage.getItem('curlang')
|
||||||
|
if ((currentLang === null) || (currentLang === '')) {
|
||||||
|
currentLang = 'de'
|
||||||
|
localStorage.setItem('curlang', currentLang)
|
||||||
|
}
|
||||||
|
let centercity
|
||||||
|
try {
|
||||||
|
centercity = JSON.parse(localStorage.getItem('centercity'))
|
||||||
|
} catch (e) {
|
||||||
|
centercity = params.center
|
||||||
|
}
|
||||||
|
if((centercity === null) || (centercity.name === '')) {
|
||||||
|
centercity = params.center
|
||||||
|
}
|
||||||
|
localStorage.setItem('centercity', JSON.stringify(centercity))
|
||||||
if(currentLang === 'en') {
|
if(currentLang === 'en') {
|
||||||
document.querySelector('#en').checked = true
|
document.querySelector('#en').checked = true
|
||||||
params.seldate = 'today'
|
params.seldate = 'today'
|
||||||
|
|||||||
@@ -24,7 +24,7 @@ export async function showMap(params) {
|
|||||||
mapparams.map.remove();
|
mapparams.map.remove();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
mapparams.map = L.map('map', {scrollWheelZoom: false}).setView(params.center, parseInt(params.zoom))
|
mapparams.map = L.map('map', {scrollWheelZoom: false}).setView(params.center.coords, parseInt(params.zoom))
|
||||||
L.tileLayer('https://tile.openstreetmap.org/{z}/{x}/{y}.png', {
|
L.tileLayer('https://tile.openstreetmap.org/{z}/{x}/{y}.png', {
|
||||||
maxZoom: mapparams.MAXZOOM,
|
maxZoom: mapparams.MAXZOOM,
|
||||||
attribution: '© <a href="http://www.js.openstreetmap.org/copyright">OpenStreetMap</a>'
|
attribution: '© <a href="http://www.js.openstreetmap.org/copyright">OpenStreetMap</a>'
|
||||||
@@ -51,3 +51,7 @@ const buildMarkers = async (params, mapparams) => {
|
|||||||
return mapg.buildMarkers(params, mapparams)
|
return mapg.buildMarkers(params, mapparams)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export const setNewCenter = (center) => {
|
||||||
|
mapparams.map.setView(center)
|
||||||
|
}
|
||||||
|
|||||||
@@ -226,7 +226,7 @@ async function onMarkerClick(e, click, txts, params, mpp) {
|
|||||||
let triggerEl = document.querySelector(`#livetab`)
|
let triggerEl = document.querySelector(`#livetab`)
|
||||||
bootstrap.Tab.getInstance(triggerEl).show() // Select tab by name
|
bootstrap.Tab.getInstance(triggerEl).show() // Select tab by name
|
||||||
utils.setCurrentTab('livetab')
|
utils.setCurrentTab('livetab')
|
||||||
params.center = [e.latlng.lat, e.latlng.lng]
|
params.center.coords = [e.latlng.lat, e.latlng.lng]
|
||||||
mpp.map.setView([e.latlng.lat, e.latlng.lng]);
|
mpp.map.setView([e.latlng.lat, e.latlng.lng]);
|
||||||
ev.preventDefault()
|
ev.preventDefault()
|
||||||
await loadAll(params)
|
await loadAll(params)
|
||||||
|
|||||||
@@ -149,7 +149,7 @@ async function onMarkerClick(e, click, txts, params, mpp) {
|
|||||||
let triggerEl = document.querySelector(`#livetab`)
|
let triggerEl = document.querySelector(`#livetab`)
|
||||||
bootstrap.Tab.getInstance(triggerEl).show() // Select tab by name
|
bootstrap.Tab.getInstance(triggerEl).show() // Select tab by name
|
||||||
utils.setCurrentTab('livetab')
|
utils.setCurrentTab('livetab')
|
||||||
params.center = [e.latlng.lat, e.latlng.lng]
|
// params.center.coords = [e.latlng.lat, e.latlng.lng]
|
||||||
mpp.map.setView([e.latlng.lat, e.latlng.lng]);
|
mpp.map.setView([e.latlng.lat, e.latlng.lng]);
|
||||||
ev.preventDefault()
|
ev.preventDefault()
|
||||||
await loadAll(params)
|
await loadAll(params)
|
||||||
|
|||||||
@@ -1,18 +1,6 @@
|
|||||||
import * as mapn from './map_noise.js';
|
|
||||||
import * as mapg from './map_geiger.js';
|
|
||||||
import * as utils from "./chart_utilities.js"
|
import * as utils from "./chart_utilities.js"
|
||||||
import * as dt from './datetime.js'
|
import * as dt from './datetime.js'
|
||||||
|
|
||||||
function getColor(d, mapparams) {
|
|
||||||
if(sysparams.category === 'noise') {
|
|
||||||
return mapn.getColor(d, mapparams)
|
|
||||||
} else if(sysparams.category === 'multigeiger') {
|
|
||||||
return mapg.getColor(d, mapparams)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// Show the last date below tha map grafics
|
// Show the last date below tha map grafics
|
||||||
export async function showLastDate(ld, mpp) {
|
export async function showLastDate(ld, mpp) {
|
||||||
let url
|
let url
|
||||||
@@ -26,3 +14,4 @@ export async function showLastDate(ld, mpp) {
|
|||||||
document.querySelector('#actsensors').innerText = `${sensors.actsensors} ${sensors.registered}`
|
document.querySelector('#actsensors').innerText = `${sensors.actsensors} ${sensors.registered}`
|
||||||
// $('#actsensors').html(`${erg.count} aktive Sensoren (angemeldet ${allsens})`)
|
// $('#actsensors').html(`${erg.count} aktive Sensoren (angemeldet ${allsens})`)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -36,7 +36,7 @@ router.get('/:cmd', async function(req, res, next) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
// if called as '/api' then directly return the data
|
// if called as '/api' then directly return the data
|
||||||
if ((calledAs === '/api') || (cmd === 'getoneproperty') || (cmd === 'getaddress')) {
|
if ((calledAs === '/api') || (cmd === 'getoneproperty') || (cmd === 'getaddress') || (cmd === 'getcitycoords')) {
|
||||||
if(pretty) {
|
if(pretty) {
|
||||||
res.setHeader('Content-Type', 'text/plain; charset=utf-8');
|
res.setHeader('Content-Type', 'text/plain; charset=utf-8');
|
||||||
res.send(JSON.stringify(response.data,null,2))
|
res.send(JSON.stringify(response.data,null,2))
|
||||||
|
|||||||
@@ -1,13 +1,6 @@
|
|||||||
extends layout
|
extends layout
|
||||||
|
|
||||||
block content
|
block content
|
||||||
script.
|
|
||||||
function chglang(x) {
|
|
||||||
// localStorage.setItem('curlang', x.slice(-2))
|
|
||||||
// location.href = x
|
|
||||||
// history.pushState({}, '', '/')
|
|
||||||
}
|
|
||||||
|
|
||||||
header
|
header
|
||||||
#hline1
|
#hline1
|
||||||
#h1name #{t("NoiseMeasurement")}
|
#h1name #{t("NoiseMeasurement")}
|
||||||
@@ -73,6 +66,9 @@ block content
|
|||||||
span(aria-hidden="true") ×
|
span(aria-hidden="true") ×
|
||||||
.modal-body.settings
|
.modal-body.settings
|
||||||
.rows
|
.rows
|
||||||
|
.comlumn#ccity
|
||||||
|
label.thelabels(for='city') #{t("CenterMap")}:
|
||||||
|
input.theInputs#centercity(name="centercity")
|
||||||
.column#stday
|
.column#stday
|
||||||
label.thelabels(for='startday') #{t("StartDate")}:
|
label.thelabels(for='startday') #{t("StartDate")}:
|
||||||
input.theInputs#startday(name='startday' )
|
input.theInputs#startday(name='startday' )
|
||||||
|
|||||||
Reference in New Issue
Block a user