我正在通过空间表中的SQL查询创建一个新表:
CREATE TABLE SomeShapes AS SELECT ash.id, ash.Geometry FROM AllShapes ash WHERE ash.id = 30
但是,这会返回一个“普通”表,因此当我尝试在GIS程序(QGIS)中加载它时,它不会显示几何图形 . 如何声明几何体列包含几何体?
您需要创建"non-spatial"表,然后将 Geometry 列添加到其中 .
Geometry
然后,您可以将数据插入表中 .
它无法在一个步骤中完成( create table as select ) . 来自the documentation:
create table as select
不允许在创建相应表的同时创建Geometry类型 . 您始终必须首先创建表,然后再次添加Geometry-column并作为单独的步骤 .
CREATE TABLE test_geom ( id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, name TEXT NOT NULL, measured_value DOUBLE NOT NULL); SELECT AddGeometryColumn('test_geom', 'Geometry', 4326, 'POINT', 'XY');
另外,请考虑您可能希望使用spatial indexes来提高性能
SELECT CreateSpatialIndex('test_geom', 'Geometry');
1 回答
您需要创建"non-spatial"表,然后将
Geometry
列添加到其中 .然后,您可以将数据插入表中 .
它无法在一个步骤中完成(
create table as select
) . 来自the documentation:另外,请考虑您可能希望使用spatial indexes来提高性能