ClearCrop Map
体验地址:https://map.mliae.ccwu.cc/
开源地址:https://github.com/mliae/ClearCrop-Map (有需要的可以联系我定制)
ClearCrop Map 一款专为植保无人机而生的高清卫星地图,专为大疆、极飞打造的自定义地图瓦片服务。0.1 米级高清影像,AI 研判图块时效,一键接入遥控器与农服 App,让每一次巡田、测绘都看得清、飞得准。
面向植保飞手的高清卫星地图瓦片服务:注册后拿到专属瓦片链接,填入大疆 / 极飞 App 的「自定义地图」,即可在国内访问增强后的高清卫星影像(WGS-84 无偏移,与无人机 GPS 对齐)。
基于 Cloudflare 全家桶(Workers + R2 + D1 + KV)构建,零服务器、零出口费,免费额度即可跑起 MVP。

✨ 特性
- 多源择优:谷歌 + Esri + 必应三源,按区域自动选最清晰源,单源失效自动回退
- 高清度增强:2× 高分瓦片(512px)、放开缩放层级至 z=21/22、首次回源时图像增强(对比度/锐化/去雾)后永久缓存
- 用户系统:邮箱注册 + JWT 会话 + 每用户专属 API Token(填入遥控器长期使用)
- 配额分级:free / basic / pro 三档,按小时限流防刷爆,阈值后台可调
- R2 缓存:瓦片永久缓存,命中率 >90%,增强只做一次,后续零处理成本
- 可视化后台:6 个单一职责标签页(概览 / 图源配置 / 增强与缩放 / 配额配置 / 用户管理 / 管理员设置),运营数据(请求量、缓存命中率、活跃用户、图源占比、14 天趋势)一目了然
- 域名解耦:路由全相对路径,换域名仅需 Cloudflare 控制台绑定 Custom Domain,代码零改动
🛠 技术栈
| 层 | 技术 |
|---|---|
| 边缘运行时 | Cloudflare Workers + Hono |
| 对象存储 | Cloudflare R2(瓦片缓存,零出口费) |
| 关系数据库 | Cloudflare D1(用户、配置、运营统计) |
| 键值存储 | Cloudflare KV(限流计数) |
| 鉴权 | Web Crypto PBKDF2-SHA256(密码)+ HS256 JWT(会话) |
| 前端 | 原生 HTML + Leaflet,Workers Assets 托管,零构建 |
| 语言 | TypeScript(严格类型) |
🏗 架构
用户(遥控器/App/网页)
│ GET /tiles/{z}/{x}/{y}?token=xxx&scale=2
▼
┌───────────────────────────────────────────┐
│ Cloudflare Workers (Hono) │
│ 1. 鉴权(token→用户/等级) 2. 配额限流 │
│ 3. 查 R2 缓存(含增强版) → 命中即返 │
│ 4. 未命中 → 多源回源 → 图像增强 → 写 R2 │
└───────────────┬───────────────────────────┘
│
┌────────┼──────────────┐
▼ ▼ ▼
R2(瓦片) KV(限流) D1(用户/配置/统计)
零出口费 配额计数 users · configs · stats
▲
└──── 多源:谷歌 mt.google.com · Esri · 必应 (均 WGS-84)
📁 项目结构
ClearCrop Map/
├── src/
│ ├── index.ts # Hono 路由总装
│ ├── routes/
│ │ ├── tiles.ts # 瓦片:鉴权→限流→缓存→多源回源→增强
│ │ ├── auth.ts # 注册/登录/JWT
│ │ └── admin.ts # 后台 API + 统计 + 账号管理
│ ├── middleware/
│ │ ├── auth.ts # token/JWT 鉴权
│ │ └── ratelimit.ts # 配额限流 + 埋点
│ ├── lib/
│ │ ├── sources.ts # 多源 URL 构造 + 择优/回退
│ │ ├── enhance.ts # 图像增强(对比度/锐化)
│ │ ├── cache.ts # R2 读写
│ │ ├── crypto.ts # PBKDF2 / JWT
│ │ ├── config.ts # 配置读取(D1)
│ │ ├── stats.ts # 运营统计写入
│ │ └── init.ts # D1 初始化
│ └── schema.sql # 建表语句
├── public/ # index.html + admin.html + Leaflet
├── wrangler.toml
├── DESIGN.md # 完整技术设计文档
└── package.json
🚀 快速开始
前置要求
- Node.js 18+
- Cloudflare 账号(免费额度即可)
部署步骤
# 1. 安装依赖
npm install
# 2. 登录 Cloudflare
npx wrangler login
# 3. 创建资源
npx wrangler r2 bucket create clearcrop-tiles
npx wrangler kv namespace create RL
npx wrangler d1 create clearcrop
# 4. 把上一步输出的 ID 填入 wrangler.toml,然后建表
npx wrangler d1 execute clearcrop --remote --file=./src/schema.sql
# 5. 配置密钥
npx wrangler secret put JWT_SECRET
npx wrangler secret put ADMIN_EMAIL # 初始管理员邮箱
npx wrangler secret put ADMIN_PASSWORD # 初始管理员密码
# 6. 本地调试 / 部署上线
npm run dev
npm run deploy
部署后在 Cloudflare 控制台为 Worker 绑定自定义域名即可,代码无需任何改动。
📡 遥控器接入
- 注册 / 登录后在「我的账号」复制专属瓦片链接,格式:
````
https://你的域名/tiles/{z}/{x}/{y}?token=用户专属token
- 大疆农服 App:开始 → 图层 → 二级高清地图 → 自定义链接 → 粘贴
- 极飞 App:图层 → 自定义地图 → 粘贴
坐标系为 WGS-84 无偏移,与无人机 RTK/GPS 完全对齐,不走 GCJ-02/BD-09 偏移图源。
🗺 路线图
| 阶段 | 内容 | 状态 |
|---|---|---|
| P0 | 多源择优 + 2× 高分 + 图像增强 + R2 缓存 + 用户系统 + 配额 + 后台 + 展示页 | ✅ |
| P3 | 仪表盘完善(请求量/命中率/活跃用户/图源占比/14 天趋势) | ✅ |
| P3+ | 后台用户管理(创建/删除/改级)+ 管理员账号设置(改密/重置 Token) | ✅ |
| P1 | 离线超分工具(Real-ESRGAN,选定农田区域按需预生成) | 🔜 |
| P2 | 地块规划(画多边形 + 一键导出 KML/KMZ 供作业) | 🔜 |
⚠️ 免责声明
本项目为技术学习与交流用途,面向个人植保作业辅助。
- 代理第三方(谷歌/必应)瓦片存在服务条款风险,公开商业运营需自行评估并承担责任;
- 向公众提供地图服务涉及《测绘法》等法规,使用者需自行评估合规边界;
- 项目作者不对任何因使用本代码产生的后果负责,请控制规模、合规使用。

评论