Compatibilité de script

Signaler
Messages postés
2
Date d'inscription
mardi 9 novembre 2004
Statut
Membre
Dernière intervention
6 juillet 2008
-
Messages postés
3426
Date d'inscription
lundi 26 décembre 2005
Statut
Membre
Dernière intervention
14 janvier 2011
-
Bonjour,

Voilà je me trouve face un probleme que j'essaye de résoudre depuis quelques jours déjà mais en vain je suis à cours d'idées.
Le problème est que lorsque je met le script d'affichage de google map et mon script, mon script ne fonctionne pas. C'est soit l'un soit l'autre...
Mon script consiste à cocher qu'une seule checkbox à la fois sur les trois présentes.
Celles-ci affichent les markers présents dans le script de google map.
Si quelqu'un a une idéé pour intégrer mon script à celui de google ?
Merci

Voici mon script et le form :
function GereControle(Controleur, Controle1, Controle2) {
var objControleur = document.getElementById(Controleur);
var objControle1 = document.getElementById(Controle1);
var objControle2 = document.getElementById(Controle2);
  objControle1.disabled=(objControleur.checked==true)?true:false;
  objControle2.disabled=(objControleur.checked==true)?true:false;
}

              <form>
                Maisons : http://www.monsite.fr/images/icons/maison.png" width="15" height="15">

                Terrains : http://www.monsite.fr/images/icons/terrain.png" width="15" height="15">

                Rénovations : http://www.monsite.fr/images/icons/renov.png" width="15" height="15">
              </form>

Voici le script pour google map :
var map = null;
var TousMesMarqueurs = [];
function load (){
var baseIcon = new GIcon();
baseIcon.iconSize=new GSize(15,15);
baseIcon.shadowSize=new GSize(20,22);
baseIcon.iconAnchor=new GPoint(6,20);
baseIcon.infoWindowAnchor=new GPoint(5,1);
var maison = new GIcon(baseIcon, 'http://www.monsite.fr/images/icons/maison.png');
var terrain = new GIcon(baseIcon, 'http://www.monsite.fr/images/icons/terrain.png');
var renov = new GIcon(baseIcon, 'http://www.monsite.fr/images/icons/renov.png');


// Création de la Carte //
var map = new GMap2(document.getElementById("map"));
map.addControl(new GLargeMapControl());
map.addControl(new GMapTypeControl());
map.setCenter(new GLatLng(47.0560, -1.8717), 10);


var ToutesLesBalisesInput = document.getElementsByTagName('input');
if(ToutesLesBalisesInput != null){
   for(var i = 0; i < ToutesLesBalisesInput.length; i++){
    if(ToutesLesBalisesInput[i].type == 'checkbox'){
     ToutesLesBalisesInput[i].onclick=function(){
     EnvoiType(this);
    }
    }
   }
  }


  function EnvoiType(val){
   if(val == null){return;}
  var typeselec=val.value; 
  if(val.checked==true){ <!-- Si la case est cochée ... -->
   GDownloadUrl('donnees.xml', function(data) {
     var xml = GXml.parse(data);
     var markers = xml.documentElement.getElementsByTagName('marker');
     for (var i = 0; i < markers.length; i++) {
      var type = markers[i].getAttribute('type');
     if(type == typeselec){<!-- ... les marqueurs correspondant à la catégorie ... -->
        var point = new GLatLng(parseFloat(markers[i].getAttribute('lat')), parseFloat(markers[i].getAttribute('lng')), 9);
        var photo = markers[i].getAttribute('photo');
        var details = markers[i].getAttribute('details');
        var type = markers[i].getAttribute('type');
        var marker = creerMarker(type, point, i, photo, details);
        map.addOverlay(marker);<!-- ... sont visibles -->
      }
    }
    });
   }
   
   if(val.checked==false){ <!-- Si la case est décochée ... -->
    GDownloadUrl('donnees.xml', function(data) {
     var xml = GXml.parse(data);
     var markers = xml.documentElement.getElementsByTagName('marker');
     for (var i = 0; i < markers.length; i++) {
      var type = markers[i].getAttribute('type');
      if(type == typeselec){ <!-- ... les marqueurs correspondant à la catégorie ... -->
        map.removeOverlay(TousMesMarqueurs[i]);<!-- ... sont masqués -->
      }
     }
    });
   } 
 
  }
  
 function creerMarker(type, point, i, onglet1, onglet2) {
   if(type=='maison'){var icone = maison;}
   if(type=='terrain'){var icone = terrain;}
  if(type=='renov'){var icone = renov;}
   var marker = new GMarker(point,icone);
   TousMesMarqueurs[i]=marker;
      var infoTabs = [
        new GInfoWindowTab("Photo", onglet1),
        new GInfoWindowTab("Détails", onglet2) 
        ];
      GEvent.addListener(marker, "click", function() {
        marker.openInfoWindowTabsHtml(infoTabs);
        });
 return marker;
   
}
 
};

1 réponse

Messages postés
3426
Date d'inscription
lundi 26 décembre 2005
Statut
Membre
Dernière intervention
14 janvier 2011
18
Bonjour,

à la lecture du script,
il existe une collision entre tes onclick sur tes checkbox et google, c'est ici

var ToutesLesBalisesInput = document.getElementsByTagName('input');
if(ToutesLesBalisesInput != null){
  for(var i = 0; i < ToutesLesBalisesInput.length; i++){
    if(ToutesLesBalisesInput[i].type == 'checkbox'){
      ToutesLesBalisesInput[i]. onclick =function(){
        EnvoiType(this);
      }
    }
  }
}

à priori il te faut mettre une ID à ta form et tester dans la function google que l'input type checkbox ne lui appartient pas...


;0)