这可能是以下问题之一:
- 在 DOM 准备好之前初始化地图。
- TileLayer 的 cloudmade 变量设置不正确。
以下解决方案将在 ID 为“map”的元素可用时初始化地图(这是通过将脚本放在页面底部来实现的。或者您可以使用 jQuery)。这还将设置 cloudmade 变量以使用 MapQuest OpenStreetMap 图块。
<!doctype html>
<html>
<head>
<title>Leaflet test</title>
<script type="text/javascript" src="leaflet.js"></script>
<link href="leaflet.css" rel="stylesheet" type="text/css" />
<!--[if lte IE 8]>
<link rel="stylesheet" href="leaflet.ie.css" />
<![endif]-->
</head>
<body>
<div id="map" style="width:640px;height:480px"></div>
<script type="text/javascript">
var cloudmadeUrl = 'http://{s}.mqcdn.com/tiles/1.0.0/osm/{z}/{x}/{y}.jpg';
var subDomains = ['otile1','otile2','otile3','otile4'];
var cloudmadeAttrib = 'Data, imagery and map information provided by <a href="http://open.mapquest.co.uk" target="_blank">MapQuest</a>, <a href="http://www.openstreetmap.org/" target="_blank">OpenStreetMap</a> and contributors, <a href="http://creativecommons.org/licenses/by-sa/2.0/" target="_blank">CC-BY-SA</a>';
var cloudmade = new L.TileLayer(cloudmadeUrl, {maxZoom: 18, attribution: cloudmadeAttrib, subdomains: subDomains});
var london = new L.LatLng(51.505, -0.09);
var map = new L.Map('map', {center: london, zoom: 13, layers : [cloudmade]});
</script>
</body>
</html>
我还建议您查看Leaflet - Quick Start Guide中的第一个示例,因为它们解释了每一行的作用并提供了使用 CloudMade 切片层的解决方案。
我希望这会有所帮助!