Commit Graph

106 Commits

Author SHA1 Message Date
Tom Payne
dfb631a08f Replace getTile with getTileZXY
This massively reduces the number of temporary ol.TileCoord objects.

Previously an ol.TileCoord object was generated for every potentially
visible tile at the current zoom level and lower, every frame.  This
commit eliminates all of those.  Now new ol.TileCoord objects are only
allocated when a new tile is created.
2013-03-24 15:24:49 +01:00
Tom Payne
80df629319 Premptively load low resolution tiles 2013-03-22 21:02:09 +01:00
Tom Payne
e3abe376f1 Remove ol.source.TileSource.useLowResolutionTiles 2013-03-22 21:02:06 +01:00
Éric Lemoine
1d575309da Tile renderers needn't listen for tile change 2013-03-21 10:29:01 +01:00
Tom Payne
8b5194da38 Merge pull request #338 from twpayne/snap-center-to-pixel2
Snap center to pixel
2013-03-11 08:41:28 -07:00
Tom Payne
505c607ccb Use snapCenterToPixel in DOM renderer 2013-03-10 16:14:15 +01:00
Tom Payne
b729f969a7 Add EMPTY tile state instead of using null for empty tiles 2013-03-08 14:41:14 +01:00
Éric Lemoine
f55423d575 Register change listeners for loading tiles only
With this commit we register a change listener at a time when we are guaranteed that the listener will be called. In this was we don't need to remove listeners when the tile is dropped from the tile queue. And to avoid busy-polling between IDLE and LOADING we rely on the map to call requestRenderFrame when new tiles change to LOADING from IDLE.
2013-03-07 11:03:20 +01:00
Éric Lemoine
4e758f87ae Do not register multiple listeners on same tile 2013-03-05 17:01:34 +01:00
ahocevar
586f393492 Support tile sources without configured projection
This change adds a lot of flexibility to working with tile
layers: Sources where the server projection or tile grid do not
matter can now be constructed without specifying a projection or
tile grid.

The tileUrlFunction/imageUrlFunction now also creates updated
URLs when the params of the layer change, so things like
mergeNewParams in ol2 will be possible.

A nice side effect of this whole change is that there is no more
duplicated code between tiled and single image WMS layers.

While I was at it, I also fixed a WMS 1.1.1 axis order issue
and incorrect STYLES params (STYLES=& instead of STYLES&).
2013-03-05 00:46:58 +01:00
Frédéric Junod
cad215e0cc Merge pull request #230 from fredj/touch-navigation
Touch navigation issues
2013-03-04 00:42:59 -08:00
Bruno Binet
2816e3256c Add support for multiple tileSizes in the tilegrid.
This is needed by WMTS.
2013-03-03 20:43:46 +01:00
Bruno Binet
f7a895a823 Remove unused tileGrid.getTileSize() call. 2013-03-03 20:43:45 +01:00
Frederic Junod
66d4c44159 Rename ol.ViewHint.PANNING to ol.ViewHint.INTERACTING 2013-03-03 10:44:58 +01:00
Tom Payne
6ce3ebba5b Merge pull request #226 from twpayne/preserve-low-resolution-tiles
Preserve low resolution tiles
2013-02-22 02:14:41 -08:00
Tom Payne
4c9b70fa5c Move useLowResolutionTiles from layer renderer to tile source 2013-02-21 16:47:10 +01:00
Tom Payne
47e799ced0 Mark all low resolution tiles as used to prevent cache expiration 2013-02-21 16:19:38 +01:00
Tom Payne
fabcb313f1 Satisfy JSLint
JSLint complains about functions being declared in blocks.
2013-02-21 15:13:33 +01:00
Tim Schaub
80dc7b5bf7 Accept custom isLoaded method in findLoadedTiles method 2013-02-19 12:13:58 -07:00
Tim Schaub
ddf993f0c9 Factor out common code and test
The findInterimTiles method was used in three renderers.  This change makes it available on the tile source and adds some basic tests.
2013-02-18 14:18:08 -07:00
Tim Schaub
3c4d218ec5 Only listen for first event 2013-02-07 14:06:05 -07:00
Tim Schaub
e079c19413 Don't repeatedly render while waiting for tiles to load
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).
2013-02-06 16:10:46 -07:00
Tim Schaub
2bd29ff60e Only track tiles that are actually wanted
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).
2013-02-06 16:08:24 -07:00
Tom Payne
e6eb401e36 Add missing goog.requires 2013-01-30 23:47:13 +01:00
Tom Payne
b6f856f962 Remove unused goog.requires 2013-01-30 22:48:03 +01:00
Éric Lemoine
8713e84821 Change class names in DOM renderer 2013-01-29 10:24:25 +01:00
Tom Payne
b770aaa2f5 Add tile cache expiry infrastructure 2013-01-23 14:31:24 +01:00
Tom Payne
4846a6a7b3 Only update wanted tiles if not all tiles are loaded 2013-01-19 15:03:01 +01:00
Tom Payne
3ec2014ad1 Rename tileUsage to usedTiles 2013-01-19 15:03:01 +01:00
Tom Payne
1c524caae6 Discard unwanted tiles from tile queue 2013-01-19 15:03:01 +01:00
Tom Payne
b880ab80ee Factor out updateTileUsage 2013-01-17 11:51:38 +01:00
Tom Payne
9fbabc3696 Refactor attribution control 2013-01-16 16:34:31 +01:00
Tom Payne
c679bccbb9 Join short lines 2013-01-14 20:53:00 +01:00
Tom Payne
8966e17b89 Structure DOM renderer code to be more similar to WebGL renderer code 2013-01-14 16:33:15 +01:00
Tom Payne
8ced15ce2e Move closure out of loop, and use loop rather than forEachTileCoord 2013-01-14 16:21:58 +01:00
Tom Payne
0916f14536 Use a loop rather than tileRange.forEachTileCoord 2013-01-14 16:21:58 +01:00
Tom Payne
3febb24529 Don't remove tiles when animating 2013-01-14 12:35:54 +01:00
Tom Payne
2ea6f0903c Don't remove tiles while panning 2013-01-14 12:35:54 +01:00
Tom Payne
8b39e8f7f0 Relax type slightly 2013-01-12 23:13:34 +01:00
Tom Payne
513787147c Merge pull request #106 from twpayne/re-enable-jsdoc
Re-enable jsdoc
2013-01-12 03:28:19 -08:00
Tom Payne
c5a0205cf8 Merge pull request #103 from twpayne/tile-queue
Tile queue
2013-01-12 03:26:43 -08:00
Tom Payne
82fc5c6c9d Clean up DOM renderer code for untested minor performance advantages 2013-01-12 01:12:27 +01:00
Tom Payne
48ee9e75a4 Add empty descriptions to work around jsdoc 2013-01-12 00:51:36 +01:00
Tom Payne
52df441cf8 Add tile queue 2013-01-11 16:18:07 +01:00
Tom Payne
f3cace499c Implement frame state and animation architecture 2013-01-11 15:48:24 +01:00
Tom Payne
9194a4b4eb Round transformation values to six decimal places 2013-01-10 16:43:42 +01:00
Tom Payne
aba686d22d Refactor DOM renderer to use only CSS transforms 2013-01-10 16:43:42 +01:00
Éric Lemoine
927cffb2b7 Add view abstraction 2013-01-09 14:03:16 +01:00
Tom Payne
ddee13d6eb Fix non-view-related typecasts in ol.renderer.dom.TileLayer 2013-01-07 13:19:00 +01:00
Tom Payne
7a36793776 Port DOM renderer to request render frame architecture 2013-01-03 14:51:15 +01:00