基于Leaflet和天地圖的免費運動場所WebGIS可視化-以長沙市為例

目錄

前言

一、免費運動場所數據整理

1、本地寶數據簡介

2、Java后臺數據解析

二、Leaflet前端地圖展示

1、基礎數據準備

2、具體位置及屬性標記

三、成果展示

1、空間位置分布

2、東風路立交橋運動公園

3、芙蓉區花侯路瀏陽河大橋下方

4、梅嶺國際小區

5、湖南大學附屬中學對面

6、湘府路大橋西

7、靜園山莊

四、總結


前言

????????在當今快節奏的現代生活中,人們對于健康生活方式的追求愈發強烈,運動健身成為眾多市民日常生活的重要組成部分。長沙市作為湖南省的省會城市,擁有眾多的運動場所,從專業的體育場館到社區內的小型健身場地,種類豐富。然而,對于廣大市民而言,如何快速、便捷地找到身邊的免費運動場所,以及了解這些場所的相關信息,如位置、設施、開放時間等,一直是一個難題。WebGIS(Web 地理信息系統)技術的出現和發展,為解決這一問題提供了新的思路和方法。它通過將地理信息與網絡技術相結合,實現了地理空間數據的在線發布、查詢、分析和可視化等功能,為用戶提供了一個直觀、便捷的地理信息獲取平臺。在眾多的 WebGIS 開發框架中,Leaflet 以其輕量級、易上手、功能強大等特點,受到了廣大開發者的青睞。Leaflet 能夠方便地與各種地圖服務進行集成,實現地圖的顯示、縮放、平移等基本操作,同時還可以通過插件擴展其功能,如添加標記、繪制圖形、進行空間分析等。而天地圖作為我國自主研發的地理信息服務平臺,提供了豐富的地理空間數據資源,包括矢量地圖、影像地圖、地形地貌等,其數據精度高、覆蓋范圍廣,能夠為 WebGIS 應用提供堅實的數據基礎。

????????本研究旨在基于 Leaflet 和天地圖,構建一個長沙市免費運動場所的 WebGIS 可視化平臺。通過對長沙市免費運動場所的實地調研和數據收集,整合其位置、類型、設施、開放時間等信息,利用 Leaflet 的地圖功能和天地圖的數據資源,實現這些運動場所的可視化展示。用戶可以通過該平臺,在地圖上直觀地查看長沙市各個免費運動場所的分布情況,點擊感興趣的場所圖標,獲取詳細的場所信息,還可以通過搜索功能快速定位到特定的運動場所。本案例具有一定的現實意義,能夠為長沙市市民提供一個便捷的免費運動場所查詢平臺,提高市民的運動參與度和生活質量。通過對 Leaflet 和天地圖的深入應用和研究,進一步推動了 WebGIS 技術的發展和創新,為未來更多類似應用的開發提供了參考和借鑒。

? ? ? ? 本文搜集的免費運動場所地點由長沙本地寶提供,參考內容中不包含有經緯度信息。我根據提供的中文地址調用天地圖的地名解析服務,將地名轉換成對應的經緯度位置,因此非常感謝本地寶的基礎數據,我只是在此基礎上進行了空間位置的映射,更加方便大家查找相關的位置。博文首先介紹了如何使用天地圖服務根據提供的免費運動場所進行解析,然后根據解析的結果使用Lealet組件來進行WebGIS展示,為大家提供服務展示。

一、免費運動場所數據整理

????????本節將重點介紹一下基礎數據以及在Java后臺來構建場所查詢地點。為后續的空間展示打下基礎。

1、本地寶數據簡介

????????首先需要介紹一下基礎的數據來源,本次搜集整理的免費數據源來源于長沙本地寶分享,不花錢也能打球~長沙免費運動場地推薦!。

每次想運動運動,都要開始到處找場地。收費?不要。其實長沙有很多很多的免費的運動場地哦!

籃球、羽毛球、排球、乒乓球……

?

????????在文章中我們梳理出來了主要的運動場所的位置描述信息。 如下表格所示:

序號所屬范圍位置信息
1開福區東風路立交橋東風路與三一大道交會處
2芙蓉區花侯路瀏陽河大橋芙蓉區花侯路瀏陽河大橋下方
3梅溪湖街道梅園社區導航梅嶺國際小區南門,進門左拐進入小區,在8棟后面
4湖南大學附屬中學對面湖南大學附屬中學對面,聯豐路橋下
5洋湖街道湘府路大橋西附近
6天頂街道天源社區、雷鋒大道導航靜園山莊,進門左拐,或者導航科迪雅靜園幼兒園

2、Java后臺數據解析

????????為了防止查詢的地名地址在全國的區域內有重名的情況,這里在一些地名上加上長沙作為前綴。如:“靜園山莊”加上限定詞“長沙雷鋒大道靜園山莊”,以上6個地方的限定詞加上后完整的查詢天地圖Java示例程序如下所示:

@Test
public void testGeocoder2() throws InterruptedException {String [] loc_name = {"東風路立交橋運動公園","芙蓉區花侯路瀏陽河大橋下方","梅嶺國際小區","湖南大學附屬中學對面","長沙湘府路大橋西","長沙雷鋒大道靜園山莊"};for(String name : loc_name) {String keyWord = "%7B'keyWord':'" + name + "'%7D" ;HttpResponse<String> resp = tdtOptService.getGeocoder(keyWord, TDT_SERVER_KEY);System.out.println(name + "===>" +resp.getBodyResult());Thread.sleep(1500);}
}

????????在開發IDE中運行以上的測試用例,在IDE的控制臺可以發現以下輸出:

????????說明我們成功的調用天地圖的API實現地名的解析并返回了相應的值。

二、Leaflet前端地圖展示

????????本節將重點介紹如何使用Leaflet來對這些免費的運動場所進行WebGIS展示。想要把這些數據展示出來需要經過以下兩步。第一步是根據后臺的返回準備基礎數據,第二步是在地圖上展示具體的位置及屬性。

1、基礎數據準備

????????這里將根據后臺返回的基礎數據,組裝成我們需要的時空數據和屬性數據。完整的數據如下,在每一條數據中,包含了經緯度位置、運動場所名稱、所屬范圍和適宜的運動:

// 待標繪的點
var dataJson = [{lat:28.232727,lon:112.987638,c_name:"東風路立交橋運動公園",range:"開福區東風路立交橋",traffic:"可乘坐公交到達附近站點,如東風路站等,<br/>下車后步行前往;若選擇自駕,周邊有相應道路可抵達,<br/>且公園周邊有一定停車區域。",color:"#03a9f4",sports:"包括三個半場籃球場 ,兩片多功能運動場(氣排球場),<br/>兩片標準羽毛球場。一個兒童活動區和一塊廣場舞場地,<br/>健身、遛娃兩相宜。"},{lat:28.212437,lon:113.034959,c_name:"芙蓉區花侯路瀏陽河大橋下方",range:"芙蓉區花侯路瀏陽河大橋",traffic:"乘坐公交可選擇靠近瀏陽河大橋的站點下車,<br/>再步行前往;自駕可通過花侯路等道路抵達,<br/>周邊停車較為方便。",color:"#ff9800",sports:"不僅設置了體育健身場地,還保留了附近居民比賽存放的龍舟。<br/>單獨開辟了龍舟文化展示區,讓居民在運動的同時,<br/>還能感受龍舟文化的魅力。"},{lat:28.195517,lon:112.875721,c_name:"梅嶺國際小區",range:"梅溪湖街道梅園社區",traffic:"地鐵2號線梅溪湖西4號口步行到達,<br/>也可以乘坐公交到梅嶺公園或看云路采菊路口下",color:"#591ee9",sports:"運動場地較其他小區來說要大,有三片羽毛球場地,<br/>管理得很好且很干凈,還專門配備了乒乓球桌,<br/>背靠幽靜的小山坡。"},{lat:28.139807,lon:112.924884,c_name:"湖南大學附屬中學對面",range:"岳麓街道、羅家嘴立交橋西南角",traffic:"地鐵3號線陽光站1號口步行到達,<br/>建議乘坐公交到聯豐路潭州大道口公交站,下車只需步行100m",color:"#607d8b",sports:"橋下空間改造而來,有三片羽毛球場地,<br/>環境很新且有好幾個乒乓球桌。"},{lat:28.11695,lon:112.9404,c_name:"湘府路大橋西",range:"洋湖街道",traffic:"乘坐公交至湘府路大橋西步行到達",color:"#4b29b5",sports:"橋下空間很全面,包含一片五人制足球場、兩片籃球場、<br/>三片羽毛球場、六張乒乓球臺。"},{lat:28.2442,lon:112.88991,c_name:"靜園山莊",range:"天頂街道天源社區、雷鋒大道",traffic:"乘坐公交到靜園站下,建議自駕",color:"#a50b0b",sports:"場地建設時是用作網球場的,但是打羽毛球也可以。<br/>邊上還有一個籃球場,地理位置稍偏,適合住雷鋒大道的人來。"}];

????????將以上的信息準備完畢后,接下來就可以基于這些位置信息在地圖上展示出來。?

2、具體位置及屬性標記

????????有了位置之后,就可以使用Leaflet來對這些具體的位置進行地圖的標記,同時在展示時將所屬范圍、適合的運動項目也進行了一個簡單的展示。關鍵代碼如下:

var collisionLayer = L.LayerGroup.collision({margin:3});
for(var i=0;i<dataJson.length;i++){var html var marker = L.marker([dataJson[i].lat, dataJson[i].lon], {icon: L.divIcon({iconSize: null,className: '',popupAnchor:[5,5],shadowAnchor:[5,5],html: buildHtml(dataJson[i],i)})}).addTo(collisionLayer);
}
collisionLayer.addTo(map);
function buildHtml(dataJson,index){var html = "";html += "<div class='marsBlackPanel' style='background:"+dataJson.color+";' animation-spaceInDown><div class='marsBlackPanel-text' ><b>"+ (i+ 1)+ "、" +dataJson.range + "&nbsp;" + dataJson.c_name +"</b><span></span></div>";html += "<div class='marsBlackPanel-text' style=''>推薦交通:" + dataJson.traffic+ "</div>";html += "<div class='marsBlackPanel-text' style=''>推薦運動:" + dataJson.sports+ "</div>";html += "</div>";return html;
}

三、成果展示

????????本節將對長沙市的免費運動場地進行空間展示,也讓大家看看這6塊地方究竟在哪里。首先介紹一下整體的時空位置分布,其次將進行逐個地點的介紹。

1、空間位置分布

????????本次分享的免費運動場所一共有6處,從空間位置來看。比較靠北邊的就是靜園山莊,最東邊的應該是芙蓉區花侯路瀏陽河大橋下方,最西邊的是位于梅溪湖一期的梅嶺國際小區,最南邊的是湘府路大橋西。

2、東風路立交橋運動公園

? ? ? ?該場地包括三個半場籃球場 ,兩片多功能運動場(氣排球場),兩片標準羽毛球場。一個兒童活動區和一塊廣場舞場地,健身、遛娃兩相宜。?

3、芙蓉區花侯路瀏陽河大橋下方

?????????該場地不僅設置了體育健身場地,還保留了附近居民比賽存放的龍舟。單獨開辟了龍舟文化展示區,讓居民在運動的同時,還能感受龍舟文化的魅力。

4、梅嶺國際小區

????????運動場地較其他小區來說要大,有三片羽毛球場地,管理得很好且很干凈,還專門配備了乒乓球桌,背靠幽靜的小山坡。?

5、湖南大學附屬中學對面

????????橋下空間改造而來,有三片羽毛球場地,環境很新且有好幾個乒乓球桌。?

6、湘府路大橋西

????????橋下空間很全面,包含一片五人制足球場、兩片籃球場、三片羽毛球場、六張乒乓球臺。?

7、靜園山莊

????????場地建設時是用作網球場的,但是打羽毛球也可以。邊上還有一個籃球場,地理位置稍偏,適合住雷鋒大道的人來。?

四、總結

????????以上就是本文的主要內容。本文研究旨在基于 Leaflet 和天地圖,構建一個長沙市免費運動場所的 WebGIS 可視化平臺。通過對長沙市免費運動場所的實地調研和數據收集,整合其位置、類型、設施、開放時間等信息,利用 Leaflet 的地圖功能和天地圖的數據資源,實現這些運動場所的可視化展示。通過使用天地圖來展示這些運動場所信息,不僅方便了大家的瀏覽,同時還能為后面的管理提供一個入口。博文首先對免費運動場所的信息和空間信息進行介紹,其次介紹了前后端的程序如何編寫以及如何進行WebGIS的可視化分析,最后對6處免費的場所進行了詳細的介紹,從所屬的位置,適合的運動、交通方式等方面進行。行文倉促,定有不足之處,歡迎各位朋友在評論區批評指正,不勝感激。最后,希望大家都動起來,為了自己的健康,走出辦公室,走進戶外。各位小伙伴們,如果你的所在地方也有免費的地方進行運動,也可以一并告知我來統一搜集,數據可以在評論區留言留下聯系方式,萬分感謝。

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

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

相關文章

Flutter——數據庫Drift開發詳細教程(六)

目錄 1.視圖2.視圖中列的可空性3.DAO4.流查詢5.高級用途6.注意事項 1.視圖 也可以將SQL 視圖定義 為 Dart 類。為此&#xff0c;請編寫一個抽象類來擴展View。此示例聲明了一個視圖&#xff0c;用于讀取示例中架構中某個類別中添加的待辦事項數量&#xff1a; abstract class C…

Kafka 4.0版本的推出:數據處理新紀元的破曉之光

之前做大數據相關項目&#xff0c;在項目中都使用過kafka。在數字化時代&#xff0c;數據如洪流般涌來&#xff0c;如何高效處理這些數據成為關鍵。Kafka 就像是一條 “智能數據管道”&#xff0c;在數據的世界里扮演著至關重要的角色。如果你第一次接觸它&#xff0c;不妨把它…

RabbitMQ高級篇-MQ的可靠性

目錄 MQ的可靠性 1.如何設置數據持久化 1.1.交換機持久化 1.2.隊列持久化 1.3.消息持久化 2.消息持久化 隊列持久化&#xff1a; 消息持久化&#xff1a; 3.非消息持久化 非持久化隊列&#xff1a; 非持久化消息&#xff1a; 4.消息的存儲機制 4.1持久化消息&…

ctfshow權限維持

1&#xff0c;web670 我們先看一下這個php代碼 error_reporting(0);#關閉錯誤報告 highlight_file(__FILE__);#內容高亮顯示$a$_GET[action];#get傳參switch($a){case cmd:eval($_POST[cmd]);break;case check:file_get_contents("http://checker/api/check");#獲取…

力扣算法ing(71 / 100)

5.15 哈希表合集—349.兩個數組的交集 給定兩個數組 nums1 和 nums2 &#xff0c;返回 它們的 交集 。輸出結果中的每個元素一定是 唯一 的。我們可以 不考慮輸出結果的順序 。 示例 1&#xff1a; 輸入&#xff1a;nums1 [1,2,2,1], nums2 [2,2] 輸出&#xff1a;[2]示例…

(面試)Handler消息處理機制原理

Handler是用于實現線程間通信和任務調度的一種機&#xff08;Handler、 Looper、MessageQueue、 Message&#xff09;。Handler 允許線程間發送Message或Runnable對象進行通信。在Android中UI修改只能通過UI Thread&#xff0c;子線程不能更新UI。如果子線程想更新UI&#xff0…

Dify 實戰教程 | 5分鐘打造文本生成應用( Stable Diffusion 提示詞生成器)

AI 繪畫離不開「提示詞&#xff08;Prompt&#xff09;」——如何構造清晰、生動、有表現力的提示詞&#xff0c;直接決定你生成圖像的質量。而 Stable Diffusion 的提示詞構造相比 Midjourney 更加自由&#xff0c;但也更考驗組織語言的能力。 今天這篇教程&#xff0c;教你零…

RPC框架源碼分析學習(二)

RPC框架源碼分析與原理解讀 前言 在分布式系統開發中&#xff0c;遠程過程調用(RPC)是一項基礎且關鍵的技術。通過對KVstorageBaseRaft-cpp項目RPC模塊的源碼分析&#xff0c;我深入理解了RPC框架的工作原理和實現細節。本文將從程序員視角分享我的學習心得。 框架概述 本項…

當下流行的智能體通信協議:MCP、A2A、ANP 分別是什么?

在當前人工智能&#xff08;AI&#xff09;智能體生態系統中&#xff0c;智能體之間的有效溝通至關重要。為了讓AI智能體能夠高效、安全地協同工作&#xff0c;業界提出了多種通信協議。其中&#xff0c;MCP、A2A 和 ANP 代表了三個關鍵層級的通信協議&#xff0c;各自應對不同…

為什么 cout<<“中文你好“ 能正常輸出中文

一, 簡答: 受python3字符串模型影響得出的下文C字符串模型結論 是錯的&#xff01;C的字符串和python2的字符串模型類似&#xff0c;也就是普通的字符串是ASCII字符串和字節串兩種語義&#xff0c;類似重載或多態&#xff0c;有時候解釋為整數&#xff0c;有時候是字節串。Uni…

