2014-09-15 3 views
1

Google지도 4 레일스 젬을 사용하여 레일에 맞춤 정보창을 구현하는 데 문제가 있습니다. 페이지 상단에 infobox 플러그인을 추가하고 문서에서 코드 스 니펫을 시도했지만 infobox 창에 사용자 정의 infobox 또는 "yellow"클래스가 없습니다.Gmaps4Rails - 사용자 정의 정보 창이 작동하지 않습니다.

다음에 의해 생성되는 마커에 맞춤 infobox에 대한 옵션을 전달하려면 어떻게해야합니까?

:javascript 
handler = Gmaps.build('Google'); 
handler.buildMap({ provider: { 
    }, internal: {id: 'map'}}, function(){ 
    markers = handler.addMarkers(#{raw @hash.to_json},{builders: {Marker: InfoBoxBuilder}}); 
    handler.bounds.extendWith(markers); 
    handler.fitMapToBounds(); 
    handler.getMap().setZoom(9); 
    });  

는 또한

class InfoBoxBuilder extends Gmaps.Google.Builders.Marker # inherit from base builder 

# override method 
create_infowindow: -> 
    return null unless _.isString @args.infowindow 
    boxText = document.createElement("div") 
    boxText.setAttribute("class", 'yellow') #to customize 
    boxText.innerHTML = @args.infowindow 
    @infowindow = new InfoBox(@infobox(boxText)) 

infobox: (boxText)-> 
    content: boxText 
    pixelOffset: new google.maps.Size(-140, 0) 
    boxStyle: 
    width: "280px" 

handler = Gmaps.build 'Google', { builders: { Marker: InfoBoxBuilder} } 

어떤 도움이 많이 주시면 감사하겠습니다을 infowindow.js.coffee 다음 코드를 추가했다. 고맙습니다.

답변

3

당신이 문서를 오해 대체 :

:javascript 
handler = Gmaps.build('Google'); 
handler.buildMap({ provider: { 
    }, internal: {id: 'map'}}, function(){ 
    markers = handler.addMarkers(#{raw @hash.to_json},{builders: {Marker: InfoBoxBuilder}}); 
    handler.bounds.extendWith(markers); 
    handler.fitMapToBounds(); 
    handler.getMap().setZoom(9); 
    }); 

로 :

:javascript 
    var handler = Gmaps.build('Google', { builders: { Marker: InfoBoxBuilder} }); 
    handler.buildMap({ internal: {id: 'map'}}, function(){ 
    var markers = handler.addMarkers(#{raw @hash.to_json}); 
    handler.bounds.extendWith(markers); 
    handler.fitMapToBounds(); 
    handler.getMap().setZoom(9); 
    }); 

그리고 class InfoBoxBuilderclass @InfoBoxBuilder을해야합니다 보석의 문서지도 제작에

기본적으로 window 개체에 액세스 할 수 InfoBoxBuilder 클래스와 동일한 파일에 정의되어 있습니다. 당신은 이것을하지 않습니다 : 당신은 당신의 창에서 핸들러를 생성합니다.

+0

작동 중! 매우 대단히 무례한 감사합니다 - 당신은 최고입니다. – user3717009