Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 全世界的最大Lat和长边界-谷歌地图API LatLngBounds()_Javascript_Google Maps_Google Maps Api 3_Latitude Longitude - Fatal编程技术网

Javascript 全世界的最大Lat和长边界-谷歌地图API LatLngBounds()

Javascript 全世界的最大Lat和长边界-谷歌地图API LatLngBounds(),javascript,google-maps,google-maps-api-3,latitude-longitude,Javascript,Google Maps,Google Maps Api 3,Latitude Longitude,默认情况下,Google Maps地形视图对地图平铺具有无限的平移。您可以使用LatLngBounds()来限制这一点,但是我应该使用什么最大和最小坐标来设置视口,使其仅为地球,而不在地图区域之外 北美坐标: var strictBounds = new google.maps.LatLngBounds( new google.maps.LatLng(28.70, -127.50), new google.maps.LatLng(48.85, -55.90) ); 我尝试了(

默认情况下,Google Maps地形视图对地图平铺具有无限的平移。您可以使用
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)(-90180)
,但运气不佳。

有关GPS值的更多详细信息,请阅读本文

该条解释说:

  • 纬度是沿格林威治子午线测量的与赤道的距离。该距离以度为单位,范围在南北0º到90º之间
  • 经度是从格林威治子午线沿赤道测量的距离。该距离以度为单位,范围为0º至180º东、西
请参见旧的谷歌群组,其中描述了投影的数学

引述:

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


请注意,该帖子中的瓷砖计算是针对旧API V2的,但投影应相同。

由@Marcelo和@Doc提供的链接有助于理解Lat Lng的推导:

但是,如果您只是想知道谷歌地图的最大界限的答案:

纬度:-85到+85
(出于某种原因,实际上是-85.05115)

经度:-180到+180

在谷歌地图上亲自尝试一下:

(您可能需要缩小。查看pin如何位于世界的“边缘”-这些是限制)

因此,请在代码中尝试:


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

借助谷歌地图,您可以执行以下操作以获取世界的最大纬度和长边界:

1:设置谷歌地图的缩放级别1,同时设置谷歌地图:

mapOptions = {
                zoom: 1,
 .....
}
2.执行以下操作以获取此地图的东北和西南边界:

map=new google.maps.map(document.getElementById('map-canvas'), 地图选项)

3.它将为您提供以下东北和西南边界:

东北纬度:89.45016124669523

东北经度:180

西南纬度:-87.71179927260242

西南经度:-180

与缩放级别-0类似,它给出以下几点:

东北纬度:89.99346179538875

东北经度:180

西南纬度:-89.98155760646617

西南经度:-180


上述技巧帮助我解决了需要最大lat/long的业务问题

简单地说,采样西北点和西南点的最大和最小坐标?奇怪的是,当你看它的晶格度在90/-90和经度在180/-180之间时,在你的latlong声明中,你没有反转纬度和经度?不,我的代码适用于美国人口的晶格边界。在墨卡托投影上,纬度上升到85和-85,而不是90。我要找的是测试,使用最大最小坐标?然后阅读文章,理解它并测试坐标。我不会帮你做作业的,孩子。谢谢。我必须为java使用以下内容:私有静态最终LatLngBounds EARTH=new LatLngBounds(new LatLng(-84.9,-180),//地图左上角new LatLng(84.9180)//右下角);从LatLngBounds是SW角(-85,-180)到NE角(+85,+180),而不是答案中的左上角到右下角。在多段线工具中尝试了此方法,但似乎没有给出enitre区域,这是一个非常常见的问题。然而,它是最大和最小的经度和纬度值。
mapOptions = {
                zoom: 1,
 .....
}
     // 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();