Documentation
¶
Overview ¶
`go-http-tangramjs` is an HTTP middleware package for including Tangram.js assets in web applications. It exports two principal methods:
* `tangramjs.AppendAssetHandlers(*http.ServeMux)` which is used to append HTTP handlers to a `http.ServeMux` instance for serving Tangramjs JavaScript files, and related assets. * `tangramjs.AppendResourcesHandler(http.Handler, *TangramJSOptions)` which is used to rewrite any HTML produced by previous handler to include the necessary markup to load Tangramjs JavaScript files and related assets.
Example
import ( "embed" "github.com/aaronland/go-http-tangramjs" "html/template" "log" "net/http" ) //go:embed *.html var FS embed.FS func ExampleHandler(templates *template.Template) (http.Handler, error) { t := templates.Lookup("example") fn := func(rsp http.ResponseWriter, req *http.Request) { err := t.Execute(rsp, nil) return } return http.HandlerFunc(fn), nil } func main() { api_key := "****" style_url := "/tangram/refill-style.zip" t, _ := template.ParseFS(FS, "*.html") mux := http.NewServeMux() tangramjs.AppendAssetHandlers(mux) map_handler, _:= ExampleHandler(t) tangramjs_opts := tangramjs.DefaultTangramJSOptions() tangramjs_opts.NextzenOptions.APIKey = api_key tangramjs_opts.NextzenOptions.StyleURL = style_url map_handler = tangramjs.AppendResourcesHandler(map_handler, tangramjs_opts) mux.Handle("/", map_handler) endpoint := "localhost:8080" log.Printf("Listening for requests on %s\n", endpoint) http.ListenAndServe(endpoint, mux) }
Index ¶
Constants ¶
const NEXTZEN_MVT_ENDPOINT string = "https://tile.nextzen.org/tilezen/vector/v1/512/all/{z}/{x}/{y}.mvt"
NEXTZEN_MVT_ENDPOINT is the default endpoint for Nextzen vector tiles
Variables ¶
This section is empty.
Functions ¶
func AppendAssetHandlers ¶
func AppendAssetHandlers(mux *http.ServeMux, opts *TangramJSOptions) error
Append all the files in the net/http FS instance containing the embedded Tangram.js assets to an *http.ServeMux instance.
func AppendResourcesHandler ¶
func AppendResourcesHandler(next http.Handler, opts *TangramJSOptions) http.Handler
AppendResourcesHandler will rewrite any HTML produced by previous handler to include the necessary markup to load Tangram.js files and related assets.
Types ¶
type NextzenOptions ¶
type NextzenOptions struct { // A valid Nextzen developer API key APIKey string // The URL for a valid Tangram.js style. StyleURL string // The URL template to use for fetching Nextzen map tiles. TileURL string }
NextzenOptions provides configuration variables for Nextzen map tiles.
func DefaultNextzenOptions ¶
func DefaultNextzenOptions() *NextzenOptions
Return a *NextzenOptions struct with default values.
type TangramJSOptions ¶
type TangramJSOptions struct { // A list of Tangram.js Javascript files to append to HTML resources. JS []string // A list of Tangram.js CSS files to append to HTML resources. CSS []string // A NextzenOptions instance. NextzenOptions *NextzenOptions // A leaflet.LeafletOptions instance. LeafletOptions *leaflet.LeafletOptions // AppendJavaScriptAtEOF is a boolean flag to append JavaScript markup at the end of an HTML document // rather than in the <head> HTML element. Default is false AppendJavaScriptAtEOF bool RollupAssets bool Prefix string Logger *log.Logger // By default the go-http-tangramjs package will also include and reference Leaflet.js resources using the aaronland/go-http-leaflet package. If you want or need to disable this behaviour set this variable to false. AppendLeafletResources bool // By default the go-http-tangramjs package will also include and reference Leaflet.js assets using the aaronland/go-http-leaflet package. If you want or need to disable this behaviour set this variable to false. AppendLeafletAssets bool }
TangramJSOptions provides a list of JavaScript and CSS link to include with HTML output as well as options for Nextzen tiles and Leaflet.js.
func DefaultTangramJSOptions ¶
func DefaultTangramJSOptions() *TangramJSOptions
Return a *TangramJSOptions struct with default values.