Module: Tiletanic::TileCover

Defined in:
lib/tiletanic/tile_cover.rb

Class Method Summary collapse

Class Method Details

.cover_geometry(tile_scheme, geometry, zooms) ⇒ Object



8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# File 'lib/tiletanic/tile_cover.rb', line 8

def cover_geometry(tile_scheme, geometry, zooms, &)
  return enum_for(__method__, tile_scheme, geometry, zooms) unless block_given?

  validate_geometry!(geometry)
  return if geometry.empty?

  zoom_levels = normalize_zoom_levels(zooms)
  current_tile = Tile.new(x: 0, y: 0, z: 0)

  if polygonal?(geometry)
    cover_polygonal(tile_scheme, current_tile, geometry, zoom_levels, zoom_levels.max, &)
  else
    cover_non_polygonal(tile_scheme, current_tile, geometry, zoom_levels, &)
  end
end