Google地图的最大边界是否与最大纬度不一致?

时间:2015-09-24 08:53:12

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

只需阅读此SO's topic,发现最大边界与纬度的最大可能值不对应([+ 90,-90] [根据Google Maps API] 2

var bounds = new google.maps.LatLngBounds();
var latlng = new google.maps.LatLng(90, 0);
bounds.extend(latlng);
console.log(bounds.getNorthEast().toString()); // (90, 0)

那么可以显示NorthEast点纬度设置为90的地图吗? (在我的应用程序中就是这种情况,并且似乎并不能正常运行......不是100%确定这是问题,但是当我手动将其设置为低于85时,它可以正常工作)。 / p>

或者我误解了什么?

由于

1 个答案:

答案 0 :(得分:0)

以下是有关墨卡托投影的更多信息:https://stackoverflow.com/a/27115480/1238965

查看有关LatLngBounds的文档,它说:

  

LatLngBounds实例表示地理坐标中的矩形,包括与180度纵向子午线交叉的矩形。

所以没有提到纬度。

查看LatLng课程:

  

LatLng是地理坐标中的一个点:纬度和经度。

     
      
  • 纬度介于-90到90度之间,包括端值。 高于或低于此范围的值将被限制在[-90,90] 范围内。这意味着如果指定的值小于-90,则将其设置为-90。如果该值大于90,则将其设置为90。

  •   
  • 经度介于-180和180度之间,包括-180和180度。高于或低于此范围的值将被包裹,以使它们落在该范围内。例如,值-190将转换为170.值190将转换为-170。这反映了经度环绕全球的事实。

  •   

另请注意,构造函数采用可选的第三个参数:

LatLng(lat:number, lng:number, noWrap?:boolean)

  

纬度以[-90,90]范围内的度数指定。经度以[-180,180]范围内的度数指定。 noWrap设置为true以启用此范围之外的值

因此,您可以提供超出正常范围的LatLng类值,如果将nowrap参数设置为true,则会保留这些值,但是使用它们构建一个LatLngBounds对象,它们将被转换回[-90,90]范围。