我有一个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()方法时,并没有请求这些平铺文件。
任何帮助都是非常感谢的。
发布于 2011-02-08 05:23:07
由于TMS层继承自网格层,因此您可以尝试调用clearGrid()方法来删除所有现有的瓦片,然后调用spiralTileLoad()来加载新的瓦片。
发布于 2014-02-11 18:55:38
layer.redraw();、OpenLayers.Strategy.Refresh和clearGrid()没有帮助我在OpenLayers 2.13.1中重新加载OpenLayers.Layer.TMS层的tiles,但却帮助了我:
layer.mergeNewParams({});https://stackoverflow.com/questions/4925687
复制相似问题