模板:Map/doc
< 模板:Map
使用维基上的图片来生成一个互动地图(需要与相关的JS和CSS配合)。
参数 | 描述 | 类型 | 状态 | |
---|---|---|---|---|
单页地图图片名称 | map | 作为单页地图的图片文件名称,若设定了该项,则地图会以单页模式运作
| 文件 | 可选 |
区块地图名称模板 | tiletemplate | 用于生成区块图片名的模板(需包含$x、$y、$z),若设定了该项,且没有设定map参数,那么地图会以区块模式运作
| 字符串 | 可选 |
区块地图边界 | tilebounds | 最高缩放等级下,地图的宽度与高度(用半角逗号分隔),在区块地图模式下必须填写该项
| 字符串 | 可选 |
区块大小 | tilesize | 区块地图中每个区块的宽度与高度(用半角逗号分隔),在区块地图模式下必须填写该项
| 字符串 | 可选 |
区块地图缩放等级 | tilezoom | 区块地图的缩放下限与上限(用半角逗号分隔),在区块地图模式下必须填写该项
| 字符串 | 可选 |
标记数据页面名 | markers | 指定存放标记数据的页面名,格式为“Data:XXX.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”(区块模式)。 - 若要使用区块模式,那么用户必须设定
tiletemplate
、tilesize
、tilebounds
和tilezoom
参数。缺少上述任何参数都可能导致地图出现异常。- 如果使用辅助工具来生成模板代码,那么上述参数会自动生成,无需用户自行计算。
- 区块模式的单次缩放倍率为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; }}
上面的代码将产生如下效果: