Calculate Distance Between Two Points In Google Maps V3


Answer :

If you want to calculate it yourself, then you can use the Haversine formula:

var rad = function(x) {   return x * Math.PI / 180; };  var getDistance = function(p1, p2) {   var R = 6378137; // Earth’s mean radius in meter   var dLat = rad(p2.lat() - p1.lat());   var dLong = rad(p2.lng() - p1.lng());   var a = Math.sin(dLat / 2) * Math.sin(dLat / 2) +     Math.cos(rad(p1.lat())) * Math.cos(rad(p2.lat())) *     Math.sin(dLong / 2) * Math.sin(dLong / 2);   var c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));   var d = R * c;   return d; // returns the distance in meter }; 

There actually seems to be a method in GMap3. It's a static method of the google.maps.geometry.spherical namespace.

It takes as arguments two LatLng objects and will utilize a default Earth radius of 6378137 meters, although the default radius can be overridden with a custom value if necessary.

Make sure you include:

<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false&v=3&libraries=geometry"></script> 

in your head section.

The call will be:

google.maps.geometry.spherical.computeDistanceBetween (latLngA, latLngB); 

Example using GPS latitude/longitude of 2 points.

var latitude1 = 39.46; var longitude1 = -0.36; var latitude2 = 40.40; var longitude2 = -3.68;  var distance = google.maps.geometry.spherical.computeDistanceBetween(new google.maps.LatLng(latitude1, longitude1), new google.maps.LatLng(latitude2, longitude2));        

Comments

Popular posts from this blog

Converting A String To Int In Groovy

"Cannot Create Cache Directory /home//.composer/cache/repo/https---packagist.org/, Or Directory Is Not Writable. Proceeding Without Cache"

Android How Can I Convert A String To A Editable