Skip to content

Instantly share code, notes, and snippets.

@nus
Created August 6, 2010 17:26
Show Gist options
  • Save nus/511644 to your computer and use it in GitHub Desktop.
Save nus/511644 to your computer and use it in GitHub Desktop.
# -*- coding:sjis -*-
import sys
argv = sys.argv
argc = len(argv)
if argc < 2:
print("GPSログファイルを指定してください")
exit()
kml_file_name = 'gps.kml'
kml_head = '''<?xml version="1.0" encoding="Shift_JIS"?>
<kml xmlns="http://www.opengis.net/kml/2.2">
<Document>
<name>LineString.kml</name>
<open>1</open>
<Placemark>
<name>extruded</name>
<LineString>
<extrude>1</extrude>
<tessellate>1</tessellate>
<altitudeMode>relativeToGround</altitudeMode>
<coordinates>
'''
kml_tail = '''
</coordinates>
</LineString>
</Placemark>
</Document>
</kml>
'''
index_latitude = 3 # 緯度
index_logitude = 5 # 経度
index_hdop = 9 # HDOP(水平誤差精度)
def ddmm2degrees(pcx_val):
deg = int(pcx_val / 100.0)
minutes = (((pcx_val / 100.0) - deg) * 100.0) / 60.0
return (deg + minutes)
with open(argv[1]) as gps_log:
with open(kml_file_name, 'w+') as kml:
kml.write(kml_head)
for line in gps_log:
data = line.split(',')
latitude = ddmm2degrees(float(data[index_latitude]))
logitude = ddmm2degrees(float(data[index_logitude]))
hdop = float(data[index_hdop])
height = hdop
kml.write(str(logitude) +','
+ str(latitude) + ','
+ str(height) + '\n')
kml.write(kml_tail)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment