TomTom Search 兼容替换

TomTom 的 Geocode、Reverse Geocode 和 Fuzzy Search 端点都在 tomtom.mygeocode.com 上响应,summary 和 results 结构完全相同,包括大多数集成用于显示的 freeformAddress 字段。

只需更换一个主机名

原始主机
  • api.tomtom.com
改用tomtom.mygeocode.com
密钥参数key(可选:任何地址不使用密钥每天也有 2,500 次请求;如需使用额度、套餐和使用记录,请在此填入您的 My Geocode 密钥)
之前
curl "https://api.tomtom.com/search/2/geocode/Avenida%20Paulista%201578%20S%C3%A3o%20Paulo.json?key=YOUR_TOMTOM_KEY"
之后
curl "https://tomtom.mygeocode.com/search/2/geocode/Avenida%20Paulista%201578%20S%C3%A3o%20Paulo.json?key=YOUR_MYGEOCODE_KEY"

为什么用户选择迁移

TomTom 的免费套餐为每天 2,500 次交易,与我们相同,但在那里一次交易可能消耗多个积分。在这里每次调用就是一个请求,付费使用还有固定价格选项。

无论是否使用密钥,免费配额都相同。发往 tomtom.mygeocode.com 的请求,与您的地址或密钥在我们自有端点上获得的每天 2,500 次免费请求合并计算。超出后,使用预付额度按每次请求 €0.0001 计费,或使用 Unlimited 密钥每月 €50。注册只需一个电子邮件地址,别无其他。

查看价格 免费获取密钥

端点

tomtom.mygeocode.com 上的路径功能底层服务
/search/2/geocode/{query}.json地理编码正向地理编码
/search/2/structuredGeocode.json?countryCode=...&streetName=...结构化地理编码正向地理编码
/search/2/reverseGeocode/{lat},{lon}.json逆地理编码逆地理编码
/search/2/search/{query}.json?typeahead=true带输入联想的模糊搜索地址自动补全

响应示例

这是上述请求返回的内容。字段名、嵌套和类型与 TomTom 一致。只有背后的数据来自我们。

来自 tomtom.mygeocode.com 的响应
{
  "summary": {
    "query": "avenida paulista 1578 sao paulo",
    "queryType": "NON_NEAR",
    "queryTime": 21,
    "numResults": 1,
    "offset": 0,
    "totalResults": 1,
    "fuzzyLevel": 1
  },
  "results": [
    {
      "type": "Point Address",
      "id": "mg.br.addr.7d1a55f2",
      "score": 11.98,
      "address": {
        "streetNumber": "1578",
        "streetName": "Avenida Paulista",
        "municipalitySubdivision": "Bela Vista",
        "municipality": "São Paulo",
        "countrySecondarySubdivision": "São Paulo",
        "countrySubdivision": "São Paulo",
        "countrySubdivisionCode": "SP",
        "postalCode": "01310-200",
        "countryCode": "BR",
        "country": "Brasil",
        "countryCodeISO3": "BRA",
        "freeformAddress": "Avenida Paulista 1578, Bela Vista, São Paulo, SP 01310-200",
        "localName": "São Paulo"
      },
      "position": { "lat": -23.561414, "lon": -46.655881 },
      "viewport": {
        "topLeftPoint": { "lat": -23.560514, "lon": -46.656881 },
        "btmRightPoint": { "lat": -23.562314, "lon": -46.654881 }
      }
    }
  ]
}

细节与差异

每天前 2,500 次请求无需密钥。如需使用 My Geocode 密钥,请将其放在原来 TomTom 密钥的位置:key 查询参数。X-API-Key 请求头、Authorization: Bearer 和 HTTP Basic 认证(以密钥作为用户名)也适用于每个主机,因此以自有方式进行认证的客户端库无需任何修改即可继续工作。

  • 自由格式、结构化和逆地理编码均已接入,另外还有 search 端点。
  • 响应保留 TomTom 的 summaryresults 结构。
  • Batch Search 两种方式都支持。POST /search/2/batch/sync.json 一次最多响应 100 个 batchItems,采用 TomTom 的结构(每项包含 statusCoderesponse,以及 summary)。POST /search/2/batch.json 最多接受 10,000 项,返回 202 和 Location 请求头,结果从该地址获取。与 TomTom 的计数方式一样,每个批量条目计为一个请求;超过剩余配额的批量请求将以 TomTom 的 429 整体拒绝,获取已存储的结果不计费。

如果您的客户端依赖于此处未列出的字段或行为,请告诉我们。兼容性缺口通常很小,因此会很快修复。

其他兼容替换主机

兼容替换的工作原理概览以及 JavaScript 库兼容替换