单张自定义图块的自定义地图

时间:2015-12-10 09:25:14

标签: javascript leaflet

我正在尝试使用leafletjs创建自定义地图,并且我已经为0.6.x版本找到了它,但是当它涉及最新版本(0.7.x)时它不起作用。

这是适用于0.6.x的代码

以前有人遇到过这个问题吗?

var mapMinZoom = 0;
    var mapMaxZoom = 5;
    var map = L.map('wu-map', {
      maxZoom: mapMaxZoom,
      minZoom: mapMinZoom,
      crs: L.CRS.Simple
    }).setView([0, 0], mapMaxZoom);

    var mapBounds = new L.LatLngBounds(
      map.unproject([0, 3072], mapMaxZoom),
      map.unproject([4352, 0], mapMaxZoom));

    map.fitBounds(mapBounds);

    L.tileLayer('images/map/{z}/{x}/{y}.png', {
      minZoom: mapMinZoom, maxZoom: mapMaxZoom,
      bounds: mapBounds,
      attribution: 'Rendered with <a href="http://www.maptiler.com/">MapTiler</a>',
      noWrap: true,
      tms: false
    }).addTo(map);

1 个答案:

答案 0 :(得分:1)

leaflet.js选项设置为crs值(而不仅仅是)时,L.CRS.Simple 0.7版本中存在一个错误。 Leaflet 0.7引入了L.CRS.getSize(一个函数,它返回特定坐标参考系统特定缩放的世界大小),默认情况下调用并返回与L.CRS.scale相同的值。它适用于默认的CRS,而对其他CRS则无效。

我建议的是从您的选项对象中删除crs: L.CRS.Simple,它将设置为默认值(L.CRS.EPSG3857):

var map = L.map('wu-map', {
  maxZoom: mapMaxZoom,
  minZoom: mapMinZoom
}).setView([0, 0], mapMaxZoom);