模板:Map

来自俄罗斯方块中文维基
模板文档

使用维基上的图片来生成一个互动地图(需要与相关的JS和CSS配合)。

模板参数

参数描述类型状态
单页地图图片名称map

作为单页地图的图片文件名称,若设定了该项,则地图会以单页模式运作

示例值
我的地图.png
文件可选
区块地图名称模板tiletemplate

用于生成区块图片名的模板(需包含$x、$y、$z),若设定了该项,且没有设定map参数,那么地图会以区块模式运作

示例值
MyMap-$z-$y-$x
字符串可选
区块地图边界tilebounds

最高缩放等级下,地图的宽度与高度(用半角逗号分隔),在区块地图模式下必须填写该项

示例值
2000,2000
字符串可选
区块大小tilesize

区块地图中每个区块的宽度与高度(用半角逗号分隔),在区块地图模式下必须填写该项

示例值
200,200
字符串可选
区块地图缩放等级tilezoom

区块地图的缩放下限与上限(用半角逗号分隔),在区块地图模式下必须填写该项

示例值
0,2
字符串可选
标记数据页面名markers

指定存放标记数据的页面名,格式为“Data:XXX.json”;如果不设定该参数,那么本零件会根据地图名自动指定一个页面

示例值
Data:MyMap.json
页面名称推荐
初始缩放倍率initialzoom

地图的初始缩放倍率,默认为0

数字可选
初始X坐标initiallocx

地图的初始X坐标,默认为地图中心

数字可选
初始Y坐标initiallocy

地图的初始Y坐标,默认为地图中心

数字可选
容器样式style

为地图容器设定额外样式

字符串可选

运作模式

  • 互动地图零件共有两种运作模式:单页模式和区块模式。
    • 单页模式:使用一张完整的图片来作为地图。
      • 优点:配置简单,适合小型地图(尺寸小于1500x1500px)。
      • 缺点:流量消耗大(每次都会载入完整的地图);无法加载大型地图(灰机站点规定上传图片不能大于10MB)。
    • 区块模式:以区块的方式来加载地图。
      • 优点:能够加载大型地图;分块加载,流量消耗小。
      • 缺点:配置相对复杂(建议通过辅助工具来上传图片/设置参数)。
  • 零件会根据参数设置来判定使用的运作模式
    • 如果设定了map参数,那么地图会使用单页模式。
    • 如果设定了tiletemplate参数,并且没有设定map参数,那么地图会使用区块模式。
  • 无论互动地图使用哪种运作模式,其图床均依托于灰机的服务。因此所有使用的图片必须先在当前站点内上传。

相关说明

  • 标记数据页面名参数markers必须指向一个页面内容类型为json的页面。一般来说,位于Data命名空间下且后缀为.json的页面(比如“Data:MyMap.json”)均满足上述要求。如果用户未指定markers参数,那么本零件会根据当前的地图模式,将标记数据页面设定为“Data:图片名.json”(单页模式)或“Data:名称模板.json”(区块模式)。
  • 若要使用区块模式,那么用户必须设定tiletemplatetilesizetileboundstilezoom参数。缺少上述任何参数都可能导致地图出现异常。
    • 如果使用辅助工具来生成模板代码,那么上述参数会自动生成,无需用户自行计算。
  • 区块模式的单次缩放倍率为4(即每层的区格的长度与宽度均为上一层区格的2倍)。这个倍率目前无法通过参数修改。如果用户没有使用辅助工具来上传图片,那就必须自行确保每层地图的大小符合缩放倍率。

辅助工具

  • 对于区块模式所使用的图片,可通过ImageSlicer上传。
    • 该工具已包含在本零件内。

代码示例

注意:示例中使用的图片和数据页面并不包含在零件内。因此,在搬运后,示例中的地图可能无法正常显示。

单页地图

{{Map
| map = Astroneer.png
| markers = data:Astroneer.json
| style = height:400px;
}}

上面的代码将产生如下效果:

区块地图

{{Map
| tiletemplate = TestMap-$z-$y-$x.png
| tilesize = 400,400
| tilebounds = 11658,6112
| tilezoom = 0,3
| markers = data:TestMap-$z-$y-$x.json
| style = height:400px;
}}

上面的代码将产生如下效果: