2017-07-07 65 views
0

目前,我存储routea,routeb,routec等 不同的路线,我想将它们收集齐全到一个路径和for循环生成折线组两个嵌套的。 目前,我使用蛮力,所以 ...优化协调数据收集使用数组的JavaScript

for (var i = 0, latlng1= [], len1 = routea.length; i < len1; i++) { 
     latlng1.push(new L.LatLng(routea[i][0], routea[i][1])); 
    } 

    for (var i = 0, latlng2 = [], len2 = routeb.length; i < len2; i++) { 
     latlng2.push(new L.LatLng(routeb[i][0], routeb[i][1]));} 

我试图巢环路一直

route = [routea, routeb, routec]; 
for (var j = 0, lena = route; j < lena; j++) { 
    for (var i = 0, latlng1= [], len = route[j].length; i < len; i++) { 
     latlng.push(new L.LatLng(route[i][0], route[i][1])); 
    } 
    var pathmat = L.featureGroup ([L.polyline(latlng1[j])]); 
    } 

但我得到以下错误 遗漏的类型错误:无法读取属性“未定义 _leaflet_id”在Object.stamp

+0

请先从纠正错别字明显的粘贴代码:latlng1,路线[I] /途径[J],等等 – ghybs

+0

道歉,也没有在编程一会儿 :( – Infernus

回答

0

通过routea,routeb ...表无需循环。你可以用一个坐标数组来构建折线:

var route = [routea, routeb, routec]; 
var polylines = []; 
for (var j = 0; j < route.length; j++) { 
    polylines.push(L.polyline(route[j]); 
} 

然后用多义线做任何你想要的。如果你想要把所有这些功能组中:

var fg = L.featureGroup(polylines);