J'essaie d'inverser les données actuelles Lat/Long de GeoCode vers la zone d'administration et la zone d'administration secondaire en utilisant la classe de géocodeur. J'utilise NETWORK_PROVIDER en tant que fournisseur de localisation. Voici le code que j'utilise et ça marche. Le problème est parfois que cela ne me donne pas de localisation, parfois c'est le cas.Géocodage inversé dans l'application Android
Autorisations du manifeste Android J'utilise.
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.INTERNET"/>
Voici le reste du code qui me donne l'emplacement correct de temps en temps mais rien d'autre à d'autres moments.
double latPoint = 0;
double lngPoint = 0;
List<Address> myList = null;
getApplicationContext();
LocationManager locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
Location recentLoc = locationManager.getLastKnownLocation(LocationManager.NETWORK_PROVIDER);
if (recentLoc != null){
latPoint = recentLoc.getLatitude();
lngPoint = recentLoc.getLongitude();
Geocoder myLocation = new Geocoder(getApplicationContext(), Locale.getDefault());
if (myLocation != null){
try {
myList = myLocation.getFromLocation(latPoint, lngPoint, 1);
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
if (myList.size()> 0){
String AdminArea = myList.get(0).getAdminArea();
String SubAdminArea = myList.get(0).getSubAdminArea();
String Zipcode = myList.get(0).getPostalCode();
String urlocation = SubAdminArea + ", " + AdminArea + " " + Zipcode;
Context context1 = getApplicationContext();
int duration1 = Toast.LENGTH_LONG;
CharSequence text1 = urlocation;
Toast toast1 = Toast.makeText(context1, text1, duration1);
toast1.show();
}
}
Y a-t-il des restrictions avec les fournisseurs de réseau à quelle fréquence vous pouvez demander des données de localisation?
Comment puis-je m'assurer que chaque fois que je l'exécute, cela peut me donner des données de localisation valides.
Merci d'avance pour tout renseignement à ce sujet. PS: J'ai exécuté ce code sur mon appareil réel fonctionnant sous Froyo 2.2 (Verizon Wireless). Niveau de l'API cible 8.
Voici ce que j'ai obtenu lors de mon débogage.
Latitude Longitude est toujours récupérée, mais la propriété getFromLocation renvoie souvent la valeur null pour les données de longitude de latitude qui lui sont transmises. Alors, quelle devrait être la solution de contournement? Peut être passer l'information Lat/Long à l'API Google Maps pour le géocodage inverse. Sera heureux de recevoir toute contribution.