-
面临问题 (The Problem) :
- 配额焦虑:高德地图个人开发者每天只有 5000 次请求额度,用户稍微摇一摇就超限了。
- QPS 限制:并发请求太快,会被高德拦截(InfoCode 10004)。
- 浪费严重:用户在同一个地方反复摇,每次都请求 API,既慢又费钱。
-
解决方案 (The Solution) :
-
多 Key 资产池:建立
AMAP_KEYS数组,实现“自动故障转移”。一个 Key 挂了(配额耗尽/QPS超限),代码自动无感切换下一个。 -
智能缓存 (Smart Cache) :利用
Storage实现“本地池”。- 逻辑:
500米内移动 +60分钟内 = 不发网络请求,直接从本地缓存读取。 - 结果:将真实 API 调用率降低了 80% 以上。
- 逻辑:
-
-
核心代码片段:展示
requestAmap的递归切换逻辑,以及fetchShops里的缓存判断。