2009-09-27 6 views
2

J'utilise GoogleMaps et j'ai 2 marqueurs ou plus et ils sont déplaçables. Je veux accrocher 2 marqueurs s'ils sont proches et les fusionner en 1. est-ce possible? Est-ce que quelqu'un peut me donner des indications ... comment je peux réaliser cela?Aligner sur le marqueur le plus proche

+0

Y at-il quelque chose que vous étiez après cette question précise que j'ai manqué? – RedBlueThing

+0

Est-ce que c'est quelque chose que j'ai dit? ;) http://meta.stackexchange.com/questions/234 – RedBlueThing

+0

bien .. quelqu'un d'autre l'a fait pour moi .. mais il a utilisé votre code .. donc: merci :) – n00ki3

Répondre

2

Vous devez gérer le drag event sur l'objet GMarker. L'astuce consiste à savoir ce que vous faites lorsque vous constatez que vous êtes suffisamment près d'un autre marqueur pour les assembler. I played around a little avec cela et pensé peut-être cacher le marqueur actuellement traîné pourrait être un bon moyen d'aller.

GEvent.addListener(marker, "drag", function(point) { 

    // iterate over your points and for each otherPoint... 
    if (near (point, otherPoint)) 
    { 
     // hide this marker 
     marker.hide(); 

     // move nearby marker to indicate merge? 

     // then delete the dragged marker on the dragend (if it was merged) 
    } 
} 

Pas une solution entièrement élégante, mais cela pourrait convenir à vos besoins.

Modifier: je me suis demandé si vous recherchez le code pour vérifier les points à proximité, donc je mis à jour mon exemple à faire:

function near (point1, point2) 
{ 
    sw = new GLatLng(point2.lat() - 0.005, point2.lng() - 0.005); 
    ne = new GLatLng(point2.lat() + 0.005, point2.lng() + 0.005); 
    var bounds = new GLatLngBounds(sw, ne); 
    if (bounds.contains (point1)) 
     return true; 

    return false; 
} 
Questions connexes