Point to a direction test function getLocation() { var info = document.getElementById("info"); if (navigator.geolocation) { navigator.geolocation.getCurrentPosition(calculateArrowRotation); } else { info.innerHTML = "Geolocation is not supported by this browser."; } } function calculateArrowRotation(location) { // Point from here (Arc de Triomph, Paris) // var phoneLatitude = 48.873934; // var phoneLongitude = 2.2949; // Point from here (Gare du Nord, Paris) var phoneLatitude = 48.87977; var phoneLongitude = 2.355752; // Point to here (Musée du Louvre, Place du Carrousel, Paris, France) var destinationLatitude = 48.861519; var destinationLongitude = 2.3345495; var arrowAngle = bearing(phoneLatitude, phoneLongitude, destinationLatitude, destinationLongitude); var element = document.getElementById('arrow'); element.style['transform'] = 'rotate(' + arrowAngle + 'deg)'; var info = document.getElementById("info"); info.innerHTML = "Longitude = " + phoneLongitude + "
Latitude = " + phoneLatitude + "
Arrow angle = " + arrowAngle; } function bearing(lat1,lng1,lat2,lng2) { var dLon = (lng2-lng1); var y = Math.sin(dLon) * Math.cos(lat2); var x = Math.cos(lat1)*Math.sin(lat2) - Math.sin(lat1)*Math.cos(lat2)*Math.cos(dLon); var rad = Math.atan2(y, x); var brng = toDeg(rad); return 360 - ((brng + 360) % 360); } function toRad(deg) { return deg * Math.PI / 180; } function toDeg(rad) { return rad * 180 / Math.PI; }