基于Leaflet和天地图的免费运动场所WebGIS可视化-以长沙市为例

基于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 += "<div+dataJson.color+";' animation-spaceInDown><div ><b>"+ (i+ 1)+ "、" +dataJson.range + "&nbsp;" + dataJson.c_name +"</b><span></span></div>"; html += "<div>推荐交通:" + dataJson.traffic+ "</div>"; html += "<div>推荐运动:" + dataJson.sports+ "</div>"; html += "</div>"; return html; }

三、成果展示

        本节将对长沙市的免费运动场地进行空间展示,也让大家看看这6块地方究竟在哪里。首先介绍一下整体的时空位置分布,其次将进行逐个地点的介绍。

1、空间位置分布

        本次分享的免费运动场所一共有6处,从空间位置来看。比较靠北边的就是静园山庄,最东边的应该是芙蓉区花侯路浏阳河大桥下方,最西边的是位于梅溪湖一期的梅岭国际小区,最南边的是湘府路大桥西。

2、东风路立交桥运动公园

       该场地包括三个半场篮球场 ,两片多功能运动场(气排球场),两片标准羽毛球场。一个儿童活动区和一块广场舞场地,健身、遛娃两相宜。 

3、芙蓉区花侯路浏阳河大桥下方

         该场地不仅设置了体育健身场地,还保留了附近居民比赛存放的龙舟。单独开辟了龙舟文化展示区,让居民在运动的同时,还能感受龙舟文化的魅力。

4、梅岭国际小区

        运动场地较其他小区来说要大,有三片羽毛球场地,管理得很好且很干净,还专门配备了乒乓球桌,背靠幽静的小山坡。 

5、湖南大学附属中学对面

        桥下空间改造而来,有三片羽毛球场地,环境很新且有好几个乒乓球桌。 

6、湘府路大桥西

        桥下空间很全面,包含一片五人制足球场、两片篮球场、三片羽毛球场、六张乒乓球台。 

7、静园山庄

        场地建设时是用作网球场的,但是打羽毛球也可以。边上还有一个篮球场,地理位置稍偏,适合住雷锋大道的人来。 

四、总结

        以上就是本文的主要内容。本文研究旨在基于 Leaflet 和天地图,构建一个长沙市免费运动场所的 WebGIS 可视化平台。通过对长沙市免费运动场所的实地调研和数据收集,整合其位置、类型、设施、开放时间等信息,利用 Leaflet 的地图功能和天地图的数据资源,实现这些运动场所的可视化展示。通过使用天地图来展示这些运动场所信息,不仅方便了大家的浏览,同时还能为后面的管理提供一个入口。博文首先对免费运动场所的信息和空间信息进行介绍,其次介绍了前后端的程序如何编写以及如何进行WebGIS的可视化分析,最后对6处免费的场所进行了详细的介绍,从所属的位置,适合的运动、交通方式等方面进行。行文仓促,定有不足之处,欢迎各位朋友在评论区批评指正,不胜感激。最后,希望大家都动起来,为了自己的健康,走出办公室,走进户外。各位小伙伴们,如果你的所在地方也有免费的地方进行运动,也可以一并告知我来统一搜集,数据可以在评论区留言留下联系方式,万分感谢。

Read more

AI调参技巧:贝叶斯优化Optuna

AI调参技巧:贝叶斯优化Optuna

AI调参技巧:贝叶斯优化Optuna 📝 本章学习目标:本章聚焦性能优化,帮助读者提升模型效率。通过本章学习,你将全面掌握"AI调参技巧:贝叶斯优化Optuna"这一核心主题。 一、引言:为什么这个话题如此重要 在人工智能快速发展的今天,AI调参技巧:贝叶斯优化Optuna已经成为每个AI从业者必须掌握的核心技能。Python作为AI开发的主流语言,其丰富的生态系统和简洁的语法使其成为机器学习和深度学习的首选工具。 1.1 背景与意义 💡 核心认知:Python在AI领域的统治地位并非偶然。其简洁的语法、丰富的库生态、活跃的社区支持,使其成为AI开发的不二之选。掌握Python AI技术栈,是进入AI行业的必经之路。 从NumPy的高效数组运算,到TensorFlow和PyTorch的深度学习框架,Python已经构建了完整的AI开发生态。据统计,超过90%的AI项目使用Python作为主要开发语言,AI岗位的招聘要求中Python几乎是标配。 1.2 本章结构概览 为了帮助读者系统性地掌握本章内容,我将从以下几个维度展开: 📊 概念解析 → 原理推导 → 代

零基础学AI大模型之RunnableLambda

零基础学AI大模型之RunnableLambda

大家好,我是工藤学编程 🦉一个正在努力学习的小博主,期待你的关注实战代码系列最新文章😉C++实现图书管理系统(Qt C++ GUI界面版)SpringBoot实战系列🐷【SpringBoot实战系列】SpringBoot3.X 整合 MinIO 存储原生方案分库分表分库分表之实战-sharding-JDBC分库分表执行流程原理剖析消息队列深入浅出 RabbitMQ-RabbitMQ消息确认机制(ACK)AI大模型零基础学AI大模型之RunnableParallel 前情摘要 1、零基础学AI大模型之读懂AI大模型 2、零基础学AI大模型之从0到1调用大模型API 3、零基础学AI大模型之SpringAI 4、零基础学AI大模型之AI大模型常见概念 5、零基础学AI大模型之大模型私有化部署全指南 6、零基础学AI大模型之AI大模型可视化界面 7、零基础学AI大模型之LangChain 8、零基础学AI大模型之LangChain六大核心模块与大模型IO交互链路 9、零基础学AI大模型之Prompt提示词工程 10、零基础学AI大模型之LangChain-Prompt

技术拆解:P2P组网如何一键远程AI

技术拆解:P2P组网如何一键远程AI

文章目录 * **远程访问AI服务的核心是什么?** * **从暴露服务到连接设备** * **核心组件与交互解析** * **安全架构深度剖析** * **一键安装脚本的技术实现** * **# Windows** * **#macOS** * **#Linux** * **与AI工作流的结合实践** 远程访问AI服务的核心是什么? 你自己在电脑或者服务器上装了AI服务,比如大语言模型、Stable Diffusion这些,但是有个头疼的事儿:外面的人或者你在别的地方,怎么既安全又方便地连上这些本地的服务?以前的办法要么得有公网IP,还得敲一堆命令行用SSH隧道,要么就是直接开端口映射,等于把服务直接晾在公网上,太不安全了。 今天咱们就好好说说一种靠P2P虚拟组网的办法,还拿个叫节点小宝的工具举例子,看看它怎么做到不用改啥东西,点一下就装好,还能建个加密的通道,实现那种“服务藏得好好的,想连就能直接连上”的安全远程访问方式。 从暴露服务到连接设备 核心思路转变在于:不再尝试将内网服务端口暴露到公网(一个危险的攻击面),而是将外部访问设

相干伊辛机在医疗领域及医疗AI领域的应用前景分析

相干伊辛机在医疗领域及医疗AI领域的应用前景分析

引言:当量子退火遇见精准医疗 21世纪的医疗健康领域正经历着一场由数据驱动的深刻变革。从基因组学到医学影像,从电子病历到可穿戴设备,医疗数据正以指数级增长。然而,海量数据的背后是经典的“组合爆炸”难题——例如,药物分子中电子的量子态搜索、多模态医疗影像的特征匹配、个性化治疗方案的组合优化等,这些问题对经典计算机,甚至对传统的超级计算机而言,都构成了难以逾越的计算壁垒。 相干伊辛机(Coherent Ising Machine, CIM)作为一种基于量子光学和量子退火原理的新型计算范式,为解决这类组合优化问题提供了全新的物理路径。它不同于通用量子计算机(如超导门模型),CIM是专为寻找复杂伊辛模型基态而设计的专用量子处理器。本文将深入探讨CIM如何凭借其强大的并行搜索能力,在药物研发、精准诊断、个性化治疗以及医疗AI优化等领域,从计算底层赋能医疗科技的未来。 一、 相干伊辛机:从统计物理到量子计算引擎 要理解CIM在医疗领域的潜力,首先需要深入其物理内核,厘清它如何通过光的相干性来高效解决现实世界的复杂问题。 1. 伊辛模型:组合优化的“通用语言” 伊辛模型最初源于统计物理学