Javascript - событие обновления API Google - PullRequest
0 голосов
/ 20 октября 2011

Я делаю php web, который обновляет свой контент с помощью ajax, и карта обновляется, вызывая с помощью таймера функцию load () карты .., это не проблема

Моя проблема в том, что я должен поставитьmap.setCenter в первый раз.Представьте, что я начинаю искать маркер, который я вставил в карту, а затем через 20 секунд он перезагружает карту и снова отправляется в мой "setCenter" .. Я этого не хочу.Я хочу обновить, но карта остается там, где я ищу ...

есть ли какая-либо функция для этого?вот моя функция загрузки

function load() {
      if (GBrowserIsCompatible()) {
        var map = new GMap2(document.getElementById("map"));
        map.addControl(new GSmallMapControl());
        map.addControl(new GMapTypeControl());
        map.setCenter(new GLatLng(-34.603365,-58.379416),11);   
        map.enableScrollWheelZoom();


        GDownloadUrl("creoXml.php", function(data) {
          var xml = GXml.parse(data);
          var markers = xml.documentElement.getElementsByTagName("marker");
          for (var i = 0; i < markers.length; i++) {
            var name = markers[i].getAttribute("numMovil");
            var type = "Movil";
            var nameTit = "Móvil "+name;
            var point = new GLatLng(parseFloat(markers[i].getAttribute("latitud")),
                                    parseFloat(markers[i].getAttribute("longitud")));
            var marker = createMarker(point, nameTit,type);
            map.addOverlay(marker);
          }
        });
      }
    }




    function createMarker(point, name,type) {
      var marker = new GMarker(point, customIcons[type]);
      var html = "<b>" + name + "</b>";
      GEvent.addListener(marker, 'click', function() {
        marker.openInfoWindowHtml(html);
      });
      return marker;
    }

выглядит так, что каждый раз, когда я вызываю load (), мой setCenter таков ... и если я удаляю setCenter с условием, карта становится белой ... спасибо

1 Ответ

0 голосов
/ 21 октября 2011

Поместите глобальную переменную в ваш код и назовите ее loading = 1. Затем в вашей функции загрузки добавьте что-то вроде этого

if(loading==1){
  setCenter....
  loading=0;
}
...