2014-03-05 5 views
2

안녕하세요, 위도가지도에 클릭 한 포인트의 길고 그 정보를 ID 태그에 저장되어있는 방법을 찾고 있는데요. 나는 gmaps4rails v2를 사용하고 다음과 같이 내 현재 코드는 다음과 같습니다지도에서 클릭 한 지점의 긴 위치를 잡아내는 방법은 무엇입니까? Gmaps4rails

<script type="text/javascript"> 
    var handler2 = Gmaps.build('Google'); 
    handler2.buildMap({ provider: { }, internal: {id: 'map'}}, function(){ 
     // I assume this is the way you retrieve the amrkers array 
     var json_data = <%=raw @hash.to_json %>; 
     var markers = handler2.addMarkers(json_data); 

     _.each(json_data, function(json, index){ 
      var marker = markers[index]; 
      json.marker = marker; 
      google.maps.event.addListener(handler2.map, 'click', function(event){ 
       var latlong = document.getElementById("latlong"); 
       latlong.innerHTML =("Latitude: "+event.latLng.lat()+" "+", longitude: "+event.latLng.lng()); 
      }); 

     }); 
     handler2.bounds.extendWith(markers); 
     handler2.getMap().setZoom(1); 

    }); 
</script> 

<div id="latlong"> 
This is the lat long of the currently clicked point. 
</div> 

문제는 내가지도를 클릭 상관없이 리스너가 응답하지 않는 그리고 난 내 ID 태그에 어떤 결과를 얻고 있지 않다이다 "latlong을 ". 어떤 도움을 주셔서 감사합니다.

답변

3

handler.map은 Google지도 개체가 아닌 gmaps4rails 개체이기 때문에 문제는 addListener(handler2.map입니다.

따라서 handler2.getMap() 또는 handler.map.getServiceObject() (이전은 바로 가기 임) 중 하나를 사용하십시오.

또 다른 한 가지 : buildMap 기능의 공급자 키로지도 옵션을 전달할 수 있습니다.

var handler2 = Gmaps.build('Google'); 
handler2.buildMap({ provider: { zoom: 1 }, internal: {id: 'map'}}, function(){ 
    // I assume this is the way you retrieve the amrkers array 
    var json_data = <%=raw @hash.to_json %>; 
    var markers = handler2.addMarkers(json_data); 

    _.each(json_data, function(json, index){ 
     var marker = markers[index]; 
     json.marker = marker; 
     google.maps.event.addListener(handler2.getMap(), 'click', function(event){ 
     var latlong = document.getElementById("latlong"); 
     latlong.innerHTML =("Latitude: "+event.latLng.lat()+" "+", longitude: "+event.latLng.lng()); 
     }); 
    }); 
    handler2.bounds.extendWith(markers); 
    handler2.fitMapToBounds(); 
}); 
+0

는 정말 감사 :

여기 작업 코드입니다! – ominousbit

+0

코드를 복사했지만 '처리기'를 찾을 수 없습니다. – newBike

+0

@poc 오타였습니다. – apneadiving