2016-09-02 2 views
1

Ich möchte eine Anwendung vom Navigationstyp erstellen, in dem ich eine Linie zeichnen muss, wobei die Start- und Endpunkte in der Datenbank gespeichert sind.Erstellen von Linien mit Google Maps API mit Koordinaten aus der Datenbank Javascript MySQL PHP

Die Zeilen beginnen vom Startpunkt zu einem festen Punkt (im Code angegeben) und enden am Endpunkt.

Hier nehme ich die Daten aus der Datenbank und speichern Sie sie in einer Matrix ($ Standorte). die Verbindung ist richtig und auch die Daten werden in der Matrix gespeichert.

<?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); 
?> 

Dies ist 2 Variablen für JavaScript

var nrows = <?php echo json_encode($nrows,JSON_NUMERIC_CHECK);?>; 
var locMatrix = <?php echo json_encode($locations,JSON_NUMERIC_CHECK);?>; 

ich ein anderes Array DrivePath erstellt haben, zu erstellen, die Koordinaten zu setzen und schaffen Linien hilft.

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])); 
     } 

Hier bin ich mit Blick auf einen Fehler in der Zeile "console.log (locMatrix [i] [0]);" „Undefiniert ist kein Objekt (Bewertung‚locMatrix [i]‘)“ unter Angabe

Der vollständige Code ist hier

https://jsfiddle.net/Prashant_mahajan/u5Lz9jqs/

Hoffe mein Fehler so schnell wie möglich behoben werden.

+1

Was das gerenderte Javascript für die Zeile nicht beginnen 'var locMatrix = ...' aussehen? Ein leeres Array vielleicht? – duncan

Antwort

0

Ihr Problem ist wahrscheinlich das. Javascript-Arrays sind null indiziert, also sagen Sie, Sie haben 5 Zeilen in locMatrix, um sie zu durchlaufen, müssen Sie von locMatrix [0] zu locMatrix [4] gehen

Sie wissen, dass Sie nrows Zeilen haben. Wie auch immer, Sie laufen von 1 bis zu n, wenn Sie wirklich von 0 bis zu nrows-1 loopen müssen.

Es ist wahrscheinlich von der zweiten Zeile bis zur letzten Zeile OK, dann wird eine weitere Iteration in einer zusätzlichen Zeile ausgeführt, eine mehr als in locMatrix.

Versuchen

for(var i=0; i < nrows-1; i++) 

Oder nur

for(var i=0; i < locMatrix.length; i++) 
Verwandte Themen