2011-04-08 213 views
1

我有一個數據庫中的緯度和經度的列表,我想在谷歌地圖上繪製更多的折線。 例如:如何使用Google地圖繪製多條多段線?

var i, j; 
var polyline1 = new Array(latt.length); 

str = new Array(latt.length); 
for (var k = 0; k < latt.length; k++) { 
    i = latt[k].split(','); 
    j = longg[k].split(','); 
    str[k] = 'new GLatLng(' + i[0] + ',' + j[0] + ')' + ','; 
    for (var count = 1; count < i.length; count++) { 
     str[k] += 'new GLatLng(' + i[count] + ',' + j[count] + ')' + ','; 
    } 
    str[k] = str[k] + 'new GLatLng(' + i[0] + ',' + j[0] + ')'; 

    polyline1[k] = new GPolyline([str[k]], "#ff0000", 6); 

    map.addOverlay(polyline1[k]); 

    map.addControl(new GSmallMapControl()); 
    map.addControl(new GMapTypeControl()); 
} 

,但我發現錯誤

回答

0

我不理解的錯誤 - 我看不到一個a任何地方 - 但你幾乎可以肯定使用GPolyline錯誤。它希望對象的數組,而不是JavaScript的一個字符串的單元素數組:

var polyline1 = new Array(latt.length); 

str = new Array(latt.length); 
for (var k = 0; k < latt.length; k++) { 
    var i = latt[k].split(','); 
    var j = longg[k].split(','); 

    var latlngs = []; 
    for (var count = 0; count < i.length; count++) { 
     latlngs.push(new GLatLng(parseFloat(i[count]), parseFloat(j[count]))); 
    } 
    polyline1[k] = new GPolyline(latlngs, "#ff0000", 6); 

    map.addOverlay(polyline1[k]); 
} 

map.addControl(new GSmallMapControl()); 
map.addControl(new GMapTypeControl()); 

我不知道,如果parseFloat s爲實際需要。您可能還想將控件添加到循環外部。

+0

嗨,實際上我是新的谷歌地圖,我有經度和緯度列表,我想畫多段線。所以,你可以請你提供我的例子解決方案.. – 2011-04-12 04:50:50

+0

現在沒有工作?我認爲這是正確的。 [這是一個非常基本的例子](http://rupey.net/runs/2006TwoCastlesRoute.html)很久以前,我只是以最簡單的方式將GPS手錶上的數據轉儲到一個頁面上。我相信有更好的方法可以做到這一點 - 但我對API的瞭解不多。 – Rup 2011-04-12 08:51:45

+0

Thanku so mch Rup.It爲我工作 – 2011-04-13 12:09:46