鴻蒙的卓易通,讓我踩了一次坑

前言 因為我本身對鴻蒙提不起興趣&#xff0c;哪怕有些文章給鴻蒙穿上了“黑絲”&#xff0c;再加上公司當前沒有適配鴻蒙的計劃&#xff0c;所以關于鴻蒙的消息我都關注的很少。 今早&#xff0c;看到了徐宜生老師的一篇文章&#xff1a;“鴻蒙卓易通&#xff0c;是飲鴆止渴…

Cursor vs VS Code vs Zed

代碼編輯器的世界已經迎來了創新的爆發。曾經由重量級IDE或基礎文本編輯器主導的領域,如今開發者們發現自己正在探索全新一波聚焦于AI集成、協作和性能的工具。 在本文中,我們將深入探討2025年三款流行的編輯器:Cursor、Visual Studio Code (VS Code)和Zed Code Editor。每…

使用 LiteFlow 實現靈活的業務邏輯解耦

1. 引言 1.1 業務邏輯復雜性帶來的挑戰 在現代軟件開發中,隨著業務需求不斷增長,代碼結構日趨復雜。硬編碼式的流程控制方式難以適應頻繁變更的需求,導致維護成本高、可讀性差、擴展性弱。 1.2 規則引擎在解耦中的作用 規則引擎(Rule Engine)通過將業務邏輯與程序代碼…

以項目的方式學QT開發(一)——超詳細講解(120000多字詳細講解,涵蓋qt大量知識)逐步更新!

以項目的方式學QT開發 以項目的方式學QT開發 P1 QT介紹 1.1 QT簡介 1.2 QT安裝 1.2.1 Windows QT安裝 1.2.2 QT Creator 使用基本介紹 P2 C基礎 2.1 命名空間 2.1.1 命名空間作用 2.1.2 自定義命名空間 2.2 從C語言快速入門 2.2.1 輸入輸出 2.2.2 基…

【前端】【css】【總復習】三萬字詳解CSS 知識體系

&#x1f308; CSS 知識體系目錄大綱 一、基礎知識入門 1. CSS 簡介與作用 CSS&#xff08;Cascading Style Sheets&#xff0c;層疊樣式表&#xff09;是一種用于給 HTML 頁面添加樣式的語言&#xff0c;作用是讓網頁更美觀、結構更清晰、布局更靈活。 核心作用&#xff1a;…

R利用spaa包計算植物/微生物的生態位寬度和重疊指數

一、生態位寬度 生態位寬度指數包括shannon生態位指數和levins生態位指數。下面是采用levins方法計算生態位寬度。method也可以選擇“shannon”。 二、生態位重疊指數 生態位重疊指數&#xff0c;包括levins生態位重疊指數、schoener生態位重疊指數、petrai…

【論信息系統項目的合同管理】

論信息系統項目的合同管理 論文要求寫作要點正文前言一、合同的簽訂管理二、合同履行管理三、合同變更管理四、合同檔案管理五、合同違約索賠管理結語 論文要求 項目合同管理通過對項目合同的全生命周期進行管理&#xff0c;來回避和減輕可識別的項目風險。 請以“論信息系統項…

最新網盤資源搜索系統,電視直播,Alist聚合播放

源碼描述&#xff1a; 本項目是基于Vue與Nuxt.js技術構建的網盤搜索項目&#xff0c;持續開源并維護更新。該項目旨在使每個人都能擁有屬于自己的網盤搜索網站。我們強烈建議用戶自行部署該項目。 更新日志&#xff1a; 新增TV播放功能新增Alist源聚合播放功能新增批量刪除功…

【Ubuntu】安裝BitComet種子下載器

環境 Ubuntu 24.04.2 下載依賴庫 環境比較新&#xff0c;此軟件需要依賴很多舊的庫&#xff0c;逐個安裝下載&#xff1a; 1.libicu70 http://nz.archive.ubuntu.com/ubuntu/pool/main/i/icu/libicu70_70.1-2_amd64.deb2.libjavascriptcoregtk-4.0-18 http://security.ubu…

修復“ImportError: DLL load failed while importing lib: 找不到指定的程序”筆記

#工作記錄 一、問題描述 在運行CosyVoice_For_Windows項目時&#xff0c;出現以下報錯&#xff1a; Traceback (most recent call last): File "D:\ProgramData\anaconda3\envs\CosyVoice\Lib\pydoc.py", line 457, in safeimport module __import__(path) …