read parse android xml-parsing gpx

parse - Analizando el archivo gpx local en Android



parse xml to object android (4)

Seguí este ejemplo para analizar un archivo GPX local en Android: http://android-coding.blogspot.pt/2013/01/get-latitude-and-longitude-from-gpx-file.html

Todo funciona bien para acceder a "lat" y "long", pero también necesito obtener el valor "ele", pero todas mis tentativas no tuvieron éxito. ¿Alguien puede darme algunos golpes para hacer eso?

¡Gracias por adelantado! Saludos cordiales, NR.


Agregaré mi biblioteca para el análisis de GPX a estas respuestas: https://github.com/ticofab/android-gpx-parser . Proporciona dos formas de analizar su archivo GPX: una vez que obtiene / crea un objeto mParser ( mParser en los ejemplos a continuación), puede analizar directamente su archivo GPX

Gpx parsedGpx = null; try { InputStream in = getAssets().open("test.gpx"); parsedGpx = mParser.parse(in); } catch (IOException | XmlPullParserException e) { e.printStackTrace(); } if (parsedGpx == null) { // error parsing track } else { // do something with the parsed track }

o puede analizar un archivo remoto:

mParser.parse("http://myserver.com/track.gpx", new GpxFetchedAndParsed() { @Override public void onGpxFetchedAndParsed(Gpx gpx) { if (gpx == null) { // error parsing track } else { // do something with the parsed track } } });

Las contribuciones son bienvenidas.



tienes el "Nodo node = nodelist_trkpt.item (i);" en tu primer ciclo Obtenga los elementos secundarios de este nodo y ejecute estos elementos secundarios.

p.ej:

NodeList nList = node.getChildNodes(); for(int j=0; j<nList.getLength(); j++) { Node el = nList.item(j); if(el.getNodeName().equals("ele")) { System.out.println(el.getTextContent()); } }


Actualización: también agregué el elemento "ele" de análisis, por lo que este código podría coincidir con sus requisitos.

Propondré un enfoque diferente: https://gist.github.com/kamituel/6465125 .

En mi enfoque, no creo una ArrayList de todos los puntos de seguimiento (esto se hace en el ejemplo que publicó). Tal lista puede consumir mucha memoria, lo que puede ser un problema en Android.

Incluso he renunciado al uso del análisis de expresiones regulares para evitar asignar demasiados objetos (lo que hace que el recolector de basura se ejecute).

Como resultado, al ejecutar Java con un tamaño de almacenamiento dinámico de 16 Mb, al analizar el archivo GPX con más de 600 puntos, el recolector de basura se ejecutará solo 12 veces. Estoy seguro de que uno podría ir más bajo, pero aún no lo optimicé mucho.

Uso:

GpxParser parser = new GpxParser(new FileInputStream(file)); TrkPt point = null; while ((point = parser.nextTrkPt()) != null) { // point.getLat() // point.getLon() }

Utilicé con éxito este código para analizar alrededor de 100 Mb de archivos GPX en Android. Lo siento, no está en el repositorio regular, no pensaba compartirlo todavía.