GIS系統開發流程


GIS 系統因其獨特的地理位置特性,越來越受到重視,在各行業中也有越來越多的展示機會。

那 GIS 系統開發的主要流程有哪些?我來整理一下。

1. 確定需求,確定硬件環境。

  首選確定業務功能需求,只有需求確定下來了,才能確定使用什么技術路線。是BS構架還是CS構架,需要的開發工具等。一般BS系統偏向內容展示,CC系統偏向內容編輯。

  硬件環境主要為網絡環境,因為網絡環境牽涉到地圖底圖的來源,如果不能訪問外網,還需要考慮采用離線底圖。

2. 確定開發技術

  2.1 地圖引擎

    地圖引擎,說明白點就是SDK或者JS庫,可以提供將地圖數據轉化為地圖位置的功能,並且可以提供加載底圖的功能。總的來說,它提供了地圖顯示的所有接口。

    具體可以結合2.3查看。    

       2.2 底圖

   除了上面提到的網絡環境影響底圖的選擇,還要根據客戶需求以及開發技術來確定底圖圖源的情況。

    一般的底圖除了常見的類似百度地圖服務器提供的圖片格式底圖,還包括.shp ,.tab, geojson文件格式。通過不同的地圖引擎庫加載不同的文件,最終實現在地圖上顯示點線面的效果。

   國內在線底圖圖源: 百度地圖、高德、天地圖、騰訊。

   國外在線底圖圖源: 谷歌地圖、OpenStreet、ArcGIS、Bing。

  2.3 開發技術

     綜合上面的地圖引擎,底圖來源,可以為項目開發選擇合適的開發技術路線。

     一般分為以下幾種:

    2.3.1 ArcGIS 全家桶: 由美國ESRI公司(國內公司為易智瑞,其對應產品為GeoScene)提供的全套支持地圖開發的系列軟件,包括地圖數據處理 ArcGIS Desktop (ArcMap 和 ARCGIS Pro),

              用於地圖服務的ArcGIS Server(ArcGIS Enterprise),用於BS頁面開發的 ArcGIS JavaScript API(支持2D、3D),用於桌面CS軟件開發的 ArcGIS Engine,Android SDK ,iOS SDK 等。

              其優點是功能齊全,文檔規范,示例全面,覆蓋面廣,包含了所有可能涉及到的應用場景。 缺點是系統復雜,安裝配置內容繁瑣,接口多而雜,入門門檻高。非開源且收費貴。

              可選技術: C# + ArcGIS JavaScript +ArcGISServer + ArcEngine + SDK  

              底圖可選: ArcGIS +  OSM + GoogleMap +  天地圖

              可見shp文件通過ArcGIS Server 發布為局域網內地圖服務作為底圖。支持離線。

    2.3.2 開源開發

      2.3.2.1 OpenlayersLeaflet: 開源的二維地圖JS開發庫,其源碼在GitHub開源,團隊型開發,由很多地圖基礎功能,很多人會以此為基礎寫很多plugin。包括國內地圖訪問,地圖工具,地圖分析等。

        可選技術: Openlayers/LeafletJS + GeoServer/PostGIS/天地圖/OSM ,

        其中GeoServer和PostGIS為地圖服務引擎,可以通過這兩個服務發布地圖服務,用來作為底圖。免費,支持離線。

      2.3.2.2 Cesium 和 maptalks: 開源的三維地圖JS開發庫。其源碼在GitHub開發,公司型開發,如果只使用其他JS庫,不使用其服務資源不收費。

        可選技術:CesiumJS/maptalks +  CesiumMap/OSM/天地圖

        可通過加載三維模型以及使用WebGL技術對地圖內容進行操作和效果展示。 目前不確認是否支持離線。

    2.3.3 API開發:

      GoogleMap :其地圖API在國內已無法訪問。

      BaiduMap:百度公司提供的地圖API,可在線訪問百度地圖的底圖資源包括三維建築等信息,並根據接口進行相關功能開發。

            根據國測局要求,其底圖進行了加密,必須使用其API加載數據才能顯示正常位置。

            可選技術:JavaScript + BaiduMap API , 不支持離線。

            非開源軟件,接口固定,無法進行修改,底圖不收費,其他服務類接口超過訪問次數后收費。

      AMap:高德公司提供的地圖API,可在線訪問高德地圖的底圖資源包括三維建築等信息,並根據接口進行相關功能開發。

           根據國測局要求,其底圖進行了加密,必須使用其API加載數據才能顯示正常位置。

           可選技術:JavaScript + AMap API , 不支持離線。

           非開源軟件,接口固定,無法進行修改,底圖不收費,其他服務類接口超過訪問次數后收費。

        天地圖:天地圖以提供底圖資源為主,在實際開發過程中,很少直接使用天地圖的API進行項目開發。

            可選技術:JavaScript + TMap API , 不支持離線。

 

3. 業務數據

  業務數據必須包含地理位置信息,也就是常說的經緯度信息,只有有了經緯度信息,才能知道在地圖上將對象放在哪里,否則無法確定位置。也就是失去了GIS系統的優勢和意義。

   需要對相應的數據進行地圖入庫,如ArcGIS Server、GeoServer、

4. 業務邏輯

  根據功能需求,設計交互操作以及信息展示。各個行業的需求模式不同,其交互邏輯也不相同。

 

5. 開發

  根據業務邏輯,使用對應的技術,開發出對應的功能。

 

6. 部署

  部署的時候,除了考慮項目文件的部署,還要考慮底圖的部署,離線地圖要放在對應的文件夾,如果是ArcGIS Server、GeoServer、PostGIS這樣的地圖服務軟件,

要單獨進行安裝,並將地圖源文件導入發布。

 

說明:離線底圖除了 ArcGIS/GeoServer/PostGIS 這樣的發布局域網服務的地圖服務外,可以使用下載軟件將在線底圖下載到本地加載,也稱之為離線底圖。

 

參考:

ArcGIS Developer Documents: https://developers.arcgis.com/documentation/

LeafletJS: https://leafletjs.com/

openlayersJS: https://openlayers.org/

CesiumJS: https://cesium.com/

maptalksJS:  https://maptalks.org/

GeoServer: http://geoserver.org/

PostGIS: https://postgis.net/

天地圖:  http://lbs.tianditu.gov.cn/server/MapService.html

BaiduMapAPI:  http://lbsyun.baidu.com/index.php?title=jspopular3.0

AMapAPI:  https://lbs.amap.com/api/javascript-api/summary/

openstreetMap: https://www.openstreetmap.org/

 


免責聲明!

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



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