迁移

OpenCage、LocationIQ 与 Geoapify:真正的区别在哪里

OpenCage、LocationIQ 和 Geoapify 在开发者讨论中经常被相提并论,因此值得准确说明它们之间真正的区别,因为它们的相似之处是真实的,而对集成而言重要的差异同样是真实的。

三者都使用作为查询参数发送的密钥进行身份验证,这是中小型地理编码服务商中最常见的模式。它们的分歧在于服务范围和响应结构。

OpenCage 专注于狭窄的范围:地理编码和逆地理编码,响应围绕一个 results 数组和一个把地址拆分为 roadcity 等字段的 components 对象构建。它在底层融合了多个开放数据源,其吸引力主要在于简单,以及对底层数据来源的透明。

LocationIQ 同样建立在开放地理数据之上,其响应结构(latlondisplay_name 以及一个 address 对象)对直接使用过 OpenStreetMap 衍生数据的人来说会很眼熟。选择它的往往是那些希望以开放数据为基础、在其上有一层托管 API,而又不必自己运行地理编码基础设施的团队。

Geoapify 采取了更宽泛的做法,把地理编码与路线规划、地点搜索和地图样式捆绑在同一个 API 密钥和账户下。它的地理编码响应采用类似 GeoJSON 的 features 数组结构,包含 propertiesgeometry 对象。捆绑才是这里真正的区别:选择 Geoapify 的团队,往往是在决定把多项位置功能整合到一家供应商,而不只是挑选一个地理编码器。

对于正在评估这三者之一或打算从其中之一迁出的团队,首先值得回答的结构性问题是:您只需要地理编码(OpenCage 或 LocationIQ 都符合这种较窄的需求),还是需要在一个账户下使用更广泛的位置功能(这更接近 Geoapify 的设计初衷)。

My Geocode 为这三家都运行了兼容主机:OpenCage 的 results 和 components 结构见 /compatibility/opencage/,LocationIQ 的 lat、lon 和 display_name 字段见 /compatibility/locationiq/,Geoapify 的 features 数组见 /compatibility/geoapify/。每个兼容主机都完全复现其服务商的结构,只有版权、条款和隐私文字不同,这意味着目前分散使用其中两家的团队,或正在评估整合的团队,可以在同一个平台上测试每种结构,而无需三个独立账户。

三个兼容主机的身份验证都接受 X-API-Key 请求头、Authorization: Bearer、HTTP Basic 认证或查询参数。无论您使用哪种结构,价格都相同:不用密钥每天免费 2,500 次请求,每个密钥每天另有 2,500 次免费请求,按网络计算,之后按每次请求 €0.0001 使用预付额度,或使用每月 €50 的 Unlimited 密钥,所有端点价格相同。