【发布时间】:2019-11-12 08:26:59
【问题描述】:
我希望创建一个字段,告诉我 2 个几何列之间的最近邻距离(以 km 为单位)。
我有一个带有几何场的点数据集和多线数据集。
我尝试了以下方法:
SELECT
p.GEOM.STDistance(l.GEOM) AS distance
FROM
[points] p, [dbo].[lines] l
运行此查询后,我收到以下消息
消息 6522,第 16 级,状态 1,第 2 行
在执行用户定义的例程或聚合“几何”期间发生 .NET Framework 错误:
System.ArgumentException:24144:此操作无法完成,因为实例无效。使用 MakeValid 将实例转换为有效实例。请注意,MakeValid 可能会导致几何实例的点稍微移动。 System.ArgumentException:
你能帮我解决这个问题吗?
非常感谢!
谢谢!
【问题讨论】:
-
Bad habits to kick : using old-style JOINs - 旧式 逗号分隔的表格列表 样式已替换为 ANSI 中的 proper ANSI
JOIN语法-92 SQL 标准(25 多年前),不鼓励使用它 -
STDistance 特别适用于地理类型。您的几何列中可能有多种类型,例如:点、多边形和线串。
-
正确,所以我不能在线上做点?
标签: sql-server spatial