【国庆要来了】基于Leaflet的旅游路线WebGIS可视化实践

前言

转眼2024年的国庆节马上就要来临了,估计很多小伙伴都计划好了旅游路线。金秋十月,不管是选择出门去看看风景,还是选择在家里看人。从自己生活惯了的城市去别人生活惯了的城市,去感受城市烟火、去感受人文风景,为2024年剩下的时间准备画一个完美的符号吧。在这里首先祝福我们伟大的祖国繁荣昌盛、人民安居乐业,出门旅游的朋友们注意安全,收获一路的好风景和好心情,在家休息的朋友们也自得其乐,自有收获。

国庆旅游黄金周,全国各地的文旅部门现在都是使出了浑身解数,期待在今年的黄金周中吸引到我们更多的游客。长沙市作为热门的旅游城市,当地的文旅部门也是开始在各个平台进行广泛的宣传和呐喊。包括长沙本地宝在内的一些互联网平台也是推出了2024年的精品旅游路线推荐,根据不同的旅游需求,按照家国情怀、都市休闲、登高品秋、亲子欢乐、寄情山水主题,给大家组织推荐了5条精品的线路。不过官方是给出了旅游景点地名,那么作为一个GIS开发技术人员,我们是否可以结合本专业来进行一种旅游地图的时空碰撞呢?将地名地点利用WebGIS技术在地图上进行展示,进而为不同的路线分析距离、选择适合的交通工具出行等等,从而更精准的为我们的旅游服务和做好旅游参考。

本文即在此背景之下产生,文章首先结合之前搜集的风景旅游区数据库、还有POI数据库,通过在风景旅游区数据库和POI数据库中根据名称来进行地理编码,找到其对应的经纬度信息,最后基于Leaflet进行时空位置绘制。为各位旅游提供完整的旅游路线预览。

一、应用实例技术实现路径

这里首先对应用实例涉及的技术进行一个介绍,同时给出实现路径。即如何通过地名地址和风景区数据找出对应的经纬度位置,以及查找出对应的经纬度位置后,如何在Leaflet中进行空间数据的展示。

1、关键实现路径

根据 上图可以看出,首先我们需要输入景点的名称信息,根据优先级的策略,我们优先查询风景旅游区的图层数据,如果图层中可以查到当前景点,则直接返回景点的位置经纬度。当然,不可避免的是,有一些数据比如餐饮或者网红打卡点,不一定是风景旅游区,因此无法在对应的图层中找到,针对这部分数据,则需要进一步的关联到POI图层中去继续查询。如果能查询到位置信息,则使用POI的经纬度信息,反之则返回为空,如果有第三方接口如天地图的地理编码查询接口服务,则可以调用这个服务来查询出对应的位置的经纬度信息。最后根据返回的经纬度信息在Leaflet中进行可视化。

2、空间数据库查询

考虑到地名地址的信息不一定是完全准确的,一些名称信息等可能是不全的,如果有能力的话,最好使用分词的模式来进行关键词匹配,合理为了简单起见,暂时使用在数据库中的模糊匹配来实现。如果在生产环境中,则不推荐大家这么用,第一是性能不好,第二个是查询的效果也不是非常准确的。查询的SQL非常简单,这里直接给出查询语句,关于原表的表结构,受限于篇幅原因,这里不进行展开,感兴趣可以私聊或者翻阅之前的博客内容,有详细的介绍。

sql 复制代码
-- 1、 查询风景区表
select * from biz_scenic_spot t where t.name like '%湘丰%';

-- 2、查询POI信息表
select * from biz_poi_info t where t.name like '%湘丰%';

在数据库客户端软件执行以上的SQL之后,可以在执行结果页看到以下的信息,

大家可以在表中找到对应的经纬度字段,将经纬度信息拷贝出来。当然,这里的shp中是包含了经纬度字段,如果大家得到的数据中,没有经纬度信息。怎么进行经纬度信息的提取呢?这里以PostGIS为例,介绍如何使用函数来进行经纬度提取。

sql 复制代码
-- 2、查询POI信息表
select *,st_x(geom) lon ,st_y(geom) lat from biz_poi_info t where t.name like '%湘丰%';

使用st_y(geometry)和st_x(geometry)来进行经纬度信息的提取。

二、精品路线的WebGIS可视化实现

对精品路线的WebGIS展示,我们采用熟悉的Leaflet库来进行实现。如果您对此不熟悉,可以先进行相关知识的学习,同时本文采用的ES5的原生html和Javascript实现,学有余力,大家可以将代码使用新的前端框架,比如Vue或者React来进行实现。

1、界面基本布局简介

界面的布局其实比较简单,采用的地图加侧边栏的实现方式,居中是地图的主体显示区域,右边配置一个侧边栏组件,在侧边栏中配置一个旅游路线的展示列表,列表下方计划做路线的具体景点展示,推荐旅游路线右边有一个操作按钮,点击按钮会自动切换景点对应的地名以及绘制最新的路线,将所有的景点连接而成。

2、WebGIS可视化实现

为了将所有的旅游路线在地图上进行展示,我们需要将中文的地名地址转化为经纬度信息。按照上一节的转换步骤,基于我们的时空数据库信息,我们首先来进行查询,当然,后期我们可以采用接口服务的方式进行批量操作。以第一条路线为例:

其中文路线景点为:

bash 复制代码
锦绶堂(湖南省苏维埃旧址)------耀邦故居------秋收起义文家市纪念园------田汉文化园------杨开慧故居------雷锋纪念馆------湖南第一师范旧址------湖南自修大学旧址(船山学社)------《湘江评论》旧址(白果园)
		------中共湘区委员会旧址------岳麓山------橘子洲景区(爱晚亭、岳麓书院)------新民学会成立旧址------宁乡石仑关------刘少奇纪念馆------何叔衡谢觉哉故居 

根据这些地名,经过查询得出的经纬度信息如下:

javascript 复制代码
var lineInfo1 = [{"lon":114.02698979600,"lat":28.46127479202,"name":"锦绶堂(湖南省苏维埃旧址)"},
		{"lon":113.88106756500,"lat":28.08157900607,"name":"耀邦故居"},
		{"lon":113.92577651100,"lat":28.40224145438,"name":"秋收起义文家市纪念园"},
		{"lon":113.20281080000,"lat":28.32460648000,"name":"田汉文化园"},
		{"lon":113.20442230000,"lat":28.59065549000,"name":"杨开慧故居"},
		{"lon":112.83963490000,"lat":28.20735347000,"name":"雷锋纪念馆"},
		{"lon":112.96615573900,"lat":28.17907124211,"name":"湖南第一师范旧址"},
		{"lon":112.97642394000,"lat":28.20314818853,"name":"湖南自修大学旧址(船山学社)"},
		{"lon":112.97237720200,"lat":28.19240549916,"name":"《湘江评论》旧址(白果园)"},
		{"lon":112.95634770000,"lat":28.17855288000,"name":"橘子洲景区"},
		{"lon":112.94699840800,"lat":28.19675004980,"name":"新民学会成立旧址"},
		{"lon":112.66766111600,"lat":28.21943663820,"name":"宁乡石仑关"},
		{"lon":112.64129723900,"lat":28.03827033474,"name":"刘少奇纪念馆"},
		{"lon":112.03729370000,"lat":28.05402452759,"name":"何叔衡谢觉哉故居"}
		];

最后,将得到的位置和景点信息在leaflet地图上渲染出来,关键代码如下:

javascript 复制代码
function openLine1(index){
	showLayerGroup.clearLayers();
	var line1 = new Array();
	$("#lineDetails").html("");
	var detailsInfo = "";
	var data;
	switch(index){
		case 1 :
			data = lineInfo1;
			break;
		case 2:
			data = lineInfo2;
			break;
		case 3:
			data = lineInfo3;
			break;
		case 4:
			data = lineInfo4;
			break;
		case 5:
			data = lineInfo5;
			break;
		default :
			data = lineInfo1;
	}
	for(var i = 0;i < data.length;i++){
		var latlng = new L.latLng(data[i].lat, data[i].lon);
		let marker = L.circleMarker(latlng, {
				radius: 10,
				color: "red",//这里设置的是circleMarker的颜色属性
		}).addTo(showLayerGroup);
		var name = data[i].name;
		marker.bindPopup(name);
		mymap.addLayer(showLayerGroup);
		line1.push([data[i].lat, data[i].lon]);
				
		detailsInfo += "<span style='font-size:15px;color:#178f26;'>"+ (i + 1) + ":"+ name + "<br/></span>";
		$("#lineDetails").html(detailsInfo);
				
		L.polyline([[line1]], {color : "red"}).addTo(showLayerGroup);
		}
		mymap.setView(showLayerGroup.getBounds().getCenter());// 设置地图的中心位置
}

在上面的代码中,我们不仅展示了所有的旅游路线景点,同时将所有的景点连接起来,形成一条路线。

三、推荐5条旅游路线展示

上面一节讲解如何进行路线的展示,下面我们根据小编的笔触,来深度的解析这5条旅游线路,大美长沙欢迎您,期待你的到来。

1、路线一:家国情怀游

路线包含地点如下:这是一条包含红色因素的路线,一起去看看前辈们奋战的足迹。

通过地图可以看到,这条路线距离比较长,覆盖的地区比较多,而且景点之间距离远,比较适合自驾,公共交通不是很方便,但景点非常值得推荐一看。

2、路线二:都市休闲游

如果不想太远的长途跋涉,只想就近来一场放松和休闲,那么下面这条都市休闲一定可以满足你的期待。首先来看看包含哪些具体的景点:

想看湖南的文脉和风骨,去岳麓山走走,大学城的郎朗读书声中,还回荡着当年薛岳将军和将士们与日寇浴血奋战的厮杀声,听千年学府岳麓书院,连接了古今的文化传奇。到了夜晚再沿着湘江,乘坐橘洲之星,溯江而上,在橘子洲头,浪遏飞舟,感受伟大领袖毛主席的慷慨激昂。在黄兴路步行街,感受长沙city,在太平老街,品饕餮美食。在都市中,放下疲惫的身躯。

这条路线,基本是在长沙城区的核心区域,不必担心路程太远,出门不远就是地铁站,可以让您无缝换乘,一站直达。适合在室内转转,看看这座城市的风味。

3、路线三:等高品秋游

秋天是个油画大师,对色彩尤其的偏爱。不信你看远山,五彩斑斓的色彩铺满了大地,把大自然渲染得令人如此如醉。喜欢自驾的朋友,不妨趁着7天的长假,带着家人或者伙伴,大家结伴而行。走出钢筋森林城市,去登高,去赏秋,看大自然这位大家是如何描绘今年的美丽景象。

湘赣边(浏阳)文化艺术交流中心------浏阳天空剧院------秋收起义纪念园------苍坊旅游区------画里小河生态旅游区------道官冲非遗生态村------大围山国家森林公园------围山云起民宿------周洛大峡谷景区------浏阳石牛寨景区 。

4、路线四:亲子欢乐游

家有孩童,不知道如何选择路线。本地宝已经帮忙安排了一条路线,适合带着家里的宝贝们出行,温馨提醒,路线较远,需要提前规划交通。景区的表演还是非常值得期待。

季高兔窝窝------大王山旅游度假区------黑麋峰国家森林公园------铜官窑文化旅游度假区------五号山谷隐世民宿------2.0版靖港古镇------稻花香里农耕文化园------炭河里国家考古遗址公园------沩山密印景区------灰汤温泉国家旅游度假区------足迹岛星空民宿

