gpt4 book ai didi

android - 如何使用 MapFragment(而非 MapView)获取 map 的坐标?

转载 作者:塔克拉玛干 更新时间:2023-11-02 07:54:42 24 4
gpt4 key购买 nike

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

最佳答案

Sample Code 中有一个示例由 Google Play 服务 SDK 提供。这使用了 SupportMapFragment,所以我不确定如果您使用新的 MapFragment 这会有多大帮助。

EventsDemoActivity 在这个 map 示例代码中使用的方法是实现 OnMapClickListener 到类。以下是您可能会使用的一些代码。

事件演示 Activity :

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>

关于android - 如何使用 MapFragment(而非 MapView)获取 map 的坐标?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15362281/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com