Partage
  • Partager sur Facebook
  • Partager sur Twitter

position de l'utilisateur dans une gmaps api v2

probleme

    2 juin 2013 à 18:53:24

    bonjour tout le monde j'essaye depuis presque 15 jours d'afficher une carte google maps api v2 avec la position courante de l'utilisateur mais lorsque je compile mon application il m'affiche des erreurs dans le log cat et l'application s'arrette (je fais le test sur mon telephone  bon voila mes fichiers 

    main.xml

    <?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" />
    

    manifest.xml

    <?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
        package="com.example.testposition"
        android:versionCode="1"
        android:versionName="1.0" >
     
        <uses-sdk
            android:minSdkVersion="8"
            android:targetSdkVersion="14" />
     
        <uses-feature
            android:glEsVersion="0x00020000"
            android:required="true"/>
     
        <permission
            android:name="com.example.testposition.permission.MAPS_RECEIVE"
            android:protectionLevel="signature"/>
     
        <uses-permission android:name="com.example.testposition.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" >
     
            <meta-data
                android:name="com.google.android.maps.v2.API_KEY"
                android:value="AIzaSyCUiuU4MU-dZF3vm1b0RJKzrYNezk0YZFM"/>
     
            <activity
                android:name="com.example.testposition.MainActivity"
                android:label="@string/app_name" >
                <intent-filter>
                    <action android:name="android.intent.action.MAIN" />
     
                    <category android:name="android.intent.category.LAUNCHER" />
                </intent-filter>
            </activity>
        </application>
     
    </manifest>

    activity.java

    package com.example.testposition;
    
    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;
     
    
    import android.app.Activity;
    import android.location.Location;
    import android.location.LocationListener;
    import android.location.LocationManager;
    import android.os.Bundle;
    import android.widget.Toast;
     
    /**
     * MainActivity.
     * @author Ludovic
     *
     */
    public class MainActivity extends Activity implements LocationListener {
        /*******************************************************/
        /** ATTRIBUTS.
        /*******************************************************/
        private LocationManager locationManager;
        private GoogleMap gMap;
        private Marker marker;
     
        /*******************************************************/
        /** METHODES / FONCTIONS.
        /*******************************************************/
        /**
         * {@inheritDoc}
         */
        @Override
        protected void onCreate(final 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)));
        }
     
        /**
         * {@inheritDoc}
         */
        @Override
        public void onResume() {
            super.onResume();
     
            //Obtention de la référence du service
            locationManager = (LocationManager) this.getSystemService(LOCATION_SERVICE);
     
            //Si le GPS est disponible, on s'y abonne
            if(locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER)) {
                abonnementGPS();
            }
        }
     
        /**
         * {@inheritDoc}
         */
        @Override
        public void onPause() {
            super.onPause();
     
            //On appelle la méthode pour se désabonner
            desabonnementGPS();
        }
     
        /**
         * Méthode permettant de s'abonner à la localisation par GPS.
         */
        public void abonnementGPS() {
            //On s'abonne
            locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 5000, 10, this);
        }
     
        /**
         * Méthode permettant de se désabonner de la localisation par GPS.
         */
        public void desabonnementGPS() {
            //Si le GPS est disponible, on s'y abonne
            locationManager.removeUpdates(this);
        }
     
        /**
         * {@inheritDoc}
         */
        @Override
        public void onLocationChanged(final Location location) {
            //On affiche dans un Toat la nouvelle Localisation
            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();
     
            //Mise à jour des coordonnées
            final LatLng latLng = new LatLng(location.getLatitude(), location.getLongitude());      
            gMap.moveCamera(CameraUpdateFactory.newLatLngZoom(latLng, 15));
            marker.setPosition(latLng);
        }
     
        /**
         * {@inheritDoc}
         */
        @Override
        public void onProviderDisabled(final String provider) {
            //Si le GPS est désactivé on se désabonne
            if("gps".equals(provider)) {
                desabonnementGPS();
            }       
        }
     
        /**
         * {@inheritDoc}
         */
        @Override
        public void onProviderEnabled(final String provider) {
            //Si le GPS est activé on s'abonne
            if("gps".equals(provider)) {
                abonnementGPS();
            }
        }
     
        /**
         * {@inheritDoc}
         */
        @Override
        public void onStatusChanged(final String provider, final int status, final Bundle extras) { }
    }
    

    et voila une capture d'écran dans mon  log cat

    • Partager sur Facebook
    • Partager sur Twitter
      3 juin 2013 à 11:18:10

      Bonjour,

      Essaye de changer ton fichier layout qui contient le fragment de map en :

      <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
          xmlns:tools="http://schemas.android.com/tools"
          android:layout_width="match_parent"
          android:layout_height="match_parent"
          tools:context=".MapActivity" >
      
          <fragment
              android:id="@+id/map"
              android:layout_width="match_parent"
              android:layout_height="match_parent"
              class="com.google.android.gms.maps.SupportMapFragment" />
      
      </RelativeLayout>

      et puisque tu travail avec une map entant que fragment tu change :

      extends Activity

      en

      extends FragmentActivity

      finalement, tu change ton targetSDK dans ton manifest à la dernière version d'android, puis comme ton minSDK est la version 8, au lieu de travailler avec MapFragment tu travailles avec SupportMapFragment.

      Cordialement.




      • Partager sur Facebook
      • Partager sur Twitter
        3 juin 2013 à 22:55:37

        j'ai changé les lignes que vous m'avez demandé le probleme au niveau de cette  ligne 

        il me dit qu'il me faut au moins l'api 11 pour que je puisse l'utilisé alors par quoi je peux la changer pour l'adapter pour minsdk=8 

        gMap = ((MapFragment)getFragmentManager().findFragmentById(R.id.map)).getMap();

        -
        Edité par hassouna91 3 juin 2013 à 23:15:08

        • Partager sur Facebook
        • Partager sur Twitter
          4 juin 2013 à 9:09:32

          Fait ce que te dis Alikyo, va dans ton manifest et passe la version de ton API à 11.
          • Partager sur Facebook
          • Partager sur Twitter
          "Comme la lune, agrandis-toi toi-même, Soit un homme, non un morceau d'argile." Iqbal.
            4 juin 2013 à 11:30:57

            CA VA PO MARché PARCEQUE JE FAIS LE TEST DANS UN TELEPHONE QUI NE SUPPORTE PAS L'API 11
            • Partager sur Facebook
            • Partager sur Twitter
              4 juin 2013 à 11:33:31

              je travaille avec le min sdk=8 prceque j'ai un telephone avec la version 2.3
              • Partager sur Facebook
              • Partager sur Twitter
                4 juin 2013 à 11:36:38

                Alors utilise le SupportMapFragment ! Tu peux t'aider de cette documentation !
                • Partager sur Facebook
                • Partager sur Twitter
                "Comme la lune, agrandis-toi toi-même, Soit un homme, non un morceau d'argile." Iqbal.
                  4 juin 2013 à 16:28:01

                  Click droit sur ton projet -> Android Tools -> Add Support Library...

                  Puis assure toi que tu appels SupportMapFragment  de supportLibrary.
                  • Partager sur Facebook
                  • Partager sur Twitter

                  position de l'utilisateur dans une gmaps api v2

                  × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                  × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                  • Editeur
                  • Markdown