マーカーの非表示/表示を担当する関数があるため、マップに表示されるすべてのマーカーを含む変数で removeMarkers() と 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 %>);
ので、私は持っています:
Gmaps.handler
変数のハンドラー。Gmaps.markers
variableのすべてのマーカー。- 変数にマップし
Gmaps.map
ます。
失敗するまでの手順:
- マップの読み込み - OK (すべてのマーカーが正しく読み込まれました);
- >
Gmaps.handler.removeMarkers(Gmaps.markers)
- OK (すべてのマーカーが正しく隠されています); - >
Gmaps.handler.addMarkers(Gmaps.markers)
- OK (すべてのマーカーが正しく表示されました); - >
Gmaps.handler.removeMarkers(Gmaps.markers)
- 失敗!(マーカーは引き続き表示されます);
2.1.2
バージョンを使用しています。それに対する修正はありますか?
ありがとう