社区文档构建进行中,欢迎编辑。社区答疑群(非官方):717421103

全站通知:

地图工具常见问题处理

阅读

    

2021-12-22更新

    

最新编辑:顾小满real

阅读:

  

更新日期:2021-12-22

  

最新编辑:顾小满real

来自WIKI实验室WIKI_BWIKI_哔哩哔哩
跳到导航 跳到搜索
页面贡献者 :
顾小满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,这个页面可以自动维护

<div id="mapPointData" style="display:none">{ {{#arraymap: {{#ask:[[分类:地图点位数据]][[~Data:MapHD/*]]|link=none}} | , | @ | {{#replace: @ | Data:MapHD/type/ | }}:{{:@/json}} | ,}} }</div>

但是一旦点位特别多(总点位数量>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"]
			}));