go-mapus为局域网地图协作而生

news/2025/9/21 20:32:39/文章来源:https://www.cnblogs.com/gomapus/p/19104085

很多年前就用mapus了,它是用实时数据库实现协作功能。可是实时数据库是国外的,不好用,速度慢,经常封掉。
这次直接用sqlite,简单快捷,加上websocket即可,没有原来想象的那么玄乎,代码也就几千行。

我把几十G的离线瓦片下载到ssd固态移动硬盘里,把go-mapus安排上,因为是go语言的,所以编译好了,直接运行就是服务,随插随用,非常方便快捷。把ssd移动硬盘插入任何电脑,点击go-mapus服务,即可实现地图协作服务了,多人可以协作,通过局域网或互联网查阅工程标注之类。
image
image

这次精简了前端代码,将图元持久化流程变简单了,原来那个是要先在数据库表里建立,返回id后,再将id赋予图元,再把完成绘制的图元坐标信息等update数据表里对应的图元记录,我去,说起来很绕啊。这样的好处是每个图元都带数据库表的id,操作就简单了。
这次直接将绘制完成的图元存入数据库,数据库向所有用户广播,发送websocket命令,将刚存入数据表的记录,发给每一个用户,在页面上自动进行绘制图元,这个绘制的就带id了。那第一个用户手动绘制的图元,其实不带id的,刷新后,就会消失,但不影响啊,数据表中已经有了,刷新就会从数据表中读取。虽然不完美,但是简单很多。

搞好的导入导出功能,支持全部geoman的图元和编辑,当然都是基于免费的部分,有几个收费的功能就没去折腾了。

框选下载也还可以,下载下来的瓦片图,按zxy命名,然后本地用一个命令行工具进行merge即可。

导入图片,自动定位挂到地图上展示

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/909013.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【工具变量】“国家级大数据综合试验区”试点城市DID(2000-2024年) - 教程

【工具变量】“国家级大数据综合试验区”试点城市DID(2000-2024年) - 教程2025-09-21 20:28 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x…

《手搓动态顺序表:从数组到自动扩容的华丽转身》 - 详解

《手搓动态顺序表:从数组到自动扩容的华丽转身》 - 详解pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas…

板子大全

整理一下常用的板子,并重新复习一下。线段树 维护复杂信息时重载 + 号,不同的修改直接在 upd() 中改。 struct SegTree{ #define ls u<<1 #define rs u<<1|1 #define mid ((l+r)>>1)ll tr[N<&l…

通过人大金仓数据库的逻辑备份与还原功能实现数据迁移

1、源数据库的操作 1.1、逻辑备份如上图所示,在源数据库进行备份。 2、目标数据库的操作 2.1、新建数据库如上图所示,新建一个目标数据库。如上图所示,设置新建数据库的名称(本例为 testDB )。如上图所示,新建目…

完整教程:GS1-128(EAN-128)编码构造方式

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

Chapter 7 Color Detection

img = cv2.imread(images/lambo.png)def stackImages(scale, imgArray):rows = len(imgArray)cols = len(imgArray[0])rowsAvailable = isinstance(imgArray[0], list)width = imgArray[0][0].shape[1]height = imgArr…

《原子习惯》-读书笔记7

2025.09.21 Day7 第6章 原动力被高估,环境往往更重要 1、产品或服务越是触手可及,你就越有可能去尝试。人们爱喝百威清啤的原因是每个酒吧里都供应它,而人们爱去星巴克的原因是它到处都有。[插图]我们喜欢一切尽在自…

PyQt数字转大写金额GUI程序开发及财务规范实现

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

第3周预习作业

Java 1. static 方法的使用与特性 应使用 static 修饰的方法:不依赖实例变量或实例方法的方法(工具方法)。 仅操作静态变量或参数的方法。 工厂方法、单例模式获取实例的方法。 纯函数式方法(无状态、输入决定输出…

01自我介绍加规划

01自我介绍加规划1. 自我介绍 大家好~我是一名大三的学生,在机缘巧合下我选择了数据科学与大数据技术这个专业,其实这纯粹是我经过多种排除下的一个结果,我第一pass掉了电子信息工程的电路,又觉得自己胜任不了需要…

《原子习惯》-读书笔记6

2025.09.19 Day6 1、研究人员向他们提出了额外要求,即他们需要为接下来的一周制订计划,明确何时何地进行锻炼。具体地说,第三组的每个成员都完成了下面这句话:“下周,我将于日时地进行为时至少20分钟的剧烈运动。…

Java LTS版本进化秀:从8到21的欢乐升级之旅

困惑于Java版本选择?轻松幽默地穿越Java LTS版本时光隧道,掌握从Java 8到21的关键特性。通过一家初创公司的系统升级故事,直观了解每个版本如何解决代码冗余、性能瓶颈等开发痛点,助你在技术选型中做出明智决策。嘿…

201912_EASER

压缩文件,掩码爆破,明文碰撞,伪加密,PNG高度隐写Tags:压缩文件,掩码爆破,明文碰撞,伪加密,PNG高度隐写 0x00. 题目 附件路径:https://pan.baidu.com/s/1GyH7kitkMYywGC9YJeQLJA?pwd=Zmxh#list/path=/CTF附件 附件名称…

搜索百科(3):Elasticsearch — 搜索界的“流量明星”

大家好,我是 INFINI Labs 的石阳。 欢迎关注 《搜索百科》 专栏!每天 5 分钟,带你速览一款搜索相关的技术或产品,同时还会带你探索它们背后的技术原理、发展故事及上手体验等。 前两篇我们探讨了搜索技术的基石 Ap…

打印机漏洞、匿名协议与AWS安全:一周技术热点解析

本周技术热点包括Windows打印机驱动漏洞攻击、MIT提出的Riffle匿名通信协议替代方案、AWS账户入侵后的持久化技术分析,以及Linus Torvalds对代码规范的争议性观点。文章还涵盖BSidesPhilly会议征稿通知。打印机水坑攻…

从零开始训练推理模型:GRPO+Unsloth改造Qwen实战指南

推理型大语言模型现在确实火了。这类模型的特点是会先对问题做充分思考,然后再给出答案,而不是直接回复。 虽然早期训练推理型 LLM 的方法多半被各家公司当作核心机密,但最近的DeepSeek-R1、DeepSeekMath、Kimi-k1.…

ALLinSSL,开源免费的SSL证书自动化管理平台

在网络安全日益重要的今天,SSL/TLS 证书不仅是 HTTPS 协议的基石,也是保护用户数据、提升 SEO 排名的关键。然而传统证书管理方式繁琐、低效,尤其在多域名或复杂云环境下,极易出错。ALLinSSL 作为一款开源免费的 S…

《原子习惯》-读书笔记5

2025.09.18 Day5 第5章 培养新习惯的最佳方式 1、随着习惯的形成,你的行为会受到你的潜意识的支配。你会身不由己地陷入旧的模式而不自知。2、你重复这些模式的次数越多,你就越不可能质疑自己在做什么以及为什么要这…

03-袁东申论-概括原因

1 能作为原因的有一下: 1.因为等标志词 2.形容词 3。对策 4.影响2 老师说,用带入的方法,看看这个是不是原因;3 对于市政的做法原因,我认为很大程度叫你找原因;45 看材料第一步,就是粗读;6 第一段没有讲原因7 相…