2012-10-22 3 views
0

지도에 새 마커를 추가하려면 어떻게해야합니까? 나는지도 function startGoogleMaps() 를 보여 주었지만 나의 기능 (onclick())은 작동하지 않는다.Google 어스에 마커 추가

function startGoogleMaps(){  
    var map = new google.maps.Map(document.getElementById('canvasMap'), { 
     zoom: 5, 
     center: initCenter, 
     mapTypeId: google.maps.MapTypeId.ROADMAP 
    });    
} 

document.getElementById("testButton").onclick = function(){ 
    var marker = new google.maps.Marker({ 
     position: (37, -97), 
     map: map, 
     title:"Hello World!"}); 
} 
+0

경우 마커가 나타나야합니까? 나는. '(37, -97)'위치는 무엇입니까? – jsalonen

+0

위도/경도 – Andrew

+0

문제는 'position : (37, -97)'이 (가)'new google.maps.LatLng (37, -97) '이되어야합니다. – Andrew

답변

2

당신이 클릭 이벤트를 바인딩과 같은 범위에서 map 객체를 정의하십시오 :

 ... 
     position: google.maps.LatLng(37, -97), 
     ... 
:

var map = null; 

function startGoogleMaps(){  
    map = new google.maps.Map(document.getElementById('canvasMap'), { 
     zoom: 5, 
     center: initCenter, 
     mapTypeId: google.maps.MapTypeId.ROADMAP 
    });    
} 

document.getElementById("testButton").onclick = function(){ 
    var marker = new google.maps.Marker({ 
     position: (37, -97), 
     map: map, 
     title:"Hello World!"}); 
} 

은 또한 당신이 google.maps.LatLng의 인스턴스로 위치를 통과 할 필요가 있습니다

1

Javascript는 기능 범위를 사용합니다. , 또한

var map; 

function startGoogleMaps(){  
    map = new google.maps.Map(document.getElementById('canvasMap'), { 
     zoom: 5, 
     center: initCenter, 
     mapTypeId: google.maps.MapTypeId.ROADMAP 
    });    
} 

document.getElementById("testButton").onclick = function(){ 
    var marker = new google.maps.Marker({ 
     position: new google.maps.LatLng(37, -97), 
     map: map, 
     title:"Hello World!"}); 
} 

자체가지도의 범위를 벗어난 될 수있는 마커를, 그래서 당신은 제대로 표시 할 map.fitBounds를 사용할 수 있습니다 : 당신과 같이 전 세계적으로 map를 선언해야합니다

document.getElementById("testButton").onclick = function(){ 
    var marker = new google.maps.Marker({ 
     position: new google.maps.LatLng(37, -97), 
     map: map, 
     title:"Hello World!"}); 

    var latlngbounds = new google.maps.LatLngBounds(); 
    latlngbounds.extend(new google.maps.LatLng(37, -97)); 
    map.fitBounds(latlngbounds); 
} 
+0

'map.fitBounds (latlngbounds);를 사용할 때 내지도가 사라집니다. – Andrew