1

I have a problem that I have been trying to solve for two days now and I can't find the information I need to solve it.

What I want to do is take the lat, lon and ele values from a .gpx file and put them into a table.

I made pages to let users upload the gpx files onto the server. I then make a new table called one, two, three etc. the next number in line in my database called 'vluchten'.

The table has fields for lat, lon and ele, all doubles.

Now I need to open any .gpx file that a user might upload and extract the lats, lons and eles into my table.

I have already looked into using the php filesystem functions (fopen, fseek, etc.) but they don't seem to be usefull for my needs. I also tried reading it as an XML which didn't work either (maybe I made mistakes).

Any suggestions on how I might be able to take values from .gpx files and put them in a database table are very welcome! The PHP page will receive the table name that the lat, lon and ele need to go into in a $_POST['name'].

So in short my question is: How do I take lon, lat and ele out of a .gpx and put them in a table using SQL?

hakre
  • 193,403
  • 52
  • 435
  • 836
  • 1
    gpx files are encoded in xml. Have you tried reading these gpx files with `simplexml_load_file`? http://php.net/manual/en/function.simplexml-load-file.php – O. Jones Nov 22 '14 at 16:01
  • Please see this reference question for an introduction how XML can be processed in PHP: [How do you parse and process HTML/XML in PHP?](http://stackoverflow.com/q/3577641/367456) – hakre Nov 22 '14 at 21:03

2 Answers2

7

This little snippet of php code will read every waypoint from a gpx file.

You can write some SQL code to insert a row for each waypoint into your table.

$gpx = simplexml_load_file("test.gpx");

foreach ($gpx->wpt as $pt) {
    $lat = (string) $pt['lat'];
    $lon = (string) $pt['lon'];
    $ele = (string) $pt->ele;
    $name = (string) $pt->name;
}

unset($gpx);

Similar code will extract trk->trkseg->trkpt and rte->rtept data from the xml.

O. Jones
  • 103,626
  • 17
  • 118
  • 172
2

this code is for reading gpx / gps file ##

its simple xml nothing more

 <?php
//open gpx file
$gpx = simplexml_load_file("test.gpx");
foreach ($gpx->trk as $trk) {
    foreach($trk->trkseg as $seg){
        foreach($seg->trkpt as $pt){
            echo "<p> lat- ";
            echo $pt["lat"];
            echo "   lon-";
            echo $pt["lon"];
            echo"<p>";
        }}}
unset($gpx);
?>