【问题标题】:Leaflet custom map with custom tiles带有自定义图块的传单自定义地图
【发布时间】:2015-12-10 09:25:13
【问题描述】:

我正在尝试使用 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);

【问题讨论】:

  • 你得到什么错误?
  • 没有错误,地图只是没有显示出来,尽管它与 0.6.x 版本完美配合
  • 你的意思是地图根本没有显示(甚至是zoomIn和zoomOut按钮)还是瓦片层没有被加载?
  • 只有地图不显示,其他元素放大按钮有效。

标签: javascript leaflet


【解决方案1】:

leaflet.js 0.7 版本中存在一个错误,当crs 选项设置为L.CRS.Simple 值(不仅如此)时会出现该错误。 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);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-12-01
    • 2022-10-04
    • 2016-06-17
    • 2019-04-15
    • 1970-01-01
    • 1970-01-01
    • 2017-08-01
    • 1970-01-01
    相关资源
    最近更新 更多