分享

使用google map api 的 GLatLngBounds 找出地圖最適的座標與

 goldbomb 2009-04-11

這個案例是這樣的。使用者希望在地圖載入地標的時候,不管座標在哪裡,要一次能看到所有的地標。

這時我們可以這樣做。

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們的中心點,這樣就可以達到在地圖上一次顯示所有輸入地標的功能了。

 順手再寫了一下縣市地位、地址定位和經緯度定位的功能在範例裡。有興趣的人請自行連結參考。謝謝大家。

範例

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多