def tile_exists(self, x, y, z): if self.scheme == 'tms': y = mbutil.flip_y(z, y) query = ( 'select count(*) from tiles where zoom_level={} and tile_column={} and tile_row={}' .format(z, x, y)) rs = self.conn.execute(query).fetchone() return rs[0] == 1
def get_tile(self, zoom, x, y): rows = self._cursor.execute( """select tile_data from tiles where zoom_level=? and tile_column=? and tile_row=?;""", (zoom, x, mb.flip_y(zoom, y))) data = rows.fetchone() if not data: raise ExtractionError() return cv2.imdecode(np.frombuffer(data[0], 'B'), cv2.IMREAD_UNCHANGED)
def tile_exists(self, x, y, z): if self.scheme == 'tms': y = mbutil.flip_y(z, y) query = ( 'select count(*) from tiles where zoom_level={} and tile_column={} and tile_row={}' .format(z, x, y) ) rs = self.conn.execute(query).fetchone() return rs[0] == 1
def all_tiles(self): tiles = self.conn.execute('select zoom_level, tile_column, tile_row from tiles') for tile in tiles: z = tile[0] x = tile[1] y = tile[2] if self.scheme == 'tms': y = mbutil.flip_y(z, y) yield mercantile.Tile(x, y, z)
def all_tiles(self): tiles = self.conn.execute( 'select zoom_level, tile_column, tile_row from tiles') for tile in tiles: z = tile[0] x = tile[1] y = tile[2] if self.scheme == 'tms': y = mbutil.flip_y(z, y) yield mercantile.Tile(x, y, z)
def tiles_at_zoom_level(self, z): query = ( 'select tile_column, tile_row, length(tile_data) from tiles where zoom_level={}' .format(z) ) for tile in self.conn.execute(query): x = tile[0] y = tile[1] size = tile[2] if self.scheme == 'tms': y = mbutil.flip_y(z, y) yield mercantile.Tile(x, y, z)
def inspect_tile(self, x, y, z): if self.scheme == 'tms': y = mbutil.flip_y(z, y) query = ( 'select tile_data from tiles where zoom_level={} and tile_column={} and tile_row={}' .format(z, x, y) ) rs = self.conn.execute(query).fetchone() if rs: raw = rs[0] return hashlib.sha1(raw).hexdigest() else: return None
def tiles_by_size(self, max_size): tiles = self.conn.execute(""" select zoom_level, tile_column, tile_row, length(tile_data) from tiles where length(tile_data) > {} """.format(max_size)) for tile in tiles: z = tile[0] x = tile[1] y = tile[2] size = tile[3] if self.scheme == 'tms': y = mbutil.flip_y(z, y) yield TileSize(x, y, z, size)
def save_tile_as_png(self, zoom, x, y, image): output = cv2.imencode('.png', image)[1] self._cursor.execute( """insert into tiles (zoom_level, tile_column, tile_row, tile_data) values (?, ?, ?, ?);""", (zoom, x, mb.flip_y(zoom, y), sqlite3.Binary(output)))