世界的最大纬度和经度边界 - Google Maps API LatLngBounds()

IT技术 javascript google-maps google-maps-api-3 latitude-longitude
2021-03-15 19:11:53

默认情况下,谷歌地图地形视图具有无限的地图图块平移。您可以使用它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)没有运气。

4个回答

通过@Marcelo&@doc提供的链接是很好理解的推导的纬度LNG的:

但是,如果你只是想在回答最大边界谷歌地图

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

获得答案后,​​请编辑此 wiki(或更新您的问题)。谢谢

developers.google.com/maps/documentation/javascript/reference/3/... LatLngBounds 是 SW 角 (-85, -180) 到 NE 角 (+85, +180),而不是从左上角到右下角答案。
2021-05-02 19:11:53
在折线工具中尝试过这个,但似乎没有给出整个区域,这是一个非常常见的问题。然而,它是最大和最小可能的经度和纬度值。敏锐.edu/campus/maps/tool/...
2021-05-16 19:11:53
谢谢。我必须对 java 使用以下内容: private static final LatLngBounds EARTH = new LatLngBounds( new LatLng(-84.9, -180), // 地图的左上角 new LatLng(84.9, 180) // 右下角 );
2021-05-17 19:11:53

请参阅旧版 Google Groups 中的这篇文章,其中描述了投影的数学原理。

引用:

地图不是从 85 度开始,而是从使地图呈方形的角度开始。这可以简单地计算为:atan(sinh(PI)) *180 / PI = 85.05112878....

请注意,该帖子中的 tile 计算适用于旧 API V2,但投影应该相同。

我正在寻找的所有东西都经过测试,工作最大最小坐标?
2021-05-08 19:11:53
然后看帖子,理解并测试坐标。我不会为你做作业,孩子。
2021-05-14 19:11:53

在谷歌地图的帮助下,您可以执行以下操作来获取世界的最大纬度和经度:

1:设置 Google Maps 的缩放级别 1 在设置 Google Map Stuff 时:

mapOptions = {
                zoom: 1,
 .....
}

2. 执行以下操作以获取此地图的东北和西南边界:

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.它会给你以下东北和西南边界:

东北纬度:89.45016124669523

东北经度:180

西南纬度:-87.71179927260242

西南经度:-180

同样在 Zoom Level-0 上,它给出了以下几点:

东北纬度:89.99346179538875

东北经度:180

西南纬度:-89.98155760646617

西南经度:-180

以上技巧帮助我解决了需要最大纬度/经度的业务问题。

有关 GPS 值的更多详细信息,您可以阅读这篇文章。

文章解释说:

  • 纬度是沿格林威治子午线测量到赤道的距离。该距离以度为单位,范围在 0º 到 90º 南北之间。
  • 经度是沿赤道测量到格林威治子午线的距离。该距离以度为单位,范围从东和西 0º 到 180º。
奇怪的是,当你查看官方的谷歌地图 API 文档时,它确实在纬度 90/-90 和经度 180/-180 之间,在你的 latlong 声明中,你没有颠倒纬度和经度?
2021-05-03 19:11:53
简而言之,NW 点和 SW 的样本最大和最小坐标?
2021-05-06 19:11:53
不,我的代码适用于美国人口统计的纬度范围。
2021-05-15 19:11:53