Skip to content

thomersch/grandine

master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
cmd
 
 
 
 
lib
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Grandine

GoDoc Build Status

This repository contains libraries and command line tools for working with geospatial data. It aims to streamline vector tile generation and provides tooling for standardized geo data serialization.

Initial work has been funded by the Prototype Fund, powered by Open Knowledge Foundation Germany and the German Ministry for Research and Education.

Prototype Fund Bundesministerium für Bildung und Forschung Open Knowledge Foundation Deutschland

Spaten File Format

If you are looking for documentation on the Spaten geo spatial file format, look here. The Go implementation resides inside lib/spaten.

Requirements

  • Go ≥ 1.11, Go 1.14 recommended
  • GEOS
  • LevelDB

Quickstart

If you have built a Go project before, you probably already know what to do. If not:

  • Make sure you have Go installed. Preferably version 1.9 or higher. (If you can, use 1.10 or newer as it allows for some impactful performance improvements)
  • Execute go get -u github.com/thomersch/grandine. This will checkout a current version of the code into ~/go/src/github.com/thomersch/grandine
  • Go to the checkout directory. Execute make build, this will put all executables into the bin directory.
  • All the executables can be called with the -help flag which will print out basic usage info.

Tips

How to concatinate/merge multiple spaten files into one

grandine-converter -in fileA,fileB,fileC -out outfile

Alternatively, if you want to use a pipe:

grandine-converter -in fileA,fileB,fileC | your-app-here

How to render a tile set from a spaten file

grandine-tiler -in some_geodata.spaten -zoom 9,10,11 -out tiles/

By default, all data will be on the default layer.

Structure

  • fileformat contains a draft spec for a new geo data format that aims to be flexible, with a big focus on being very fast to serialize/deserialize.
  • In lib you'll find a few Go libraries that provide a few primitives for handling spatial data:
    • lib/spatial contains functionality for handling points/lines/polygons and basic transformation operations. If you miss functionality, feel free to send a Pull Request, it would be greatly appreciated.
    • lib/mvt contains code for serializing Mapbox Vector Tiles.
  • There are a few command line tools in cmd:
    • converter is a helper tool for converting and concatenating geo data files
    • spatialize converts OpenStreetMap data into a Spaten data file as defined in fileformat
    • tiler generates vector tiles from spatial data