class ADIWG::Mdtranslator::Writers::Iso19115_1::MD_Georectified

Public Class Methods

new(xml, hResponseObj) click to toggle source
# File lib/adiwg/mdtranslator/writers/iso19115_1/classes/class_georectified.rb, line 18
def initialize(xml, hResponseObj)
   @xml = xml
   @hResponseObj = hResponseObj
   @NameSpace = ADIWG::Mdtranslator::Writers::Iso19115_1
end

Public Instance Methods

writeXML(hGeoRec, inContext = nil) click to toggle source
# File lib/adiwg/mdtranslator/writers/iso19115_1/classes/class_georectified.rb, line 24
def writeXML(hGeoRec, inContext = nil)

   # classes used
   gridClass = Grid.new(@xml, @hResponseObj)
   pointClass = Point.new(@xml, @hResponseObj)

   outContext = 'georectified representation'
   outContext = inContext + ' georectified representation' unless inContext.nil?

   @xml.tag!('msr:MD_Georectified') do

      # georectified - add grid info
      hGrid = hGeoRec[:gridRepresentation]
      gridClass.writeXML(hGrid, outContext)

      # georectified - checkpoint availability
      @xml.tag!('msr:checkPointAvailability') do
         @xml.tag!('gco:Boolean', hGeoRec[:checkPointAvailable])
      end

      # georectified - checkpoint description
      unless hGeoRec[:checkPointDescription].nil?
         @xml.tag!('msr:checkPointDescription') do
            @xml.tag!('gco:CharacterString', hGeoRec[:checkPointDescription])
         end
      end
      if hGeoRec[:checkPointDescription].nil? && @hResponseObj[:writerShowTags]
         @xml.tag!('msr:checkPointDescription')
      end

      # georectified - corner points (2 or 4 required)
      aCoords = hGeoRec[:cornerPoints]
      aCoords.each do |aPoint|
         hPoint = {}
         hPoint[:type] = 'Point'
         hPoint[:coordinates] = aPoint
         @xml.tag!('msr:cornerPoints') do
            pointClass.writeXML(hPoint, {}, nil)
         end
      end
      if aCoords.empty?
         @NameSpace.issueWarning(170, 'msr:cornerPoints', 'spatial representation')
      end
      unless (aCoords.length == 2 || aCoords.length == 4)
         @NameSpace.issueWarning(172, 'msr:cornerPoints', 'spatial representation')
      end

      # georectified - center point
      aCoords = hGeoRec[:centerPoint]
      unless aCoords.empty?
         hPoint = {}
         hPoint[:type] = 'Point'
         hPoint[:coordinates] = aCoords
         @xml.tag!('msr:centrePoint') do
            pointClass.writeXML(hPoint, {}, nil)
         end
      end
      if aCoords.empty? && @hResponseObj[:writerShowTags]
         @xml.tag!('msr:centrePoint')
      end

      # georectified - point in pixel (required)
      if hGeoRec[:pointInPixel].nil?
         @NameSpace.issueWarning(171, 'msr:pointInPixel', 'spatial representation')
      else
         @xml.tag!('msr:pointInPixel') do
            @xml.tag!('msr:MD_PixelOrientationCode', hGeoRec[:pointInPixel])
         end
      end

      # georectified - transformation dimension description
      unless hGeoRec[:transformationDimensionDescription].nil?
         @xml.tag!('msr:transformationDimensionDescription') do
            @xml.tag!('gco:CharacterString', hGeoRec[:transformationDimensionDescription])
         end
      end
      if hGeoRec[:transformationDimensionDescription].nil? && @hResponseObj[:writerShowTags]
         @xml.tag!('msr:transformationDimensionDescription')
      end

      # georectified - transformation dimension mapping
      unless hGeoRec[:transformationDimensionMapping].nil?
         @xml.tag!('msr:transformationDimensionMapping') do
            @xml.tag!('gco:CharacterString', hGeoRec[:transformationDimensionMapping])
         end
      end
      if hGeoRec[:transformationDimensionMapping].nil? && @hResponseObj[:writerShowTags]
         @xml.tag!('msr:transformationDimensionMapping')
      end

   end # msr:MD_Georectified tag
end