2016-07-27 77 views
0

首先,我使用TileMill創建地圖,然後將其導出爲「.mbtiles」,然後使用該文件的mbutil I生成的瓷磚(.png)導出。從mbutil生成的瓷磚不使用leafletjs渲染

現在,我想用leafletjs使用那些磚,但它返回一個錯誤: enter image description here

當我檢查文件,它不匹配。 enter image description here

這裏有什麼問題?

這裏是我的代碼:

var map = L.map('map').setView([7.038218,9.017317], 13); 
L.tileLayer(
    'cbr90013/{z}/{x}/{y}.png', { 
     minZoom: 13, 
     maxZoom: 19, 
     attribution: '© <a href="https://www.mapbox.com/map-feedback/">Mapbox</a> © <a href="http://www.openstreetmap.org/copyright">OpenStreetMap</a>' 
    }).addTo(map); 

回答

1

幾件事情來嘗試

  • 檢查的setView你的座標爲(),他們應該是LatLong

  • 在調用mbutil之後的輸出文件夾中,應該有一個名爲metadata.json的文件,這可能很有用。檢查它是否列出schemexyztms)。這會告訴你瓷磚的Y方向

  • 你也可以使用這個Maptiler.com tool來給你一個視覺,告訴你在谷歌地圖上缺失的瓷磚的位置。您可能需要添加tms屬性。默認值爲false,因爲您沒有它,所以您可以添加它並將其設置爲true。

您的LatLng座標與您缺少的圖塊(例如13/4979/6931.png)不匹配,因此可能存在不匹配。


var map = L.map('map').setView([7.038218,9.017317], 13); 
L.tileLayer(
     'cbr90013/{z}/{x}/{y}.png', { 
     tms: true 
     minZoom: 13, 
     maxZoom: 19, 
     attribution: '© <a href="https://www.mapbox.com/map-feedback/">Mapbox</a> © <a href="http://www.openstreetmap.org/copyright">OpenStreetMap</a>' 
    }).addTo(map); 
+0

Thanks.So,我應該在生成磚用什麼方案? xyz或tms? –

+0

您可以使用'mb-util --help'來檢查選項。 mb-util也給出了方案的描述。 – RobLabs

+0

我在mbutil中使用「tms」作爲我的方案,在舊版本的傳單中您需要添加'tms:true',因爲您可以在url中設置新的{-y}'。 –