2010-11-30 49 views

回答

0

到目前爲止放大的唯一原生函數是map.setZoom,它不會讓您改變速度。

如果你想設置的基於一組標記的地圖縮放級別,你可以做這樣的事情:

var bounds : LatLngBounds = new LatLngBounds(southwestmarker.getLatLng(), northeastmarker.getLatLng()); 
bounds.extend(someMarker.getLatLng()); 
//some more extend() here 
map.setZoom(map.getBoundsZoomLevel(bounds)); 
+0

我不需要中心ona組...我需要一個簡單的縮放,而不是直接形成縮放級別3到14,我認爲我們有某種谷歌地球縮放....似乎不正確? – Francesco 2010-11-30 19:32:38

0

我發現map.setZoom就會順利,如果縮放級別的過渡在當前縮放級別的2以內。

因此,如果地圖設置爲10的縮放比例,我將其設置爲12,它將會轉換。但是,如果我將它設置爲13,它不會。

你也可以變焦非整數,但地圖圖塊將不會加載和國家「對不起,我們這裏沒有圖像」。

你可以嘗試鏈接縮放,但我他們緩解進/出所以它會看起來生澀。

如果轉換超過2並且平滑很重要,則可以在其中一個地圖DOM元素上手動編輯矩陣轉換。它看起來像-webkit-transform: matrix(1, 0, 0, 1, -62, 71);。更改第一個和第四個數字會影響規模,第一個是x規模,第四個是y規模。

矩陣是這樣的transform: matrix(xs, 0, 0, ys, xt, yt);,其中xsys是規模,將其設置爲2將放大200%。這個矩陣確實需要小數值,所以你可以放大到1.1等。然後你可以在轉換結束時將map.setZoom()加到你的最終數字上。

這確實有一些需要注意的,因爲它不是預期的用法:

  • 平移或轉換時會被重置爲谷歌自己的方式打破矩陣變換縮放。
  • 縮小比較困難,因爲周圍的瓷磚(超出視口)未加載 - 默認爲灰色方塊。你可以使用一個帶有視口的重複地圖,該視口與當前地圖的大小相乘,再乘以縮小的因子 - 因此,如果縮小地圖以縮小尺寸的一半,那麼視口將會增加一倍。然後,您可以將視口置於頂部,並在「真實」地圖上設置縮放,轉換調整後的視口地圖並在完成時隱藏視口。
相關問題