我有一个学生正在使用 MapBox.js (v1.6.0) 来显示他们在 TileMill 中制作的一些图块。这些图块使用 TileMill(文档)提供的工具提示功能来添加一些交互性。我的学生还使用 MapBox Streets 图层来提供道路等的详细视图。问题是,当我在地图中同时使用这两个图层时,瓷砖的交互性不起作用。
这是不起作用的代码:
var map = L.mapbox.map("map");
var tilesOSM = L.mapbox.tileLayer("username.id1");
var tilesTileMill = L.mapbox.tileLayer("username.id2");
map
.addLayer(tilesOSM)
.addLayer(tilesTileMill)
.setView(L.latLng(61, -160.5), 4)
.setMaxBounds(L.latLngBounds(L.latLng(50,-180), L.latLng(72,-129)));
我们已经尝试了该代码的多次迭代,但我们让它工作的唯一方法是使用 L.mapbox.map(3) 方法,然后使用 L.map.addLayer() 函数的 _ insertAtTheBottom_ 参数。
var map = L.mapbox.map("map", "username.id2", {});
map
.addLayer(L.mapbox.tileLayer("username.id1"), true)
.setView(L.latLng(61, -160.5), 4)
.setMaxBounds(L.latLngBounds(L.latLng(50,-180), L.latLng(72,-129)));
我的问题是三个方面。
- 这两种实现有什么区别?
- 为什么使用 L.mapbox.tileLayer() 创建的 tileLayer 与使用 L.mapbox.map(3) 创建和自动添加的不同?
- 是否有计划在未来对 API 的更改中解决这种不连续性,或者是否会在 TileMill 2 中放弃对交互式瓷砖的支持?