quadKeyFor static method

String quadKeyFor(
  1. TileID tileID
)

Implementation

static String quadKeyFor(TileID tileID) {
  final sb = StringBuffer();
  try {
    if (tileID.zoom == 0.0) return sb.toString();
    final x = clamp(tileID.x, 0.0, double.maxFinite).toInt();
    final y = clamp(tileID.y, 0.0, double.maxFinite).toInt();
    final z = clamp(tileID.zoom, 1.0, double.maxFinite).toInt();
    for (var i = z; i >= 1; i--) {
      var digit = int.parse(String.fromCharCode('0'.codeUnitAt(0)));
      final mask = (1 << (i - 1));
      if ((x & mask) != 0) {
        digit++;
      }
      if ((y & mask) != 0) {
        digit += 2;
      }
      sb.write(digit.toRadixString(10));
    }
  } catch (e) {
    PMLogger.e(e);
  }
  return sb.toString();
}