【WebGIS】從設計層面設計系統

? ? ? ? ?本項目通過現代信息技術手段,對古村古鎮進行多方位、多角度的數字化記錄、展示與傳播,實現文化遺產的數字化保護、活化利用與共享。項目內容主要包括:1)古村古鎮數據庫的建立:通過多種渠道收集古村古鎮的各類信息,并進行整理、分類和標準化處理,然后根據數據特點設計數據庫,最后將整理好的數據錄入數據庫。 2)數據分析與決策支持: 從全國尺度和省級尺度分析古村古鎮數量特征,并利用GIS技術分析其空間分布特征,從而為古村古鎮的管理部門提供決策支持。3)文化遺產數字化展示:運用激光掃描、攝影測量、三維建模與渲染等各種數字化技術手段對古村古鎮文化遺產進行數字化與展示,從而實現文化遺產的高效保護和傳承,同時有助于促進文化旅游的發展并增強公眾的文化認知。

  1. 功能設計

“古村古鎮數字化系統”旨在通過數字化手段,對古村古鎮的文化遺產進行全面、系統的收集、整理、存儲、展示和管理,以促進文化遺產的保護、傳承與利用。根據項目需求,將“古村古鎮數字化平臺”劃分為以下功能模塊:數據采集與存儲模塊、地圖展示與查詢模塊、數據分析模塊、古村古鎮數字化展示模塊、用戶和角色管理等模塊,其功能模塊圖如圖1古村古鎮數字化平臺功能模塊圖所示。

    1. 數據采集與錄入模塊

功能描述:負責收集古村古鎮的各類數據,包括地理位置信息、文化遺產信息、圖片、視頻、音頻等多媒體資料,并提供數據輸入接口,將采集到的數據錄入系統。

實現方式:通過爬蟲技術收集古村古鎮各類信息,并進行整理、分類和標準化處理,然后通過系統提供的數據輸入界面或API接口將數據傳輸至系統數據庫。

    1. 地圖展示與查詢模塊

功能描述:基于GIS技術,將古村古鎮的地理位置信息和文化遺產信息在地圖上進行展示,并提供多種查詢方式與空間分析方法,如按名稱查詢與按地理位置查詢。

實現方式:利用ArcGIS API for JavaScript或百度API、Cesium等GIS開發框架,結合地圖服務(如WMS、WFS)和前端技術(如HTML5、CSS3、JavaScript)實現地圖的展示和查詢功能。

    1. 數據分析模塊

功能描述:對系統中的數據進行統計分析,挖掘數據背后的價值,為文化遺產保護、旅游開發等提供決策支持。

實現方式:利用數據分析工具或編程語言(如Python、R等)對數據進行統計分析,并利用前端圖表庫(如ECharts.js、D3.js等);結合GIS空間分析功能(如聚類分析、熱點分析等)進行空間數據挖掘和可視化展示;根據分析結果提供決策建議或報告。

    1. 數字化展示模塊

功能描述:通過三維建模、計算機圖形學與虛擬現實(VR)等技術手段,對古村古鎮及其文化遺產進行數字化展示,使用戶能夠身臨其境地感受文化遺產的魅力。

實現方式:利用3D建模軟件創建文化遺產的三維模型,結合WebGL或Unity3D等三維渲染引擎進行展示;同時,可以開發VR/AR應用,提供更加沉浸式的體驗。

    1. 用戶與角色管理模塊

功能描述:提供全面的用戶信息管理功能和靈活的權限控制機制。該模塊通過集成用戶注冊、登錄、信息維護、狀態監控以及角色定義、權限分配等功能,確保平臺能夠安全、高效地服務于不同類型的用戶,并滿足其多樣化的訪問和操作需求。

? 實現方式:設計數據庫以存儲用戶、角色及權限信息,開發后端API處理用戶注冊、登錄、信息管理及權限分配等功能,并集成前端界面供用戶和管理員操作。同時,采取安全措施保護數據和系統,最終通過測試確保模塊的穩定性和可用性。

  1. 界面設計

平臺首頁:

1.布局層面:該界面的布局設計顯得非常清晰且有條理,充分利用了空間來展示不同的功能模塊和數據。具體來說:(1)標題欄與導航:頁面上方為標題欄與導航條,標題欄展示平臺名稱,導航條左鍵點擊可進入相應模塊。(2) 內容區域劃分:分為上下兩部分,且上下兩部分從橫軸方向又劃分為左中右三部分。內容區域下方左右兩側為圖表,中間為地圖且地圖界面可以擴大至全屏。(說明:此次界面設計未涉及平臺版權信息,若涉及版權信息還可劃分出底部)

2.配色層面:

??? ? 3.內容層面:內容區域上方展示統計結果數據,下方利用圖表直觀展示古村古鎮數量的統計特征,并以地圖形式展示古村古鎮的空間分布特征。圖表主要是統計不同批次古村古鎮數量所占比、全國古村古鎮數量Top4省份的各個批次古村古鎮獲批數量、湖南省傳統村落、歷史文化名鎮和歷史文化名鎮所占比以及各個地級市古村古鎮數量占比和湖南省古村古鎮數量Top4市州各類型古村古鎮所占比以及其數量。中間的地圖是用于從宏觀尺度上了解全國各地古村古鎮的分布特征。

  1. 數據庫設計

數據庫設計是一個系統性的過程,旨在創建一個高效、可靠且符合數據完整性和安全性要求的數據庫系統。它通過分析業務需求、定義數據對象及其關系、規劃數據表結構、設置索引和約束,以及優化查詢性能等步驟,來確保數據庫能夠支持應用程序的數據處理需求。它通常被劃分為幾個關鍵階段,包括概念設計、邏輯設計和物理設計

    1. 概念模型

概念設計是數據庫設計的第一階段,其主要任務是根據系統需求分析的結果,對現實世界中的數據進行抽象,建立概念模型。這個階段的主要目標是明確數據庫的目標、范圍和功能,將現實世界中的實體、屬性和關系抽象成概念模型。通常,這個過程會使用實體-關系(E-R)模型來表示,通過繪制E-R圖來展示實體之間的關系。概念設計是數據庫設計的基礎,為后續的邏輯設計和物理設計提供了框架。以下將進行系統用戶-角色管理和古村古鎮數據管理兩部分的概念設計。

      1. 系統用戶-角色管理

用戶角色管理是指在系統中對用戶和角色進行定義、分配和管理的一系列操作。用戶是系統的使用者,而角色則是用戶權限的集合,用于控制用戶可以訪問哪些資源或執行哪些操作。用戶角色管理它涉及用戶賬戶、角色定義、角色分配、角色權限等多個方面。

RBAC(Role-Based Access Control)即基于角色的訪問控制模型,是一種廣泛應用于計算機系統和網絡安全領域的訪問控制機制。它就是用戶通過角色與權限進行關聯。簡單地說,一個用戶擁有若干角色,每一個角色擁有若干權限。這樣,就構造成“用戶-角色-權限”的授權模型。在這種模型中,用戶與角色之間,角色與權限之間,一般者是多對多的關系。據此,為用戶-角色管理進行概念模型設計,繪制E-R圖如下方圖 為用戶-角色-權限E-R圖。

圖 用戶-角色管理的E-R圖

      1. 古村古鎮數據管理

古村古鎮概念模型設計的E-R圖如圖 所示,圖中主要實體包括“省份”、“地級市”、“古村古鎮”。城市與古村古鎮之間通過“擁有”關系相連接,表明古村古鎮屬于特定的城市。對于古村古鎮,還記錄了其“獲批類型”、“獲批批次”以及“位置”信息,這些可能用于描述其古村古鎮類型、保護級別及地理位置。同時,省份與地市之間為包括關系且為1對多關系,它們共有屬性“行政代碼”屬性用于標識省份和城市。

古村古鎮數據管理概念據此設計的目的是為了后續對古村古鎮進行統計分析更加便捷,可從全國尺度統計不同省份各批次“傳統村落”“歷史文化名鎮”和“歷史文化名村”的數量特征,也可從省級尺度統計各省份的各個地級市各批次“傳統村落”“歷史文化名鎮”和“歷史文化名村”的數量特征。

圖 古村古鎮數據管理的E-R圖

    1. 邏輯模型

邏輯設計是數據庫設計的第二階段,其主要任務是將概念模型轉換為邏輯模型,即關系模型。在這個階段,需要進行數據規范化,以消除數據冗余,確保數據的完整性和一致性。邏輯設計包括定義數據庫中的表結構、字段類型、主鍵、外鍵等,以及設置適當的索引和約束來優化查詢性能。此外,還需要進行模式評價和優化,以確保邏輯模型滿足業務需求,并具有良好的性能和可維護性。

概念模型的E-R圖到邏輯模型的映射規則:(1)實體轉換:將E-R圖中的每個實體轉換為一個關系表(或稱為關系模式)、實體的屬性成為關系表的列(字段)、實體的主鍵成為關系表的主鍵。(2)關系的轉換:一對一關系通常不需要創建一個新的關系表來表示這種關系,而是可以在其中一個實體的關系表中添加另一個實體的主鍵作為外鍵、一對多關系:在"多"的一方的關系表中添加“一"的一方的主鍵作為外鍵、多對多關系:必須創建一個新的關系表來表示這種關系,該表至少包含兩個外鍵,分別指向兩個相關實體的主鍵,并可以包含描述關系的屬性。(3)屬性處理:派生屬性可以通過其他屬性計算得出,通常不在數據庫中直接存儲,因此在邏輯設計中可以忽略,復合屬性由多個子屬性組成,可以將其拆分為多個單獨的列。

      1. 系統用戶-角色管理

