Skip to content

Commit

Permalink
remove v2 writer; stub out subpyramid functionality
Browse files Browse the repository at this point in the history
  • Loading branch information
bdon committed Oct 6, 2022
1 parent 5fe34b6 commit f0a8df1
Show file tree
Hide file tree
Showing 6 changed files with 18 additions and 171 deletions.
6 changes: 3 additions & 3 deletions pmtiles/loop.go
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ const (

type Datum struct {
bytes []byte
directory Directory
directory DirectoryV2
kind DatumKind
hit bool
}
Expand Down Expand Up @@ -122,13 +122,13 @@ func (loop Loop) Start() {
var size int
ok := loop.fetcher.Do(key, func(reader io.Reader) {
if req.kind == Root {
metadata, dir := ParseHeader(reader)
metadata, dir := ParseHeaderV2(reader)
result = Datum{kind: Root, bytes: metadata, directory: dir}
size = len(metadata) + dir.SizeBytes()
} else if req.kind == Leaf {
dir_bytes := make([]byte, key.rng.Length)
io.ReadFull(reader, dir_bytes)
dir := ParseDirectory(dir_bytes)
dir := ParseDirectoryV2(dir_bytes)
result = Datum{kind: Root, directory: dir}
size = dir.SizeBytes()
} else {
Expand Down
16 changes: 8 additions & 8 deletions pmtiles/reader.go → pmtiles/readerv2.go
Original file line number Diff line number Diff line change
Expand Up @@ -17,13 +17,13 @@ type Range struct {
Length uint32
}

type Directory struct {
type DirectoryV2 struct {
Entries map[Zxy]Range
LeafZ uint8
Leaves map[Zxy]Range
}

func (d Directory) SizeBytes() int {
func (d DirectoryV2) SizeBytes() int {
return 21*(len(d.Entries)+len(d.Leaves)) + 1
}

Expand All @@ -42,7 +42,7 @@ func GetParentTile(tile Zxy, level uint8) Zxy {
return Zxy{Z: level, X: uint32(x), Y: uint32(y)}
}

func ParseEntry(b []byte) (uint8, Zxy, Range) {
func ParseEntryV2(b []byte) (uint8, Zxy, Range) {
z_raw := b[0]
x_raw := b[1:4]
y_raw := b[4:7]
Expand All @@ -60,11 +60,11 @@ func ParseEntry(b []byte) (uint8, Zxy, Range) {
}
}

func ParseDirectory(dir_bytes []byte) Directory {
the_dir := Directory{Entries: make(map[Zxy]Range), Leaves: make(map[Zxy]Range)}
func ParseDirectoryV2(dir_bytes []byte) DirectoryV2 {
the_dir := DirectoryV2{Entries: make(map[Zxy]Range), Leaves: make(map[Zxy]Range)}
var maxz uint8
for i := 0; i < len(dir_bytes)/17; i++ {
leaf_z, zxy, rng := ParseEntry(dir_bytes[i*17 : i*17+17])
leaf_z, zxy, rng := ParseEntryV2(dir_bytes[i*17 : i*17+17])
if leaf_z == 0 {
the_dir.Entries[zxy] = rng
} else {
Expand All @@ -76,7 +76,7 @@ func ParseDirectory(dir_bytes []byte) Directory {
return the_dir
}

func ParseHeader(reader io.Reader) ([]byte, Directory) {
func ParseHeaderV2(reader io.Reader) ([]byte, DirectoryV2) {
magic_num := make([]byte, 2)
io.ReadFull(reader, magic_num)
version := make([]byte, 2)
Expand All @@ -91,6 +91,6 @@ func ParseHeader(reader io.Reader) ([]byte, Directory) {
io.ReadFull(reader, metadata_bytes)
dir_bytes := make([]byte, rootdir_len*17)
io.ReadFull(reader, dir_bytes)
the_dir := ParseDirectory(dir_bytes)
the_dir := ParseDirectoryV2(dir_bytes)
return metadata_bytes, the_dir
}
File renamed without changes.
13 changes: 7 additions & 6 deletions pmtiles/subpyramid.go
Original file line number Diff line number Diff line change
Expand Up @@ -66,14 +66,14 @@ func SubpyramidXY(logger *log.Logger, input string, output string, z uint8, minX
if err != nil {
return
}
metadata_bytes, root_directory := ParseHeader(f)
metadata_bytes, root_directory := ParseHeaderV2(f)

var metadata Metadata
json.Unmarshal(metadata_bytes, &metadata)
metadata.Maxzoom = strconv.Itoa(int(z))
metadata.Bounds = bounds

writer := NewWriter(output)
// writer := NewWriter(output)

if z >= root_directory.LeafZ {
for key, rng := range root_directory.Leaves {
Expand All @@ -87,7 +87,7 @@ func SubpyramidXY(logger *log.Logger, input string, output string, z uint8, minX
io.ReadFull(f, dir_bytes)

for i := 0; i < len(dir_bytes)/17; i++ {
leaf_z, lzxy, lrng := ParseEntry(dir_bytes[i*17 : i*17+17])
leaf_z, lzxy, lrng := ParseEntryV2(dir_bytes[i*17 : i*17+17])
if leaf_z == 0 {
if lzxy.Z <= z && Matches(z, minX, minY, maxX, maxY, lzxy) {
_, err = f.Seek(int64(lrng.Offset), 0)
Expand All @@ -96,7 +96,7 @@ func SubpyramidXY(logger *log.Logger, input string, output string, z uint8, minX
}
tile_data := make([]byte, lrng.Length)
io.ReadFull(f, tile_data)
writer.WriteTile(lzxy, tile_data)
// writer.WriteTile(lzxy, tile_data)
}
}
}
Expand All @@ -111,10 +111,11 @@ func SubpyramidXY(logger *log.Logger, input string, output string, z uint8, minX
}
tile_data := make([]byte, rng.Length)
io.ReadFull(f, tile_data)
writer.WriteTile(key, tile_data)
// writer.WriteTile(key, tile_data)
}
}

new_metadata_bytes, _ := json.Marshal(metadata)
writer.Finalize(new_metadata_bytes)
_ = new_metadata_bytes
// writer.Finalize(new_metadata_bytes)
}
120 changes: 0 additions & 120 deletions pmtiles/writer.go

This file was deleted.

34 changes: 0 additions & 34 deletions pmtiles/writer_test.go

This file was deleted.

0 comments on commit f0a8df1

Please sign in to comment.