Ruby on rails 3 Gmaps4Rails v2-调用addMarkers()后removeMarkers()不工作

Ruby on rails 3 Gmaps4Rails v2-调用addMarkers()后removeMarkers()不工作,ruby-on-rails-3,google-maps-api-3,gmaps4rails,gmaps4rails2,Ruby On Rails 3,Google Maps Api 3,Gmaps4rails,Gmaps4rails2,我有一个函数负责隐藏/显示标记,所以我决定使用removeMarkets()和addMarkers()以及一个包含地图上显示的所有标记的变量,以防止AJAX请求。但是,在addMarkers()函数之后使用时,removeMarkers()似乎不起作用: #/assets/javascript/general.js.coffee @buildMap = (markers)-> provider = Gmaps.build( 'Google', { build

我有一个函数负责隐藏/显示标记,所以我决定使用removeMarkets()和addMarkers()以及一个包含地图上显示的所有标记的变量,以防止AJAX请求。但是,在addMarkers()函数之后使用时,removeMarkers()似乎不起作用:

#/assets/javascript/general.js.coffee
@buildMap = (markers)->
  provider = Gmaps.build(
    'Google',
    {
      builders: { Marker: RichMarkerBuilder},
      markers:
        clusterer:
          gridSize: 50
          styles: [
            url: "/assets/cluster.png"
            textSize: 15
            width: 56
            height: 56
          ]
    }
  )
  Gmaps.handler = @clustereredHandler()
  Gmaps.handler.buildMap {
    provider: provider,
    internal: {id: 'map'} }, ->
      Gmaps.markers = _.map(markers, (marker_json) ->
        marker = Gmaps.handler.addMarker(marker_json)
        _.extend marker, marker_json
        marker
      )
      Gmaps.map = Gmaps.handler.getMap()

      Gmaps.handler.bounds.extendWith(Gmaps.markers)
      Gmaps.handler.fitMapToBounds()

#app/views/stores/index.html.erb
buildMap(<%=raw @hash.to_json %>);
#/assets/javascript/general.js.coffee
@buildMap=(标记)->
provider=Gmaps.build(
“谷歌”,
{
生成器:{Marker:RichMarkerBuilder},
标记:
群集器:
网格大小:50
风格:[
url:“/assets/cluster.png”
文本大小:15
宽度:56
身高:56
]
}
)
Gmaps.handler=@clusteredhandler()
Gmaps.handler.buildMap{
提供者:提供者,
内部:{id:'map'}},->
Gmaps.markers=\uu.map(markers,(marker\ujson)->
marker=Gmaps.handler.addMarker(marker\u json)
_.extend marker,marker_json
标记
)
Gmaps.map=Gmaps.handler.getMap()
Gmaps.handler.bounds.extendWith(Gmaps.markers)
Gmaps.handler.fitMapToBounds()
#app/views/stores/index.html.erb
buildMap();
因此,我:

  • Gmaps.Handler
    变量上的处理程序
  • gmap上的所有标记。标记
    变量
  • 映射到
    Gmaps.Map
    变量上
失败的步骤:

  • 加载地图-正常(所有标记加载正确)
  • >
    Gmaps.handler.removeMarkers(Gmaps.markers)
    -确定(所有标记都正确隐藏)
  • >
    Gmaps.handler.addMarkers(Gmaps.markers)
    -正常(所有标记显示正确)
  • >
    Gmaps.handler.removeMarkers(Gmaps.markers)
    -失败!(标记仍在显示) 我正在使用
    2.1.2
    version。有什么补救办法吗

    谢谢

    根据,gmaps4rails没有bug

    我觉得您自己的功能有问题(可能不使用extend?),请替换为:

    marker.json  = marker_json
    

    我不能说更多,因为它们没有包括在内。

    我认为问题在于保存标记。无论何时添加新标记,都会覆盖旧标记。试一试

    Gmaps.markers.push.apply(Gmaps.markers, Gmaps.handler.addMarkers(Gmaps.markers))
    
    改为附加新标记