2

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

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

4

2 回答 2

5

您可能需要 STDistance 方法:http: //msdn.microsoft.com/en-us/library/bb933952.aspx

或 STWithin 方法:http: //msdn.microsoft.com/en-us/library/bb933991.aspx

于 2009-02-15T07:28:09.423 回答
1

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

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
于 2009-02-15T07:42:45.273 回答