2015-01-26 52 views
1

是否有可能在使用Stamen Toner-lite tiles的Leaflet地图上具有中间(2.5,3.5,4.5等)缩放级别?这是我的代码到目前为止,计算缩放级别:小册子:自定义缩放级别可能吗?

leafletmap.on('zoomstart', function (d){ 
    targetZoom = leafletmap.getZoom(); //Grabs whatever current zoom level is 
    targetZoom = targetZoom +.5; //Adds .5 
    leafletmap.setZoom(targetZoom); //Sets new value to zoom level 
    console.log(targetZoom); //Consoles out new value 
}); 

我尝试了添加0.5〜代码,但我得到一个错误too much recursion,所以我猜它不是那么简单。任何帮助或方向非常感谢!

回答

4

要直截了当:这是不可能的。您需要呈现自己的平铺图像,运行自己的服务器,并为Leaflet创建自己的坐标参考系统(CRS)扩展。如果你看看如何制作正规的瓷砖,你会明白为什么。

请求瓷砖的雄蕊的网址:

http://{s}.tile.stamen.com/toner/{z}/{x}/{y}.png 

当请求砖,{z}将与地图的当前缩放级别取代。 {x}{y}是瓦片的坐标。 {s}将被替换为子域名。如果你能

http://a.tile.stamen.com/toner/6/1/1.png 

现在(但你不能)变焦水平6.5,将尽量负载:所以,如果你在缩放级别6在坐标1,1它会尝试加载

http://a.tile.stamen.com/toner/6.5/1/1.png 

这些瓷砖简单不存在雄蕊服务器上,因此返回404找不到文件。您可以尝试自己只是使用这些链接:

http://a.tile.stamen.com/toner/6/1/1.png

http://a.tile.stamen.com/toner/6.5/1/1.png

http://a.tile.stamen.com/toner/7/1/1.png

所以这不会有任何效果。如上所述,您可以运行自己的平铺服务器,呈现自己的平铺图像并设置自己的L.CRS。您可能也想看看这个问题:Adding an extra zoom levels in Leaflet Maps

+0

感谢您直接回复@ iH8。我看到了前面的问题并做了一些研究,但我不确定过去两年的情况是否有所改变。非常感激! – BDD 2015-01-27 01:13:23