這個案例是這樣的。使用者希望在地圖載入地標的時候,不管座標在哪裡,要一次能看到所有的地標。 這時我們可以這樣做。 map.setCenter(new GLatLng(0,0),0); //要先設定map latlng 和 level
bounds = new GLatLngBounds(); 在地圖初始的時候,我們並不知道待會要加入的地標後最適合的地圖座標與level,所以我們先給他一個最大的初始值。一定要先給初始值,否則下一句的建立GLatLngBounds物件的時候會發生錯誤。 for(var i = 0; i < points.length; i++)
...{ bounds.extend(new GLatLng(lat,lng)); } 再把你要加入在地圖上的marker的座標給GLatLngBounds.extend的方法。 map.setZoom(map.getBoundsZoomLevel(bounds));
map.setCenter(bounds.getCenter()); 最後GLatLngBounds丟給GMap2.getBoundsZoomLevel的方法,他就會找出最適的level,再把地圖移動到marker們的中心點,這樣就可以達到在地圖上一次顯示所有輸入地標的功能了。 順手再寫了一下縣市地位、地址定位和經緯度定位的功能在範例裡。有興趣的人請自行連結參考。謝謝大家。 |
|