maptiles

package
v0.0.0-...-a88d34c Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 7, 2017 License: BSD-3-Clause Imports: 19 Imported by: 0

Documentation

Index

Constants

View Source
const (
	SERVER_NAME string = "MapnikServer"
	VERSION     string = "0.1.6"
)
View Source
const (
	LOGGING_NAME string = SERVER_NAME + `-` + VERSION
)

Variables

View Source
var (
	Ligneous     seelog.LoggerInterface
	LogDirectory string = "log"
	LogLevel     string = "trace"
)
View Source
var ProxyClient = &http.Client{
	Timeout: time.Second * 30,
}

ProxyClient http client for server proxy tile layers.

Functions

func GetTileUrlParts

func GetTileUrlParts(path []string) (string, []uint64)

GetTileUrlParts gets layer, x, y and z parameters from string list.

func NewTileLayer

func NewTileLayer(w http.ResponseWriter, r *http.Request)

NewTileLayer creates new tile layer.

func NewTileRendererChan

func NewTileRendererChan(stylesheet string) chan<- TileFetchRequest

NewTileRendererChan creates channel for tile rendering

func ParseTileUrl

func ParseTileUrl(url_path string) (string, []uint64, error)

ParseTileUrl validates tile url and returns layer, x, y and z parameters for tile lookup.

func PingHandler

func PingHandler(w http.ResponseWriter, r *http.Request)

PingHandler provides an api route for server health check

func RandomIntBetween

func RandomIntBetween(min, max int) int

RandomIntBetween generates random int between min and max.

func SendJsonResponseFromByte

func SendJsonResponseFromByte(content []byte, w http.ResponseWriter, r *http.Request) int

SendJsonResponseFromByte Sends http json response from byte.

func SendJsonResponseFromInterface

func SendJsonResponseFromInterface(w http.ResponseWriter, r *http.Request, data interface{}) int

SendJsonResponseFromInterface sends http json response from inteface.

func SendJsonResponseFromString

func SendJsonResponseFromString(content string, w http.ResponseWriter, r *http.Request) int

SendJsonResponseFromString Sends http json response from string.

func SendXMLResponseFromString

func SendXMLResponseFromString(content string, w http.ResponseWriter, r *http.Request) int

SendXMLResponseFromString sends http xml response from string.

func ServerProfileHandler

func ServerProfileHandler(startTime time.Time, w http.ResponseWriter, r *http.Request)

ServerProfileHandler returns basic server stats.

func TMSErrorTile

func TMSErrorTile(w http.ResponseWriter, r *http.Request)

TMSErrorTile returns error response

func TMSRootHandler

func TMSRootHandler(w http.ResponseWriter, r *http.Request)

TMSRootHandler root handler for tms server.

func TMSTileMap

func TMSTileMap(start time.Time, lyr string, source string, w http.ResponseWriter, r *http.Request)

TMSTileMap returns list of TileSets for layer.

func TMSTileMaps

func TMSTileMaps(start time.Time, lyrs []string, w http.ResponseWriter, r *http.Request)

TMSTileMaps returns list of available TileMaps.

Types

type ApiReqestData

type ApiReqestData struct {
	TileLayerSource string `json:"source"`
	TileLayerName   string `json:"name"`
}

type ApiRequest

type ApiRequest struct {
	Method string        `json:"method"`
	Data   ApiReqestData `json:"data"`
}

type Generator

type Generator struct {
	MapFile string
	TileDir string
	Threads int
}

Generator struct for tile generation.

func (*Generator) Run

func (g *Generator) Run(lowLeft, upRight mapnik.Coord, minZ, maxZ uint64, name string)

Run generates tile files as a <zoom>/<x>/<y>.png file hierarchy in the current work directory.

type LayerMultiplex

type LayerMultiplex struct {
	// contains filtered or unexported fields
}

LayerMultiplex manages channels for tile requests.

func NewLayerMultiplex

func NewLayerMultiplex() *LayerMultiplex

NewLayerMultiplex creates LayerMultiplex struct.

func (*LayerMultiplex) AddRenderer

func (l *LayerMultiplex) AddRenderer(name string, stylesheet string)

AddRenderer addes render for tile layer.

func (*LayerMultiplex) AddSource

func (l *LayerMultiplex) AddSource(name string, fetchChan chan<- TileFetchRequest)

AddSource manages tile requests.

func (LayerMultiplex) SubmitRequest

func (l LayerMultiplex) SubmitRequest(r TileFetchRequest) bool

SubmitRequest submits tile request.

type TileCoord

type TileCoord struct {
	X, Y, Zoom uint64
	Tms        bool
	Layer      string
}

