renamed pbf parser package to parser/pbf
parent
83af982f2c
commit
5398171a23
|
@ -6,7 +6,7 @@ import (
|
||||||
"fmt"
|
"fmt"
|
||||||
_ "github.com/mattn/go-sqlite3"
|
_ "github.com/mattn/go-sqlite3"
|
||||||
"goposm/element"
|
"goposm/element"
|
||||||
"goposm/parser"
|
"goposm/parser/pbf"
|
||||||
"log"
|
"log"
|
||||||
"os"
|
"os"
|
||||||
"runtime"
|
"runtime"
|
||||||
|
@ -16,7 +16,7 @@ import (
|
||||||
)
|
)
|
||||||
|
|
||||||
type Entry struct {
|
type Entry struct {
|
||||||
Pos parser.BlockPosition
|
Pos pbf.BlockPosition
|
||||||
NodeFirst, NodeLast int64
|
NodeFirst, NodeLast int64
|
||||||
WayFirst, WayLast int64
|
WayFirst, WayLast int64
|
||||||
RelFirst, RelLast int64
|
RelFirst, RelLast int64
|
||||||
|
@ -41,11 +41,11 @@ func searchNode(nodes []element.Node, id int64) (*element.Node, error) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (entry *Entry) readWay(id int64) (*element.Way, error) {
|
func (entry *Entry) readWay(id int64) (*element.Way, error) {
|
||||||
block := parser.ReadPrimitiveBlock(entry.Pos)
|
block := pbf.ReadPrimitiveBlock(entry.Pos)
|
||||||
stringtable := parser.NewStringTable(block.GetStringtable())
|
stringtable := pbf.NewStringTable(block.GetStringtable())
|
||||||
|
|
||||||
for _, group := range block.Primitivegroup {
|
for _, group := range block.Primitivegroup {
|
||||||
parsedWays := parser.ReadWays(group.Ways, block, stringtable)
|
parsedWays := pbf.ReadWays(group.Ways, block, stringtable)
|
||||||
if len(parsedWays) > 0 {
|
if len(parsedWays) > 0 {
|
||||||
i := sort.Search(len(parsedWays), func(i int) bool {
|
i := sort.Search(len(parsedWays), func(i int) bool {
|
||||||
return parsedWays[i].Id >= id
|
return parsedWays[i].Id >= id
|
||||||
|
@ -59,11 +59,11 @@ func (entry *Entry) readWay(id int64) (*element.Way, error) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (entry *Entry) readRel(id int64) (*element.Relation, error) {
|
func (entry *Entry) readRel(id int64) (*element.Relation, error) {
|
||||||
block := parser.ReadPrimitiveBlock(entry.Pos)
|
block := pbf.ReadPrimitiveBlock(entry.Pos)
|
||||||
stringtable := parser.NewStringTable(block.GetStringtable())
|
stringtable := pbf.NewStringTable(block.GetStringtable())
|
||||||
|
|
||||||
for _, group := range block.Primitivegroup {
|
for _, group := range block.Primitivegroup {
|
||||||
parsedRels := parser.ReadRelations(group.Relations, block, stringtable)
|
parsedRels := pbf.ReadRelations(group.Relations, block, stringtable)
|
||||||
if len(parsedRels) > 0 {
|
if len(parsedRels) > 0 {
|
||||||
i := sort.Search(len(parsedRels), func(i int) bool {
|
i := sort.Search(len(parsedRels), func(i int) bool {
|
||||||
return parsedRels[i].Id >= id
|
return parsedRels[i].Id >= id
|
||||||
|
@ -76,8 +76,8 @@ func (entry *Entry) readRel(id int64) (*element.Relation, error) {
|
||||||
return nil, &NotFound{id}
|
return nil, &NotFound{id}
|
||||||
}
|
}
|
||||||
|
|
||||||
func CreateEntry(pos parser.BlockPosition) Entry {
|
func CreateEntry(pos pbf.BlockPosition) Entry {
|
||||||
block := parser.ReadPrimitiveBlock(pos)
|
block := pbf.ReadPrimitiveBlock(pos)
|
||||||
|
|
||||||
entry := Entry{pos, -1, -1, -1, -1, -1, -1}
|
entry := Entry{pos, -1, -1, -1, -1, -1, -1}
|
||||||
|
|
||||||
|
@ -204,8 +204,8 @@ func (index *IndexCache) queryNode(id int64) (Entry, error) {
|
||||||
}
|
}
|
||||||
entry := Entry{}
|
entry := Entry{}
|
||||||
stmt, err := index.db.Prepare(
|
stmt, err := index.db.Prepare(
|
||||||
`select node_first, node_last, offset, size
|
`select node_first, node_last, offset, size
|
||||||
from indices
|
from indices
|
||||||
where node_first <= ? and node_last >= ?`)
|
where node_first <= ? and node_last >= ?`)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return entry, err
|
return entry, err
|
||||||
|
@ -235,8 +235,8 @@ func (index *IndexCache) queryNode(id int64) (Entry, error) {
|
||||||
func (index *IndexCache) queryWay(id int64) (Entry, error) {
|
func (index *IndexCache) queryWay(id int64) (Entry, error) {
|
||||||
entry := Entry{}
|
entry := Entry{}
|
||||||
stmt, err := index.db.Prepare(
|
stmt, err := index.db.Prepare(
|
||||||
`select way_first, way_last, offset, size
|
`select way_first, way_last, offset, size
|
||||||
from indices
|
from indices
|
||||||
where way_first <= ? and way_last >= ?`)
|
where way_first <= ? and way_last >= ?`)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return entry, err
|
return entry, err
|
||||||
|
@ -254,8 +254,8 @@ func (index *IndexCache) queryWay(id int64) (Entry, error) {
|
||||||
func (index *IndexCache) queryRel(id int64) (Entry, error) {
|
func (index *IndexCache) queryRel(id int64) (Entry, error) {
|
||||||
entry := Entry{}
|
entry := Entry{}
|
||||||
stmt, err := index.db.Prepare(
|
stmt, err := index.db.Prepare(
|
||||||
`select rel_first, rel_last, offset, size
|
`select rel_first, rel_last, offset, size
|
||||||
from indices
|
from indices
|
||||||
where rel_first <= ? and rel_last >= ?`)
|
where rel_first <= ? and rel_last >= ?`)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return entry, err
|
return entry, err
|
||||||
|
@ -301,7 +301,7 @@ func init() {
|
||||||
func (index *IndexCache) Rebuild() {
|
func (index *IndexCache) Rebuild() {
|
||||||
indices := make(chan Entry)
|
indices := make(chan Entry)
|
||||||
|
|
||||||
positions := parser.PBFBlockPositions(index.pbfFilename)
|
positions := pbf.PBFBlockPositions(index.pbfFilename)
|
||||||
|
|
||||||
waitParser := sync.WaitGroup{}
|
waitParser := sync.WaitGroup{}
|
||||||
for i := 0; i < runtime.NumCPU(); i++ {
|
for i := 0; i < runtime.NumCPU(); i++ {
|
||||||
|
@ -363,14 +363,14 @@ func (loader *Loader) loadNode(id int64) (*element.Node, error) {
|
||||||
nodes, ok := loader.nodes[entry.Pos.Offset]
|
nodes, ok := loader.nodes[entry.Pos.Offset]
|
||||||
if !ok {
|
if !ok {
|
||||||
entry.Pos.Filename = loader.filename
|
entry.Pos.Filename = loader.filename
|
||||||
block := parser.ReadPrimitiveBlock(entry.Pos)
|
block := pbf.ReadPrimitiveBlock(entry.Pos)
|
||||||
nodes = make([]element.Node, 0, len(block.Primitivegroup)*8000)
|
nodes = make([]element.Node, 0, len(block.Primitivegroup)*8000)
|
||||||
for _, group := range block.Primitivegroup {
|
for _, group := range block.Primitivegroup {
|
||||||
dense := group.GetDense()
|
dense := group.GetDense()
|
||||||
if dense != nil {
|
if dense != nil {
|
||||||
nodes = append(nodes, parser.ReadDenseNodes(dense, block, nil)...)
|
nodes = append(nodes, parser.ReadDenseNodes(dense, block, nil)...)
|
||||||
}
|
}
|
||||||
nodes = append(nodes, parser.ReadNodes(group.Nodes, block, nil)...)
|
nodes = append(nodes, pbf.ReadNodes(group.Nodes, block, nil)...)
|
||||||
}
|
}
|
||||||
loader.nodes[entry.Pos.Offset] = nodes
|
loader.nodes[entry.Pos.Offset] = nodes
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,11 +1,11 @@
|
||||||
package parser
|
package pbf
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"bytes"
|
"bytes"
|
||||||
"code.google.com/p/goprotobuf/proto"
|
"code.google.com/p/goprotobuf/proto"
|
||||||
"compress/zlib"
|
"compress/zlib"
|
||||||
structs "encoding/binary"
|
structs "encoding/binary"
|
||||||
"goposm/parser/osmpbf"
|
"goposm/parser/pbf/osmpbf"
|
||||||
"io"
|
"io"
|
||||||
"log"
|
"log"
|
||||||
"os"
|
"os"
|
|
@ -1,9 +1,9 @@
|
||||||
package parser
|
package pbf
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
"goposm/element"
|
"goposm/element"
|
||||||
"goposm/parser/osmpbf"
|
"goposm/parser/pbf/osmpbf"
|
||||||
"log"
|
"log"
|
||||||
"os"
|
"os"
|
||||||
)
|
)
|
|
@ -1,11 +1,11 @@
|
||||||
package parser
|
package pbf
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"bytes"
|
"bytes"
|
||||||
"code.google.com/p/goprotobuf/proto"
|
"code.google.com/p/goprotobuf/proto"
|
||||||
"compress/zlib"
|
"compress/zlib"
|
||||||
"fmt"
|
"fmt"
|
||||||
"goposm/parser/osmpbf"
|
"goposm/parser/pbf/osmpbf"
|
||||||
"io"
|
"io"
|
||||||
"log"
|
"log"
|
||||||
"os"
|
"os"
|
|
@ -4,7 +4,7 @@ import (
|
||||||
"goposm/cache"
|
"goposm/cache"
|
||||||
"goposm/element"
|
"goposm/element"
|
||||||
"goposm/mapping"
|
"goposm/mapping"
|
||||||
"goposm/parser"
|
"goposm/parser/pbf"
|
||||||
"goposm/stats"
|
"goposm/stats"
|
||||||
"os"
|
"os"
|
||||||
"runtime"
|
"runtime"
|
||||||
|
@ -48,14 +48,14 @@ func ReadPbf(cache *cache.OSMCache, progress *stats.Statistics, tagmapping *mapp
|
||||||
ways := make(chan []element.Way, 4)
|
ways := make(chan []element.Way, 4)
|
||||||
relations := make(chan []element.Relation, 4)
|
relations := make(chan []element.Relation, 4)
|
||||||
|
|
||||||
positions := parser.PBFBlockPositions(filename)
|
positions := pbf.PBFBlockPositions(filename)
|
||||||
|
|
||||||
waitParser := sync.WaitGroup{}
|
waitParser := sync.WaitGroup{}
|
||||||
for i := 0; int64(i) < nParser; i++ {
|
for i := 0; int64(i) < nParser; i++ {
|
||||||
waitParser.Add(1)
|
waitParser.Add(1)
|
||||||
go func() {
|
go func() {
|
||||||
for pos := range positions {
|
for pos := range positions {
|
||||||
parser.ParseBlock(
|
pbf.ParseBlock(
|
||||||
pos,
|
pos,
|
||||||
coords,
|
coords,
|
||||||
nodes,
|
nodes,
|
||||||
|
|
Loading…
Reference in New Issue