【问题标题】:Getting "Uncaught TypeError: Cannot read property 'lat' of undefined" with mapbox and leaflet使用 mapbox 和传单获取“未捕获的类型错误:无法读取未定义的属性 'lat'”
【发布时间】:2014-05-18 17:19:47
【问题描述】:

我是 mapbox 和传单的新手,如果这有点基本,我提前道歉。我正在尝试加载带有标记的地图。但是,我收到了这个错误,我不确定如何调试它。 self.map.addLayer(connector) 抛出错误。有谁知道我做错了什么?谢谢。

buildMap: function() {
  console.log('buildMap() function...');
  var lat, lng,
  self = this;

  navigator.geolocation.getCurrentPosition(function(data) {
    var lat, lng, latlng;
    lat = data['coords']['latitude'];
    lng = data['coords']['longitude'];
    debugger;

    self.map.remove();
    self.map = new L.mapbox.map('map', 'bmy78.map-z27ovm6p')
                            .setView(new L.LatLng(lat, lng), 15);

    console.log('lat', lat);
    console.log('lng', lng);

    // use mapbox
    mapboxUrl = "http://a.tiles.mapbox.com/v3/bmy78.map-z27ovm6p.jsonp";
    wax.tilejson(mapboxUrl, function(tilejson) {
      connector = new wax.leaf.connector(tilejson);
      self.map.addLayer(connector);
    });
  });

【问题讨论】:

  • 您没有在这部分代码中阅读lat 属性。您确定这是触发错误的原因吗?
  • cannot read property 'insert name here' of undefined 表示您正在尝试读取对象的属性,但该对象不存在。但是您显示的代码并未显示您尝试访问任何东西的lat 属性,例如someObject.lat
  • 对。但是 self.map.addLayer(connector) 抛出错误,调用堆栈的底部发生在wax.leaf.js 中,大约在第 2029 行,即 Reqwest!包括在内,wax.leaf.js 的那部分被丑化和最小化,所以很难判断我试图在哪个对象上调用“lat”,或者为什么该对象未定义。
  • 实际上,mapbox.js 会在堆栈底部抛出错误,并且由于其丑陋,因此难以阅读。但这是我认为发生错误的地方。我相信 o 或 e 是“未定义的”,但我不确定它们是如何定义的。 e=this._southWest,i=this._northEast,n=t.getSouthWest(),o=t.getNorthEast(),a=o.lat>=e.lat&&n
  • 请使用 Mapbox.js,而不是 Wax:mapbox.com/mapbox.js/api/v1.6.2 - Wax 已被弃用一年多。

标签: javascript leaflet mapbox


【解决方案1】:

如果你想防止 Map 被“未定义”。

首先将您的地图变量声明为公共 js 变量(在您的 html 文档的头部和任何函数之外)

var map;

接下来,在文档就绪函数中构建地图(以确保正确加载传单),

$( document ).ready(function() {
  map= L.mapbox.map('map', 'bmy78.map-z27ovm6p')
  //here you try to ask the user position then setView to map
}

您现在可以访问地图变量而不会出现任何“未定义错误”,

最好的问候

【讨论】:

    猜你喜欢
    • 2018-07-29
    • 2019-02-26
    • 1970-01-01
    • 2022-01-12
    • 2021-12-22
    • 1970-01-01
    • 1970-01-01
    • 2021-12-25
    相关资源
    最近更新 更多