diff --git a/server/tilerenderer/blank.go b/server/tilerenderer/blank.go new file mode 100644 index 0000000..9dc7cf0 --- /dev/null +++ b/server/tilerenderer/blank.go @@ -0,0 +1,25 @@ +package tilerenderer + + +import ( + "image" + "image/draw" + "image/png" + "image/color" + "bytes" +) + +func CreateBlankTile(c color.RGBA) ([]byte){ + rect := image.Rectangle{ + image.Point{0, 0}, + image.Point{IMG_SIZE, IMG_SIZE}, + } + + img := image.NewNRGBA(rect) + draw.Draw(img, rect, &image.Uniform{c}, image.ZP, draw.Src) + + buf := new(bytes.Buffer) + png.Encode(buf, img) + + return buf.Bytes() +} diff --git a/server/web/tiles.go b/server/web/tiles.go index 40bcf02..5ed0bdf 100644 --- a/server/web/tiles.go +++ b/server/web/tiles.go @@ -3,6 +3,8 @@ package web import ( "mapserver/app" "mapserver/coords" + "mapserver/tilerenderer" + "image/color" "net/http" "strconv" "strings" @@ -37,7 +39,8 @@ func (t *Tiles) ServeHTTP(resp http.ResponseWriter, req *http.Request) { resp.Header().Add("content-type", "image/png") if tile == nil { - //TODO: blank tile + resp.Write(tilerenderer.CreateBlankTile(color.RGBA{0,0,0,0})) + //TODO: cache/layer color } else { resp.Write(tile.Data)