2015-05-06 11 views
11

MapView ben tüm resmi yönergeleri takip ettim (api reference) 0.5.1 kütüphaneleri oluşturmak 0.5.1 sahte bir haritalarda tıkladım ama şu sorun var:Latitude alın ve bir pozisyonun Boylam Ben haritalar kullanmak

Ben

(org.mapsforge.map.android.view.MapView) MapView

bir onTouchListener eklenmiş ama ben) yöntemi mapView.getProjection (aramaya çalıştığınızda, ben olsun erro r "getProjection() yöntemini çözemez. Yöntem birçok çevrimiçi örnekte çağrılsa bile, resmi api referansında veya MapView.class'da yoktur. org.mapsforge.map.android.view.MapView

org.mapsforge.map.android.view.MapView mapView; 
mapView.setOnTouchListener(new View.OnTouchListener(){ 

     @Override 
     public boolean onTouch(View v, MotionEvent ev) { 
      int actionType = ev.getAction(); 
      switch (actionType) { 
       case MotionEvent.ACTION_DOWN: 

        return false; 

       case MotionEvent.ACTION_UP: 
        mapView.getProjection(); // the error is here 

        return true; 
       case MotionEvent.ACTION_MOVE: 
        return false; 
      } 
      return false; 
     } 
    }); 

mapsforge lib kullanılarak aday noktanın enlem ve boylam almak için herhangi bir alternatif yolu var mı? Yanlış bir şey mi yapıyorum? Bir dokunuştan sonra koordinatları almanın bir yolu yoksa, kütüphanenin çok önemli bir şey eksik olduğunu düşünüyorum.

Teşekkür ederiz

cevap

6

Kullanım

new MapViewProjection(mapView).fromPixels(double x, double y); 

THey sürümü 0.4 de bağlantı tersine ya yani- yerine artık bir MapView gelen projeksiyon alma, bir projeksiyon için bir MapView geçmektedir.

1

Doğru MapView'ı aldığınızdan emin misiniz? Yanlış bir sınıf olduğunu düşünürseniz, bu işlevi olmayan bir MapView Google sürümü vardır.

+0

Hayır, MapView'umu org.mapsforge.map.android.view.MapView olarak bildirdim. – karvoynistas

+0

Hmm. İşaret ettiğin belgelere baktım, ya da getProjection fonksiyonu yok. Bu işlevin neden var olduğunu düşündüğünüzden emin değilsiniz. –

+0

Mapforge'ın 0.3 veya 0.4 gibi eski sürümleri getProjection yöntemini içerir. Asıl nokta, tıklanan noktanın koordinatlarını almak için var mıdır? Eski versiyonların sondan daha eksiksiz olması garip. – karvoynistas

1

TileRendererLayer numaralı telefondan onTap olayından faydalanabilirsiniz, böylece tek bir dokunuş/tıklamanın tanımlanmasında daha zor olan `` View.onTouch olayını kullanmamalısınız.

// tile renderer layer using internal render theme 
MapDataStore mapDataStore = new MapFile(filename); 
TileRendererLayer tileRendererLayer = 
     new TileRendererLayer(tileCache, 
           mapDataStore, 
           this.mapView.getModel().mapViewPosition, 
           AndroidGraphicFactory.INSTANCE) { 
    @Override 
    public boolean onTap(LatLong tapLatLong, Point layerXY, Point tapXY) { 
     ShowTapLocation(tapLatLong); 
     return true; 
    } 
}; 
+0

Teşekkür ederim, Çocuklar .... –

İlgili konular