sdfs
sdfs

Reputation: 21

How to get marker position when drag googleMap in android

In my application i set one image in my layout center of map, and i want when drag googleMap show latLong of this image (marker).

layout code:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:map="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <include
        android:id="@+id/mainToolbar"
        layout="@layout/toolbar_main" />

    <fragment
        android:id="@+id/mainMap"
        android:name="com.google.android.gms.maps.SupportMapFragment"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_below="@+id/mainToolbar"
        tools:context="com.tida.utils.safine.Activities.MainActivity" />

    <ImageView
        android:id="@+id/location_setter"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        android:src="@drawable/ic_location_origin_pin" />

</RelativeLayout>

Java code:

public class MainActivity extends FragmentActivity implements OnMapReadyCallback {

    private GoogleMap mMap;
    private UiSettings mUiSettings;
    private CameraUpdate mapCenter, mapZoom;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager()
                .findFragmentById(R.id.mainMap);
        mapFragment.getMapAsync(this);
    }

    @Override
    public void onMapReady(GoogleMap googleMap) {
        mMap = googleMap;
        mUiSettings = mMap.getUiSettings();
        mUiSettings.setScrollGesturesEnabled(true);
        mUiSettings.setZoomGesturesEnabled(true);
        mUiSettings.setTiltGesturesEnabled(true);
        mUiSettings.setRotateGesturesEnabled(true);

        /*Set center of Tehran location*/
        mMap.moveCamera(CameraUpdateFactory.newLatLngZoom(new LatLng(35.724414, 51.427059), 18.0f));

        /*Map listener*/
        mMap.setOnMarkerDragListener(new GoogleMap.OnMarkerDragListener() {
            @Override
            public void onMarkerDragStart(Marker marker) {
                Log.e("mapDrag", "DragStart : " + marker.getPosition());
            }

            @Override
            public void onMarkerDrag(Marker marker) {
                Log.e("mapDrag", "Drag : " + marker.getPosition());
            }

            @Override
            public void onMarkerDragEnd(Marker marker) {
                Log.e("mapDrag", "DragEnd : " + marker.getPosition());
            }
        });
    }
}

How can i set my image for marker and get this position ?

Upvotes: 1

Views: 2442

Answers (2)

R.R.M
R.R.M

Reputation: 790

set marker using global variable of marker and call mMarker.setPosition(marker.getPosition());

Upvotes: 0

Atef Hares
Atef Hares

Reputation: 4881

marker.getPosition() returns LatLng

you should use:

marker.getPosition().latitude

&

marker.getPosition().longitude

Upvotes: 2

Related Questions