社区文档构建进行中,欢迎编辑。社区答疑群(非官方):717421103
地图工具常见问题处理
阅读
2021-12-22更新
最新编辑:顾小满real
阅读:
更新日期:2021-12-22
最新编辑:顾小满real
点位不显示
仔细检查工具的两个主表Data:Map/type/json和Data:Map/point.json,可以解决大部分这个问题
丢失分隔符
Data:Map/type/json表格中常见的问题就是丢失分隔符“,”“[”或者“]”,出现这个问题会导致点位列表消失
未增加点位列表
在Data:Map/type/json这个表中添加了新点位类型之后,也要在Data:Map/point.json表格中添加对应的点位,同样会有丢失分隔符“,”“[”或者“]”可能
点位过多导致页面爆掉
当点位总数很多的时候(约7000+),Data:Map/point.json会被写爆,导致点位消失。需要对Data:Map/point.json进行分表,例如 Data:Map/point1.json Data:Map/point2.json
为了把散落在编号页面的点位数据集中在一个有缓存的实际页面,地图工具只请求这一个页面就可以拿到全部的点位数据。
因为这个页面相当于调用所有点位的信息,当点位信息总量超过一个wiki页面的容量上限(2M)的时候,就需要使用多页面分流信息以避免地图崩掉。
点位较少的时候(总点位数量≤7000)可以使用这个页面Data:MapHD/point.json,这个页面可以自动维护。
但是一旦点位特别多(总点位数量>7000)就会因为超出页面可调用的模板上限(MediaWiki机制导致)使地图功能报错,所以在点位较多的情况下就需要手动维护这样的页面:Data:Map/point.json。
如果点位过多还需要拆表,例如创建一个Data:Map/point2.json,以此类推。
通过Widget:Map3/main页面的dataList
字段增加点位表,如下:
var $ready = function () {
$.fn.swipe = swipe;
$("#map-wrap").swipe();
mapApi.set({game: 'ys', site: mw.config.get("wgGameName"), dataPrefix: 'Data:Map'})
ko.applyBindings(mapModel = new MapModel(mapData.default = {
game: 'ys',
site: mw.config.get("wgGameName"),
mapid: 'map3',
dataPrefix: 'Data:Map',
mapCenter: [-51.085105, 38.289228],
srcVersion: '3.0.13',
isPhone: window.innerWidth < 540,
toolbox: mw.config.get("wgUserGroups").indexOf("sysop") !== -1,
dataList: ["point.json", "point2.json"]
}));