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
Vous devez vous connecter pour publier un commentaire.
Prendre un coup d'oeil à cette fonction dans votre code.
Ici que vous essayez d'obtenir votre position actuelle sur la carte qui est mal, vous devriez obtenir la localisation du repère que vous avez fait glisser. Vous avez déjà "marqueur" de l'objet ici. L'utiliser pour obtenir l'emplacement de ce dragué marqueur d'emplacement.
J'ai eu quelque chose de semblable. Merci
n'obtenant pas la latitide et la longitude à mes côtés
Salut @Sharj j'ai un petit problème dans la comparaison entre la latitude et la longitude de marqueur de carte. Quand je suis à l'ajout d'un marqueur je transmets les coordonnées (25.197109,55.279104) mais quand je l'appelle marqueur.getPosition() il me donne (25.197101045,55.279104546). Je pense que c'est ce qui donne l'exacte et précise lat gnl, comme un résultat que je ne suis pas en mesure de comparer les que lat gnl avec celle que j'ai. Merci de me suggérer toute solution ..
OriginalL'auteur Sharj
Il s assez simple je pense que si vous voulez que le long et lat coordonnées avec une longue pression sur ...
Tout d'abord, vous avez à faire
GoogleMap.setOnMapLongClickListener(this);
et d'ajouter à la signature de la classe conteneur:
implements OnMapLongClickListener
Et voici le code:
OriginalL'auteur mEnE