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

我搜索了如何在点击地图时获取位置的坐标。 但是,大多数(如果不是全部)示例都需要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获取地图上的轻敲位置的位置?

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: