之前的文章《采用PHP+MySQL百度地图开发WebGIS系统之架构规划》中我记录了一个关于使用HTML5+PHP+MySQL开发一个徒步轨迹的WebGIS系统的思路。在文章中我大约介绍了整个项目的框架,但在后面的几年(文章写于2013年)里前端发生了翻天覆地的变化,文章中提到的方法虽然可行,但是不得不说已经有了更加优雅的解决方案,所以上面那个构想算是一个烂尾的工程。有些遗憾,不过也是更好玩的开始,最近抽出一点时间,对之前的框架做了一点思考和修改,主要想法如下:
1.拆分业务
之前的框架设计中是将数据采集、数据管理、数据分析集中到一起,也许当时是Too Young Too Native(这句话过几年也一定会对今天的自己说),“庞大”的系统如果没有良好的架构作为支撑,其耦合程度会给开发和维护带来比较大的困难。所以这次的尝试中,准备对之前的业务做一个拆分,数据采集、管理、可视化分别划分为三个独立的模块。三个功能模块独立开发,这个系列的文章将从数据采集入手,开发一个基于HTML5的web应用,用于采集徒步运动轨迹。
2.技术选型
数据采集方面依然会采用HTML5提供的定位接口来定位GPS位置,没有采用jQuery,而是使用了业界一个比较小巧的MVVM框架vuejs来实现前端的控制逻辑。
数据存储方面会为2部分,因为前端的定位频率较高(几秒种就会有一个点),所以实时传输云存储方面会有一些限制,这里使用了W3C的新标准技术IndexedDB来实现前端的数据存储;在网络条件较好的情况下,对数据进行云同步。
数据管理方面有两套解决方案打算:一是目前比较流行的云数据库(比如leanCloud)进行数据托管;另外一种是自己搞一个云主机搭建一个后端服务的环境可以使用NodeJS或者Java甚至PHP。前一种来说,简洁省心,后一种相对可以学更多东西,目前还没有定下。
数据分析方面,目前已经有了很多优秀的GIS前端可视化库(比如这个Leaflet)、运算库,相信也可以做出一点好玩的东西出来。
3.能实现不?
这个会不会像之前的工程一样是个烂尾?嘿嘿,说不准。不过使用HTML5收集轨迹的WebAPP已经写“完”了,也就说数据采集方面不是问题,本系列的教程的目的也在于此。
欲知后事如何,还请听下文分解。