几何列上的SQL Server平面世界地图

时间:2015-01-07 12:11:14

标签: sql-server geometry geography

我需要有关几何和地理专栏的帮助。那个地理位置不是很好,因为它工作正常。我想要实现的是在几何列而不是地理上表示世界地图。好吧并不是真正代表自己,而是能够测量平面地图上两个坐标之间的距离(因为我知道地理会使曲线成为地球本身当然是弯曲的)。有没有办法做到这一点?

我正在阅读,但如果我这样做,没有任何改变:

DECLARE @g geometry;

SET @g = geometry::STGeomFromText('LINESTRING(-122.360 47.656, -122.343 47.656)', 0);

SELECT @g.STLength();

我得到的距离是0.016,而对于地理位置来说它是1277 ...将srid更改为4326也不会改变它...任何帮助?

1 个答案:

答案 0 :(得分:0)

几何数据类型适用于笛卡尔几何。您定义的线是从点(x1,y1)=( - 122.360,47.656)到(x2,y2)=( - 122.343,47.656)。它们之间的距离是sqrt((x2-x1)^ 2 +(y2-y1)^ 2)。

使用地理数据类型,点以赤道附近的度数和赤道的倾角度给出。如此定义的两点之间的距离的计算由Haversine公式给出。

正如你所看到的,两者截然不同。但真正的问题是:你真正想要实现的目标是什么?如果您的点代表地球上的点,为什么要使用几何数据类型?