解决单一用户损耗过多高德api配额的问题

79 阅读1分钟
  • 面临问题 (The Problem)

    • 配额焦虑:高德地图个人开发者每天只有 5000 次请求额度,用户稍微摇一摇就超限了。
    • QPS 限制:并发请求太快,会被高德拦截(InfoCode 10004)。
    • 浪费严重:用户在同一个地方反复摇,每次都请求 API,既慢又费钱。
  • 解决方案 (The Solution)

    • 多 Key 资产池:建立 AMAP_KEYS 数组,实现“自动故障转移”。一个 Key 挂了(配额耗尽/QPS超限),代码自动无感切换下一个。

    • 智能缓存 (Smart Cache) :利用 Storage 实现“本地池”。

      • 逻辑:500米内移动 + 60分钟内 = 不发网络请求,直接从本地缓存读取。
      • 结果:将真实 API 调用率降低了 80% 以上。
  • 核心代码片段:展示 requestAmap 的递归切换逻辑,以及 fetchShops 里的缓存判断。

image.png

image.png