文章版權由作者李曉暉和博客園共有,若轉載請於明顯處標明出處:http://www.cnblogs.com/naaoveGIS/
1.背景介紹
一般WebGIS項目中,前端展示數據的流程基本是先做數據入庫、服務發布、然后前端調用展示。假設用戶沒有基本的GIS背景,需要將本地的excel或CSV等文件快速在地圖上進行展示,此需求該如何解決?
目前市場上針對解決這種需求的產品已陸續出現,比如mapbox的studio,esri的portal,超圖的地圖慧以及由超圖原項目經理離職后創辦的地圖無憂等產品。這類產品一般都以雲服務的概念來包裝,提供本地文件的Web制圖,相關空間分析,數據的編輯,共享等。這里,我以公司某項目來談談個人對此類需求的設計和實現。
2.產品設計
研究市場上成熟的產品會發現二八定律是廣泛存在的,比如esri的portal中提供了大量的空間分析功能,但是這些功能能夠被用戶使用上的概率非常低,僅限於賣產品時客戶經理的技能秀狀態。抽出普適的功能,定位使用的用戶,結合公司的需求,是我最開始設計時的原則。
這里首先定義用戶:公司研發(目標-數據整合、快速開發),工程同事(某些需求可獨立解決),用戶使用(解決用戶簡單需求)。
根據以上三個原則,提出了這樣的產品功能構想:
a.本地文件快速展示(研發、工程、客戶)。
b.本地文件制圖(研發、工程、客戶)。
c.基本空間分析(研發、工程、客戶)。
d.數據編輯(研發、工程、客戶)。
e.數據共享
針對研發:提供數據層面對接、服務層面對接、前端接口對接。
針對工程:提供服務發布功能。
針對客戶:提供前端對分享數據的查看。
f.數據權限
針對工程、客戶:可配置數據查看權限。
3.產品架構設計
以模塊化為核心,首先將地圖操作和制圖業務進行分裂,構建出兩個大模塊:
在portal中對各功能模塊是否能添加進行配置管理:
4.本地數據展示的設計和實現
本地數據展示主要針對本地的CSV和本地Excel數據,數據中需要包含坐標字段(X、Y),通過portal添加至地圖上進行快速展示:
5.Web制圖的設計和實現
5.1簡單渲染
簡單渲染是指用戶可以選擇渲染的填充色、填充透明度、邊框色、邊框透明度、以及選擇是否用圖標(圖標可上傳選擇)展示:
5.2分類渲染
分類渲染是指用戶可以選中分類的字段,然后對字段對應的不同閾值進行不同渲染展示:
6.空間分析的設計和實現
6.1多維分析
多維分析中提供熱區展現、聚類分析兩種維度,並且各參數可以選擇控制:
6.2緩沖分析
提供針對上傳數據的點、線、面的緩沖分析功能:
7.數據管理
7.1數據關鍵字查詢
選中查詢字段,輸入查詢關鍵字后便可以搜索出數據中符合要求的結果,點擊結果面板后可以在地圖上定位到該要素:
7.2數據編輯
針對數據提供增加、修改、刪除、另存功能,其中另存功能能將修改后的數據導出成本地的CSV文件:
8.數據共享
8.1設計
選擇用PostGIS來存儲上傳數據,主要考慮都后期可以使用geoserver直接將上傳的數據當做圖層進行發布。然后設計了三張表來進行數據的元數據管理,分別是tc_user_upload_data,tc_user_upload_data_field,tc_user_upload_data_style表,這三張表中,第一個是存儲上傳的數據對應的數據表、樣式表、上傳人員,第二張表對應的各數據所擁有的字段,第三張表存儲的是數據對應的樣式文件。最后,每上傳一個數據,除了填充這三張元數據表外,還為該數據生成一個數據存儲表,表中包含geom字段以ST_Geometry格式來存儲,為以后和地理服務器對接。
8.2實現
點擊上傳按鈕,即將數據上傳至PG庫中:
8.3geoserver發布
利用geoserver發布:
或者利用公司集成了發布工具的UDIG配圖發布:
Geoserver中預覽:
9.權限配置
配置各崗位對服務圖層的權限:
圖層樹中對圖層瀏覽:
10.擴展設計
a.增加前端以配置樣式讀取上傳數據的接口,為研發前端調用。
b.針對研發特殊需求,提供數據層面對接方案。
c.增加更多擴展GIS功能,比如路徑糾正、等值線、熱點圖等。
d.擴展支持更多的本地文件格式。
e.增加地圖底圖樣式可切換配置界面。將地圖底圖更換成矢量切圖,對矢量切圖以YAML格式進行樣式配置。
-----歡迎轉載,但保留版權,請於明顯處標明出處:http://www.cnblogs.com/naaoveGIS/
如果您覺得本文確實幫助了您,可以微信掃一掃,進行小額的打賞和鼓勵,謝謝 ^_^
