2012-02-15 41 views
1

下午好,即時通訊嘗試從數組中傳遞2個獨立多段線的座標,到目前爲止數組已從JSON文件中保存的座標中填充,它只是我似乎不能使用該數組實際填充多段線座標,它不會顯示在地圖上 - 在控制檯中沒有發現錯誤。goMap jquery插件。使用JSON文件中的座標創建多段線

新來這裏,所以請溫柔,昨晚是一個非常深夜試圖讓事情工作。即時通訊使用最新版本的goMap jQuery插件,我開始接近插件的限制,但知道我缺乏技能,這是在黑暗中刺傷?

任何指導極大的讚賞。謝謝。

PS我打算在JSON文件,顏色,標識等每個折線使用其他屬性,但首先我需要讓過去這個階段:)

相關JSON文件內容如下:

"lines" : 
[ 
    {"id":2011, "colour":"#00CC00", "weight":4, "opacity": 0.5, "coords":[ { "lat": 51.94036, "lng": 4.12734 },{ "lat": 54.05466, "lng": 13.78057 },{ "lat": 54.13938, "lng": 13.76870 },{ "lat": 52.40433, "lng": 13.18649 },{ "lat": 51.53493, "lng": 10.75077 },{"lat": 51.25631, "lng": 7.15687 },{ "lat": 50.45001, "lng": 5.95817 },{ "lat": 51.94036, "lng": 4.12734}] 
    }, 
    {"id":2010, "colour":"#3399FF", "weight":4, "opacity": 0.5, "coords":[ { "lat": 51.33761, "lng": 3.18406 },{ "lat": 50.82675, "lng": 2.18220 },{ "lat": 50.70592, "lng": 2.24091 },{ "lat": 51.18277, "lng": 3.20565 },{ "lat": 50.64371, "lng": 5.55140 },{ "lat": 50.45001, "lng": 5.95817 },{ "lat": 50.33386, "lng": 6.94722 },{ "lat": 50.31374, "lng": 6.96073 },{ "lat": 45.76458, "lng": 9.05604 },{ "lat": 45.55665, "lng": 9.05278 },{ "lat": 47.75976, "lng": 7.32900 },{ "lat": 48.65055, "lng": 6.14543 },{ "lat": 51.33761, "lng": 3.18406 }] 
    } 
] 

腳本的相關方面:

$.get('positions.json', function (data) { 

      for (var i = 0, l = data.lines.length; i < l; i++) { 
       var mypath = new Array(); 
       for (var j = 0, k = data.lines[i].coords.length; j < k; j++) { 
        var coords = data.lines[i].coords[j]; 
        mypath.push(coords.lat, coords.lng); 
       } 

       $.goMap.createPolyline({ 
        color: "#00CC00", opacity: 0.5, weight: 4, coords: mypath 
       }); 

      } 
     }, 'json'); 

回答

0

那是你的整個JSON文件?如果是這樣,你可能需要用「{」開始文件並用「}」結束,以表明它是一個JavaScript對象。

for (var j = 0, k = data.lines[i].coords.length; j < k; j++) { 
        var coords = data.lines[i].coords[j]; 
        mypath.push(coords.lat, coords.lng); 
       } 

coords在每次迭代將{緯度:XX,經度:YY},這是什麼createPolyline期望的陣列。改變內部循環到下面應該工作,但我沒有測試過。

for (var j = 0, k = data.lines[i].coords.length; j < k; j++) { 
    mypath.push(data.lines[i].coords[j]); 
} 
+0

奇妙的是,我改變了json文件,所以coords被保存爲經度,緯度和經度。謝謝! – user1211351 2012-02-16 14:56:20