通过容器化部署PostGIS,可以快速搭建空间数据库环境,简化配置流程,并确保环境一致性。 本文档详细介绍了如何使用Docker容器化部署PostGIS,包括环境准备、镜像拉取、容器部署、功能测试、生产环境建议及故障排查等内容。 容器部署基本部署使用以下命令启动一个基本的PostGIS容器实例:展开代码语言:BashAI代码解释dockerrun-d\--namepostgis\-p5432:5432\-ePOSTGRES_PASSWORD #添加到crontab,每天凌晨3点执行备份03***/path/to/backup-postgis.sh监控配置建议集成监控工具,监控数据库运行状态:使用DockerStats:实时查看容器资源使用情况展开代码语言 PostGIS的Docker容器化部署方案,从环境准备、镜像拉取、容器部署到功能测试,提供了完整的操作指南。
PostGIS特性 1、PostGIS支持所有的空间数据类型,这些类型包括:点(POINT)、线(LINESTRING)、多边形(POLYGON)、多点 (MULTIPOINT)、多线(MULTILINESTRING PostGIS支持所有的对象表达方法,比如WKT和WKB。 2、PostGIS支持所有的数据存取和构造方法,如GeomFromText()、AsBinary(),以及GeometryN()等。 3、PostGIS提供简单的空间分析函数(如Area和Length)同时也提供其他一些具有复杂分析功能的函数,比如Distance。 4、PostGIS提供了对于元数据的支持,如GEOMETRY_COLUMNS和SPATIAL_REF_SYS,同时,PostGIS也提供了相应的支持函数,如AddGeometryColumn和DropGeometryColumn 6、PostGIS提供了空间操作符(如Union和Difference)用于空间数据操作。 比如,Union操作符融合多边形之间的边界。
| 2.2.1 | | PostGIS SFCGAL functions postgis | 2.2.1 0,4 0,4 4,0 4,0 0),(1 1, 2 1, 2 2, 1 2,1 1)) • MULTIPOINT(0 0,1 2) • MULTILINESTRING((0 0,1 1,1 2),(2 3,3 4,0 4,0 0),(1 1,2 1,2 2,1 2,1 1)), ((-1 -1,-1 -2,-2 -2,-2 -1,-1 -1))) • GEOMETRYCOLLECTION(POINT(2 3) ,LINESTRING(2 3,3 4)) 。。。。。。 PostGIS 2.0 Manual PostGIS 在 O2O应用中的优势
GitHub postgis/postgis PostGreSQL(三)PostGIS PostGreSQL(四)PostGIS-空间数据存储 PostGreSQL(五)PostGIS-常用函数 , 2 2, 1 2,1 1)) 多边形有一个内部的”孔洞(hole)” 多点:MULTIPOINT((0 0),(1 2)) 多线:MULTILINESTRING((0 0,1 1,1 2),(2 3,3 ,LINESTRING(2 3,3 4)) 2.1.2 EWKT、EWKB和Canonical格式 PostGIS自身又在WKT和WKB基础上扩展实现了EWKT和EWKB来满足更复杂的场景需求,EWKT 和EWKB相比OGC WKT和WKB格式主要的扩展有3DZ、3DM、4D坐标和内嵌空间参考支持。 2.1.3 SQL-MM格式 SQL-MM格式定义了一些插值曲线,这些插值曲线和EWKT有点类似,也支持3DZ、3DM、4D坐标,但是不支持嵌入空间参考。
3、选择合适版本 网页下拉找到 PostgreSQL Yum Repository ,选择安装的版本,之后复制安装命令并执行 ? 将监听修改为监听所有主机的请求 vim /var/lib/pgsql/12/data/postgresql.conf 搜索配置位置 :/listen,添加以下代码 listen_addresses = '*' 3、 3+) CREATE EXTENSION postgis_raster; -- Enable Topology CREATE EXTENSION postgis_topology; -- Enable PostGIS Advanced 3D -- and other geoprocessing algorithms -- sfcgal not available with all distributions 3、使用空间函数 -- Create table with spatial column CREATE TABLE mytable ( id SERIAL PRIMARY KEY, geom GEOMETRY
说明 在安装完Postgresql以后,打postgis扩展时,报错 ERROR: could not load library "/usr/pgsql-12/lib/rtpostgis.so": / file libcrypto.so.10 with link time reference 出现问题环境 centOS7.4 postgresql版本12,小版本号会随官方更新;遇到问题的是12.5 postgis2.5 推测原因 装机无数,postgis版本不变,而postgresql小版本会更新,所以推测是postgresql12.5版本引起的 查找问题 在rtpostgis报错路径下,可以找到文件 百度大佬说和 ln -s /usr/lib64/libcrypto.so.1.0.2k /usr/lib64/libcrypto.so.10 回到第8步验证,如果链接正确到1.0.2,再回到postgresql打postgis
3、判断两个geometry是否相交 通过函数st_intersects(geom,geom)或st_intersects(wkt,wkt)判断两个geometry是否相交,返回是布尔型的true或者false
在之前我也写过一篇使用PostGIS进行数据处理的文章:用线裁剪面之-PostGIS版本。PostGIS本身是个空间数据库,其本身包含很多的函数。
为postgresql安装postgis扩展模块: 1、安装postgis 2、在指定数据库下执行下面语句 CREATE EXTENSION postgis 3、验证:执行下面语句不报错即可 SELECT
概述: 在进行地理信息系统开发的过程中,常用的空间数据库有esri的sde,postgres的postgis以及mySQL的mysql gis等等,在本文,给大家介绍的是有关postgis的一些常用函数的意思以及使用 几何物体的坐标可以是2D(x,y),3D(x,y,z),4D(x,y,z,m),加上一个属于线性参照系统的m值。 以下为几何WKT字串样例: POINT(6 10) LINESTRING(3 4,10 50,20 25) POLYGON((1 1,5 1,5 5,1 5,1 1),(2 2,2 3,3 3,3 2,2 2)) MULTIPOINT(3.5 5.6, 4.8 10.5) MULTILINESTRING((3 4,10 50,20 25),(-5 -8,-10 -8,-15 -4)) MULTIPOLYGON (((1 1,5 1,5 5,1 5,1 1),(2 2,2 3,3 3,3 2,2 2)),((6 3,9 2,9 4,6 3))) GEOMETRYCOLLECTION(POINT(4 6),LINESTRING
图1 2 geopandas与PostGIS进行交互 为了能在geopandas中与postgresql和PostGIS建立连接,请确保以下3个库已经安装: pip install sqlalchemy , psycopg2, geoalchemy2 接下来我们需要保证postgresql中存在可以连接的空间数据库,在「pgAdmin」界面内新建数据库,譬如这里我们新建数据库demo: 图2 图3 使用到的API为to_postgis(),其主要参数如下: ❝「name」:字符型,用于指定推送到PostGIS后的表名称 「con」:sqlalchemy.engine.Engine对象,用于建立与数据库的连接 读取数据 从PostGIS中读取数据要用到另一个API,对应geopandas的read_postgis(),其主要参数如下: ❝「sql」:字符型,对应从空间数据库中提取数据的SQL语句 「con」: 」:字符型或列表,用于指定将哪些列作为索引 「parse_dates」:列表,用于预解析时间类型数据 ❞ 接着我们从PostGIS中读取刚才写入的表: 图10 简简单单,我们就实现了与PostGIS的交互
上一篇博文PostGIS导入导出ESRI Shapefile数据介绍了如何导入空间矢量数据到PostgreSQL中,紧接上一篇,本文将介绍如何使用PostGIS导入导出空间栅格数据。 PostGIS提供了raster2pgsql工具用于栅格数据的导入(可以使用man raster2pgsql命令查看帮助文档)。 ---- 如果想要导出数据,可以使用PostGIS提供的内置函数。其中ST_AsGDALRaster 是一个通用性的函数,可以导出为GDAL支持的任意格式。 : http://postgis.net/docs/postgis_gdal_enabled_drivers.html http://postgis.net/docs/manual-2.2/postgis_enable_outdb_rasters.html ST_AsTIFF函数参见:http://postgis.net/docs/RT_ST_AsTIFF.html。
如果我们有一批以文件存储的影像数据如何利用PostGIS批量的导出到PostgreSQL数据库中进行管理呢? (单个数据的导入参见我上篇博文:PostGIS导入导出栅格数据) 我的实验环境如下: OS: Ubuntu 16.04 LTS PostgreSQL:9.5.5 PostGIS: 2.2 -s 4326 -I -C -M ./*.tif -F -t 256x256 staging.tmean_19 | psql -h localhost -p 5432 -U postgres -d postgis_in_action existing database conn = psycopg2.connect('host=localhost port=5432 user=postgres password=password dbname=postgis_in_action
PostGIS安装不仅依赖于PostgreSQL,还依赖于很多插件: GEOS几何对象库 GDAL栅格功能 LibXML2 LIBJSON PostGIS的特点如下: PostGIS支持所有的空间数据类型 PostGIS支持所有的对象表达方法,比如WKT和WKB。 PostGIS支持所有的数据存取和构造方法,如GeomFromText()、AsBinary(),以及GeometryN()等。 3.2.1 在testdb数据库下安装PostGIS扩展 安装PostGIS扩展: CREATE EXTENSION postgis; 验证PostGIS扩展是否安装成功: SELECT postgis_full_version 还可以安装其它的一些扩展: -- Enable Topology CREATE EXTENSION postgis_topology; -- Enable PostGIS Advanced 3D-- and 51.508)',4326),'London, England'), (2,ST_GeomFromText('POINT(-81.233 42.983)',4326),'London, Ontario'), (3,
但地理数据处理,是一个广阔的世界,除此之外,亦有很多优秀的软件可供我们使用,或者你可以写些代码来进行数据的处理与分析,今天主要介绍空间数据库——PostGIS。 ? PostGIS可以做什么 可能有很多人(包括我)都会觉得,数据库嘛,不就是存数据的嘛,怎么还跟数据处理扯上关系了? 直到有一天,单位的小哥哥看我处理数据,我们在交流中我发现,原来PostGIS有这么多的函数,有这么多的功能,竟然这么强大。 从空间分析运算,到属性处理,PostGIS都有相关的函数,并且在数据库中的这些运算,非常的高效。 这么说吧,如果要更新某个表的某个字段(我觉得表越大,在数据库进行计算的优势越明显),分别用ArcMap与pg来做,可能用ArcMap软件打开属性表的时间,PostGIS都已经算完了,没办法,就是这么高效
|导言:PostGIS是业界功能最全面,能力最强大的空间地理数据库引擎。现实业务开发中,经常会遇到有附近的某某的需求,如何快速实现呢,PostGIS+PostgreSQL可以帮到你。 本文就讲解如何通过PostGIS实现附近的对象这个功能,实际很简单就一条SQL可以搞定。 首先,我们准备一个PostgreSQL数据库实例,并且此数据库实例需要支持PostGIS插件,版本不挑剔,此为基本能力。 第一步:创建插件,登录到数据库实例中,在业务database执行如下命令: \c test CREATE EXTENSION postgis; CREATE EXTENSION postgis_topology or replace function random_string(length integer) returns text as $$ declare chars text[] := '{0,1,2,3,4,5,6,7,8,9
对于上一篇PostGIS批量导入栅格数据中导入的气温数据,如何查询指定范围的气温呢? 比如,给定了经纬度范围,如何取出给定月份的数据? existing database conn = psycopg2.connect('host=localhost port=5432 user=postgres password=post1231 dbname=postgis_in_action
PostGIS作为PostgreSQL数据库的空间扩展,提供了对空间数据管理的支持。 : 2.2 (安装好PostGIS,并在数据库中启用PostGIS扩展以后,可以在psql命令行中使用SELECT PostGIS_Version();或者SELECT PostGIS_Full_Version 然后,使用如下命令添加UbuntuGIS的PPA用于安装PostGIS扩展。 postgis 安装好了以后,使用sudo -u postgres psql命令可以进入psql交互环境。 \c postgis_in_action 然后在postgis_in_action数据库中启用PostGIS扩展。
前置环境 Postgresql数据库(PG数据库) PG数据库的PostGIS扩展 PG数据库的Pgrouting扩展 需要上述的环境才能进行路径导航,环境的搭建可以参阅 详细内容 1.引入Maven所需依赖 * @param lat 纬度 * @param code 地理编码 * @return java.lang.String * @date :2022/12/3 3)<->geom limit 1", nativeQuery = true) String queryPointLine(Double lon, Double lat, Integer code 3,?4,? 3)<->geom limit ?
1 3个节点: k8s-master k8s-node1 k8s-node2 2 yum install -y docker 3 所有节点安装kubelet kubeadm kubectl