以编程方式更新tileset

时间:2017-11-24 22:26:50

标签: mapbox mapbox-gl-js mapbox-gl

Mapbox数据管理工作流documentation(或我的unserstanding)似乎缺乏。

我目前有一个自定义style,其中添加了一些自定义tilesets。每当我的tileset数据需要更新时,是否有优雅的方式通过API更新现有数据并保留特定style的任何样式?

我最好猜测工作流程的样子:

  1. 请求Mapbox S3凭据
  2. 将数据上传到新tileset
  3. 检索新的tileset ID
  4. 列出style的当前tileset ID
  5. tileset
  6. 中删除旧的style
  7. 将新tileset添加到style
  8. 重新设计新tileset以匹配旧tileset
  9. 我希望我错过一些明显可以让我做以下事情的事情:

    1. 更新style的{​​{1}}数据

1 个答案:

答案 0 :(得分:2)

您可以使用Mapbox的mapbox-upload节点模块替换现有的tileset:https://github.com/mapbox/mapbox-upload

var progress = upload({
    file: __dirname + '/test.mbtiles', // Path to mbtiles file on disk.
    account: 'test', // Mapbox user account.
    accesstoken: 'validtoken', // A valid Mapbox API secret token with the uploads:write scope enabled.
    mapid: 'test.upload', // The identifier of the map to create or update.
    name: 'My upload' // Optional name to set, otherwise a default such as original.geojson will be used.
});

mapid属性设置为现有tileset的id。现实生活中的例子here

同样通过命令行:

$ npm install --global mapbox-upload
$ export MapboxAccessToken=<access token with uploads:write scope enabled>
$ mapbox-upload username.dataid /path/to/file