空间数据未返回正确的距离

时间:2015-04-29 10:45:06

标签: sql-server sql-server-2008 sqlgeography

我有以下两个位置。

他们都是澳大利亚维多利亚州的城镇

Fitzroy,-37.798701, 144.978687
Footscray,-37.799736, 144.899734

我已按照本教程to work out the distance between two cities

在为每个位置提供的纬度和经度上运行geography::Point(Latitude, Longitude , 4326)后,每行的“地理位置”列都会填充以下内容:

Fitzroy, 0xE6100000010C292499D53BE642C0A7406667511F6240
Footscray, 0xE6100000010C89B7CEBF5DE642C02D23F59ECA1C6240

在我的SQL查询中,我有以下内容可以计算出两个城镇之间的距离。 Geo是我的地理专栏

DECLARE @s geography
DECLARE @t geography

SET @s = (select Geo from Location.Cities where StateId = 7 and Id = 6918) -- Fitzroy
SET @t = (select Geo from Location.Cities where StateId = 7 and Id = 6923) -- Footscray

SELECT @s.STDistance(@t)

我得到的结果是

6954.44911927616

然后我看了格式化,就像在澳大利亚我们去了KM所以经过一些搜索我找到了两个解决方案,一个用于Miles,另一个用于KM

所以我将Select语句改为看起来像这样

select @s.STDistance(@t)/1000  -- format to KM

我的结果是

6.95444911927616

当我去谷歌地图并在上面提供的位置之间做方向请求时,它说10.2km(取决于流量)

现在我对SQL中的这个空间数据不熟悉,为什么我会得到不同的结果呢?

0 个答案:

没有答案