Class: Geospatial::Dimensions

Inherits:
Object
  • Object
show all
Defined in:
lib/geospatial/dimensions.rb

Constant Summary collapse

LATITUDE =
Dimension.new(-90.0, 180.0).freeze
LONGITUDE =
Dimension.new(-180.0, 360.0).freeze

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(dimensions) ⇒ Dimensions

Returns a new instance of Dimensions.



71
72
73
# File 'lib/geospatial/dimensions.rb', line 71

def initialize(dimensions)
	@dimensions = dimensions
end

Instance Attribute Details

#dimensionsObject (readonly)

Returns the value of attribute dimensions.



75
76
77
# File 'lib/geospatial/dimensions.rb', line 75

def dimensions
  @dimensions
end

Class Method Details

.for_earthObject



126
127
128
# File 'lib/geospatial/dimensions.rb', line 126

def self.for_earth
	@for_earth ||= self.new([LONGITUDE, LATITUDE]).freeze
end

.from_ranges(*ranges) ⇒ Object



130
131
132
# File 'lib/geospatial/dimensions.rb', line 130

def self.from_ranges(*ranges)
	self.new ranges.collect{|range| Dimension.new(range.min, range.max - range.min)}
end

Instance Method Details

#*(factor) ⇒ Object



91
92
93
# File 'lib/geospatial/dimensions.rb', line 91

def * factor
	self.class.new(@dimensions.collect{|dimension| dimension * factor})
end

#countObject



87
88
89
# File 'lib/geospatial/dimensions.rb', line 87

def count
	return @dimensions.count
end

#freezeObject



81
82
83
84
85
# File 'lib/geospatial/dimensions.rb', line 81

def freeze
	@dimensions.freeze
	
	super
end

#map(values) ⇒ Object



115
116
117
# File 'lib/geospatial/dimensions.rb', line 115

def map(values)
	@dimensions.zip(values).collect{|d,v| d.map(v)}
end

#maxObject



111
112
113
# File 'lib/geospatial/dimensions.rb', line 111

def max
	@dimensions.collect(&:max)
end

#minObject



107
108
109
# File 'lib/geospatial/dimensions.rb', line 107

def min
	@dimensions.collect(&:min)
end

#originObject



95
96
97
# File 'lib/geospatial/dimensions.rb', line 95

def origin
	@dimensions.collect(&:origin)
end

#scaleObject



103
104
105
# File 'lib/geospatial/dimensions.rb', line 103

def scale
	@dimensions.colect(&:scale)
end

#sizeObject



99
100
101
# File 'lib/geospatial/dimensions.rb', line 99

def size
	@dimensions.collect(&:size)
end

#to_sObject



77
78
79
# File 'lib/geospatial/dimensions.rb', line 77

def to_s
	"[#{@dimensions.join(', ')}]"
end

#unmap(values) ⇒ Object



119
120
121
# File 'lib/geospatial/dimensions.rb', line 119

def unmap(values)
	@dimensions.zip(values).collect{|d,v| d.unmap(v)}
end