Class: Map::TileService

Inherits:
Object
  • Object
show all
Defined in:
lib/map/tile_service.rb

Instance Method Summary collapse

Constructor Details

#initialize(latitude, longitude, zoom) ⇒ TileService

Returns a new instance of TileService.



4
5
6
7
8
# File 'lib/map/tile_service.rb', line 4

def initialize(latitude, longitude, zoom)
  @latitude = latitude
  @longitude = longitude
  @zoom = zoom
end

Instance Method Details

#pointsObject



11
12
13
14
15
16
17
18
19
20
21
# File 'lib/map/tile_service.rb', line 11

def points
  lat_rad = @latitude/180 * Math::PI
  squared_zoom = 2.0 ** @zoom
  point_x = ((@longitude + 180.0) / 360.0 * squared_zoom).to_i
  point_y = ((1.0 - Math::log(Math::tan(lat_rad) + (1 / Math::cos(lat_rad))) / Math::PI) / 2.0 * squared_zoom).to_i

  {
    x: point_x,
    y: point_y
  }
end