2014-02-10 4 views
0

내 요구 사항은 마커에 onclik 리스너를 추가하는 것입니다. 내보기는 콜백 함수와 같은 모습이 불려 오지 못한 경우 GMaps4rails에서 리스너를 추가하기 위해 Gmaps.map.callback이 제대로 작동하지 않습니다.

<div class="map-wrapper"> 
    <div id="map_div" style=" height: 800px;"></div> 
</div> 

<script src="//maps.google.com/maps/api/js?v=3.13&amp;sensor=false&amp;libraries=geometry" type="text/javascript"></script> 
<script src='//google-maps-utility-library-v3.googlecode.com/svn/tags/markerclustererplus/2.0.14/src/markerclusterer_packed.js' type='text/javascript'></script> 

<script> 

handler = Gmaps.build('Google', { markers: { maxRandomDistance: null } }); 

var mapOptions = { mapTypeId: google.maps.MapTypeId.SATELLITE }; 
handler.buildMap({ provider: mapOptions, internal: {id: 'map_div'}}, function(){ 
markers = handler.addMarkers(<%=raw @hash.to_json %>); 

handler.bounds.extendWith(markers); 
handler.fitMapToBounds(); 
    handler.getMap().setZoom(19); 

}); 



</script> 
<% content_for :scripts do %> 
<script type="text/javascript"> 
Gmaps.map.callback = function(){ 
    for(var i = 0; i < Gmaps.map.markers.length; i++){ 
    marker = Gmaps.map.markers[i]; 
    google.maps.event.addListener(marker.serviceObject, 'click', (function(marker){return function(){alert(marker.id);}})(marker)) 
} 
} 

</script> 
<% end %> 

그러나

이하 같다. 여기서 뭔가 또는 레이아웃 application.html.erb에 누락 된 것이 있습니까? 내가

<%= yield %> 
<%= yield :scripts %> 

내 컨트롤러 코드를 삽입했다 application.html.erb에서 이

버전 레일 말을 @hash Logger.INFO로

def index 
    @sens = Sen.all 
@hash = Gmaps4rails.build_markers(@sens) do |sen, marker| 
marker.lat sen.latitude 
marker.lng sen.longitude 
marker.picture({"url" =>"/images/red_bl.gif","width" => 36, "height" => 36 }) 

다음 끝 같다 4.0.2 입니다 루비 1.9.3 'gmaps4rails', '2.1.1'

답변

0

Gmaps.map.callback v2.x의 기존 메소드가 아닙니다. 당신이 콜백이 필요하면

, 단순히 한 후 추가 : BTW

markers = handler.addMarkers(<%=raw @hash.to_json %>); 

, 당신이 사용하는 것이 좋습니다 :

marker.getServiceObject() 

<%= yield :scripts %>가 버전 2.x에서 빠른에 대한

+0

감사합니다 필요가 없습니다 응답. 그것은 나를 위해 일했다 ... :) – Pluto

+0

당신은 문서 링크를 게시 할 수 있습니까? Gmaps.map.replaceMarkers를 호출 한 후지도 옵션을 변경하는 데 문제가 있습니다. –