cleanup leafdir logic

This commit is contained in:
Brandon Liu
2021-03-01 16:20:12 +08:00
parent 0d6f39d22b
commit 9e41c46bcd
2 changed files with 5 additions and 6 deletions

View File

@@ -142,6 +142,7 @@
return {url: u} return {url: u}
} }
// take URL here
leafletLayer = options => { leafletLayer = options => {
const self = this const self = this
var cls = L.GridLayer.extend({ var cls = L.GridLayer.extend({

View File

@@ -42,14 +42,11 @@ class Writer:
self.f.write(entry[3].to_bytes(6,byteorder='little')) self.f.write(entry[3].to_bytes(6,byteorder='little'))
self.f.write(entry[4].to_bytes(4,byteorder='little')) self.f.write(entry[4].to_bytes(4,byteorder='little'))
def write_leafdir(self,tiles): def write_leafdir(self,tiles,total_len):
total_len = 0
for t in tiles: for t in tiles:
total_len += len(t[1])
self.leaves.append((t[0][0],t[0][1],t[0][2],self.offset,17*total_len)) self.leaves.append((t[0][0],t[0][1],t[0][2],self.offset,17*total_len))
for entry in t[1]: for entry in t[1]:
self.write_entry(entry) self.write_entry(entry)
return 17 * total_len
def write_header(self,metadata,root_entries_len): def write_header(self,metadata,root_entries_len):
self.f.write((0x4D50).to_bytes(2,byteorder='little')) self.f.write((0x4D50).to_bytes(2,byteorder='little'))
@@ -89,13 +86,14 @@ class Writer:
leafdir_tiles.append((group[0],entries)) leafdir_tiles.append((group[0],entries))
leafdir_len = leafdir_len + len(entries) leafdir_len = leafdir_len + len(entries)
else: else:
self.offset = self.offset + self.write_leafdir(leafdir_tiles) self.write_leafdir(leafdir_tiles,leafdir_len)
self.offset += 17 * leafdir_len
leafdir_tiles = [(group[0],entries)] leafdir_tiles = [(group[0],entries)]
leafdir_len = len(entries) leafdir_len = len(entries)
# finalize # finalize
if len(leafdir_tiles): if len(leafdir_tiles):
self.write_leafdir(leafdir_tiles) self.write_leafdir(leafdir_tiles,leafdir_len)
root = [(group[0],list(group[1])) for group in itertools.groupby(self.tiles,key=by_parent) if group[0][0] == 0][0] root = [(group[0],list(group[1])) for group in itertools.groupby(self.tiles,key=by_parent) if group[0][0] == 0][0]
root_tiles = root[1] root_tiles = root[1]