5
Ben gmaps4rails gem takip ettik ve ben setinterval fonksiyonu ile işaretleyici yeniden yüklemek başardı. Karşılaştığım problem, her aralıktan sonra harita orijinaline geri döner, yani yakınlaştırılmış olursam normale döner. google map reload marker zoom yakınlaştırır
Bu
kodsuccess: (data, jqxhr, status) ->
console.log('data.bookings', data)
$('#multi_markers').removeClass('hidden')
$('.empty_booking_text').removeClass('hidden')
$('#sidebar_container').html('Please click any booking marker on the map')
markers_from_api = data.bookings
handler = Gmaps.build('Google')
settings = {
internal: {
id: 'multi_markers'
},
provider:{
styles: mapStyles
}
}
handler.buildMap settings, ->
markers = handler.addMarkers(markers_from_api)
_.each markers,(marker, j) ->
google.maps.event.addListener marker.serviceObject, 'click', (object) ->
console.log marker.serviceObject.position.lng()
render_marker_data markers_from_api[j].id
return
handler.bounds.extendWith markers
handler.fitMapToBounds()
setInterval() ->
$ -> update_marker_data(handler)
, 10000
i işaretçisi
update_marker_data = (handler) ->
markers = []
$.ajax '/technician_locations/current_location',
type: 'GET'
success: (data, jqxhr, status) ->
# handler.removeMarkers()
console.log(data)
tech_markers_from_api = data.technician_locations
tech_markers = handler.addMarkers(tech_markers_from_api)
_.each tech_markers,(marker, j) ->
markers.push(marker)
# google.maps.event.addListener marker.serviceObject, 'click', (object) ->
# render_marker_data tech_markers_from_api[j].id
# return
# handler.bounds.extendWith tech_markers
setInterval() ->
$ -> remove_marker(markers)
, 9000
handler.fitMapToBounds()
Tam olarak fitMapToBounds'ları ne yapar? Anladığım kadarıyla haritayı yakınlaştıracak ve/veya ortalayacak, böylece görüntüde _all_ işaretleyicileri görülebilir, ki bu problem gibi görünüyor. –