一、前言
在2020年之前,從未接觸過相關Gis的開發技術,和大家一樣,只是調用過百度地圖、谷歌地圖開放的API,實現地圖的展示功能。對於GIS的理解,只在效果上,從來不知道,地圖是如何實現的。 2020年,本人有幸參與國家鐵路設計院,對於全國鐵路及地理空間矢量化、路徑搜索、鐵路大數據分析的項目需求,才對Gis進行深入的學習,通過學習指導實踐,最終完成系統的設計和開發。基於此項目的理解,將所學到的知識做下總結,同時分享給大家。

二、概念
Ø GIS:全稱Geographic Information System,中文:地理信息系統
Ø OGC標準: 開放地理聯合會是一個參與一致進程以開發公開地理處理規格的384家公司、政府機構、大學和個人組成的國際行業聯合會。由OpenGIS規格定義的開放介面和協議,支持可互操作的解決方案,網路、無線和定位服務和主流IT。讓複雜的空間信息和服務在各種應用可以被授權技術開發人員使用。開放地理聯合會協議包括網路地圖服務WMS和網路功能服務WFS。 地理信息系統由OGC產品劃分為兩大類型,基於遵循OGC規格的完整準確的軟體。 地理信息系統技術標準促進GIS工具進行交流。 兼容的產品是符合OpenGIS規範的軟體產品。當一個產品經過測試,並通過OGC測試項目證明是兼容的,這個產品就在這個地點上自動註冊為「兼容」。 現實軟體產品,即實現OpenGIS規格但還沒有通過兼容測試的軟體產品。合規測試不可作用於所有的規格。開發者可以註冊他們的產品為實施草案或經核准的規範,而OGC有權審查和確認每個條目。
Ø WMS地圖服務(OpenGIS Web Map Service),將地圖數據發布為WEB服務,提供網路地圖圖片,有三個基本操作:
l GetCapabitities 返回服務級元數據,它是對服務信息內容和要求參數的一種描述;
l GetMap 返回一個地圖影像,其地理空間參考和大小參數是明確定義了的;
l GetFeatureInfo(可選)返回顯示在地圖上的某些特殊要素的信息
Ø WMTS:訪問已經切成瓦片分層的數據
Ø WFS要素服務(Web Feature Service)目的是提供對矢量地圖的查詢、編譯等操作。
l GetCapabilites 返回Web要素服務性能描述文檔(用XML描述);
l DescribeFeatureType 返回描述可以提供服務的任何要素結構的XML文檔;
l GetFeature 一個獲取要素實例的請求提供服務;
l Transaction 為事務請求提供服務;
l LockFeature 處理在一個事務期間對一個或多個要素類型實例上鎖的請求。
Ø WCS地理覆蓋服務(Web Coverage Service),目標是發布原始柵格數據。(柵格數據就是將空間分割成有規律的網格,每一個網格稱為一個單元,並在各單元上賦予相應的屬性值來表示實體的一種數據形式)
l GetCapabilities 操作返回描述服務和數據集的XML文檔。
l n GetCoverage操作是在GetCapabilities確定什麼樣的查詢可以執行、什麼樣的數據能夠獲取之後執行的,它使用通用的覆蓋格式返回地理位置的值或屬性。
l DescribeCoverageType 操作允許客戶端請求由具體的WCS伺服器提供的任一覆蓋層的完全描述。
Ø GML: Geography Markup Language. 一種用於描述地理數據的XML。
三、搭建地圖伺服器(geoserver)
本人拙見:geoserver是一個開源的地圖服務引擎,能夠發布和管理地理空間數據(即圖層數據),同時提供豐富的API服務,供用戶進行地理空間數據的增刪改查。
Geoserver內置Openlayers庫(用於開發WebGIS客戶端的JavaScript包,最初基於BSD許可發行,OpenLayers是一個開源的項目,其設計之意是為互聯網客戶端提供強大的地圖展示功能,包括地圖數據顯示與相關操作,並具有靈活的擴展機制)。如果前端項目集成OpenLayers庫,即可通過API調用方式,獲取到Geoserver發布的地理空間數據。
官方定義:GeoServer是用Java編寫的開放源代碼軟體伺服器,允許用戶共享和編輯地理空間數據。為實現互操作性而設計,它使用開放標準發布來自任何主要空間數據源的數據。
GeoServer允許您向世界顯示您的空間信息。實施Web地圖服務(WMS)標準,GeoServer可以創建各種輸出格式的地圖。一個免費的地圖庫OpenLayers已集成到GeoServer中,從而使地圖生成快速簡便。GeoServer基於GeoTools(一種開放源Java GIS工具包)構建。
除了精美的地圖外,GeoServer還有更多功能。GeoServer符合Web Feature Service(WFS)標準和Web Coverage Service(WCS)標準,該標準允許共享和編輯用於生成地圖的數據。GeoServer還使用Web Map Tile Service標準將發布的地圖拆分為圖塊,以方便Web地圖和移動應用程序使用。
GeoServer是一個模塊化應用程序,通過擴展添加了附加功能。Web Processing Service擴展擴展了豐富的處理選項,您甚至可以編寫自己的處理選項,使其他人可以將您的數據整合到他們的網站和應用程序中,從而釋放您的數據並提高透明度。
(1)、安裝包獲取
方式1:官網下載geoserver安裝包:
http://geoserver.org/release/stable/

方式2:下載源碼進行編譯
java源碼地址:
https://github.com/geoserver/geoserver.git,編譯出geoserver.war的安裝包。

沒有學過編程的同學,也可在此處下載官方安裝包。

(2)、linux服務端部署
必備條件:linux安裝jdk1.8以上,安裝tomcat8.0以上,將tomcat包名修改成GisServer。

將打好的geoserver.war包放在tomcat/ webapps下

在geoserver/bin 目錄下,執行./startup.sh啟動地圖服務。

將8080埠加入防火牆,同時在安全組中進行8080埠入規則放行。
然後瀏覽器訪問:
http://ip:8080/geoserver/web/ ,進入geoserver歡迎頁

使用默認賬號、密碼登錄(admin,admin)

(3)官方圖層預覽



本章簡單介紹了,GIS服務相關概念、地圖伺服器geoserver搭建的全過程。感興趣的朋友可以嘗試下,如有問題,可以私信溝通。
原創文章,作者:投稿專員,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/229988.html