Module: Gpx2png::Calculations::BaseInstanceMethods

Included in:
Base
Defined in:
lib/gpx2png/calculations/base_instance_methods.rb

Instance Method Summary collapse

Instance Method Details

#calculate_minmax_latlonObject



5
6
7
8
9
10
11
12
13
14
# File 'lib/gpx2png/calculations/base_instance_methods.rb', line 5

def calculate_minmax_latlon
  @layers.each do |l|
    enlarge_border_coords(l)
  end
  # when no coords specified
  @lat_min ||= -0.01
  @lat_max ||= 0.01
  @lon_min ||= -0.01
  @lon_max ||= 0.01
end

#enlarge_border_coords(layer) ⇒ Object



16
17
18
19
20
21
22
23
24
25
26
27
28
# File 'lib/gpx2png/calculations/base_instance_methods.rb', line 16

def enlarge_border_coords(layer)
  _lat_min = layer.coords.collect { |c| c[:lat] }.min
  _lat_max = layer.coords.collect { |c| c[:lat] }.max
  _lon_min = layer.coords.collect { |c| c[:lon] }.min
  _lon_max = layer.coords.collect { |c| c[:lon] }.max

  @lat_min = _lat_min if @lat_min.nil? or _lat_min < @lat_min
  @lat_max = _lat_max if @lat_max.nil? or _lat_max > @lat_max
  @lon_min = _lon_min if @lon_min.nil? or _lon_min < @lon_min
  @lon_max = _lon_max if @lon_max.nil? or _lon_max > @lon_max

  self.class.logger.debug("Border coords #{@lat_min.to_s.green},#{@lon_min.to_s.green} - #{@lat_max.to_s.green},#{@lon_max.to_s.green}")
end