在postgis中,Z-Dimension和M-Dimension有什么区别
In postgis, what is the difference between Z-Dimension and M-Dimension
正如标题,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 坐标,因为它是二维几何的函数。
正如标题,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 坐标,因为它是二维几何的函数。