Class: CacheableKdtree::LatitudeLongitudeRegion
- Inherits:
-
Object
- Object
- CacheableKdtree::LatitudeLongitudeRegion
- Defined in:
- lib/cacheable_kdtree/latitude_longitude_region.rb
Instance Attribute Summary collapse
-
#max_latitude ⇒ Object
Returns the value of attribute max_latitude.
-
#max_longitude ⇒ Object
Returns the value of attribute max_longitude.
-
#min_latitude ⇒ Object
Returns the value of attribute min_latitude.
-
#min_longitude ⇒ Object
Returns the value of attribute min_longitude.
Class Method Summary collapse
Instance Method Summary collapse
-
#initialize(lat1, long1, lat2, long2) ⇒ LatitudeLongitudeRegion
constructor
A new instance of LatitudeLongitudeRegion.
- #merge_point(lat, long) ⇒ Object
- #merge_region(region) ⇒ Object
- #point_in_region?(latitude, longitude) ⇒ Boolean
- #to_s ⇒ Object
Constructor Details
#initialize(lat1, long1, lat2, long2) ⇒ LatitudeLongitudeRegion
Returns a new instance of LatitudeLongitudeRegion.
3 4 5 6 |
# File 'lib/cacheable_kdtree/latitude_longitude_region.rb', line 3 def initialize(lat1, long1, lat2, long2) @min_latitude, @max_latitude = [lat1, lat2].minmax @min_longitude, @max_longitude = [long1, long2].minmax end |
Instance Attribute Details
#max_latitude ⇒ Object
Returns the value of attribute max_latitude.
2 3 4 |
# File 'lib/cacheable_kdtree/latitude_longitude_region.rb', line 2 def max_latitude @max_latitude end |
#max_longitude ⇒ Object
Returns the value of attribute max_longitude.
2 3 4 |
# File 'lib/cacheable_kdtree/latitude_longitude_region.rb', line 2 def max_longitude @max_longitude end |
#min_latitude ⇒ Object
Returns the value of attribute min_latitude.
2 3 4 |
# File 'lib/cacheable_kdtree/latitude_longitude_region.rb', line 2 def min_latitude @min_latitude end |
#min_longitude ⇒ Object
Returns the value of attribute min_longitude.
2 3 4 |
# File 'lib/cacheable_kdtree/latitude_longitude_region.rb', line 2 def min_longitude @min_longitude end |
Class Method Details
.regions_intersect?(region1, region2) ⇒ Boolean
28 29 30 31 |
# File 'lib/cacheable_kdtree/latitude_longitude_region.rb', line 28 def self.regions_intersect?(region1, region2) region1.min_latitude <= region2.max_latitude && region1.max_latitude >= region2.min_latitude && region1.min_longitude <= region2.max_longitude && region1.max_longitude >= region2.min_longitude end |
Instance Method Details
#merge_point(lat, long) ⇒ Object
8 9 10 11 12 |
# File 'lib/cacheable_kdtree/latitude_longitude_region.rb', line 8 def merge_point(lat, long) new_min_lat, new_max_lat = [lat, @min_latitude, @max_latitude].minmax new_min_long, new_max_long = [long, @min_longitude, @max_longitude].minmax self.class.new(new_min_lat, new_min_long, new_max_lat, new_max_long) end |
#merge_region(region) ⇒ Object
14 15 16 17 18 |
# File 'lib/cacheable_kdtree/latitude_longitude_region.rb', line 14 def merge_region(region) new_min_lat, new_max_lat = [region.min_latitude, region.max_latitude, @min_latitude, @max_latitude].minmax new_min_long, new_max_long = [region.min_longitude, region.max_longitude, @min_longitude, @max_longitude].minmax self.class.new(new_min_lat, new_min_long, new_max_lat, new_max_long) end |
#point_in_region?(latitude, longitude) ⇒ Boolean
20 21 22 |
# File 'lib/cacheable_kdtree/latitude_longitude_region.rb', line 20 def point_in_region?(latitude, longitude) latitude.between?(min_latitude, max_latitude) && longitude.between?(min_longitude, max_longitude) end |
#to_s ⇒ Object
24 25 26 |
# File 'lib/cacheable_kdtree/latitude_longitude_region.rb', line 24 def to_s "min lat/long: (#{min_latitude}, #{min_longitude}) max lat/long (#{max_latitude}, #{max_longitude})" end |