PostGIS:计算一个二维面在三维线上的投影

已知条件
  1. 一个二维面
  2. 一条三维线
计算要求
  1. 计算二维面在三维线上的投影
二维面
--二维面对象
SELECT ST_GeomFromText('SRID=4490;
POLYGON((60 40,60 -40,-60 -40,-60 40,60 40))') AS GEOM_POLYIGON
三维线
--三维线对象
SELECT ST_GeomFromText('SRID=4490;MULTILINESTRING Z((
					   60.01 39.02 1000, 
					   60.02 39.03 2000, 
					   60.03 39.04 2500, 
					   60.01 60.02 1000))') AS GEOM_LINE
计算关键过程

主要思路:将二维面对象转换为POLYHEDRALSURFACE对象。

--其中1500来自三维线对象的最大和最小的Z值
SELECT 
	ST_3DIntersection(
	ST_Extrude(GEOM_POLYIGON,0,0,1500),
	GEOM_LINE
	) AS RESULT
对地下空间的计算

上述方法只适用于地上三维对象的计算。如果是地下三维对象,应当将ST_Extrude对象的全部Z值减去高差的1/2。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

丷丩

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值