我最近开始研究dojo和osm,所以这可能是一个简单的问题,但我无法弄清楚为什么我会收到此错误。我必须从osm加载地图的dojo代码如下:
function InitMap() {
map = L.map('map').setView([ 51.4848, -0.20325 ], 8);
var osmUrl = 'http://{s}.tile.cloudmade.com/BC9A493B41014CAABB98F0471D759707/997/256/{z}/{x}/{y}.png';
// 'http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png';
L
.tileLayer(
osmUrl,
{
maxZoom : 18,
attribution : 'Map data © <a href="http://openstreetmap.org">OpenStreet1Map</a> contributors, <a href="http://creativecommons.org/licenses/by-sa/2.0/">CC-BY-SA</a>, Imagery <a href="http://cloudmade.com">CloudMade</a>'
}).addTo(map);
var popup = L.popup();
function onMapClick(e) {
popup.setLatLng(e.latlng).setContent(
"You clicked the map at " + e.latlng.toString()).openOn(map);
}
map.on('click', onMapClick);
}
我在浏览器控制台中遇到的错误是: ReferenceError:L未定义但功能方面没有问题。 请让我知道我在哪里做错了。
答案 0 :(得分:1)
我不是OSM专家,但我认为你可能错过了一个脚本文件。
查看http://www.openstreetmap.org/的来源我看到全局变量L
是作为第一个脚本(/assets/application-67bdd93f2bbf379cc96f0e9af383c99c.js
)