簡體   English   中英

如何在 QGIS 的 Postgresql 數據庫層中將幾何類型從 LINESTRING 更改為 MULTILINESTRING

[英]How to change geometry type from LINESTRING to MULTILINESTRING in a Postgresql database layer in QGIS

我在 shapefile 層中合並了行,需要將它們復制到 postgreSQL 數據庫層。 如果我將它們粘貼到 pg db 層,它就不起作用。 如果我合並它們,在我粘貼到 QGIS 后,它會崩潰。 我發現它可以工作,如果我將 pg db 層導出到地理包或 shapefile 層並將幾何從線串設置為多線串。 問題是我需要將它帶到數據庫層。 任何人都可以給我一個提示,我如何以正確的方式配置數據庫層?

謝謝!

我將更改 PostgreSQL 中的幾何類型,而不是在 geopackage 或 shapefile 中。 問題似乎出在幾何類型列中。 你可以用它來改變它:

ALTER TABLE [table_name]
        ALTER COLUMN [geometry_column] TYPE geometry(MULTILINESTRING) USING ST_Multi([geometry_column]);

或者

您可以在 PostgreSQL 中導入這些行而不合並它們,並在更改列的幾何類型時使用 postgis 合並它們:

ALTER TABLE [table_name]
        ALTER COLUMN [geometry_column] TYPE geometry(MULTILINESTRING) USING ST_Union([geometry_column]);

此外,這可能會對您有所幫助: https://gis.stackexchange.com/questions/68071/how-to-create-a-multilinestring-feature-with-a-postgis-layer-in-qgis

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM