2011-06-01 3 views
0

J'ai crée un site embarqué Google mapusing api V3 qui montre nos 4 bureaux, vous pouvez alors taper votre code postal et vérifier la distance entre vous et un bureau, cela fonctionne!Google Maps API V3 - Javascript Issue

Je veux maintenant créer une recherche radiale, j'ai trouvé comment le faire en ligne, ce qui est génial et je suis sur le dernier obstacle et c'est là que j'ai besoin de votre aide si possible.

Je donne les résultats suivants:

 geocoder = new google.maps.Geocoder(); // creating a new geocode object 

    // getting the two address values 
    address1 = document.getElementById("addresses1").value; 
    distance1 = document.getElementById("distance").value; 

    // finding out the coordinates 
    if (geocoder) 
    { 
     geocoder.geocode({ 'address': address1}, function(results, status) 
     { 
      if (status == google.maps.GeocoderStatus.OK) 
      { 
       //location of first address (latitude + longitude) 
       location1 = results[0].geometry.location; 

       // Location Marker 
       var marker = new google.maps.Marker({ 
        map: map, 
        position: location1, 
        title: 'Random text' 
       }); 
       // Add circle overlay and bind to marker 
       var circle = new google.maps.Circle({ 
        map: map, 
        radius: distance1, 
        strokeWeight: 0, 
        fillColor: '#AA0000' 
       }); 
       circle.bindTo('center', marker, 'position'); 


      } else 
      { 
       alert("Geocode was not successful for the following reason: " + status); 
      } 
     }); 
    } 

J'ai réussi à obtenir tout ce travail, sauf pour $distance1. Ce qui devrait arriver est, l'utilisateur sélectionne la distance d'un formulaire: disons 10 miles (mis en mètres pour Google Maps) quand ils frappent soumettre, un cercle est dessiné avec un rayon de 10 miles. Lorsque le code est affiché, le point est dessiné mais le cercle n'apparaît pas.

Si je remplace distance1 = document.getElementById("distance").value; par distance1 = 16999; par exemple, alors un cercle apparaît et cela fonctionne parfaitement.

Pour moi, cela doit signifier que quelque chose ne va pas avec le contenu de distance1 lorsqu'il est extrait du formulaire. J'ai fait un test NaN juste pour être sûr et il rapporte que le contenu est un nombre.

Ma question est (d'une manière très longue et sinueuse - désolé à ce sujet) avez-vous une idée comment obtenir distance1 pour avoir une valeur à partir du formulaire.

// Add circle overlay and bind to marker var circle = new google.maps.Circle({ map: map, radius: distance1, strokeWeight: 0, fillColor: '#AA0000' });

La partie en question est radius: distance1

+1

j'imagine c'est parce que le rayon attend un certain nombre, mais Distance1 est une chaîne . Avez-vous essayé distance1 = parseInt (document.getElementById ("distance"). Value); – Jasoon

Répondre

1

pourrait aider à vous assurer qu'il est un numéro, pas une chaîne.

distance1 = parseFloat(document.getElementById("distance").value); 

(parseInt marcherait probablement bien aussi, car il est en mètres et mètres fractionnaires ne fera pas beaucoup de différence)