JavaWeb和WebGIS學習筆記(三)——GeoServer 發布shp數據地圖


系列鏈接:
Java web與web gis學習筆記(一)——Tomcat環境搭建
Java web與web gis學習筆記(二)——百度地圖API調用
JavaWeb和WebGIS學習筆記(三)——GeoServer 發布shp數據地圖

前言:GeoServer 是 OpenGIS Web 服務器規范的 J2EE 實現,利用 GeoServer 可以方便的發布地圖數據,允許用戶對特征數據進行更新、刪除、插入操作,通過 GeoServer 可以比較容易的在用戶之間迅速共享空間地理信息。因此運行GeoServer服務的前提是配置好Java環境。本文將GeoServer部署在Tomcat服務器上。

關於Tomcat服務器的部署,可以參考Java web與web gis學習筆記(一)——Tomcat環境搭建

一、關於數據

地理數據一般可分為矢量數據和柵格數據,本文使用shp矢量數據作為數據源發布地圖。對於最常見的幾種地理數據源,GeoServer的支持情況如下:

數據源 GeoServer支持情況
shp
GeoJSON ×
mid/mif ×
GeoTIFF
PostGIS
其他數據庫 需要插件

二、GeoServer安裝

首先在GeoServer的官網下載GeoServer。為了部署到Tomcat服務器上,這里選擇下載war包。

image-20200319211902766

將下載好的war包部署到Tomcat的webapps目錄下,並運行Tomcat,在本地即可通過URL:http://localhost:8080/geoserver訪問。

如果你更改了Tomcat的默認端口,則需要通過自己設置的端口訪問。

如果Tomcat部署在雲服務器上,通過公網可以使用URL:http://ip:port/geoserver訪問,其中ip為雲服務器公網ip,port為開放的端口。

GeoServer默認用戶名為:admin,密碼為:geoserver。在網頁右上角輸入用戶名和密碼即可登錄到GeoServer。

Snipaste_2020-03-19_16-24-28

三、通過shp文件發布地圖

1. 新建工作區

Snipaste_2020-03-19_17-18-34

在左側數據欄打開工作區,並選擇添加新的工作區,按照下圖設置即可。

Snipaste_2020-03-19_17-37-37

2. 添加shp數據源

Snipaste_2020-03-19_17-40-21

在左側數據欄打開數據存儲,並選擇添加新的數據存儲,出現如下界面:

Snipaste_2020-03-19_21-39-4322222222222222222

這里主要先介紹兩個選項:

  • Directory of spatial files(shapefiles),將一個包含shp的文件夾連接到數據源

  • Shapefile,加載單個shp文件到數據源

對於單個shp數據而言,兩種方式創建數據源區別不是特別大。因為我有多個shp數據,所以這里選擇Directory of spatial files(shapefiles)。出現如下界面:

Snipaste_2020-03-19_17-55-31

根據圖中提示設置相應的參數,注意被連接的shp文件(或文件夾)必須儲存在本地,也就是說如果你在雲服務器上進行上述操作,就需要將數據儲存到雲服務器上。點擊保存按鈕完成數據源的創建。

3. 發布地圖圖層

一般在完成數據源創建后會自動彈出新建圖層的窗口。如果你加載的也是多個shp文件的文件夾,那你將在此頁面看到多個待發布的圖層(每個圖層對應一個shp文件)。不過在這里只能先發布其中一個圖層。

Snipaste_2020-03-19_18-30-34

點擊其中一個發布按鈕,可以看到圖層信息的編輯頁面,其中需要設置的參數主要是基本信息、坐標參考和邊框信息,見下圖:

Snipaste_2020-03-19_19-02-35

Snipaste_2020-03-19_18-35-05

為了解釋上圖中的參數,這里補充一些名詞解釋(。)


  1. OGC:Open Geospatial Consortium (OGC)開放地理空間信息聯盟,它制定了數據和服務的一系列標准,GIS廠商按照這個標准進行開發可保證空間數據的互操作。相信這也是各位GIS開發者的“老朋友”了。

  2. EPSG和OGP:European Petroleum Survey Group (EPSG)歐洲石油調查組,它成立於1986年,並在2005年重組為Internation Association of Oil & Gas Producers(OGP)國際石油和天然氣生產者協會。它負責維護並發布坐標參考系統的數據集參數,以及坐標轉換描述。

  3. SRS:代表空間參考系(Spatial Reference System),也叫坐標參考系統CRS(coordinate reference system),是基於局部的、區域的或者全球的坐標系統,常被用來定位地理實體。

  4. WKT:WKT(well-known text)是OGC的簡單要素規范(Simple Feature Specification,SFS)中定義的一種文本標記語言,用於表示矢量幾何對象、空間參照系統及空間參照系統之間的轉換。
    WKT可以描述SRS,其中包括對參考橢球SPHEROID、基准面DATUM、坐標系(地心坐標系GEOCCS、地理坐標系GEOGCS、投影坐標系PROJCS)等描述。

    例如:WGS 84的OGC-WKT描述如下(注意這里的“WGS 1984”是指大地基准面,“WGS 84”既指參考橢球,又指地理坐標系(即WGS 84坐標系)。不過有時,”WGS 84“兼有三者的含義)

    GEOGCS["WGS 84",
        DATUM["WGS_1984",
            SPHEROID["WGS 84",6378137,298.257223563,
                AUTHORITY["EPSG","7030"]],
            AUTHORITY["EPSG","6326"]],
        PRIMEM["Greenwich",0,
            AUTHORITY["EPSG","8901"]],
        UNIT["degree",0.01745329251994328,
            AUTHORITY["EPSG","9122"]],
        AUTHORITY["EPSG","4326"]]
    
  5. SRID:Spatial Reference System Identifier (SRID)空間參考系統標識符,是用來明確標識投影的、非投影的、獨立的空間坐標系定義的獨一無二的值。每一個SRS都可以用一個唯一的SRID整數來表示。OGP定義的EPSG code實質上是權威機構對SRID的一種實現,因此二者是一致的。

    例如:WGS84 — SRID 4326,也表示為EPSG 4326


所以上圖中SRS設置為EPSG:4326就是將空間參考系設置為WGS84,通過查找按鈕可以查詢每種空間參考系對應的EPSG代碼。

若發布后的地圖不能正常預覽,可以嘗試更改這里的SRS,例如:在web map中同樣常見的 EPSG:3857 (Pseudo-Mercator),偽墨卡托投影,即我們經常提到的web墨卡托投影,諸如Google地圖,OpenStreetMap等web地圖都使用這一坐標系。

4. 發布剩余圖層

前面提到了,對於文件夾的數據源,新建圖層時只能發布其中一個shp數據,因此,我們還需要將文件夾中剩余的shp數據進行發布。在左側找到圖層,選擇添加新的資源

Snipaste_2020-03-19_19-19-43

在接下來的頁面中,選擇我們之前創建的數據源,即可看到之前尚未發布的圖層,在這里重復之前的操作,將這兩個圖層進行發布即可。

Snipaste_2020-03-19_19-26-01

5. 預覽發布的圖層

在左側數據欄選擇Layer Preview 可以在右側看到已經發布的所有圖層,找到剛才發布的圖層,選擇OpenLayers即可預覽。

Snipaste_2020-03-19_23-42-59

也可以在下拉菜單中選擇一種服務進行預覽,這里有WMS和WFS兩類服務可選。關於WMS、WFS以及WMTS、WCS、WPS等常見地圖服務的詳細區別見我另一篇博客:WMS、WFS、WCS、WPS、WMTS等常見地圖服務的區別

這里直接用Openlayers預覽看效果。

Snipaste_2020-03-19_23-57-21

不難看到,我們的WMS服務的URL就是:http://localhost:8080/geoserver/xjs/wms,在后面跟上一系列請求參數就訪問到我們發布的圖層了。

把瀏覽器上的URL復制下來,localhost改成公網ip就能通過公網訪問我們發布的地圖啦!

http://localhost:8080/geoserver/xjs/wms?service=WMS&version=1.1.0&request=GetMap&layers=xjs%3ABoundaryChn2_4l&bbox=73.44696044921875%2C3.408477306365967%2C135.08583068847656%2C53.557926177978516&width=768&height=624&srs=EPSG%3A4326&format=application/openlayer

關於地圖的配置、美化等操作將會在下一篇博客中進行說明。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM