Javascript 如何在地图中平滑移动标记而不闪烁

Javascript 如何在地图中平滑移动标记而不闪烁,javascript,google-maps,google-maps-api-3,Javascript,Google Maps,Google Maps Api 3,每次我收到服务器请求获取我的设备的新位置并更新我的标记在地图上的位置时,我的标记都有问题,当我的车辆设备移动时,标记将跳转到新位置并闪烁。 我如何才能避免这种不闪烁,或我的标记可以顺利移动 先谢谢你 var map; var marker; var markerarray =[]; setInterval(function(){ $.ajax({ type: "post", url: "vehiclecordinates.php", s

每次我收到服务器请求获取我的设备的新位置并更新我的标记在地图上的位置时,我的标记都有问题,当我的车辆设备移动时,标记将跳转到新位置并闪烁。 我如何才能避免这种不闪烁,或我的标记可以顺利移动

先谢谢你

var map;
var marker;
var markerarray =[];

setInterval(function(){

    $.ajax({
        type: "post",
        url: "vehiclecordinates.php",
        success: function(data){

            coordinates = data.latlng;
            vehiclename = data.vehiclename;

            for (var i = 0; i < coordinates.length; i++) {

                newcoordinate = new google.maps.LatLng(coordinates[i].split(",")[0],coordinates[i].split(",")[1]);
                marker =  new MarkerWithLabel({
                     map:map,
                     labelClass: "mylabels",
                     labelStyle: {opacity: 1.0},
                     labelContent: '<div>'+ vehiclename[i]+'</div>',
                     icon:{
                         //some options here
                     },
                });

                marker.setPosition(newcoordinate);
                markerarray.push(marker);
            }
        }
    });

    setTimeout(function () {
        removeMarkers();
        delete marker;
    }, 1000);
},5000);

function removeMarkers() {
    for(var i = 0; i < markerarray.length; i++) {
        markerarray[i].setMap(null);
    }
}
var映射;
var标记;
var-markerary=[];
setInterval(函数(){
$.ajax({
类型:“post”,
url:“vehiclecordinates.php”,
成功:功能(数据){
坐标=data.latlng;
vehiclename=data.vehiclename;
对于(变量i=0;i
如果你不想让它们闪烁,不要从地图上“删除”它们,更新它们的位置

var map;
var marker;
var markerarray =[];

setInterval(function(){
  $.ajax({
    type: "post",
    url: "vehiclecordinates.php",
    success: function(data){
      coordinates = data.latlng;
      vehiclename = data.vehiclename;
      for (var i = 0; i < coordinates.length; i++) {
        newcoordinate = new google.maps.LatLng(coordinates[i].split(",")[0],coordinates[i].split(",")[1]);
        if (markerarray[vehiclename[i]] && markerarray[vehiclename[i]].setPosition){
          markerarray[vehiclename[i]].setPosition(newcoordinate);
        else {
          marker =  new MarkerWithLabel({
            map:map,
            labelClass: "mylabels",
            labelStyle: {opacity: 1.0},
            labelContent: '<div>'+ vehiclename[i]+'</div>',
            icon:{
              //some options here
            }
          });
          marker.setPosition(newcoordinate);
          markerarray[vehiclename[i]] = marker;
        }
      }
    }
  });
},5000);
var映射;
var标记;
var-markerary=[];
setInterval(函数(){
$.ajax({
类型:“post”,
url:“vehiclecordinates.php”,
成功:功能(数据){
坐标=data.latlng;
vehiclename=data.vehiclename;
对于(变量i=0;i

请参见

中的示例。如果您不希望它们闪烁,请不要从地图上“删除”它们,更新它们的位置。但如果我不删除标记,我的浏览器将挂起。我明白了,好的,我将尝试此解决方案,并会让您知道。我会回来的。感谢您的帮助和快速回复。请注意,此代码未经测试(您没有提供足够的信息以允许此操作),可能需要调试。好的,我将尝试调试,如果可以的话,我将尝试调试。顺便问一下,即使我有可以发送坐标的设备,是否可以使我的标记像此示例一样移动。?您可能需要选择所需内容。该示例包含整个路径,并以小增量移动标记。您有“real”数据,我假设您想要显示当前位置。如果您想要,您可以编写代码以更快的速度将每个标记移动到其新位置的距离的一小部分;但是如果您有很多标记,则需要更多的处理能力。