【发布时间】:2021-08-19 16:07:31
【问题描述】:
正如标题,postgis中的Z-Dimension和M-Dimension有什么区别?
据说Z-Dimension一般存储高程信息,而M-Dimension存储一些其他信息。
但是,Z-Dimension 和 M-Dimension 之间有什么实质性区别吗?比如postgis提供的功能有什么不同吗?
【问题讨论】:
正如标题,postgis中的Z-Dimension和M-Dimension有什么区别?
据说Z-Dimension一般存储高程信息,而M-Dimension存储一些其他信息。
但是,Z-Dimension 和 M-Dimension 之间有什么实质性区别吗?比如postgis提供的功能有什么不同吗?
【问题讨论】:
PostGIS在三维函数中对Z坐标的处理是不同的。
考虑这个例子:
SELECT st_3ddistance(
'SRID=4326;POINT ZM(0 0 0 100)'::geometry,
'SRID=4326;POINT ZM(0 0 0 0)'::geometry
);
st_3ddistance
═══════════════
0
(1 row)
SELECT st_3ddistance(
'SRID=4326;POINT ZM(0 0 100 0)'::geometry,
'SRID=4326;POINT ZM(0 0 0 0)'::geometry
);
st_3ddistance
═══════════════
100
(1 row)
M 维度可以是与每个点相关的任何度量,例如该位置的放射性辐射强度。显然,这不考虑距离测量。它用于其他函数,如 ST_InterpolatePoint,在给定点插入 M 维度:
SELECT st_interpolatepoint(
'SRID=4326;LINESTRING ZM(0 0 0 100,50 50 10 0)'::geometry,
'SRID=4326;POINT(20 20)'::geometry
);
st_interpolatepoint
═════════════════════
60
(1 row)
这里忽略 Z 坐标,因为它是二维几何的函数。
【讨论】: