1
概述
Introduction to new functions
GIS项目除了多边形那一套功能,另一个应用最广泛的场景就是POI数据的分析挖掘。今天给大家演示一下用GMap.Net如何加载POI数据,以及测试一下加载数据的性能。
工作内容和步骤:
- 下载一份POI数据,你可以用爬虫去爬,我是直接在百度上搜索的别人爬好的免费资源(一定要带坐标),数据也不算太旧,好像是2021年初时的版本,毕竟是免费的,真香。
- 建个表,导入数据,写个查询读取数据并组装成我想演示的数据结构;
- 读取数据(以List形式),遍历获取每一个POI点的坐标p,按p创建marker标记;
- 给每一个marker注册一个鼠标事件,移入即可弹出信息浮框,展示相应的数据;
- 测试数据加载的性能。
2
测试结果
Test
我的测试机配置:
CPU:i7 10700
内存:16G
显卡:GeForce GT 730
查询POI数据类型选择:地名地址信息;门牌信息;楼栋号。洪山区有约13700条数据,全市有126295条数据,测试结果为:洪山区加载全部POI点用时3.81秒,全市用时60.31秒,洪山区的1W多条数据加载后,在GMap.Net控件中进行鼠标操作(如移动地图,放大缩小比例和弹出浮框等)性能良好无任何卡顿;全市的12W多条数据加载后,界面卡顿明显,鼠标进行上述操作基本都要延时几秒才有响应,尽管没有卡到程序崩溃,但是我感觉基本达不到用户可用的要求,以上对性能的评价皆为本人个人感受和看法,测试效果亦与测试机配置有关,仅供参考。
3
视频演示
Vedio
全市12W条数据加载的部分我没有录,我以为会等很长时间,就没有继续录,结果1分钟,比我想象的快,不过加载后性能就垮了,我觉得可能是页面元素太多了渲染性能不够,显卡提升配置应该会好一点。
http://mpvideo.qpic.cn/0bc3u4absaaacqaanubjwfrvbj6ddgtqagia.f10002.mp4?dis_k=553b32c8ebf4ccff0790079acb1598d4&dis_t=1669881143&vid=wxv_2584483224026923008&format_id=10002&support_redirect=0&mmversion=false
4
总结
Summary
实现了POI数据加载功能,相当于完成了POI应用场景的第一步,也就是原始数据在GIS棋盘上的摆放,后续就可以对POI数据做分析挖掘了,比如POI各类点之间的关系,通过坐标可以在几何层面建立数学模型,往微观方向可以研究点与点之间的细微关系,比如你家和你的幼儿园发小家距离某超级重点小学的直线距离一样,甚至你家更近,但是你家却不对口这个重点小学,而发小家却对口这个小学,以前你对此没有概念,现在有了GIS软件后一目了然,这就叫两个不同的POI点在一个相同的测量规则下得到差异化的测量结果,从而帮助我们认识社会组成元素的差异化属性。往宏观方向可以研究点的变化趋势或者点的集合的特点或规律,比如我们给POI增加房价的属性以后,通过POI点的集合形成房价热力图,可以看到整个地区的房价的分布趋势,如果增加时间轴,还可以根据时间推进,观察房价的变化趋势,甚至未来从这些数据中拟合出房价公式,对未来某个区域的房价做出预测。在热力图中你可以看到自己家所在位置的颜色越来越暗,发小家的颜色越来越红,这体现出两个不同的POI点在同一考察维度热力图中按照不同的趋势走向了不同的方向,从而帮助我们认识社会发展的规律,认清自己在这个社会滚滚洪流中的位置。
落日余晖映红了天际,你回想起幼儿园毕业时与发小的最后一次分别,那竟然是你们最后一次见面,此后你们的人生轨迹如同热力图变化趋势的方向一样,再也没有交集,他现在在哪,还记得那时一起读的绘本,玩耍的游戏吗?忽然你被人叫住,竟然是发小,他路过认出了刚下班的你,两人寒暄了几句,大家都很高兴,毕竟对方能让自己回忆起人生中最顺的一段时光,分别时依依不舍,但是他要忙着赶往饭局,而你还有5个需求没有做,20个邮件没有回复,12个bug没有fix,2个git分支没有提交合并,99 条钉钉未读消息以及1个加班的视频会议等待参加,目送发小的超跑逐渐远去,你正了一下电脑背包,带上头盔,蹬上自己的电单车,匆匆赶往自己人生的下一站,淡淡的车辙在你身后留下,是命运的脚印。(剧情完)
5
结束和致谢
End and Thanks
这是GIS开发小框架系列文章的最后一篇,POI点的数据分析和挖掘我不太想做了,高深的不会,简单的画个圆看看哪些点在里面就觉得他们有关系这种所谓的分析都是骗人的,暂时就告一段落吧,感谢GMap.Net这样的控件,让我们几乎零成本地可以实现一个完整的GIS系统,给凡人留一条路,给黑夜留一盏灯,将来如果有机会在一个详细的应用场景展开应用,再给大家带来续集。
明天回去做PDMS了。