RedHat7下PostGIS源碼安裝

来源:https://www.cnblogs.com/fanzhidongyzby/archive/2018/01/13/8279891.html
-Advertisement-
Play Games

本文介紹在RedHat7環境下安裝使用PostGIS的流程。 1. PostgreSQL 1.1 yum安裝PostgreSQL 這個比較簡單,直接使用yum安裝即可。 順便安裝postgresql devel、libxml2 devel,後邊編譯安裝PostGIS會用到。 然後切換到postgre ...


本文介紹在RedHat7環境下安裝使用PostGIS的流程。

1. PostgreSQL

1.1 yum安裝PostgreSQL

這個比較簡單,直接使用yum安裝即可。

$ sudo yum install -y postgresql-server postgresql-devel libxml2 libxml2-devel

順便安裝postgresql-devel、libxml2-devel,後邊編譯安裝PostGIS會用到。

postgresql.x86_64               9.2.13-1.1
postgresql-devel.x86_64         9.2.13-1.1
postgresql-libs.x86_64          9.2.13-1.1
postgresql-server.x86_64        9.2.13-1.1
libxml2                         2.9.1-6
libxml2-devel.x86_64            2.9.1-6

然後切換到postgres賬戶。

$ sudo su postgres
postgres $ 

1.2 初始化PostgreSQL

確認PostgreSQL數據目錄。

postgres $ cat /var/lib/pgsql/.bash_profile
[ -f /etc/profile ] && source /etc/profile

PGDATA=/var/lib/pgsql/data
export PGDATA

執行初始化操作。

postgres $ initdb

目錄/var/lib/pgsql/data下存儲了PostgreSQL的所有數據文件和配置。

1.3 啟動PostgreSQL

使用pg_ctl啟動PostgreSQL。

postgres $ pg_ctl start

使用psql客戶端連接。

postgres $ psql
psql (9.2.13)
輸入 "help" 來獲取幫助信息.

postgres=# \l
                                         資料庫列表
       名稱       |  擁有者  | 字元編碼 |  校對規則   |    Ctype    |       存取許可權        
------------------+----------+----------+-------------+-------------+-----------------------
 postgres         | postgres | UTF8     | zh_CN.UTF-8 | zh_CN.UTF-8 | 
 template0        | postgres | UTF8     | zh_CN.UTF-8 | zh_CN.UTF-8 | =c/postgres          +
                  |          |          |             |             | postgres=CTc/postgres
 template1        | postgres | UTF8     | zh_CN.UTF-8 | zh_CN.UTF-8 | =c/postgres          +
                  |          |          |             |             | postgres=CTc/postgres

2. PostGIS

2.1 準備源碼包

準備gdal、proj、geos和postgis的源碼包,postgis版本註意和postgresql保持相容。

相容信息可以查看: http://trac.osgeo.org/postgis/wiki/UsersWikiPostgreSQLPostGIS

$ wget http://download.osgeo.org/gdal/2.2.3/gdal-2.2.3.tar.gz
$ wget http://download.osgeo.org/proj/proj-4.8.0.tar.gz
$ wget http://download.osgeo.org/geos/geos-3.3.3.tar.bz2
$ wget http://download.osgeo.org/postgis/source/postgis-2.2.6.tar.gz

2.2 解壓編譯安裝gdal、proj、geos和postgis

依次解壓、編譯、安裝以上軟體包。

$ tar xf gdal-2.2.3.tar.gz && cd gdal-2.2.3 && ./configure --prefix=/usr/local/gdal && make && sudo make install
$ tar xf proj-4.8.0.tar.gz && cd proj-4.8.0 && ./configure --prefix=/usr/local/proj && make && sudo make install
$ tar xf geos-3.3.3.tar.bz2 && cd geos-3.3.3 && ./configure --prefix=/usr/local/geos && make && sudo make install
$ tar xf postgis-2.2.6.tar.gz && cd postgis-2.2.6 && ./configure -prefix=/usr/local/postgis --with-geosconfig=/usr/local/geos/bin/geos-config --with-projdir=/usr/local/proj --with-gdalconfig=/usr/local/gdal/bin/gdal-config && make && sudo make install

2.3 配置ldconfig

