如何使用MapFragment(而不是MapView)获取地图的坐标?

我已经search了如何在地图点击时获取位置的坐标。 但是,大多数(如果不是全部)例子都需要一个MapView作为参数。 例如:

 public boolean onTap(GeoPoint p, MapView map){ if ( isPinch ){ return false; }else{ Log.i(TAG,"TAP!"); if ( p!=null ){ handleGeoPoint(p); return true; // We handled the tap }else{ return false; // Null GeoPoint } } } @Override public boolean onTouchEvent(MotionEvent e, MapView mapView) { int fingers = e.getPointerCount(); if( e.getAction()==MotionEvent.ACTION_DOWN ){ isPinch=false; // Touch DOWN, don't know if it's a pinch yet } if( e.getAction()==MotionEvent.ACTION_MOVE && fingers==2 ){ isPinch=true; // Two fingers, def a pinch } return super.onTouchEvent(e,mapView); } 

因此,我如何通过MapFragment而不是MapView获取地图上的挖掘位置?

Solutions Collecting From Web of "如何使用MapFragment(而不是MapView)获取地图的坐标?"

Google Play服务SDK提供的示例代码中有一个示例。 这使用SupportMapFragment所以我不确定如果您使用新的MapFragment这将是多么有帮助。

implement OnMapClickListener在这个映射示例代码中使用的方法是为类implement OnMapClickListener 。 以下是您可以使用的一些代码。

EventsDemoActivity:

 public class EventsDemoActivity extends FragmentActivity implements OnMapClickListener, OnMapLongClickListener { private GoogleMap mMap; private TextView mTapTextView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.events_demo); mTapTextView = (TextView) findViewById(R.id.tap_text); setUpMapIfNeeded(); } private void setUpMap() //If the setUpMapIfNeeded(); is needed then... { mMap.setOnMapClickListener(this); mMap.setOnMapLongClickListener(this); } @Override public void onMapClick(LatLng point) { mTapTextView.setText("tapped, point=" + point); } @Override public void onMapLongClick(LatLng point) { mTapTextView.setText("long pressed, point=" + point); } } 

events_demo.xml:

 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <TextView android:id="@+id/tap_text" android:text="@string/tap_instructions" android:layout_width="match_parent" android:layout_height="wrap_content"/> <fragment android:id="@+id/map" android:layout_width="match_parent" android:layout_height="match_parent" class="com.google.android.gms.maps.SupportMapFragment"/> </LinearLayout>