在视图中,不能使用AddGeometryColumn建立geometry字段,postgis参考中明确指出了:在sql视图和批量插入中这两种情况下,你需要把一个geometry字段注册给一个含geometry字段的表,但是此时不能通过AddGeometryColumn实现(
翻译有点烂)。原文如下:
(
PostGIS 1.5.1 Manual 写道
Two of the cases where you want a geometry column to be registered in the geometry_columns table, but you can't use AddGeometryColumn, is in the case of SQL Views and bulk inserts. For these cases,
),解决办法如下:
PostGIS 1.5.1 Manual 写道
4.3.4. Manually Registering Geometry Columns in geometry_columns
The AddGeometryColumn() approach creates a geometry column and also registers the new column in the geometry_columns table. If your software utilizes geometry_columns, then any geometry columns you need to query by must be registered in this table.
Two of the cases where you want a geometry column to be registered in the geometry_columns table, but you can't use AddGeometryColumn, is in the case of SQL Views and bulk inserts. For these cases, you must register the column in the geometry_columns table manually.
Below is a simple script to do that.
--Lets say you have a view created like this
CREATE VIEW public.vwmytablemercator AS
SELECT gid, ST_Transform(the_geom,3395) As the_geom, f_name
FROM public.mytable;
--To register this table in AddGeometry columns - do the following
INSERT INTO geometry_columns(f_table_catalog, f_table_schema, f_table_name, f_geometry_column, coord_dimension, srid, "type")
SELECT '', 'public', 'vwmytablemercator', 'the_geom', ST_CoordDim(the_geom), ST_SRID(the_geom), GeometryType(the_geom)
FROM public.vwmytablemercator LIMIT 1;
--Lets say you created a derivative table by doing a bulk insert
SELECT poi.gid, poi.the_geom, citybounds.city_name
INTO myschema.myspecialpois
FROM poi INNER JOIN citybounds ON ST_Intersects(citybounds.the_geom, poi.the_geom);
--Create index on new table
CREATE INDEX idx_myschema_myspecialpois_geom_gist
ON myschema.myspecialpois USING gist(the_geom);
--To manually register this new table's geometry column in geometry_columns
-- we do the same thing as with view
INSERT INTO geometry_columns(f_table_catalog, f_table_schema, f_table_name, f_geometry_column, coord_dimension, srid, "type")
SELECT '', 'myschema', 'myspecialpois', 'the_geom', ST_CoordDim(the_geom), ST_SRID(the_geom), GeometryType(the_geom)
FROM public.myschema.myspecialpois LIMIT 1;
附原文地址:http://www.postgis.org/documentation/manual-1.5/ch04.html#Manual_Register_Spatial_Column
分享到:
相关推荐
这会在你的数据库中添加必要的函数、类型和视图,以便处理地理空间数据。 PostGIS支持多种地理数据类型,如`POINT`、`LINESTRING`、`POLYGON`等,以及丰富的空间操作函数,例如计算两点之间的距离、判断几何对象的...
根据提供的文件信息,以下是关于PostGIS的详细知识点: 1. 安装与配置 - PostGIS可以通过多种方式安装,包括简版安装和获取源码后编译安装。 - 安装要求包括对操作系统、依赖库以及对PostgreSQL版本的特定要求。 - ...
几何列视图 (`geometry_columns`) 是一个重要的元数据表,用于注册数据库中的几何列,确保其符合 OpenGIS 标准。 **4.3.3 创建空间表** 创建空间表需要指定几何列的类型、空间参考系统等信息。这部分介绍了如何...
- **安装依赖项**:确保系统中已安装所有必要的软件包。 - **获取源代码**:可以通过 Git 或者下载源码包的方式获取最新的 PostGIS 源代码。 2. **从源代码编译安装**: - **配置**:使用 `./configure` 命令来...
文档还会涵盖OpenGIS标准的使用,如SPATIAL_REF_SYSTEM表和空间参考系统,GEOMETRY_COLUMNS视图,创建空间表,手动在geometry_columns中注册几何列,确保几何符合OpenGIS标准,以及维度扩展9交集模型(DE-9IM)的...
- **GEOMETRY_COLUMNS视图**:如何使用GEOMETRY_COLUMNS视图管理空间数据。 - **创建一个带有空间数据的表**:具体步骤。 - **手动在geometry_columns表中注册几何数据类型列**:手动注册方法。 - **确保使用...
3. 使用OpenGIS标准:PostGIS严格遵循OpenGIS标准,手册中介绍了如何使用和维护SPATIAL_REF_SYSTEM表和空间参考系统,如何创建空间表以及手动在geometry_columns视图中注册几何列,确保几何对象符合OpenGIS标准。...
此函数检查数据库中的几何字段,并确保它们正确地记录在`geometry_columns`视图中。 - **语法**:`Probe_Geometry_Columns()` **4. 给几何对象设置空间参考 (ST_SetSRID)** 此函数为给定的几何对象设置空间参考...
- **GEOMETRY_COLUMNS 视图 (The GEOMETRY_COLUMNS View)** - **手动注册几何列 (Manually Registering Geometry Columns)** - **空间索引 (Spatial Indexes)** - **R-tree 索引 (R-tree Indexes)** - **GiST ...
- **获取途径:**用户可以通过官方文档、在线论坛、邮件列表等渠道了解更多关于PostGIS的信息,包括最新的开发动态和技术支持等。 #### 二、PostGIS安装指南 **2.1 简短版安装指南** - **快速入门:**这部分提供了...
手册还教导如何使用OpenGIS标准,包括空间参考系统和GEOMETRY_COLUMNS视图的管理。 数据加载和检索是GIS中的核心环节,手册提供了使用SQL和Loader工具加载GIS数据的方法,并展示了如何使用SQL和Dumper工具检索GIS...
- **GEOMETRY_COLUMNS 视图**:介绍了这个视图的功能及其在数据管理中的作用。 - **创建空间表**:指导如何在数据库中创建包含空间数据的表。 - **手动注册 geometry_columns**:说明了如何在没有自动注册的情况...
在编译POSTGRESQL+POSTGIS+GDAL的过程中,需要安装cmake、GEOS、LibXML2、JSON-C、Proj、CURL、protobuf-cpp、protobuf-c等依赖项。这些依赖项都是开源的,且各自有其特定的功能和应用范围。 GEOS是Geometry Engine...
遵循以下示例 ,当前版本加载在 geometry_columns 视图中注册的所有表去做更新原始 ryanj/restify-postGIS.git/bin/db.js 函数从客户端实例写入数据添加 socket.io 以共享 a) 连接的用户位置和/或 b) 加载的活动...
5. **创建图层**:使用获取的WFS数据创建Cesium的`Cesium.Entity`或`Cesium.GeometryInstance`,将它们添加到Cesium Viewer的场景中。这会将地理特征显示为3D对象。 6. **实现编辑功能**:编辑图层通常包括添加、...
- **PostgreSQL**:支持两种空间数据类型:ST_Geometry(需安装ArcSDE for PostgreSQL)和PostGIS geometry。 #### Query Layer的使用技巧 - **替代视图**:Query Layer可以替代数据库中的视图,实现更灵活的数据...
你可以使用Cesium的`Cesium.Geometry`和`Cesium.Attributes`来表示这些特征,并添加到Cesium的Primitives集合中,使其在3D场景中显示。 7. **交互和动画**:为了提升用户体验,可以添加点击事件监听器,当用户点击...
在使用这个geotools-18.4压缩包时,首先需要将其解压,然后在项目中添加相应的依赖。通常,对于Java项目,这可以通过Maven或Gradle的依赖管理工具完成。在代码中,可以利用GeoTools的类和方法来加载数据、创建地图、...
3. 添加图层:SharpMap支持多种数据源,如PostGIS,你可以创建一个SharpMap.Layers.VectorLayer并将其添加到地图中。例如: ```csharp SharpMap.Layers.VectorLayer myLayer = new SharpMap.Layers.VectorLayer(...