我按照这个例子在Android中解析本地GPX文件:
http://android-coding.blogspot.pt/2013/01/get-latitude-and-longitude-from-gpx-file.html
所有的“lat”和“long”都能正常访问,但我还需要获取“ele”值,但是我的尝试都没有成功。
有人能给我一些提示吗?
提前感谢! 最好的问候, NR。
提前感谢! 最好的问候, NR。
我将为GPX解析添加我的库到这些答案中:https://github.com/ticofab/android-gpx-parser。它提供了两种解析GPX文件的方法:一旦你获得/创建一个GPXParser对象(在下面的示例中为mParser
),你可以直接解析你的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
}
或者您可以解析远程文件:
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
}
}
});
欢迎贡献。
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());
}
}
GpxParser parser = new GpxParser(new FileInputStream(file));
TrkPt point = null;
while ((point = parser.nextTrkPt()) != null) {
// point.getLat()
// point.getLon()
}
我已经成功地在Android上使用这段代码解析了约100 Mb的GPX文件。很抱歉它不在常规存储库中,我还没有计划分享它。
我已经将ghitabot的GPXParser库移植到Android平台。