forked from MTSR/mapserver
sqlite tile db
This commit is contained in:
parent
e0da8308e2
commit
fa66f682e4
@ -14,5 +14,5 @@ type Tile struct {
|
|||||||
type DBAccessor interface {
|
type DBAccessor interface {
|
||||||
Migrate() error
|
Migrate() error
|
||||||
GetTile(layerId int, pos coords.TileCoords) (*Tile, error)
|
GetTile(layerId int, pos coords.TileCoords) (*Tile, error)
|
||||||
SetTile(pos coords.TileCoords, tile *Tile) error
|
SetTile(tile *Tile) error
|
||||||
}
|
}
|
||||||
|
@ -79,8 +79,15 @@ func (db *Sqlite3Accessor) GetTile(layerId int, pos coords.TileCoords) (*Tile, e
|
|||||||
return nil, nil
|
return nil, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (db *Sqlite3Accessor) SetTile(pos coords.TileCoords, tile *Tile) error {
|
const setTileQuery = `
|
||||||
return nil
|
insert into tiles(x,y,zoom,layerid,data,mtime)
|
||||||
|
values(?, ?, ?, ?, ?, ?)
|
||||||
|
on conflict replace
|
||||||
|
`
|
||||||
|
|
||||||
|
func (db *Sqlite3Accessor) SetTile(tile *Tile) error {
|
||||||
|
_, err := db.db.Query(setTileQuery, tile.Pos.X, tile.Pos.Y, tile.Pos.Zoom, tile.LayerId, tile.Data, tile.Mtime)
|
||||||
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
func NewSqliteAccessor(filename string) (*Sqlite3Accessor, error) {
|
func NewSqliteAccessor(filename string) (*Sqlite3Accessor, error) {
|
||||||
|
@ -2,9 +2,9 @@ package tiledb
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"io/ioutil"
|
"io/ioutil"
|
||||||
|
"mapserver/coords"
|
||||||
"os"
|
"os"
|
||||||
"testing"
|
"testing"
|
||||||
"mapserver/coords"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestMigrate(t *testing.T) {
|
func TestMigrate(t *testing.T) {
|
||||||
@ -24,11 +24,18 @@ func TestMigrate(t *testing.T) {
|
|||||||
panic(err)
|
panic(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
pos := coords.NewTileCoords(0,0,13)
|
pos := coords.NewTileCoords(0, 0, 13)
|
||||||
_, err = db.GetTile(0, pos)
|
_, err = db.GetTile(0, pos)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
panic(err)
|
panic(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
data := []byte{}
|
||||||
|
tile := Tile{LayerId: 0, Pos: pos, Data: data}
|
||||||
|
err = db.SetTile(&tile)
|
||||||
|
|
||||||
|
if err != nil {
|
||||||
|
panic(err)
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user