- # Find a way given it's ID, and in a single SQL call also grab its nodes and tags
- def to_xml
- doc = OSM::API.new.get_xml_doc
- doc.root << to_xml_node()
- return doc
- end
-
- def to_xml_node(visible_nodes = nil, changeset_cache = {}, user_display_name_cache = {})
- el1 = XML::Node.new 'way'
- el1['id'] = self.id.to_s
- add_metadata_to_xml_node(el1, self, changeset_cache, user_display_name_cache)
-
- # make sure nodes are output in sequence_id order
- ordered_nodes = []
- self.way_nodes.each do |nd|
- if visible_nodes
- # if there is a list of visible nodes then use that to weed out deleted nodes
- if visible_nodes[nd.node_id]
- ordered_nodes[nd.sequence_id] = nd.node_id.to_s
- end
- else
- # otherwise, manually go to the db to check things
- if nd.node and nd.node.visible?
- ordered_nodes[nd.sequence_id] = nd.node_id.to_s
- end
- end