使用 mapbox js,如何更改地图的样式?

Using mapbox js, how do I change the style of a map?

我在 header:

中包含了 mapboxjscss
<script src='//api.mapbox.com/mapbox.js/v2.2.4/mapbox.js'></script>
<link href='//api.mapbox.com/mapbox.js/v2.2.4/mapbox.css' rel='stylesheet' />

添加了地图html:

<div id='map'></div>
<style>
    body { margin:0; padding:0; }
    #map { width:100%; height:471px; }
</style>

然后在js做了一张图:

L.mapbox.accessToken = 'pk.eyJ1Ijoic21pY2tpZSIsImEiOiJjaWtiM2JkdW0wMDJudnRseTY0NWdrbjFnIn0.WxGYL18BJjWUiNIu-r3MSA';
var map = L.mapbox.map('map', 'mapbox.streets').setView([40, -74.50], 3);

我不知道如何将它的样式更改为我在 mapbox 工作室中的样式。

我在 mapbox studio 中有两个样式 url:

mapbox://styles/smickie/cikb3fhvi0063cekqns0pk1f1

https://api.mapbox.com/styles/v1/smickie/cikb3fhvi0063cekqns0pk1f1.html?title=true&access_token=pk.eyJ1Ijoic21pY2tpZSIsImEiOiJjaWtiM2JkdW0wMDJudnRseTY0NWdrbjFnIn0.WxGYL18BJjWUiNIu-r3MSA#1.4858291953347187/42.16057367191365/1.6334765316350683/0

如何将这些样式应用于我页面中的地图?

这是 api 但我找不到如何在任何地方更改样式:https://www.mapbox.com/mapbox.js/api/v2.2.4/

编辑:由于引入了 Mapbox.js API 的 v2.3.0,因此更新了此答案。它添加了一个 L.mapbox.styleLayer 可以处理使用 Mapbox studio 创建的样式:

L.mapbox.styleLayer('mapbox://styles/mapbox/emerald-v8').addTo(map);

示例:https://www.mapbox.com/mapbox.js/example/v1.0.0/stylelayer/

Mapbox 2.3.0之前的回答:

你用错了API,这些样式是为 Mapbox-GL 使用的 api:

https://www.mapbox.com/mapbox-gl-js/examples/

如果您想像现在一样使用经典 Mapbox API,您需要使用 Mapbox Studio Classic 来创建您自己的样式图块集:

https://www.mapbox.com/studio/classic/