Google Maps v3 API本身不支持google.maps.Polygon類的getBounds()
方法。這看起來很奇怪,因爲google.maps.Map類有一個fitBounds()
方法,這正是您要查找的內容。如果您以任何頻率使用Google Maps API,那麼這應該在招數::
爲google.maps.Polygon類
google.maps.Polygon.prototype.getBounds = function() {
var bounds = new google.maps.LatLngBounds();
var paths = this.getPaths();
var path;
for (var i = 0; i < paths.getLength(); i++) {
path = paths.getAt(i);
for (var ii = 0; ii < path.getLength(); ii++) {
bounds.extend(path.getAt(ii));
}
}
return bounds;
}
具備此方法
getBounds()
方法使得它非常簡單,中心和地圖上安裝一個多邊形。
注意:如果您不熟悉getAt()
和getLength()
那很好,它們是google.maps.MVCArray類獨有的方法。當您調用多邊形的getPaths()
方法時,它會將LatLng的數組作爲LatLng的可變MVCArray返回..您可以在此準備好有關MVCArray的信息 - Google Maps v3 API MVCArray class。
繼續前進。這裏是框架,你必須在下一個代碼之前在某個地方實現原型方法。
var map = new google.maps.Map(container, opts); // I'll spare the details on this
var coords = [
new google.maps.LatLng(25.774252, -80.190262)
,new google.maps.LatLng(18.466465, -66.118292)
,new google.maps.LatLng(32.321384, -64.75737)
,new google.maps.LatLng(25.774252, -80.190262)
];
var myPolygon = new google.maps.Polygon({
paths: coords
,strokeColor: "#A80000"
,strokeOpacity: 0.8
,strokeWeight: 1
,fillColor: "#0b2a32"
,fillOpacity: 0.12
});
隨着舞臺佈景,所有你需要做的居中並放大這個(或有)多邊形::
map.fitBounds(myPolygon.getBounds());
簡短而親切。希望有所幫助。
-Kevin詹姆斯
這不再是事實! Maps v3拋棄了getBounds()方法。 – Benjamin 2014-09-10 18:59:16
檢查此鏈接以擴展多邊形以獲取邊界(Google地圖V3),http://tutorialspots.com/google-maps-javascript-api-v3-method-polygon-getbounds-515.html – shyammtp 2015-03-05 12:30:51