Bonsoir,

J'ai rèussi à affficher la carte de google maps.Maintenant je souhaite qu'une fois la carte s'affiche j'ai un marqueur qui m'indique ma position sur la carte.

Voila le code que j'ai utilisé mais ca ne marche pas

code manifest:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.googlemapv2"
    android:versionCode="1"
    android:versionName="1.0" >
 
    <uses-sdk
        android:minSdkVersion="9"
        android:targetSdkVersion="17" />
 
    <uses-feature
        android:glEsVersion="0x00020000"
        android:required="true" />
 
    <permission
        android:name="com.example.googlemapv2.permission.MAPS_RECEIVE"
        android:protectionLevel="signature" />
 
    <uses-permission android:name="com.example.googlemapv2.permission.MAPS_RECEIVE" />
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" />
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
 
    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name="com.example.googlemapv2.MainActivity"
            android:label="@string/app_name" >
            <meta-data
                android:name="com.google.android.maps.v2.API_KEY"
                android:value="monAPIKEY" />
 
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
 
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>
 
</manifest>
Le code du Layout :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
<?xml version="1.0" encoding="utf-8"?>
<fragment xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/map"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    class="com.google.android.gms.maps.MapFragment" />
Le code java:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
package com.example.googlemapv2;
 
import android.app.Activity;
import android.location.Location;
import android.location.LocationListener;
import android.location.LocationManager;
import android.os.Bundle;
import android.view.Menu;
import android.widget.Toast;
 
import com.google.android.gms.maps.CameraUpdateFactory;
import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.MapFragment;
import com.google.android.gms.maps.model.LatLng;
import com.google.android.gms.maps.model.Marker;
import com.google.android.gms.maps.model.MarkerOptions;
 
 
 public class MainActivity extends Activity implements LocationListener {
 private LocationManager locationManager;
 private GoogleMap gMap;
 private Marker marker;
 
 @Override
 protected void onCreate(Bundle savedInstanceState) {
 super.onCreate(savedInstanceState);
 setContentView(R.layout.activity_main);
 
 gMap = ((MapFragment)getFragmentManager().findFragmentById(R.id.map)).getMap();
 
 
 
 marker = gMap.addMarker(new MarkerOptions().title("Vous êtes ici")
 .position(new LatLng(0, 0)));
 }
 
 @Override
 public boolean onCreateOptionsMenu(Menu menu) {
 // Inflate the menu; this adds items to the action bar if it is present.
 getMenuInflater().inflate(R.menu.main, menu);
 return true;
 
 }
 
 @Override
 public void onResume() {
 super.onResume();
 
 locationManager = (LocationManager) this
 .getSystemService(LOCATION_SERVICE);
 
 if (locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER)) {
 abonnementGPS();
 }
 }
 
 @Override
 public void onPause() {
 super.onPause();
 
 // On appelle la méthode pour se désabonner
 desabonnementGPS();
 }
 
 public void desabonnementGPS() {
 // Si le GPS est disponible, on s'y abonne
 locationManager.removeUpdates(this);
 }
 
 public void abonnementGPS() {
 // On s'abonne
 locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER,
 5000, 10, this);
 }
 
 @Override
 public void onLocationChanged(Location location) {
 final StringBuilder msg = new StringBuilder("lat : ");
 msg.append(location.getLatitude());
 msg.append("; lng : ");
 msg.append(location.getLongitude());
 
 Toast.makeText(this, msg.toString(), Toast.LENGTH_SHORT).show();
 
 final LatLng latLng = new LatLng(location.getLatitude(),
 location.getLongitude());
 gMap.moveCamera(CameraUpdateFactory.newLatLngZoom(latLng, 15));
 marker.setPosition(latLng);
 
 }
 
 @Override
 public void onProviderDisabled(String provider) {
 if ("gps".equals(provider)) {
 desabonnementGPS();
 }
 
 }
 
 @Override
 public void onProviderEnabled(String provider) {
 if ("gps".equals(provider)) {
 abonnementGPS();
 }
 }
 
 @Override
 public void onStatusChanged(String provider, int status, Bundle extras) {
 // TODO Auto-generated method stub
 
 }
 
 }
Merci d'avance.