私はグラフ作成Webアプリに取り組んでおり、リーフレットで適切なグラフビューを作成することにしました。私はそれを(ある種の)表示していますが、ユーザーがグラフに新しい数式を入力したときに強制的に更新する方法が必要です。
私も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);
});
これは機能しますが、ユーザーがクリックしても更新されません。イベントは確実に実行されます(テキスト表示を更新する他のコードは省略しました)。正しく表示されますが、ユーザーがビューを表示する機能を追加しても更新されず、リーフレットにキャッシュされた画像が引き続き表示される場合、新しいズームレベルまたはこれまでに表示されたことのない領域へのパンによってのみタイルが更新されます。私が持っている質問は、リーフレットにすべてを完全にリロードし、すべての画像をドロップしてリロードするように強制するにはどうすればよいですか?
編集は別の失敗した試みを追加しました