forked from MTSR/mapserver
multithreaded
This commit is contained in:
parent
d4a362668c
commit
b480e0a9b9
@ -9,6 +9,12 @@ import (
|
||||
|
||||
)
|
||||
|
||||
func worker(tr *tilerenderer.TileRenderer, jobs <-chan coords.TileCoords){
|
||||
for coord := range(jobs){
|
||||
tr.Render(coord)
|
||||
}
|
||||
}
|
||||
|
||||
func Render(tr *tilerenderer.TileRenderer,
|
||||
layers []layerconfig.Layer){
|
||||
|
||||
@ -16,33 +22,22 @@ func Render(tr *tilerenderer.TileRenderer,
|
||||
complete_count := 512*512
|
||||
current_count := 0
|
||||
|
||||
for _, layer := range(layers) {
|
||||
jobs := make(chan coords.TileCoords, 100)
|
||||
|
||||
// zoom:1 == length=1
|
||||
// zoom:2 == length=2
|
||||
// zoom:3 == length=4
|
||||
// zoom:4 == length=8
|
||||
// zoom:5 == length=16
|
||||
// zoom:6 == length=32
|
||||
// zoom:7 == length=64
|
||||
// zoom:8 == length=128
|
||||
// zoom:9 == length=256
|
||||
// zoom:10 == length=512
|
||||
// zoom:11 == length=1024
|
||||
// zoom:12 == length=2048
|
||||
// zoom:13 == length=4096
|
||||
go worker(tr, jobs)
|
||||
go worker(tr, jobs)
|
||||
go worker(tr, jobs)
|
||||
go worker(tr, jobs)
|
||||
|
||||
for _, layer := range(layers) {
|
||||
|
||||
//zoom 10 iterator
|
||||
for x := -255; x<256; x++ {
|
||||
for y := -255; y<256; y++ {
|
||||
tc := coords.NewTileCoords(x,y,10,layer.Id)
|
||||
_, err := tr.Render(tc)
|
||||
jobs <- tc
|
||||
current_count++
|
||||
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
|
||||
if time.Now().Sub(start).Seconds() > 2 {
|
||||
start = time.Now()
|
||||
progress := float64(current_count) / float64(complete_count) * 100
|
||||
@ -59,5 +54,24 @@ func Render(tr *tilerenderer.TileRenderer,
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
close(jobs)
|
||||
|
||||
}
|
||||
|
||||
|
||||
// zoom:1 == length=1
|
||||
// zoom:2 == length=2
|
||||
// zoom:3 == length=4
|
||||
// zoom:4 == length=8
|
||||
// zoom:5 == length=16
|
||||
// zoom:6 == length=32
|
||||
// zoom:7 == length=64
|
||||
// zoom:8 == length=128
|
||||
// zoom:9 == length=256
|
||||
// zoom:10 == length=512
|
||||
// zoom:11 == length=1024
|
||||
// zoom:12 == length=2048
|
||||
// zoom:13 == length=4096
|
||||
|
Loading…
Reference in New Issue
Block a user