PostGIS

基于Pgpool搭建PostgreSQL11的集群

南楼画角 提交于 2020-04-21 04:22:19
基于Pgpool-II4.1.0搭建PostgreSQL11集群 Pgpool介绍 环境准备 搭建配置 服务器配置 pgpool安装 PostgreSQL数据库配置 pgpool配置 相关脚本 启动 停止 测试 负载均衡测试 自动故障转移测试 写在最后 关于作者 相关链接 该篇文章主要是介绍基于pgpool4.1以及PostgreSQL的流复制实现PostgreSQL的读写分离以及高可用,配置参考 Pgpool-II官方文档 。使用版本为Pgpool4.1、PostgreSQL11.6。 文章略长。。。。。。。。。。。虽然我也不想 Pgpool介绍 pgpool相关介绍不在该文章中,需要者可以参考我的另一篇文章。传送门: pgpool介绍 环境准备 本次使用三台CentOS7.3的服务器来搭建集群,首先在三台服务器上部署PostgreSQL11.6版本的数据库,部署教程大家可以网上自行查找。具体规划如下: Hostname IP Address Virtual IP 192.168.111.6 server1 192.168.111.1 server2 192.168.111.2 server3 192.168.111.3 架构图参考官网: 搭建配置 服务器配置 故障转移、在线恢复时需要ssh到其它服务器执行命令,故需要配置服务器之间无密码ssh登录

CentOS安装PostGIS

老子叫甜甜 提交于 2020-04-06 10:00:46
PostGIS是PostgreSQL的一个插件,需要注意其版本匹配关系,详细的版本匹配关系可以在官网( https://trac.osgeo.org/postgis/wiki/UsersWikiPostgreSQLPostGIS )上找到。 1、安装epel yum -y install epel-release 2、安装PostGIS 版本号格式为:_前为postgis版本,后面为postgresql版本。 yum install postgis2_96 这里匹配的是PostGIS2.4版本。 3、新建扩展 安装完postgis后,需要先激活数据库上的PostGIS功能,然后才能存储空间数据,才可以使用空间数据库功能。 切换到操作系统的postgres用户 sudo -i -u postgres 连接到数据库 -bash-4.2$ psql -d scgis 新建扩展 scgis=# CREATE EXTENSION postgis; 附完整的扩展 -- Enable PostGIS (includes raster) CREATE EXTENSION postgis; -- Enable Topology CREATE EXTENSION postgis_topology; -- Enable PostGIS Advanced 3D -- and other

postgis 几何抽稀 减少点数

て烟熏妆下的殇ゞ 提交于 2020-04-05 17:40:49
postgis 几何抽稀 ST_Simplify(geometry geomA, float tolerance, boolean preserveCollapsed) preserveCollapsed 参数可以减少点数的删除 ST_SimplifyPreserveTopology(geometry geomA, float tolerance) 与ST_Simplify类似 将避免创建无效的派生几何(特别是多边形) ST_SimplifyPreserveTopology可以防止过度简化。圆最多可以变成正方形 而 ST_Simplify可以将一个圆变成一个三角形 由于简化是逐对象进行的 所以会生成多个分部件 需要使用ST_Multi函数将单个的geometry 转化为 Multi* tolerance 是公差 tolerance 可以为小数 实际用到时候 可能要选择一个非常小的值 0.00001 因为两个点之间的经纬度可能很小 st_astext(st_simplify(ST_GeomFromText(data), 0.00001)) 可以通过转换使用米为单位去过滤 相当于 20米范围内一个点 st_astext(st_transform(st_multi(ST_SimplifyPreserveTopology(st_transform(st_geomfromtext("data

Migrate to GeoDjango Points from longitude/latitude?

馋奶兔 提交于 2020-03-22 10:35:15
问题 Using the Django ORM, Postgres/PostGIS, and Django migrations, how do I convert my existing longitude and latitude float fields into a single GeoDjango Point field? I was looking for something like Location.objects.update(point=(F('longitude'), F('latitude'))) . 回答1: assuming you have an object with a PointField like from django.contrib.gis.db import models class Location(models.Model): longitude = models.FloatField() latitude = models.FloatField() point = models.PointField(geography=True,

Migrate to GeoDjango Points from longitude/latitude?

随声附和 提交于 2020-03-22 10:35:10
问题 Using the Django ORM, Postgres/PostGIS, and Django migrations, how do I convert my existing longitude and latitude float fields into a single GeoDjango Point field? I was looking for something like Location.objects.update(point=(F('longitude'), F('latitude'))) . 回答1: assuming you have an object with a PointField like from django.contrib.gis.db import models class Location(models.Model): longitude = models.FloatField() latitude = models.FloatField() point = models.PointField(geography=True,

PostGis的几个简单应用算法

爱⌒轻易说出口 提交于 2020-03-07 00:18:05
1 点的最近点查询 select smoke, ST_AsGeoJSON(geom) as geom, company, address from power t order by ST_Distance(t.geom,ST_GeometryFromText('POINT(113.77990722656251 34.63320791137959)',4326)) limit 1 4326为坐标系编号;原理是根据距离找最近的一个记录 2.根据点在数据库里查询在哪个多边形中 SELECT id, geom from dt_cy where ST_Contains(geom, st_geometryfromtext('POINT(113.458729 34.816974)',4326)); 3.使用knn(最近邻法),计算距离多边形最近的点 select * from teatcyd ORDER BY teatcyd.geom <-> (SELECT geom from dt_cy where gid =74833) limit 1 4.创建索引(通用索引)提升查询效率 CREATE INDEX teatcyd_geom_idx ON teatcyd USING GIST (shape); 来源: oschina 链接: https://my.oschina.net/boonya

PostGIS extension undefined symbol: GEOSCoordSeq_getXY

只愿长相守 提交于 2020-03-04 23:03:48
问题 I am trying to create postgis 3.0 extension on postgresql12 on centos7 (both are installed using yum native rpms) yum install postgis30_12.x86_64 but i am getting different errors with GEOS. currently the error i am getting is postgres=# create extension postgis; ERROR: could not load library "/usr/pgsql-12/lib/postgis-3.so": /usr/pgsql-12/lib/postgis-3.so: undefined symbol: GEOSCoordSeq_getXY geos-config --version 3.8.0 回答1: The PostGIS binary you are using was built with a GEOS version that

[zz] 安装PostGIS(Linux篇)

倾然丶 夕夏残阳落幕 提交于 2020-03-03 14:12:58
0.安装PostgreSQL数据库 参考 安装PostgreSQL数据库(Linux篇) 。 1.安装proj4 #tar zxvf proj-4.8.0.tar.gz #cd proj-4.8.0 #./configure --prefix=/opt/proj-4.8.0 #make #make install #ls /opt/proj-4.8.0 编辑文件/etc/ld.so.conf.d/proj-4.8.0.conf #vi /etc/ld.so.conf.d/proj-4.8.0.conf 添加以下内容 /opt/proj-4.8.0/lib 保存并退出vi 执行以下命令,将proj4的so库的路径添加到系统中 #ldconfig 2.安装geos #tar jxvf geos-3.3.7.tar.bz2 #cd geos-3.3.7 #./configure --prefix=/opt/geos-3.3.7 #make #make install 编辑文件/etc/ld.so.conf.d/geos-3.3.7.conf #vi /etc/ld.so.conf.d/geos-3.3.7.conf 添加以下内容 /opt/geos-3.3.7/lib 保存并退出vi 执行以下命令,将proj4的so库的路径添加到系统中 #ldconfig 3. 安装postgis

PostGIS空间数据库SRID背景知识

為{幸葍}努か 提交于 2020-02-29 12:02:16
背景 《PostGIS 坐标转换(SRID)的边界问题引发的背景知识 - ST_Transform》 一文,介绍了使用某个坐标系时,计算国内某个点到某个点的距离出现了负数。 背景知识和坐标系有关。 什么是地理坐标系,什么是投影坐标系? 参考此文: http://www.cnblogs.com/jetz/archive/2005/03/29/127547.html 原文 1、首先理解地理坐标系(Geographic coordinate system),Geographic coordinate system直译为地理坐标系统,是以经纬度为地图的存储单位的。 很明显,Geographic coordinate system是球面坐标系统。我们要将地球上的数字化信息存放到球面坐标系统上,如何进行操作呢?地球是一个不规则的椭球,如何将数据信息以科学的方法存放到椭球上? 这必然要求我们找到这样的一个椭球体。这样的椭球体具有特点: 可以量化计算的。具有长半轴,短半轴,偏心率。 以下几行便是Krasovsky_1940椭球及其相应参数。 Spheroid : Krasovsky_1940 Semimajor Axis : 6378245 .000000000000000000 Semiminor Axis : 6356863 .018773047300000000 Inverse

centos安装postgresql和postgis

不羁岁月 提交于 2020-02-27 14:43:27
1、安装步骤 -- 安装对应的rpm文件(其他系统的rpm包,请自行到https://yum.postgresql.org/下载) yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm -- 查询postgresql的版本 yum search postgresql -- 安装对应的版本(我安装的是postgresql9.6+postgis2.4) yum -y install postgresql96.x86_64 postgresql96-server.x86_64 postgresql96-devel.x86_64 -- 安装对应的postgis插件 yum install postgis2_96.x86_64 如果出现如下图所示错误, 请执行如下命令:rpm -ivh http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm 执行完毕后,继续执行yum install postgis2_96.x86_64 至此整个安装过程完毕! 2、初始化运行环境 -- 初始化数据库 /usr/pgsql-9.6/bin