0

我有一个问题,也许有人可以帮助我。这是我的代码:当我试图计算距离时,我可以将我的函数用于我给它的普通变量: document.write(getDistance(45,35,41,35)); 但是当我从我的矩阵调用时不起作用你知道有什么问题吗? document.write(getDistance(parseFloat($m.rows[0][3]),parseFloat($m.rows[1][3]),parseFloat($m.rows[0][4]),parseFloat($m.rows[1][4])));

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>
4

1 回答 1

2

您正在访问矩阵中的无效元素:

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

您的矩阵是 4x4,但您正在访问第二行中的第五个值。

于 2012-08-11T06:45:02.867 回答