PostGIS安装

PostGIS 是一个开源数据库拓展,它为 PostgreSQL 数据库增加了对地理空间数据的支持。PostGIS 使得空间数据的存储、查询和分析变得简单高效。

PostGIS 是 Postgresql 的一个插件,本文将介绍 Unbuntu 平台下如何安装 PostGIS 拓展的一些步骤和注意的问题。

在安装 PostGIS 前应该先安装好 Postgresql。

版本说明:

Unbuntu Version:22.04.4

Postgresql Version:14

安装前准备

安装 PostGIS 前读者可以先确认下正在使用的 Postgresql 版本,根据 Postgresql 的版本来确定你要安装哪个版本的 PostGIS。

# 查看 postgresql 版本
# 切换到 postgres 用户
su postgres
# 进入 postgresql 数据库
psql
# 查看 postgresql 数据库版本
SELECT version();

PostgreSQL 与 PostGIS 对应支持关系

PostgreSQL Version PostGIS Version
11(EOL) 2.5(EOL)、3.0、3.1、3.2、3.3
12 2.5(EOL)、3.0、3.1、3.2、3.3、3.4、3.5
13 3.0、3.1、3.2、3.3、3.4、3.5
14 3.1、3.2、3.3、3.4、3.5
15 3.2、3.3、3.4、3.5
16 3.3、3.4、3.5
17 3.3、3.4、3.5

统计时间为:2024-09-04 ,其中标注为(EOL)的是官方不再支持更新的。所以最好选择较新版本的。这个列表官方可能会有变动,最新信息见参考目录的“PostGIS 版本对应关系”。

我在安装的时候,本地的 postgresql 的版本是 14 ,所以我这里选择安装 PostGIS 3.3。

PostGIS 还需要依赖一些库,比如:GEOSProjprotobuf-c

GDAL
等,他们之间也有一些版本的依赖和匹配关系,具体关系见参考目录的“PostGIS 版本对应关系”。

除了上面三个特意标出来的依赖库,还需要依赖一些如xml2、libpq等库,但是暂时先不用管,到安装的时候会提示你缺少哪些东西,到时候再安装也不晚。

如果读者使用源码编译安装,那么 gcc、g++、make、cmake 等这些工具都需要提前装好,或者等遇到报错后再取百度就行了,这里就不浪费篇幅了。

安装 Geos 库

Geos下载地址

这里我选择的版本是 Geos3.12.2,下载的文件为 geos-3.12.2.tar.bz2

源码安装:

# 解压
sudo tar jxf geos-3.12.2.tar.bz2
# 进入解压出来的目录的src目录
cd geos-3.12.2/src
# 构建
sudo cmake ../
# 编译
sudo make
# 安装
sudo make install

sudo 命令大家应该都知道,这里就不说了,如果用的是虚拟机的 root 用户安装的可以不加 sudo。

也可以直接apt安装:sudo apt-get install libgeos-dev

安装 Proj 库

Proj 9 下载地址

这里我选择的是 Proj 9.4.1,下载的文件为 proj-9.4.1.tar.gz

源码安装:

# proj 9 需要依赖sqlite3和TIEF和CURL的一些库,如果之前没安装可以执行下面命令安装
sudo apt-get install libsqlite3-dev
sudo apt-get install libtiff-dev
sudo apt-get install libcurl4-openssl-dev # 将下载的proj包解压
sudo tar zxf proj-9.4.1.tar.gz
# 进入目录
cd proj-9.4.1/
# 建个build目录
sudo mkdir build
# 进入build目录
cd build
# 构建编译和安装
sudo cmake ..
sudo cmake --build .
sudo cmake --build . --target install

也可以直接apt安装:sudo apt-get install libproj-dev

安装 Protobuf-c 库

protobuf-c下载地址

protobuf-c源码地址

这里我选择的是 1.5.0,下载的文件为 protobuf-c-1.5.0.tar.gz

源码安装:

# 解压
sudo tar zxf protobuf-c-1.5.0.tar.gz
# 配置
sudo ./configure
# 编译
sudo make
# 安装
sudo make install

安装 protobuf-c 的时候需要依赖一些其他的库,比如:protobuf,pkg-config等,也要先安装。具体可以看 protobuf-c 的 github仓库,这里就不多说了。

也可以直接apt安装:sudo apt-get install libprotobuf-c-dev

安装 Gdal 库

Gdal 官网地址

Gdal 仓库地址

这里我选择的是 gdal-3.5.3.tar.gz

源码安装:

# 解压
sudo tar xf gdal-3.5.3.tar.gz
# 进入解压出的目录
cd gdal-3.5.3/
# 配置
./configure --prefix=/usr/local/gdal
# 编译
sudo make
# 安装
sudo make install

也可以直接apt安装:sudo apt-get install libgdal-dev

安装 Postgis

上面的准备工作做好了,我们就可以安装 Postgis 了。当然你要是不确定哪些库你已经安装了,也可以先直接安装 Postgis 。在执行 ./configure 的时候,如果缺少某些依赖库,它会提醒你,然后再去安装就可以了。

PostGIS 官网

我这里使用的是 postgis-3.3.6.tar.gz 版本。

源码安装:

# 解压
sudo tar zxf
# 进入目录 # 配置
# --with-pgsql 要改成读者自己的 postgresql 目录下的 pg_config 文件路径。
# --with-gdalconfig 就是上面刚安装的 gdal 路径下的 gdal-config 文件路径。
sudo ./configure --with-pgsql=/usr/lib/postgresql/14/bin/pg_config --with-gdalconfig=/usr/local/gdal/bin/gdal-config
# 编译
sudo make
# 安装
sudo make install

如果在 执行 make 的时候报 fatal error: postgres.h No such file or directory 的错误,可以安装一下 sudo apt install postgresql-server-dev-XX (xx换成你的postgresql版本)。

也可以直接apt安装:sudo apt-get install postgis

安装成功后可以进入 postgresql 数据库,在数据库中创建 postgis 拓展插件。

# 切换到 postgres 用户
su postgres # 链接进入数据库
postgres@virtual-machine:/$ psql
psql (14.13 (Ubuntu 14.13-0ubuntu0.22.04.1))
Type "help" for help.
postgres=# #创建 postgis 拓展
postgres=# create extension postgis;
CREATE EXTENSION # 查看一下是否创建成功
postgres=# select * from pg_available_extensions where name like 'postgis%';
name | default_version | installed_version | comment
------------------------+-----------------+-------------------+------------------------------------------------------------
postgis_raster | 3.3.6 | | PostGIS raster types and functions
postgis_tiger_geocoder | 3.3.6 | | PostGIS tiger geocoder and reverse geocoder
postgis_topology | 3.3.6 | | PostGIS topology spatial types and functions
postgis | 3.3.6 | 3.3.6 | PostGIS geometry and geography spatial types and functions
(4 rows)

使用 Postgis

# 创建插件拓展
create extension postgis; # 创建表格
CREATE TABLE t_point(
"id" int4 NOT NULL,
"point" geometry(point, 4326),
PRIMARY KEY ("id")
); # 插入数据
INSERT INTO t_point
(id,point)
VALUES
(1,ST_GeomFromText('Point(31.2323 120.2323)',4326)) # 查询数据
SELECT id,ST_ASTEXT(point) FROM t_point WHERE id = 1

ST_ASTEXT、ST_GeomFromText是内置方法,其他一些常用方法可以参考:官方文档

完...

参考

Postgresql——postgis安装的更多相关文章

  1. PostgreSQL+PostGIS安装以及使用

    安装,参照:    https://www.cnblogs.com/ytwy/p/6817179.html 创建企业级地理文件数据库时报错," You must copy the lates ...

  2. PostgreSQL(PostGIS)安装和入门的若干问题

    1. 装完PostgreSQL后记得打开pgAdmin4启动一下服务器和启动一下数据库,否则PostGIS装不上. 2. pgAdmin4是网页,而3是客户端,当然都可以在File - Prefere ...

  3. GIS on CentOS 7 之 PostgreSQL & PostGIS

    PostgreSQL & PostGIS 安装postgresql 配置好yum源之后,使用yum info postgresql可发现 postgresql的版本为9.2.23,若想安装最新 ...

  4. PostgreSql+PostGIS和uDig的安装

    文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/. 1.前言 总体来说,这两款开源软件均是很好安装的,一般按照提示一步一步 ...

  5. PostgreSQL与PostGIS安装使用时需要注意的坑

    最近些许繁忙,没有时间系统整理PostgreSQL和PostGIS的安装和使用方法.所以就简单记录一下遇到的坑. 1.找不到 libintl-9.dll 我安装的PostgreSQL版本是11.7,P ...

  6. Geoserver+Postgresql+PostGIS 进行数据发布

    1.postgressql+postgis安装 由于我已经安装了,因此没法进行截图,给出下载地址 下载地址:https://www.postgresql.org/ 记得一定要下载edu的版本 因为这个 ...

  7. PostGIS安装

    PostGIS安装 1.软件下载 postgresql-9.6.1-1-windows-x64-binaries.zip https://www.postgresql.org/download/win ...

  8. 搭建简易Web GIS网站:使用GeoServer+PostgreSQL+PostGIS+OpenLayers3

    Web GIS系列: 搭建简易Web GIS网站:使用GeoServer+PostgreSQL+PostGIS+OpenLayers3 使用GeoServer+QGIS发布WMTS服务 使用GeoSe ...

  9. PostgreSQL+PostGIS

    PostGIS简介 PostGIS是对象关系型数据库系统PostgreSQL的一个扩展,PostGIS提供如下空间信息服务功能:空间对象.空间索引.空间操作函数和空间操作符.同时,PostGIS遵循O ...

  10. PostGIS 安装教程(Linux)(二)

    ##接上篇,上篇讲述了Postgresql的安装,此篇介绍postgis的安装 ##附上上篇链接:https://www.cnblogs.com/giser-s/p/11195419.html 二.安 ...

随机推荐

  1. MySQL笔记--数据库定时备份与恢复

    利用crontab定时.利用mysqldump备份 编写sh启动脚本时记得赋予执行权限(x) 如果没有mysqldump命令执行,基于centos7 yum -y install mysql-clie ...

  2. 记一次Razor Pages无法编译问题及解决

    解决方案写在前面:更新Visual Studio及相关组件,本人版本自17.8.0更新至17.11.4 缘起于公司的一个业务接口,在有一些信息需要在应用内嵌的webview中展示,信息不少,涉及的前端 ...

  3. 2021年3月国产数据库排行榜:OceanBase勇夺亚军 神舟挺进20强!

    1 新春排行 2021年3月榜单新鲜出炉,同2月相比,本月榜单中十强产品还是原来的面孔,其中3款产品取得了新的名次,榜单座次调整超过半数.前三甲仍然是TiDB.OceanBase.达梦. 冠军:TiD ...

  4. iOS长按手势列表拖拽功能实现

    项目开发中遇到拖拽功能的需求,具体要求是在编辑状态下,首页底部菜单项可以拖动位置,便于位置切换.遇到问题后的初步想法是添加拖拽手势,拖拽到某个位置,判断拖拽cell的中心点是否在另一个cell内,这样 ...

  5. 012 Python约定俗称的常量

    #!/usr/bin/env python # -*- coding:utf-8 -*- # Datatime:2022/7/18 21:13 # Filename:011 Python约定俗称的常量 ...

  6. 自学PHP笔记(二) PHP数据类型

    本文转发来自:https://blog.csdn.net/KH_FC/article/details/115415323 PHP数据类型可支持以下8种类型: 类型 说明 string 字符串 bool ...

  7. Sentinel简单使用(1)

    使用场景 在微服务架构中,服务之间会进行大量的调用.为了防止某个服务被过多的请求压垮,导致整个系统崩溃,就需要对流量进行控制.同时,当某个服务出现故障时,为了防止故障扩散到整个系统,需要进行熔断操作. ...

  8. 文件操作(C语言)

    1. 为什么使用文件? 如果没有文件,我们写的程序的数据是存储在电脑的内存中,如果程序退出,内存回收,数据就丢失了,等再次运行程序,是看不到上次程序的数据的,如果要将数据进行持久化的保存,我们可以使用 ...

  9. MMdetection 问题报错 mmdet/evaluation/metrics/coco_metric.py data[‘category_id’] = self.cat_ids[label] IndexError: list index out of range

    方案一:有人说 在自己定义的 conifg文件中增加 metainfo = { 'classes': ('class1','class2', 'class2',), 'palette': [ (220 ...

  10. 盘点阿里、腾讯、百度大厂C#开源项目

    BAT作为互联网第一梯队的互联网公司,他们开源的项目都是发自内心地将踩过的坑和总结的经验融入到开源项目中,供业界所有人使用,希望帮助他人解决问题. 目前互联网的大厂开源的项目涉及各种语言,项目类型包含 ...