`
momantang
  • 浏览: 14749 次
  • 性别: Icon_minigender_1
  • 来自: 佛山
社区版块
存档分类
最新评论

关于postgis视图中geometry项添加

阅读更多

 在视图中,不能使用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

 

分享到:
评论

相关推荐

    postgis25.zip

    这会在你的数据库中添加必要的函数、类型和视图,以便处理地理空间数据。 PostGIS支持多种地理数据类型,如`POINT`、`LINESTRING`、`POLYGON`等,以及丰富的空间操作函数,例如计算两点之间的距离、判断几何对象的...

    postgis中文说明书(Alin书签).pdf

    根据提供的文件信息,以下是关于PostGIS的详细知识点: 1. 安装与配置 - PostGIS可以通过多种方式安装,包括简版安装和获取源码后编译安装。 - 安装要求包括对操作系统、依赖库以及对PostgreSQL版本的特定要求。 - ...

    postgis-2.0.4文档

    几何列视图 (`geometry_columns`) 是一个重要的元数据表,用于注册数据库中的几何列,确保其符合 OpenGIS 标准。 **4.3.3 创建空间表** 创建空间表需要指定几何列的类型、空间参考系统等信息。这部分介绍了如何...

    postgis-3.0.pdf

    - **安装依赖项**:确保系统中已安装所有必要的软件包。 - **获取源代码**:可以通过 Git 或者下载源码包的方式获取最新的 PostGIS 源代码。 2. **从源代码编译安装**: - **配置**:使用 `./configure` 命令来...

    postgis2.4.5文档

    文档还会涵盖OpenGIS标准的使用,如SPATIAL_REF_SYSTEM表和空间参考系统,GEOMETRY_COLUMNS视图,创建空间表,手动在geometry_columns中注册几何列,确保几何符合OpenGIS标准,以及维度扩展9交集模型(DE-9IM)的...

    postgis文档

    - **GEOMETRY_COLUMNS视图**:如何使用GEOMETRY_COLUMNS视图管理空间数据。 - **创建一个带有空间数据的表**:具体步骤。 - **手动在geometry_columns表中注册几何数据类型列**:手动注册方法。 - **确保使用...

    postgis-2.5.2.pdf

    3. 使用OpenGIS标准:PostGIS严格遵循OpenGIS标准,手册中介绍了如何使用和维护SPATIAL_REF_SYSTEM表和空间参考系统,如何创建空间表以及手动在geometry_columns视图中注册几何列,确保几何对象符合OpenGIS标准。...

    PostGIS中的常用函数.docx

    此函数检查数据库中的几何字段,并确保它们正确地记录在`geometry_columns`视图中。 - **语法**:`Probe_Geometry_Columns()` **4. 给几何对象设置空间参考 (ST_SetSRID)** 此函数为给定的几何对象设置空间参考...

    postgis-3.2.pdf

    - **GEOMETRY_COLUMNS 视图 (The GEOMETRY_COLUMNS View)** - **手动注册几何列 (Manually Registering Geometry Columns)** - **空间索引 (Spatial Indexes)** - **R-tree 索引 (R-tree Indexes)** - **GiST ...

    PostGIS 2.1.8 Manual

    - **获取途径:**用户可以通过官方文档、在线论坛、邮件列表等渠道了解更多关于PostGIS的信息,包括最新的开发动态和技术支持等。 #### 二、PostGIS安装指南 **2.1 简短版安装指南** - **快速入门:**这部分提供了...

    PostGIS 2.0使用手册

    手册还教导如何使用OpenGIS标准,包括空间参考系统和GEOMETRY_COLUMNS视图的管理。 数据加载和检索是GIS中的核心环节,手册提供了使用SQL和Loader工具加载GIS数据的方法,并展示了如何使用SQL和Dumper工具检索GIS...

    postgis手册。。。

    - **GEOMETRY_COLUMNS 视图**:介绍了这个视图的功能及其在数据管理中的作用。 - **创建空间表**:指导如何在数据库中创建包含空间数据的表。 - **手动注册 geometry_columns**:说明了如何在没有自动注册的情况...

    POSTGRESQL+POSTGIS+GDAL编译

    在编译POSTGRESQL+POSTGIS+GDAL的过程中,需要安装cmake、GEOS、LibXML2、JSON-C、Proj、CURL、protobuf-cpp、protobuf-c等依赖项。这些依赖项都是开源的,且各自有其特定的功能和应用范围。 GEOS是Geometry Engine...

    postgis-node-leaf:查看传单上的所有 postgis 表

    遵循以下示例 ,当前版本加载在 geometry_columns 视图中注册的所有表去做更新原始 ryanj/restify-postGIS.git/bin/db.js 函数从客户端实例写入数据添加 socket.io 以共享 a) 连接的用户位置和/或 b) 加载的活动...

    cesium结合geoserver利用WFS服务实现图层编辑.zip

    5. **创建图层**:使用获取的WFS数据创建Cesium的`Cesium.Entity`或`Cesium.GeometryInstance`,将它们添加到Cesium Viewer的场景中。这会将地理特征显示为3D对象。 6. **实现编辑功能**:编辑图层通常包括添加、...

    ArcGIS 10新特性之Query Layer介绍

    - **PostgreSQL**:支持两种空间数据类型:ST_Geometry(需安装ArcSDE for PostgreSQL)和PostGIS geometry。 #### Query Layer的使用技巧 - **替代视图**:Query Layer可以替代数据库中的视图,实现更灵活的数据...

    cesium结合geoserver实现地图空间查询.zip

    你可以使用Cesium的`Cesium.Geometry`和`Cesium.Attributes`来表示这些特征,并添加到Cesium的Primitives集合中,使其在3D场景中显示。 7. **交互和动画**:为了提升用户体验,可以添加点击事件监听器,当用户点击...

    geotools相关jar包

    在使用这个geotools-18.4压缩包时,首先需要将其解压,然后在项目中添加相应的依赖。通常,对于Java项目,这可以通过Maven或Gradle的依赖管理工具完成。在代码中,可以利用GeoTools的类和方法来加载数据、创建地图、...

    SharpMap帮助说明文档

    3. 添加图层:SharpMap支持多种数据源,如PostGIS,你可以创建一个SharpMap.Layers.VectorLayer并将其添加到地图中。例如: ```csharp SharpMap.Layers.VectorLayer myLayer = new SharpMap.Layers.VectorLayer(...

Global site tag (gtag.js) - Google Analytics