美文网首页
golang tile-server

golang tile-server

作者: hehehehe | 来源:发表于2020-10-02 11:19 被阅读0次
https://github.com/JasonJe/offline-tileServer

func (c *Context) AsciiJSON(code int, obj interface{})
func (c *Context) Data(code int, contentType string, data []byte)
func (c *Context) DataFromReader(code int, contentLength int64, contentType string,
reader io.Reader, extraHeaders map[string]string)
func (c *Context) HTML(code int, name string, obj interface{})
func (c *Context) IndentedJSON(code int, obj interface{})
func (c *Context) JSON(code int, obj interface{})
func (c *Context) JSONP(code int, obj interface{})
func (c *Context) ProtoBuf(code int, obj interface{})
func (c *Context) PureJSON(code int, obj interface{})
func (c *Context) Redirect(code int, location string)
func (c *Context) Render(code int, r render.Render)
func (c *Context) SecureJSON(code int, obj interface{})
func (c *Context) String(code int, format string, values ...interface{})
func (c *Context) XML(code int, obj interface{})
func (c *Context) YAML(code int, obj interface{})
package main

import "github.com/gin-gonic/gin"
import "io/ioutil"
import "fmt"

func main() {
    router := gin.Default()
    router.GET("/tile", func(c *gin.Context) {
        x := c.Query("x") 
        y := c.Query("y") 
        z := c.Query("z") 

        path := fmt.Sprintf("./tilefile/%s/%s_%s.png", z,x,y)
        fmt.Println(path)
        content, err := ioutil.ReadFile(path)
        if err != nil {
            fmt.Println(err)
        }
        //都可以
        c.Data(200, "image/png; charset=utf-8", content)
        //c.Writer.Write(content)
        //c.String(200,string(content))
        //c.Writer.WriteString(string(content))
        //c.Writer.WriteString(string(content))
    })
    router.Run(":8080")
}
<!DOCTYPE html>
<html>
    <head>
        <title>Tile Server</title>
        <meta charset="utf-8">
        <link href="https://cdn.bootcss.com/bootstrap/4.1.1/css/bootstrap.min.css" rel="stylesheet">
        <link href="https://cdn.bootcss.com/leaflet/1.3.1/leaflet.css" rel="stylesheet">
        <script src="https://cdn.bootcss.com/jquery/3.3.1/jquery.min.js"></script>
        <script src="https://cdn.bootcss.com/leaflet/1.3.1/leaflet.js"></script>
        <style TYPE="text/css">
            body {
                margin: 0px;
                padding: 0px;
            }

            html,
            body,
            #mapDiv {
                height: 100%;
                width: 100%;
            }
        </style>
    </head>
    <body>
        <div id="mapDiv">
        </div>
        <script>
            var url = 'http://192.168.1.7:8080/tile?x={x}&y={y}&z={z}';
            var latlng = new L.latLng(23.461, 111.921);
            var map = new L.map('mapDiv', {
                center: latlng,
                zoom:  12,
                detectRetina: true
            });

            L.tileLayer(url).addTo(map);
        </script>
    </body>
</html>

相关文章

网友评论

      本文标题:golang tile-server

      本文链接:https://www.haomeiwen.com/subject/ywdbuktx.html