在Rails中使用google-maps-for-rails gem时设置标记颜色

时间:2012-10-02 13:34:32

标签: ruby-on-rails ruby-on-rails-3 gmaps4rails

如何使用google-maps-for-rails将颜色参数传递给google maps api?我想根据一个值设置控制器内每个标记的颜色,所以有些是红色,有些是黄色,有些是绿色。我相信它是Symbol中的icon属性,看着:

https://developers.google.com/maps/documentation/javascript/reference#MarkerOptions

另外,我想在标记内有一个1-99的数字,这可能吗?到目前为止,我有这个。

@json = Device.all.to_gmaps4rails do |device, marker|
end

我一直在努力奋斗这几天,任何帮助都会受到赞赏。

2 个答案:

答案 0 :(得分:15)

您应该只使用谷歌的图表API。

示例,以下是标记:

  • 字母A
  • 红色:FF0000
  • 黑色文字:000000

http://chart.apis.google.com/chart?chst=d_map_pin_letter&chld=A|FF0000|000000

所以你应该定制你的需求:

@json = Device.all.to_gmaps4rails do |device, marker|
   marker.picture({
     :picture => "http://chart.apis.google.com/chart?chst=d_map_pin_letter&chld=A|FF0000|000000", # up to you to pass the proper parameters in the url, I guess with a method from device
     :width   => 32,
     :height  => 32
   })
end

答案 1 :(得分:4)

我实施上述解决方案无济于事,但现在弄清楚为什么这不起作用。也许这是对gem的更新,但“url”是图片URL的右键,而不是“picture”。这是我控制器中的代码:

@devices_hash= Gmaps4rails.build_markers(@devices) do |device, marker|
  ...
  marker.picture({
     :url => "http://chart.apis.google.com/chart?chst=d_map_pin_letter&chld=A|007FFF|000000",
     :width   => 32,
     :height  => 32
  })
end 

希望这可以帮助一些人在同样的事情上挣扎。