Assuming browser garbage collection cannot happen while we have listeners in the global registry, we need to listenOnce to avoid memory leaks with the tile queue.
When the plovr-jar is being invoked in the serve-precommit target, it needs
the JSON files in `test/` as well to have all requirements for headless testing.
This should also reenable running the testsuite on our continuous integration
server.
Previously we had both a `clean` and `reallyclean` in our Makefile; both
got lost when we switched to a python build.
A clean 'target' can be invoked by calling the build script with the '-c' flag:
./build.py -c
This commit readds the `reallyclean` target and lets it clean up a little more
than the Makefiles `clean` or `reallyclean` did. More files are deleted,
but only if these are being ignored inside of the repository (e.g. through
.gitignore files).
Instead of going into an unnecessary animation loop, we can simply wait to be notified when tiles load.
The WebGL renderer still sets frameState.animate true, but I think this too should be unnecessary (full page example works without it, side-by-side example shows it cannot yet be removed).
Instead of keeping track of wanted tile ranges, we can instead track wanted tiles individually. This provides enough for the map to know how to prioritize tiles and should be more efficient (no extra calls to extend tile ranges or check for tile containment within a range).
Without this change, tiles that are enqueued on the first rendering will always get priority `ol.TileQueue.DROP` because `map.frameState_` is not yet defined (meaning a single render call doesn't result in any tiles loading).
By maintaining separate R-Trees for each geometry type, we cover
the most critical query from the canvas renderer at higher
speeds. Using the filter's own evaluate method, we can now also
serve arbitrary queries, but they won't be fast.
Still needs unit tests.