6

有什么方法可以使用空间数据类型在 SQL Server 中定义 3D 实体?

如果是这样,我可以看到一个如何做到这一点的例子吗?比如说,只是一个 1x1x1 的简单立方体?我是否必须定义 6 个多边形(立方体的每个面 1 个)并以某种方式将它们一起使用?

我在网上阅读的所有内容都倾向于显示纯粹使用 2D 形状的示例。我确实知道 Point 类型可以处理 X、Y、Z(和 M) - 所以空间 3D 是可能的,但我发现很难找到好的例子。特别是多边形/实体。

我想如果这是可能的,它会引出我的下一个问题:我很想使用一些可用的空间方法:STIntersection()、STContains() 等。针对这些 3D 对象。因为我们在 3D 中,所以 STVolume() 函数会很棒!但我想这是我必须自己动手的事情。

也许我需要一个包含 SQL CLR 类型和空间扩展方法的库?

谢谢你。

4

1 回答 1

2

早在 2008 年就已请求 3D 空间对象(关于 Connect:提供对 3D 地理空间数据的支持)。

正如您所提到的,可以利用 X、Y、Z 和 M 来表示具有高程的点,但目前还没有直接支持操纵 3D 对象

以下示例创建一个具有 Z(高程)和 M(测量)值的 Point 实例,并使用 Z 获取实例的 Z 值。

DECLARE @g geometry;
SET @g = geometry::STGeomFromText('POINT(1 2 3 4)', 0);
SELECT @g.Z;

参考

SQL Server 2012中的新空间功能中没有提及此或其他 3D 功能

于 2012-12-15T00:43:01.080 回答