PHD Project - Driver energy prediction
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

179 lines
4.1 KiB

2 years ago
<html>
<head>
<title>Google Map</title>
<meta name="viewport" content="initial-scale=1.0">
<meta charset="utf-8">
<style>
#map {
height: 98%;
width: 98%;
margin: 0px;
padding: 0px
}
</style>
</head>
<body>
<div style="padding:10px">
<div id="map"></div>
</div>
<script type="text/javascript">
//const latLng = { lat: 48.783301, lng: 11.413787 };
//console.log("Delete all Markers");
// In the following example, markers appear when the user clicks on the map.
// Each marker is labeled with a single alphabetical character.
var marker_s;
var marker_d;
var coord_s;
var coord_d;
var diff;
var line;
function initMap() {
coord_s = { lat: 48.783301, lng: 11.413787 };
diff = 0
const map = new google.maps.Map(document.getElementById("map"), {
zoom: 12,
center: coord_s,
});
// This event listener calls addMarker() when the map is clicked.
google.maps.event.addListener(map, "click", (event) => {
addMarker(event.latLng, map);
});
// Add a marker at the center of the map.
addMarker(coord_s, map);
// Add traffic layer
const trafficLayer = new google.maps.TrafficLayer();
trafficLayer.setMap(map);
// This event listener calls when the Markers are moved
google.maps.event.addListener(marker_s, 'dragend', function(event) {
if (diff == 2) {
coord_s = marker_s.getPosition();
line.setMap(null);
line = new google.maps.Polyline({
path: [coord_s, coord_d],
geodesic: true,
strokeColor: '#FF0000',
strokeOpacity: 1.0,
strokeWeight: 2
});
line.setMap(map); }
else {
coord_s = marker_s.getPosition();
}
returnS();
//console.log("S Position moved" + coord_s)
//console.log("diff = "+ diff)
});
google.maps.event.addListener(marker_d, 'dragend', function(event) {
coord_d = marker_d.getPosition();
returnD();
line.setMap(null);
line = new google.maps.Polyline({
path: [coord_s, coord_d],
geodesic: true,
strokeColor: '#FF0000',
strokeOpacity: 1.0,
strokeWeight: 2
});
line.setMap(map);
//console.log("D Position moved" + coord_d)
//console.log("diff = "+ diff)
});
}
// Adds a marker to the map.
function addMarker(location, map) {
// Add the marker at the clicked location, and add the next-available label
// from the array of alphabetical characters.
if (diff == 0) { // Add start
marker_s = new google.maps.Marker({
position: location,
label: "ccp",
map: map,
draggable: true,
});
coord_s = location;
returnS();
marker_d = new google.maps.Marker({
position: location,
label: "D",
map: map,
draggable: true,
});
marker_d.setMap(null);
diff = 1;
//console.log("Init: S New Position " + coord_s)
//console.log("diff = "+ diff)
}
else if (diff == 1) { // Add destination
coord_d = location;
returnD();
marker_d.setPosition(location);
marker_d.setMap(map);
line = new google.maps.Polyline({
path: [coord_s, coord_d],
geodesic: true,
strokeColor: '#FF0000',
strokeOpacity: 1.0,
strokeWeight: 2
});
line.setMap(map);
diff = 2;
//console.log("D New Position " + coord_d)
//console.log("diff = "+ diff)
} else { // Add new start
coord_s = location;
returnS();
coord_d = null;
returnD();
marker_d.setMap(null);
line.setMap(null);
marker_s.setPosition(location);
diff = 1;
//console.log("S New Position " + coord_s)
//console.log("diff = "+ diff)
}
}
function returnS() {
try {
var out = { lat: coord_s.lat(), lng: coord_s.lng() };
} catch {
var out = { lat: coord_s.lat, lng: coord_s.lng };
}
return out;
}
function returnD() {
try {
var out = { lat: coord_d.lat(), lng: coord_d.lng() };
} catch {
var out = { lat: null, lng: null };
}
return out;
}
</script>
<script src="https://maps.googleapis.com/maps/api/js?key=AIzaSyClu2yvJQjVAQIqs1v6eSEXSgwUNVeDLZM&callback=initMap"
async defer></script>
</body>
</html>