2011-03-29 64 views
2

您好我有一个网站使用Google Maps API v3作为会员地点。在Google地图上的Google Maps API v3问题

但与Internet Explorer我有几个问题:

1.-当网站加载它抛出一个errror(仅限于IE)的JavaScript:_

Message: Invalid property value. 
Line: 33 
Char: 212 
Code: 0 
URI: http://maps.gstatic.com/cat_js/intl/en_gb/mapfiles/api-3/4/7/%7Bmain,geometry%7D.js 

这是在JS我装: http://maps.google.com/maps/api/js?libraries=geometry &传感器=真

这是该文件的最后部分(即导致问题的部分):

[...] 
var loadScriptTime = (new Date).getTime(); 
getScript("http://maps.gstatic.com/cat_js/intl/en_gb/mapfiles/api-3/4/7/%7Bmain,geometry%7D.js"); 
})(); 

2:地图载入和显示正确的位置,但它并不显示任何控制和无法与之互动地图(这可能是因为第一个错误)

有没有人知道如何解决这个问题?

谢谢!

EDIT --------------------------

下面是我用来加载地图的功能:

function initialize() { 

    london = new google.maps.LatLng(51.5, 0); 
    uk = new google.maps.LatLng(55.7, -4); 

    var myOptions = { 
     backgroundColor: '#FFFFF', 
     zoom: 12, 
     navigationControl: true, 
     mapTypeId: google.maps.MapTypeId.ROADMAP 
    }; 

    var map_canvas = document.getElementById("map_canvas"); 

    map = new google.maps.Map(map_canvas, myOptions); 


    google.maps.event.addListener(map, 'mouseover', function(event) { 
     $(map_canvas).ancestors()[0].addClassName("bigGMap"); 
    }); 

    google.maps.event.addListener(map, 'mouseout', function(event) { 
     $(map_canvas).ancestors()[0].removeClassName("bigGMap"); 
    }); 


    google.maps.event.addListenerOnce(map, 'click', function(event) { 
     placeMarker(event.latLng); 
    }); 

    getMyLocation(); 


} 

function getMyLocation() 
{ 
    // Try W3C Geolocation (Preferred) 
    if(navigator.geolocation) { 
     browserSupportFlag = true; 
     navigator.geolocation.getCurrentPosition(function(position) { 
      initialLocation = new google.maps.LatLng(position.coords.latitude,position.coords.longitude); 
      map.setCenter(initialLocation); 
     }, function() { 
      handleNoGeolocation(browserSupportFlag); 
     }); 
     // Try Google Gears Geolocation 
    } else if (google.gears) { 
     browserSupportFlag = true; 
     var geo = google.gears.factory.create('beta.geolocation'); 
     geo.getCurrentPosition(function(position) { 
      initialLocation = new google.maps.LatLng(position.latitude,position.longitude); 
      map.setCenter(initialLocation); 
     }, function() { 
      handleNoGeoLocation(browserSupportFlag); 
     }); 
     // Browser doesn't support Geolocation 
    } else 
    { 
     browserSupportFlag = false; 
     handleNoGeolocation(browserSupportFlag); 
    } 

} 

function handleNoGeolocation(errorFlag) { 
    map.setZoom(6), 
    map.setCenter(uk); 
    map.setMapTypeId(google.maps.MapTypeId.ROADMAP); 
} 


function loadMapScript() { 
    var map_api = document.createElement("script"); 
    var gears = document.createElement("script"); 

    map_api.type = "text/javascript"; 
    map_api.src = "http://maps.google.com/maps/api/js?libraries=geometry&sensor=true&callback=initialize"; 

    gears.type = "text/javascript"; 
    gears.src = "http://code.google.com/apis/gears/gears_init.js"; 

    document.body.appendChild(map_api); 
    document.body.appendChild(gears); 
} 
+0

即使错误显示在谷歌代码中,当初始化地图时,问题很可能出现在您的页面中。你也可以显示该代码吗? – 2011-03-29 12:59:30

+0

@Pekka我刚刚添加了我用来加载地图的功能。 – SERPRO 2011-03-29 13:08:49

+0

你使用原型作为你的JS框架吗? – kjy112 2011-03-29 13:23:04

回答

4

好吧,我终于找到了问题。它在初始化功能

function initialize() { 

    london = new google.maps.LatLng(51.5, 0); 
    uk = new google.maps.LatLng(55.7, -4); 


    var myOptions = { 
     backgroundColor: '#FFFFFF ', 
     zoom: 12, 
     navigationControl: true, 
     mapTypeId: google.maps.MapTypeId.ROADMAP 
    }; 
    [...] 

在的backgroundColor我 F公司 '#FFFFF',而不是 '#FFFFFF'。就这样。对这篇文章感到抱歉。但我希望它可以帮助别人在这个问题上不浪费很多时间。