2014-08-27 39 views
3

每当我收到我们服务器的请求以获取设备的新位置并在地图上更新标记的位置时,我的车辆设备移动时,我的标记中存在问题,标记将跳转到新的位置并闪烁。 我该如何避免这种不闪烁,或我的标记可以平稳移动。如何平稳地移动标记而不会在地图上闪烁

预先感谢您。

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); 
    } 
} 
+0

的例子。如果你不希望他们忽悠,不从地图上“去除”它们,更新自己的位置。 – geocodezip 2014-08-27 18:39:13

+0

但如果我不会删除标记,我的浏览器将挂起。 – jemz 2014-08-27 18:44:27

回答

6

如果你不想让它们闪烁,不要从地图上“移除”它们,更新它们的位置。

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

送行example总部设在this similar question

+0

我明白了,好的,我会尝试这个解决方案,我会让你知道的。我会回来的。谢谢你的回复。 – jemz 2014-08-27 18:53:46

+0

请注意,此代码未经测试(您没有提供[最小,完整,已测试和可读的示例](http://stackoverflow.com/help/mcve),并提供了足够的信息以允许这样做),可能需要调试。 – geocodezip 2014-08-27 18:55:56

+0

好吧,我会试试,如果可以,我会尝试调试。通过这种方式可以使我的标记将像这个示例一样移动http://econym.org.uk/gmap/example_cartrip.htm eventhough我有将发送坐标的设备。 – jemz 2014-08-27 19:14:58

相关问题