WHAT IS GPX?
GPX (the GPS Exchange Format) is a light-weight XML data format for the interchange of GPS data (waypoints, routes, and tracks) between applications and Web services on the Internet. 即,一种用于存储坐标数据的轻量级 XML 文件格式,它可以储存在一条路上的路点,轨迹,路线,且易于处理和转换到其他格式 GPX (the GPS Exchange Format) 路点、轨迹、路线3者之间的关系如下图所示:
Demo
<gpx version ="1.0" creator ="..." xmlns:xsi ="http://www.w3.org/2001/XMLSchema-instance" xmlns ="http://www.topografix.com/GPX/1/0" xsi:schemaLocation ="http://www.topografix.com/GPX/1/0 http://www.topografix.com/GPX/1/0/gpx.xsd" >
<name > kngines's demo</name >
<desc > gpx parser example</desc >
<author > kngines</author >
<wpt lat ="12.3" lon ="45.6" >
<ele > 75.1</ele >
<magvar > 1.1</magvar >
<name > example one</name >
</wpt >
<wpt lat ="13.4" lon ="46.7" >
<ele > 35.1</ele >
<magvar > 1.1</magvar >
<name > example two</name >
</wpt >
<rte >
<rtept lat ="45.2787641494" lon ="13.726695478" >
<name > #001</name > </rtept >
<rtept lat ="45.2785961743" lon ="13.7286695838" >
<name > #002</name > </rtept >
<rtept lat ="45.2786546825" lon ="13.7290772796" >
<name > #003</name > </rtept >
</rte >
<trk >
<trkseg >
<trkpt lat ="10.1" lon ="-20.2" >
<ele > 11.1</ele >
<time > 2013-01-01T12:00:04</time >
<geoidheight > 3</geoidheight >
</trkpt >
</trkseg >
<trkseg >
<trkpt lat ="12.1" lon ="-22.2" >
<ele > 12.2</ele >
<time > 2013-01-01T12:00:04</time >
<geoidheight > 13</geoidheight >
</trkpt >
</trkseg >
</trk >
</gpx >
import gpxpy.parser as parser
gpx_file = open( './gpx1.3.2_demo.gpx' , 'r' )
gpx_parser = parser.GPXParser( gpx_file )
gpx = gpx_parser.parse()
gpx_file.close()
print ('======================' )
print (gpx.name)
print (gpx.description)
print (gpx.author_name)
print ('======================' )
for track in gpx.tracks:
for segment in track.segments:
for point in segment.points:
print 'Point at ({0},{1}) -> {2},{3}' .format( point.latitude, point.longitude, point.elevation, point.geoid_height)
for waypoint in gpx.waypoints:
print 'waypoint {0} -> ({1},{2},{3})' .format( waypoint.name, waypoint.latitude, waypoint.longitude, waypoint.elevation)
for route in gpx.routes:
for point in route.points:
print 'Point at ({0},{1}) -> {2}' .format( point.latitude, point.longitude, point.name )
print 'GPX:' , gpx.to_xml()
效果图
参考/引用