嗨?我正在开发一个安卓系统的MapView应用程序。我有三个标记,我希望稍后能够使用Google Map API的getlocation-function。为了尝试它,我想用拖放功能移动标记,然后检查位置。
有谁已经在android标记上进行了拖放操作,或者知道如何开始解决这个问题?
/AK
发布于 2010-10-10 03:50:59
来自one of my books的Here is a sample project显示了安卓系统中谷歌地图上标记的拖放移动。
简而言之,它使用onTouchEvent()
来检测用户何时触摸并将手指放在标记附近。然后,它从覆盖图中删除标记,但使用RelativeLayout
将相同的图像放在地图的顶部。然后,在“移动”触摸事件上,图像被移动(比强制整个覆盖重绘更快)。当手指被抬起时,图像将被移除,但标记将放回覆盖图中的新位置。
发布于 2013-11-11 18:01:49
实现Google Maps Android API v2,参考这个:https://developers.google.com/maps/documentation/android/并在GoogleMap object setOnMarkerDragListener上设置。对于Ex:
map.setOnMarkerDragListener(new OnMarkerDragListener() {
@Override
public void onMarkerDragStart(Marker arg0) {
// TODO Auto-generated method stub
Log.d("System out", "onMarkerDragStart..."+arg0.getPosition().latitude+"..."+arg0.getPosition().longitude);
}
@SuppressWarnings("unchecked")
@Override
public void onMarkerDragEnd(Marker arg0) {
// TODO Auto-generated method stub
Log.d("System out", "onMarkerDragEnd..."+arg0.getPosition().latitude+"..."+arg0.getPosition().longitude);
map.animateCamera(CameraUpdateFactory.newLatLng(arg0.getPosition()));
}
@Override
public void onMarkerDrag(Marker arg0) {
// TODO Auto-generated method stub
Log.i("System out", "onMarkerDrag...");
}
});
//Don't forget to Set draggable(true) to marker, if this not set marker does not drag.
map.addMarker(new MarkerOptions()
.position(crntLocationLatLng)
.icon(BitmapDescriptorFactory.fromResource(R.drawable.icon_my_location))
.draggable(true));
发布于 2016-07-31 19:20:24
为了MapsV2。使用google地图事件。不要写你自己的。
mMap.setOnMapClickListener(new GoogleMap.OnMapClickListener() {
@Override
public void onMapClick(LatLng latLng) {
mVisitingMarker.setPosition(latLng);
mMap.animateCamera(CameraUpdateFactory.newLatLng(latLng));
}
});
mMap.setOnMarkerDragListener(new GoogleMap.OnMarkerDragListener() {
@Override
public void onMarkerDragStart(Marker arg0) {
}
@SuppressWarnings("unchecked")
@Override
public void onMarkerDragEnd(Marker arg0) {
Log.d("System out", "onMarkerDragEnd...");
mMap.animateCamera(CameraUpdateFactory.newLatLng(arg0.getPosition()));
}
@Override
public void onMarkerDrag(Marker arg0) {
}
});
https://stackoverflow.com/questions/3897409
复制相似问题