gpt4 book ai didi

android - Google Maps Android API v2 检测 map 上的长按并添加标记不起作用

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:31:10 24 4
gpt4 key购买 nike

我想通过长按在 map 上添加标记。

onMapClick() 中的

Toast 显示正常点击。但是长按不起作用。 onMapLongClick() 中的Toast 长按不显示。标记也不会显示在 map 上。

我正在使用 SupportMapFragment 因为我想在 Android 2.x 设备上使用我的应用程序。我已经在 Android 版本 2.3.7 的 Nexus One 上测试了我的应用程序。

这是我的代码。

public class MainActivity extends FragmentActivity implements
OnMapClickListener, OnMapLongClickListener {

final int RQS_GooglePlayServices = 1;
private GoogleMap myMap;

Location myLocation;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

FragmentManager myFragmentManager = getSupportFragmentManager();
SupportMapFragment mySupportMapFragment = (SupportMapFragment) myFragmentManager
.findFragmentById(R.id.map);
myMap = mySupportMapFragment.getMap();

myMap.setMyLocationEnabled(true);

myMap.setMapType(GoogleMap.MAP_TYPE_HYBRID);
// myMap.setMapType(GoogleMap.MAP_TYPE_NORMAL);
// myMap.setMapType(GoogleMap.MAP_TYPE_SATELLITE);
// myMap.setMapType(GoogleMap.MAP_TYPE_TERRAIN);

myMap.setOnMapClickListener(this);
myMap.setOnMapLongClickListener(this);

}

@Override
protected void onResume() {
super.onResume();

int resultCode = GooglePlayServicesUtil
.isGooglePlayServicesAvailable(getApplicationContext());

if (resultCode == ConnectionResult.SUCCESS) {
Toast.makeText(getApplicationContext(),
"isGooglePlayServicesAvailable SUCCESS", Toast.LENGTH_LONG)
.show();
} else {
GooglePlayServicesUtil.getErrorDialog(resultCode, this,
RQS_GooglePlayServices);
}

}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}

@Override
public void onMapClick(LatLng point) {

myMap.animateCamera(CameraUpdateFactory.newLatLng(point));

Toast.makeText(getApplicationContext(), point.toString(),
Toast.LENGTH_LONG).show();


}

@Override
public void onMapLongClick(LatLng point) {

myMap.addMarker(new MarkerOptions().position(point).title(
point.toString()));

Toast.makeText(getApplicationContext(),
"New marker added@" + point.toString(), Toast.LENGTH_LONG)
.show();

}

}

我该如何解决这个问题?

最佳答案

我用过这个。它奏效了。

GoogleMap gm;

gm.setOnMapLongClickListener(this);

@Override
public void onMapLongClick(LatLng point) {
gm.addMarker(new MarkerOptions()
.position(point)
.title("You are here")
.icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_RED)));
}

关于android - Google Maps Android API v2 检测 map 上的长按并添加标记不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16097143/

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