gpx-utils/cmd/save-gob/main.go

43 lines
892 B
Go

package main
import (
"encoding/gob"
"log"
"os"
"github.com/ray1729/gpx-utils/pkg/openname"
"github.com/ray1729/gpx-utils/pkg/placenames"
)
func main() {
log.SetFlags(0)
if len(os.Args) != 3 {
log.Fatal("Usage: %s INFILE OUTFILE", os.Args[0])
}
wc, err := os.OpenFile(os.Args[2], os.O_CREATE|os.O_RDWR|os.O_TRUNC, 0644)
if err != nil {
log.Fatal(err)
}
defer wc.Close()
enc := gob.NewEncoder(wc)
err = openname.ProcessFile(
os.Args[1],
func(r *openname.Record) error {
b := placenames.NamedBoundary{
Name: r.Name,
Type: r.LocalType,
County: r.CountyUnitary,
Xmin: r.MbrXMin,
Ymin: r.MbrYMin,
Xmax: r.MbrXMax,
Ymax: r.MbrYMax}
return enc.Encode(b)
},
openname.FilterType("populatedPlace"),
openname.FilterLocalType("Suburban Area").Complement(),
openname.FilterAreaGt(0),
)
if err != nil {
log.Fatal(err)
}
}