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 :

Itinéraire + InfoWindow personnalisé [Google Maps]


Sujet :

APIs Google

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2004
    Messages
    2 402
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 402
    Par défaut Itinéraire + InfoWindow personnalisé
    Bonjour à tous,

    Je suis en train de m'amuser à intégrer Googlemap dans une application.
    J'arrive entre autre à afficher un itinéraire multi-points.

    Le problème sur lequel je tombe est l'ajout d'InfoWindow personnalisé sur les différentes étapes.

    Voici un bout de code :
    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
     
    ...
    directionsDisplay.setMap(maCarte);
    directionsDisplay.setPanel(document.getElementById("EmplacementItineraireTexte"));
    var requeteItineraire = {
      origin: "monAdresse1",
      destination: "monAdresse2",
      travelMode: google.maps.DirectionsTravelMode.DRIVING
    };
    directionsService.route(requeteItineraire, function(response, status) {
      if (status == google.maps.DirectionsStatus.OK) {
        directionsDisplay.setDirections(response);
        var address = "monAdresse1"; 
        geocoder.geocode( { 'address': address}, function(results, status) { 
            if (status == google.maps.GeocoderStatus.OK) { 
                var marker = new google.maps.Marker({ 
                  map: maCarte,  
                  position: results[0].geometry.location 
                }); 
                maCarte.addOverlay(marker);
                google.maps.event.addListener(marker, 'click', function() {
                  infowindow1.open(maCarte,marker);
                });
             } 
        }); }
    ...
    Ce code affiche bien l'itinéraire entre les 2 points, mais l'InfoWindow que je pensais mettre sur "monAdresse1" n'y est pas, mais l'InfoWindow par défaut s'affiche bien.

    Voyez-vous quelque chose qui ne va pas ?
    A noter, que ça fait 2 jours que je suis sur JS, donc je n'utilise peut-être pas les bons termes pour vous expliquer et vous comprendre

    Merci à tous

  2. #2
    Membre Expert

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2004
    Messages
    2 402
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 402
    Par défaut
    ok, trouvé, j'avais pas mal d'erreur dans les déclarations de variable, donc c'est bon j'arrive bien à afficher des nouveaux markers avec des Infowindows personnalisées dont voici le code :

    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
     
    var directionDisplay;
    var directionsService = new google.maps.DirectionsService();
    var maCarte;
    var geocoder;
    var myOptions;
    function initialize() {
      geocoder = new google.maps.Geocoder();
      directionsDisplay = new google.maps.DirectionsRenderer();
      var latlng = new google.maps.LatLng(0,0); 
      myOptions = { 
        zoom: 7, 
        center: latlng, 
        mapTypeId: google.maps.MapTypeId.HYBRID
      }; 
      maCarte = new google.maps.Map(document.getElementById("EmplacementDeMaCarte"), myOptions);
      var requeteItineraire = {
        origin: "monAdresse1",
        destination: "monAdresse2",
        travelMode: google.maps.DirectionsTravelMode.DRIVING
      };
      var contentString = '<div id="content">'+
        '<div id="siteNotice">'+
        '</div>'+
        '<h1 id="firstHeading" class="firstHeading">Uluru</h1>'+
        '<div id="bodyContent">'+
        'Toto is here !!' +
        '</div>'+
        '</div>';
      var infowindow = new google.maps.InfoWindow({
        content: contentString
      });
      directionsService.route(requeteItineraire, function(response, dirstatus) {
        if (dirstatus == google.maps.DirectionsStatus.OK) {
            var address = "monAdresse3";
            geocoder.geocode( { 'address': address}, function(results, geostatus) {
              if (geostatus == google.maps.GeocoderStatus.OK) {
                var marker = new google.maps.Marker({
                  map: maCarte, 
                  position: results[0].geometry.location
                });
                google.maps.event.addListener(marker, 'click', function() {
                  infowindow.open(maCarte,marker);
                });
              } else {
                alert("Geocode was not successful for the following reason: " + geostatus);
              }
            });
           directionsDisplay.setMap(maCarte);
           directionsDisplay.setPanel(document.getElementById("EmplacementItineraireTexte"));
           directionsDisplay.setDirections(response);
         } else {
           alert("Direction was not successful for the following reason: " + dirstatus);
         }
      });
    }
    Maintenant, il n'y a plus qu'à chercher pour modifier les infoWindows par défaut des différents points de l'itinéraire, une idée ?

  3. #3
    Membre Expert
    Avatar de emmanuel.remy
    Inscrit en
    Novembre 2005
    Messages
    2 855
    Détails du profil
    Informations personnelles :
    Âge : 57

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 855
    Par défaut
    Salut,

    Si tu veux utiliser une seule InfoWindow, tu peux changer pour chaque clic de marker le contenu de l'infowindow, en utilisant sa fonction setContent

    ERE

  4. #4
    Membre Expert

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2004
    Messages
    2 402
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 402
    Par défaut
    Merci pour l'info.

    Je met ça de côté le temps de voir si on va plus loin car vu les coûts d'utilisation des API Google, Mappy et consor, je ne suis pas certain qu'on aille très loin.

    a+
    et merci

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 3
    Par défaut Affichage d'itinéraire sur la carte
    Bonjour;
    j'ai une application se rassemble a google map ,aprés un calcul de plus court chemin entre la ville de départ et la ville d'arrivée avec Dikjestra
    je voudrai savoir comment afficher l'itinéraire sur la carte
    s'il vous plait ,j'ai besoin de vos aides et vos conseils
    merci d'avance.

  6. #6
    Membre Expert

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2004
    Messages
    2 402
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 402
    Par défaut
    Bonjour,

    La documentation en ligne de GoogleMaps est très bien faite.

    Voici un lien à partir duquel tu vas pouvoir t'amuser :


    Sur la partie gauche, tu verras d'autres liens (overlays, events, etc...)

    Pour aller au plus simple, la méthode que j'ai utilisé a été de créer un fichier HTM dans lequel je génére le code HTML et Javascript.

    Ensuite j'ouvre ce fichier dans un champ HTML.

  7. #7
    Invité de passage
    Inscrit en
    Décembre 2010
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Décembre 2010
    Messages : 1
    Par défaut
    Bonjour

    Tu t'amuse avec le code de google map.
    c'est bien vous êtes forte.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [VB.NET] Contrôle personnalisé dans une dll personnalisée
    Par c3b12 dans le forum Windows Forms
    Réponses: 4
    Dernier message: 15/10/2004, 07h56
  2. [VB.NET] Evenement par défaut sur controle personnalisé
    Par anthony70 dans le forum Windows Forms
    Réponses: 7
    Dernier message: 31/08/2004, 16h19
  3. [CR]Help numero page personnalisé
    Par juelo dans le forum SAP Crystal Reports
    Réponses: 4
    Dernier message: 09/01/2004, 16h59
  4. Réponses: 9
    Dernier message: 14/10/2003, 15h35

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