go-mapus为局域网地图协作而生
很多年前就用mapus了,它是用实时数据库实现协作功能。可是实时数据库是国外的,不好用,速度慢,经常封掉。
这次直接用sqlite,简单快捷,加上websocket即可,没有原来想象的那么玄乎,代码也就几千行。
我把几十G的离线瓦片下载到ssd固态移动硬盘里,把go-mapus安排上,因为是go语言的,所以编译好了,直接运行就是服务,随插随用,非常方便快捷。把ssd移动硬盘插入任何电脑,点击go-mapus服务,即可实现地图协作服务了,多人可以协作,通过局域网或互联网查阅工程标注之类。
这次精简了前端代码,将图元持久化流程变简单了,原来那个是要先在数据库表里建立,返回id后,再将id赋予图元,再把完成绘制的图元坐标信息等update数据表里对应的图元记录,我去,说起来很绕啊。这样的好处是每个图元都带数据库表的id,操作就简单了。
这次直接将绘制完成的图元存入数据库,数据库向所有用户广播,发送websocket命令,将刚存入数据表的记录,发给每一个用户,在页面上自动进行绘制图元,这个绘制的就带id了。那第一个用户手动绘制的图元,其实不带id的,刷新后,就会消失,但不影响啊,数据表中已经有了,刷新就会从数据表中读取。虽然不完美,但是简单很多。
搞好的导入导出功能,支持全部geoman的图元和编辑,当然都是基于免费的部分,有几个收费的功能就没去折腾了。
框选下载也还可以,下载下来的瓦片图,按zxy命名,然后本地用一个命令行工具进行merge即可。