默认情况下,Google提供了如何在伊利诺伊州芝加哥市中心地图的示例:
var chicago = new google.maps.LatLng(41.850033, -87.6500523);
是否可以将默认中心重点放在整个美国?我无处可寻。
答案 0 :(得分:17)
以芝加哥为中心,然后更改zoom
。
有一个example here。一个稍微改写的版本(未经测试!):
gMap = new google.maps.Map(document.getElementById('map'));
gMap.setCenter(new google.maps.LatLng(41.850033, -87.6500523));
gMap.setZoom(ANewZoomLevel);
您需要尝试根据需要找到合适的缩放级别。
答案 1 :(得分:8)
使用邻近美国的地理中心:
黎巴嫩,堪萨斯州。可能是地球上最无聊的地方。
http://www.kansastravel.org/geographicalcenter.htm
我发现缩放为3,4或5 是完美的。
RecipeEditor
答案 2 :(得分:7)
一种选择是使用地理编码器。如果您geocode "United States of America",它会返回“建议的视口”,可用于居中和缩放地图:
"viewport": {
"Z": {
"b": 25.82,
"d": 49.38
},
"ca": {
"b": -124.38999999999999,
"d": -66.94
}
}
地理编码器返回的中心/位置是:37.09024, -95.712891
转换为:
"viewport": {
NorthEast: { lat:49.38, lng:-66.94 },
SouthWest: { lat:25.82, lng:-124.39 }
}
有两个类似的信息,边界和建议的视口。我相信边界包括阿拉斯加和夏威夷,视口可能更适合您的需求。
最简单的方法是手动居中地图并按照您喜欢的方式缩放,然后使用getCenter()和getZoom()获取当前值,然后使用它们初始化地图。
这是一个example that uses the geocode to zoom to countries from a drop down list,(它使用的是边界,而不是视口,对于美国来说是不同的)
答案 3 :(得分:6)
由于它是整个美国,使用LatLng进入小数似乎很愚蠢。我喜欢:
new google.maps.Map($map, {
center: new google.maps.LatLng(39, -95),
zoom: 3
});
答案 4 :(得分: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);
答案 5 :(得分: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);
无论画布大小如何,这都适合你的地图。