Hi? I am working on a MapView app in Android. I have three markers that I want to be able to use the Google Map API getlocation-function on, later on. In order to try it out I would like to move the marker with a drag and drop-function, and then check the location.
Anyone who has gotten a drag and drop to work on an android marker, or know a way to start figuring it out?
/AK
Long press the marker to enable dragging. When you take your finger off the screen, the marker will remain in that position. Markers are not draggable by default. You must explicitly set the marker to be draggable either with MarkerOptions.
You can allow users to move a marker on the map by setting the marker's draggable property to true . For more information about draggable markers, see below.
Implement Google Maps Android API v2, refer this: https://developers.google.com/maps/documentation/android/ and set on GoogleMap object setOnMarkerDragListener. For 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));
Here is a sample project from one of my books showing drag-and-drop movement of markers on a Google Map in Android.
In a nutshell, it uses onTouchEvent()
to detect when the user touches and holds their finger near a marker. It then removes the marker from the overlay, but puts the same image over top of the map using RelativeLayout
. Then, on "move" touch events, the image is moved (faster than forcing the whole overlay to redraw). When the finger is lifted, the image is removed, but the marker is put back in the overlay at the new spot.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With