gpt4 book ai didi

python - 如何从 postgis 的多点平面内选择特定区域?

转载 作者:行者123 更新时间:2023-11-29 12:51:12 25 4
gpt4 key购买 nike

以下是一些具有 x y 和 z 值的测试数据(应该表示物理世界中的图像像素位置,但这是一个可以使用的小示例)。

-- create a table wtih geom as the geometry type column    
CREATE TABLE spatial_table (geom geometry);
-- insert 3d points
INSERT INTO spatial_table VALUES ('MULTIPOINT(1 0 800, 2 3 152, 1 2 300, 1 5 234234, 5 3 123123)')

现在,我可以使用以下查询从中提取所有点:

      SELECT * from st_x(st_geomfromewkt(SELECT ST_AsText( (ST_Dump(geom)).geom)
FROM spatial_table))

但是假设我想要一个特定区域,我知道该区域的 x 和 y 边界。如何做到这一点?

最佳答案

利用st_makeenvelope(xmin, ymin, xmax, ymax, srid)

对于下面的例子:

enter image description here

SQL 查询:

select p.id
from (values (st_geomfromtext('Point (34.5430 48.3706)'),'C'),
(st_geomfromtext('Point (34.0136 48.4661)'),'B'),
(st_geomfromtext('Point (33.6983 48.2173)'),'A'),
(st_geomfromtext('Point (34.0628 48.1450)'),'G'),
(st_geomfromtext('Point (33.7562 47.8586)'),'F'),
(st_geomfromtext('Point (34.0686 47.6388)'),'E'),
(st_geomfromtext('Point (34.4562 47.9599)'),'D'),
(st_geomfromtext('Point (34.1235 47.8528)'),'H')) p(geom, id)
where st_within(p.geom, st_makeenvelope(33.9327, 47.7892, 34.6645, 48.2434))

返回 G、D、H

关于python - 如何从 postgis 的多点平面内选择特定区域?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53549647/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com