2010-11-15 4 views
0

Je suis en train de migrer notre application Map de V2 vers V3 (3.2). J'avais une boucle qui lisait LatLng et les plaçait dans un tableau pour l'afficher sous forme de polyligne sur la carte. Ensuite, je règle la longueur de mon tableau à 0 et ensuite je le remplis à nouveau dans la boucle avec d'autres LatLng pour afficher une autre polyligne ... et ainsi de suite (plusieurs fois).Google Maps API v3: Ajouter des polylignes dans une boucle?

Cela fonctionnait correctement dans V2, mais pas dans V3. Depuis mon code est complexe, j'ai essayé d'écrire le code plus simple possible de démontrer mon problème:

function setPolyline(points) { 
    var polyline = new google.maps.Polyline({ 
     path: points, 
     strokeColor: '#FF0000', 
     strokeOpacity: 0.5, 
     strokeWeight: 2 
    }); 
    polyline.setMap(map); 
} 

var mapDiv = document.getElementById('map'); 
var mapCenter = new google.maps.LatLng(0,0); 
var mapOptions = { 
    zoom: 2, 
    center: mapCenter, 
    backgroundColor: '#E1E1E1', 
    mapTypeId: google.maps.MapTypeId.ROADMAP 
} 
map = new google.maps.Map(mapDiv, mapOptions); 

var points=[]; 
points[0]=new google.maps.LatLng(-35, 71); 
points[1]=new google.maps.LatLng(-36, 75); 
points[2]=new google.maps.LatLng(-37, 91); 
setPolyline(points); 

points.length=0; 
points[0]=new google.maps.LatLng(-31, 71); 
points[1]=new google.maps.LatLng(-32, 75); 
setPolyline(points); 

Ce qui se passe est que seule la deuxième polyligne est montré (et non le premier). Pour que cela fonctionne, je dois soit utiliser un nom de variable différent (points1, points2, points3, ...) que je ne peux pas utiliser car mon code est normalement dans une boucle ou re-déclarer ma variable à chaque fois dans le boucle au lieu d'avant (var points = [] avant chaque polyligne et supprime les points.length = 0 ligne). Peut-être qu'il me manque quelque chose à propos de JavaScript, mais je déclare d'habitude ma variable en dehors de la boucle (avant) une fois et je l'utilise dans la boucle.

Qu'est-ce que je fais mal? Quelqu'un peut-il aider?

Voici une carte simple je l'ai fait pour montrer mon problème:
http://www.canamgroup.ws/GM.nsf/Map?OpenPage
(Ce n'est pas dans une boucle, mais la question est la même Seule la dernière Polyline est affiché si je ne pas utiliser un nom de variable différente. pour mon tableau ou si je ne le re-déclare pas à chaque fois)

Merci!

Répondre

Questions connexes