def output(): l.debug("Outputting XML") # First, set up a few data structures for optimization purposes global geometries, features nodes = [geometry for geometry in geometries if type(geometry) == Point] ways = [geometry for geometry in geometries if type(geometry) == Way] relations = [ geometry for geometry in geometries if type(geometry) == Relation ] featuresmap = {feature.geometry: feature for feature in features} w = XMLWriter(open(options.outputFile, 'w')) w.start("osm", version='0.6', generator='myogr2osm') for node in nodes: w.start("node", version="1", timestamp="2012-01-01T00:00:00.0+11:00", changeset="0", visible="true", id=str(node.id), lat=str(node.y), lon=str(node.x)) if node in featuresmap: for (key, value) in featuresmap[node].tags.items(): w.element("tag", k=key, v=value) w.end("node") for way in ways: w.start("way", version="1", timestamp="2012-01-01T00:00:00.0+11:00", changeset="0", visible="true", id=str(way.id)) for node in way.points: w.element("nd", ref=str(node.id)) if way in featuresmap: for (key, value) in featuresmap[way].tags.items(): w.element("tag", k=key, v=value) w.end("way") for relation in relations: w.start("relation", version="1", timestamp="2012-01-01T00:00:00.0+11:00", changeset="0", visible="true", id=str(relation.id)) for (member, role) in relation.members: w.element("member", type="way", ref=str(member.id), role=role) if relation in featuresmap: for (key, value) in featuresmap[relation].tags.items(): w.element("tag", k=key, v=value) w.end("relation") w.end("osm")
def output(): l.debug("Outputting XML") # First, set up a few data structures for optimization purposes global geometries, features nodes = [geometry for geometry in geometries if type(geometry) == Point] ways = [geometry for geometry in geometries if type(geometry) == Way] relations = [geometry for geometry in geometries if type(geometry) == Relation] featuresmap = {feature.geometry : feature for feature in features} w = XMLWriter(open(options.outputFile, 'w')) w.start("osm", version='0.6', generator='myogr2osm') for node in nodes: w.start("node", version="1", timestamp="2012-01-01T00:00:00.0+11:00", changeset="0", visible="true", id=str(node.id), lat=str(node.y), lon=str(node.x)) if node in featuresmap: for (key, value) in featuresmap[node].tags.items(): w.element("tag", k=key, v=value) w.end("node") for way in ways: w.start("way", version="1", timestamp="2012-01-01T00:00:00.0+11:00", changeset="0", visible="true", id=str(way.id)) for node in way.points: w.element("nd", ref=str(node.id)) if way in featuresmap: for (key, value) in featuresmap[way].tags.items(): w.element("tag", k=key, v=value) w.end("way") for relation in relations: w.start("relation", version="1", timestamp="2012-01-01T00:00:00.0+11:00", changeset="0", visible="true", id=str(relation.id)) for (member, role) in relation.members: w.element("member", type="way", ref=str(member.id), role=role) if relation in featuresmap: for (key, value) in featuresmap[relation].tags.items(): w.element("tag", k=key, v=value) w.end("relation") w.end("osm")
from time import sleep import eyeD3, sys, os, hashlib, time, shutil from SimpleXMLWriter import XMLWriter # import configuration file from cfg import * ### # define the output of the program (either stdout or file) xml = XMLWriter('rss.xml') # head of the file output = xml.start('rss', version='2.0') # channel part of the file xml.start('channel') xml.element('title', title) xml.element('link', url) xml.element('language', 'en-us') xml.element('description', description) xml.element('author', author) xml.element('category', category) xml.start('image') xml.element('url', image) xml.end('image') # channel owner information xml.start('owner') xml.element('name', author) xml.element('email', email) xml.end('owner')
def output(): l.debug("Outputting XML") # First, set up a few data structures for optimization purposes global geometries, features nodes = [geometry for geometry in geometries if type(geometry) == Point] ways = [geometry for geometry in geometries if type(geometry) == Way] relations = [geometry for geometry in geometries if type(geometry) == Relation] featuresmap = {feature.geometry : feature for feature in features} w = XMLWriter(open(options.outputFile, 'w'), 'utf-8') if options.noUploadFalse: w.start("osm", version='0.6', generator='uvmogr2osm') else: w.start("osm", version='0.6', generator='uvmogr2osm', upload='false') w.data("\n") for node in nodes: w.start("node", visible="true", id=str(node.id), lat=str(node.y*10**-options.significantDigits), lon=str(node.x*10**-options.significantDigits)) if node in featuresmap: for (key, value) in featuresmap[node].tags.items(): w.element("tag", k=escape(key), v=escape(value)) w.data("\n") w.end("node") w.data("\n") for way in ways: w.start("way", visible="true", id=str(way.id)) w.data("\n") for node in way.points: w.element("nd", ref=str(node.id)) w.data("\n") if way in featuresmap: for (key, value) in featuresmap[way].tags.items(): w.element("tag", k=escape(key), v=escape(value)) w.data("\n") w.end("way") w.data("\n") for relation in relations: w.start("relation", visible="true", id=str(relation.id)) w.data("\n") for (member, role) in relation.members: w.element("member", type="way", ref=str(member.id), role=escape(role)) w.data("\n") w.element("tag", k='type', v='multipolygon') w.data("\n") if relation in featuresmap: for (key, value) in featuresmap[relation].tags.items(): w.element("tag", k=escape(key), v=escape(value)) w.data("\n") w.end("relation") w.data("\n") w.end("osm")
print print "Generating OSM XML..." print "Generating nodes." #w = XMLWriter(sys.stdout) w = XMLWriter(open(outputFile,'w')) w.start("osm", version='0.6', generator='ogr2osm') # First, the nodes for (nodeID,(x,y)) in nodeCoords.items(): w.start("node", visible="true", id=str(nodeID), lat=str(y), lon=str(x)) for (tagKey,tagValue) in nodeTags[nodeID].items(): if tagValue: w.element("tag", k=tagKey, v=tagValue) w.end("node") if showProgress: sys.stdout.write('.') #print "Generated nodes. On to shared segments." # Now, the segments used by more than one line/area, as untagged ways #for (segmentID, segmentRef) in segmentRefs.items(): #if len(segmentRef) > 1: #print "FIXME: output shared segment" #outputtedSegments[segmentID] = True
print print "Generating OSM XML..." print "Generating nodes." #w = XMLWriter(sys.stdout) w = XMLWriter(open(outputFile, 'w')) w.start("osm", version='0.6', generator='ogr2osm') # First, the nodes for (nodeID, (x, y)) in nodeCoords.items(): w.start("node", visible="true", id=str(nodeID), lat=str(y), lon=str(x)) for (tagKey, tagValue) in nodeTags[nodeID].items(): if tagValue: w.element("tag", k=tagKey, v=tagValue) w.end("node") if showProgress: sys.stdout.write('.') #print "Generated nodes. On to shared segments." # Now, the segments used by more than one line/area, as untagged ways #for (segmentID, segmentRef) in segmentRefs.items(): #if len(segmentRef) > 1: #print "FIXME: output shared segment" #outputtedSegments[segmentID] = True print print "Generated nodes. On to lines."
if showProgress: sys.stdout.write(",") x = geometry.GetX() y = geometry.GetY() nodeID = addNode(x, y) elif geometry.GetDimension() == 1 or geometry.GetDimension() == 2: # linestring geomID = elementIdCounter elementIdCounter = elementIdCounter - 1 way = convertGeometry(geometry) ways[geomID] = way print "Generating OSM XML..." w = XMLWriter(open(outputFile, "w")) w.start("osm", version="0.6", generator="ogr2osm") print "Generating " + str(len(nodes)) + " nodes." for (nodeID, (x, y)) in nodes.items(): w.start("node", visible="true", id=str(nodeID), lat=str(y), lon=str(x)) w.end("node") print "Generating " + str(len(ways)) + " ways." for key in ways.keys(): w.start("way", id=str(key), action="modify", visible="true") for node in ways[key]: w.element("nd", ref=str(node)) w.end("way") print "All done. Enjoy your data!" w.end("osm")
print print "Generating OSM XML..." print "Generating nodes." # w = XMLWriter(sys.stdout) w = XMLWriter(open(options.outputFile, "w")) w.start("osm", version="0.6", generator="ogr2osm") # First, the nodes for (nodeID, (x, y)) in nodeCoords.items(): w.start("node", visible="true", id=str(nodeID), lat=str(y), lon=str(x)) for (tagKey, tagValue) in nodeTags[nodeID].items(): if tagValue: w.element("tag", k=tagKey, v=tagValue) w.end("node") if showProgress: sys.stdout.write(".") # print "Generated nodes. On to shared segments." # Now, the segments used by more than one line/area, as untagged ways # for (segmentID, segmentRef) in segmentRefs.items(): # if len(segmentRef) > 1: # print "FIXME: output shared segment" # outputtedSegments[segmentID] = True