2015-03-25 1 views
0

Я новичок, у меня есть сервис отслеживания нескольких автомобилей, я использую timmer для получения места, но я не знаю, как обновить старый маркер с новым значением. Я пытаюсь использовать удалить все маркер, а затем добавить еще раз, но он не является гладким. PLZ помочь мне. Sr для плохого английскогоКак обновить расположение нескольких маркеров на картах Google с помощью phonegap

var markers = []; 
var marker = []; 

setInterval(function() { 
     for (var i = 0; i < markers.length; i++) { 
      markers[i].setMap(null); 
     } 
     markers = []; 

     $.ajax({ 
      type: "POST", 
      contentType: "application/xml; charset=utf-8", 
      url: "http://localhost:24074/WebService1.asmx/DoWork", 
      data: {}, 
      dataType: "xml", 
      crossDomain: true, 
      processData: false, 
      success: function (xml) { 
       var bienSo, soHieu, soCho, vd, kd; 
       $(xml).find('T_XeOnline').each(function() { 
        $(this).find("KinhDo").each(function() { 
         kd = $(this).text(); 
        }); 
        $(this).find("ViDo").each(function() { 
         vd = $(this).text(); 
        }); 
        $(this).find("BienSoXe").each(function() { 
         bienSo = $(this).text(); 
        }); 
        $(this).find("SoHieuXe").each(function() { 
         soHieu = $(this).text(); 
        }); 
        $(this).find("SoCho").each(function() { 
         soCho = $(this).text(); 
        }); 
        content = '<p>Biển số xe: ' + bienSo + '<br/>' + 
           'Số hiệu xe: ' + soHieu + '<br/>' + 
           'Số chỗ: ' + soCho + '<br/>' + '</p>'; 

        updateMarker(vd, kd); 
       }); 


      }, 
      error: function (msg, textStatus) { 
       alert("Error " + msg.responseText + "" + msg.statusText + "" + XMLHttpRequest.stat); 
      } 
     }) 
    }, 5000); 

function updateMarker(lat, lng) { 

    marker = new google.maps.Marker({ 
     position: new google.maps.LatLng(lat, lng), 
     map: map, 
    }); 

    markers.push(marker); 
    addInfoWindow(marker, content); 
} 

ответ

1

Там нет встроенной функции для этого, но вы можете построить собственное с помощью функции setPosition(latlng) обновить позиции маркеров, и использовать setTimeout(myFun, delay) подождать и сделать это выглядит, как это анимируется.

Я создал JSFiddle here.

Надеюсь, эта помощь.

Смежные вопросы