0
最初に問題が発生した後、UnfoldingMap
をthe tutorialで説明したようにEclipseから使用できるようになりました。これはうまくいくようですが、draw()
メソッドが頻繁に高い頻度で呼び出され、CPUが100%になる原因となります。これは、マップ全体が描画された後でも、無期限に続きます。ここでは非常に簡単なテストアプリケーションのコードは次のとおりです。unfoldingMapはdraw()でループしています
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 Mapsは私のIPアドレスを禁止しているようだ。
すべてが引き出された後に、draw()
への繰り返し呼び出しを停止するにはどうすればよいですか?
を使用して、それを再開するには、あなたがいることを暗示していますdraw()関数が繰り返し呼び出されるのは設計上のことですか?いつnoLoop()を呼び出すのですか?つまり、すべてが描画されたことをどのように知っていますか? – fishinear
はい:draw()は、処理の「無限ループ」が約60回/秒呼び出されています。最初に '' frameRate(1) ''を試してみることをお勧めします。私はアンパッディングマップを使用していないので、動作が何であるかはわかりません(バックグラウンドスレッドでタイルをロードするか、Processingのアニメーションスレッドに依存しますか?) –
Processingには馴染みがありません。 。私はそれがアニメーション用であると仮定しますが、それはまだまだ独特のアプローチです。 – fishinear