Ne pouvez pas obtenir de google maps computeDistanceBetween() pour retourner une valeur
La computeDistanceBetween()
sur google maps géométrie de la bibliothèque ne retourne pas de valeur pour moi. À l'aide de la alert
fonction il est dit que la distance est "[object, Object]". Quelqu'un peut-il voir où je vais mal? ici sont les parties importantes du code en question:
<script type="text/javascript" src="http://maps.googleapis.com/maps/api/js?sensor=false&libraries=geometry"></script>
<script type="text/javascript" >
var myArray1= [['location1', lat1, lng1], ['location2', lat2, lng2], ...];
var myArray2= [['locationA', latA, lngA], ['locationB', latB, lngB], ...];
var arrays = [myArray1, myArray2];
function codeStart() {
var orig;
var startAddress = document.getElementById("start").value;
geocoder.geocode( { 'address': startAddress}, function(results, status) {
if (status == google.maps.GeocoderStatus.OK) {
var i = 0;
var input = results[0].geometry.location;
while (i < arrays.length) {
orig = closest(input, arrays[i]);
}
}
});
}
function closest(latlng, array){
var distance;
var c = 0;
while (c < array.length){
var location = array[c];
var locationlatlng = new google.maps.LatLng(location[1],location[2]);
distance = new google.maps.geometry.spherical.computeDistanceBetween(latlng, locationlatlng);
alert(distance); //popup box says "[object, Object]"
c++;
}
}
</script>
OriginalL'auteur slapee | 2011-07-25
Vous devez vous connecter pour publier un commentaire.
computeDistanceBetween
est une méthode statique. Donc cette ligne:devrait plutôt être ceci:
Par ailleurs, quand
alert()
vous dit que quelque chose est un objet, c'est un bon moment pour passer àconsole.dir()
au lieu dealert()
de sorte que vous pouvez (au moins dans certains navigateurs) regarde le contenu de l'objet dans la console/outils de dev. Si vous ne savez pas beaucoup au sujet de votre console JavaScript, check it out. Il vous permettra d'économiser des tonnes de temps.OriginalL'auteur Trott
Pour une raison quelconque vous avez utilisé la syntaxe pour créer un nouvel objet. C'est pourquoi, lorsque vous
alert(distance)
, vous voyez quedistance
est un objet.computeDistanceBetween
n'est qu'une fonction:OriginalL'auteur Lightness Races in Orbit