tileIDForKey static method

TileID tileIDForKey(
  1. String quadKey
)

Implementation

static TileID tileIDForKey(String quadKey) {
  try {
    if (quadKey.isEmpty) return TileID(0, 0, 0);
    var z = clamp(quadKey.length.toDouble(), 1.0, _maxZoom).toInt();
    var x = 0;
    var y = 0;
    for (var i = z; i >= 1; i--) {
      final mask = (1 << (i - 1));
      switch (quadKey[z - i]) {
        case '0':
          break;
        case '1':
          x = (x | mask);
          break;
        case '2':
          y = (y | mask);
          break;
        case '3':
          x = (x | mask);
          y = (y | mask);
          break;
      }
    }
    return TileID(x.toDouble(), y.toDouble(), z.toDouble());
  } catch (e) {
    PMLogger.e(e);
  }
  return TileID(0.0, 0.0, 0.0);
}