迁移

自托管 Open-Elevation 与使用托管端点的对比

Open-Elevation 作为开源项目的简单性是一把双刃剑。它的请求和响应格式确实很容易使用,输入一个坐标数组,输出一个以米为单位的海拔值数组;但自己运行它意味着要获取海拔数据集,把它加载到磁盘空间足够容纳它的服务器上,并确保这台服务器在您的应用需要答案时随时可用。

海拔数据集并不小。根据项目所需的分辨率和地理覆盖范围,自托管的海拔数据可能需要可观的存储空间,而且针对特定地区的高分辨率数据与更广但更粗的全球覆盖之间需要权衡。这一决定,连同服务器配置和更新频率,是团队从选择自托管那天起就承担的一项真实的持续责任,而不是一次性的搭建成本。

托管端点免去了这项责任,代价是依赖别人的基础设施和数据集选择。My Geocode 的海拔查询是一个完全可用的端点,为给定坐标返回以米为单位的地面海拔,数据来自我们自己的海拔数据,而不是需要您自己获取和加载的数据。文档位于 /docs/elevation-lookup/

比较这两条路径的诚实方法,是看您实际的使用模式,而不是对某种方式的笼统偏好:

  • 如果海拔查询并不频繁,比如只在用户查看特定路线或地点时才生成,托管端点的每日免费配额很可能就足以覆盖负载,完全不需要维护任何基础设施
  • 如果海拔查询作为核心产品功能的一部分以高且稳定的调用量进行,就值得按托管端点的价格计算每次请求的实际成本,并与自托管实例的服务器和存储摊销成本进行比较
  • 如果您的用例需要的海拔数据在分辨率或地区上正是某个自托管数据集选择专门优化的,那么无论成本比较结果如何,这都是继续自托管的正当理由

对于从自托管 Open-Elevation 实例迁移到托管端点的团队,请求模式(输入坐标,输出海拔值)在概念上保持不变,只是身份验证改为通过 X-API-KeyAuthorization: Bearer、HTTP Basic 认证或查询参数发送密钥。完全不用密钥每天即可免费请求 2,500 次,每个密钥每天再额外免费 2,500 次(按网络计算),超出后使用预付额度,每次请求 €0.0001,或者选择每月 €50 的 Unlimited 密钥,价格与平台上所有其他端点相同。

两条路径都不是放之四海而皆准的。一个偶尔每天只需要为少量坐标获取海拔的业余项目,仅靠托管端点的免费额度就能很好地满足需求。而对某个狭小地理区域有非常具体的数据分辨率要求的团队,可能会发现自托管仍然更合适,这也是诚实进行这一比较后的正当结论。