依據上述概念模型設計出的E-R圖以及概念模型的E-R圖到邏輯模型的映射規則,系統用戶-角色管理所涉及到的實體用戶-角色-權限,且它們之間的關系都為多對多(M:N)關系。實體的轉換就是將用戶-角色-權限三個實體轉成三個表格“用戶表”、“角色表”和“權限表”。多對多關系轉換都是創建一個新的表,新的表主鍵為任意一方的主鍵,外鍵則為另一方的主鍵。例如:“用戶表”和“角色表”之間創建一個新表“用戶-角色表”, 該表的主鍵為“用戶表”的主鍵,而該表外鍵為“角色表”的主鍵。屬性的轉換就是將E-R圖中實體的屬性轉化為數據庫表格中相應字段。

圖 用戶-角色-權限表結構圖

      1. 古村古鎮數據管理

與上方系統用戶-角色管理轉化類似,古村古鎮數據庫管理進行轉化是實體古村古鎮-地級市-省份三個實體轉化為對應表格。不同的是關系的轉化,地級市和古村古鎮、省份和地級市三個實體的對應關系都是一對多的關系(1:N)。針對一對多關系的轉化是為多的一方創建一個外鍵,外鍵指向另一方的外鍵。例如,古村古鎮表中的外鍵city_id指向地級市表主鍵city_id。屬性的轉換就是將E-R表中的屬性轉化為相對應數據庫表中對應字段,值得注意的是古村古鎮實體中位置屬性是復合屬性,在數據庫表中是利用longitude(經度)和latitude(緯度)兩個字段記錄古村古鎮的點位置信息。

圖 古村古鎮-地級市-省份表結構圖

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/44480.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/44480.shtml
英文地址,請注明出處:http://en.pswp.cn/web/44480.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

期貨量化交易客戶端開源教學第八節——TCP通信服務類

