Google Maps - How to get the distance between two point in metre?

后端 未结 6 487

I have these coordinate :

(45.463688, 9.18814) 
(46.0438317, 9.75936230000002)

and I need (trought Google API V3, I think) to get the dista

相关标签:
6条回答
  • 2020-11-28 22:59

    This is primarily done with math outside of the google api, so you shouldn't need to use the API for anything other than finding the correct coordinates.

    Knowing that, here's a link to a previously answered question relating to Javascript.

    Calculate distance between 2 GPS coordinates

    0 讨论(0)
  • 2020-11-28 23:08

    I think you could do without any specific API, and calculate distance with plain Javascript:

    This site has good info about geographical calculations and Javascript sample for distance calculation.

    Ok, quick glance at Google API page and it seems, you could do it by:

    1. Call DirectionsService().route() to get DirectionsResult with routes
    2. For one or each route go through its legs property and calculate sum of distances
    0 讨论(0)
  • 2020-11-28 23:09

    Try this

     CLLocationCoordinate2D coord1;
     coord1.latitude = 45.463688;
     coord1.longitude = 9.18814;
     CLLocation *loc1  = [[[CLLocation alloc] initWithLatitude:coord1.latitude longitude:coord1.longitude] autorelease];
    
     CLLocationCoordinate2D coord2;
     coord2.latitude = 46.0438317;
     coord2.longitude = 9.75936230000002;
     CLLocation *loc2  = [[[CLLocation alloc] initWithLatitude:46.0438317 longitude:9.75936230000002] autorelease];
    
     CLLocationDistance d1 = [loc1 distanceFromLocation:loc2];
    
    0 讨论(0)
  • 2020-11-28 23:11

    If you're looking to use the v3 google maps API, here is a function to use: Note: you must add &libraries=geometry to your script source

    <script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false&libraries=geometry"></script>
    
    <script>
    var p1 = new google.maps.LatLng(45.463688, 9.18814);
    var p2 = new google.maps.LatLng(46.0438317, 9.75936230000002);
    
    alert(calcDistance(p1, p2));
    
    //calculates distance between two points in km's
    function calcDistance(p1, p2) {
      return (google.maps.geometry.spherical.computeDistanceBetween(p1, p2) / 1000).toFixed(2);
    }
    
    </script>
    
    0 讨论(0)
  • 2020-11-28 23:11

    http://www.csgnetwork.com/gpsdistcalc.html

    Has nothing to do with coding btw

    EDIT if you're looking for some code

    Calculate distance between two points in google maps V3

    0 讨论(0)
  • 2020-11-28 23:14

    Try this:

    const const toRadians = (val) => {
        return val * Math.PI / 180;
    }
    const toDegrees = (val) => {
        return val * 180 / Math.PI;
    }
    // Calculate a point winthin a circle
    // circle ={center:LatLong, radius: number} // in metres
    const pointInsideCircle = (point, circle) => {
        let center = circle.center;
        let distance = distanceBetween(point, center);
    
        //alert(distance);
        return distance < circle.radius;
    };
    
    const distanceBetween = (point1, point2) => {
       //debugger;
       var R = 6371e3; // metres
       var φ1 = toRadians(point1.latitude);
       var φ2 = toRadians(point2.latitude);
       var Δφ = toRadians(point2.latitude - point1.latitude);
       var Δλ = toRadians(point2.longitude - point1.longitude);
    
       var a = Math.sin(Δφ / 2) * Math.sin(Δφ / 2) +
               Math.cos(φ1) * Math.cos(φ2) *
               Math.sin(Δλ / 2) * Math.sin(Δλ / 2);
       var c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));
    
       return R * c;
    }
    

    References: http://www.movable-type.co.uk/scripts/latlong.html

    0 讨论(0)
提交回复
热议问题