2012-12-09 11 views
10

は、Googleがイリノイ州シカゴを地図の中心にする方法のこの例を提供しています:米国のデフォルトセンターですか?デフォルトで

var chicago = new google.maps.LatLng(41.850033, -87.6500523); 

は、それが全体の米国のデフォルトの中央のフォーカスを持っていることは可能ですか?私はどこでもこれを見つけることができません。

+0

@KenWhiteあなたがそれを1にすると答えとしてそれを受け入れるよ。 – Norse

+0

完了し、元の回答にクレジットが与えられます。 –

答えて

13

シカゴを中心として、zoomを変更してください。

example hereがあります。若干修正されたバージョン(テストされていません):

gMap = new google.maps.Map(document.getElementById('map')); 
gMap.setCenter(new google.maps.LatLng(41.850033, -87.6500523)); 
gMap.setZoom(ANewZoomLevel); 

あなたのニーズに適したズームレベルを見つけるには、実験が必要です。

+0

非常に助けていただきありがとう – Norse

+0

これは意味がありますが、ビューポートをgeocodezipとして使用すると、より良いことが示唆されます。 – kaskader

+0

連続した米国の地理的中心は、米国の48州の中心です。 1912年にニューメキシコ州とアリゾナ州が米国に追加されて以来、米国国測量学会(National National Geodetic Survey:NGS)によってそのようにみなされてきました。 –

6

ジオコーダを使用することもできます。

"viewport": { 
    "Z": { 
    "b": 25.82, 
    "d": 49.38 
    }, 
    "ca": { 
    "b": -124.38999999999999, 
    "d": -66.94 
    } 
} 

センター/場所ジオコーダリターンです:

37.09024, -95.712891

はに変換しますgeocode "United States of America"場合は、マップを中央にしてズームするために使用することができ、「提案ビューポート」は、返します

"viewport": { 
    NorthEast: { lat:49.38, lng:-66.94 }, 
    SouthWest: { lat:25.82, lng:-124.39 } 
} 

fiddle

2つの類似の情報、境界と提案ビューポートがあります。私は範囲がアラスカとハワイを含むと信じています、ビューポートはあなたのニーズに適しているかもしれません。

最も簡単な方法は、マップを手動で中央に配置し、好みのズームを行い、getCenter()およびgetZoom()を使用して現在の値を取得し、マップを初期化するために使用します。ここで

が、それは全体の米国example that uses the geocode to zoom to countries from a drop down list、(それが私たちのために異なっている、というよりも、ビューポート、境界を使用しています)

+0

ビューポートは中心よりはあまり役に立たないことに注意してください。ここで返されたビューポートは、あなたのデバイス上で見ていたマップの特定の寸法に基づいています。他のサイズとアスペクト比のマップは非常に異なる場合があります。 –

+0

ビューポートは地図の寸法に依存するべきではなく、位置の地理座標のみに依存するべきです。そのビューポートで 'google.maps.Map.fitBounds()'を実行すると、マップの大きさに応じて異なるものになります。 – geocodezip

+0

いいえ - 考えてみてください。 Viewportの右上(NorthEast)と左下(SouthWest)のGPS座標はどういう意味ですか?マップが、例えば、同じズームレベルと地理座標であっても、正方形ではなく細い細いストリップの場合、ビューポートは変更する必要があります。 Googleは同じことを言っています:https://support.google.com/mapsengine/answer/3425435?hl=en –

5

ですされているので、緯度経度と小数に入るために愚かなようです。私が好き:ズームは、デバイスの幅に依存するため

new google.maps.Map($map, { 
    center: new google.maps.LatLng(39, -95), 
    zoom: 3 
}); 

jsfiddle example

+0

これは機能しませんが、41.850033、-87.6500523は行います。 –

+0

@ TalasanNicholsonそれを証明するためにjsfiddleの例が追加されました。 –

1

フィット境界は、最も適しています。あるデバイスでよく見えるものは、別のデバイスでは大きすぎたり小さすぎたりします。したがって:

var bounds = new google.maps.LatLngBounds(
    new google.maps.LatLng(25.82, -124.39), 
    new google.maps.LatLng(49.38, -66.94) 
); 

map.fitBounds(bounds); 
0

シカゴを使用することはあまり柔軟ではありません。そして、基本的にバウンディングボックスを作成し、米国の極端な枢機卿点を取る境界オブジェクトに追加し、あなたの境界に合わせてそれを使用して地図上のズーム:これは関係なく、あなたのマップに適合します

var bounds = new google.maps.LatLngBounds(); 
bounds.extend(new google.maps.LatLng(24.891752, -98.4375)); 
bounds.extend(new google.maps.LatLng(40.351289, -124.244385)); 
bounds.extend(new google.maps.LatLng(44.488196, -70.290656)); 
bounds.extend(new google.maps.LatLng(49.000282, -101.37085)); 
map.setCenter(bounds.getCenter()); 
map.fitBounds(bounds); 

キャンバスの大きさの

4

米国連邦地理センターを使用してください:
レバノン、カンザス州。おそらく地球上で最も退屈な場所です。

http://www.kansastravel.org/geographicalcenter.htm

私は3、4、または5のズームが完璧であることがわかります。

gMap = new google.maps.Map(document.getElementById('map')); 
gMap.setCenter(new google.maps.LatLng(39.8097343, -98.5556199)); 
gMap.setZoom(3); 
関連する問題