在PostGIS文档中,它说使用SQL创建空间表有两个步骤:
- 创建一个普通的非空间表。
- 使用OpenGIS“ AddGeometryColumn”功能将空间列添加到表中。
如果遵循这些示例,则将创建一个terrain_points
像这样的表:
CREATE TABLE terrain_points (
ogc_fid serial NOT NULL,
elevation double precision,
);
SELECT AddGeometryColumn('terrain_points', 'wkb_geometry', 3725, 'POINT', 3 );
另外,如果我查看pgAdmin III中的现有表,似乎我可以像这样创建相同的表:
CREATE TABLE terrain_points
(
ogc_fid serial NOT NULL,
wkb_geometry geometry,
elevation double precision,
CONSTRAINT terrain_points_pk PRIMARY KEY (ogc_fid),
CONSTRAINT enforce_dims_wkb_geometry CHECK (st_ndims(wkb_geometry) = 3),
CONSTRAINT enforce_geotype_wkb_geometry CHECK (geometrytype(wkb_geometry) = 'POINT'::text OR wkb_geometry IS NULL),
CONSTRAINT enforce_srid_wkb_geometry CHECK (st_srid(wkb_geometry) = 3725)
)
WITH (
OIDS=FALSE
);
ALTER TABLE terrain_points OWNER TO postgres;
-- Index: terrain_points_geom_idx
-- DROP INDEX terrain_points_geom_idx;
CREATE INDEX terrain_points_geom_idx
ON terrain_points
USING gist
(wkb_geometry);
这两种方法产生相同的结果吗?基于pgAdmin III的版本是否更加冗长,并且AddGeometryColumn
默认情况下会执行某些操作?
我希望您不要抓住栅格的每个像素并将其存储为一个点:)
—
Ragi Yaser Burhum 2011年
一点都不。:)但是我将在一些轮廓线串上使用ST_DumpPoints来填充此表。
—
BenjaminGolder