1酬土、什么是PostGIS璧坟?
PostGIS將對(duì)地理對(duì)象的支持添加到PostgreSQL對(duì)象關(guān)系數(shù)據(jù)庫(kù)中嗡贺。實(shí)際上业舍,PostGIS“空間啟用”了PostgreSQL服務(wù)器抖拦,使其可以用作地理信息系統(tǒng)(GIS)的后端空間數(shù)據(jù)庫(kù)升酣,就像ESRI的SDE或Oracle的Spatial擴(kuò)展一樣。PostGIS遵循OpenGIS?“?用于SQL的簡(jiǎn)單功能規(guī)范?”态罪,并已被證明符合“類型和功能”配置文件噩茄。以上為postGIS官網(wǎng)對(duì)postGis的描述,簡(jiǎn)要理解复颈,
PostGIS是PostgreSQL數(shù)據(jù)庫(kù)的一個(gè)插件(支持空間數(shù)據(jù))绩聘,即PostGIS構(gòu)建于PostgreSQL之上,安裝了postGIS之后耗啦,postgreSQL數(shù)據(jù)庫(kù)就變成了1個(gè)空間數(shù)據(jù)庫(kù)凿菩。
默認(rèn)安裝的postgreSQL數(shù)據(jù)庫(kù)是關(guān)系數(shù)據(jù)庫(kù),安裝postGIS插件后帜讲,可以支持存放空間數(shù)據(jù)(只有當(dāng)需要在postgreSQL數(shù)據(jù)庫(kù)中存放空間數(shù)據(jù)的時(shí)候才需要安裝這個(gè)插件)衅谷。
2、postgreSQL支持的插件或函數(shù)庫(kù)
postgreSQL支持的插件與函數(shù)庫(kù)較多似将,這里大概列舉一下本次安裝支持空間數(shù)據(jù)庫(kù)涉及到的插件获黔。
GNU C 編譯器(gcc)? ? ——? ? gcc是一個(gè)Linux中最標(biāo)準(zhǔn)的C語言編譯器,需要安裝gcc來編譯PostGIS和其他軟件或函數(shù)庫(kù)的源碼在验。
GNU Make(gmake或make)——? ? 這個(gè)也是用于編譯源碼玷氏。
以上2個(gè)插件,在使用源碼安裝postgreSQL數(shù)據(jù)庫(kù)的時(shí)候就應(yīng)該已經(jīng)安裝了译红。
以下插件為空間數(shù)據(jù)所需要的插件预茄。
Proj4? ? ——? ? Proj4 重投影庫(kù)用于在PostGIS中提供坐標(biāo)重投影功能。
Proj4下載地址:http://download.osgeo.org/proj
GEOS? ?——? ? GEOS幾何圖形庫(kù)侦厚,用于支持PostGIS中的幾何信息處理耻陕、分析等功能,也可以直接認(rèn)為GEOS是一個(gè)幾何算法庫(kù)刨沦。
GEOS下載地址:https://download.osgeo.org/geos
GDAL? ? ——? ? 用于PostGIS對(duì)柵格數(shù)據(jù)的支持
GDAL下載地址:https://download.osgeo.org/gdal
以下插件為數(shù)據(jù)導(dǎo)入
LibXML2? ? ——? ? LibXML2目前用于PostGIS中的一些導(dǎo)入函數(shù)诗宣,比如ST_GeomFromGML()和ST_GeomFromKML()。
方式1:http://distfiles.macports.org/libxml2/
LibXML2下載地址:方式2:-從官網(wǎng)下載http://xmlsoft.org,跳轉(zhuǎn)到download頁面
JSON-C? ? ——? ? 目前使用JSON-C通過ST_GeomFromGeoJSON()函數(shù)導(dǎo)入GeoJSON格式的數(shù)據(jù)
JSONC下載地址可以使用:
http://www.linuxfromscratch.org/blfs/view/svn/general/json-c.html
或者:
https://github.com/json-c/json-c/archive/json-c-0.13.1-20180305.tar.gz
以下為可選插件
Protobuf? ??——??支持MVT等格式
URL:https://github.com/protocolbuffers/protobuf/archive/v2.6.1.tar.gz
Protobuf-c?——????支持MVT等格式
URL: https://github.com/protobuf-c/protobuf-c/releases/download/v1.3.1/protobuf-c-1.3.1.tar.gz
boost? ------------待定義描述
Cgal?——?? Sfcgal,Pgrouting安裝的時(shí)候想诅,依賴boost,cgal
URL:https://github.com/CGAL/cgal/archive/releases/CGAL-4.13.tar.gz
SFCGAL? ? ——? ? 用于提供額外的二維和三維的高級(jí)分析功能召庞。允許對(duì)一些函數(shù)使用基于SFCGAL的實(shí)現(xiàn),而不是使用基于GEOS的實(shí)現(xiàn)(例如ST_Intersection()和ST_Area()函數(shù))来破,如果安裝了SFCGAL篮灼,PostgreSQL的配置變量postgis.backend允許終端用戶控制他想使用哪個(gè)實(shí)現(xiàn)(默認(rèn)情況下是GEOS的實(shí)現(xiàn))。另外徘禁,SFCGAL依賴于CGAL和Boost這兩個(gè)軟件诅诱,即如果想安裝SFCGAL,就先要安裝這兩個(gè)軟件送朱。最后pgrouting插件也依賴于CGAL和Boost
URL:https://github.com/Oslandia/SFCGAL/archive/v1.3.6.tar.gz
PostGIS:
PostGIS下載地址:http://download.osgeo.org/postgis/source
本次安裝所安裝的軟件入下:
geos-3.7.2
proj-5.2.0
libxml2-2.9.8
json-c-0.13.1
gdal-2.3.2
boost-devel.x86_64
CGAL-4.13.1
SFCGAL-1.3.6
postgis-2.5.2
以上插件都可以直接從相關(guān)的官網(wǎng)直接下載娘荡,下載地址為上面附帶的url地址
在安裝postGIS之前干旁,要先確保已經(jīng)安裝了postgreSQL數(shù)據(jù)庫(kù),版本推薦安裝9-11.6之間炮沐,其他版本可能會(huì)安裝失敗争群,
也可以嘗試統(tǒng)一安裝所有軟件的高版本,高版本安裝兼容性較好大年,但是一些也可能會(huì)有一些高版本問題换薄,比如高版本可能對(duì)ArcGIS支持沒有及時(shí)更上。
postgreSQL數(shù)據(jù)庫(kù)的安裝參考postgreSQL數(shù)據(jù)庫(kù)安裝內(nèi)容鲜戒。
3专控、安裝步驟
先將以下安裝包下載好抹凳,然后上傳到服務(wù)器遏餐,如果服務(wù)器聯(lián)網(wǎng),可以使用wget命令直接下載:
下載geos示例:wget https://download.osgeo.org/geos/geos-3.7.2.tar.bz2
(1)安裝GEOS
????????a赢底、解壓安裝包:tar-jxvf geos-3.7.2.tar.bz2
????????注意失都,此格式.bz2結(jié)尾的需要特定的解壓軟件,安裝軟件
????????安裝方式參考:http://www.reibang.com/p/0b883504fb61
????????b幸冻、進(jìn)入目錄:cd?geos-3.7.2
????????c粹庞、指定安裝路徑以及安裝參數(shù):./configure--prefix=/usr/local/geos-3.7.2? (此處指定安裝到/usr/local/geos-3.7.2路徑下)
????????d、編譯 :make
????????e洽损、安裝:make install
(2)安裝Proj
????????a庞溜、解壓安裝包:tar-jxvf proj-5.2.0.tar.gz
????????b、進(jìn)入目錄:cd??proj-5.2.0
????????c碑定、指定安裝路徑以及安裝參數(shù):./configure--prefix=/usr/local/proj-5.2.0? (此處指定安裝到/usr/local/proj-5.2.0路徑下)
????????d流码、編譯 :make
????????e、安裝:make install
(3)安裝GDAL
????????a延刘、解壓安裝包:tar-jxvf gdal-2.3.2.tar.gz
????????b漫试、進(jìn)入目錄:cd??gdal-2.3.2
????????c、指定安裝路徑以及安裝參數(shù):./configure--prefix=/usr/local/gdal-2.3.2? (此處指定安裝到/usr/local/gdal-2.3.2路徑下)
????????d碘赖、編譯 :make
????????e驾荣、安裝:make install
(4)安裝json-c
????????a、解壓安裝包:ar-zxvf json-c-0.13.1-20180305.tar.gz
????????b普泡、進(jìn)入目錄:cd??son-c-0.13.1-20180305
????????c播掷、指定安裝路徑以及安裝參數(shù):./configure--prefix=/usr/local/son-c-0.13.1-20180305? (此處指定安裝到/usr/local/son-c-0.13.1-20180305路徑下)
????????d、編譯 :make
????????e撼班、安裝:make install
(5)安裝libxml2
? ??????a歧匈、解壓安裝包:tar-jxvf?libxml2-2.9.8.tar.gz
????????b、進(jìn)入目錄:cd??libxml2-2.9.8
????????c权烧、指定安裝路徑以及安裝參數(shù):./configure--prefix=/usr/local/libxml2-2.9.8? (此處指定安裝到/usr/local/libxml2-2.9.8路徑下)
????????d眯亦、編譯 :make
????????e伤溉、安裝:make install
(6)安裝CGAL(可選安裝,是SFCGAL的依賴妻率,如果要安裝SFCGAL乱顾,這個(gè)必須先按照,建議使用默認(rèn)路徑安裝(不指定路徑宫静,否則會(huì)遇到錯(cuò)誤走净,不知道這里是為啥))
? ??????a、解壓安裝包:tar-jxvf?cgal-releases-CGAL-4.13.tar.gz
????????b孤里、進(jìn)入目錄:cd?CGAL-4.13
????????c伏伯、指定安裝路徑以及安裝參數(shù):./configure(此處不指定路徑)
? ? ? ? d、執(zhí)行:mkdir build&cd build
? ? ? ? e捌袜、執(zhí)行:cmake..
????????f说搅、編譯 :make
????????g、安裝:make install
? ??????? 查看/usr/local的文件列表虏等,發(fā)現(xiàn)cgal表示安裝成功
(7)弄唧、安裝SFCGAL(可選安裝)
????由于SFCGAL需要依賴Boost、霍衫、GMP候引、MPFR這四個(gè)軟件,所以具體總共需要先安裝以下四個(gè)軟件:
????boost-devel.x86_64
????gmp-devel.x86_64
????mpfr-devel.x86_64
????前3個(gè)軟件敦跌,可以使用yum在能聯(lián)網(wǎng)的機(jī)器直接安裝澄干,安裝方式
????yum install boost-devel.x86_64
????yum install?gmp-devel.x86_64
????yum install?mpfr-devel.x86_64
? ? 安裝完成以上,可以安裝SFCGAL
? ??????a柠傍、解壓安裝包:tar-zxvf v1.3.6.tar.gz
????????b麸俘、進(jìn)入目錄:cd??SFCGAL-1.3.6
????????d、執(zhí)行:mkdir build&cd build
????????e携兵、執(zhí)行:-DCMAKE_INSTALL_PREFIX=/usr/local/sfcgal-1.3.6..
????????f疾掰、編譯 :make
????????g、安裝:make install
(6)安裝PostGIS
????????a徐紧、解壓安裝包:tar-jxvf?postgis-2.5.2.tar.gz
????????b静檬、進(jìn)入目錄:cd??postgis-2.5.2
????????c、指定安裝路徑以及安裝參數(shù):(此處的安裝并级,有以下三種安裝方式拂檩,根據(jù)自己需要選擇)
#不帶protobuf,sfcgal安裝:
./configure--prefix=/home/postgres--with-gdalconfig=/usr/local/gdal-2.3.2/bin/gdal-config--with-pgconfig=/home/postgres/bin/pg_config--with-geosconfig=/usr/local/geos-3.7.2/bin/geos-config--with-projdir=/usr/local/proj-5.2.0--with-xml2config=/usr/local/libxml2-2.9.8/bin/xml2-config--with-jsondir=/usr/local/json-c-0.13.1
#帶protobuf安裝,支持mvt
./configure--prefix=/home/postgres--with-gdalconfig=/usr/local/gdal-2.3.2/bin/gdal-config--with-pgconfig=/home/postgres/bin/pg_config--with-geosconfig=/usr/local/geos-3.7.2/bin/geos-config--with-projdir=/usr/local/proj-5.2.0--with-xml2config=/usr/local/libxml2-2.9.8/bin/xml2-config--with-jsondir=/usr/local/json-c-0.13.1--with-protobufdir=/usr/local/protobuf-c-1.3.1
# 帶protobuf,sfcgal安裝
./configure--prefix=/home/postgres--with-gdalconfig=/usr/local/gdal-2.3.2/bin/gdal-config--with-pgconfig=/home/postgres/bin/pg_config--with-geosconfig=/usr/local/geos-3.7.0/bin/geos-config--with-projdir=/usr/local/proj-5.2.0--with-xml2config=/usr/local/libxml2-2.9.7/bin/xml2-config--with-jsondir=/usr/local/json-c-0.13.1--with-protobufdir=/usr/local/protobuf-c-1.3.1--with-sfcgal=/usr/local/sfcgal-1.3.6/bin/sfcgal-config
????????d嘲碧、編譯 :make
????????e稻励、安裝:make install
此處僅是安裝了以上幾個(gè)插件,還有幾個(gè)未安裝。
4望抽、創(chuàng)建postgis擴(kuò)展
在以上安裝完成后加矛,需要在postgreSQL數(shù)據(jù)庫(kù)上創(chuàng)建postgis擴(kuò)展,創(chuàng)建方式如下:
a煤篙、切換到postgre用戶
b斟览、登陸數(shù)據(jù)庫(kù)? psql
創(chuàng)建1個(gè)數(shù)據(jù)庫(kù):create database gistest;
c、選擇數(shù)據(jù)庫(kù) :\c gistest
d辑奈、創(chuàng)建擴(kuò)展:create extension postgis;