簡體   English   中英

使用Google Maps-for-Rails和Rails 4在標記上顯示中心地圖

[英]Center map on marker with Google-Maps-for-Rails and Rails 4

我在我的應用程序上使用Google Maps-for-Rails 我的house對象具有latitudelongitude屬性。 我的控制器將這些東西放到一個數組中,並將其傳遞給我認為的javascript:

def show
  @hash = Gmaps4rails.build_markers(@house) do |house, marker|
    marker.lat house.latitude
    marker.lng house.longitude
  end
end

該視圖如下所示:

<div style='width: 800px;'>
  <div id="map" style='width: 800px; height: 400px;'></div>
</div>

<script type="text/javascript">
  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(10);
  });
</script>

現在,它完全正常。 但是在初始地圖視圖上,我的標記始終位於左上角。 我希望它明顯位於地圖中間。

我試過了什么,將這一行添加到腳本中並沒有做任何事情:

handler.map.centerOn({ lat: markers[0].lat, lng: markers[0].lng });

我該怎么做才能使標記位於中間?

編輯:好的,感謝Zsolt,我發現加載地圖時選項卡的不活動導致了問題。 一旦用戶單擊選項卡,我現在想做的就是更新地圖。 由於我的JavaScript確實很糟糕,因此我將需要一些幫助。 那就是我現在所得到的:

$('#tab_location').on('shown.bs.tab', function (e) {
  var myLatlng = {lat: gon.lat, lng: gon.lng};
  var map = document.getElementById('map');
  map.setCenter(myLatlng);
});

如您所見,我正在使用gon來獲取javascript的正確坐標。 捕捉坐標工作正常,但其余坐標將導致此錯誤:

TypeError: a is undefined

a是Google Maps腳本中的某種變量。

我有非常類似的問題(標記群集在左上方)。 寶石的作者建議:

“您應該在使其div可見后創建地圖”

這里

希望這對您有幫助,我對JS不熟悉。 如果您找到解決方案,請告訴我!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM