2011-04-08 96 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

相关问题