Reputation:
I'm trying to calculate the distance between my location and a different location, but all I get is NaN. I'm pretty sure I placed the code in the wrong place in the script. Can somebody help me figuring this issue?
<!DOCTYPE html>
<html>
<head>
<script src="http://maps.google.com/maps/api/js?sensor=false&v=3&libraries=geometry"></script>
</head>
<body>
<p id="demo"></p>
<button onclick="getLocation()" id="demo">get current location</button>
<button onclick="console.log(distance)">get ditance from current location to other location</button>
<script>
var lat;
var longt;
var latLngA = new google.maps.LatLng(lat, longt);
var latLngB = new google.maps.LatLng(40.778721618334295, -73.96648406982422);
var distance = google.maps.geometry.spherical.computeDistanceBetween(latLngA, latLngB);
var x=document.getElementById("demo");
function getLocation(){
if (navigator.geolocation){
navigator.geolocation.getCurrentPosition(showPosition);
}
else{
x.innerHTML="Geolocation is not supported by this browser.";}
}
function showPosition(position){
lat = position.coords.latitude;
longt = position.coords.longitude;
x.innerHTML="Latitude: " + lat + "<br>Longitude: " + longt;
}
</script>
</body>
</html>
Upvotes: 3
Views: 10669
Reputation: 7228
Simplified script using libraries=geometry
function getLocation() {
navigator.geolocation.getCurrentPosition(
function(position) {
var latLngA = new google.maps.LatLng(position.coords.latitude,position.coords.longitude);
var latLngB = new google.maps.LatLng(40.778721618334295, -73.96648406982422);
var distance = google.maps.geometry.spherical.computeDistanceBetween(latLngA, latLngB);
alert(distance);//In metres
},
function() {
alert("geolocation not supported!!");
}
);
}
Upvotes: 7