我有以下两个位置。
他们都是澳大利亚维多利亚州的城镇
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中的这个空间数据不熟悉,为什么我会得到不同的结果呢?