2010-07-03 4 views
2

J'ai une carte avec une centaine de points de localisation (marqueurs). Qui sont regroupés avec ClusterMarker http://googlemapsapi.martinpearman.co.uk/clustermarker Et puis il y a un marqueur "principal", qui est draggable. Si l'emplacement du repère principal se chevauche avec un autre marqueur, il devient alors non modifiable. Ou en d'autres termes: le clic prend une action sur le marqueur qui se trouve derrière le marqueur principal. Bizarre, parce que je mets zIndexProcess lors de la création du marqueur principal, ce qui le place au premier plan des autres (par défaut ce n'est pas comme ça). Donc .. Je ne sais pas quel est le problème et comment demander mais je voudrais essayer comme ceci: Comment obtenir la zone cliquable à l'avant si je l'ai déjà apporté à l'icône du marqueur principal avant? (au moins, il est visible par-dessus les autres)Google maps: Impossible de cliquer sur un marqueur qui se trouve au-dessus d'un autre

P.S. J'ai GPolygon dessiné sur la base du marqueur principal (rayon, un cercle) et ce cercle est tiré derrière tous les marqueurs. Je ne sais pas si cela est pertinent. Oh, et je ne peux pas mettre ce polygone à l'avant (semble que zIndexProcess ne fonctionne pas sur cela)

+1

Pouvez-vous créer un exemple spécifique du problème et le mettre sur une URL quelque part? – paullb

Répondre

0

J'ai eu une situation similaire et ce que vous pouvez faire est de passer l'événement à travers un autre objet. Dans mon exemple ici si la condition est remplie alors je passe l'événement (en le déclenchant) sur la carte elle-même. Vous pouvez faire une vérification similaire pour voir si le point d'événement est à l'intérieur d'un polygone visible (je ne mettrai pas ce code ici car il devrait être relativement facilement réalisable) et passer l'événement click sur le polygone.

Voici le code (légèrement modifié) que j'utilise:

google.maps.event.addListener(this.intLineObj ,"click", function(latlng) { 
    if (<condition>) 
    { 
     //pass the event down to the map 
     google.maps.event.trigger(map, "click", latlng); 
    } else { 
     //do stuff 
    } 
}); 

J'espère que cela aide.

Questions connexes