繁体   English   中英

Mapbox / Leaflet Javascript:未捕获的TypeError:无法读取未定义的属性“ lat”

[英]Mapbox/Leaflet Javascript : Uncaught TypeError: Cannot read property 'lat' of undefined

我正在尝试构建一个可生成彩色路径(颜色取决于条件)并将其显示在传单地图上的应用。 问题如下。 我有2个功能:一个可以绘制,另一个可以使视图适合绘制区域。 当我只将latlng数组传递给一个数组时,它就完成了工作。 当我将其传递给draw()&fitboduns()的两个函数时,我收到“未捕获的TypeError:无法读取未定义的属性'lat'”错误……是否:(取决于顺序)

  • 如果我使用“ addTo”方法绑定&draw->行,则会使用draw()函数。
  • 如果我使用fitBounds方法绘制&bound->线,则为bound()函数。

我已经尝试了很多事情,这是我的最新代码

注意:Data是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); 

}

谢谢您的帮助 !!!

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM