2

我有一个看起来像这样的 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();

但是,当我重绘()时,这些图块没有被请求。

任何帮助表示赞赏。

4

2 回答 2

1

由于 TMS 图层继承自 Grid 图层,您可以尝试调用 clearGrid() 方法来删​​除所有现有的切片,然后调用spiralTileLoad() 来加载新的切片。

于 2011-02-07T21:23:07.133 回答
0

layer.redraw();OpenLayers.Strategy.RefreshclearGrid()没有帮助我重新加载OpenLayers.Layer.TMSOpenLayers 2.13.1 中的图层切片,但帮助:

layer.mergeNewParams({});
于 2014-02-11T10:55:37.953 回答