基于Python的可交互式城市地图的实现
2023-06-15吴伟殷琦辉王路李金丽
吴伟 殷琦辉 王路 李金丽
摘要:通过对城市电子地图的现状和电子地图的使用分析,完全满足用户需求的可交互式地图还没有实现。文章提出了基于Python的第三方folium库,实现了在地图上标注、商圈以及展示地形的人机交互,为城市电子地图的使用提供了可以借鉴的发展方向。同时,还提出设计和开发在线交互地圖使用平台或App,以方便用户的体验和专题使用,是今后城市电子地图的普遍应用方向。
关键词:交互式;城市地图;folium
中图分类号:TP319 文献标志码:A
0 引言
在当今信息化的时代,电子地图的使用已经十分普遍。手机地图上的地址“定位”和“导航”是人们经常使用城市地图的功能。如何满足人们对城市地图的不同需求,各大地图提供方暂时没有给出互助式的解决方案。针对这个问题,文章建设性地提出了通过第三方地图库folium实现可交互式的解决办法,基于Python的folium库具体实现了在城市地图上“标注、商圈和显示地形”等几种交互,为可交互式地图的发展提供了可以借鉴的思路,地图发展的目标是为使用者带来便利和呈献完善的功能,基于此,开发在线交互地图是各大地图提供方要完成的任务。
1 城市电子地图的现状
在我国,尤其是出门在外,大部分人都是拿着手机,跟着导航去往自己要去的地方,可见手机导航的使用是多么的普遍。据中国地理信息产业协会2022年9月发布的数据显示,中国以百度地图、高德地图、腾讯位置、华为地图等为主的企业位置服务开放平台,互联网地图日均位置服务请求次数最高达1 300亿次,日覆盖用户数超过10亿人次,全球兴趣点总数最高达2.6亿,覆盖超过200个国家和地区[1]。地图对满足人们的美好生活需求十分重要。不管是PC端地图还是移动端地图,互动式、交互式地图已成为人们生活中不可缺少的工具。目前,地图产业已推广到各领域,并形成了产业链,在大数据、人工智能的助推下向着“高精地图”方向发展。
由于手机较为方便携带,移动端地图即手机地图的使用最为普遍,也能满足用户的绝大部分需求。研究交互式地图就要从人们的需求出发,拓展地图的功能,为使用者提供智能化的人与地图交互体验。
2 交互式电子地图
交互式地图顾名思义就是指地图能满足用户的需求,并能及时反馈用户查询的结果或给出建议。可见,地图的功能设计是实现上述要求的应有之义。现如今,电子地图的功能越来越强大,地图从最初只能“看”到现在的“智能搜索”“公交提示”“定位”等。手机地图用户功能使用情况中占前3位的是“导航”“地点查找”“周边热点的查询”,前2个是用户经常使用的功能,但“周边热点的查询”达到29.2%,上升到了第3位,说明“社交”属性也成了地图的一个标签(见图1)。
随着新一代信息技术及互联网的进一步发展和智能化的趋势,地图与社交元素的深度融合趋势将会更加明显,人们的线下社交关系将会慢慢转变为线上。“手机地图圈”功能有着广阔的发展前景[2]。正是由于这些新功能的产生,近年来,使用电子地图的用户数量飞速增长。要想让用户有极好地用户体验,就要从用户的角度来考虑问题,急用户之所需,把用户想使用的功能和将来用户要使用的功能都加载到电子地图上,周到体贴的交互就要站在用户的角度考虑问题,以用户为本的设计会把看起来令人难以理解的工具变成能够明白的、方便的、可用的设备[3]。
3 交互式地图的实现
以苏州市为例,苏州是旅游城市,地图的使用对于第一次来苏州的游客来说尤为重要。但目前的电子地图注重的是“导航”和“交通”出行,尚未在与用户“人文”互动方面给出比较好的应用。在苏州的旅游景点标注按钮上单击,就会显示这个景点的相关信息,后期再加入音频信息可以实现有声地图,还可以为视力障碍的使用者带来方便(见图2)。
文章以苏州市的城市电子地图为例,基于Python来实现交互。使用地图库在Anaconda3环境下安装folium,pip install folium或conda install folium均可使用。
3.1 在地图上实现标注
在jupyter运行主要代码:
1.suzhou= folium.Map(location=[31.299379, 120.619585], tiles='openstreetmap', zoom_start=12)
2.folium.Marker([31.324246, 120.629226], popup = '拙政园',icon=folium.Icon(icon="cloud"),).add_to(suzhou)
3.folium.Marker([31.335796, 120.580404], popup = '虎丘塔', icon=folium.Icon(color="red", icon="info-sign"),).add_to(suzhou)
4.folium.Marker([31.310736, 120.696981], popup = '金鸡湖',icon=folium.Icon(color="green"),).add_to(suzhou)
5.folium.Marker([31.239729, 120.487188], popup = '太湖新城',icon=folium.Icon(color="purple"),).add_to(suzhou)
6.suzhou
借助folium实现在地图上标注自己想去的地方拙政园、虎丘塔、金鸡湖、太湖新城[4]。
3.2 在地图上实现商圈
如果想深入游览苏州博物馆,还可以在地图上画一个以苏州博物馆为中心的商圈[5]。重要代码如下:
1.suzhou=folium.Map(location=[31.299379, 120.619585], tiles='openstreetmap', zoom_start=12)
2.folium.Circle(location=[31.323019, 120.627681], radius = 900,color = "red", fill = True, fill_color = "purple").add_to(suzhou)
3.suzhou
3.3 實现山体阴影、自然植颜色展示
苏州城的西部有穹窿山、灵岩山等海拔不高的山体,太湖中还有东、西山,节假日是人们经常去的地方,可以借助Stamen Terrain实现对苏州地形的整体展示,局部细节可以通过“+”和“-”来进行缩放。重要代码如下:
1.suzhou=folium.Map(location=[31.299379, 120.619585],zoom_start=4, tiles = "Stamen Terrain")
2.suzhou
4 结语
通过以上具体的互助式地图的实例,借助folium地图库基于Python实现了交互式地图的几个功能,基础工作量比较大,例如,手机地图用户功能使用情况的实现有1 200行代码,针对广大使用者如何方便快捷的使用互助式地图,开发在线的交互式电子地图平台或App是一个很好的想法。在简单实现交互的基础上加入更多的功能和信息,实现有声地图为更多的用户带来使用上的便利是下一步的研究方向。
参考文献
[1]我国互联网地图日覆盖用户数超10亿人次[EB/OL].(2022-09-14)[2022-10-06].https://m.thepaper.cn/baijiahao_19900894.
[2]徐伟,严逸.一种基于网格编码的嵌入式地图动态注记方法[J].电子质量,2020(11):5-8.
[3]梁钢.大规模要素下矢量瓦片可视化优化方法研究[D].杭州:浙江大学,2020.
[4]宫林成.在线交互式专题地图信息平台的设计与实现[J].测绘与空间地理信息,2019(42):86-88.
[5]陈磊,杜清运,孙文.引导式在线专题制图模式的设计与实验[J].地理信息世界,2016(2):119-124.
(编辑 何 琳)
Implementation of interactive city map based on Python
Wu Wei, Yin Qihui, Wang Lu, Li Jinli
(School of Computer Engineering, Suzhou Vocational University, Suzhou 215104, China)
Abstract: Through the analysis of the current situation of urban electronic map and the use of electronic map, the interactive map that fully meets the needs of users has not yet been realized. This paper proposes a third-party folium library based on Python, which realizes human-computer interaction of marking on maps, business circles and displaying terrain, and provides a development direction for the use of urban electronic maps. At the same time, it is also proposed to design and develop an online interactive map use platform or app to facilitate user experience and thematic use, which is the general application direction of urban electronic map in the future.
Key words: interactive; city map; folium