안녕하세요, 웹 사이트에 사용자가 클릭하면 Google지도에 레이어 (kml 파일)가로드되어야하는 버튼이 있습니다.
버튼을 클릭하면 세 가지 기능이 실행됩니다. 1. src (kml 파일에 대한 url 호출)가 무엇인지 정의하는 함수. (여기서는 연결이 사용됩니다.) 2. KML 파일을로드하는 기능 3.지도를 초기화하는 기능.
문제는지도가로드되지만 레이어가로드되지 않는다는 것입니다. 콘솔 로그는 1 단계에서 올바른 URL이 생성되고 있음을 보여 주지만 로그에는 src가 정의되지 않았다고도 표시됩니다. 1 단계가 2와 3에서 읽히지 않는다고 가정 할 수 있습니다 !!!
다음은 코드입니다.
<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);
}
...
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다