在postgis中,Z-Dimension和M-Dimension有什么区别

In postgis, what is the difference between Z-Dimension and M-Dimension

正如标题,postgis中的Z-DimensionM-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 坐标,因为它是二维几何的函数。