2015-01-26 50 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