[英]Clicking a button to load a map layer, a variable (src) is returned as not defined, despite a function defining it?
嗨,我在网站上有一个按钮,当用户单击它时,应该在Google地图上加载一个图层(kml文件)。
单击该按钮可运行三个功能。 1.定义什么是src(对kml文件的url调用)的函数。 (此处使用串联)。2.加载KML文件的函数。3.初始化地图的函数。
问题是地图加载,但图层没有加载。 控制台日志显示在步骤1中创建了正确的url,但日志中还说未定义src,我只能假定步骤2和3未读取步骤1!
这是代码:
<button class="button1" onclick="myFunctiongr(); loadKmlLayer(); initialize()">R</button>
<script>
function myFunctiongr(){
var gr = [];
gr.push(url.join('')); *This calls a word from another var*
var name = gr[0];
var map;
var src = "https://www.dropbox.com/s/mziks0p2lkq4dqb/"+name+".kml?dl=1";
console.log(src);
}
function loadKmlLayer(src, map) {
var kmlLayer = new google.maps.KmlLayer(src, {
suppressInfoWindows: true,
preserveViewport: false,
map: map
});
}
function initialize() {
var mapCanvas = document.getElementById('map');
var mapOptions = {
center: new google.maps.LatLng(51.50275896, -0.11535645),
zoom: 10,
mapTypeId: google.maps.MapTypeId.ROADMAP
}
var map = new google.maps.Map(mapCanvas, mapOptions)
loadKmlLayer(src, map);
}
google.maps.event.addDomListener(window,initialize);
</script>
读这个:
http://www.sitepoint.com/demystifying-javascript-variable-scope-hoisting/
然后尝试:
<script>
var src;
function myFunctiongr(){
var gr = [];
gr.push(url.join('')); *This calls a word from another var*
var name = gr[0];
var map;
src = "https://www.dropbox.com/s/mziks0p2lkq4dqb/"+name+".kml?dl=1";
console.log(src);
}
...
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.