2011-12-07 12 views
0

Googleマップを使用するアンドロイドアプリを作っています。 1つの機能は、ユーザが地図の1点をタッチして座標を取得できることである。ここでは、http://mobiforge.com/developing/story/using-google-maps-android?page=1というモーションイベントでこれを実装する方法を示した素晴らしいチュートリアルを見つけました(このチュートリアルのコードは、「タッチされた場所の取得」にあります)。Android - マウスでクリックされたピクセルの座標を取得します。

私の問題は、タッチイベントがエミュレータでサポートされていないようで、いつでもテストするためのアンドロイドデバイスがないことです。だから私は、マウスで画面をクリックして、クリックされたピクセルの座標を取得することができるメソッドを持っていたいと思っています(そのため、それらをgeocoordinatesに変換します)。

これまでの私の研究からは、何かが存在する場合、私は合うものは何も見つかりませんでした。誰も助けることができますか?

答えて

1

ありますこれはあなたを助ける:

OnCreateイベントコード:

mapView = (MapView) findViewById(R.id.mapView); 
      mapView.setBuiltInZoomControls(true); 
      List<Overlay> mapOverlays = mapView.getOverlays(); 
      MapOverlay mapOverlay = new MapOverlay(); 

      mapOverlays.add(mapOverlay); 

触れないように対応させていただきますオーバーレイの内部クラス(エミュレータ上でクリックしてください)

class MapOverlay extends com.google.android.maps.Overlay 
     { 

     @Override 
     public boolean onTap(GeoPoint p, MapView mapView) { 
      // TODO Auto-generated method stub 


      mc= mapView.getController(); 
      mc.animateTo(p); 

      latitude=p.getLatitudeE6()/1E6; 
      longitude=p.getLongitudeE6() /1E6 ; 
        Toast.makeText(Activity.this, 
         p.getLatitudeE6()/1E6 + "," + 
         p.getLongitudeE6() /1E6 , 
         Toast.LENGTH_SHORT).show(); 
     return true; 

     } 
} 
+0

はい、これは素晴らしいです! (今までエミュレータでのみテスト済み) ありがとうございました! – george

+1

うまくいけば、それを受け入れるべきです(刻々と)歓声! –

+0

完了!フォーラムに申し訳ありません、この機能はわかりませんでした。私はそれをgoogledと私はここでそれを見つけた..再びありがとう! – george

1

特定のチュートリアルがマウスクリックにも反応することがわかります。スクリーンショットはすべてエミュレータのものです。

著者のコーディングスタイルにジャスト1ノート:

if (event.getAction() == 1) 

ながら

は同じことに

if (event.getAction() == MotionEvent.ACTION_UP) 

量を動作しますが、より記述し、より良い練習

+0

彼は私が望んでいた場合、私は知りませんチュートリアル..私は本当にそれを見つけることができませんでした、多分私のせいです。レスポンスありがとう! – george

関連する問題