У меня есть приложение Rails 3.2.x, которое я использую gmaps4rails 2.0.0.pre
(да, я знаю, что это старая версия). Я использую это для построения различных транспортных средств (единиц) на карте в режиме просмотра/контроллера gps. Теперь я пытаюсь использовать gmaps4rails
для отображения карты в другом представлении/контроллере для отображения местоположения здания (объекта) в представлении просмотра объекта.gmaps4rails change map id
При загрузке начальной страницы я отображаю маркер объекта на карте в нужном месте. Однако через несколько секунд маркер полностью исчезнет. Я знаю, почему это происходит, но не как это исправить.
У меня есть следующий Coffeescript
, который выглядит для ID
из #map
и вызывает /units
и /gps
пути для обновления вида GPS/карту в квази-реальном времени.
gps.js.coffee
$ ->
if $("#map").length > 0
setInterval (->
$.getScript "/units"
# Get all current locations, find each marker in the map, and update it's position
$.getJSON "/gps", (data) ->
$.each(data, (i, val) ->
marker = $.grep Gmaps.map.markers, (e) ->
e.id is val.id
marker[0].setPosition(val.lat, val.lng) if marker[0]?
)
), 5000
$('.marker-link').on 'click', ->
id = $(this).data("marker-id")
marker = $.grep Gmaps.map.markers, (e) ->
e.id is id
marker[0].showInfowindow() if marker[0]?
Таким образом, проблема заключается в том, что по умолчанию ID
для gmaps4rails отображений #map
. Я пытаюсь понять, как создать новую карту с помощью плагина с другим ID
, чтобы я мог отобразить местоположение объекта и не вызывать coffeescript для обновления.
Вот что выглядит моя модель объекта/вид/контроллер. Все работает, но маркер исчезает из-за сценария кофе, вызывающего #map
. Я не хочу потерять эту функциональность coffeescript, так как она обновляет представление gps show с помощью маркеров. Я хотел бы выяснить способ создания карты gmaps4rails и изменить ID
.
facility.rb
acts_as_gmappable process_geocoding: false
facilities_controller
def show
@facility = Facility.find(params[:id])
@marker = @facility.to_gmaps4rails do |facility, marker|
#marker.infowindow render_to_string(partial: "unit_infowindow", locals: {unit: unit})
marker.json({id: facility.id})
end
respond_to do |format|
format.html # index.html.erb
format.json { render json: @marker }
end
end
объект show.html.erb
<div class="well">
<%= gmaps(markers: {data: @marker, options: {rich_marker: true, "auto_zoom" => false}}) %>
</div>
Есть ли способ генерации карты gmaps4rails и переопределить значение по умолчанию ID
#map
, чтобы я мог оставить маркер от исчезновения и продолжать использовать мой кофейник в моем GPS-режиме?
Если у кого-либо есть предложения, сообщите мне. Буду весьма признателен за это.
И если мой вопрос запутан или нуждается в дополнительном объяснении, я буду рад его обновить.