我正在尝试使用Leaflet创建地图并在地图上显示标记。在地图上显示标记时,有人对我收到的以下错误有任何想法吗?
我可以启动页面的地图加载:
var map;
var ajaxRequest;
var plotlist;
var plotlayers=[];
function initmap() {
// set up the map
map = new L.Map('map');
// create the tile layer with correct attribution
var osmUrl='https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png';
var osmAttrib='Map data © <a href="https://openstreetmap.org">OpenStreetMap</a> contributors';
var osm = new L.TileLayer(osmUrl, {minZoom: 8, maxZoom: 20, attribution: osmAttrib});
// start the map over Holland
map.setView(new L.LatLng(52.36994, 4.90788),8);
map.addLayer(osm);
}
我创建了一个标记:
var marker=L.marker([52.63275, 4.75175]).bindPopup('testmarker');
将标记添加到地图时,出现错误“未捕获的TypeError:无法读取未定义的属性'addLayer'”:
marker.addTo(map);
在initmap()函数中包含此行时,它可以正常工作。如此看来,地图实例无法访问或函数之外的东西?奇怪的是,由于变量是在脚本的开头在函数之外创建的?
谢谢!
答案 0 :(得分:0)
解决了。该地图实例是在dom完全加载之前创建的,因此div“地图”尚不存在。我将包含javascript的脚本标签从页面的顶部移到了正文的末尾。