之前,我按照another answer中的說明使infowindow在地圖上只有一個點時自動打開。我有這個工作,但infowindow在頂部稍微被切斷,因爲手動打開infowindow時地圖不重新更新(就像您單擊標記以顯示infowindow時一樣)。我的觀點只使用基本的:Gmaps4Rails:當只有一個標記可用時,設置縮放和平移位置。
gmaps(:map_options => { :auto_adjust => true },
:markers => { :data => @json, :options => {:do_clustering => true} })
在我看來,下面的JavaScript:
<script type="text/javascript" charset="utf-8">
Gmaps.map.callback = function() {
if (Gmaps.map.markers.length == 1) {
var marker = Gmaps.map.markers[0];
var infowindow = marker.infowindow;
infowindow.open(Gmaps.map.map, marker.serviceObject);
}
}
</script>
我試圖找出是雙方最好的方式設置縮放級別到14以及重新標記標記,以便整個infowindow顯示在屏幕上並且不會在頂部切斷。
我也看過this question誰似乎有類似的問題,但不包括recentering。我也可以執行Gmaps.map.map.setZoom(14);在控制檯中執行,並執行以及Gmaps.map.map.panBy(0,-80);但他們似乎並沒有從回調中執行。另外,我不確定panBy是解決我的infowindow被切斷問題的最有效方法。
使用: gmaps4rails(1.4.8)和Rails(3.2.3)
任何人有任何想法或意見?
謝謝!
'panBy'是一個很好的解決方案,它應該在回調中工作,沒有理由! – apneadiving
謝謝apneadiving!我看起來有一半。我可以讓panBy在回調中工作,但是也應該在那裏設置縮放工作嗎?現在我打電話給Gmaps.map.map.setZoom(14);然後Gmaps.map.map.panBy(0,-80);.平移似乎現在正在工作(可能是之前的緩存問題),但不是縮放。如果我通過選項散列傳遞縮放,則平鋪看起來不會做任何事情,並且地圖根本不居中。是否有另一個選項,我應該通過放大選項或我應該以不同的方式調用setZoom? –
很奇怪,回調中的一切都應該正常工作。我會看一看。 – apneadiving