PHP - Leer gpx con php

 
Vista:
sin imagen de perfil
Val: 5
Ha aumentado su posición en 24 puestos en PHP (en relación al último mes)
Gráfica de PHP

Leer gpx con php

Publicado por Javier (49 intervenciones) el 21/11/2012 20:33:03
Hola.
Si quiero leer de un fichero gpx (xml) un datos que se encuentra:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
<wpt lat="37.383931" lon="-6.170003" >
<ele>140.4</ele>
<time>2012-10-23T17:59:36.000Z</time>
<name>wpt-2012-10-23T17:59:36.000Z</name>
<type>B</type>
<fix>dgps</fix>
</wpt>
 
Lo leo asi:
foreach ($xml->wpt as $wpt) {
echo "$wpt->ele<br>";
echo "</ul>";
}
Pero si quiereo leerlo de aqui :
 
<trk><name>#23084# 2012-10-23T17:52:28.000Z</name><trkseg>
<trkpt lat="37.383557" lon="-6.170081" >
<ele>152.0</ele>
<time>2012-10-23T17:52:28.000Z</time>
<speed>0.1847</speed>
<name>trkpt-2012-10-23T17:52:28.000Z</name>
<type>T</type>
<fix>3d</fix>
</trkpt>
<trkpt lat="37.383534" lon="-6.170023" >
<ele>157.9</ele>
<time>2012-10-23T17:52:33.000Z</time>
<speed>0.2315</speed>
<name>trkpt-2012-10-23T17:52:33.000Z</name>
<type>T</type>
<fix>3d</fix>
</trkpt>
....
<trk>
¿Como leo <ele>... </ele>?
 
Lo intento asi:
 
if($xml) {
echo "<ul>";
foreach ($xml->trk ->trkpt as $trk) {
$ele = $trk->ele;
echo "$ele<br>";
echo "</ul>";
}


Pero no va.

Un ayuda.

Gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 5
Ha aumentado su posición en 24 puestos en PHP (en relación al último mes)
Gráfica de PHP

Leer gpx con php

Publicado por Javier (49 intervenciones) el 21/11/2012 22:09:38
Solucionado.
Supongo que muchos lo sabrian pero aqui lo dejo:


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<?php
$archivo='fichero.gpx';
if(file_exists($archivo)) {
$xml = simplexml_load_file($archivo);
 
if($xml) {
echo "<ul>";
foreach ($xml->trk as $trk) {
	$trks =$trk->trkseg;
  foreach($trks->trkpt as $trkpt){
	// $trkpt=$trks->trkpt;
	$ele = $trkpt->ele;
	echo "$ele<br>";
	echo "</ul>";
	}
}
 
} else {
echo "Sintaxis XML invalida";
}
 
} else {
echo "Error abriendo $archivo";
}
 
?>
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

Leer gpx con php

Publicado por Wilmar Rojas Avendaño (2 intervenciones) el 11/05/2018 19:03:04
Después de mucho buscar, me encontré este post (aunque de 2012) y me sirvió muchísimo.... pero no me funcionó para las coordenadas como tal.... más adelante encontré esta ootra opción y me sirvió mucho más.

Acá la dejo para quien le pueda interesar

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php
	$doc = new DOMDocument();
	$doc->load('vivisol puntos.gpx');
	/* TRACK POINTS */
	$wpts = $doc->getElementsByTagName('wpt');
	foreach($wpts as $wpt)
	{
		$name = $wpt->getElementsByTagName('name')->item(0)->nodeValue;
		$lat  = $wpt->getAttribute('lat');
		$lon  = $wpt->getAttribute('lon');
		$ele  = $wpt->getElementsByTagName('ele')->item(0)->nodeValue;
		$time = $wpt->getElementsByTagName('time')->item(0)->nodeValue;
		$sym = $wpt->getElementsByTagName('sym')->item(0)->nodeValue;
		echo "$name|$lat|$lon|$ele|$time|$sym</br>";
	}
?>
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Leer gpx con php

Publicado por Wilmar Rojas Avendaño (2 intervenciones) el 11/05/2018 19:48:00
Así quedó al final
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
<?php
	$archivo='fichero.gpx';
	if(file_exists($archivo)) {
		$xml = simplexml_load_file($archivo);
		if($xml) {
			$doc = new DOMDocument();
			$doc->load($archivo);
			/* TRACK POINTS */
			$wpts = $doc->getElementsByTagName('wpt');
 
			foreach($wpts as $wpt){
				//*****CAPTURA el nombre*****
				if ($wpt->getElementsByTagName('name')->item(0) ==''){
					$name ='Sin';
				}
				else{
					$name = $wpt->getElementsByTagName('name')->item(0)->nodeValue;
				}
 
				//*****CAPTURA latitud*****
				if ($wpt->getAttribute('lat') ==''){
					$lat ='Sin';
				}
				else{
					$lat  = $wpt->getAttribute('lat');
				}
 
				//*****CAPTURA longitud*****
				if ($wpt->getAttribute('lon') ==''){
					$lon ='Sin';
				}
				else{
					$lon  = $wpt->getAttribute('lon');
				}
 
				//*****CAPTURA elevación*****
				if ($wpt->getElementsByTagName('ele')->item(0) ==''){
					$ele ='Sin';
				}
				else{
					$ele  = $wpt->getElementsByTagName('ele')->item(0)->nodeValue;
				}
 
				//*****CAPTURA fecha hora*****
				if ($wpt->getElementsByTagName('time')->item(0) ==''){
					$time ='Sin';
				}
				else{
					$time = $wpt->getElementsByTagName('time')->item(0)->nodeValue;
				}
 
				//*****CAPTURA SYM*****
				if ($wpt->getElementsByTagName('sym')->item(0) ==''){
					$sym ='Sin';
				}
				else{
					$sym = $wpt->getElementsByTagName('sym')->item(0)->nodeValue;
				}
 
				echo "$name|$lat|$lon|$ele|$time|$sym</br>";
			}
		}
		else {
			echo "Sintaxis XML invalida";
		}
 
	}
	else {
		echo "Error abriendo $archivo";
	}
 
?>
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar