2010-12-15 11 views

答えて

13

長いクリックでは、http://www.kind-kristiansen.no/2010/handling-longpresslongclick-in-mapactivity/をチェックアウトすることをおすすめします。これは、私が知っている組み込みの機能がほとんどないか、またはまったくないので、Maps API内の長いクリックイベントをリスンする方法について詳しく説明します。

緯度/経度コードは、長いクリックを取得した後、ピクセルを座標に変換できます。

public void recieveLongClick(MotionEvent ev) 
{ 
    Projection p = mapView.getProjection(); 
    GeoPoint geoPoint = p.fromPixels((int) ev.getX(), (int) ev.getY()); 
    // You can now pull lat/lng from geoPoint 
} 
+3

上の緯度と経度を提供します。私はちょうどクリーナーであり、よりよく働くソリューションで新しい投稿を書いた。それは興味深いかもしれません:http://www.kind-kristiansen.no/2011/android-handling-longpresslongclick-on-map-revisited/ – rogerkk

4

あなたはLongClickイベントを管理し、次のコードを使用して、緯度と経度を調べるために、コードを使用する必要があります:

GeoPoint geoPoint=mapView.getProjection().fromPixels((int)event.getX(),(int)event.getY()); 
int latitude = geoPoint.getLatitudeE6(); 
int longitude = geoPoint.getLongitudeE6(); 

「イベント」が「MotionEvent」のオブジェクトです。

あなたのケースに応じて、他のイベントを使用してください。

0

それは私がしばらく前に書いたブログ記事にこの回答ポイントにリンクマップをクリックした時点

map.setOnMapClickListener(new OnMapClickListener() { 

     @Override 
     public void onMapClick(LatLng point) { 
      //myMap.addMarker(new MarkerOptions().position(point).title(point.toString())); 

       //The code below demonstrate how to convert between LatLng and Location 

       //Convert LatLng to Location 
       Location location = new Location("Test"); 
       location.setLatitude(point.latitude); 
       location.setLongitude(point.longitude); 
       location.setTime(new Date().getTime()); //Set time as current Date 
       txtinfo.setText(location.toString()); 

       //Convert Location to LatLng 
       LatLng newLatLng = new LatLng(location.getLatitude(), location.getLongitude()); 

       MarkerOptions markerOptions = new MarkerOptions() 
         .position(newLatLng) 
         .title(newLatLng.toString()); 

       map.addMarker(markerOptions); 

     } 
    }); 
関連する問題