5、路线五:寄情山水游

如果假期没来得及去看看辛追娭毑,那么国庆还是可以安排的哦。这里推荐一条线路,包含了湖南博物馆,看看大湖南的灿烂文化。也可以寄情于山水,和松雅湖国家湿地公园、大山冲森林公园、影珠山来个约会。

长沙滨江文化园------湖南博物院------潮宗街------空空客厅民宿------长沙园林生态园------松雅湖国家湿地公园------大山冲森林公园------影珠山------桐乐·影山居民宿------杨开慧纪念馆------湘丰茶业庄园

相对而言,这条路线是一条一路向北的路线,从长沙主城出发,一路向北。

好了,以上就是分享的5条适合2024年国庆出游的旅游路线,趁着假期,一起出去转转吧。不管外来的朋友还是本地的朋友,都希望大家在这个假期中有个愉快的旅程,在每一次的旅程中,收获开心与快乐。

四、总结

以上就是本文的主要内容,文章首先结合之前搜集的风景旅游区数据库、还有POI数据库,通过在风景旅游区数据库和POI数据库中根据名称来进行地理编码,找到其对应的经纬度信息,最后基于Leaflet进行时空位置绘制。为各位旅游提供完整的旅游路线预览。行文仓促,难免有不足之处,如有不足,还恳请各位专家博主在评论区留下真知灼见,不甚感激。

文章部分图源和旅游路线推荐来源于长沙本地宝制作的2024年国庆长沙旅游路线,原文:

国庆来长沙,5条游玩路线推荐!不同类型,值得一逛,祝大家接入愉快。

相关推荐
大势智慧25 天前
李德仁院士携实验室及大势文旅团队参加“湖北旅游、武当突破”名家谈,分享数智文旅发展新经验
三维重建·智慧文旅·实景三维·数字文旅·武当山·数字武当·文化遗产
大势智慧1 个月前
“数字武当”项目荣获2024年“数据要素×”大赛湖北分赛文化旅游赛道一等奖
三维重建·数据要素·智慧文旅·实景三维·数字文旅·数据赋能·武当山
FISCO_BCOS2 个月前
【区块链 + 智慧文旅】城商行旅游金融联盟:旅游金融联盟平台 | FISCO BCOS应用案例
区块链·智慧文旅
FISCO_BCOS2 个月前
【区块链 + 智慧文旅】版权区块链系统 | FISCO BCOS应用案例
区块链·智慧文旅
方案3656 个月前
智慧文旅赋能旅游服务升级:以科技创新驱动行业变革,打造智慧化、个性化、高效化的旅游新体验,满足游客日益增长的多元化需求
科技·旅游·智慧文旅·智慧旅游·智慧文旅平台建设方案
方案3656 个月前
智慧旅游引领未来风尚,科技助力旅行更精彩:科技的力量推动旅游业创新发展,为旅行者带来更加便捷、高效和智能的旅行服务
科技·旅游·智慧文旅·智慧文旅方案设计·智慧文旅解决方案
方案3656 个月前
智慧旅游推动旅游服务智慧化转型:借助智能科技的力量,实现旅游资源的精准匹配和高效利用,为游客提供更加便捷、舒适的旅游环境
科技·旅游·智慧文旅·智慧旅游·数字文旅·智慧文旅方案设计
方案3656 个月前
智慧旅游引领旅游行业创新发展:借助智能科技的力量,实现旅游资源的优化配置和高效利用,推动旅游行业的转型升级和可持续发展
科技·旅游·智慧文旅·智慧旅游·智慧文旅平台建设方案
方案3656 个月前
数字旅游以科技创新为动力:推动旅游服务的智能化、网络化和个性化发展,满足游客日益增长的多元化、个性化需求
科技·旅游·智慧文旅·智慧旅游·智慧文旅平台建设方案