美国的默认中心?

时间:2012-12-09 07:12:45

标签: google-maps google-maps-api-3

默认情况下,Google提供了如何在伊利诺伊州芝加哥市中心地图的示例:

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

是否可以将默认中心重点放在整个美国?我无处可寻。

6 个答案:

答案 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 }
}

fiddle

有两个类似的信息,边界和建议的视口。我相信边界包括阿拉斯加和夏威夷,视口可能更适合您的需求。

最简单的方法是手动居中地图并按照您喜欢的方式缩放,然后使用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
});

jsfiddle example

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

无论画布大小如何,这都适合你的地图。

相关问题