不用联网也能查地址?这个 Galuchat 把地理数据压到了极致
如果你在做嵌入式开发或者开发一些需要离线定位的工具,肯定遇到过这个痛点:想把经纬度转成具体的行政区划名称(逆地理编码),但调用 Google Maps 或者高德的 API 既费钱又有延迟,更别说在没网的 ESP32 或者 RP2040 上根本没法调 API。
这意味着什么?如果你用的是 ESP32 或者 RP2350 这种带 Flash 的微控制器,你完全可以把整个日本的行政区划直接烧录进芯片里。即便是在没有任何 Wi-Fi 或蜂窝网络的情况下,GPS 模块传回经纬度,芯片自己就能瞬间算出你在哪个区、哪个镇。
下一篇
Windows 强制更新到底什么时候是个头 →
最近看到一个叫 Galuchat 的开源项目,思路非常硬核。它不是那种传统的存储矢量多边形数据的方法,因为多边形数据太大了,单片机根本塞不下。作者用了一种“栅格化分割图”的方案:把行政区域直接转换成一张超大的位图,然后进行二进制压缩。
这种做法最牛的地方在于它能根据需求灵活调整分辨率,体积控制得极其夸张。我看了下它的数据指标:
- 日本全境行政区划(1.1km 分辨率): 居然只有 52 KiB,加上地名字典也就 80 多 KiB。
- 日本全境精细数据(11m 分辨率): 包含镇区级别的,总大小也就 26 MiB 左右。
- 全球行政区划(111m 分辨率): 压缩后只有 20 MiB 左右。
这意味着什么?如果你用的是 ESP32 或者 RP2350 这种带 Flash 的微控制器,你完全可以把整个日本的行政区划直接烧录进芯片里。即便是在没有任何 Wi-Fi 或蜂窝网络的情况下,GPS 模块传回经纬度,芯片自己就能瞬间算出你在哪个区、哪个镇。
对于 Web 端开发者来说,这个方案也很有实操价值。你可以让浏览器一次性下载几十 MB 的全球数据,之后处理成千上万个 GPS 坐标点时,完全不需要请求后端,也不用担心 API 的频率限制。甚至结合 WebMCP,可以让 AI Agent 在浏览器本地直接调用这个地理查询能力,整个过程不需要联网,响应速度极快。
项目源码地址在这里,感兴趣可以去翻翻它的实现逻辑:
https://github.com/nyatla/galuchat-gis-sdk对于那些需要在边缘计算、物联网设备或者隐私敏感场景下做地理定位的同学来说,这种“数据本地化”的思路确实值得借鉴。
免费 AI 工具箱 · 全部完全免费