class NSWTopo::GeoJSON::Polygon

def self.[](coordinates, properties = nil, &block)

def self.[](coordinates, properties = nil, &block)
  new(coordinates, properties) do
    @coordinates.each.with_index do |coordinates, index|
      LineString[coordinates] do |ring|
        ring.coordinates << ring.first unless ring.closed?
        ring.coordinates.reverse! if index.zero? ^ ring.exterior?
      end
    end
    block.call self if block_given?
  end
end