1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61
| var markerWpt = new google.maps.Marker({
"position": {lat: 0, lng: 0},
"map": null,
"label": {text: "M", color: "limegreen"},
"draggable": true
});
google.maps.event.addListener(map, "rightclick", function (event) {
markerWpt.setPosition(event.latLng);
markerWpt.setTitle("WPT Marker : " + formatPosition(event.latLng.lat(), event.latLng.lng()));
markerWpt.setMap(this);
});
google.maps.event.addListener(markerWpt, "dragend", function (event) {
var newPosition = {lat: event.latLng.lat(), lng: event.latLng.lng()};
markerWpt.setTitle("WPT Marker : " + formatPosition(newPosition.lat, newPosition.lng));
});
google.maps.event.addListener(map, "click", function (event) {
markerWpt.setMap(null);
});
// formatPosition()
function formatPosition(lat, lon) {
var latDMS = toDMS(lat);
var lonDMS = toDMS(lon);
var latString = latDMS.g + "°" + pad0(latDMS.m) + "'" + pad0(latDMS.s) + '"';
var lonString = lonDMS.g + "°" + pad0(lonDMS.m) + "'" + pad0(lonDMS.s) + '"';
return latString + ((latDMS.u == 1) ? "N" : "S") + " " + lonString + ((lonDMS.u == 1) ? "E" : "W");
}
// toDMS()
function toDMS(number) {
var u = sign(number);
number = Math.abs(number);
var g = Math.floor(number);
var frac = number - g;
var m = Math.floor(frac * 60);
frac = frac - m / 60;
var s = Math.floor(frac * 3600);
var cs = roundTo(360000 * (frac - s / 3600), 0);
while (cs >= 100) {
cs = cs - 100;
s = s + 1;
}
return {
"u": u,
"g": g,
"m": m,
"s": s,
"cs": cs
};
}
// pad0()
function pad0(val) {
if (val < 10) {
val = "0" + val;
}
return val;
} |
Partager