Skip to content

Workflow to create mbtiles #149

@jjcfrancisco

Description

@jjcfrancisco

This library seem to have most parts to create mbtiles and so I hope this is possible. Using the code below, I am somehow able to get some results. If both minZoom and maxZoom are 0, then the mbtiles displays as it should - they look jagged as I move closer but this is as expected. However, if maxZoom = 5, tiles only show within zoom 0, despite metadata having the correct information and when it moves to zoom 1, the geometry disappears.

I've debugged the tiles coming from tilecover using tiles.ToFeatureCollection and they are correct. The results of layers.Clip is also fine. It seems more linked to the ProjectToTile as the geometries dissapear after zoom 0, although I cannot confirm this. Or maybe there's something I am doing wrong? I'd appreciate some advice/tips/examples.

For this example I used this geojson of Spain.

Ps. I am aware of Tippecanoe but this is not an option I as I am looking for a Go solution.

minZoom = 0
maxZoom = 0

// data := spain.geojson...

var geoms orb.Collection
for _, feature := range data.Features {
	geoms = append(geoms, feature.Geometry)
}

covers := []cover{}
for z := minZoom; z <= maxZoom; z++ {
	tiles, err := tilecover.Collection(geoms, maptile.Zoom(z))
	if err != nil {
		log.Fatal(err)
	}
	cover := cover{tile: tiles}
	covers = append(covers, cover)

}

for cover := range covers {

	layer := mvt.Layer{Name: "spain", Version: 2, Extent: 4096, Features: data.Features}
	layers := mvt.Layers{&layer}
        tile := cover.tile
	layers.Clip(tile.Bound())
	layers.ProjectToTile(tile)
	blob, err := mvt.MarshalGzipped(layers)
	if err != nil {
		log.Fatal(err)
	}
	// Insert blob into Sqlite3 rows

}

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions