安装postgis

由于postgresql安装了多个版本,在安装完postgis之后有问题,无法识别,所以先卸载了postgresql然后安装了最新的版本

sudo apt-get --purge remove postgresql\*

sudo apt-get upgrade

sudo apt search postgresql

sudo apt install postgresql-12

sudo /etc/init.d/postgresql start

查看5432端口是否正常运行

netstat -nlt

引入软件源

sudo apt install gnupg software-properties-common

wget -qO - https://qgis.org/downloads/qgis-2021.gpg.key | sudo gpg --no-default-keyring --keyring gnupg-ring:/etc/apt/trusted.gpg.d/qgis-archive.gpg --import sudo chmod a+r /etc/apt/trusted.gpg.d/qgis-archive.gpg

sudo add-apt-repository "deb https://qgis.org/ubuntu $(lsb_release -c -s) main"

鉴于仓库 'https://qgis.org/ubuntu focal InRelease' 不支持 'i386' 体系结构

 

sudo add-apt-repository ppa:ubuntugis/ppa

 sudo apt-get update

sudo apt install postgis

建议安装这个带界面

sudo apt-get install postgis-gui

postgis是postgresql的扩展,需要在数据库启用,要在postgres数据库上启用

* -- Enable PostGIS (as of 3.0 contains just geometry/geography)
* CREATE EXTENSION postgis;
* -- enable raster support (for 3+)
* CREATE EXTENSION postgis_raster;

导入shape文件查看数据

shp2pgsql -s 4326 -c -W "UTF-8" mline.shp public.mline | psql -d databasename -U postgres -W

shp2pgsql -s 3857 -c -W "UTF-8" mline.shp public.mline | psql -d databasename -U postgres -W

 

投影标准:

在地理坐标系中经纬度的单位是度,坐标表示为:(117.435974 33.609617);但在投影坐标系中不同的投影标准有不同的单位,如常用到的投影标准:3857以米为单位,4326以度为单位。

地理数据的类型:geography和geometry
在数据库中, 地理坐标系类型是 geography;投影坐标系的类型是 geometry

类型 geography 的数值单位是度,如数据(117.435974 33.609617) 表示 东径 117.435974 度, 北纬33.609617度;

但对于 geometry 类型,在 4326 投影标准中表示为 东径 117.435974 度, 北纬33.609617度,但在 3857的投影标准中则表示为东径 117.435974 米 北纬33.609617米

· 单位的差异

 单位例子值范围限制
geography (117.435974 33.609617) 径度: 0 ~ ±180; 纬度: 0~ ±90,超出异常或负值
geometry-4326 (117.435974 33.609617) 径度: 0 ~ ±180; 纬度: 0~ ±90,超出异常或负值
geometry-3857 (13072912.8999608,3976502.86726954) 具体参照3857标准

·类型的转换
在数据库操作中通过 :: 进行类型转换时,表示只修改类型,但值不会改变,如 1::text, ‘1’::int 等
因此数据在范围(径度: 0 ~ ±180; 纬度: 0~ ±90)中的地理信息,可以直接用 :: 操作符进行geography和geometry的转换,但经过转换后实际的含义也会发生变化,如

 geographygeometry-4326geometry-3857
geography 可以 可以 可以
geometry-4326 可以 可以 可以
geometry-3857 不可以 可以 可以
posted @ 2022-03-22 17:16  雷诺2016  阅读(270)  评论(0编辑  收藏  举报