引言:
《共享单车可视化项目》——基于Spring Boot快速构建项目。包含核心的SSM框架即:SpringMVC,Spring,Mybatis,基于Maven项目管理工具。
整个流程大致为:地址栏输入网址,前端控制器(Controller)拦截请求进行处理,调用服务层(Service)方法,服务层再调用数据访问层(Dao/Mapper)与数据库进行交互获取数据,进行返回。
表结构:
字段 | 类型 | 长度 | 为空 | 说明 |
---|---|---|---|---|
company_id | string | 6 | 否 | 企业标识 |
bicycle_id | string | 14 | 否 | 车辆标识 |
longitude | decimal | 10 | 否 | 车辆实时坐标-经度 |
latitude | decimal | 9 | 否 | 车辆实时坐标-纬度 |
lock_status | number | 1 | 否 | 车锁状态:车锁实时状态 0-开,1-关 |
update_time | timestamp | 15 | 否 | 更新时间:当前UTC时间戳 |
补充:数据为单车当天采集的一小时内的位置信息。
sql建表
1 | DROP TABLE IF EXISTS `history_bike_status`; |
配置文件
1 | server: |
entity
1 | public class LogLatObject { |
mapper
1 |
|
mybatis自定义查询
1 | <select id="getLastPositionByCompanyIdAndTime" resultMap="BaseResultMap"> |
1 | <select id="getAllPositionByCompanyIdAndTime" resultMap="BaseResultMap"> |
service
1 |
|
controller
1 |
|
页面展示基于html实现,展示,分区域,弹窗等基本展示功能就完结。
下面是一个基于缩放的点聚合优化;
点聚合优化
问题:加载大量点时候卡顿
缘由: 点是否聚合的判断是计算其是否在聚合点的范围内;百度地图开发文档的操作是,是在加点过程中进行DOM操作
document文档 object 对象 model模型,Dom翻译中文:文档对象模型
dom操作就是元素节点操作,指的是改变html的标签结构,它有两种情况:
- 移动现有标签的位置;
- 将新创建的标签插入到现有的标签中 。
解决: addMarker() 方法内不停的去进行dom操作是最主要的弊端,所以在只要批量加点时,屏蔽DOM操作,计算完成后,再一次遍历DOM显示,速度就极大提升。
- 后续的各种可视化功能也没开发出来