Obtenir la Latitude et la longitude de marqueur dans google maps

J'utilise le code suivant pour créer une carte et de joindre un marqueur. Je suis également l'ajout d'un marqueur de l'auditeur où j'ai besoin d'obtenir la latitude et la longitude de la position du repère après avoir fait glisser.

Ce qu'il fait est returnning ma position actuelle n'est pas l'emplacement du marqueur après le glissement.
Toute aide à la présente partie?!

package com.example.mysample;
import com.google.android.gms.common.GooglePlayServicesUtil;
import com.google.android.gms.maps.CameraUpdateFactory;
import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.GoogleMap.OnMarkerDragListener;
import com.google.android.gms.maps.MapView;
import com.google.android.gms.maps.Projection;
import com.google.android.gms.maps.SupportMapFragment;
import com.google.android.gms.maps.model.BitmapDescriptor;
import com.google.android.gms.maps.model.BitmapDescriptorFactory;
import com.google.android.gms.maps.model.LatLng;
import com.google.android.gms.maps.model.Marker;
import com.google.android.gms.maps.model.MarkerOptions;
import com.google.android.maps.GeoPoint;
import android.location.Location;
import android.location.LocationListener;
import android.os.Bundle;
import android.app.Activity;
import android.content.Context;
import android.support.v4.app.FragmentActivity;
import android.view.Menu;
import android.view.MotionEvent;
import android.widget.Toast;
import android.graphics.*;
public class MainActivity extends FragmentActivity implements LocationListener {
GoogleMap map;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
GooglePlayServicesUtil
.isGooglePlayServicesAvailable(getApplicationContext());
map = ((SupportMapFragment) getSupportFragmentManager()
.findFragmentById(R.id.map)).getMap();
map.setMyLocationEnabled(true);
map.setMapType(GoogleMap.MAP_TYPE_NORMAL);
map.addMarker(new MarkerOptions()
.position(new LatLng(0, 0))
.title("Marker")
.draggable(true)
.snippet("Hello")
.icon(BitmapDescriptorFactory
.defaultMarker(BitmapDescriptorFactory.HUE_YELLOW)));
map.setOnMarkerDragListener(new OnMarkerDragListener() {
@Override
public void onMarkerDragStart(Marker marker) {
//TODO Auto-generated method stub
//Here your code
Toast.makeText(MainActivity.this, "Dragging Start",
Toast.LENGTH_SHORT).show();
}
@Override
public void onMarkerDragEnd(Marker marker) {
//TODO Auto-generated method stub
Toast.makeText(
MainActivity.this,
"Lat " + map.getMyLocation().getLatitude() + " "
+ "Long " + map.getMyLocation().getLongitude(),
Toast.LENGTH_LONG).show();
System.out.println("yalla b2a "
+ map.getMyLocation().getLatitude());
}
@Override
public void onMarkerDrag(Marker marker) {
//TODO Auto-generated method stub
//Toast.makeText(MainActivity.this, "Dragging",
//Toast.LENGTH_SHORT).show();
System.out.println("Draagging");
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
//Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
public boolean onMarkerClick(final Marker marker) {
if (marker.equals(map)) {
//handle click here
//map.getMyLocation();
System.out.println("Clicked");
double lat = map.getMyLocation().getLatitude();
System.out.println("Lat" + lat);
Toast.makeText(MainActivity.this,
"Current location " + map.getMyLocation().getLatitude(),
Toast.LENGTH_SHORT).show();
}
return true;
}
@Override
public void onLocationChanged(Location location) {
//TODO Auto-generated method stub
}
@Override
public void onProviderDisabled(String provider) {
//TODO Auto-generated method stub
}
@Override
public void onProviderEnabled(String provider) {
//TODO Auto-generated method stub
}
@Override
public void onStatusChanged(String provider, int status, Bundle extras) {
//TODO Auto-generated method stub
}
}
Dans l'API javascript de tous les MouseEvents contenir les latLng du point sur la carte où l'événement s'est produit, API vous ne savez pas comment vous accédez à ce en Java. Dans votre onDragEnd fonction ne peut pas vous lire la position du marqueur? Quelque chose comme marker.getLocation().getLongitude() et marker.getLocation().getLatitude()

OriginalL'auteur omarsafwany | 2013-04-24