簡體   English   中英

如何在OpenLayers中刷新TMS層?

[英]How do I refresh a TMS layer in OpenLayers?

我有一個TMS層,看起來像這樣:

var v = 1;
my_tms = new OpenLayers.Layer.TMS(
    "My TMS",
    "my_mapserver.php?v="+my_var+"&",
     { transparent: 'true', type:'png', getURL:get_my_url }
);

其中my_mapserver.php根據v的值返回地圖圖塊。

該應用程序允許用戶更改v,而我只是想刷新my_tms圖層,但是,到目前為止,我可以刷新它的唯一方法是銷毀地圖並重新創建它。

我以為我可以做這樣的事情:

v = 2;
my_tms = new OpenLayers.Layer.TMS(
    "My TMS",
    "my_mapserver.php?v="+my_var+"&",
     { transparent: 'true', type:'png', getURL:get_my_url }
);
my_tms.redraw();

但是,當我redraw()時,未要求這些磁貼。

任何幫助表示贊賞。

由於TMS圖層是從Grid圖層繼承的,因此您可以嘗試調用clearGrid()方法來刪除所有現有的圖塊,然后再調用spiralTileLoad()來加載新的圖塊。

layer.redraw(); OpenLayers.Strategy.RefreshclearGrid()不能幫助我重新加載OpenLayers 2.13.1中的OpenLayers.Layer.TMS層的圖塊,但可以幫助:

layer.mergeNewParams({});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM