有没有什么方法可以在Google Map V2上点击一次(不可拖动)使标记可触摸和移动?
我的意思是当我触摸它时,让它可以移动到我想要在地图上的任何位置。
对代码进行了哪些修改?
Googlemap.setOnMarkerClickListener(new OnMarkerClickListener() {
@Override
public boolean onMarkerClick(Marker marker) {
String msg = marker.getTitle() + " ("
+ marker.getPosition().latitude + ","
+ marker.getPosition().longitude + ")";
Toast.makeText(MapActivity.this, msg, Toast.LENGTH_SHORT)
.show();
return false;
}
});
}
return (Googlemap != null);
}
Googlemap.setOnMarkerDragListener(new OnMarkerDragListener() {
@Override
public void onMarkerDragStart(Marker arg0) {
// TODO Auto-generated method stub
}
@Override
public void onMarkerDragEnd(Marker marker) {
// TODO Auto-generated method stub
Geocoder gc = new Geocoder(MapActivity.this);
List<Address> list = null;
LatLng latlng = marker.getPosition();
try {
list = gc.getFromLocation(latlng.latitude,
latlng.longitude, 1);
} catch (IOException e) {
e.printStackTrace();
return;
}
Address add = list.get(0);
marker.setTitle(add.getLocality());
marker.setSnippet(add.getCountryName());
}
@Override
public void onMarkerDrag(Marker arg0) {
// TODO Auto-generated method stub
}
});
答案 0 :(得分:0)
所以你的GoogleMap
上有一个标记(没有其他像折线/多边形)。如果您有map
的对象GoogleMap
。
假设您有一个全局变量boolean change=false
现在,当你触摸标记时,
map.setOnMarkerClickListener(new OnMarkerClickListener() {
@Override
public boolean onMarkerClick(Marker marker) {
change=true;
return true;
}
});
现在,在mapClickListener
中查看它map.setOnMapClickListener(new OnMapClickListener() {
public void onMapClick(LatLng arg0) {
if(arg0!=null && change){
change=false;
//clear map
map.clear();
// create marker
MarkerOptions marker = new MarkerOptions().position(arg0);
// Changing marker icon
marker.icon(BitmapDescriptorFactory.fromResource(R.drawable.map_marker));
// adding marker
map.addMarker(marker);
}
}
});
如果您有其他标记或线条,请勿使用map.clear()
。仅更改相应标记的值。