Class: Mongoid::Geospatial::GeometryField
- Inherits:
-
Array
- Object
- Array
- Mongoid::Geospatial::GeometryField
show all
- Defined in:
- lib/mongoid/geospatial/wrappers/rgeo.rb,
lib/mongoid/geospatial/fields/geometry_field.rb
Overview
Main Geometry Array Holds Lines/Polygons.…
Class Method Summary
collapse
Instance Method Summary
collapse
Class Method Details
.demongoize(o) ⇒ Object
35
36
37
|
# File 'lib/mongoid/geospatial/fields/geometry_field.rb', line 35
def demongoize(o)
new(o)
end
|
Instance Method Details
#bounding_box ⇒ Object
Also known as:
bbox
6
7
8
9
10
11
12
13
14
15
16
|
# File 'lib/mongoid/geospatial/fields/geometry_field.rb', line 6
def bounding_box
max_x, min_x = -Float::MAX, Float::MAX
max_y, min_y = -Float::MAX, Float::MAX
each do |point|
max_y = point[1] if point[1] > max_y
min_y = point[1] if point[1] < min_y
max_x = point[0] if point[0] > max_x
min_x = point[0] if point[0] < min_x
end
[[min_x, min_y], [max_x, max_y]]
end
|
#center_point ⇒ Object
Also known as:
center
19
20
21
22
|
# File 'lib/mongoid/geospatial/fields/geometry_field.rb', line 19
def center_point
min, max = *bbox
[(min[0] + max[0]) / 2.0, (min[1] + max[1]) / 2.0]
end
|
#radius(r = 1) ⇒ Object
25
26
27
|
# File 'lib/mongoid/geospatial/fields/geometry_field.rb', line 25
def radius(r = 1)
[center, r]
end
|
#radius_sphere(r = 1, unit = :km) ⇒ Object
29
30
31
|
# File 'lib/mongoid/geospatial/fields/geometry_field.rb', line 29
def radius_sphere(r = 1, unit = :km)
radius r.to_f / Mongoid::Geospatial.earth_radius[unit]
end
|