Documente Academic
Documente Profesional
Documente Cultură
et diffusant leur position et l'heure de diffusion Un rcepteur, quip d'une horloge, reoit au moins 4 signaux de 4 satellites et calcule alors sa position prcision de 15 100 mtres (version standard)
source : http://fr.wikipedia.org/wiki/GPS
JMF (Tous droits rservs) 2
source : http://code.google.com/intl/en/android/addons/google-apis/installing.html
JMF (Tous droits rservs) 7
Slectionner la version Google APIs voulue et cliquer Install (si elle n'est pas dj installe !)
JMF (Tous droits rservs)
10
Sinon cliquez "New...". Donner un nom l'AVD (Name: ) et indiquer l'API que cet AVD doit avoir : ici une des GAA0 Par la suite, l'excution du projet devra utiliser cet AVD
11
source : http://code.google.com/intl/en/android/addons/google-apis/maps-overview.html
JMF (Tous droits rservs) 13
14
16
en bas de cette page, il faut : - cocher la case "I have read ..." - recopier cette cl MD5 Puis cliquez sur le bouton "Generate API Key"
18
Exemple :
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.package.name"> <uses-permission android:name="android.permission.INTERNET" /> ... <application android:name="MyApplication" > <uses-library android:name="com.google.android.maps" /> ... </application> ... </manifest>
Remarque : on peut construire ces entres par l'IHM d'Eclipse mais bon ...
JMF (Tous droits rservs) 20
Remarque : En gnral, la valeur de la cl est mise dans strings.xml, et le fichier de layout ci dessus contient une rfrence cette valeur. Ce sera ainsi plus facile lorsqu'on devra ensuite utiliser la cl de dploiement (release key) On a donc : <com.google.android.maps.MapView
... android:apiKey="@string/mapkey" />
et dans strings.xml
<?xml version="1.0" encoding="utf-8"?> <resources> ... <string name="mapkey">0Ij8_0kpzM7wmfXY2qmqP8DEAdQ2sOj8rimy4Yg</string> </resources>
21
23
Explication du code
L'activit qui affiche une carte Google doit driver de MapActivity Ce qui ncessite d'implmenter la mthode boolean isRouteDisplayed() (abstraite dans la classe MapActivity) Cette mthode est utile pour le serveur Google pour savoir si on veut afficher des informations de routage (sens obligatoire, ...) : ce n'est pas clair dans la documentation Reamarque : les MapViews ne peuvent tre cres que l'intrieur d'une instance d'une MapActivity. C'est curieux mais c'est comme cela. Sinon on a, l'excution, l'erreur : "java.lang.IllegalArgumentException: MapViews can only be created inside instances of MapActivity."
24
La classe dont les instances sont des points terrestres est la classe GeoPoint. Le seul constructeur de cette classe est public GeoPoint(int latitudeE6, int longitudeE6) o latitudeE6 et longitudeE6 sont mesures en microdegrs (= degrs * 1E6) Par la suite on passe ce GeoPoint au MapController par la mthode : animateTo(leGeoPoint); On a donc : Double latCourant = laLatitudeTerrestreDuPoint * 1E6;
Double lngCourant = laLongitudeTerrestreDuPoint * 1E6; GeoPoint pointCourant = new GeoPoint(latCourant.intValue(), lngCourant.intValue()); mc.animateTo(pointCourant); mc.setZoom(17);
Une valeur de zoom de 17 (entre 1 droits et 21) est convenable (pour un quartier JMF (Tous rservs) 25 parisien !)
Les coordonnes latitude, longitude (dans cet ordre !) apparaissent place de l'adresse
26
Par exemple :
Dans une Activity, on rcupre l'Intent qui a lanc l'Activity par getIntent(). On peut alors rcuprer tous les extras de l'Intent par getExtras(), et, par la suite, un extra associ une entre par getTypeEntre(nomEntre, valeurParDefaut), valeurParDefaut est la valeur retourne si il n'y a pas d'extra associ nomEntre dans l'Intent laLatitudeDeLaStation = Par exemple : double getIntent().getExtras().getDouble("latitude", 0);
JMF (Tous droits rservs) 27
Exercice
Affichage d'une carte google
28
Fin
29