2016-12-02 12 views
1

Google Maps APIでは、座標のリストが指定されたマップの境界を設定できます。それは素晴らしいです。私の問題は、それが両側に呼吸の部屋の少しを与えるということです。私は境界線をほとんど含んでいないと思っているバウンディングボックスを取得しようとしています。Google Maps API setBounds from exact coordinates

たとえば、カリフォルニアを表示して境界線を北東と南西のコーナーに設定します。しかしカリフォルニアだけではなく、オレゴンとメキシコの半分をすべて手に入れました。

は、ここで私が現在やっているものです:

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); 

EDIT:それは、このような素敵な長方形なので 明確な例では、ワイオミングかもしれません。私の地図の大きさがワイオミングと同じ比率であれば、ワイオミングを私に見せたいだけです。

EDIT: 誰かが私が境界を手動でオフセットするように提案したので、Googleが使用しているオフセットについていくつかのデータを取得しましたが、それらのオフセットを決定するための式が何であるか把握できませんそれを行うことができなくなるからです。私はGoogleのジオコーディングAPIからのビューポート座標を使用していましたが、それらはあまり役に立ちませんでした。

は、ここに私のデータです:https://docs.google.com/a/dovidev.com/spreadsheets/d/1HZLdDt5uiGwEtY0NbX0pfkmYVuUDndptm_-kzq0vh_w/edit?usp=sharing

+1

関連する質問:[GoogleマップV3 - 特定の範囲のズームレベルを計算する方法](http://stackoverflow.com/questions/6048975/google-maps-v3-how-to-calculate-the-zoom -level-for-a-given-bounds) – geocodezip

答えて

2

これは、道のGoogleのズームレベルの仕事を正確に行うことができません。 Googleは領域の境界線を設定しますが、何も切り取らずに可能な限りズームインします。ズームレベルはインクリメンタルでインクリメントが非常に大きいので、多くの場合、余分なスペースが必要になります。

私は大規模に大きすぎると思ったものから一度でもズームインしようとしたとき、境界の部分が途切れていることがわかりました。

Googleはすでに、Googleができる限り厳しい状況にあることを確認しています。