【问题标题】:Find latitude and longitude with in 2 miles radius from a given lat-long从给定的经纬度查找 2 英里半径内的纬度和经度
【发布时间】:2018-12-04 16:25:29
【问题描述】:

我有一张经纬度表。

我需要从给定的经纬度找到半径 2 英里内的所有纬度和经度。

我正在使用 sqlserver 数据库中的 C# 使用 jquery ajax 获取数据。

我在 sqlserver 查询中需要这个。

例如:

如果我给出 37.774546 和 -122.433523,那么我需要从列表中获取所有经纬度 半径为 2 英里。

【问题讨论】:

  • 我们需要更多信息来帮助您。您究竟希望在哪里进行过滤?在数据库中,在 C# 层中,还是在 javascript 中?
  • 你的“问题”与它的标签有什么关系?这听起来更像是一道数学题。
  • 你应该问hitesh gupta.....
  • 对不起,我已经编辑了我的问题
  • 在我看来还是一道数学题; )。请看this page ...

标签: sql-server sql-server-2008


【解决方案1】:

你可以试试这个查询数据库:

Declare @Miles int=10;

Declare @Latitude varchar(15);  
Declare @Longitude varchar(15);  
Set @Latitude = 'set input lat here'
Set @Longitude = 'set input long here'

Select Round(((DEGREES(ACOS(SIN(RADIANS(Latitude)) * SIN(RADIANS(@Latitude)) + COS(RADIANS(Latitude)) * COS(RADIANS(@Latitude)) * COS(RADIANS(Longitude - @Longitude))))) * 69.09),0) As Distance,
Latitude as lat, 
Longitude as longi     
From tablename                    
       Where @Miles > ((DEGREES(ACOS(SIN(RADIANS(Latitude)) * SIN(RADIANS(@Latitude)) + COS(RADIANS(Latitude)) * COS(RADIANS(@Latitude)) * COS(RADIANS(Longitude - @Longitude))))) * 69.09)

希望这会对你有所帮助。

【讨论】:

    【解决方案2】:

    由于您使用的是 SQL 2008,因此您可以利用本机地理空间查询功能。例如:

    declare @distance_in_meters int = 2000;
    declare @point geography = geography::Point( 37.774546, -122.433523, 4326 );
    declare @buffer geography = @point.STBuffer( @distance_in_meters );
    
    select * 
    from dbo.yourtable
    where @buffer.STContains( t.Point );
    

    请注意,dbo.yourtable.Point 必须具有 geography 数据类型,并且实际数据必须具有与参考点相同的 SRID。但这很简单。

    【讨论】:

      【解决方案3】:

      那样做。

      var bounds = map.getBounds();
      var ne = bounds.getNorthEast();
      var sw = bounds.getSouthWest();
      var nw = new google.maps.LatLng(ne.lat(), sw.lng())
      var x = google.maps.geometry.spherical.computeDistanceBetween(ne, nw);
      var y = google.maps.geometry.spherical.computeDistanceBetween(sw, nw); 
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2015-06-15
        • 1970-01-01
        • 2018-09-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-10-26
        相关资源
        最近更新 更多