GoogleMap API v2再見
Google正式宣布2013.11.19停止支援GoogleMap API v2的版本,全面迎向API v3,R.I.P~,不過也就是這樣先前使用舊版API v2的程式將全部失效。v3和v2的版本再程式上的寫法有很大的不同,所以幾乎沒有辦法調整些許的JavaScript語法就可以直接套用,至於修改了哪些部份就不在一一說明。
下面直接舉例子來說明,先前有個需求需要取出地圖(DIV)的左上角和右下角座標來做運算,在v2寫法法可以直接透過Map Object直接來取用,且GPoint的寫法也有調整。v2的寫法請參閱以下程式碼。
但是新版v3的API進行的修改,除了原先一樣宣告Map Object外,還必須要另外宣告OverlayView Object,並且將OverlayView 加入到地圖當中,才可以透過OverlayView來取得座標資訊,且原先的GPoint Object也改用google.maps.Point Object來取代,詳細請參閱如下程式碼。
範例示意如下
參考網址 :
Google API v3,請搜尋fromContainerPixelToLatLng
相關問題詢問
程式碼下載
下面直接舉例子來說明,先前有個需求需要取出地圖(DIV)的左上角和右下角座標來做運算,在v2寫法法可以直接透過Map Object直接來取用,且GPoint的寫法也有調整。v2的寫法請參閱以下程式碼。
var divWidth = document.getElementById("GoogleMap_Div").clientWidth; var divHeight = document.getElementById("GoogleMap_Div").clientHeight; //宣告地圖物件 var map = new GMap2(document.getElementById("GoogleMap_Div")); var topleft = map.fromContainerPixelToLatLng(new GPoint(0, 0)); //取得地圖左上角座標 var bottomright = map.fromContainerPixelToLatLng(new GPoint(divWidth, divHeight)); //取得地圖,右下角座標
但是新版v3的API進行的修改,除了原先一樣宣告Map Object外,還必須要另外宣告OverlayView Object,並且將OverlayView 加入到地圖當中,才可以透過OverlayView來取得座標資訊,且原先的GPoint Object也改用google.maps.Point Object來取代,詳細請參閱如下程式碼。
//地圖屬性 var mapOptions = { center: new google.maps.LatLng(22.60709, 120.31340), zoom: 14, mapTypeId: google.maps.MapTypeId.ROADMAP }; //初始化Map Object var map = new google.maps.Map(document.getElementById("GoogleMap_Div"), mapOptions); //初始化OverlayView Object var overlay = new google.maps.OverlayView(); //將OverlayView 加入到 Map當中 overlay.setMap(map); //等OverlayView畫入Map當中才可以取用<==這裡要特別注意 overlay.draw = function () { var divWidth = document.getElementById("GoogleMap_Div").clientWidth; var divHeight = document.getElementById("GoogleMap_Div").clientHeight; var topleft = overlay.getProjection().fromContainerPixelToLatLng(new google.maps.Point(0, 0)); //左上角座標 var bottomright = overlay.getProjection().fromContainerPixelToLatLng(new google.maps.Point(divWidth, divHeight)); //右下角座標 document.getElementById("latlng").value = "左上角座標 :: " + topleft.lat() + ", " + topleft.lng() + "\n"; document.getElementById("latlng").value += "右下角座標 :: " + bottomright.lat() + ", " + bottomright.lng() + "\n"; };
範例示意如下
參考網址 :
Google API v3,請搜尋fromContainerPixelToLatLng
相關問題詢問
程式碼下載
留言
張貼留言
您好,我是 Lawrence,這裡是我的開發筆記的網誌,如果你對我的文章有任何疑問或者有錯誤的話,歡迎留言讓我知道。