如何在给定位置数组的情况下移动标记?

Posted

技术标签:

【中文标题】如何在给定位置数组的情况下移动标记?【英文标题】:How can I move a marker given an array of positions? 【发布时间】:2017-04-11 00:44:24 【问题描述】:

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

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

我可以在数组的最后一个位置看到标记。我试着像这样设置超时

setTimeout(3000)

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

【问题讨论】:

【参考方案1】:

您可能需要类似 Google 地图的 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);

尚未测试,但应该可以。

【讨论】:

以上是关于如何在给定位置数组的情况下移动标记?的主要内容,如果未能解决你的问题,请参考以下文章

Scintilla:如何在给定特定字符位置的情况下找到字节位置

如何在不刷新整个地图的情况下更新谷歌地图上的标记位置?

如何在没有事件的情况下获取鼠标位置(不移动鼠标)?

如何在不更改用户设置的缩放比例的情况下更新地图标记?

如何在给定 scnvector3 点数组的情况下创建倾斜平面

将数组元素从一个数组位置移动到另一个位置