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