wil*_*aks 3 sql postgresql postgis geospatial
SELECT id, ST_Box2D(areas) AS bbox FROM mytable;
Run Code Online (Sandbox Code Playgroud)
在此示例中,表 "mytable"包含两列:" id "是行的唯一ID号," areas "是每行包含一个MULTIPOLYGON的几何字段.
这适用于仅包含一个多边形的多边形,但有些行的多边形非常分散,因此当多边形在欧洲包含一个多边形而在加拿大包含一个多边形时,边界框不相关.
所以我需要一种方法来获得每个多边形每个多边形一个box2d,但我还没有找到.更确切地说,我的目标是每行返回一个多面,每个多边形包含一个box2d.
第一个例子
第二个例子
您应该使用ST_Dump http://postgis.org/documentation/manual-1.5/ST_Dump.html
然后,每个多边形将获得一行.拆分几何体时,其他字段将重复.它就像一个聚合函数,但另一种方式.
语法有点特殊,因为它输出一个复合数据类型,所以你必须像这样提取几何部分:
SELECT (ST_Dump(the_geom)).geom from mytable;
Run Code Online (Sandbox Code Playgroud)
因为这会在表中为您提供更多行,所以您应该从查询中创建一个新表.
然后你可以在新表中的新几何列上创建一个索引,它将构建在每个单个多边形的边界框上.
HTH
/尼克拉斯
你想要你的多边形每一行吗?这就是我的想法,但是如果你只想要一个带有bbox的表,每行一个带有id的引用原始的multipolygon(你将cource获得为多边形的每个部分重复的相同id)然后你可以做同样的byt只是提取类似的bbox:
CREATE TABLE newTable AS
SELECT id, BOX2D((ST_Dump(the_geom)).geom) AS myBox FROM originamTable
Run Code Online (Sandbox Code Playgroud)
我担心我没有得到你想要的东西,但ST_Dump在这种情况下你有很多可能性.
| 归档时间: |
|
| 查看次数: |
5929 次 |
| 最近记录: |