2010-02-12 8 views
1

Selon le Geocoder documentation, la classe fournit des méthodes dans un service principal qui peut exister ou non sur le périphérique. Si le géocodeur n'existe pas sur l'appareil, théoriquement une requête de géocode ne retournera aucun résultat. Cependant, comment peut-on différencier entre aucun résultat dû au fait qu'il n'y a pas de service de géocodeur backend et qu'il n'y a pas de résultats parce que l'emplacement n'a aucun sens?Comment savoir si un appareil Android dispose d'un service back-end Geocoder?

Mon application nécessite déjà l'API Google Maps, donc c'est peut-être un point discutable; comme question secondaire, est-ce que l'API Google Maps toujours inclut un géocodeur?

Répondre

2

Selon le Google Maps docs, "L'API Google Maps fournit un géocodeur client pour les adresses de géocodage". Donc, je dirais que puisque vous avez besoin de l'API google maps, vous avez besoin d'un géocodeur.

4

à proprement parler, il pourrait être un autre backend installé, essayez si un géocodage est présent

final Geocoder geocoder = new Geocoder(this); 
    final String locName = "1600 Amphitheatre Parkway, Mountain View, CA"; 
    try { 
     final List<Address> list = geocoder.getFromLocationName(locName, 1); 
     if (! (list == null || list.isEmpty())) { 
      final Address address = list.get(0); 
      System.out.println("Geocoder backend present, (lat,lon) = (" + address.getLatitude() + ", " + address.getLongitude() + ")"); 
     } 
     else { 
      System.out.println("Geocoder backend not present"); 
     } 
    } catch (IOException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 
Questions connexes