diff --git a/Layout/default/Preorder/Index.php b/Layout/default/Preorder/Index.php index 74ce3357e..5102c56d7 100644 --- a/Layout/default/Preorder/Index.php +++ b/Layout/default/Preorder/Index.php @@ -2,6 +2,7 @@ $pagination_baseurl = $this->getUrl($Mod,"Index"); $pagination_baseurl_params = ["filter" => $filter]; $pagination_entity_name = "Vorbestellungen"; + ?> @@ -400,18 +401,19 @@ var markers = []; var markerState = true; var mapCenterPos = [, ]; - var tileLayers = []; - var tilesets = ["mapbox/streets-v12", "mapbox/satellite-streets-v12"]; - var currentTileset = "mapbox/streets-v12"; + var tileLayers = {}; + var tilesets = { + "geolandbasemap": {name: "geolandbasemap", imgtype: "png"}, + "bmaporthofoto30cm": {name: "bmaporthofoto30cm", imgtype: "jpeg"} + }; + var currentTileset = "geolandbasemap"; function toggleTileset() { - if(currentTileset == "mapbox/streets-v12") { - currentTileset = "mapbox/satellite-streets-v12"; + if(currentTileset == "geolandbasemap") { + currentTileset = "bmaporthofoto30cm"; } else { - currentTileset = "mapbox/streets-v12"; + currentTileset = "geolandbasemap"; } - - console.log("renderMap"); renderMap(true); } @@ -437,23 +439,22 @@ } if(!(currentTileset in tileLayers)) { - tileLayers[currentTileset] = L.tileLayer('https://api.mapbox.com/styles/v1/{id}/tiles/{z}/{x}/{y}?access_token={accessToken}', { - attribution: 'Map data © OpenStreetMap contributors, CC-BY-SA, Imagery © Mapbox', + tileLayers[currentTileset] = L.tileLayer('https://mapsneu.wien.gv.at/basemap/{id}/normal/google3857/{z}/{y}/{x}.{imgtype}', { + attribution: '© Basemap.at', minZoom: 6, - maxZoom: 22, - id: currentTileset, - accessToken: '' + maxZoom: 19, + id: tilesets[currentTileset].name, + imgtype: tilesets[currentTileset].imgtype }); } - tileLayers[currentTileset].addTo(preorderMap); - // remove all tilesets not currently wanted - tilesets.forEach(function(t) { - if(t != currentTileset && preorderMap.hasLayer(tileLayers[t])) { - preorderMap.removeLayer(tileLayers[t]); + + for(const [name, t] of Object.entries(tilesets)) { + if(name != currentTileset && preorderMap.hasLayer(tileLayers[name])) { + preorderMap.removeLayer(tileLayers[name]); } - }); + } L.MakiMarkers.accessToken = ''; @@ -519,8 +520,39 @@ var icon = L.MakiMarkers.icon({icon: icon_name, color: icon_color, size: "l"}); var marker = L.marker(gps, {icon: icon}).addTo(preorderMap).bindPopup(marker_popup_content); markers[preorder.id] = marker; - }); + + is("Admin")): ?> + if(preorder.borderpoint_lat && preorder.borderpoint_long) { + var circle = L.circle([preorder.borderpoint_lat,preorder.borderpoint_long], { + color: 'orange', + fillColor: 'orange', + fillOpacity: 0.5, + radius: 1 + }).bindTooltip(preorder.borderpoint_lat + ", " + preorder.borderpoint_long).addTo(preorderMap); + } + + if(preorder.trenches) { + console.log(preorder.trenches); + preorder.trenches.forEach((trench) => { + //console.log(trench); + var trench_line = L.polyline(trench, { + color: "limegreen" + }).addTo(preorderMap); + //trench.forEach((segment) => { + //}); + }); + } + + if(preorder.home_trench) { + var home_line = L.polyline(preorder.home_trench, { + color: "aqua" + }).addTo(preorderMap); + } + + + }); + // calculate center position mapCenterPos = GetCenterFromDegrees(all_coords); @@ -601,5 +633,72 @@ togglePreorder(preorder_id); $('html, body').animate( {scrollTop: $('#preorder-' + preorder_id).offset().top - 230}, 200); } + + + /* + * Borderpoint map + */ + + var maps = {}; + + function loadBorderpointMap(id) { + var lat = $("#preorder-detail-" + id + "-map").data("lat"); + var long = $("#preorder-detail-" + id + "-map").data("long"); + + var blat = $("#preorder-detail-" + id + "-map").data("blat"); + var blong = $("#preorder-detail-" + id + "-map").data("blong"); + + var trenches = $("#preorder-detail-" + id + "-map").data("trench"); + var home_trench = $("#preorder-detail-" + id + "-map").data("home-trench"); + + if(!("map-" + id in maps)) { + + var map = L.map('preorder-map-' + id).setView([lat, long], 19); + + var tileLayer = L.tileLayer('https://mapsneu.wien.gv.at/basemap/{id}/normal/google3857/{z}/{y}/{x}.{imgtype}', { + attribution: '© Basemap.at', + minZoom: 12, + maxZoom: 19, + id: "bmaporthofoto30cm", + imgtype: "jpeg" + }).addTo(map); + + var circle = L.circle([lat,long], { + color: 'orange', + fillColor: 'orange', + fillOpacity: 0.5, + radius: 1 + }).bindTooltip(lat + ", " + long).addTo(map); + + /*var circle = L.circle([blat,blong], { + color: 'black', + fillColor: 'limegreen', + fillOpacity: 0.5, + radius: 1 + }).addTo(map);*/ + + if(trenches) { + trenches.forEach((trench) => { + //console.log(trench); + var trench_line = L.polyline(trench, { + color: "limegreen" + }).addTo(map); + //trench.forEach((segment) => { + + //}); + }); + } + + if(home_trench) { + var home_line = L.polyline(home_trench, { + color: "aqua" + }).addTo(map); + } + + maps["map-" + id] = map; + + setTimeout((id) => {maps["map-" + id].invalidateSize()}, 50, id); + } + } diff --git a/Layout/default/Preorder/include/preorder-detail.php b/Layout/default/Preorder/include/preorder-detail.php index 59069f186..753ce14af 100644 --- a/Layout/default/Preorder/include/preorder-detail.php +++ b/Layout/default/Preorder/include/preorder-detail.php @@ -648,78 +648,5 @@ return false; } - - var maps = {}; - - function loadBorderpointMap(id) { - var lat = $("#preorder-detail-" + id + "-map").data("lat"); - var long = $("#preorder-detail-" + id + "-map").data("long"); - - var blat = $("#preorder-detail-" + id + "-map").data("blat"); - var blong = $("#preorder-detail-" + id + "-map").data("blong"); - - var trenches = $("#preorder-detail-" + id + "-map").data("trench"); - var home_trench = $("#preorder-detail-" + id + "-map").data("home-trench"); - - if(!("map-" + id in maps)) { - - var map = L.map('preorder-map-' + id).setView([lat, long], 20); - var tileLayer = L.tileLayer('https://api.mapbox.com/styles/v1/{id}/tiles/{z}/{x}/{y}?access_token={accessToken}', { - attribution: 'Map data © OpenStreetMap contributors, CC-BY-SA, Imagery © Mapbox', - minZoom: 6, - maxZoom: 22, - id: "mapbox/satellite-streets-v12", - accessToken: '' - }).addTo(map); - - //map.invalidateSize(); - - //var marker = L.marker([lat, long], {icon: icon}).addTo(preorderMap); - /*L.circleMarker([lat, long], { - color: '#FF9999' - }).addTo(map); - */ - - var circle = L.circle([lat,long], { - color: 'orange', - fillColor: 'orange', - fillOpacity: 0.5, - radius: 1 - }).bindTooltip(lat + ", " + long).addTo(map); - - /*var circle = L.circle([blat,blong], { - color: 'black', - fillColor: 'limegreen', - fillOpacity: 0.5, - radius: 1 - }).addTo(map);*/ - - if(trenches) { - trenches.forEach((trench) => { - //console.log(trench); - var trench_line = L.polyline(trench, { - color: "limegreen" - }).addTo(map); - //trench.forEach((segment) => { - - //}); - }); - } - - if(home_trench) { - var home_line = L.polyline(home_trench, { - color: "aqua" - }).addTo(map); - } - - maps["map-" + id] = map; - - setTimeout((id) => {maps["map-" + id].invalidateSize()}, 50, id); - } - } - - function addMarkers(id) { - - } \ No newline at end of file diff --git a/application/Preorder/PreorderController.php b/application/Preorder/PreorderController.php index 3e0ebdf89..28994dae0 100644 --- a/application/Preorder/PreorderController.php +++ b/application/Preorder/PreorderController.php @@ -929,6 +929,13 @@ class PreorderController extends mfBaseController { $data->gps_lat = $preorder->adb_hausnummer->gps_lat; $data->gps_long = $preorder->adb_hausnummer->gps_long; + if($this->me->is("Admin")) { + $data->borderpoint_lat = ($preorder->adb_hausnummer->borderpoint_lat) ? json_decode($preorder->adb_hausnummer->borderpoint_lat) : null; + $data->borderpoint_long = ($preorder->adb_hausnummer->borderpoint_long) ? json_decode($preorder->adb_hausnummer->borderpoint_long) : null; + $data->trenches = ($preorder->adb_hausnummer->trenches) ? json_decode($preorder->adb_hausnummer->trenches) : null; + $data->home_trench = ($preorder->adb_hausnummer->home_trench) ? json_decode($preorder->adb_hausnummer->home_trench) : null; + } + $data->type_label = __($data->type, "preorder"); $data->connection_type_label = __($data->connection_type, "preorder");