计算两个满足GEOGRAPHY点的表格之间的距离

时间:2012-12-06 15:57:21

标签: sql sql-server sqlgeography

我正在使用SQL Server。

我有两张这样的表:

表1

Column1, Column2, Column3, GeoLoc
-----------------------------------
a        b        c        0xE61...

表2

Column1, Column2, Column3, GeoLoc 
-----------------------------------
a        b        c        0xE62...

我希望得到一个输出表,它将比较两个表中的所有点,并显示table1的{​​{1}}位于GeoLoc的X距离内的位置GeoLoc

有谁知道如何解决这个问题?一个表有大约800行,另一个表有大约300,000行。我甚至难以开始......

1 个答案:

答案 0 :(得分:6)

假设您的GeoLoc列属于SQL Server中的“Geography”数据类型,您应该可以使用以下内容:

select
  t1.*,
  t2.*,
  t1.GeoLoc.STDistance(t2.GeoLoc) as DistanceApart
from table1 t1
join table2 t2
on (t1.GeoLoc.STDistance(t2.GeoLoc) <= @distanceX)

“DistanceApart”和“distanceX”值以米为单位