tile38 一款开源的geo 数据库
tile38 是基于golang 编写的geo 数据库,支持地理空间索引、实时地理围栏,同时也支持leader-flower 的部署模型
备注: 下边测试一个简单的地理围栏功能
环境准备
- docker-compose 文件
包含了一个简单的webhook 工具
version: "3"
services:
app:
image: tile38/tile38
ports:
- "9851:9851"
benthos:
image: jeffail/benthos
volumes:
- "./conf/webhook.yaml:/benthos.yaml"
ports:
- "4195:4195"
运行&&测试地理围栏功能
启动
docker-compose up -d
使用
- 进入容器 app (tile38 服务)
docker-compose exec app sh
tile38-cli
- 添加webhook格式
SETHOOK name endpoint [META name value
- 添加数据围栏:
/ # tile38-cli
127.0.0.1:9851> SETHOOK warehouse http://benthos:4195/ NEARBY fleet FENCE POINT 33.462 -112.268 6000
{"ok":true,"elapsed":"118.008µs"}
- 添加进入围栏区域的数据
SET fleet truck1 POINT 33.5123 -112.2693
- webhook 数据
docker-compose logs -f benthos
效果
benthos_1 | get email message: {"command":"set","group":"5c395823b1e3cb00012724bc","detect":"enter","hook":"warehouse","key":"fleet","time":"2019-01-12T02:59:47.766263252Z","id":"dalong","object":{"type":"Point","coordinates":[-112.2693,33.5123]}}
benthos_1 | get email message: {"command":"set","group":"5c395823b1e3cb00012724bc","detect":"inside","hook":"warehouse","key":"fleet","time":"2019-01-12T02:59:47.766263252Z","id":"dalong","object":{"type":"Point","coordinates":[-112.2693,33.5123]}}
说明:
默认的webhook 数据会包含所有包含的类型,我们可以指定需要的类型
NEARBY fleet FENCE DETECT inside,outside POINT 33.462 -112.268 6000
说明
tile38 使用简单,包含了rest 以及resp 协议的支持,同时webhook支持多种协议 http,https,redis,nats,grpc。。。
参考资料
https://tile38.com/topics/geofencing/
https://github.com/tidwall/tile38
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)