You also need to switch the original image to the drag event again.
The full code is as follows:
myArrow = new google.maps.MarkerImage("defaultIcon.png"); myArrowDrag = new google.maps.MarkerImage("draggingIcon.png"); myMarker = new google.maps.Marker({ position : new google.maps.LatLng(myLat, myLng), map : map, icon : myArrow, draggable : true, raiseOnDrag : false }); google.maps.event.addListener(myMarker, 'dragstart', function() { myMarker.setOptions({icon: myArrowDrag}); }); google.maps.event.addListener(myMarker, 'dragend', function() { myMarker.setOptions({icon: myArrow}); });
source share