日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

GeoServer安装与存储地图数据

發布時間:2023/12/31 综合教程 28 生活家
生活随笔 收集整理的這篇文章主要介紹了 GeoServer安装与存储地图数据 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

GeoServer安裝與存儲地圖數據

先理解概念:WMS、WFS、WCS、WPS、WMTS、WMSC、TMS等常見地圖服務的區別

地理信息系統(Geographic Information System或 Geo-Information system,GIS)有時又稱為“地學信息系統”。它是一種特定的十分重要的空間信息系統。它是在計算機硬、軟件系統支持下,對整個或部分地球表層(包括大氣層)空間中的有關地理分布數據進行采集、儲存、管理、運算、分析、顯示和描述的技術系統。

離線地圖架構方式

graph LR
Web-->MapServer;
Web-->BusinessServer;
MapServer-->MapDB;
BusinessServer-->OtherDB;

web端有業務數據和地圖數據,其中地圖數據來自地圖數據庫(空間數據庫+地圖文件),途徑地圖服務進行處理。本例選用開源地圖服務器GeoServer、對象關系數據庫PostSQL驗證第一個離線地圖樣例。

地圖下載

進入OpenStreetMap點擊右上角導出按鈕,依照步驟即可導出。

安裝PostGIS

postGIS向PostgreSQL添加空間類型、索引、函數,將其轉換成空間數據庫。

如果是在window OS下需先安裝對象關系數據庫PostgreSQL,再安裝PostGIS插件進行升級。我是再Linux環境下安裝,kartoza/postgis鏡像將兩者都集成進去了。

特別注意:linux最高版本才10.x,遠低于window版本,所以千萬不要下載latest版本,否則linux運行會出各種錯。

下載鏡像。

docker pull kartoza/postgis:9.6-2.4

安裝。

docker run -itd --name postgis -e POSTGRES_USER=postgres -e POSTGRES_PASSWORD=123 -e POSTGRES_DBNAME=gis -e ALLOW_IP_RANGE=0.0.0.0/0 -p 5432:5432 --restart=always kartoza/postgis

進入容器查看安裝情況

docker exec -it postgis bash
psql -h localhost -p 5432 -U postgres --password
\l

本地安裝pgAdmin

搜索pgAdmin,去官網下載14.x以上版本。連接服務器上的Postgres即可

本地安裝Postgres + PostGIS

本地的Postgres沒啥用,安裝它是為了方便使用PostGIS連接服務器上的Postgres。

因為postgis桌面程序非常好用,導入shp文件能自動建表自動添加記錄。

地圖存入空間數據庫

本地登錄PostGIS桌面程序,填寫數據庫地址、端口、用戶賬號密碼連接到服務器上Postgres。

導入shp文件,將下載的地圖文件全導入數據庫。

地圖服務器發布圖層

登錄GeoServer服務,數據存儲里添加數據源。這里有多種數據源選擇,我是把地圖數據存到了空間數據庫,所以選擇PostGIS數據源。

有了數據源就可以去發布圖層或者圖層組。

再之后點Layer Preview導航查看效果。
這里導的是全國地圖數據,加載非常慢,而且使用的是默認樣式,非常的丑。

附錄

問題1:安裝最新版鏡像,登錄用戶名不是admin/geoserver。

利用GEOSERVER_ADMIN_PASSWORD參數,修改密碼。詳情參考在運行時更改 GeoServer 密碼和用戶名

官網說明。

問題2:pgAdmin連接不上遠端postgres

因為postgres默認只允許本機連接,遠程連接要設置配置。監聽所有網段。

1、/var/lib/postgresql/data/pg_hba.conf 或者 /etc/postgresql/9.6/main/

添加host all all 0.0.0.0/0 trust

local   all             all                                     trust
# IPv4 local connections:
host    all             all             0.0.0.0/0            	trust
host    all             all             127.0.0.1/32            trust
# IPv6 local connections:
host    all             all             ::1/128                 trust
# Allow replication connections from localhost, by a user with the
# replication privilege.
local   replication     all                                     trust
host    replication     all             127.0.0.1/32            trust
host    replication     all             ::1/128                 trust

2、/var/lib/postgresql/data/postgresql.conf

listen_addresses = '*'

可能會用到的命令:

#docker 拷貝命令
docker cp postgres:/var/libxxxxxx /home
#修改完畢后重啟容器
docker restart postgres

問題3:could not connect to server: Connection refused (0x0000274D/10061) Is the server running on host "192.168.54.206" and accepting TCP/IP connections on port 5432?

安裝postgis鏡像,pgAdmin連接不上。網上說法是該鏡像不是與postgresql組合鏡像。兩個解決辦法:其一,安裝postgresql,再在該容器安裝postgis;其二:下載11.0-2.5、10.0-2.4、9.6-2.4版本的kartoza/postgis鏡像。

我驗證了后一種方法可行。docker pull kartoza/postgis:9.6-2.4

docker run -t --name postgis -e POSTGRES_USER=postgres -e POSTGRES_PASSWORD=123 -e ALLOW_IP_RANGE=0.0.0.0/0 -e POSTGRES_DBNAME=gis -p 5432:5432 --restart=always -d kartoza/postgis:9.6-2.4

在此過程中嘗試過多個版本,反復修改pg_hba.conf文件網段反復重啟容器,甚至重新制作鏡像,都沒法成功,最好的效果也只是容器內部可進入數據庫,多數時候容器內部連接時也報上面的錯誤。

后來去官網PostgreSQL Database Download才發現linux系統最高只支持10.18版本。下載9.6版本安裝即可。

敵人總是會在你最不想它出現的地方出現!

總結

以上是生活随笔為你收集整理的GeoServer安装与存储地图数据的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。