Проблемы с Google Maps API v3 в IE - PullRequest
2 голосов
/ 29 марта 2011

Привет! У меня есть веб-сайт, который использует API Карт Google v3 для местоположений пользователей.

Но с Internet Explorer у меня есть несколько проблем:

1 .- Когда веб-сайт загружает JavaScript, он выдает ошибку (только в IE): _

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&sensor=true

Это последняя часть этого файла (часть, которая вызывает проблему):

[...]
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 .- Карта загружается и показывает правильное положение, но не показывает никаких элементов управления и не позволяет взаимодействовать с картой (это, вероятно, из-за первой ошибки)

Кто-нибудь знает, как это исправить?

Спасибо!

РЕДАКТИРОВАТЬ --------------------------

Вот функции, которые я использую для загрузки карты:

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);
}

1 Ответ

3 голосов
/ 29 марта 2011

Хорошо, я наконец нашел проблему. Он находится в функции initialize

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
    };
    [...]

На фоне цвета у меня было 5 F '#FFFFF' вместо 6 '#FFFFFF'. И это все. Извините за пост. Но я надеюсь, что это поможет кому-то не тратить много времени на эту проблему.

...