| 9 | namespace df |
| 10 | { |
| 11 | CoverageResult CalcTilesCoverage(m2::RectD const & rect, int targetZoom, |
| 12 | std::function<void(int, int)> const & processTile) |
| 13 | { |
| 14 | ASSERT_GREATER(targetZoom, 0, ()); |
| 15 | double const rectSize = mercator::Bounds::kRangeX / (1 << (targetZoom - 1)); |
| 16 | |
| 17 | CoverageResult result; |
| 18 | result.m_minTileX = static_cast<int>(floor(rect.minX() / rectSize)); |
| 19 | result.m_maxTileX = static_cast<int>(ceil(rect.maxX() / rectSize)); |
| 20 | result.m_minTileY = static_cast<int>(floor(rect.minY() / rectSize)); |
| 21 | result.m_maxTileY = static_cast<int>(ceil(rect.maxY() / rectSize)); |
| 22 | |
| 23 | if (processTile != nullptr) |
| 24 | { |
| 25 | for (int tileY = result.m_minTileY; tileY < result.m_maxTileY; ++tileY) |
| 26 | for (int tileX = result.m_minTileX; tileX < result.m_maxTileX; ++tileX) |
| 27 | processTile(tileX, tileY); |
| 28 | } |
| 29 | |
| 30 | return result; |
| 31 | } |
| 32 | |
| 33 | bool IsNeighbours(TileKey const & tileKey1, TileKey const & tileKey2) |
| 34 | { |
no test coverage detected