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 :

Placement InfoWindow lors de son affichage


Sujet :

APIs Google

  1. #1
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Janvier 2012
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2012
    Messages : 3
    Points : 3
    Points
    3
    Par défaut Placement InfoWindow lors de son affichage
    Bonjour,

    je suis en train de créer un application avec l'api gmaps où l'on trouve des adresses et quand on clique dessus, une info bulle s'ouvre avec les infos.

    J'ai réussit à tout faire fonctionner comme il faut, mais lorsque l'info bulle s'ouvre, la carte se centre sur le marker et une partie de la bulle se retrouve en dehors du cadre.
    Je ne souhaite pas réduire la taille de la bulle, par contre est il possible de définir des coordonnées pour spécifier la réaction de ce recentrage ?
    De quelle manière ?


    Merci d'avance!
    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
    var map = null;
    var infowindow;
    var markers=new Array();
     
     
    $("ul.ListAddress li div").live("click", function() {
     
        /* change la class du point selectionné et supprime la class des autres */
        $(this).parents("ul.ListAddress").find("li").removeClass("selected");
        $(this).parent("li").addClass("selected");
     
        var obj = jQuery.parseJSON($(this).parent().find("span.ShopDetails").text());
     
        /* cherche l\'id du marker */
        var markersID = $(this).parent().attr("id").split("_");
     
        map.panTo(new google.maps.LatLng(obj.coordGeolocalisationLatitude, obj.coordGeolocalisationLongitude));
        google.maps.event.trigger(markers[markersID[1]], "click");
     
    });
     
    function initialize(address) {
     
        var myOptions = {
            zoom: 6,
            center: new google.maps.LatLng(46.97534599999999, 1.7681250000000546),
            mapTypeId: google.maps.MapTypeId.ROADMAP
        }
     
        /* Creation de la map */
        map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
     
        /* recupere les valeurs de toutes les adresses*/
        var ShopValues = $("ul.ListAddress span[class='ShopDetails']").map(function(){return $(this).text();}).get();
     
        /* place les points sur la carte de chaques adresses*/
        $.each(ShopValues, function(index, value) {
           /* decode les valeurs */
           setPointRelais(map, jQuery.parseJSON(value));
       });
     
        /* permet de fermer les markers lors d'un click sur la carte */
        google.maps.event.addListener(map, 'click', function() {
            if (infowindow) infowindow.close();
        });
    }
     
    function setPointRelais(map, jsonPointRelais){
     
        var image = new google.maps.MarkerImage('inc.common/mtfw.shop/styles/img/shop_locator_logo_thumb.png', new google.maps.Size(29, 29), new google.maps.Point(0,0));
        var shape = { coord: [1, 1, 1, 37, 32, 37, 32 , 1], type: 'poly'};
        var myLatLng = new google.maps.LatLng(jsonPointRelais.coordGeolocalisationLatitude, jsonPointRelais.coordGeolocalisationLongitude);
     
        var marker = new google.maps.Marker({
     
            position: myLatLng,
            map: map,
            icon: image,
            flat: false,
            animation: google.maps.Animation.DROP,
            shape: shape,
            title: jsonPointRelais.nom,
     
        }); 
     
     
        /*Envoi le contenu en fonction de la valeur de actif*/
        if (jsonPointRelais.actif == 0){
        var contenuInfoBulle = 'blablabla';
        }
        else{
        var contenuInfoBulle = 'blablabla';
        }
     
        google.maps.event.addListener(marker, 'click', function() {
            if (infowindow) infowindow.close();
            infowindow = new InfoBubble({content: contenuInfoBulle});
            infowindow.open(map, marker);
        });
     
        marker.setMap(map);
        markers.push(marker);
    }

  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
    Bonsoir,
    J'ai réussit à tout faire fonctionner comme il faut, mais lorsque l'info bulle s'ouvre, la carte se centre sur le marker et une partie de la bulle se retrouve en dehors du cadre.
    ce n'est pourtant pas le comportement par défaut qui cherche à afficher entièrement l'infoWindow.

    que crois tu que fait cette ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    map.panTo(new google.maps.LatLng(obj.coordGeolocalisationLatitude, obj.coordGeolocalisationLongitude));

  3. #3
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Janvier 2012
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2012
    Messages : 3
    Points : 3
    Points
    3
    Par défaut
    La ligne donne les coordonnées de positionnement pour le marker.
    Je me trompe ?

  4. #4
    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
    Citation Envoyé par anthony88 Voir le message
    La ligne donne les coordonnées de positionnement pour le marker.
    Je me trompe ?
    OUI (réponse à "Je me trompe ?"), elle centre la carte sur le point avec un effet de glissement
    google.maps.Map class

Discussions similaires

  1. Plantage table de hachage lors de son affichage
    Par toufik135 dans le forum C
    Réponses: 2
    Dernier message: 28/11/2012, 00h46
  2. Peut-on limiter les dimensions d'une image lors de son affichage ?
    Par lolymeupy dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 08/06/2008, 19h21
  3. [WebForms][HTML]Comment redimensionner une page lors de l'affichage?
    Par edzodzinam dans le forum Général Dotnet
    Réponses: 4
    Dernier message: 27/12/2005, 13h39
  4. Réponses: 12
    Dernier message: 14/07/2005, 17h55
  5. Réponses: 6
    Dernier message: 27/01/2004, 17h08

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