golang tile-server

golang才是未来 · · 966 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

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.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才是未来

查看原文:golang tile-server

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

966 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传