在更新地图上显示的地图文件中的饼图大小后(点击按钮),我需要刷新openlayers地图。我无法刷新整个页面或丢失数据。它在我改变缩放级别时有效。我试过map.updateSize()(无效果),map.render()(TypeError“a”未定义),layer.redraw()。我不确定我是否遗漏了与openlayers相关的内容,或者我的javascript是否存在问题。我查看了很多帖子,但似乎无法得到任何有效的答案。
$(document).ready(function() {
map = new OpenLayers.Map( 'map' ,
{ maxExtent: new OpenLayers.Bounds({{bounds.0}}, {{bounds.1}}, {{bounds.2}}, {{bounds.3}}),
controls:[new OpenLayers.Control.Navigation(),
new OpenLayers.Control.LayerSwitcher(),
new OpenLayers.Control.PanZoomBar()],
numZoomLevels:20
}
);
var mpLayer = new OpenLayers.Layer.MapServer('Zones Layer', '{{ mapserverpath }}', {
map:'{{mapFile}}',
layers:'all',
isBaseLayer: 'true'
},{
singleTile: 'true'
// ratio: 2.0
}
);
map.addLayers([mpLayer]);
//map.setCenter(new OpenLayers.LonLat(lon, lat), zoom);
map.zoomToMaxExtent();
map.events.register("click", map, qryDB );
$(document).on('click', '#bttnMinus', function(){
pieFact*=0.5;
updatePieFact();
mpLayer.redraw();
});
$(document).on('click', '#bttnPlus', function(){
pieFact*=1.5;
updatePieFact();
mpLayer.redraw();
});
$(document).on('click', '#bttnReset', function(){
pieFact=1.0;
updatePieFact();
mpLayer.redraw();
});
});
答案 0 :(得分:0)
您可以在重绘之前尝试调用"clearGrid()"函数。
“clearGrid()”是 Layer.Grid 的函数( Layer.MapServer 继承自 Layer.Grid )。它会破坏图层的每个图块。
请注意“clearGrid()”不是APIMethod,因此不应该以这种方式调用它。
还有类似的问题/答案here。
答案 1 :(得分:0)
试试这个。它对我有用。
$(窗口).trigger('调整&#39);
此代码再次设置屏幕。