working tests
This commit is contained in:
parent
0e169d2b45
commit
c80a9140e9
@ -16,7 +16,7 @@ func TestMinCoord(t *testing.T){
|
||||
c := NewMapBlockCoords(MinCoord, MinCoord, MinCoord)
|
||||
pc := CoordToPlain(c)
|
||||
|
||||
log.WithFields(logrus.Fields{"coords": c, "plain": pc}).Info("TestMinCoord")
|
||||
log.WithFields(logrus.Fields{"coords": c, "plain": pc,"plain-1": pc-1}).Info("TestMinCoord")
|
||||
if pc != MinPlainCoord {
|
||||
t.Fatal("no min match")
|
||||
}
|
||||
|
@ -9,7 +9,7 @@ const (
|
||||
MAX_ZOOM = 13
|
||||
)
|
||||
|
||||
func GetTileCoordsFromMapBlock(mbc *MapBlockCoords, layers []layer.Layer) *TileCoords {
|
||||
func GetTileCoordsFromMapBlock(mbc *MapBlockCoords, layers []*layer.Layer) *TileCoords {
|
||||
tc := TileCoords{X: mbc.X, Y: (mbc.Z + 1) * -1, Zoom: MAX_ZOOM}
|
||||
|
||||
var layerid *int
|
||||
|
@ -8,8 +8,8 @@ import (
|
||||
|
||||
func TestConvertMapblockToTile1(t *testing.T) {
|
||||
mbc := NewMapBlockCoords(0, 0, 0)
|
||||
layers := []layer.Layer{
|
||||
layer.Layer{
|
||||
layers := []*layer.Layer{
|
||||
&layer.Layer{
|
||||
Id: 0,
|
||||
Name: "Base",
|
||||
From: -16,
|
||||
@ -48,8 +48,8 @@ func TestGetMapBlockRangeFromTile(t *testing.T) {
|
||||
|
||||
func TestConvertMapblockToTile2(t *testing.T) {
|
||||
mbc := NewMapBlockCoords(1, 0, 1)
|
||||
layers := []layer.Layer{
|
||||
layer.Layer{
|
||||
layers := []*layer.Layer{
|
||||
&layer.Layer{
|
||||
Id: 0,
|
||||
Name: "Base",
|
||||
From: -16,
|
||||
@ -74,8 +74,8 @@ func TestConvertMapblockToTile2(t *testing.T) {
|
||||
|
||||
func TestConvertMapblockToTile3(t *testing.T) {
|
||||
mbc := NewMapBlockCoords(-1, 0, -1)
|
||||
layers := []layer.Layer{
|
||||
layer.Layer{
|
||||
layers := []*layer.Layer{
|
||||
&layer.Layer{
|
||||
Id: 0,
|
||||
Name: "Base",
|
||||
From: -16,
|
||||
|
@ -22,7 +22,7 @@ type DBAccessor interface {
|
||||
Migrate() error
|
||||
|
||||
FindBlocksByMtime(gtmtime int64, limit int) ([]*Block, error)
|
||||
FindNextInitialBlocks(s settings.Settings, layers []layer.Layer, limit int) (*InitialBlocksResult, error)
|
||||
FindNextInitialBlocks(s settings.Settings, layers []*layer.Layer, limit int) (*InitialBlocksResult, error)
|
||||
|
||||
CountBlocks(frommtime, tomtime int64) (int, error)
|
||||
GetBlock(pos *coords.MapBlockCoords) (*Block, error)
|
||||
|
@ -16,7 +16,7 @@ const getLastBlockQuery = `
|
||||
select pos,data,mtime
|
||||
from blocks b
|
||||
where b.mtime = 0
|
||||
and b.pos >= ?
|
||||
and b.pos > ?
|
||||
order by b.pos asc, b.mtime asc
|
||||
limit ?
|
||||
`
|
||||
@ -27,7 +27,7 @@ func (this *Sqlite3Accessor) FindNextInitialBlocks(s settings.Settings, layers [
|
||||
|
||||
blocks := make([]*db.Block, 0)
|
||||
|
||||
lastpos := s.GetInt64(SETTING_LAST_POS, coords.MinPlainCoord)
|
||||
lastpos := s.GetInt64(SETTING_LAST_POS, coords.MinPlainCoord-1)
|
||||
|
||||
rows, err := this.db.Query(getLastBlockQuery, lastpos, limit)
|
||||
if err != nil {
|
||||
|
@ -1,7 +1,6 @@
|
||||
package mapblockaccessor
|
||||
|
||||
import (
|
||||
"mapserver/coords"
|
||||
"mapserver/eventbus"
|
||||
"mapserver/layer"
|
||||
"mapserver/settings"
|
||||
@ -17,17 +16,9 @@ type FindNextLegacyBlocksResult struct {
|
||||
UnfilteredCount int
|
||||
}
|
||||
|
||||
func (a *MapBlockAccessor) FindNextLegacyBlocks(s settings.Settings, layers []layer.Layer, limit int) (*FindNextLegacyBlocksResult, error) {
|
||||
func (a *MapBlockAccessor) FindNextLegacyBlocks(s settings.Settings, layers []*layer.Layer, limit int) (*FindNextLegacyBlocksResult, error) {
|
||||
|
||||
fields := logrus.Fields{
|
||||
"x": lastpos.X,
|
||||
"y": lastpos.Y,
|
||||
"z": lastpos.Z,
|
||||
"limit": limit,
|
||||
}
|
||||
logrus.WithFields(fields).Debug("FindMapBlocksByPos")
|
||||
|
||||
nextResult, err := a.accessor.FindNextInitialBlocks(lastpos, limit)
|
||||
nextResult, err := a.accessor.FindNextInitialBlocks(s, layers, limit)
|
||||
blocks := nextResult.List
|
||||
|
||||
if err != nil {
|
||||
@ -37,28 +28,10 @@ func (a *MapBlockAccessor) FindNextLegacyBlocks(s settings.Settings, layers []la
|
||||
result := FindNextLegacyBlocksResult{}
|
||||
|
||||
mblist := make([]*mapblockparser.MapBlock, 0)
|
||||
var newlastpos *coords.MapBlockCoords
|
||||
result.HasMore = len(blocks) == limit
|
||||
result.UnfilteredCount = len(blocks)
|
||||
result.HasMore = nextResult.HasMore
|
||||
result.UnfilteredCount = nextResult.UnfilteredCount
|
||||
|
||||
for _, block := range blocks {
|
||||
newlastpos = block.Pos
|
||||
if result.LastMtime < block.Mtime {
|
||||
result.LastMtime = block.Mtime
|
||||
}
|
||||
|
||||
inLayer := false
|
||||
for _, l := range layerfilter {
|
||||
if (block.Pos.Y*16) >= l.From && (block.Pos.Y*16) <= l.To {
|
||||
inLayer = true
|
||||
break
|
||||
}
|
||||
}
|
||||
|
||||
if !inLayer {
|
||||
continue
|
||||
}
|
||||
|
||||
fields := logrus.Fields{
|
||||
"x": block.Pos.X,
|
||||
"y": block.Pos.Y,
|
||||
@ -80,10 +53,9 @@ func (a *MapBlockAccessor) FindNextLegacyBlocks(s settings.Settings, layers []la
|
||||
|
||||
}
|
||||
|
||||
result.LastPos = newlastpos
|
||||
result.List = mblist
|
||||
|
||||
fields = logrus.Fields{
|
||||
fields := logrus.Fields{
|
||||
"len(List)": len(result.List),
|
||||
"unfilteredCount": result.UnfilteredCount,
|
||||
"hasMore": result.HasMore,
|
||||
|
@ -18,7 +18,7 @@ type FindMapBlocksByMtimeResult struct {
|
||||
UnfilteredCount int
|
||||
}
|
||||
|
||||
func (a *MapBlockAccessor) FindMapBlocksByMtime(lastmtime int64, limit int, layerfilter []layer.Layer) (*FindMapBlocksByMtimeResult, error) {
|
||||
func (a *MapBlockAccessor) FindMapBlocksByMtime(lastmtime int64, limit int, layerfilter []*layer.Layer) (*FindMapBlocksByMtimeResult, error) {
|
||||
|
||||
fields := logrus.Fields{
|
||||
"lastmtime": lastmtime,
|
||||
|
@ -17,8 +17,8 @@ import (
|
||||
func TestSimpleRender(t *testing.T) {
|
||||
logrus.SetLevel(logrus.InfoLevel)
|
||||
|
||||
layers := []layer.Layer{
|
||||
layer.Layer{
|
||||
layers := []*layer.Layer{
|
||||
&layer.Layer{
|
||||
Id: 0,
|
||||
Name: "Base",
|
||||
From: -16,
|
||||
|
@ -2,9 +2,6 @@ package settings
|
||||
|
||||
const (
|
||||
SETTING_LAST_MTIME = "last_mtime"
|
||||
SETTING_LASTX = "last_x"
|
||||
SETTING_LASTY = "last_y"
|
||||
SETTING_LASTZ = "last_z"
|
||||
SETTING_INITIAL_RUN = "initial_run"
|
||||
SETTING_LEGACY_PROCESSED = "legacy_processed"
|
||||
)
|
||||
|
@ -20,7 +20,7 @@ import (
|
||||
|
||||
type TileRenderer struct {
|
||||
mapblockrenderer *mapblockrenderer.MapBlockRenderer
|
||||
layers []layer.Layer
|
||||
layers []*layer.Layer
|
||||
tdb *tiledb.TileDB
|
||||
dba db.DBAccessor
|
||||
Eventbus *eventbus.Eventbus
|
||||
@ -29,7 +29,7 @@ type TileRenderer struct {
|
||||
func NewTileRenderer(mapblockrenderer *mapblockrenderer.MapBlockRenderer,
|
||||
tdb *tiledb.TileDB,
|
||||
dba db.DBAccessor,
|
||||
layers []layer.Layer) *TileRenderer {
|
||||
layers []*layer.Layer) *TileRenderer {
|
||||
|
||||
return &TileRenderer{
|
||||
mapblockrenderer: mapblockrenderer,
|
||||
@ -99,7 +99,7 @@ func (tr *TileRenderer) RenderImage(tc *coords.TileCoords, recursionDepth int) (
|
||||
|
||||
for _, l := range tr.layers {
|
||||
if l.Id == tc.LayerId {
|
||||
layer = &l
|
||||
layer = l
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -52,8 +52,8 @@ func TestTileRender(t *testing.T) {
|
||||
|
||||
tdb, _ := tiledb.New(tiletmpdir)
|
||||
|
||||
layers := []layer.Layer{
|
||||
layer.Layer{
|
||||
layers := []*layer.Layer{
|
||||
&layer.Layer{
|
||||
Id: 0,
|
||||
Name: "Base",
|
||||
From: -16,
|
||||
|
@ -26,16 +26,10 @@ func initialRender(ctx *app.App, jobs chan *coords.TileCoords) {
|
||||
}
|
||||
logrus.WithFields(fields).Info("Starting initial rendering job")
|
||||
|
||||
lastx := ctx.Settings.GetInt(settings.SETTING_LASTX, coords.MinCoord-1)
|
||||
lasty := ctx.Settings.GetInt(settings.SETTING_LASTY, coords.MinCoord-1)
|
||||
lastz := ctx.Settings.GetInt(settings.SETTING_LASTZ, coords.MinCoord-1)
|
||||
|
||||
lastcoords := coords.NewMapBlockCoords(lastx, lasty, lastz)
|
||||
|
||||
for true {
|
||||
start := time.Now()
|
||||
|
||||
result, err := ctx.BlockAccessor.FindNextLegacyBlocks(lastcoords, ctx.Config.RenderingFetchLimit, ctx.Config.Layers)
|
||||
result, err := ctx.BlockAccessor.FindNextLegacyBlocks(ctx.Settings, ctx.Config.Layers, ctx.Config.RenderingFetchLimit)
|
||||
|
||||
if err != nil {
|
||||
panic(err)
|
||||
@ -62,13 +56,6 @@ func initialRender(ctx *app.App, jobs chan *coords.TileCoords) {
|
||||
|
||||
tiles := renderMapblocks(ctx, jobs, result.List)
|
||||
|
||||
lastcoords = result.LastPos
|
||||
ctx.Settings.SetInt64(settings.SETTING_LAST_MTIME, result.LastMtime)
|
||||
|
||||
//Save current positions of initial run
|
||||
ctx.Settings.SetInt(settings.SETTING_LASTX, lastcoords.X)
|
||||
ctx.Settings.SetInt(settings.SETTING_LASTY, lastcoords.Y)
|
||||
ctx.Settings.SetInt(settings.SETTING_LASTZ, lastcoords.Z)
|
||||
legacyProcessed += result.UnfilteredCount
|
||||
|
||||
ctx.Settings.SetInt(settings.SETTING_LEGACY_PROCESSED, legacyProcessed)
|
||||
@ -89,9 +76,6 @@ func initialRender(ctx *app.App, jobs chan *coords.TileCoords) {
|
||||
"tiles": tiles,
|
||||
"processed": legacyProcessed,
|
||||
"progress%": progress,
|
||||
"X": lastcoords.X,
|
||||
"Y": lastcoords.Y,
|
||||
"Z": lastcoords.Z,
|
||||
"elapsed": elapsed,
|
||||
}
|
||||
logrus.WithFields(fields).Info("Initial rendering")
|
||||
|
@ -9,7 +9,7 @@ import (
|
||||
|
||||
//Public facing config
|
||||
type PublicConfig struct {
|
||||
Layers []layer.Layer `json:"layers"`
|
||||
Layers []*layer.Layer `json:"layers"`
|
||||
MapObjects *app.MapObjectConfig `json:"mapobjects"`
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user