API Google Maps v3 không hỗ trợ phương thức getBounds()
cho lớp google.maps.Polygon. Điều này có vẻ lạ vì thực tế là lớp google.maps.Map có phương thức fitBounds()
, chính xác là những gì bạn đang tìm kiếm .. Nếu bạn sử dụng API Google Maps với bất kỳ loại tần suất nào thì điều này sẽ nằm trong túi của bạn thủ thuật ::
getBounds()
phương pháp cho lớp 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;
}
có phương pháp này trên tay làm cho nó rất đơn giản để tập trung và phù hợp với một đa giác trên bản đồ.
Lưu ý: Nếu bạn không quen thuộc với getAt()
và getLength()
thì tốt, chúng là phương pháp duy nhất cho lớp google.maps.MVCArray. Khi bạn gọi phương thức getPaths()
của đa giác, nó sẽ trả về mảng của bạn LatLng là một MVCArray có thể thay đổi của LatLng's .. bạn có thể sẵn sàng về MVCArrays tại đây - Google Maps v3 API MVCArray class.
Tiếp tục. Đây là khung công tác, bạn sẽ phải triển khai phương pháp prototyped ở trên một nơi nào đó trước mã bit tiếp theo này.
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
});
Với các thiết lập sân khấu, tất cả các bạn sẽ phải làm gì để tâm và phóng to về vấn đề này (hoặc bất kỳ) đa giác là ::
map.fitBounds(myPolygon.getBounds());
ngắn và ngọt ngào. Hy vọng rằng sẽ giúp.
-Kevin James
Điều này không còn đúng nữa! Maps v3 đã loại bỏ phương thức getBounds(). – Benjamin
kiểm tra liên kết này để mở rộng đa giác để nhận giới hạn (Google Map V3), http://tutorialspots.com/google-maps-javascript-api-v3-method-polygon-getbounds-515.html – shyammtp