谷歌地图 API v2
当我等待另一个应用程序完成时,我出于兴趣创建了另一个应用程序,该应用程序一次只能将 1 个标记添加到地图中(我喜欢我做的地图)。
我目前有这段代码,如果标记已存在,它将清除地图,然后添加另一个标记。但我想要的是它显示一条消息,告诉用户先清除地图,然后再允许添加另一个标记。
@Override
public void onMapClick(LatLng position){
if (position != null){
mMap.clear();
mMap.addMarker(new MarkerOptions()
.position(position)
.icon(BitmapDescriptorFactory.fromResource(R.drawable.ic_launcher_new)));
}
else {
mMap.addMarker(new MarkerOptions()
.position(position)
.icon(BitmapDescriptorFactory.fromResource(R.drawable.ic_launcher_new)));
}
}
I tried:
@Override
public void onMapClick(LatLng position){
if (position != null){
Toast.makeText(this, "Clear map before adding another location", Toast.LENGTH_SHORT).show();
}
else {
mMap.addMarker(new MarkerOptions()
.position(position)
.icon(BitmapDescriptorFactory.fromResource(R.drawable.ic_launcher_new)));
}
}
但所做的只是显示我想要的消息,即使不存在标记,因此您实际上无法添加任何标记。我应该在这里使用 ArrayList 吗?根据设计,该应用程序一次仅允许 1 个标记。在询问之前,我环顾四周,没有找到任何适合我需求的东西。
Thanks
这是我编辑过的代码,仍然不起作用:
@Override
public void onMapLongClick(LatLng position) {
mMap.clear();
Toast.makeText(this, "Position Cleared", Toast.LENGTH_SHORT).show();
position = null;
}
@Override
public void onMapClick(LatLng position){
if (position != null){
Toast.makeText(this, "Clear first", Toast.LENGTH_SHORT).show();
/*mMap.clear();
mMap.addMarker(new MarkerOptions()
.position(position)
.icon(BitmapDescriptorFactory.fromResource(R.drawable.ic_launcher_new)));*/
}
else {
mMap.addMarker(new MarkerOptions()
.position(position)
.icon(BitmapDescriptorFactory.fromResource(R.drawable.ic_launcher_new)));
}
}
使用 onMapLongClickListener 清除地图后,它仍然不允许我添加标记