Compatibilité de script

c0v3r Messages postés 2 Date d'inscription mardi 9 novembre 2004 Statut Membre Dernière intervention 6 juillet 2008 - 10 déc. 2007 à 17:09
PetoleTeam Messages postés 3426 Date d'inscription lundi 26 décembre 2005 Statut Membre Dernière intervention 14 janvier 2011 - 13 déc. 2007 à 20:50
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

PetoleTeam Messages postés 3426 Date d'inscription lundi 26 décembre 2005 Statut Membre Dernière intervention 14 janvier 2011 17
13 déc. 2007 à 20:50
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)
0
Rejoignez-nous