Database 如何使用JS从数据库提供地图分幅

Database 如何使用JS从数据库提供地图分幅,database,leaflet,tiles,Database,Leaflet,Tiles,传单js需要以下磁贴源格式: {z} /{x}/{y}.png 如何使用JS从数据库而不是文件系统提供平铺图像 (和ASP.net)您需要编写一个服务器应用程序,用于读取请求URL,从数据库中提取磁贴,并通过web交付它们。JavaScript不直接从数据库读取。您需要编写一个服务器应用程序来读取请求URL,从数据库中提取分片,并通过web交付它们。JavaScript不直接从数据库中读取。这可以非常快速、无缝地处理传单: 显然,传单只是使用z,x,y的位置持有人要求特定的瓷砖 您如何生成和返回

传单js需要以下磁贴源格式:

{z} /{x}/{y}.png

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

您需要编写一个服务器应用程序,用于读取请求URL,从数据库中提取磁贴,并通过web交付它们。JavaScript不直接从数据库读取。

您需要编写一个服务器应用程序来读取请求URL,从数据库中提取分片,并通过web交付它们。JavaScript不直接从数据库中读取。

这可以非常快速、无缝地处理传单:

显然,传单只是使用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

这与传单的使用非常快速且无缝:

显然,传单只是使用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

谢谢,但我想出了一个好办法。传单仅指定z、x、y来请求特定的磁贴。您可以按自己的选择返回该磁贴。请参阅下面提供的答案。@tmcw我想你应该讨论db表的设计。谢谢,但我想出了一个很好的解决方案。传单仅指定z、x、y来请求特定的磁贴。您可以按自己的选择返回该磁贴。请参阅下面我提供的答案。@tmcw我想你应该讨论db表的设计。如果你知道,请分享知识……z代表zoom,但zoom在js传单中的作用是什么?当我们指定url localhost/tileserver{z}/{x}/{y}.png来加载平铺图像时,z做了什么?任何人都可以详细解释z/x/y的含义?对不起,我不理解4到23之间的z
z
以这种方式讨论我可以理解z或zoom在传单中的用法。z的用途是什么?z定义缩放级别,值越高,缩放级别越高。为什么不说为什么缩放级别需要?什么是缩放级别?我看到当我们用5个缩放级别生成平铺时,会创建5个父文件夹。如果你知道,请分享知识…z代表缩放,但在传单js中缩放是什么?当我们指定url localhost/tileserver{z}/{x}/{y}.png来加载平铺图像时,z做了什么?任何人都可以详细解释z/x/y的含义?对不起,我不理解4到23之间的z
z
以这种方式讨论我可以理解z或zoom在传单中的用法。z的用途是什么?z定义缩放级别,值越高,缩放级别越高。为什么不说为什么缩放级别需要?缩放级别是什么?我看到当我们用5个缩放级别生成平铺时,会创建5个父文件夹。