2016-12-02 86 views
1

在Google Maps API中,它允許您在給定座標列表的情況下設置地圖的邊界。棒極了。我的問題是它在側面給人一點喘息的空間。我試圖讓我所看到的邊界框幾乎不包含邊界。Google Maps API setBounds到精確座標

例如,我想查看加利福尼亞州,因此我將邊界設置爲東北角和西南角。雖然不是隻展示加利福尼亞州,但我得到了俄勒岡州和墨西哥的一半。

這裏是目前我在做什麼:

var geo_region = { 
    northeast: { 
     lat: 42.0095169 
     lng: -114.131211 
    } 
    southwest: { 
     lat: 32.528832 
     lng: -124.482003 
    } 
} 
var map_bounds = new google.maps.LatLngBounds(); 
map_bounds.extend(new google.maps.LatLng(geo_region.northeast.lat, geo_region.northeast.lng)); 
map_bounds.extend(new google.maps.LatLng(geo_region.southwest.lat, geo_region.southwest.lng)); 

var plot_map = new google.maps.Map(document.getElementById('map-canvas'), mapOptions); 
plot_map.fitBounds(map_bounds); 

編輯: 更明確的例子可能是懷俄明州,因爲它是這樣一個漂亮的矩形。如果我的地圖尺寸與懷俄明的比例相同,我只希望它能向我展示懷俄明州。

編輯: 有人建議我手動抵消邊界,所以我抓住了谷歌正在使用的偏移量的一些數據,但我無法弄清楚他們的公式是什麼來決定這些偏移量,所以我很長的路要走從能夠做到這一點。我甚至使用了Google的Geocoding API中的視口座標,但那些也沒有多大幫助。

這裏是我的數據:https://docs.google.com/a/dovidev.com/spreadsheets/d/1HZLdDt5uiGwEtY0NbX0pfkmYVuUDndptm_-kzq0vh_w/edit?usp=sharing

+1

相關問題:[Google Maps V3 - 如何計算給定範圍的縮放級別](http://stackoverflow.com/questions/6048975/google-maps-v3-how-to-calculate-the-zoom - 電平換一個給出的界) – geocodezip

回答

2

這不能做正是由於谷歌的方式縮放級別的工作。谷歌設定了該區域的邊界,但儘可能地放大,而不會削減任何東西。由於縮放級別是增量式的,而且它們的增量非常大,這通常意味着最終會有很多額外的空間。

當我試圖放大甚至從我認爲過分龐大的一次時,我發現部分邊界已被切斷。

因此,我們看到Google已經獲得儘可能嚴密的結果。