Javascript Gmaps4Rails-自定义信息窗口不工作
我在使用GoogleMaps4Rails gem在rails上实现自定义信息框时遇到问题。 我已经在页面顶部添加了infobox插件,并在文档中尝试了代码片段,但仍然没有自定义infobox或infobox窗口上的一类“黄色” 如何将自定义信息框的选项传递给以下程序生成的标记Javascript Gmaps4Rails-自定义信息窗口不工作,javascript,ruby-on-rails,google-maps,gmaps4rails,Javascript,Ruby On Rails,Google Maps,Gmaps4rails,我在使用GoogleMaps4Rails gem在rails上实现自定义信息框时遇到问题。 我已经在页面顶部添加了infobox插件,并在文档中尝试了代码片段,但仍然没有自定义infobox或infobox窗口上的一类“黄色” 如何将自定义信息框的选项传递给以下程序生成的标记 :javascript handler = Gmaps.build('Google'); handler.buildMap({ provider: { }, internal: {id: 'map'}}, fun
: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);
});
我还向infowindow.js.coffee添加了以下代码
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} }
任何帮助都将不胜感激。谢谢。您误读了文件,请更换:
: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
应该是class@InfoBoxBuilder
才能在窗口
对象上访问
基本上,在gem的文档中,地图创建是在与
InfoBoxBuilder
类相同的文件中定义的。您没有这样做:您在窗口中创建处理程序。它正在工作!非常感谢你,你太棒了。
: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);
});