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 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93
| var markersArray = [];
var previousPosition = null;
var init = null;
window.addEventListener('load', function () {
oMap = new google.maps.Map(document.getElementById("map_canvas"), {
zoom: 19,
mapTypeID: google.maps.MapTypeId.ROADMAP
});
}, false);
navigator.geolocation.watchPosition(successCallback, errorCallback, {
enableHighAccuracy: true,
});
function successCallback(position) {
oCurrentCoordinates = new google.maps.LatLng(position.coords.latitude, position.coords.longitude);
/*
*
*
* RECUPERATION COORDONNEES POUR LA BDD
*
*
*/
if (!init) {
oMap.panTo(oCurrentCoordinates);
init = 1;
}
if (position.coords.accuracy < 100) {
//Création d'un marqueur
var marker = new google.maps.Marker({
position: oCurrentCoordinates,
map: oMap
});
deleteOverlays(); // Clean marqueurs de la Map
markersArray.push(marker); // Rajoute le dernier Marqueur
if (previousPosition) {
//Creation d'une ligne
var newLineCoordinates =
[
new google.maps.LatLng(previousPosition.coords.latitude, previousPosition.coords.longitude),
new google.maps.LatLng(position.coords.latitude, position.coords.longitude)
];
var newLine = new google.maps.Polyline({
path: newLineCoordinates,
strokeColor: "#FF0000",
strokeOpacity: 1.0,
strokeWeight: 2
});
newLine.setMap(oMap);
}
//Les anciennes coo sont les nouvelles !
previousPosition = position;
}
}
//Gestion des erreurs
function errorCallback(error) {
switch (error.code) {
case error.PERMISSION_DENIED:
alert("User denied the request for Geolocation.");
break;
case error.POSITION_UNAVAILABLE:
alert("Location information is unavailable.");
break;
case error.TIMEOUT:
alert("The request to get user location timed out.");
break;
case error.UNKNOWN_ERROR:
alert("An unknown error occurred.");
break;
}
}
;
function deleteOverlays() {
if (markersArray) {
for (i in markersArray) {
markersArray[i].setMap(null);
}
markersArray.length = 0;
}
} |
Partager