X-Git-Url: https://git.openstreetmap.org/rails.git/blobdiff_plain/9189093997610a8f289037d37b683c9fed060ae1..4434bac3b484006d579b9229a5f69b182644eae7:/app/models/way.rb diff --git a/app/models/way.rb b/app/models/way.rb index 55a578acd..7dffcfef1 100644 --- a/app/models/way.rb +++ b/app/models/way.rb @@ -45,15 +45,8 @@ class Way < ActiveRecord::Base end def to_xml - doc = XML::Document.new - doc.encoding = 'UTF-8' - root = XML::Node.new 'osm' - root['version'] = '0.4' - root['generator'] = 'OpenStreetMap server' - - doc.root = root - - root << to_xml_node() + doc = OSM::API.new.get_xml_doc + doc.root << to_xml_node() return doc end @@ -62,12 +55,17 @@ class Way < ActiveRecord::Base el1['id'] = self.id.to_s el1['visible'] = self.visible.to_s el1['timestamp'] = self.timestamp.xmlschema - - self.way_segments.each do |seg| # FIXME need to make sure they come back in the right order - e = XML::Node.new 'seg' - e['id'] = seg.segment_id.to_s - el1 << e - end + el1['user'] = self.user.display_name if self.user.data_public? + # make sure segments are output in sequence_id order + ordered_segments = [] + self.way_segments.each do |seg| + ordered_segments[seg.sequence_id] = seg.segment_id.to_s + end + ordered_segments.each do |seg_id| + e = XML::Node.new 'seg' + e['id'] = seg_id + el1 << e + end self.way_tags.each do |tag| e = XML::Node.new 'tag'