Ahoj,
pro zajímavost, tvůj skript jsem při zkoumání LPISu nakonec zavrhl, jelikož
jsem našel tohle:
http://wiki.openstreetmap.org/wiki/Ogr2osm
Stačí doplnit translation funkci (vypůjčeno z pův. skriptu, v příloze) a
veškerou srandu udělá jeden příkaz:
ogr2osm.py PLPIS_233406_KU_KOD_742376.shp -t trn-lpis.py -o ujezd.lpis.osm
Mj. je tím vyřešeno slučování uzlů, multipolygony a nejspíš i další problémy.
Martin
def filterTags(attrs):
if not attrs:
return
tags = {}
tags['source'] = 'lpis'
if 'ID_FB' in attrs:
tags['id_fb'] = attrs['ID_FB'];
if 'VYSKA' in attrs:
tags["ele"] = "%d" % int(float(attrs['VYSKA']))
if 'NKODFB' in attrs:
tags["ref"] = attrs['NKODFB']
kul = -1
if 'KULTURA' in attrs and attrs['KULTURA'] != '':
kul = int(attrs['KULTURA'])
if kul == 2: tags["landuse"] = "farmland"
elif kul == 3: tags["landuse"] = "farmland"; tags["crop"] = "hop"
elif kul == 30: tags["landuse"] = "farmland"; tags["crop"] = "hop"
elif kul == 31: tags["landuse"] = "farmland"; tags["crop"] = "hop"
elif kul == 41: tags["landuse"] = "vineyard"; tags["barrier"] = "fence"
elif kul == 61: tags["landuse"] = "orchard"; tags["barrier"] = "fence"
elif kul == 62: tags["landuse"] = "orchard"
elif kul == 7: tags["landuse"] = "meadow"; tags["meadow"] = "agricultural"
elif kul == 71: tags["landuse"] = "meadow"; tags["meadow"] = "agricultural"
elif kul == 72: tags["landuse"] = "meadow"; tags["meadow"] = "agricultural"
elif kul == 91: tags["landuse"] = "forest";
elif kul == 92: tags["landuse"] = "farm"; tags["crop"] = "vegetables"
elif kul == 97: tags["landuse"] = "reservoir"
elif kul == 98: tags["landuse"] = "scrub"; tags["note"]="rychle rostouci dreviny"
elif kul == 99: tags["landuse"] ="forest"
else: tags["landuse"] ="unknown_farmland_%s" % kul
return tags
_______________________________________________
Talk-cz mailing list
[email protected]
https://lists.openstreetmap.org/listinfo/talk-cz