如何使用map.render()刷新ol3地图?

时间:2015-04-27 17:40:49

标签: openlayers-3

每次删除功能时我都会尝试刷新地图但没有成功。 我已经阅读了map.render()和map.renderSync()方法,你可以做到但我还没有找到任何例子。

有人能告诉我如何使用它们只刷新地图而不刷新整个页面吗?或者,如果还有其他方法可以做到这一点?

非常感谢你!

2 个答案:

答案 0 :(得分:0)

我在http://www.codeitive.com/0SmVVPVVPj/ol3-force-redraw-layer.html找到了这个很好的解决方法:

- (void)buttonAction:(id)sender {
    [[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"save"];
}

- (void)viewDidLoad {
    BOOL hasSaved = [[NSUserDefaults standardUserDefaults] boolForKey:@"save"];
    if (hasSaved) {
        // You can hide your button here if that's what you're going for
        [yourButton setHidden:YES]
    }
}

答案 1 :(得分:0)

我也尝试使用map.render()和map.renderSync(),但它没有预期的效果。在这里,我给你一些提示,就像刷新地图一样。

在下面的代码中我稍微移动了地图的视图中心。这在视觉上不影响克林特方面。

   //After performing your desire action like change VectorLayer style... use below code for refresh map.
    var mapCenter = map.getView().getCenter(); //Get map's view center
    var newCenter = [mapCenter[0] - 0.001, mapCenter[1] - 0.001]; //move slightly 
    map.getView().setCenter(newCenter);//Set map's view center