繁体   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