2014-08-27 4 views
3

내 장치에 대한 새 위치를 얻기 위해 Google 서버에 요청을 받고지도에서 내 마커의 위치를 ​​업데이트 할 때마다 내 마커에 문제가 있습니다. 마커는 새 위치로 점프하고 깜박입니다. 어떻게 이것을 피함으로써 깜빡 거림이 없거나 마커가 부드럽게 움직일 수 있습니다.지도에서 깜박임없이 부드럽게 마커를 이동하는 방법

미리 감사드립니다.

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

+0

마커를 제거하지 않으면 브라우저가 중단됩니다. – jemz

답변

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

는 당신이 그 (것)들을,지도에서 그들을 "제거"자신의 위치를 ​​업데이트하지 깜박하지 않으려면 examplethis similar question

+0

알겠습니다. 알았습니다.이 해결책을 시도해보고 알려 드리겠습니다. 돌아 올께요. 답장을 보내 주셔서 감사합니다. – jemz

+0

이 코드는 테스트되지 않았으므로 (디버깅이 필요할 수있는 충분한 정보가있는 [최소, 완료, 테스트되고 읽을 수있는 예제] (http://stackoverflow.com/help/mcve)를 제공하지 않았습니다. – geocodezip

+0

좋아요, 그냥 시도해 볼게요. 내가 할 수 있다면 디버깅을 시도 할 것입니다. 그런데 내 마커를이 예제처럼 움직일 수있게 만드는 것입니다. http://econym.org.uk/gmap/example_cartrip.htm 좌표를 보낼 장치. – jemz

관련 문제