在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中的视口坐标,但那些也没有多大帮助。
相关问题:[Google Maps V3 - 如何计算给定范围的缩放级别](http://stackoverflow.com/questions/6048975/google-maps-v3-how-to-calculate-the-zoom - 电平换一个给出的界) – geocodezip