2016-11-27 71 views
0

我想将标记移动到存储到数组中的位置。如何移动一个给定位置阵列的标记?

  let vehicule_assigne_geo = { lat: 45.495252, lng: -73.605798 }; 
      var image = "img/Sedan-52.png"; 
      let marker = new google.maps.Marker({ 
         position: vehicule_assigne_geo, 
         map: self.map, 
         draggable: false, 
         icon: image, 
         title: 'Your taxi' 
      }); 
      //self.tabmarkers is my array of positions 
      //positions have this format: var LatLng = { lat:steps[c].lat_lngs[i].lat() , lng: steps[c].lat_lngs[i].lng() }; 
      for(var i=0;i<self.tabmarkers.length;i++){ 
       marker.setPosition(self.tabmarkers[i])  
      } 

我可以在array.I的最后一个位置看到标记试图把O超时这样

setTimeout(3000) 

只需设置position.But这并没有改变后的结果。 我在做什么错?

回答

0

也许你需要像谷歌地图Marker animations with setTimeout()例如:

关键是要乘的超时值。或者你可以使用setInterval()方法。 当你没有给你的整个代码,你需要这样的事情:

for(var i=0; i < self.tabmarkers.length; i++){ 
    moveMarkerWithTimeout(self.tabmarkers[i], i * 1000);   
}; 
function moveMarkerWithTimeout(position, timeout){ 
    window.setTimeout(function() { 
     marker.setPosition(position); 
    }, timeout); 
} 

没有测试过,但它应该工作。

相关问题