Rails 5: загрузите карту с помощью gmaps4rails в модале начальной загрузки - PullRequest
0 голосов
/ 02 апреля 2019

Я установил gmaps4rails gem в своем приложении и хотел бы показать карту Google вместе с маркером в модале начальной загрузки.

Я получил модальное окно для всплывающего окна вместе с картой, но по какой-то причине карта не показывает маркер, и карта загружается неправильно. Любые идеи о том, как это исправить ???

enter image description here

Вот что я делаю:

get "location" => 'locations#map_modal', :as => :location

def map_modal
  @hash = Gmaps4rails.build_markers(@account) do |account, marker|
    marker.lat account.latitude
    marker.lng account.longitude
    marker.infowindow "#{account.full_address}"
  end
  respond_to do |format|
    format.html
    format.js {render 'map_modal.js.erb'}
  end
end

<%= link_to " Location", location_path,  {:remote => true, 'data-toggle' =>  "modal", 'data-target' => '#map_modal', class: 'fa fa-map-marker'} %>

<div id="map_modal" class="modal hide fade" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true" tabindex="-1">
  <div class="modal-dialog" role="document">
    <div class="modal-content"></div>
  </div>
</div>

_map_modal.html.erb

<div class="modal-header">
  <button type="button" class="close" data-dismiss="modal">x</button>
</div>
<div class="modal-body">
  <div id="map"></div>
</div>
<div class="modal-footer">
</div>

map_modal.js.erb

$("#map_modal").find(".modal-content").html("<%= j (render 'map_modal', locals: { account: @account }) %>");
$("#map_modal").modal();

$('#map_modal').on('shown.bs.modal', function (e) {
    handler = Gmaps.build('Google');
    handler.buildMap({ provider: {}, internal: {id: 'map'}}, function(){
        markers = handler.addMarkers(<%=raw @hash.to_json %>);
        handler.bounds.extendWith(markers);
        handler.fitMapToBounds();
        handler.getMap().setZoom(12);
    });
});
...