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.
178 lines
5.2 KiB
178 lines
5.2 KiB
<!DOCTYPE html> |
|
<html> |
|
|
|
<head> |
|
<link rel='stylesheet' type='text/css' href='https://api.tomtom.com/maps-sdk-for-web/cdn/6.x/6.11.0//maps/maps.css'> |
|
<script src="https://api.tomtom.com/maps-sdk-for-web/cdn/6.x/6.11.0/maps/maps-web.min.js"></script> |
|
<title>TomTom Map</title> |
|
<style> |
|
#map { |
|
height: 92vh; |
|
width: 95vw; |
|
margin: 0px; |
|
padding: 0px |
|
} |
|
</style> |
|
</head> |
|
|
|
<body> |
|
<div style="padding:10px"> |
|
<div id="map"></div> |
|
</div> |
|
<script src='https://api.tomtom.com/maps-sdk-for-web/cdn/6.x/6.18.0/maps/maps-web.min.js'></script> |
|
<script type='text/javascript'></script> |
|
<script> |
|
var marker_s; |
|
var marker_d; |
|
var coord_s = [11.413787, 48.783301];; |
|
var coord_d; |
|
var diff; |
|
var line; |
|
var rotation = { |
|
Heading: 0 |
|
}; |
|
|
|
var map = tt.map({ |
|
key: 'HCAUTwaEOyuFIaIiLWcMojepBu22Sbcu', |
|
container: 'map', |
|
center: coord_s, |
|
zoom: 10, |
|
pitch: 0, |
|
stylesVisibility: { |
|
trafficIncidents: true, |
|
trafficFlow: true |
|
} |
|
}) |
|
|
|
//map.addControl(new tt.FullscreenControl()); |
|
map.addControl(new tt.NavigationControl()); |
|
|
|
|
|
// Initialization |
|
marker_s = new tt.Marker({ |
|
draggable: true |
|
}).setLngLat(coord_s).addTo(map); |
|
coord_s = marker_s.getLngLat(); |
|
diff = 1 |
|
returnS(); |
|
marker_s.getElement().innerHTML = ("<img src='car.svg' style='transform:rotate(" + rotation + "deg)'>"); |
|
marker_s.on('dragend', onDragEnd_s); |
|
// console.log("Initialization: *Start* Position " + coord_s) |
|
|
|
function updateLines() { |
|
linestrings = []; |
|
for (var i = 1; i < points.length; ++i) { |
|
var greatCircle = turf.greatCircle(points[i - 1], points[i], { |
|
offset: 100 |
|
}); |
|
linestrings.push(greatCircle); |
|
} |
|
} |
|
|
|
function onDragEnd_s() { |
|
if (diff == 2) { |
|
coord_s = marker_s.getLngLat(); |
|
// UPDATE LINE |
|
} else { |
|
coord_s = marker_s.getLngLat(); |
|
} |
|
returnS(); |
|
// console.log("Dragend: *Start* Position " + coord_s) |
|
}; |
|
|
|
function onDragEnd_d() { |
|
coord_d = marker_d.getLngLat(); |
|
returnD(); |
|
// UPDATE LINE |
|
// console.log("Dragend: *Desti* Position " + coord_d) |
|
}; |
|
|
|
// Adds a marker to the map. |
|
map.on('click', function(event) { |
|
// Add the marker at the clicked location, and add the next-available label |
|
// from the array of alphabetical characters. |
|
if (diff == 1) { // Add destination |
|
coord_d = new tt.LngLat((event.lngLat.lng), (event.lngLat.lat)); |
|
returnD(); |
|
|
|
marker_d = new tt.Marker({ |
|
draggable: true |
|
}).setLngLat(coord_d).addTo(map); |
|
marker_d.on('dragend', onDragEnd_d); |
|
|
|
// DRAW Line |
|
// path: [coord_s, coord_d], |
|
|
|
diff = 2; |
|
|
|
//console.log("D New Position " + coord_d) |
|
//console.log("diff = "+ diff) |
|
} else { // Add new start |
|
coord_s = new tt.LngLat((event.lngLat.lng), (event.lngLat.lat)); |
|
returnS(); |
|
coord_d = null; |
|
returnD(); |
|
marker_s.remove(); |
|
marker_d.remove(); |
|
|
|
// REMOVE LINE |
|
|
|
marker_s = new tt.Marker({ |
|
draggable: true, |
|
}).setLngLat(coord_s).addTo(map); |
|
marker_s.getElement().innerHTML = ("<img src='car.svg' style='transform:rotate(" + rotation + "deg)'>"); |
|
|
|
marker_s.on('dragend', onDragEnd_s); |
|
diff = 1; |
|
|
|
//console.log("S New Position " + coord_s) |
|
//console.log("diff = "+ diff) |
|
} |
|
}); |
|
|
|
function updateHeading() { |
|
marker_s.remove(); |
|
marker_s = new tt.Marker({ |
|
draggable: true, |
|
}).setLngLat(coord_s).addTo(map); |
|
marker_s.getElement().innerHTML = ("<img src='car.svg' style='transform:rotate(" + rotation + "deg)'>"); |
|
|
|
marker_s.on('dragend', onDragEnd_s); |
|
} |
|
|
|
function returnS() { |
|
try { |
|
var out = { |
|
lat: coord_s.lat, |
|
lng: coord_s.lng |
|
}; |
|
} catch { |
|
var out = { |
|
lat: null, |
|
lng: null |
|
}; |
|
} |
|
//console.log("S Position lat:" + out.lat) |
|
return out; |
|
} |
|
|
|
function returnD() { |
|
try { |
|
var out = { |
|
lat: coord_d.lat, |
|
lng: coord_d.lng |
|
}; |
|
} catch { |
|
var out = { |
|
lat: null, |
|
lng: null |
|
}; |
|
} |
|
//console.log("D Position lat:" + out.lat) |
|
return out; |
|
} |
|
</script> |
|
|
|
</body> |
|
|
|
</html> |