给定一系列位置,如何移动标记?

时间:2016-11-27 01:25:06

标签: google-maps google-maps-api-3 typescript ionic2 marker

我正在尝试将标记移动到存储在数组中的位置。

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

我可以在数组的最后位置看到标记。我试图像这样把o超时

setTimeout(3000)

设置位置后。但这不会改变结果。 我做错了什么?

1 个答案:

答案 0 :(得分: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);
}

Haven未经测试但应该可以使用。