0
我喜歡畫畫幾個不同的小片段(GPX文件),每一個單獨的傳單地圖幾種不同的單張地圖
有了這個代碼,我試圖解決該問題寫上,即單張需要一個新的層在地圖
我用「層」 - 陣列存儲所有地圖參考...
<script>
var layers = [];
var i = 0;
var ref;
</script>
@for(segment <- segments) {
<div id="@segment.id" style="height:300px"></div>
<script>
layers[i] = L.map("@segment.id");
L.tileLayer('http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', {
}).addTo(layers[i]);
var url = '/assets/gpx_files/@segment.gpxPath';
new L.GPX(url, {
async: true,
marker_options: {
startIconUrl: '/assets/images/pinIcon.png',
endIconUrl: '/assets/images/pinIcon.png',
shadowUrl: '/assets/images/pinIconShadow.png'
}
}).on('loaded', function(e) {
layers[i].fitBounds(e.target.getBounds());
}).addTo(layers[i]);
i = i+1;
</script>
(我有一個存儲了每個段的新層「層」 - 陣列,因爲傳單否則無法處理)
但單張不喜歡
layer[i].fitBounds
- >類型錯誤:層[i]是未定義
有沒有人對我來說是個好主意?
你能在一個'的console.log(層)的地方'前行引發錯誤,所以我們可以看到最新回事?或者更好的是,你能不能到位這在一個在線演示?地圖容器是否被創建?是否正確插入了@ segment.id? – snkashis
我構建了一個小例子,但是我沒有找到鏈接gpx文件的方法。 http://jsbin.com/xovuseqata/2/edit?html,css,output 如果將行「var ref = layers [i];」替換爲「在「圖層[i]」出現問題時,當前只有最後一張地圖顯示該曲目。 我測試了@ segment.id,它絕對正確工作。 – Tauling
作爲旁註,您不應該在同一頁面上包含Leaflet 0.5和Mapbox 2.1.9。刪除'http:// cdn.leafletjs.com/leaflet-0.5/leaflet.js'引用。 – snkashis