aboutsummaryrefslogblamecommitdiff
path: root/main.go
blob: e48230b28b935363c9109012dde6e6a478b752e2 (plain) (tree)
1
2
3
4
5
6
7
8
9



                                                           



                                     
                                                
































                                                                       
                                                                    


                                  




                                                     


                                   
/*
Copyright © 2020 Alexander Kiryukhin <a.kiryukhin@mail.ru>
This file is part of StaticMap project.
*/
package main

import (
	"github.com/labstack/echo/v4"
	"github.com/neonxp/StaticMap/pkg/static"
	"log"
	"strconv"
)

func main() {
	e := echo.New()
	e.GET("/map", func(c echo.Context) error {
		lat, err := strconv.ParseFloat(c.QueryParam("lat"), 64)
		if err != nil {
			return err
		}
		lon, err := strconv.ParseFloat(c.QueryParam("lon"), 64)
		if err != nil {
			return err
		}
		w, err := strconv.Atoi(c.QueryParam("w"))
		if err != nil {
			w = 800
		}
		h, err := strconv.Atoi(c.QueryParam("h"))
		if err != nil {
			h = 800
		}
		zoom, err := strconv.Atoi(c.QueryParam("zoom"))
		if err != nil {
			zoom = 16
		}
		if zoom < 1 {
			zoom = 1
		}
		if zoom > 20 {
			zoom = 20
		}
		img, err := static.GetMapImage(lat, lon, zoom, w, h)
		if err != nil {
			return err
		}
		blob, err := static.AsBytes(img)
		if err != nil {
			return err
		}
		return c.Blob(200, "image/png", blob)
	})
	log.Fatal(e.Start(":8000"))
}