Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Übertragen Sie die Koordinaten von Google Maps in die MySQL-Datenbank

Alles klar, hier ist die Datenbanklösung für Sie:

Tabellenpfade speichern die Pfade, die Sie haben, aus Ihrem Array.

CREATE TABLE `gmap`.`paths` (
  `pID` INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
  `pName` VARCHAR(75) NOT NULL,
  `pStartLat` VARCHAR(25) NOT NULL,
  `pStartLng` VARCHAR(25) NOT NULL,
  `pAverageSpeed` FLOAT NOT NULL,
  PRIMARY KEY (`pID`)
)
ENGINE = MyISAM;

Tabellenpfade speichern Ihren Benutzer-/Pfadnamen (was auch immer Sie wollen) im pName-Feld, Ausgangspunkt in den pStartLat/pStartLng-Feldern, pAverageSpeed ​​ist natürlich die Durchschnittsgeschwindigkeit (weiß nicht, ob Sie es wollen, nur für den Fall) und pID ist die Kennung die Sie mit einer anderen Tabelle verwenden werden:

CREATE TABLE `gmap`.`coords` (
  `cID` INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
  `cLat` VARCHAR(25) NOT NULL,
  `cLng` VARCHAR(25) NOT NULL,
  `cSpeed` FLOAT NOT NULL,
  `cPath` INTEGER UNSIGNED NOT NULL,
  PRIMARY KEY (`cID`)
)
ENGINE = MyISAM;

In dieser Tabelle können Sie Koordinaten speichern - mit Geschwindigkeit zu jedem.

Angenommen, Sie möchten den Pfad „TestOne“ anzeigen.

// Connect to the database - I assume you can do that
// and retrieve data

SELECT * FROM paths WHERE pName = "TestOne"

Jetzt haben Sie ID, Name, Startpunktkoordinaten und Durchschnittsgeschwindigkeit in der Tabelle (mysql_fetch_assoc wäre großartig dafür).

Dann können Sie mit der ID die restlichen Koordinaten abrufen:

SELECT * FROM coords WHERE cPath = ID

Und jetzt, mit e. g. While-Schleife können Sie alle Koordinaten in ein Array abrufen.

Natürlich müssen Sie diese Daten zuerst mit einer INSERT INTO-Konstruktion oder ähnlichem speichern :-)