2011-03-04 2 views
3

J'ai un jeu de marqueurs ajouté à une carte au niveau de zoom 15. Les marqueurs lat et lng sont actuellement définis à la sixième décimale.Marqueurs changeant de position de manière incorrecte lors du zoom

Lorsque j'effectue un zoom avant ou arrière, les emplacements des marqueurs se déplacent hors de leur position correcte. Dois-je supprimer et redessiner les marqueurs à chaque niveau de zoom? dois-je augmenter la précision de mes coordonnées? cela me rend fou ...

Page de test: cliquez sur l'icône jaune dans la barre du bas.

Je crée mes marqueurs comme ceci:

function createMarker(data, type) 
{ 
    var posn = new google.maps.LatLng(data.lat,data.lng); 
    var title = data.title; 
    var image,shadow,shape; 
    if (data.typeId === '101') { 
     image = new google.maps.MarkerImage('/api/v1.0/map/images/buildings.png', 
     // This marker is 20 pixels wide by 32 pixels tall. 
     new google.maps.Size(24, 28), 
     // The origin for this image is 0,0. 
     new google.maps.Point(0,0), 
     // The anchor for this image is the base of the flagpole at 0,32. 
     new google.maps.Point(0, 28)); 
    shadow = new google.maps.MarkerImage('/api/v1.0/map/images/shadow-buildings.png', 
     // The shadow image is larger in the horizontal dimension 
     // while the position and offset are the same as for the main image. 
     new google.maps.Size(39, 28), 
     new google.maps.Point(0,0), 
     new google.maps.Point(0, 28)); 

    } 
    var markerOptions = { 
    position: posn, 
    title: title, 
    shadow: shadow, 
    icon: image 
}; 

var marker = new google.maps.Marker(markerOptions); 

    // could add event handler here 

    //add marker to array for latter use 
    if (type === 'building') { 
     buildingMarkers.push(marker); 
    } 
} 

Répondre

1

Vous ne devriez pas avoir à ajouter/supprimer les marqueurs comme les marqueurs sont placés à l'emplacement lat/long. Peut-être que du code pourrait nous aider à comprendre cela.

+0

Assurez-vous que j'ai ajouté un lien vers mon site d'essai dans le corps – h3r2on

+0

en vous donnant le crédit que votre réponse est correcte. Si vous ne dérangez pas le point d'attache de l'icône, il ne bougera pas. – h3r2on

+0

Je ne sais pas s'ils sont vraiment "en mouvement" J'ai testé votre page sur chrome. Et les marqueurs ne bougent pas exactement. Ils restent à la place du correctif, où on leur dit d'être attirés par lat/long endroits. Comme vous effectuez un zoom avant sur une partie différente de la carte, en élargissant la zone visible, les marqueurs doivent conserver leur position par rapport à l'endroit où vous zoomez. Si vous utilisez la molette de votre souris et zoomez sur un marqueur, vous remarquerez que ce marqueur ne bouge pas. Mais si vous zoomez sur une zone différente, c'est parce qu'elle garde son emplacement lat/long défini par votre code. – Sorean

Questions connexes