TileCoord struct for tile requests.

func (TileCoord) OSMFilename

func (c TileCoord) OSMFilename() string

OSMFilename formats png filename.

type TileDbPostgresql

type TileDbPostgresql struct {
	// contains filtered or unexported fields
}

TileDbPostgresql struct for PostgreSQL MBTile database. MBTiles 1.2-compatible Tile Db with multi-layer support. Was named Mbtiles before, hence the use of *m in methods.

func NewTileDbPostgresql

func NewTileDbPostgresql(path string) *TileDbPostgresql

NewTileDbPostgresql creates TileDbPostgresql struct. Creates database tables and initializes tile request channels.

func (*TileDbPostgresql) AddLayerMetadata

func (self *TileDbPostgresql) AddLayerMetadata(lyr string, stylesheet string)

AddLayerMetadata adds metadata t0 metadata table

func (*TileDbPostgresql) Close

func (self *TileDbPostgresql) Close()

Close tile request channels.

func (*TileDbPostgresql) GetTileLayers

func (self *TileDbPostgresql) GetTileLayers() (map[string]map[string]string, error)

GetTileLayers get metadata for all tilelayers.

func (TileDbPostgresql) InsertQueue

func (self TileDbPostgresql) InsertQueue() chan<- TileFetchResult

InsertQueue gets tile insert channel.

func (*TileDbPostgresql) MetaDataHandler

func (self *TileDbPostgresql) MetaDataHandler(lyr string) (map[string]string, error)

MetaDataHandler gets metadata from database.

func (TileDbPostgresql) RequestQueue

func (self TileDbPostgresql) RequestQueue() chan<- TileFetchRequest

RequestQueue gets tile request channel.

func (*TileDbPostgresql) Run

func (self *TileDbPostgresql) Run()

Run runs tile generation. Best executed in a dedicated go routine.

type TileDbSqlite3

type TileDbSqlite3 struct {
	// contains filtered or unexported fields
}

TileDbSqlite3 struct for SQLite3 MBTile database. MBTiles 1.2-compatible Tile Db with multi-layer support. Was named Mbtiles before, hence the use of *m in methods.

func NewTileDbSqlite

func NewTileDbSqlite(path string) *TileDbSqlite3

NewTileDbSqlite creates TileDbSqlite3 struct. Creates database tables and initializes tile request channels.

func (*TileDbSqlite3) AddLayerMetadata

func (self *TileDbSqlite3) AddLayerMetadata(lyr string, stylesheet string)

AddLayerMetadata adds metadata t0 metadata table

func (*TileDbSqlite3) Close

func (self *TileDbSqlite3) Close()

Close tile request channels.

func (*TileDbSqlite3) GetTileLayers

func (self *TileDbSqlite3) GetTileLayers() (map[string]map[string]string, error)

GetTileLayers get metadata for all tilelayers.

func (TileDbSqlite3) InsertQueue

func (self TileDbSqlite3) InsertQueue() chan<- TileFetchResult

InsertQueue gets tile insert channel.

func (*TileDbSqlite3) MetaDataHandler

func (self *TileDbSqlite3) MetaDataHandler(lyr string) (map[string]string, error)

MetaDataHandler gets metadata from database.

func (TileDbSqlite3) RequestQueue

func (self TileDbSqlite3) RequestQueue() chan<- TileFetchRequest

RequestQueue gets tile request channel.

func (*TileDbSqlite3) Run

func (self *TileDbSqlite3) Run()

Run runs tile generation. Best executed in a dedicated go routine.

type TileFetchRequest

type TileFetchRequest struct {
	Coord   TileCoord
	OutChan chan<- TileFetchResult
}

TileFetchRequest struct for tile request.

type TileFetchResult

type TileFetchResult struct {
	Coord   TileCoord
	BlobPNG []byte
}

TileFetchResult struct for tile result.

type TileRenderer

type TileRenderer struct {
	// contains filtered or unexported fields
}

TileRenderer renders images as Web Mercator tiles.

func NewTileRenderer

func NewTileRenderer(stylesheet string) *TileRenderer

NewTileRenderer creates TileRenderer struct.

func (*TileRenderer) HttpGetTileZXY

func (t *TileRenderer) HttpGetTileZXY(zoom, x, y uint64) ([]byte, error)

HttpGetTileZXY gets map tile another tile server.

func (*TileRenderer) RenderTile

func (t *TileRenderer) RenderTile(c TileCoord) ([]byte, error)

RenderTile renders map tile.

func (*TileRenderer) RenderTileZXY

func (t *TileRenderer) RenderTileZXY(zoom, x, y uint64) ([]byte, error)

RenderTileZXY renders map tile. Render a tile with coordinates in Google tile format. Most upper left tile is always 0,0. Method is not thread-safe, so wrap with a mutex when accessing the same renderer by multiple threads or setup multiple goroutinesand communicate with channels, see NewTileRendererChan.

type TileServerPostgresMux

type TileServerPostgresMux struct {
	TmsSchema bool

	Router *mux.Router
	// contains filtered or unexported fields
}

TileServerPostgresMux PostgresSQL tile server. Handles HTTP requests for map tiles, caching any produced tiles in an MBtiles 1.2 compatible sqlite db.

func NewTileServerPostgresMux

func NewTileServerPostgresMux(cacheFile string) *TileServerPostgresMux

NewTileServerPostgresMux creates TileServerPostgresMux object.

func (*TileServerPostgresMux) AddMapnikLayer

func (self *TileServerPostgresMux) AddMapnikLayer(layerName string, stylesheet string) error

AddMapnikLayer adds mapnik layer to server.

func (*TileServerPostgresMux) GetTileLayer

func (self *TileServerPostgresMux) GetTileLayer(w http.ResponseWriter, r *http.Request)

GetTileLayer gets metadata for tilelayer.

func (*TileServerPostgresMux) NewTileLayer

func (self *TileServerPostgresMux) NewTileLayer(w http.ResponseWriter, r *http.Request)

NewTileLayer creates new tile layer.

func (*TileServerPostgresMux) ServeTileRequest

func (self *TileServerPostgresMux) ServeTileRequest(w http.ResponseWriter, r *http.Request)

ServeTileRequest serves tile request.

func (*TileServerPostgresMux) ServerProfileHandler

func (self *TileServerPostgresMux) ServerProfileHandler(w http.ResponseWriter, r *http.Request)

ServerProfileHandler returns basic server stats.

func (*TileServerPostgresMux) TMSTileMap

func (self *TileServerPostgresMux) TMSTileMap(w http.ResponseWriter, r *http.Request)

TMSTileMap shows list of TileSets for layer

func (*TileServerPostgresMux) TMSTileMaps

func (self *TileServerPostgresMux) TMSTileMaps(w http.ResponseWriter, r *http.Request)

TMSTileMaps lists available TileMaps

func (*TileServerPostgresMux) TileLayersHandler

func (self *TileServerPostgresMux) TileLayersHandler(w http.ResponseWriter, r *http.Request)

TileLayersHandler returns list of tiles.

type TileServerSqliteMux

type TileServerSqliteMux struct {
	TmsSchema bool

	Router *mux.Router
	// contains filtered or unexported fields
}

TileServerSqliteMux SQLite3 tile server. Handles HTTP requests for map tiles, caching any produced tiles in an MBtiles 1.2 compatible sqlite db.

func NewTileServerSqliteMux

func NewTileServerSqliteMux(cacheFile string) *TileServerSqliteMux

NewTileServerSqliteMux creates TileServerSqliteMux object.

func (*TileServerSqliteMux) AddMapnikLayer

func (self *TileServerSqliteMux) AddMapnikLayer(layerName string, stylesheet string) error

AddMapnikLayer adds mapnik layer to server.

func (*TileServerSqliteMux) GetTileLayer

func (self *TileServerSqliteMux) GetTileLayer(w http.ResponseWriter, r *http.Request)

GetTileLayer gets metadata for tilelayer.

func (*TileServerSqliteMux) NewTileLayer

func (self *TileServerSqliteMux) NewTileLayer(w http.ResponseWriter, r *http.Request)

NewTileLayer creates new tile layer.

func (*TileServerSqliteMux) ServeTileRequest

func (self *TileServerSqliteMux) ServeTileRequest(w http.ResponseWriter, r *http.Request)

ServeTileRequest serves tile request.

func (*TileServerSqliteMux) ServerProfileHandler

func (self *TileServerSqliteMux) ServerProfileHandler(w http.ResponseWriter, r *http.Request)

ServerProfileHandler returns basic server stats.

func (*TileServerSqliteMux) TMSTileMap

func (self *TileServerSqliteMux) TMSTileMap(w http.ResponseWriter, r *http.Request)

TMSTileMap shows list of TileSets for layer

func (*TileServerSqliteMux) TMSTileMaps

func (self *TileServerSqliteMux) TMSTileMaps(w http.ResponseWriter, r *http.Request)

TMSTileMaps lists available TileMaps

func (*TileServerSqliteMux) TileLayersHandler

func (self *TileServerSqliteMux) TileLayersHandler(w http.ResponseWriter, r *http.Request)

TileLayersHandler returns list of tiles.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL