如何在cartodb中使用mapbox地图

时间:2014-12-18 23:31:19

标签: leaflet mapbox cartography

我尝试将此地图https://a.tiles.mapbox.com/v4/felixmichel.kh7h21lp/page.html?access_token=pk.eyJ1IjoiZmVsaXhtaWNoZWwiLCJhIjoiZWZrazRjOCJ9.62fkOEqGMxFxJZPJuo2iIQ#11/47.6732/7.5352整合到cartodb中。但是,它不起作用。我使用cartodb.js因为我添加了更多查询,所以我需要这个部分的正确链接:

L.tileLayer('https://a.tiles.mapbox.com/v4/felixmichel.kh7h21lp/page.html?access_token=pk.eyJ1IjoiZmVsaXhtaWNoZWwiLCJhIjoiZWZrazRjOCJ9.62fkOEqGMxFxJZPJuo2iIQ#11/47.6732/7.5352', {
      attribution: 'CartoDB'
    }).addTo(map);

如果有人知道一张漂亮的地形图,我也很高兴。

1 个答案:

答案 0 :(得分:2)

您的tileLayer网址有问题,它希望网址包含zoomlevel {z}和{x}以及{y}的占位符作为轴值。您已使用实际图块中的网址,这将无效。

L.tileLayer('https://a.tiles.mapbox.com/v4/felixmichel.kh7h21lp/{z}/{x}/{y}.png?access_token={token}', {
    attribution: 'Mapbox',
    subdomains: ['a','b','c','d'],
    token: 'pk.eyJ1IjoiZmVsaXhtaWNoZWwiLCJhIjoiZWZrazRjOCJ9.62fkOEqGMxFxJZPJuo2iIQ'
}).addTo(map);

请注意,正如您所看到的,它还支持{s}占位符从多个子域(必须由您的tileprovider支持.Mapbox支持)加载,这要快得多,因为浏览器可以同时从四个子域同时加载。我还使用{token}占位符将访问令牌与网址分开,以证明您可以根据需要使用自己的自定义令牌。

以下是Plunker的一个实例:http://plnkr.co/edit/lsTO9KzPMyzEKr06It1I?p=preview

这里是Leaflet的L.TileLayer的参考:http://leafletjs.com/reference.html#tilelayer