只需阅读此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>
或者我误解了什么?
由于
答案 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]范围。