我正在开发一个图形网页应用程序,我决定使用leaflet作为图形视图。我已经实现了(有点)显示,但是我需要一种方法在用户输入新的图形公式时强制更新。
我也在使用JQuery,但这不重要。下面是相关代码:
function formulaChange(formula){
//submits a request to the server to add a graph to display
map.setView(map.getCenter(),map.getZoom(),true);//doesn't work
//and neither does:
//map.fire('viewreset');
//tiles.redraw();
}
function enterHandler(event){
if(event.keyCode==13){
formulaChange(document.getElementById("formula").value);
}
}
var map;
var tiles;
$(document).ready(function(){
map=L.map('plot',{crs:L.CRS.Simple}).setView([0,0],10);
//url is actually a servlet on the server that generates an image on the fly
tiles = L.tileLayer('./GraphTile.png?x={x}&y={y}&z={z}&tilesize={tileSize}&{s}',
{
maxZoom: 20,
continuousWorld: true,
tileSize: 128,
//subdomains used as a random in the URL to prevent caching
subdomains: 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890'
}
).addTo(map);
});
这段代码可以运行,但用户点击时无法刷新,事件肯定正在运行(我省略了其他更新文本显示的代码)。它正确地显示了,但是当用户添加一个函数来显示视图时,视图永远不会更新,leaflet继续显示缓存的图像,只有新的缩放级别或者在尚未查看过的区域中平移才会导致它更新瓦片。我的问题是:我如何强制leaflet完全重新加载所有内容,并且删除并重新加载所有图像?
编辑添加了另一种失败的尝试。