XML の文字列に変換した後に力技でぶった切ることにした.カシミール3Dの出したやつを gpxpy で処理した後のものならこれで切れるだろう.
cat > gpx_split5MB.py <<'EOS' import gpxpy import sys import os if len(sys.argv) < 2: print('python3 {0} gpx_file'.format(sys.argv[0])) sys.exit(0) fname=sys.argv[1] body,ext = os.path.splitext(fname) def write(ts, head, last, i): with open(body + '.' + str(i) + ext, 'w') as of: of.write(head) for t in ts: of.write('\n') of.write(t) of.write('\n') of.write(last) with open(fname) as f: g = gpxpy.parse(f) xml=g.to_xml(prettyprint=False) trks=xml.split(' ') head=trks[0] trks[-1],last=trks[-1].rsplit('\n',maxsplit=1) trks=trks[1:] i = 0 k = 0 s = 0 ts = [] while k < len(trks): if s + len(head) + len(last) >= 4800000: write(ts,head,last,i) s = 0 i += 1 ts = [] s += len(trks[k]) ts += [trks[k]] k += 1 write(ts,head,last,i) EOS
もうちょい美しいコードを書きたいところだけど動きゃいいや.
とりあえずこれで九州内の GPS 軌跡を google maps に乗せきれた.めでたし.
- Newer: ことはじめ