• 02nov

    Développer votre application de réalité augmentée avec l’API de Wikitude



    Dans  ce tuto je vais utiliser l’api de Wikitude pour développer ma propre application de réalité augmentée. Cette application de réalité augmentée affichera des lieux à visiter avec des définitions prises sur wikipedia.

    D’abord, télécharger l’api de test wikitude ici et dézipper le. Créer votre projet dans eclipse et importer votre librairie. Pour cela dans propriété du projet sélectionner->Jaba build Path-> onglet Librairie ->Add external Jars.

    ProjetAR1 Développer votre application de réalité augmentée avec lAPI de Wikitude Android France

    Dans mon interface xml je crée un bouton de lancement de mon application de réalité augmentée.

    ?Download download.txt
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    
    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:orientation="vertical"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        >
    <TextView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="@string/hello"
        />
        <Button android:text="lancement"
    		android:id="@+id/Button1"
    		android:layout_width="wrap_content"
    		android:layout_height="wrap_content" />
     
      </LinearLayout>

    Dans la méthode oncreate de mon application, je lance mon inten de réalité augmentée avec ma méthode startARViewBasic()

    ?Download download.txt
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    
    /** Called when the activity is first created. */
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
     
            Button b = (Button) findViewById(R.id.Button1);
             b.setOnClickListener(new View.OnClickListener() {
    	        public void onClick(View v) {
    	         //  je lance mon inten de réalité augmenté
                       startARViewBasic();
    	        }
            });
        }

    Pour ouvrir mon client de réalité augmentée je procède en 3 méthodes

    ?Download download.txt
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    
      /**
        * j'ouvre ma vue réalité augmenté
        **/
       private void startARViewBasic() {
     
    	   // Creation d'un intent basic  AR
    	   WikitudeARIntent intent = prepareIntent();
     
    	   // Titre de mon applicaiton
    	   intent.addTitleText("Ma AR application");
     
    	   // lancement de mon activity
    	   try {
    		   lecontext.startActivity(intent);
    	   }
         // erreur si l'application wikitude n'est pas installer sur votre téléphone
         catch (ActivityNotFoundException e) {
    		   Toast.makeText(this, "Rien trouvé "+e.getMessage(),
    		   Toast.LENGTH_SHORT).show();
    		   email.setText(e.getMessage()+"/"+intent.toString());
    		   //intent.toString()
    	   }
       }

    la méthode prepareIntent() qui collectionne les POI( point à afficher dans mon application AR)

    ?Download download.txt
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    
     /**
         * prepares a Wikitude AR Intent (e.g. adds the POIs to the view)
         *
         * @return the prepared intent
         */
        private WikitudeARIntent prepareIntent() {
    	    // create the intent
    	    WikitudeARIntent intent = new WikitudeARIntent(this.getApplication(),
    	    null, null);
    	    //add the POIs
    	    this.addPois(intent);
    	    return intent;
        }

    Et la dernière méthode addPois la plus intéressante, est celle dans laquelle je vais renseigner nos différentes positions cartographiques que je récupère sur Google Maps.

    ?Download download.txt
    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
    
     /**
         * adds hard-coded POIs to the intent
         *
         * @param intent
         *            the intent
         */
        private void addPois(WikitudeARIntent intent) {
    	// mon point 1 le castillet de perpignan
          WikitudePOI poi1 = new WikitudePOI(42.700664, 2.894377, 1, "Castillet Perpignan",
    	    "Le Castillet ou Castellet (en catalan) est un monument de la ville de Perpignan qui fut tour à tour porte de la ville et prison d'Etat. Aujourd'hui il abrite le Musée Catalan des Arts et Traditions Populaires (La Casa Pairal).");
    	// mon point 2 le palais de rois de marjorque  à perpignan
          WikitudePOI poi2 = new WikitudePOI(
    	    42.697532,
    	    2.893424,
    	    1,
    	    "Palais des Rois de Majorque",
    	    "e palais des Rois de Majorque est un palais-forteresse de style gothique situé à Perpignan. Cet édifice fut achevé en 1309");
       // mon point 3 la cas musicale a perpignan
         WikitudePOI poi3 = new WikitudePOI(
    	    42.699128,
    	    2.90019,
    	    1,
    	    "Casa Musicale",
    	    "La Casa musicale, est un espace entièrement dédié à la pratique de la musique et de la danse sous toutes ses formes.");
       // mon point 5 le musée de tautavel dans les PO
    	    WikitudePOI poi4 = new WikitudePOI(
    	    42.843046,
    	    2.750473,
    	    1,
    	    "Musée de Tautavel",
    	    "Inauguré en 1992, le nouveau Musée de Tautavel, Centre Européen de Préhistoire, est un formidable outil au service de la vulgarisation des sciences rattachées à l'archéologie et particulièrement à la préhistoire sur les périodes du quaternaire méditerranéen");
       //ma collection  de point
        Collection<WikitudePOI> pois = new ArrayList<WikitudePOI>();
    	    pois.add(poi1);
    	    pois.add(poi2);
    	    pois.add(poi3);
    	    pois.add(poi4);
    	    intent.addPOIs(pois);
        }

    N’oubliez pas d’installer d’abord l’application wikitude sur votre téléphone.

    device1 300x200 Développer votre application de réalité augmentée avec lAPI de Wikitude Android France
    device2 300x200 Développer votre application de réalité augmentée avec lAPI de Wikitude Android France
    Le Code complet

    ?Download download.txt
    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
    
    package org.com.projetar;
     
    import java.util.ArrayList;
    import java.util.Collection;
     
    import android.app.Activity;
    import android.content.ActivityNotFoundException;
    import android.content.Context;
    import android.os.Bundle;
    import android.view.View;
    import android.widget.Button;
    import android.widget.TextView;
    import android.widget.Toast;
    import org.openintents.intents.WikitudeARIntent;
    import org.openintents.intents.WikitudePOI;
     
    public class ProjetAR extends Activity {
     
    	private TextView email;
    	Context lecontext = this;
        /** Called when the activity is first created. */
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
     
            Button b = (Button) findViewById(R.id.Button1);
            email = (TextView) findViewById(R.id.mail);
             b.setOnClickListener(new View.OnClickListener() {
    	        public void onClick(View v) {
    	        	startARViewBasic();
    	        }
            });
        }
        /**
        * starts the basic AR view
        **/
       private void startARViewBasic() {
     
    	   // Create the basic intent
    	   WikitudeARIntent intent = prepareIntent();
     
    	   // Optionally add a title
    	   intent.addTitleText("My first AR application");
     
    	   // And launch the intent
    	   try {
    		   lecontext.startActivity(intent);
    	   } catch (ActivityNotFoundException e) {
    		   Toast.makeText(this, "Rien trouvé "+e.getMessage(),
    		   Toast.LENGTH_SHORT).show();
    		   email.setText(e.getMessage()+"/"+intent.toString());
    		   //intent.toString()
    	   }
       }
     
        /**
         * prepares a Wikitude AR Intent (e.g. adds the POIs to the view)
         *
         * @return the prepared intent
         */
        private WikitudeARIntent prepareIntent() {
    	    // create the intent
    	    WikitudeARIntent intent = new WikitudeARIntent(this.getApplication(),
    	    null, null);
    	    //add the POIs
    	    this.addPois(intent);
    	    return intent;
        }
     
     
     
        /**
         * adds hard-coded POIs to the intent
         *
         * @param intent
         *            the intent
         */
        private void addPois(WikitudeARIntent intent) {
    	    WikitudePOI poi1 = new WikitudePOI(42.700664, 2.894377, 1, "Castillet Perpignan",
    	    "Le Castillet ou Castellet (en catalan) est un monument de la ville de Perpignan qui fut tour à tour porte de la ville et prison d'Etat. Aujourd'hui il abrite le Musée Catalan des Arts et Traditions Populaires (La Casa Pairal).");
    	    WikitudePOI poi2 = new WikitudePOI(
    	    42.697532,
    	    2.893424,
    	    1,
    	    "Palais des Rois de Majorque",
    	    "e palais des Rois de Majorque est un palais-forteresse de style gothique situé à Perpignan. Cet édifice fut achevé en 1309");
    	    WikitudePOI poi3 = new WikitudePOI(
    	    42.699128,
    	    2.90019,
    	    1,
    	    "Casa Musicale",
    	    "La Casa musicale, est un espace entièrement dédié à la pratique de la musique et de la danse sous toutes ses formes.");
    	    WikitudePOI poi4 = new WikitudePOI(
    	    42.843046,
    	    2.750473,
    	    1,
    	    "Musée de Tautavel",
    	    "Inauguré en 1992, le nouveau Musée de Tautavel, Centre Européen de Préhistoire, est un formidable outil au service de la vulgarisation des sciences rattachées à l'archéologie et particulièrement à la préhistoire sur les périodes du quaternaire méditerranéen");
    	    Collection<WikitudePOI> pois = new ArrayList<WikitudePOI>();
    	    pois.add(poi1);
    	    pois.add(poi2);
    	    pois.add(poi3);
    	    pois.add(poi4);
    	    intent.addPOIs(pois);
        }
     
    }

    .
    Il est temps de mettre à profit les tutoriels d’Android France:
    Passez à la vitesse supérieure et investissez quelques dizaines d’euros pour acquérir les connaissances qui vous feront gagner de l’argent avec vos applications rendez-vous sur notre boutique Android-france pour ces formations en vidéo



    Guy

    Co-fondateur du site Android france, senior lead developper, passionné de bière et de cigare cubain

    Twitter Google+ 

28 commentaires

  1. 7 juin 2011 à 0 h 24 min

    Est ce qu’il y’a un moyen quelconque de testé l’exemple sans android. Avec le tollkit par exemple ?

Laissez un commentaire

     Vous devez être identifié pour publier un commentaire.
     Connexion - Inscription