代码之家  ›  专栏  ›  技术社区  ›  Jakob Gade

在区域内选择地理点

  •  2
  • Jakob Gade  · 技术社区  · 16 年前

    我有一个SQL Server 2008表,其中有一列地理数据类型。该值是一个点(纬度和经度)。

    如何查询表以返回位置在给定坐标10公里半径内的所有行?

    2 回复  |  直到 16 年前
        2
  •  1
  •   Jakob Gade    16 年前

    这个查询最终解决了我的问题:

    DECLARE @geoMyPoint geography
    SET @geoMyPoint = geography::STGeomFromText('POINT(56.5667 9.0333)', 4326);
    
    SELECT vchZipCode, nvcCity, vchLat, vchLong,
      (geography::STGeomFromText('POINT(' + vchLat + ' ' + vchLong + ')', 4326)).STDistance(@geoMyPoint) 
    FROM MyTable
    
    推荐文章