PostGIS使用1:腾讯云PostGIS安装(结尾福利)

1.腾讯云申请postgresql

版本号选PostgreSQL 9.5.4
需要初始化实例
如果是外网访问记得开放外网域名
想自己在机器上通过源码安装的可以参考下云栖社区的这篇文章: https://yq.aliyun.com/articles/15011?spm=5176.11065265.1996646101.searchclickresult.680a3159rxVWXC

2.数据库客户端推荐

navcat for postgresql
http://www.navicat.com.cn/download/navicat-for-postgresql
可以在库上点右键选择进入命令行界面

3.进来后随便找个库先检查下版本:

SELECT version();

结果应该是:

                      version
----------------------------------------------------------------------------------------------------------
PostgreSQL 9.5.4 on x86_64-pc-linux-gnu, compiled by gcc (GCC) 4.8.2 20140120 (Red Hat 4.8.2-16), 64-bit
(1 row)

4.想知道是否安装了postgis可以这样

尝试获取postgis版本:

SELECT PostGIS_Full_Version();

如果没安装postgis,PostGIS_Full_Version这个函数就执行不了

5.看看哪些postgis插件可以安装

SELECT name, default_version,installed_version FROM pg_available_extensions WHERE name LIKE 'postgis%';

结果应该是:

name                   | default_version | installed_version
-----------------------+-----------------+-------------------
postgis                | 2.3.0           | 
postgis_tiger_geocoder | 2.3.0           | 
postgis_topology       | 2.3.0           |
(3 rows)

6.安装postgis

安装postgis:

CREATE EXTENSION postgis;

安装postgis_topology,支持拓扑运算功能:

CREATE EXTENSION postgis_topology;

安装postgis_tiger_geocoder,支持地理编码功能(可选)

CREATE EXTENSION postgis_tiger_geocoder;

7.验证一下

再次运行:

select PostGIS_Full_Version();

结果会是:

            postgis_full_version
--------------------------------------------------------------------------------------------------------------------------------------------------------------
POSTGIS="2.3.0 r15146" GEOS="3.5.0-CAPI-1.9.0 r4084" PROJ="Rel. 4.6.1, 21 August 2008" GDAL="GDAL 2.1.1, released 2016/07/07" LIBXML="2.9.4" TOPOLOGY RASTER
(1 row)

成功安装的话可以看到POSTGIS的版本和他依赖的几个重要类库的版本:GEOS、PROJ、GDAL

8.(福利!)顺便普及一下这三个常用库

GIS同学一般都比较熟悉,咱们常用的老三样

1)GEOS:GEOS,经典的空间函数库,C++写的,提供了各种拓扑运算的核心功能。 http://trac.osgeo.org/geos

包括了常用的
拓扑关系判断:相等(Equals)、脱节(Disjoint)、相交(Intersects)、接触(Touches)、交叉(Crosses)、内含(Within)、包含(Contains)、重叠(Overlaps)等

拓扑操作:联合(Union)、距离计算(Distance)、交叉分析(Intersection)、 差异(Difference)、对等差分 (SymDifference)、凸包分析(Convex Hull)、缓冲区分析(Buffer)、最小外接矩形(Envelope)、抽稀( Simplify)等

JAVA有个跟它功能一样的库,叫 JTS http://live.osgeo.org/en/overview/jts_overview.html

2)PROJ:Proj.4,经典的空间坐标转换库,用于各种地理坐标(也叫大地坐标)和投影坐标转换. https://proj4.org/

内置了超多坐标系( EPSG的+ESRI的),支持不同坐标系坐标随意转换,十分好用

也有一个java版的,叫Proj4J(读起来拗口哈) https://trac.osgeo.org/proj4j/

3)GDAL: GDAL,经典的空间数据格式转换库,用于各种不同格式空间数据的转换。http://www.gdal.org/

GDAL还有个也是比较有名的兄弟:OGR,功能跟GDAL类似,但主要针对矢量数据用的。http://gdal.org/1.11/ogr/

PostIGIS利用了上面三个库结合postgresql优秀的空间索引(GiST等)再加自己的优化封装,来帮助人们解决各种各种空间运算的问题哈

最后推荐一位PG大牛的博客,圈内人称德哥,多年PG经验,里面有很多最佳实践,github上搜索digoal即可

    原文作者:泡面龙
    原文地址: https://www.jianshu.com/p/9d4c1a046d37
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