我是mapbox和传单的新手,如果这有点基础,我会提前道歉。我正在尝试加载带有标记的地图。但是,我收到此错误,我不知道如何调试它。 self.map.addLayer(连接器)抛出错误。有谁知道我做错了什么?感谢。
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);
});
});
答案 0 :(得分:0)
如果您想阻止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
}
您现在可以在没有任何“未定义错误”的情况下访问地图变量,
祝你好运