首页 > 其他分享 >PostGIS简单使用

PostGIS简单使用

时间:2024-07-16 14:27:14浏览次数:20  
标签:几何图形 简单 geometry 创建 几何 postgis PostGIS 使用 TABLE

瀚高数据库
目录
环境
文档用途
详细信息

环境
系统平台:Linux x86-64 Red Hat Enterprise Linux 7
版本:14
文档用途
系列性的介绍PostGIS及GIS周边的相关资料,本文介绍PostGIS简单使用

详细信息
· 登录数据库:

  [postgres@localhost ~]$ psql postgres postgres

· 创建postGIS扩展:

  postgres=# create extension postgis;

· PG中创建扩展时,可以指定创建在哪个模式下,默认是public:

  postgres=# \dx

                                 List of installed extensions

    Name   | Version  |   Schema   |                        Description            

  ---------+----------+------------+------------------------------------------------------------

  plpgsql | 1.0      | pg_catalog | PL/pgSQL procedural language

  postgis | 3.2.2dev | public     | PostGIS geometry and geography spatial types and functions

上面是已经包含的扩展。

· postgis扩展会在public下创建表spatial_ref_sys,和视图geography_columns、geometry_columns;

spatial_ref_sys是坐标系汇总表,srid字段是坐标系名称代码,srtext字段是可以称为坐标系名称及定义;比较常用的坐标系有:WGS 84,国际上通用,代码4326;国内有些要求使用China Geodetic Coordinate System 2000(CGCS2000),又称中国大地坐标系统,代码4490。

geometry_columns:对当前数据库下的geometry字段的汇总,包括:其所在的数据库、模式、表、字段名称、维度、坐标系、几何类型。可以看作主要是平面类型。

geography_columns:对当前数据库下的geography字段的汇总,主要是地理(球面)类型。

1、 创建表

 CREATE TABLE roads (

   id SERIAL PRIMARY KEY,

   name VARCHAR(64),

   geom geometry(LINESTRING,3005)

  );

  CREATE TABLE global_points (

   id SERIAL PRIMARY KEY,

   name VARCHAR(64),

   location geography(POINT,4326)

  );

3005、4326都是坐标系代码,不指定会默认给一个坐标系,一般是4326。

2、创建几何表示例

· 使用默认 SRID 创建一个包含任何类型的几何图形的表:

  CREATE TABLE geoms(gid serial PRIMARY KEY, geom geometry );

· 使用默认 SRID 创建具有 2D POINT 几何图形的表:

 CREATE TABLE pts(gid serial PRIMARY KEY, geom geometry(POINT) );

· 创建一个具有 3D (XYZ) POINT 和显式 SRID 为 3005 的表:

 CREATE TABLE pts(gid serial PRIMARY KEY, geom geometry(POINTZ,3005) );

· 使用默认 SRID 创建具有 4D (XYZM) 线串几何图形的表:

 CREATE TABLE lines(gid serial PRIMARY KEY, geom geometry(LINESTRINGZM) );

· 使用 SRID 4267(NAD 1927 长纬度)创建具有 2D 多边形几何图形的表:

 CREATE TABLE polys(gid serial PRIMARY KEY, geom geometry(POLYGON,4267) );

· 一个表中可以有多个几何列。这可以在创建表时指定,也可以使用 ALTER TABLE SQL 语句添加列。本示例添加一个可以保存 3D 线串的列:

 ALTER TABLE roads ADD COLUMN geom2 geometry(LINESTRINGZ,4326);

3、提供的函数:

函数数量太多,下面列出几个函数分类:

· 表管理函数,例如:返回几何字段的坐标系;增加几何字段

· 几何构造函数,例如:使用坐标创建点

· 几何体访问函数,例如:返回几何图形的边界

· 几何编辑函数,例如:向线中加一个点

· 几何验证,例如:验证几何图形是否有效

· 空间参考系统函数,例如:给几何图形设置坐标系

· 几何输入:

WKT(Well-Known Text),从文本构建几何类型

WKB(Well-Known Binary),从二进制构建几何类型

从其他格式构建集合类型,例如:从geojson输出 PostGIS 几何对象

· 几何输出,与几何输入相反

· 拓扑关系,例如:计算两个几何图形是否相交

· 距离关系,例如:计算点是否在定义的圆内

· 测量功能,例如:计算多边形的面积

· 覆盖函数,例如:计算两个几何图形相交(不相交)的部分

· 几何处理,例如:计算几何图形的几何中心

· 仿射变换,例如:围绕原点、X、Y、Z轴旋转几何图形

· 边界框函数,例如:返回几何图形的X、Y、Z的最大最小值

· 线性参照,例如:截取线的一部分

· 版本函数,返回依赖库的版本

4、相关扩展:

· postgis:核心,所有扩展的基础

· postgis_raster:栅格数据功能,postgis自带

· postgis_topology:拓扑功能,postgis自带

· postgis_tiger_geocoder:(postgis自带)对TIGER数据的地理编码功能,依赖fuzzystrmatch(字符串模糊查询,pg自带)扩展,以及address_standardizer(提供地址标准化功能,可选,,postgis自带)、address_standardizer_data_us(地址标准化示例数据集,可选,postgis自带)Extension。TIGER(Topologically Integrated Geographic Encoding And Reference,拓扑集成的地理编码和参考)是美国人口普查局的GIS开放数据,提供了美国全国的行政区划、交通道路、水系等空间数据。

· postgis_sfcgal:主要是集成了CGAL(Computational Geometry Algorithms Library,计算几何算法库),提供三维空间数据的空间运算;自行安装

· pgrouting:提供“路径规划”功能;自行安装

· ogr_fdw:利用OGR读取外部的GIS数据(例如Shepfile);自行安装

· pointcloud:点云数据支持,很火的无人驾驶有可能就用到了此技术;自行安装

· postgis安装完后提供的命令行工具有:pgsql2shp,raster2pgsql,shp2pgsql

5、相关工具:

· ArcGis,不支持高版本的PG

· SuperMap,国内,可以网络授权

· QGIS,开源,对标ArcGis

· GeoScene,利用ArcGis技术开发国内的GIS工具

· GDAL,栅格和矢量地理空间数据格式的转换库,还带有各种有用的命令行实用程序,用于数据转换和处理

· GeoServer,GIS WEB服务

标签:几何图形,简单,geometry,创建,几何,postgis,PostGIS,使用,TABLE
From: https://blog.csdn.net/pg_hgdb/article/details/140460968

相关文章

  • vue3中如何使用vuex
    在Vue3中,可以使用Vuex来进行状态管理。下面是在Vue3中使用Vuex的步骤:安装Vuex:使用npm或yarn命令行工具安装Vuex库。npminstallvuex创建Vuexstore:在src文件夹中创建一个store文件夹,并在其中创建一个index.js文件。在index.js文件中,引入Vue和Vuex库,创建一个新的Store实......
  • (开源)都进来!简单易懂、功能强大的权限+可视化流程管理系统
    1、预览地址:http://139.155.137.144:90122、qq群:801913255一、前言随着网络的发展,企业对于信息系统数据的保密工作愈发重视,不同身份、角色对于数据的访问权限都应该大相径庭。列如1、不同登录人员对一个数据列表的可见度是不一样的,如数据列、数据行、数据按钮等......
  • 使用RocketMQ 实现基于标签过滤的消息队列生产和消费
    在分布式系统中,消息队列(MessageQueue,MQ)是一种常见的通信方式,它能够解耦系统组件,提供异步通信,提升系统的伸缩性和可靠性。ApacheRocketMQ是一款开源的分布式消息中间件,具有高性能、低延迟、高可靠性和高可用性等特点。本文将介绍如何使用ApacheRocketMQ实现基于标签过......
  • HAL库源码移植与使用之FSMC (例子加思路与理解,万字良心保证你能听懂)
    FMC和FSMC是一样的东西,只是FMC更可控地址更多又可以驱动SDRAM,用法都一样!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!总结:其实fsmc更像是一个有着特定转换时序功能的寄存器,每个fsmc映射在芯片内存里的地址都有一个这样的寄存器,你往这个映射的地址里赋值,这个赋值信息先到达对应fsmc寄存器,他不会像普通寄存器一样直接控制......
  • HAL库源码移植与使用之驱动LCD屏
    LCD屏会有烧屏残影的风险,但因其价格便宜他非常适合用于单片机显示显示屏分为以下几种:他的组成部包含玻璃基板、背光、驱动IC等LCD接口的种类MCU很简单,连51单片机都能驱动,但无法频繁刷新,一般有着20几个引脚引出的就是MCU接口我们常用的是就是MCU,下面讲的也是LCD屏幕MCU驱动......
  • HAL库源码移植与使用之正点原子OLED使用解析
    正点原子的OLED是使用SSD1306来驱动的,并设计了多种通讯方式,通过背后的焊点来选择这里以正点原子开发板最常用的8080并口通讯来讲引脚定义各正点原子开发板对OLED的接线8080时序图发送数据示例代码voidoled_wr_byte(uint8_tdata,uint8_tcmd){ OLED_RS(cmd); /......
  • 电路仿真软件使用七大技巧,让你秒变电子工程师!
    在电子工程领域,电路仿真软件无疑是工程师们不可或缺的工具。但是,你是否已经充分掌握了这些软件的使用技巧,让它们在项目中发挥最大效能呢?今天,就让我们一起来揭秘电路仿真软件使用的七大技巧,助你秒变电子工程师!一、选择合适的仿真软件首先,我们要明确自己的需求和目标。不同的电......
  • 工程化Vue使用
    目录环境准备Vue项目-创建Vue项目开发流程API风格案例推荐阅读:VUE-局部使用环境准备介绍:create-vue是Vue官方提供的最新的脚手架工具,用于快速生成一个工程化的Vue项目。create-vue提供了如下功能:统一的目录结构本地调试热部署单元测试集成打包依赖环境:N......
  • (02)Unity使用在线AI大模型(调用Python)
    目录一、概要二、改造Python代码三、制作Unity场景一、概要    查看本文需完成(01)Unity使用在线AI大模型(使用百度千帆服务)的阅读和实操,本文档接入指南的基础上使用Unity+C#调用百度千帆大模型,需要阅读者有一定的Unity开发基础。此功能本质上就是拿Python大模......
  • 《使命召唤16:现代战争》风灵月影修改器全面使用攻略:体验真正的现代战争
    使用《使命召唤16:现代战争》的风灵月影修改器可以极大地改变游戏体验,提供一系列强大的功能,从无限生命到超级精准度等。以下是一个全面的使用攻略,帮助你更好地掌握和运用这些修改器功能:准备阶段1.下载与安装:•从可信赖的网站下载适用于《使命召唤16:现代战争》的风灵月影修......