如何使用Leafletjs从数据库提供地图图块

时间:2015-04-19 16:47:24

标签: database leaflet tiles

Leaflet js需要以下tile源格式:

http://localhost/tileserver/ {Z} / {X} / {Y} .PNG

如何使用Leafletjs从数据库而不是文件系统提供平铺图像 (和ASP.net)

2 个答案:

答案 0 :(得分:2)

您需要编写一个服务器应用程序来读取请求URL,从数据库中提取磁贴,然后通过Web传送它们。 JavaScript不直接从数据库中读取。

答案 1 :(得分:2)

这与Leaflet非常快速无缝地协同工作:

显然,Leaflet只使用z,x,y占位符来请求特定的图块。

如何生成和返回瓷砖非常灵活

L.tileLayer('**http://localhost/tileserver/tile.aspx?z={z}&x={x}&y={y}**', {
    minZoom: 7, maxZoom: 16,
    attribution: 'My Tile Server'
}).addTo(map);

其中 Tiles.aspx

Option Strict On

Partial Class tile
    Inherits System.Web.UI.Page

    Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load
        Dim z, x, y As Integer

        z = CInt(Request.QueryString("z"))
        x = CInt(Request.QueryString("x"))
        y = CInt(Request.QueryString("y"))

        Dim b() As Byte = DB.GetTile(z, x, y)

        Response.Buffer = True
        Response.Charset = ""
        'Response.Cache.SetCacheability(HttpCacheability.NoCache)
        Response.ContentType = "image/png"
        Response.AddHeader("content-disposition", "attachment;filename=" & y & ".png")
        Response.BinaryWrite(b)
        Response.Flush()
        Response.End()
    End Sub