====== Cartes avec mapviews et Google Maps ====== ===== Obtenir une clé pour Mapviews ===== L'utilisation de Google Maps dans Mapview est soumise à l'utilisation d'une clé d'API. Il existe un process pour la phase de développement et un process pour la phase de mise en production. Dans ce deuxième cas, l'utilisation d'un certificat de développeur personnel, associé à une clé privée, est nécessaire pour poster sur Google Play ==== Clé de développement ==== Pendant la phase de développement, le SDK utilise une clé par défaut, créée sans aucune intervention du développeur. Cette clé et le certificat associé sont des objets de debug qui ne peuvent pas être utilisés sur Google Play; ils sont en revanche parfaitement suffisants tant que la phase de développement n'est pas terminée. Sous Mac Os * Se rendre dans le bon dossier cd ~/.android/ * lister les fichiers MyMac:.android meOnMyMac$ ls *.keystore debug.keystore MyMac:.android meOnMyMac$ Sous Eclipse, vous pouvez retrouver l'emplacement du keystore par défaut : Eclipse -> Préférences -> Android -> Build -> Default debug keystore * Récupérer l'empreinte MD5 de la clé de debug keytool -list -alias androiddebugkey -keystore debug.keystore -storepass android -keypass android Cette commande doit vous renvoyer une informations de ce type: androiddebugkey, 12 sept. 2012, PrivateKeyEntry, Empreinte du certificat (MD5) : 22:90:F0:4E:81:3C:F4:9B:E6:3A:CE:5D:3A:11:3E:4B Il ne reste plus qu'à utiliser cette empreinte sur l'[[https://developers.google.com/android/maps-api-signup|API Google Maps]] pour obtenir la clé correspondante. Vous aurez besoin d'utiliser ou de créer un compte Google. ==== Clé de production ==== ===== Préparer le projet ===== Mapviews fait partie des Google API. Quelques étapes permettent de préparer le projet à l'utilisation de ces API. * Obtenir les API : Window -> Android SDK Manager -> Vérifier que le package Google APIs correspondant à la version de l'API que vous souhaitez utiliser est bien installé. * Après avoir créé le projet, définir le build path * Properties -> Android puis cocher Google APIs * Properties -> Java Build Path -> Libraries -> Google APIs : vérifier que maps.jar est présent. * Dans le manifest : * avant le nœud application, ajouter une permission d'accès à Internet pour permettre la communication de l'application avec Google Maps * Dans le nœud application, ajouter la bibliothèque ===== Problèmes courants ===== ==== Unable to start activity ==== Ajouter vos éléments graphiques après avoir défini le contenant. Par exemplen dans //onCreate()// super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); MapView myMapView = (MapView) findViewById(R.id.myMap); myMapView.setBuiltInZoomControls(true); plutôt que super.onCreate(savedInstanceState); MapView myMapView = (MapView) findViewById(R.id.myMap); myMapView.setBuiltInZoomControls(true); setContentView(R.layout.activity_main); ==== Pas de localisation dans l'émulateur ==== Et non. L'émulateur ne permet pas de vous localiser seul. Mais DDMS peut vous aider.