我想创建一个导航型应用程序,我必须在其中绘制一条直线,其中起点和终点存储在数据库中。
这些线从起点开始,到达一个固定点(在代码中给出),并在终点结束。
在这里,我从数据库中获取数据并将其存储在一个矩阵($locations)中。连接是正确的,数据也存储在矩阵中。
<?php
$result = mysqli_query($bd,"SELECT * FROM ship WHERE id=".$id);
$locations = array();
while($row = mysqli_fetch_array($result)) {
array_push($locations, $row);
}
$nrows = mysqli_num_rows($result);
?>
这将为JavaScript创建两个变量
var nrows = <?php echo json_encode($nrows,JSON_NUMERIC_CHECK);?>;
var locMatrix = <?php echo json_encode($locations,JSON_NUMERIC_CHECK);?>;
我已经创建了另一个数组DrivePath来帮助设置坐标和创建直线。
for(var i=1; i<=nrows; i++)
{
console.log(locMatrix[i][0]);
DrivePath.push(new google.maps.LatLng(locMatrix[i][0], locMatrix[i][1]),
new google.maps.LatLng(17.8674, 66.543),
new google.maps.LatLng(locMatrix[i][2], locMatrix[i][3]));
}
在这里,我在“console.log(LocMatrixi)”这一行遇到了一个错误:“未定义的不是一个对象(计算'locMatrixi')”
完整的代码在这里
https://jsfiddle.net/Prashant_mahajan/u5Lz9jqs/
希望我的错误能尽快修复。
发布于 2016-09-02 17:37:16
您的问题可能是这样的。Javascript数组是零索引的,因此假设您在locMatrix中有5行,要循环遍历它们,您需要从locMatrix转到locMatrix4
你知道你有nrows
行。然而,当您确实需要从0循环到nrows-1时,您正在从1循环到nrows -1。
它可能可以从第二行循环到最后一行,然后尝试在另外一行上进行另一次迭代,比locMatrix多一次。
试一试
for(var i=0; i < nrows-1; i++)
或者只是
for(var i=0; i < locMatrix.length; i++)
https://stackoverflow.com/questions/39288583
复制相似问题