Codebase list mkgmap / upstream/0.0.0+svn4565 scripts / new_style.py
upstream/0.0.0+svn4565

Tree @upstream/0.0.0+svn4565 (Download .tar.gz)

new_style.py @upstream/0.0.0+svn4565raw · history · blame

#
# File: p.py
# 
# Copyright (C) 2006 Steve Ratcliffe
# 
#  This program is free software; you can redistribute it and/or modify
#  it under the terms of the GNU General Public License version 2 as
#  published by the Free Software Foundation.
# 
#  This program is distributed in the hope that it will be useful,
#  but WITHOUT ANY WARRANTY; without even the implied warranty of
#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
#  GNU General Public License for more details.
# 
# 
# Author: Steve Ratcliffe
# Create date: 31 Dec 2006
#

#
# Create the new style files points, lines and polygons from a map-features file.
#

import sys
import csv

MAP_FEATURES = 'map-features.csv'

if len(sys.argv) > 1:
	MAP_FEATURES = sys.argv[1]

points = []
lines = []
polygons = []

features = {
		'polyline': lines,
		'polygon': polygons,
		'point': points,
	}
file_names = {
		'polyline': 'lines',
		'polygon': 'polygons',
		'point': 'points',
	}

def main():

	# Read the garmin feature name to internal number file
	f = open(MAP_FEATURES)
	r = csv.reader(f, delimiter='|')
	for line in r:
		kind = line[0]
		if kind[0] == '#': continue
		key = line[1] + '=' + line[2]
		value = makeval(line[3], line[4])
		res = int(line[5])

		line = "%s [%s resolution %d]" % (key, value, res)
		ft = features[kind]
		ft.append(line)


	# Write out the files
	for name in features.keys():
		f = open(file_names[name], 'w')
		ft = features[name]
		for line in ft:
			f.write(line)
			f.write("\n")

def makeval(a, b):
	if not b: return a
	return a + b[2:]

if __name__ == '__main__':
	main()