將gdal、proj、geos的lib目錄添加到ldconfig。

$ sudo cat /etc/ld.so.conf
include ld.so.conf.d/*.conf

/usr/local/gdal/lib/
/usr/local/proj/lib/
/usr/local/geos/lib/

$ sudo ldconfig

2.4 創建空間資料庫模板

# 創建無空間特性資料庫
postgres $ createdb template_postgis

# 創建相關空間資料庫相關的函數,類型,操作符等
postgres $ psql -f /usr/share/pgsql/contrib/postgis-2.2/postgis.sql -d template_postgis
postgres $ psql -f /usr/share/pgsql/contrib/postgis-2.2/rtpostgis.sql -d template_postgis

# 驗證空間資料庫版本
postgres $ psql template_postgis
psql (9.2.13)
輸入 "help" 來獲取幫助信息.

template_postgis=# select postgis_full_version(); 
                                                            postgis_full_version                                                             
---------------------------------------------------------------------------------------------------------------------------------------------
 POSTGIS="2.2.6 r16006" GEOS="3.3.3-CAPI-1.7.4" PROJ="Rel. 4.8.0, 6 March 2012" GDAL="GDAL 2.2.3, released 2017/11/20" LIBXML="2.9.1" RASTER
(1 行記錄)

template_postgis=# \d
                     關聯列表
 架構模式 |       名稱        |  型別  |  擁有者  
----------+-------------------+--------+----------
 public   | geography_columns | 視觀表 | postgres
 public   | geometry_columns  | 視觀表 | postgres
 public   | raster_columns    | 視觀表 | postgres
 public   | raster_overviews  | 視觀表 | postgres
 public   | spatial_ref_sys   | 資料表 | postgres
(5 行記錄)

2.5 根據空間資料庫模板創建新的空間資料庫

postgres $ createdb -T template_postgis new_database

3. 簡單測試

測試點(0, 0)是否在指定的多邊形內。

new_database=# select ST_Within(ST_GeomFromText('POINT(0 0)', 4326), ST_GeomFromText('POLYGON((1 1, 1 -1, -1 -1, -1 1, 1 1))', 4326)) ;
 st_within 
-----------
 t
(1 行記錄)

詳細語法規則可以參考PostGis使用手冊:http://www.postgres.cn/docs/PostGis-2.2.0dev_Manual.pdf

參考資料


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • NanUI文檔目錄 "NanUI簡介" "開始使用NanUI" "打包並使用內嵌式的HTML/CSS/JS資源" "使用網頁來設計整個視窗" "如何實現C 與Javascript的相互通信" 如何處理NanUI中的下載過程 DonwloadHandler的使用 (待更新。。。) 如何處理NanUI中 ...
  • 目前開發的所有代碼都已經上傳到了GitHub。歡迎大家來Star https://github.com/GiantLiu/AutoJump 目前程式分為“全自動版本”和“半自動版本” 全自動版本 WeChat.AutoJump.CMDApp 當手機連接好後,打開微信跳一跳 點擊"開始游戲"後。運行此 ...
  • 【轉】最近用Timer踩了一個坑,分享一下避免別人繼續踩 最近做一個小項目,項目中有一個定時服務,需要向對方定時發送數據,時間間隔是1.5s,然後就想到了用C#的Timer類,我們知道Timer 確實非常好用,因為裡面有非常人性化的start和stop功能,在Timer裡面還有一個Interval, ...
  • 一. 準備工作 1. 點擊此訪問 RestSharp 官網,可作參考 2. VS2012 中安裝支持.Net4.0的最新版 RestSharp 插件 工具 NuGet程式包管理器 程式包管理器控制台,輸入如下命令 二. 相關代碼介紹 1. 消費REST服務方法,以Json作為數據格式 /// <su ...
  • mac install m2Crypto === error solution ...
  • 其實現在網路上supervisor的教程有很多,比較雜,我找了幾個對我來說是有幫助的教程,再結合自己的理解做一些筆記,可以供自己以後翻看。 鏈接:https://www.cnblogs.com/Hai--D/p/5820718.html http://blog.csdn.net/xyang81/ar ...
  • 先占位置,以後補充 ...
  • 預留位置,以後補充 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...