Calculate distance between two points in google maps V3

后端 未结 15 1951
醉梦人生
醉梦人生 2020-11-22 02:27

How do you calculate the distance between two markers in Google maps V3? (Similar to the distanceFrom function inV2.)

Thanks..

15条回答
  •  余生分开走
    2020-11-22 02:57

    In my case it was best to calculate this in SQL Server, since i wanted to take current location and then search for all zip codes within a certain distance from current location. I also had a DB which contained a list of zip codes and their lat longs. Cheers

    --will return the radius for a given number
    create function getRad(@variable float)--function to return rad
    returns float
    as
    begin
    declare @retval float 
    select @retval=(@variable * PI()/180)
    --print @retval
    return @retval
    end
    go
    
    --calc distance
    --drop function dbo.getDistance
    create function getDistance(@cLat float,@cLong float, @tLat float, @tLong float)
    returns float
    as
    begin
    declare @emr float
    declare @dLat float
    declare @dLong float
    declare @a float
    declare @distance float
    declare @c float
    
    set @emr = 6371--earth mean 
    set @dLat = dbo.getRad(@tLat - @cLat);
    set @dLong = dbo.getRad(@tLong - @cLong);
    set @a = sin(@dLat/2)*sin(@dLat/2)+cos(dbo.getRad(@cLat))*cos(dbo.getRad(@tLat))*sin(@dLong/2)*sin(@dLong/2);
    set @c = 2*atn2(sqrt(@a),sqrt(1-@a))
    set @distance = @emr*@c;
    set @distance = @distance * 0.621371 -- i needed it in miles
    --print @distance
    return @distance;
    end 
    go
    
    
    --get all zipcodes within 2 miles, the hardcoded #'s would be passed in by C#
    select *
    from cityzips a where dbo.getDistance(29.76,-95.38,a.lat,a.long) <3
    order by zipcode
    

提交回复
热议问题