Geometry SQL/SpatiaLite:如何将列声明为几何体?

Geometry SQL/SpatiaLite:如何将列声明为几何体?,geometry,spatialite,Geometry,Spatialite,我正在通过SQL查询从空间表创建一个新表: CREATE TABLE SomeShapes AS SELECT ash.id, ash.Geometry FROM AllShapes ash WHERE ash.id = 30 但是,这将返回一个“普通”表,因此当我尝试将其加载到GIS程序(QGIS)中时,它不会显示几何图形。如何声明geometry列包含几何体?您需要创建一个“非空间”表,然后将geometry列添加到该表中 然后,可以将数据插入表中 它不能在一个步骤中完成(createta

我正在通过SQL查询从空间表创建一个新表:

CREATE TABLE SomeShapes AS
SELECT ash.id, ash.Geometry
FROM AllShapes ash
WHERE ash.id = 30
但是,这将返回一个“普通”表,因此当我尝试将其加载到GIS程序(QGIS)中时,它不会显示几何图形。如何声明geometry列包含几何体?

您需要创建一个“非空间”表,然后将
geometry
列添加到该表中

然后,可以将数据插入表中

它不能在一个步骤中完成(
createtable as select
)。发件人:

在创建相应表的同时创建几何图形类型 不允许创建。始终必须首先创建表,然后 第二次添加几何体列并将其作为单独的步骤

此外,还要考虑到您可能希望使用来提高性能

SELECT CreateSpatialIndex('test_geom', 'Geometry');
SELECT CreateSpatialIndex('test_geom', 'Geometry');