我正在尝试构建一个构建多色路径的应用程序(颜色取决于条件)并将它们显示在传单地图上。问题如下。我有两个功能:一个绘制,一个适合绘制区域的视图。当我将我的latlng数组传递给一个时,它完成了这项工作。当我将它传递给两个函数draw()& fitboduns()我得到一个“Uncaught TypeError:无法读取属性'lat'的未定义”错误...是否:(取决于顺序)
我尝试过很多东西,这是我的最新代码
注意:数据是L.latLng的数组:data.push(new L.latLng(test [0],test [1]));
function draw(data) {
var singlePath;
singlePath = [];
for (var i = 0; i < data.length; i++) {
singlePath.push(data[i],data[i+1]);
alert ("singlePath=" + singlePath);
var firstpolyline = L.polyline(singlePath, {
//color: pathColor[i] -> Color ARRAY
color : 'blue',
weight: 8,
opacity: 0.5,
smoothFactor: 1
}).addTo(leafmap);
singlePath = [];
}
function bound(data) {
var data_bound =[];
var bounds = (new L.latLngBounds(data));
data_bound.push([bounds.getNorthEast().lat,bounds.getNorthEast().lng]);
data_bound.push([bounds.getSouthWest().lat,bounds.getSouthWest().lng]);
leafmap.fitBounds(data_bound);
}
感谢您的帮助!!!
答案 0 :(得分:1)
for (var i = 0; i < data.length; i++) {
singlePath.push(data[i],data[i+1]);
此循环以i == data.length - 1
结束,您引用data[i + 1]
,这将是未定义的。将循环的条件更改为i < data.length - 1
。