obtenir la position actuelle de l'emplacement android
Location.java
package com.localisation;
import java.io.IOException;
import java.util.List;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.location.Address;
import android.location.Geocoder;
import android.location.Location;
import android.location.LocationListener;
import android.location.LocationManager;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.Window;
import android.view.View.OnClickListener;
import android.widget.TextView;
import android.widget.Toast;
public class localisation extends Activity implements OnClickListener, LocationListener{
private LocationManager lManager;
private Location location;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//On spécifie que l'on va avoir besoin de gérer l'affichage du cercle de chargement
requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);
setContentView(R.layout.main);
//On récupère le service de localisation
lManager = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
//On affecte un écouteur d'évènement aux boutons
findViewById(R.id.obtenir_position).setOnClickListener(this);
}
//Méthode déclencher au clique sur un bouton
public void onClick(View v) {
obtenirPosition();
}
}
private void afficherLocation() {
//On affiche les informations de la position a l'écran
((TextView)findViewById(R.id.latitude)).setText(String.valueOf(location.getLatitude()));
((TextView)findViewById(R.id.longitude)).setText(String.valueOf(location.getLongitude()));
((TextView)findViewById(R.id.altitude)).setText(String.valueOf(location.getAltitude()));
}
public void onProviderDisabled(String provider) {
//Lorsque la source (GSP ou réseau GSM) est désactivé
Log.i("Tuto géolocalisation", "La source a été désactivé");
//...on affiche un Toast pour le signaler à l'utilisateur
Toast.makeText(localisation.this,
String.format("La source \"%s\" a été désactivé", provider),
Toast.LENGTH_SHORT).show();
//... et on spécifie au service que l'on ne souhaite plus avoir de mise à jour
lManager.removeUpdates(this);
//... on stop le cercle de chargement
setProgressBarIndeterminateVisibility(false);
}
public void onProviderEnabled(String provider) {
Log.i("Tuto géolocalisation", "La source a été activé.");
}
public void onStatusChanged(String provider, int status, Bundle extras) {
Log.i("Tuto géolocalisation", "Le statut de la source a changé.");
}
}
Main.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout android:id="@+id/RelativeLayout01"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
xmlns:android="http://schemas.android.com/apk/res/android">
<TextView android:text="Latitude"
android:id="@+id/TextView01"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:layout_marginLeft="10dip" />
<EditText android:text="0.0"
android:id="@+id/latitude"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:editable="false"
android:focusable="false"
android:gravity="center"
android:layout_marginRight="10dip"
android:layout_width="150dip" />
<TextView android:text="Longitude"
android:id="@+id/TextView02"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBottom="@+id/longitude"
android:layout_alignTop="@+id/longitude"
android:gravity="center"
android:layout_marginLeft="10dip" />
<EditText android:text="0.0"
android:id="@+id/longitude"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:editable="false"
android:focusable="false"
android:gravity="center"
android:layout_marginRight="10dip"
android:layout_width="150dip"
android:layout_below="@+id/latitude" />
<TextView android:text="Altitude"
android:id="@+id/TextView03"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBottom="@+id/altitude"
android:layout_alignTop="@+id/altitude"
android:gravity="center"
android:layout_marginLeft="10dip" />
<EditText android:text="altitude"
android:id="@+id/altitude"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:editable="false"
android:focusable="false"
android:gravity="center"
android:layout_marginRight="10dip"
android:layout_below="@+id/TextView02"
android:layout_width="150dip" />
<LinearLayout android:id="@+id/LinearLayout01"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/TextView03"
android:layout_centerHorizontal="true"
android:layout_marginTop="10dip">
<Button android:layout_height="wrap_content"
android:id="@+id/obtenir_position"
android:text="Obtenir Position"
android:layout_width="100dip" />
</LinearLayout>
</RelativeLayout>
Manifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.localisation"
android:versionCode="1"
android:versionName="1.0">
<application android:icon="@drawable/icon" android:label="@string/app_name">
<activity android:name=".localisation"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"></uses-permission>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"></uses-permission>
<uses-permission android:name="android.permission.INTERNET"></uses-permission>
</application>
</manifest>
j'ai un problème dans ces codes. Mon objectif est de déterminer ma position (longitude, la latitude et l'altitude.
Dans une base de données, j'ai quelques endroits définis par (longitude, la latitude et l'altitude et que je veux déterminer le plus près de la place. (avec google Map API (sans l'affichage de la carte)
Pouvez-vous m'aider s'il vous plaît et m'expliquer en détails ce que je fais maintenant?
Merci beaucoup
OriginalL'auteur User616263 | 2011-03-15
Vous devez vous connecter pour publier un commentaire.
Je suis en utilisant ce code pour obtenir la Latitude et la longitude de la position actuelle:
OriginalL'auteur Venky
Je ne suis pas sûr si vous êtes à la demande, en général, "comment puis-je obtenir la position gps?" ou "quel est le problème avec ce code".
Si son général - cela apparaît dans Comment puis-je obtenir la position GPS actuelle par programmation dans Android?. Aussi, je vous suggère d'être prudent avec les getLastKnownLocation méthode. Le dernier emplacement peut être terriblement obsolète. Je vous conseille aussi de commencer l'interrogation gps avant de vous en avez besoin, il peut parfois prendre quelques secondes (ou plus) pour obtenir votre première lecture gps.
Si spécifique peut-être expliquer quels sont les problèmes que vous rencontrez?
OriginalL'auteur Emily
nous allons créer une application Android qui permet d'afficher l'emplacement actuel de Google Maps à l'aide de Google Maps API Android V2.
Depuis la Carte de Google, est affiché en utilisant SupportMapFragment, cette application peut s'exécuter dans l'API Android de Niveau 8 ou plus.
Afin d'utiliser MapFragment pour Google Maps, nous avons besoin d'un appareil Android avec l'API de niveau 12 ou plus.
Cette application est développée dans Eclipse 4.2.1 avec le plugin ADT ( 21.0.0 ) et le kit SDK d'Android ( 21.0.0 ). Cette application est testée dans un vrai Téléphone Android avec Android ( 2.3.6 ).
Une méthode alternative pour cette application est disponible en Montrant la position actuelle à l'aide OnMyLocationChangeListener dans Google Map API Android V2
Code de téléchargement
OriginalL'auteur Roadies