0

Gmaps4Railsを使用して、属性に基づいて表示/非表示にできるいくつかのマーカーがあります。それはうまくいきます。Gmaps.map.adjustMapToBounds()ただし、現在表示されているマーカーを設定した後に呼び出されて、現在のマーカーのセットに自動調整するようにマップを取得しようとしています。

アイテムをフィルタリングすると、実際にはフィルタリングされたマーカーだけが表示されますが、マップ全体がすべてのマーカーを表示しているかのように表示されます。境界を設定するときに非表示のマーカーを考慮するためだと思いますが、間違っている可能性があります。

これが私のフィルタリングコードです:

$("select").change(->
    currentFilters = $('select').val()
    hideAllMarkers()
    visibleMarkers()
    Gmaps.map.adjustMapToBounds()
  )

  visibleMarkers = ->
    filtered = Gmaps.map.markers
    filtered = _.filter(filtered, (marker) ->
      _.include(currentFilters, marker.market)
    )

    _.each filtered, (marker) ->
      Gmaps.map.showMarker marker

  hideAllMarkers = ->
    _.each Gmaps.map.markers, (marker) ->
      Gmaps.map.hideMarker marker

そして、これが私がマップを初期化するオプションです:

@gmap_options = {"map_options" => {
  "auto_zoom" => true,
  "auto_adjust" => true,
  "mapTypeControl" => true,
  "detect_location" => true,
  "center_on_user" => true},
  "markers" => {"data" => @map}
}
4

0 に答える 0