UnfoldingMap 忙于在 draw() 上循环

UnfoldingMap busy looping on draw()

经过最初的一些麻烦后,我现在已经 UnfoldingMap 从 Eclipse 开始工作,如 the tutorial 中所述。这似乎工作正常,但 draw() 方法被高频率重复调用,导致 CPU 达到 100%。这种情况会无限期地继续下去,甚至在绘制完整张地图之后也是如此。这是非常简单的测试应用程序的代码:

public class SimpleMapApp extends PApplet {

    UnfoldingMap map;

    public void setup() {
        size(800, 600);
        map = new UnfoldingMap(this, new Microsoft.AerialProvider());
    }

    public void draw() {
        map.draw();
    }

    public static void main(String[] args) {
        PApplet.main("SimpleMapApp");
    }
}

通过在 draw 方法中放置一个 sleep(),我可以看出它与瓷砖绘制有关,每次调用 draw() 都会绘制几个瓷砖。我认为它还保持从服务器以高速率加载地图图块;至少 Google 在我一开始使用他们的服务器后,地图似乎已经禁止了我的 IP 地址。

如何在绘制完所有内容后停止对 draw() 的重复调用?

有几个选项可以控制调用 draw 方法的方式:

  1. 使用frameRate()
  2. 使用noLoop() and resume it using loop()
  3. 手动暂停执行