1

我有一个非常基本的stamen map. 如果我缩放到 19 级,则不会显示地图。我认为这是因为文件http://maps.stamen.com/js/tile.stamen.js中的最高级别为 18 。我该怎么做才能让某人缩放到 19 级?

<!DOCTYPE HTML>
<html>
<head>
<title>Eine OSM Karte mit Leaflet</title>
<link rel="stylesheet" href="https://unpkg.com/leaflet@1.1.0/dist/leaflet.css" />
<script src="https://unpkg.com/leaflet@1.1.0/dist/leaflet.js"></script>
<script type="text/javascript" src="http://maps.stamen.com/js/tile.stamen.js"></script>
</head>
<body>
<div style="height: 700px;" id="mapid"></div>
<script>
var mymap = L.map('mapid').setView([50.27264, 7.26469], 13);
var layer = new L.StamenTileLayer("watercolor");
mymap.addLayer(layer);
</script>
  toner,terrain,terrain-classic,watercolor
</body>
</html>

提前致谢。

4

1 回答 1

2

实际上可以覆盖StamenTileLayer.

实例化后,只需将其设置options.maxZoom(在您的情况下为 19,以便图层以该缩放级别保持在地图上)和options.maxNativeZoom(在您的情况下为 18,以便 Leaflet 不会尝试在缩放 19 时获取图块,而是重新- 使用缩放 18 中的那些并适当地缩放它们)。

var layer = new L.StamenTileLayer("watercolor");

// Override Tile Layer maxZoom.
layer.options.maxZoom = 19;

// But specify that tiles are available only up to zoom level 18.
layer.options.maxNativeZoom = 18;

演示:http ://plnkr.co/edit/gumgWckQycEvg9Gaqt3s?p=preview

于 2017-07-25T15:07:21.150 回答