有没有办法使用gmaps4rails v2更改一个标记的颜色

时间:2014-07-12 17:45:50

标签: ruby-on-rails gmaps4rails

所以我想改变地图上一个标记针的颜色,我有以下内容:

bool = false
@hash = Gmaps4rails.build_markers(@branches) do |branch, marker|
  if bool == false
    marker.lat x
    marker.lng y
    marker.infowindow "YOUR LOCATION"
    marker.fillColor "blue"
    bool = true
  else
    marker.lat branch.latitude
    marker.lng branch.longitude
  end
end

很遗憾,我收到错误:undefined method 'fillColor' for #<Gmaps4rails::MarkersBuilder::MarkerBuilder:0x00000018003f58>

我看到其他答案建议使用图片自定义标记,但这对我的情况来说似乎有些过分。

更新:

我已将以下内容添加到我的视图脚本中:

handler = Gmaps.build('Google');
handler.buildMap({ provider: {}, internal: {id: 'map'}}, function(){
  //markers = handler.addMarkers(<%=raw @hash.to_json %>);
  var jsonCollection = <%= raw @hash.to_json %>;
  var particularMarker = _.first(jsonCollection);
  var collection = _.rest(jsonCollection);
  var markers = handler.addMarkers(collection)
  markers << handler.addMarker(particularMarker,{ opacity: 0.5 })
  handler.bounds.extendWith(markers);
  handler.fitMapToBounds();
});

我不确定fillColor是否是标记API中的一个选项,所以我尝试了不透明度 https://developers.google.com/maps/documentation/javascript/reference#MarkerOptions

我没有看到标记有任何变化,但我已经确认标记存在,如下图所示:

enter image description here

1 个答案:

答案 0 :(得分:0)

它不是内置的,但也许你可以做类似的事情:

var jsonCollection = <%= raw @hash.to_json %>;
var particularMarker = _.first(jsonCollection);
var collection = _.rest(jsonCollection);

handler.addMarker(particularMarker,{ fillColor: 'blue' })
handler.addMarkers(collection)