【发布时间】:2018-04-02 09:37:09
【问题描述】:
我已在我的表 (MICROSOFT SQL SERVER) 中添加了一个地理列,并在其中插入了地理点数据 (4326)。 现在我可以使用以下查询计算所有点到特定点的距离:
DECLARE @X geography = geography::Point(0, 0 , 4326);
SELECT TOP(4) *, LOCATION.STDistance(@
FROM [ADDRESS] A
WHERE A.LOCATION IS NOT NULL
ORDER BY LOCATION.STDistance(@X) ASC
它有效。但是,我想使用欧几里德距离公式计算距离:sqrt((y1-y2)^2 + (x1-x2)^2)) 并且如果可能的话,希望有两个单独的列用于 x 和 y 位置。
【问题讨论】:
-
绝对职位 - 那个法国人?
-
是的,SQL Server 有一个SQRT function,所以您可以自己使用两列来实现它,不是吗?但是有 geometry type 表示欧几里得距离,它会为您完成这一切,尽管它存储在单个列中。
-
你遇到了什么困难?
标签: sql sql-server spatial spatial-query