Добавление прослушивателя событий приводит к зависанию карты Google - PullRequest
0 голосов
/ 05 ноября 2011

Я пытаюсь создать карту Google с маркерами на своей странице.У меня есть неупорядоченный список, где каждый элемент имеет атрибуты данных для широты, долготы и названия.Используя JQuery, я извлекаю эти значения и создаю маркер на карте для каждого элемента в списке.Кажется, все работает хорошо, за исключением того, что карты Google не будут загружать плитки при перемещении по карте.

google map tiles not loading

Вот как я инициализирую карту:

var map;
// initialize google map
$(function () {
    var myOptions = {
        zoom: 10,
        center: new google.maps.LatLng(CoordinatesLat, CoordinatesLong),
        mapTypeId: google.maps.MapTypeId.ROADMAP,
        mapTypeControl: false
    }
    // initiate map
    map = new google.maps.Map($("#map")[0], myOptions);

    // when map is loaded, add events and behaviors to it
    google.maps.event.addListenerOnce(map, 'tilesloaded', addEventsToMap(".event")); //commenting this line prevents GMAP problems
});

К вашему сведению - до того, как я использовал maps.event.addListener (), карта мгновенно работала, а затем полностью перестала отвечать.Изменение его на maps.event.addListenerOnce () остановило замораживание, но все еще имеет проблему с загрузкой плитки.

И это обратный вызов, где, очевидно, я сделал что-то не так:* Есть идеи, что может быть причиной этого?

1 Ответ

1 голос
/ 05 ноября 2011

Я вижу проблему, хотя я не уверен, что это проблема здесь. Если вы изучите эту строку:

google.maps.event.addListenerOnce(map, 'tilesloaded', addEventsToMap(".event"));

То, что вы намереваетесь сделать, это вызвать ваш addEventsToMap после загрузки карты, но вместо этого вы вызываете функцию и затем назначаете возвращаемое значение этого в качестве слушателя.

Тебе это нужно вместо этого, и я думаю, что оно больше не должно падать.

google.maps.event.addListenerOnce(map, 'tilesloaded', function() {
  addEventsToMap(".event");
});

Если это не сработает, я бы порекомендовал посмотреть на консоль Javascript любого браузера, который вы используете, чтобы увидеть, какая ошибка происходит при сбое карты.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...