private FReciveStr: AnsiString; {接收到的數據} IsConErr: Boolean; {網絡連接是否失敗} FSocket_LB: Integer; {TCP連接類別,0為交易,1為行情,2為查詢} FRetryCount: Integer; {網絡連接重試次數} FLoginErrEvent: TLoginErrEvent; {…

如何從 PDF 中刪除背景

您是否曾經收到過充滿分散注意力背景的掃描 PDF 文檔?也許是帶有繁忙水印的舊收據或背景光線不均勻的掃描文檔。雖然這些背景可能看起來沒什么大不了的,但它們會使您的工作空間變得混亂,并使您難以專注于重要信息。輕松刪除這些不需要的元素并…

短視頻SEO矩陣系統:源碼開發與部署全攻略

在數字化時代,短視頻已成為人們獲取信息、娛樂休閑的重要方式。隨著短視頻平臺的興起,如何讓自己的內容在眾多視頻中脫穎而出,成為每個創作者和內容運營者關注的焦點。本文將為您深入解析短視頻SEO矩陣系統的源碼開發與部署,助您在…

MT6825磁編碼IC在智能雙旋機器人中的應用

MT6825磁編碼IC在智能雙旋機器人中的應用,無疑為這一領域的創新和發展注入了新的活力。作為一款高性能的磁性位置傳感器,MT6825以其獨特的優勢,在智能雙旋機器人的運動控制、定位精度以及系統穩定性等方面發揮了關鍵作用。 www.abitions.com …

django ninja get not allowed 能用 put delete

遇到一個奇怪的問題,django-ninja 編寫的 get post 方法不能使用 # 獲取Material router.get(/material, responseList[MaterialSchemaOut]) paginate(MyPagination) def list_material(request, filters: Filters Query(...)):qs retrieve(request, Material, f…

Midjourney v6.5 可能會在“7月底”發布,并改進了真實感和皮膚紋理

Midjourney v6.5即將發布,這一更新將大幅提升圖像的真實感和皮膚紋理,為用戶帶來更逼真的視覺體驗。首席執行官David Holz在電話會議中宣布,新版本將提高圖像清晰度,特別是在手部和皮膚細節上,同時改進Web應用程序和個…

ABAP調用BAPI時COMMIT WORK AND WAIT未按照預期同步提交問題分析

背景: 在做ABAP開發時,經常會有連續調用BAPI的需求,比如先創建銷售訂單,再依據銷售訂單創建交貨單,再對交貨單進行過賬等類似的一連串調用,這種類似的場景往往需要前一步操作的數據完全寫入數據庫才能進行…

編譯打包自己的云手機(redroid)鏡像

前言 香橙派上跑云手機可以看之前的文章: 香橙派5plus上跑云手機方案一 redroid(帶硬件加速)香橙派5plus上跑云手機方案二 waydroid 還有一個cuttlefish方案沒說,后面再研究,cuttlefish的優勢在于可以自定義內核且selinux是開啟的&#xf…

vue3下載base64文件

如果后端明確告訴你返回的是base64,那請求頭就不用帶responseType: “blob”,和普通的接口一樣發送就行 await materialsFile({ id: proxy.$route.query.id }).then((res) > {if (res) {// atob先解碼base64數據const raw window.atob(res.data);// 獲取解碼后…

vscode 遠程開發

目錄 vscode 遠程連接 選擇 Python 環境 vscode 遠程連接 按 CtrlShiftP 打開命令面板。輸入并選擇 Remote-SSH: Open SSH Configuration File...。選擇 ~/.ssh/config 文件(如果有多個選項)。在打開的文件中添加或修改你的 SSH 配置。 這個可以右鍵…

Jupyter Notebook基礎:用IPython實現動態編程

Jupyter Notebook基礎:用IPython實現動態編程 1. 引言 Jupyter Notebook是一個基于Web的交互式計算環境,允許用戶創建和共享包含實時代碼、方程式、可視化和文本敘述的文檔。它廣泛應用于數據清洗與轉換、數值模擬、統計建模、機器學習以及其他數據科學…

開放開源開先河(一)

2022年7月28日,以“軟件定義世界 開源共筑未來”為主題的全球數字經濟大會開放原子開源峰會在北京開幕,承辦主峰會和為捐贈人進行授牌儀式的開放原子開源基金會再次進入公眾視野。基金會秘書長孫文龍從匯聚全球產業鏈開源力量、核心鏈接能力、開發者分享…

Aop切面編程(2)--代理模式

1、代理模式的理解:不修改A對象的代碼的基礎上,對A代碼塊進行拓展。通過創建ProxyA代理對象,拓展A對象并調用A對象的核心功能; 即:不修改對象的源碼基礎上,創建代理對象,進行功能的附加和增強&…

端到端擁塞控制的本質

昨天整理了一篇 bbr 的微分方程組建模(參見 bbr 建模),算是 bbr 算法終極意義上的一個總結,最后也順帶了對 aimd 的描述,算是我最近比較滿意的一篇分享了。那么接下來的問題,脫離出具體算法,上升到宏觀層面&#xff0c…

git reset hard和soft的使用和區別

在Git中,git reset命令用于撤銷提交、回溯版本和調整工作目錄或暫存區狀態,而不是gitrestore。git reset主要有三種模式:--soft、--mixed(默認)和--hard。以下是關于--hard和--soft兩種模式的使用方法和區別的詳細解釋…

uniapp微信小程序 TypeError: $refs[ref].push is not a function

我的寫法 this.$refs.addPopup.open();報錯 打印出來是這樣的 解決 參考未整理 原因 在當前頁面使用的v-for循環 并且循環體內也有組件使用了ref(而我沒有把每個ref做區別命名) 這樣就導致了我有很多同名的ref,然后就報錯了 解決辦法&a…

AI人工智能作詞,為音樂注入未來之力

在當今的音樂世界中,創新的力量不斷推動著邊界的拓展,而人工智能作詞正以其獨特的魅力,成為引領音樂走向未來的強大動力。 “妙筆生詞智能寫歌詞軟件(veve522)”無疑是這股浪潮中的璀璨明星。它利用先進的人工智能技術…

記錄一次Android推流、錄像踩坑過程

背景: 按照需求,需要支持APP在手機息屏時進行推流、錄像。 技術要點: 1、手機在息屏時能夠打開camera獲取預覽數據 2、獲取預覽數據時進行編碼以及合成視頻 一、息屏時獲取camera預覽數據: ①Camera.setPreviewDisplay(SurfaceH…

通過 Azure OpenAI 服務使用 GPT-35-Turbo and GPT-4(win版)

官方文檔 Azure OpenAI 是微軟提供的一項云服務,旨在將 OpenAI 的先進人工智能模型與 Azure 的基礎設施和服務相結合。通過 Azure OpenAI,開發者和企業可以訪問 OpenAI 的各種模型,如 GPT-3、Codex 和 DALL-E 等,并將其集成到自己…

input上傳--upload

1.HTML <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>上傳文件</title><link rel"…