默认情况下,Google地图地形视图可以无限制地平移地图图块。您可以使用LatLngBounds()
来限制此值,但是我应该使用哪个最大和最小坐标来将视口设置为地球而不是地图区域之外?
北美协调:
var strictBounds = new google.maps.LatLngBounds(
new google.maps.LatLng(28.70, -127.50),
new google.maps.LatLng(48.85, -55.90)
);
我已经尝试(+90, -180)(-90,180)
没有运气。
答案 0 :(得分:80)
@Marcelo&提供的链接@Doc good 用于理解Lat Lng的派生:
但如果您只是想要 Google地图的最大边界的答案:
Latitude: -85 to +85
(实际上由于某种原因-85.05115 )
Longitude: -180 to +180
在Google地图上亲自试用:
(您可能需要缩小。看看该引脚位于世界的“边缘” - 这些是限制)
因此,在您的代码中尝试:
var strictBounds = new google.maps.LatLngBounds(
new google.maps.LatLng(85, -180), // top left corner of map
new google.maps.LatLng(-85, 180) // bottom right corner
);
请在得到答案后编辑此维基(或更新您的问题)。感谢
答案 1 :(得分:8)
请参阅旧版Google网上论坛中的this post,其中介绍了投影的数学计算。
引用:
地图不是以85度开始,而是以度数开始 使地图正方形。这可以简单地计算为: atan(sinh(PI))* 180 / PI = 85.05112878 ....
请注意,该帖子中的磁贴计算是针对旧API V2的,但投影应该相同。
答案 2 :(得分:4)
您可以在Google地图的帮助下执行以下操作以获取世界的最大拉特和长边界:
1:在设置Google地图资料时设置Google地图的缩放级别1:
mapOptions = {
zoom: 1,
.....
}
2。执行以下操作以获取此地图的NorthEast和SouthWest Bound:
map = new google.maps.Map(document.getElementById('map-canvas'), 的MapOptions);
// NorthEast Latitude : 89.45016124669523 var latNEValue = map.getBounds().getNorthEast().lat(); // NorthEast Longitude : 180 var longNEValue = map.getBounds().getNorthEast().lng(); // SouthWest Latitude : -87.71179927260242 var latSWValue = map.getBounds().getSouthWest().lat(); // Southwest Latitude : -180 var longSWValue = map.getBounds().getSouthWest().lng();
3. 它将为您提供以下NorthEast和SouthWest Bounds:
NorthEast Latitude:89.45016124669523
东北经度:180
西南纬度:-87.71179927260242
西南经度:-180
同样在Zoom Level-0上,它给出了以下几点:
NorthEast Latitude:89.99346179538875
东北经度:180
西南纬度:-89.98155760646617
西南经度:-180
上面的技巧帮我解决了我的业务问题,需要max lat / long。
答案 3 :(得分:3)
有关GPS值的更多详细信息,请参阅this文章。
文章解释说: