Javascript IE在分析GoogleMap数据时抛出错误

Javascript IE在分析GoogleMap数据时抛出错误,javascript,internet-explorer,google-maps,Javascript,Internet Explorer,Google Maps,我已经使用Google.API添加了显示特定地理位置的一些元素的地图。在现代浏览器中,一切正常,但IE7/8总是存在一些问题。当尝试使用每个元素的lat/long参数来居中映射时,我得到一个错误声明,'lat'在var pos_lat=parseFloat行中是“空的或不是对象”(data_map[I]['lat'])。使用相同的数据将静止标记添加到适当的位置。有人有这种问题吗 <script type='text/javascript'> var map;

我已经使用Google.API添加了显示特定地理位置的一些元素的地图。在现代浏览器中,一切正常,但IE7/8总是存在一些问题。当尝试使用每个元素的lat/long参数来居中映射时,我得到一个错误声明,
'lat'
var pos_lat=parseFloat行中是“空的或不是对象”(data_map[I]['lat'])。使用相同的数据将静止标记添加到适当的位置。有人有这种问题吗

<script type='text/javascript'> 
    var map;   

    var mapStart = function(){
        if(GBrowserIsCompatible()){
            map = new GMap2(document.getElementById("map"));
            map.setCenter(new GLatLng(51.961869,19.134521),6);
            map.addControl(new GLargeMapControl());

            var icon1 = new GIcon();
            icon1.image = "/static/images/map_icon_1.png";
            icon1.iconSize = new GSize(36, 30);
            icon1.infoWindowAnchor = new GPoint(16,16);
            icon1.iconAnchor = new GPoint(16,16);
            var data_map = [{'url': '/bo/properties/property/7/', 'lat': '52.1898985', 'long': '20.8461914', 'name': 'asdfgh'},]       
            mapa.enableDoubleClickZoom();
            mapa.enableContinuousZoom();
            var bounds = new GLatLngBounds();
            var maxlng =0;
            var maxlat=0;
            var minlng=0;
            var minlat=0;
            var positions=0;
            var zoom = 0;
            for (var i=0; i < data_map.length; i++){
                var pos_lat = parseFloat(data_map[i]['lat']);
                var pos_lon = parseFloat(data_map[i]['long']);
                if(!isNaN(pos_lat) && !isNaN(pos_lon)){
                    positions = 1;
                    zoom++;
                    addMarker(pos_lat, pos_lon,{icon:icon1});
                    if (pos_lat < minlat || minlat==0){ minlat = pos_lat}
                    if (pos_lat > maxlat || maxlat==0){ maxlat = pos_lat}
                    if (pos_lon < minlng || minlng==0){minlng = pos_lon}
                        if (pos_lon > maxlng || maxlng==0){maxlng = pos_lon}
                    lat = minlat + (( maxlat - minlat)/2);
                    lng = minlng + (( maxlng - minlng)/2);
                    var allpoints = new GLatLng(lat,lng);
                    bounds.extend(allpoints);
                }
            }

            if(positions){
                if(zoom > 2){
                    mapa.setZoom(map.getBoundsZoomLevel(bounds)-2);
                }
                else{
                    map.setZoom(10);
                }
                map.setCenter(bounds.getCenter());            
            }
        }
    }

    var addMarker = function(lat, lon, options){
        point = new GLatLng(lat,lon);
        var marker = new GMarker(point, options);

        GEvent.addListener(marker, "click", function() {
            marker.openInfoWindowHtml(info_box_html);
        });

        map.addOverlay(marker);
    }

    $(document).ready(function(){
        mapStart();
    });   
    window.onunload = function (){ GUnload()};
</script>

var映射;
var mapStart=函数(){
if(GBrowserIsCompatible()){
map=新的GMap2(document.getElementById(“map”);
赛特中心地图(新格拉特林(51.961869,19.134521),6);
addControl(新的GlargeMappControl());
var icon1=新的GIcon();
icon1.image=“/static/images/map\u icon\u 1.png”;
icon1.iconSize=新的GSize(36,30);
icon1.infoWindowAnchor=新的GPoint(16,16);
icon1.iconAnchor=新的GPoint(16,16);
var data_map=[{'url':'/bo/properties/property/7/','lat':'52.1898985','long':'20.8461914','name':'asdfgh'},]
mapa.enableDoubleClickZoom();
mapa.enableContinuousZoom();
var bounds=新的glatlngbunds();
var maxlng=0;
var-maxlat=0;
var minlng=0;
var minlat=0;
var位置=0;
var-zoom=0;
对于(变量i=0;imaxlat | | maxlat==0){maxlat=pos_lat}
如果(pos_lonmaxlng | maxlng==0){maxlng=pos|lon}
lat=minlat+((maxlat-minlat)/2);
液化天然气=最小液化天然气+((最大液化天然气-最小液化天然气)/2);
var allpoints=新玻璃(lat,lng);
扩展(所有点);
}
}
如果(职位){
如果(缩放>2){
setZoom(map.getBoundsZoomLevel(bounds)-2);
}
否则{
map.setZoom(10);
}
map.setCenter(bounds.getCenter());
}
}
}
var addMarker=功能(纬度、经度、选项){
点=新玻璃(纬度、经度);
var标记=新的GMarker(点、选项);
addListener(标记“单击”,函数(){
marker.openInfoWindowHtml(信息框html);
});
添加覆盖图(标记);
}
$(文档).ready(函数(){
mapStart();
});   
window.onunload=函数(){GUnload()};
数组末尾有一个额外的逗号。
还可以尝试使用
数据映射[i].lat
而不是
数据映射[i]['lat']

后面的逗号肯定会出错,因为它会在数组末尾添加一个伪元素。。。但是,我认为在这种情况下,在尝试访问属性时,使用
.lat
['lat']
不会有什么不同。
var data_map = [{'url': '/bo/properties/property/7/', 'lat': '52.1898985', 'long': '20.8461914', 'name': 'asdfgh'},]