2012-08-11 6 views
0

J'ai un problème peut-être que quelqu'un peut m'aider. Ceci est mon code: quand j'essaie de calculer la distance, je peux utiliser ma fonction pour la variable normale que je lui ai donnée: document.write(getDistance(45,35,41,35)); mais quand j'ai appelé depuis ma matrice, ne fonctionne pas savez-vous quel est le problème? document.write(getDistance(parseFloat($m.rows[0][3]),parseFloat($m.rows[1][3]),parseFloat($m.rows[0][4]),parseFloat($m.rows[1][4])));Javascript Matrice et calcul de distance

TNX

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"> 
<html> 
<head> 
</head> 
<script type="text/javascript"> 
function Matrix() { 
    this.rows = new Array(); 
} 
var $m = new Matrix(); 
$m.rows[0] = new Array(1, 10, 45,41); 
$m.rows[1] = new Array(2, 5, 35,35); 
$m.rows[2] = new Array(3, 8, 41,40); 


alert($m.rows[1][2]); 

//Calculate the shortest distance based on lat and long 
function getDistance(lat1, lat2, lon1, lon2){ 
    var R = 6371; //KM 
    var d = Math.acos(Math.sin(lat1) * Math.sin(lat2) + 
      Math.cos(lat1) * Math.cos(lat2) * Math.cos(lon2 - lon1)) * R 
     return d  
}; 

document.write(getDistance(parseFloat($m.rows[0][3]),parseFloat($m.rows[1][3]),parseFloat($m.rows[0][4]),parseFloat($m.rows[1][4]))); 
document.write(getDistance(45,35,41,35)); 




    </SCRIPT> 

</BODY> 
</HTML> 

Répondre

2

Vous accédez à un élément non valide dans votre matrice:

parseFloat($m.rows[1][4]) 

Votre matrice est un 4x4, mais vous accédez à la cinquième valeur dans la deuxième rangée.