Initial commit

This commit is contained in:
torsten committed 2026-08-13 18:33:10 +02:00
commit b7d90b9afe
16245 files changed
+3396666

No files matched your search

@@ -0,0 +1,32 @@
var formen = [{
"type": "Feature",
"properties": {
"farbe": "red",
"info": "BT 56"
},
"geometry": {
"type": "Polygon",
"coordinates": [[
[ 8.896696195006372, 53.054442380171004], //Reihenfolge umgekehrt: LonLat
[ 8.896603155881166, 53.05449229656882],
[ 8.896517828106882, 53.054433855886636],
[ 8.89661053195596 , 53.05438418124448]
]]
}
}
];
L.geoJson(formen,{
style: function(feature){
return {weight: 1, color: feature.properties.farbe};
},
onEachFeature: onEachFeature
}
).addTo(map);
function onEachFeature(feature, layer) {
if (feature.properties && feature.properties.info) {
layer.bindPopup(feature.properties.info);
}
}
@@ -0,0 +1,217 @@
var viewPos = [53.05445, 8.89671];
var map = L.map('map').setView(viewPos, 21);
var equipmentNumber = Number(document.getElementById("equipmentNumber").value);
var setStartPos = false;
var setEndPos = false;
var startPos;
var endPos;
var blueIcon = new L.Icon({
iconUrl: 'img/marker-blue.png',
shadowUrl: 'img/marker-shadow.png',
iconSize: [25, 41],
iconAnchor: [12, 41],
popupAnchor: [1, -34],
shadowSize: [41, 41]
});
var yellowIcon = new L.Icon({
iconUrl: 'img/marker-yellow.png',
shadowUrl: 'img/marker-shadow.png',
iconSize: [25, 41],
iconAnchor: [12, 41],
popupAnchor: [1, -34],
shadowSize: [41, 41]
});
var greenIcon = new L.Icon({
iconUrl: 'img/marker-green.png',
shadowUrl: 'img/marker-shadow.png',
iconSize: [25, 41],
iconAnchor: [12, 41],
popupAnchor: [1, -34],
shadowSize: [41, 41]
});
var runIcon = new L.Icon({
iconUrl: 'img/marker-run.png',
shadowUrl: 'img/marker-shadow.png',
iconSize: [25, 41],
iconAnchor: [12, 41],
popupAnchor: [1, 50],
shadowSize: [0, 0]
});
var startIcon = new L.Icon({
iconUrl: 'img/marker-start.png',
iconSize: [12, 20],
iconAnchor: [12, 41],
popupAnchor: [1, -34],
shadowSize: [0, 0]
});
var endIcon = new L.Icon({
iconUrl: 'img/marker-ziel.png',
iconSize: [12, 20],
iconAnchor: [12, 41],
popupAnchor: [1, -34],
shadowSize: [0, 0]
});
var roomPos=[];
// Floor 1
roomPos[41] = [53.0544134499695, 8.89657970645935, 1.0]; // 101
roomPos[48] = [53.0544415814367, 8.89655747715146, 1.0];
roomPos[53] = [53.0544708770499, 8.89659823903211, 1.0];
roomPos[58] = [53.0544588111309, 8.89664222434108, 1.0];
roomPos[61] = [53.0544382476614, 8.89666158434962, 1.0];
roomPos[66] = [53.0544172818801, 8.89663047532393, 1.0];
roomPos[70] = [53.0544359183058, 8.89660827779814, 1.0];
// Floor 2
roomPos[80] = [53.0544415814367, 8.89655747715146, 4.0];
roomPos[85] = [53.0544708770499, 8.89659823903211, 4.0];
roomPos[90] = [53.0544588111309, 8.89664222434108, 4.0];
roomPos[93] = [53.0544382476614, 8.89666158434962, 4.0];
roomPos[98] = [53.0544172818801, 8.89663047532393, 4.0];
roomPos[102] = [53.0544359183058, 8.89660827779814, 4.0];
roomPos[74] = [53.0544134499695, 8.89657970645935, 4.0];
roomPos[106] = [53.0544359183058, 8.89660827779814, 5.0];
var roomsFloor1=[41, 48, 53, 58, 61, 66, 70];
var roomsFloor2=[74, 80, 85, 90, 93, 98, 102];
var roomsFloor3=[106];
var markerStart;
var markerEnd;
var markerBldg=[];
var imageUrl = 'img/RDE2.jpg',
imageBounds = [[53.0528064472226, 8.89412999153137], [53.056520842139, 8.90030980110168]];
L.imageOverlay(imageUrl, imageBounds).addTo(map);
var imgUrl = 'img/BT56EtageUntengedreht.png',
imgBounds = [[53.0543723254747, 8.89649673130739], [53.0545051794611, 8.89671656638611]];
L.imageOverlay(imgUrl, imgBounds).addTo(map);
for (var i = 0; i < roomsFloor1.length; ++i) {
var ID = roomsFloor1[i];
markerBldg[ID] = new L.marker(roomPos[ID],{icon: blueIcon}).on('click', L.bind(onMarkerClick, null, ID))
.addTo(map).bindPopup("send Room "+ID).openPopup();
}
for (var i = 0; i < roomsFloor2.length; ++i) {
var ID = roomsFloor2[i];
markerBldg[ID] = new L.marker(roomPos[ID],{icon: greenIcon}).on('click', L.bind(onMarkerClick, null, ID))
.bindPopup("send Room "+ID).openPopup();
}
for (var i = 0; i < roomsFloor3.length; ++i) {
var ID = roomsFloor3[i];
markerBldg[ID] = new L.marker(roomPos[ID],{icon: yellowIcon}).on('click', L.bind(onMarkerClick, null, ID))
.bindPopup("send Room "+ID).openPopup();
}
function onMarkerClick(e) {
var moutObjectId = 7;
var moutAreaId = 2;
var moutRoomId = e;
var lat = roomPos[moutRoomId][0];
var lon = roomPos[moutRoomId][1];
var z = roomPos[moutRoomId][2];
sendRoom(moutObjectId, moutAreaId, moutRoomId, lat, lon, z);
}
var popup = L.popup();
var markerParticipant=new L.marker(viewPos,{icon: runIcon}).on('click', onMapClick);
markerParticipant.addTo(map).bindPopup("#"+equipmentNumber).openPopup();
var lat;
var lon;
function onMapClick(e) {
if (setStartPos){
if (!markerStart){
markerStart = new L.marker(e.latlng,{icon: startIcon}).on('click', L.bind(onMarkerClick, null, ID))
.addTo(map).bindPopup("Start move").openPopup();
}
else
{
markerStart.setLatLng( e.latlng);
}
startPos=e.latlng;
setStartPos=false;
return;
}
if (setEndPos){
if (!markerEnd){
markerEnd = new L.marker(e.latlng,{icon: endIcon}).on('click', L.bind(onMarkerClick, null, ID))
.addTo(map).bindPopup("End move").openPopup();
}
else
{
markerEnd.setLatLng( e.latlng);
}
endPos=e.latlng;
setEndPos=false;
return;
}
var moutObjectId = -1;
var moutAreaId = -1;
var moutRoomId = -1;
lat =e.latlng.lat;
lon = e.latlng.lng;
var z = 0;
sendRoom(moutObjectId, moutAreaId, moutRoomId, lat, lon, z);
markerParticipant.setLatLng( [lat, lon]);
var latlng = e.latlng;
latlng.lat= latlng.lat+0.00002;
latlng[1]+=1;
popup
.setLatLng(latlng)
.setContent("" + e.latlng.toString())
.openOn(map);
}
map.on('click', onMapClick);
function changeFloor() {
var val1=$( "#changeFloor" ).val();
console.log("changeFloor="+val1);
if (val1=="floor1"){
console.log ("floor1");
for (var i = 0; i < roomsFloor2.length; ++i) {
map.removeLayer(markerBldg[roomsFloor2[i]]);
}
for (var i = 0; i < roomsFloor3.length; ++i) {
map.removeLayer(markerBldg[roomsFloor3[i]]);
}
for (var i = 0; i < roomsFloor1.length; ++i) {
markerBldg[roomsFloor1[i]].addTo(map).bindPopup("send Room "+roomsFloor1[i]).openPopup();
}
}else if(val1=="floor2"){
for (var i = 0; i < roomsFloor1.length; ++i) {
map.removeLayer(markerBldg[roomsFloor1[i]]);
}
for (var i = 0; i < roomsFloor3.length; ++i) {
map.removeLayer(markerBldg[roomsFloor3[i]]);
}
for (var i = 0; i < roomsFloor2.length; ++i) {
markerBldg[roomsFloor2[i]].addTo(map).bindPopup("send Room "+roomsFloor2[i]).openPopup();
}
}
else if(val1=="floor3"){
for (var i = 0; i < roomsFloor1.length; ++i) {
map.removeLayer(markerBldg[roomsFloor1[i]]);
}
for (var i = 0; i < roomsFloor2.length; ++i) {
map.removeLayer(markerBldg[roomsFloor2[i]]);
}
for (var i = 0; i < roomsFloor3.length; ++i) {
markerBldg[roomsFloor3[i]].addTo(map).bindPopup("send Room "+roomsFloor3[i]).openPopup();
}
}
}
@@ -0,0 +1,146 @@
var socket;
var moutObjectId;
var moutAreaId;
var equipmentNumber;
$(function() {
$("#connectWs").click(function() {
connect();
});
$('#changeFloor').val('floor1').selectmenu('refresh');
});
function connect(){
var ipadresse=document.getElementById("ipadresse").value;
console.log("ipadresse="+ipadresse);
var host = "ws://"+ipadresse;
console.log("connect "+ipadresse);
try{
socket = new WebSocket(host);
console.log("connect state:" +socket.readyState);
socket.onopen = function(){
console.log("onopen: connect state:" +socket.readyState);
document.getElementById("Serverconnect").innerHTML = "Server: connected";
document.getElementById("Serverconnect").style.color = "green"
}
socket.onmessage = function(msg){
console.log('<p class="message">Received: '+msg.data);
}
socket.onclose = function(){
console.log('<p class="event">Socket Status: '+socket.readyState+' (Closed)');
document.getElementById("Serverconnect").innerHTML = "Server: not connected";
document.getElementById("Serverconnect").style.color = "red"
}
} catch(exception){
console.log('<p>Error'+exception);
}
}
function sendRoom(moutObjectId, moutAreaId, moutRoomId, lat, lon, z){
equipmentNumber = Number(document.getElementById("equipmentNumber").value);
var type = "PositionReport";
var timestamp = Date.now();
console.log("sendRoom: moutRoomId="+moutRoomId);
var latRad = lat*Math.PI/180;
var lonRad = lon*Math.PI/180;
var jsonMsg = JSON.stringify({ //make JSON-string from the data
data:{
equipmentNumber: equipmentNumber,
lat: latRad,
lon: lonRad,
moutAreaId: moutAreaId,
moutObjectId: moutObjectId,
moutRoomId: moutRoomId,
timestamp: timestamp,
z: z
},
type: type
});
//socket.send(jsonMsg); //send the JSON telegram
var jsonMsgNeu = JSON.stringify({ //make JSON-string from the data
type:"PositionReport",
typeId:21,
data:{
geoPosition:{
lat: latRad,
lon: lonRad,
z: z
},
gpsQuality:{
dgpsModeAvailable : false,
moreThan4SatellitesAvailable: false,
pdopValue:0
},
header:{
equipmentNumber: equipmentNumber,
timeStamp:timestamp},
opsPosition:{
moutObjectId : 90,
moutRoomId : 7549,
opsId : 0},
relPosition:{
offsetX: 0,
offsetY: 0,
offsetZ:0}
}});
console.log(jsonMsgNeu);
//socket.send(jsonMsgNeu);
// Example:
// jsonStr: {"data":{"geoPosition":{"lat":0.9259749342860095,"lon":0.15527446692104546,"z":2},"gpsQuality":{"dgpsModeAvailable":false,"moreThan4SatellitesAvailable":false,"pdopValue":0},"header":{"equipmentNumber":1006,"timeStamp":1581525171137},"opsPosition":{"moutObjectId":90,"moutRoomId":7549,"opsId":0},"relPosition":{"offsetX":0,"offsetY":0,"offsetZ":0}},"type":"PositionReport","typeId":21}
}
function updateUnix(){ //update timestamp
date = Date.now();
document.getElementById("timestamp").value= date;
}
function showHideFunction() {
var x = document.getElementById('inputmenu');
if (x.style.display === 'none') {
x.style.display = 'block';
} else {
x.style.display = 'none';
}
}
function hideFunction() {
var x = document.getElementById('inputmenu');
x.style.display = 'none';
}
function showFunction() {
var x = document.getElementById('inputmenu');
x.style.display = 'block';
}
function hideButtonsFunction() {
var x = document.getElementById('buttons');
x.style.display = 'none';
}
function showButtonsFunction() {
var x = document.getElementById('buttons');
x.style.display = 'block';
}
function hideMoveFunction() {
hideFunction();
hideButtonsFunction();
var x = document.getElementById('moveMenu');
x.style.display = 'none';
}
function showMoveFunction() {
hideFunction();
hideButtonsFunction();
var x = document.getElementById('moveMenu');
x.style.display = 'block';
}
function backToMenuFunction() {
hideMoveFunction();
showFunction();
showButtonsFunction();
var x = document.getElementById('menu');
x.style.display = 'block';
}
@@ -0,0 +1,67 @@
var paket;
var i;
var runState = 0;
var distLat;
var distLon;
var lat;
var lon;
function run() {
console.log("move lat="+lat+" lon="+lon);
var equipmentNumber = Number(document.getElementById("equipmentNumber").value);
markerParticipant.setLatLng( [lat, lon]);
var latlng = [lat, lon];
var latlng1 = [lat+0.00002, lon];
popup
.setLatLng(latlng1)
.setContent("#" +equipmentNumber+" "+ latlng.toString())
.openOn(map);
var moutObjectId = -1;
var moutAreaId = -1;
var moutRoomId = -1;
var z = 0;
sendRoom(moutObjectId, moutAreaId, moutRoomId, lat, lon, z);
i++;
lat=lat+distLat/10;
lon=lon+distLon/10;
if (i==11){
clearInterval(t);
runState = 0;
}
}
function startMoveFunction() {
i = 0;
lat = startPos.lat;
lon = startPos.lng;
console.log("move Start="+startPos.toString()+" End="+ endPos);
distLat = endPos.lat - startPos.lat;
distLon = endPos.lng - startPos.lng;
if (runState==0)
{
t=setInterval("run()",1000);
runState = 1;
}
else
{
clearInterval(t);
runState = 0;
}
}
function moveMenu() {
hideFunction();
shoMoveFunction();
}
function setStartPoint() {
setStartPos = true;
}
function setEndPoint() {
setEndPos = true;
}