出于某种原因,在Internet Explorer 8(可能还有7个)中,以下代码部分没有任何想法?
var middlelatlong = bounds.getCenter();
//when alerted middlelatlong = (51.65494320798432,0.5499464196260533);
var x = 0;
var keys = new Array();
for(var key in middlelatlong){
if(x <= 1){
keys[x] = key;
}
x++;
}
var southlong = middlelatlong[keys[0]]-0.00017;
在Internet Explorer 8中返回NaN
,但在所有其他浏览器中,它等于51.654790472326724
。
答案 0 :(得分:1)
在第一行,我认为你的意思是:
middlelatlong = [51.65494320798432,0.5499464196260533];
此外,在for循环中,只需使用常规迭代和增量。
答案 1 :(得分:1)
我不知道你要用你的代码实现什么,但我认为middlelatlong[keys[0]]
会返回一些不是数字的东西。
您似乎正在使用Google Maps API并且想要访问坐标的纬度部分。您应该正确阅读document并使用API访问信息,而不是您自己尝试提取信息。
如果getCenter
引用the method described here,则会返回LatLng
个对象。您可以使用lat()
访问纬度(如果您想要经度,请使用lng()
):
var southlong = bounds.getCenter().lat() - 0.00017;
您的问题是您正在假设遍历对象属性的顺序,但未定义此顺序,这取决于实现。所以你不能说前两个属性是坐标,对象也有其他属性,可以先在IE中遍历。