While I could get more or less complete GPS coordinates for Czech villages, I had little luck finding the same for Slovakia. In the end I downloaded OpenStreetMap data for Slovakia, cloned imposm.parser, and wrote a simple script to get comma separated values:
hajma@debian:~/bin/osm$ cat extract-towns.py
from imposm.parser import OSMParser
import codecs
import locale
import sys
# simple class that handles the parsed OSM data.
class HighwayCounter(object):
def coords_callback(tags, coords):
for x in coords:
if 'place' in x[1].keys():
if x[1]['place'] == 'village':
if 'is_in' in x[1].keys():
print("\"%s, %s\", %s, %s" % (x[1]['name'], x[1]['is_in'], x[2][0], x[2][1]))
else:
print("\"%s, Slovensko\", %s, %s" % (x[1]['name'], x[2][0], x[2][1]))
sys.stdout = codecs.getwriter(locale.getpreferredencoding())(sys.stdout)
# instantiate counter and parser and start parsing
counter = HighwayCounter()
p = OSMParser(concurrency=1, nodes_callback=counter.coords_callback)
p.parse('slovakia-latest.osm')
#learningpython
No comments:
Post a Comment