簡體   English   中英

動態設置谷歌地圖縮放

[英]Set google map zoom dynamically

是否可以根據多邊形形狀(管理邊界)的高度定義縮放級別? 這個多邊形將完全顯示在地圖的 div 中。

有一個map.fitBounds(my_bounds)函數,它設置視口以包含給定的邊界。 它會將地圖設置為可能的最高縮放級別,您可以在其中看到整個邊界。

為此,您需要確定多邊形的邊界。 如果您使用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;
}

...
map.fitBounds(my_polygon.getBounds());

如果您使用Data layer顯示多邊形,請查看此 SO 答案 它提供了有關如何計算Data.Feature邊界(如果它是多邊形)的Data.Feature

如果您有其他確定多邊形邊界的方法,則只需使用以下方法:

map.fitBounds(new google.maps.LatLngBounds(new google.maps.LatLng(SouthWestCornerLat, SouthWestCornerLng), new google.maps.LatLng(NorthEastCornerLat, NorthEastCornerLng));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM