Mapbox GL 和 public 样式

Mapbox GL and public styles

我正在尝试使用帐户 A 中的 API 密钥绘制地图,然后设置使用帐户 B 创建的样式。

我得到一个 evented.js:92 Error: Forbidden(…),所以我想我不能 "share" 样式到其他 API 键。

有没有办法制作一种风格 "public" 并且可供所有人使用?

很遗憾,目前还没有制作样式的方法public。

如果您绝对不能使用来自同一帐户的访问令牌作为样式,您可以选择从 Mapbox Studio 下载样式表,然后将其上传到创建您正在使用的访问令牌的 Studio 帐户应用程序。一个警告是您将无法访问自定义图标或字体堆栈。

除了 mollymerp 的答案,这里还有一个快速的 n-dirty-n-partial 解决方案:

// downloaded theme from mapbox studio
const style = { ... };

// delete useless keys
delete style.metadata;
delete style.created;
delete style.id;
delete style.modified;
delete style.owner;
delete style.draft;

// replace proprietary keys by public ones
style.sprite = 'mapbox://sprites/mapbox/streets-v9';
style.glyphs = 'mapbox://fonts/mapbox/{fontstack}/{range}.pbf';

它确实有效,但你将始终拥有 street-v9 图标,因此它并不是所有颜色的最佳选择,但没有其他简单的方法可以做到这一点。

我希望有一天 Mapbox 能为我们的样式做一个 "public" 选项,这样我们就可以像 snazzymaps.com

一样分享它们