IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

APIs Google Discussion :

Gmap api débutant


Sujet :

APIs Google

  1. #1
    Membre habitué
    Inscrit en
    Août 2008
    Messages
    1 596
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 1 596
    Points : 175
    Points
    175
    Par défaut Gmap api débutant
    Bonjour, je travaille sur un projet en c# et sql server

    Je dois afficher un certains nombres de clients sur une carte GMAP

    Jusqu'a aujourd'hui tout marche bien sauf que j'ai bcq de contraintes :

    - Comment puis je délimiter une ville pour faire comprendre a l'utilisateur que je travaille uniquement sur les clients de cette ville
    - Comment puis je créer un polygon sans savoir la ltitude et la longuer par exemple ?
    - J'ai créer des tooltip mais une fois j'enleve la souris il disparait, comment puis je la rendre toujours visible ?
    - Comment rendre visible le scroll vertical avec les directions sur mon map ?

    Mon code est en c# je ne sais pas si ca sera util de le poster

    Merci

  2. #2
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 144
    Points : 44 941
    Points
    44 941
    Par défaut
    Bonjour,
    - Comment puis je délimiter une ville pour faire comprendre a l'utilisateur que je travaille uniquement sur les clients de cette ville
    Tu crées un polygone que tu places sur ta carte cela devrait être suffisamment explicite.

    - Comment puis je créer un polygon sans savoir la ltitude et la longuer par exemple ?
    Euh!! j'ai du mal à visualiser ce que tu cherche à faire, si c'est un polugone il te faut des points donc des latLng

    - J'ai créer des tooltip mais une fois j'enleve la souris il disparait, comment puis je la rendre toujours visible ?
    il ne te faut pas utiliser l'événement au survol, mais au click par exemple.

    - Comment rendre visible le scroll vertical avec les directions sur mon map ?
    Pas sûr de comprendre le scroll vertical de quoi?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Mon code est en c# je ne sais pas si ca sera util de le poster
    complétement inutile, à la rigueur le code HTML généré.

  3. #3
    Membre habitué
    Inscrit en
    Août 2008
    Messages
    1 596
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 1 596
    Points : 175
    Points
    175
    Par défaut
    Bonjour, Merci pour votre reponse :

    Comment puis je délimiter une ville pour faire comprendre a l'utilisateur que je travaille uniquement sur les clients de cette ville

    je ne peux pas cerner tous les points de mon pays par exemple,

    Exemple : quand tu tape https://maps.google.fr/ et tu met france, il te donne une zone rouge, ca veut dire qu'elle est deja définie


    J'ai créer des tooltip mais une fois j'enleve la souris il disparait, comment puis je la rendre toujours visible ?

    La reponse : il faut mettre le mode du tooltip "visible"

    Comment rendre visible le scroll vertical avec les directions sur mon map ?

    Ce que je veux faire : c'est de mettre la barre verticale avec les directions dans l'exemple https://maps.google.fr/ avec possibilité de zoom in et out avec la souris uniquement

  4. #4
    Membre expert
    Avatar de Spartacusply
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2011
    Messages
    1 723
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2011
    Messages : 1 723
    Points : 3 275
    Points
    3 275
    Par défaut
    Exemple : quand tu tape https://maps.google.fr/ et tu met france, il te donne une zone rouge, ca veut dire qu'elle est deja définie
    Qu'elle soit définie est une chose, ce n'est pas pour autant que google la communique dans son API (et je ne crois pas que ce soit le cas)

    Ce que je veux faire : c'est de mettre la barre verticale avec les directions dans l'exemple https://maps.google.fr/ avec possibilité de zoom in et out avec la souris uniquement
    Joue avec les options de la map ( doc ici : https://developers.google.com/maps/d...nce#MapOptions), en l'occurence c'est l'attribut "zoomControl" défini à true ou false qui active ou désactive le panneau de contrôle du zoom.

  5. #5
    Membre habitué
    Inscrit en
    Août 2008
    Messages
    1 596
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 1 596
    Points : 175
    Points
    175
    Par défaut
    Merci pour ce lien util

    J'ai une question : l'API GMAP.net est en Javascript ou .net ? (c'est question stupide mais je ne sais pas la reponse)

    Est ce que toutes les fonctionnalités qui existent au niveau du lien https://developers.google.com/maps/d...nce#MapOptions sont exploitable dans un code c# ?

    Merci pour votre orientation

    Malheureusement je n'ai pas trouvé assez de documentation sur google

  6. #6
    Membre expert
    Avatar de Spartacusply
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2011
    Messages
    1 723
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2011
    Messages : 1 723
    Points : 3 275
    Points
    3 275
    Par défaut
    l'API GMAP.net est en Javascript ou .net ?
    C'est du javascript évidemment, elle est exécutable dans un navigateur.

    Est ce que toutes les fonctionnalités qui existent au niveau du lien https://developers.google.com/maps/d...nce#MapOptions sont exploitable dans un code c# ?
    Non c'est du javascript, tu dois développer du javascript pour utiliser l'API de maps.

  7. #7
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 144
    Points : 44 941
    Points
    44 941
    Par défaut
    ...sont exploitable dans un code c# ?
    il faut bien comprendre que coté serveur tu génères un code qui sera compris coté client par les navigateurs, donc du HTML avec ou sans javascript et dans ce cas tu pourras exploiter l'API.

    Merci pour ce lien util
    La documentation officielle est TOUJOURS une documentation utile

  8. #8
    Membre habitué
    Inscrit en
    Août 2008
    Messages
    1 596
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 1 596
    Points : 175
    Points
    175
    Par défaut
    Sincerement votre reponse me parait tres interessante mais je l'ai pas comprise

    Je travaille avec du c# et je suis débutante déjà, je ne vois pas comment exploiter cette api et ses classes dans mon code

  9. #9
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 144
    Points : 44 941
    Points
    44 941
    Par défaut
    Dans ton code C# tu ne peux pas mais dans le code HTML que tu peux générer tu peux, reste à savoir ce que tu souhaites faire et si tu as vraiment besoin de faire cela en C#.

  10. #10
    Membre expert
    Avatar de Spartacusply
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2011
    Messages
    1 723
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2011
    Messages : 1 723
    Points : 3 275
    Points
    3 275
    Par défaut
    Je pense que tu te trompes de cible : ce n'est pas la Google Maps Javascript API qu'il te faut utiliser, mais le webservice google maps (https://developers.google.com/maps/d...ervices/?hl=FR). Un webservice est utilisable à partir d'une simple url, et le résultat de la requête est exploitable en tout langage.

  11. #11
    Membre habitué
    Inscrit en
    Août 2008
    Messages
    1 596
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 1 596
    Points : 175
    Points
    175
    Par défaut
    Bonjour, merci pour votre reponse, ce web service me permettera de localiser un marker sur une route a a partir d un point d origine
    Exemple : le point A (ville a, rue x, pk 200km) cad le point A se trouve sur la route x a 200km du de
    La ville a (qui se trouve Aussi sur la route x)

  12. #12
    Membre expert
    Avatar de Spartacusply
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2011
    Messages
    1 723
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2011
    Messages : 1 723
    Points : 3 275
    Points
    3 275
    Par défaut
    Oui le webservice maps permet de faire ce que tu demandes.

  13. #13
    Membre habitué
    Inscrit en
    Août 2008
    Messages
    1 596
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 1 596
    Points : 175
    Points
    175
    Par défaut
    Des examples please

  14. #14
    Membre expert
    Avatar de Spartacusply
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2011
    Messages
    1 723
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2011
    Messages : 1 723
    Points : 3 275
    Points
    3 275
    Par défaut
    Tout est dans la (très bonne) doc officielle : https://developers.google.com/maps/d...ervices/?hl=FR

  15. #15
    Membre habitué
    Inscrit en
    Août 2008
    Messages
    1 596
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 1 596
    Points : 175
    Points
    175
    Par défaut
    Une documentation francaise n'existe pas ?

  16. #16
    Membre habitué
    Inscrit en
    Août 2008
    Messages
    1 596
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 1 596
    Points : 175
    Points
    175
    Par défaut
    pourriez vous m'aider svp

    Je me sens perdu avec ce web service, sachant que j'ai déjà avancer avec une form contenant une map et je suis coincée dans ce point :

    "localiser un marker sur une route a a partir d un point d origine
    Exemple : le point A (ville a, rue x, pk 200km) cad le point A se trouve sur la route x a 200km du de
    La ville a (qui se trouve Aussi sur la route x)"

    priere de m'aider a s'approcher de ce que je veux relaiser meme en javascript

  17. #17
    Membre expert
    Avatar de Spartacusply
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2011
    Messages
    1 723
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2011
    Messages : 1 723
    Points : 3 275
    Points
    3 275
    Par défaut
    Bon, en fait en essayant de la faire, j'ai vu que je me suis un peu planté sur ce que j'ai dit, c'est faisable mais pas si simple que ça.

    En gros je pensais que l'API pouvait nativement renvoyer le trajet avec la liste des points tous les 5 kilomètres mais en fait... non ^^

    Néanmoins, vu que je sais que c'est quelque chose qui intéressera aussi forcément un jour je me suis penché sur la question et j'ai fini par trouver.

    Je me suis fortement inspiré et j'ai utilisé des fonctions que j'ai pu trouver à cette adresse : http://www.geocodezip.com/v3_polylin...markers_0.html, et je l'ai arrangé pour que ça marche avec un DirectionService.

    Voici ce que ça donne (en utilisant l'API pas le webservice) :

    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
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xmlns:v="urn:schemas-microsoft-com:vml">
        <head>
            <meta name="viewport" content="initial-scale=1.0, user-scalable=no" /> 
            <meta http-equiv="content-type" content="text/html; charset=UTF-8"/> 
            <title>Trajet avec markers</title>
            <script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script> 
            <script type="text/javascript">
                google.maps.LatLng.prototype.distanceFrom = function(newLatLng) {
                    var EarthRadiusMeters = 6378137.0; // meters
                    var lat1 = this.lat();
                    var lon1 = this.lng();
                    var lat2 = newLatLng.lat();
                    var lon2 = newLatLng.lng();
                    var dLat = (lat2 - lat1) * Math.PI / 180;
                    var dLon = (lon2 - lon1) * Math.PI / 180;
                    var a = Math.sin(dLat / 2) * Math.sin(dLat / 2) +
                            Math.cos(lat1 * Math.PI / 180) * Math.cos(lat2 * Math.PI / 180) *
                            Math.sin(dLon / 2) * Math.sin(dLon / 2);
                    var c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));
                    var d = EarthRadiusMeters * c;
                    return d;
                }
            </script>
     
            <script type="text/javascript">
                var mArray = new Array();
                var points = new Array();
                var coordinates = new Array();
                var markers = new Array();
                var map;
                var bounds;
                var infowindow = new google.maps.InfoWindow({size: new google.maps.Size(150, 50)});
                var resultRequest;
                var directionDisplay = new google.maps.DirectionsRenderer();
     
                function estVide(nom) {
                    if (nom !== undefined && nom !== null && nom !== '' && nom !== false) {
                        return false;
                    }
                    return true;
                }
     
                function load() {
                    var myOptions = {
                        zoom: 7,
                        center: new google.maps.LatLng(48, 1),
                        mapTypeControl: true,
                        mapTypeControlOptions: {style: google.maps.MapTypeControlStyle.DROPDOWN_MENU},
                        navigationControl: true,
                        mapTypeId: google.maps.MapTypeId.ROADMAP
                    }
                    map = new google.maps.Map(document.getElementById("map_canvas"),
                            myOptions);
     
                    google.maps.event.addListener(map, 'click', function() {
                        infowindow.close();
                    });
     
                    calculItineraire();
                }
     
                function calculItineraire() {
                    var rendererOptions = {
                        draggable: false,
                        suppressInfoWindows: false,
                        suppressMarkers: true,
                        suppressPolylines: false,
                    };
     
                    directionDisplay.setMap(null);
                    directionDisplay = new google.maps.DirectionsRenderer(rendererOptions);
     
                    var request = {
                        origin: document.getElementById('start').value,
                        destination: document.getElementById('end').value,
                        unitSystem: google.maps.DirectionsUnitSystem.METRIC,
                        travelMode: google.maps.DirectionsTravelMode.DRIVING,
                    };
     
                    var directionsService = new google.maps.DirectionsService();
                    directionsService.route(request, function(result, status) {
                        if (status === google.maps.DirectionsStatus.OK) {
                            resultRequest = result.routes[0];
     
                            directionDisplay.setDirections(result);
                            directionDisplay.setMap(map);
                            putMarkersDistance();
                        }
                    });
                }
     
                function getPointAtDistance(metres) {
                    var myroute = resultRequest;
                    var arr = new google.maps.MVCArray(myroute.overview_path);
     
                    if (metres == 0)
                        return arr.getAt(0);
                    if (metres < 0)
                        return null;
                    if (arr.getLength() < 2)
                        return null;
                    var dist = 0;
                    var olddist = 0;
                    for (var i = 1; (i < arr.getLength() && dist < metres); i++) {
                        olddist = dist;
                        dist += arr.getAt(i).distanceFrom(arr.getAt(i - 1));
                    }
                    if (dist < metres) {
                        return null;
                    }
     
                    var p1 = arr.getAt(i - 2);
     
                    var p2 = arr.getAt(i - 1);
     
                    var m = (metres - olddist) / (dist - olddist);
     
                    return new google.maps.LatLng(p1.lat() + (p2.lat() - p1.lat()) * m, p1.lng() + (p2.lng() - p1.lng()) * m);
                }
     
                function createMarker(point, html) {
                    var contentString = html;
                    var marker = new google.maps.Marker({
                        position: point,
                        map: map,
                        title: name,
                        zIndex: Math.round(point.lat() * -100000) << 5
                    });
     
                    google.maps.event.addListener(marker, 'click', function() {
                        infowindow.setContent(contentString);
                        infowindow.open(map, marker);
                    });
                    return marker;
                }
     
                function putMarkerDistance(distance) {
                    var km_point = getPointAtDistance(distance);
                    if (km_point) {
                        var infoWindowContent = "Kilomètre " + distance / 1000 + " sur " + (resultRequest.legs[0].distance.value / 1000).toFixed(2);
                        var marker = createMarker(km_point, infoWindowContent);
                        markers.push(marker);
                    }
                }
     
                function putMarkersDistance() {
                    deleteMarkers();
                    var increment = parseInt(document.getElementById('distanceMarker').value * 1000);
                    var distance = resultRequest.legs[0].distance.value;
                    for (var i = 0; i < distance; i += increment) {
                        putMarkerDistance(i);
                    }
                }
     
                function deleteMarkers() {
                    for (var i = 0; i < markers.length; i++) {
                        markers[i].setMap(null);
                    }
                    markers = new Array();
                }
            </script>
        </head>
     
        <body onload="load()" >
            <div id="map_canvas" style="width: 1000px; height: 500px; margin-bottom: 40px;"></div>
            <form action="get" method="post">
                <label>Départ</label><input type="text" name="start" id="start" value="Paris" />
                <label>Arrivée</label><input type="text" name="end" id="end" value="Nantes" />
                <label>Marker tous les : </label><input type="text" name="distanceMarker" id="distanceMarker" value="25" size="4"/> kms
                <input type="button" name="Reset" value="Envoyer" onclick="calculItineraire()" />
                <input type="button" name="Reset" value="Effacer" onclick="deleteMarkers()" />
            </form>
        </body>
    </html>
    Comme tu peux le voir c'est pas de la tarte. Ca se base sur "l'overview path" du trajet, que tu peux récupérer avec le webservice, donc ce code est réalisable en c# vu que l'on possède la donnée de base. Il te faudra recoder surtout les fonctions "getPointAtDistance" et "distanceFrom".

    La logique est là en tout cas.

  18. #18
    Membre habitué
    Inscrit en
    Août 2008
    Messages
    1 596
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 1 596
    Points : 175
    Points
    175
    Par défaut
    Merci pour l effort mais je suis a coté je n ai pas compris la logique pourriez vous m expliquez le code

  19. #19
    Membre expert
    Avatar de Spartacusply
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2011
    Messages
    1 723
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2011
    Messages : 1 723
    Points : 3 275
    Points
    3 275
    Par défaut
    L'as tu déjà testé au moins ? Tu copies le tout dans un fichier html et tu le lances dans un navigateur, tu peux voir ce que ça donne déjà.

  20. #20
    Membre habitué
    Inscrit en
    Août 2008
    Messages
    1 596
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 1 596
    Points : 175
    Points
    175
    Par défaut
    Le code marche bien mais c'est pas adapté a mon besoin, je m'explique :

    J'ai une base de données contenant les champs suivant :

    Clientid nomStation origine trajet distanceApartirduPointOrigine

    Soc1 St1 point X route N1(route nationale 1) 250


    cela veut dire fonctionnellement : point X est sur la route N1, je calcule 250 km a partir du point X(qui est le debut de la route), a 250km sur N1 je trouve le point recherché et c'est la que je dois placer un marker (un marker)

    et je refais le meme processus pour toutes les stations

    Je n'ai pas de probleme de travailler avec du javascript, parce que la technologie ne m'est pas imposée, j'ai choisi c# parce que c'est ce que je connais de plus

    J'espere quej'etais claire et qu'il y a un espoir de mettre ca en place

    et merci pour l'interet que vous portiez a mon post

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. [Google Maps] Création d'une classe et utilisation
    Par Invité dans le forum APIs Google
    Réponses: 1
    Dernier message: 28/07/2009, 10h12
  2. [Débutant] API WINDOWS pb de linker avec DEV-C++
    Par coolmaxou dans le forum Windows
    Réponses: 3
    Dernier message: 12/07/2005, 10h24
  3. [débutant][netBeans 3.6][API]Castor
    Par pingoui dans le forum NetBeans
    Réponses: 2
    Dernier message: 29/07/2004, 11h46
  4. [débutante][API] basculer vers une autre appli en VB6
    Par zazaraignée dans le forum Windows
    Réponses: 7
    Dernier message: 04/06/2004, 16h15
  5. [Débutant]Quelques questions de principe sur l'API win32
    Par silver_dragoon dans le forum Windows
    Réponses: 4
    Dernier message: 19/03/2004, 19h38

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo