2010-11-18 17 views
0

İki öğe (itemizedoverlay sınıfı) görüntüleyen bir googlemap uygulamasına sahibim ve bir Güncelleştirme düğmesine sahibim. Güncelleme düğmesine bastığımda, öğeleri haritadan kaldırmak ve aynı öğeleri yeni enlem ve boylam değerleriyle tekrar yerleştirmek istiyorum (sharedPreferences'da sahip olduğum enlem ve boylam alanlarını içeren bir hizmetim var ve Ayrıca bir paket tarafından diğer konumu recibe)Bir googlemaptaki öğelerin konumları nasıl belirlenir?

Neyi yanlış yapıyorum? benim kod çalıştığınızda, haritanın ürün sadece yeni öğeler görünür ... ama eskileri

updateButton.setOnClickListener(new OnClickListener() { 
      public void onClick(View v) { 
       mapOverlays.clear(); 
       updateMyPosition(); 
       updateFriendPosition(); 
      } 
     }); 

kaldırmak istiyorsanız ve bu benim iki fonksiyonlar .... kaldırılamaz değildir:

private void updateFriendPosition() 
    { 
     Bundle bundle = this.getIntent().getExtras();//get the intent & bundle passed by X 
     userText.setText(bundle.getString("user")); 
     permissionText.setText(bundle.getString("permission")); 
     lastUpdateText.setText(bundle.getString("lastupdate")); 
     String coordinates[] = {bundle.getString("lat"), bundle.getString("lon")}; 
     lat = Double.parseDouble(coordinates[0]); 
     lng = Double.parseDouble(coordinates[1]); 
     p = new GeoPoint((int) (lat * 1E6), (int) (lng * 1E6)); 
     OverlayItem overlayitem1 = new OverlayItem(p, bundle.getString("user"), "Hi Friend!"); 
     itemizedoverlay.addOverlay(overlayitem1); 
     mapOverlays.add(itemizedoverlay);// dibujo la estrella con la posicion actual del friend 

     mc.animateTo(p); ///nos centra el mapa en la posicion donde esta nuestro amigo 
     mc.setZoom(10); /// ajusta el zoom a 10   
    } 

private void updateMyPosition() 
    { 
     String coordinates[] = {settings.getString("mylatitude", null),settings.getString("mylongitude", null)};  
     lat = Double.parseDouble(coordinates[0]); 
     lng = Double.parseDouble(coordinates[1]); 
     p = new GeoPoint((int) (lat * 1E6), (int) (lng * 1E6)); 
     OverlayItem overlayitem1 = new OverlayItem(p, "Me", "My Position"); 
     itemizedoverlay2.addOverlay(overlayitem1); 
     mapOverlays.add(itemizedoverlay2);//dibujo mi icono para mostrarme a mi 
    } 

ben de MapView üzerinde geçersiz() ile uğraş ama yine de bu SDK dayalı öğretici gibi görünüyor eski öğeleri ...

cevap

1

boya ... çalıştığını etmez. Itemizedoverlay ve diğerine iki şey eklediniz. Eğer

itemizedoverlay.addOverlay(overlayitem1); 
+0

teşekkür çağırmadan önce, HelloItemizedOverlay bir yöntem eklemek için

public void clear() { mOverlays.clear(); } 

Çağrısı bu yöntem, yani 'açık' gerekiyor! hehe çözüldü belki bana bu soruya yardım edebilir misin? http://stackoverflow.com/questions/4216231/how-to-actualice-the-positions-of-the-items-in-a-googlemap – NullPointerException

+0

Çalıştığına sevindim. Diğer sorunuza olan bağlantınız buna rağmen geri dönüyor! – NickT

+0

oh üzgünüm, şuna bakın: http://stackoverflow.com/questions/4217090/why-this-thread-doesnt-work – NullPointerException

İlgili konular