Mapbox Geocoding 兼容替换

较早的 v5 Geocoding API 和当前的 v6 端点都在 mapbox.mygeocode.com 上响应。结果是 GeoJSON FeatureCollection,其 context 数组、place_type 值和坐标顺序与 Mapbox 客户端所依赖的完全相同。

只需更换一个主机名

原始主机
  • api.mapbox.com
改用mapbox.mygeocode.com
密钥参数access_token(可选:任何地址不使用密钥每天也有 2,500 次请求;如需使用额度、套餐和使用记录,请在此填入您的 My Geocode 密钥)
之前
curl "https://api.mapbox.com/geocoding/v5/mapbox.places/1%20Market%20St%20San%20Francisco.json?access_token=YOUR_MAPBOX_TOKEN"
之后
curl "https://mapbox.mygeocode.com/geocoding/v5/mapbox.places/1%20Market%20St%20San%20Francisco.json?access_token=YOUR_MYGEOCODE_KEY"

为什么用户选择迁移

Mapbox 对临时和永久地理编码分别计费,并将用量绑定到登记了银行卡的账户。在这里,结果可以永久保留,每个密钥每天前 2,500 次请求免费。

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

查看价格 免费获取密钥

端点

mapbox.mygeocode.com 上的路径功能底层服务
/geocoding/v5/mapbox.places/{query}.json正向地理编码,v5正向地理编码
/geocoding/v5/mapbox.places/{lon},{lat}.json逆地理编码,v5逆地理编码
/search/geocode/v6/forward?q=...正向地理编码,v6正向地理编码
/search/geocode/v6/reverse?longitude=...&latitude=...逆地理编码,v6逆地理编码
/search/searchbox/v1/suggest?q=...Search Box 建议地址自动补全

响应示例

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

来自 mapbox.mygeocode.com 的响应(v5)
{
  "type": "FeatureCollection",
  "query": ["1", "market", "st", "san", "francisco"],
  "features": [
    {
      "id": "address.mg.us.4d2e8b10",
      "type": "Feature",
      "place_type": ["address"],
      "relevance": 1,
      "properties": { "accuracy": "rooftop" },
      "text": "Market Street",
      "place_name": "1 Market Street, San Francisco, California 94105, United States",
      "center": [-122.394626, 37.793858],
      "geometry": { "type": "Point", "coordinates": [-122.394626, 37.793858] },
      "address": "1",
      "context": [
        { "id": "neighborhood.mg.us.fidi", "text": "Financial District" },
        { "id": "postcode.mg.us.94105", "text": "94105" },
        { "id": "place.mg.us.sanfrancisco", "wikidata": "Q62", "text": "San Francisco" },
        { "id": "region.mg.us.ca", "short_code": "US-CA", "text": "California" },
        { "id": "country.mg.us", "short_code": "us", "text": "United States" }
      ]
    }
  ],
  "attribution": "My Geocode, https://www.mygeocode.com/terms/"
}

细节与差异

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

响应中的版权声明、许可名称、条款和隐私链接是我们的,而不是原服务商的。其他所有内容都保持原有结构。

  • v5 Places 和 v6 search 端点都已接入,Search Box suggest 端点也同样支持。
  • 与 Mapbox 一样,使用最多包含 1,000 个查询对象(正向 q 或逆向 longitude/latitude)的 JSON 数组调用 POST /search/geocode/v6/batch,会返回 {"batch": [...]},每个查询对应一个 FeatureCollection;并且与 Mapbox 的计数方式一样,每个查询计为一个请求。

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

其他兼容替换主机

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