2016-04-03 14 views
2

Bir googleMap'teki işaretleyici konumunu 5 saniyelik aralıklarla güncellemek istiyorum. GoogleMap'te bir işaretleyici ile göstermem gereken sunucudan farklı Lattitude ve Boylam değerleri alıyorum. Ben aşağıdakileri ben güzel 5 seconds.It güncellemeleri düzenli aralıklarla updateCabLocation yöntemini çağırarak ama ANR mesajı gösterir amgoogleMap işaretleyici düzenli aralıklarla nasıl güncellenir?

void updateCabLocation(final LatLng location) { 

    if(myMarker == null) { 
     myMarker = mGoogleMap.addMarker(new MarkerOptions().position(location). 
       icon(BitmapDescriptorFactory.fromResource(R.drawable.myMarkerImage))); 
    }else { 
     myMarker.setPosition(location); 
    } 
    CameraUpdate cameraUpdate = CameraUpdateFactory.newLatLngZoom(location, 15); 
    mGoogleMap.moveCamera(CameraUpdateFactory.newLatLng(location)); 
    mGoogleMap.animateCamera(cameraUpdate); 

} 

Runnable updateMarker = new Runnable() { 
     @Override 
     public void run() { 
        updateCabLocation(location); // location value changes each time. I have deleted that piece of code here. 
        handler.postDelayed(updateMarker, 5000); 
     } 
    }; 

çalıştı. Bunu başarmanın başka bir yolu var mı?

+1

Sadece bir not: neden iki kamera güncelleştirmesi var? Sadece bunlara ihtiyacın var. @MD Konumunu güncellerken işaretleyiciyi kaldırmak için bir neden yoktur. –

+0

@SamiKuhmonen evet haklısınız. –

+0

'updateCabLocation' öğesini nerede arıyorsun? Bir AsyncTask kullanıyor musunuz? Bu kodu gönderebilir misin? – antonio

cevap

1

Sen it- Sen haritayı her zaman temizlemek

  1. yapmak ve sonra yeni bir işaretçisi her zaman çizmek için iki yol vardır.
  2. Konum güncellemelerinizde yeni bir konum elde ettiğinizde aynı konumu farklı konumlara ekleyin.
+1

Kodumu görürseniz, her seferinde bir 'Marker' oluşturmuyorum. Eğer boşsa o zaman sadece onu yapıyorum. –

+0

iyi bir numaradır. sadece konumu güncelleyin. ama hareketinizde biraz canlı ve güzel hareketler istiyorsanız, işaretleyiciyi canlandırmaya gitmelisiniz. –

İlgili konular