Commit Graph

294 Commits

Author SHA1 Message Date
ahocevar bc5054399c Typo in API docs; use "map-resize" option in example 2013-03-27 21:11:15 +01:00
ahocevar 434178ef49 Making backbuffer order configurable
In OpenLayers 2.12, the backbuffer for each layer was placed right below
the layer itself. With animated zooming, that was changed so backbuffers
are all placed below the base layer. As it turned out, this is only good
for certain kinds of layers (e.g. street labels), so the default now is
to place the backbuffer right below its layer again. But the
transitionEffect option can now have a new value, 'map-resize', which will
cause the backbuffer to be placed below the base layer.
2013-03-27 17:46:36 +01:00
ahocevar fe172ccf6e Backbuffer needs z-index
Since we don't rely on the DOM order for layers, we also cannot rely on it
for backbuffers. This change simply adds a sensible z-index to the
backbuffer container.
2013-03-27 16:19:58 +01:00
ahocevar 246d2d99d3 Merge pull request #920 from ahocevar/backbuffer-conditional
Backbuffer and transitionend only when there are tiles. r=@bartvde
2013-03-27 07:14:51 -07:00
ahocevar 316c1888d2 Use the last child of the container only if loading was aborted
Otherwise we may pick a tile that is already half way through the
transition, which will cause the backbuffer to go away too early.
2013-03-26 14:48:23 +01:00
Bart van den Eijnden e6dafa5d01 add default value for ratio to the api docs 2013-03-26 13:13:35 +01:00
ahocevar 7f18a7b3df Backbuffer and transitionend only when there are tiles
When an application zooms the map programmatically right after
initialization, there will be an empty backbuffer. This should be avoided,
because it adds an unnecessary DOM element.

The tile.onLoadEnd handler registers a transitionend listener on the image
of the last loaded tile. But if loading was aborted, there will be no
image. The new logic registers the transitionend event on the last child
of the layer div, which is not necessarily the tile we're handling loadend
for. When the backbuffer is empty (i.e. no tile was loaded at the time the
backbuffer was created), it will be removed immediately.
2013-03-26 11:53:27 +01:00
ahocevar 3dea8dacb4 Using the correct parent node
When we have a Google base layer, the parent node of the base layer's div
will be a different one.
2013-03-13 08:06:41 +01:00
Tim Schaub 0cf9833362 Resize transitions by default 2013-02-14 15:18:07 -07:00
ahocevar 4b163e0482 Merge pull request #800 from ahocevar/transform
Use GPU where available; animated zooming. r=@elemoine
2013-02-14 01:15:18 -08:00
ahocevar d0249643b3 Incorporating @elemoine's review comments 2013-02-14 10:11:48 +01:00
Marc Jansen a34e627b75 Remove dangling space in license header. 2013-02-07 10:33:20 +01:00
ahocevar c742c14a52 Safeguard against listeners that recreate the grid
We need to handle the backbuffer before we fire the loadend event.
Otherwise listeners that call e.g. mergeNewParams() will cause the
backbuffer removal code to fail, because tile.imgDiv (and hence
this._transitionElement) will be null.
2013-01-17 16:24:15 +01:00
Bart van den Eijnden d7f013ddbd when cloning a layer that is loading, make sure numLoadingTiles is reset to 0 on the clone 2013-01-16 16:26:51 +01:00
ahocevar 2cd14dfbfd No .olTileReplacing class for singleTile layers
This fixes a regression for singleTile layers with transitionEffect set to
'resize', where the .olTileReplacing class was not removed from the tile.
2013-01-15 13:08:48 +01:00
ahocevar 9b7e35d1dd Merge branch 'master' of github.com:openlayers/openlayers into transform
Conflicts:
	theme/default/style.css
2013-01-09 14:31:52 +01:00
Tim Schaub bbc73a21d8 Update copyright date 2013-01-07 22:01:16 -05:00
ahocevar c8564838bc When the resolution does not change, remove backbuffer tile by tile
This change introduces a new 'replace' mode for tile transitions: when the
resolution does not change, which happens when mergeNewParams is called,
the tile will be marked with the .olTileReplace class. If this class sets
the tile's imgDiv display to 'none', the backbuffer for the tile will
immediately be removed when the tile is loaded.
2013-01-07 15:42:34 +01:00
ahocevar 18d548f979 Merge pull request #702 from ahocevar/smart-queue
New tile image cache and tile queue improvements. r=@bartvde,@elemoine
2013-01-07 06:38:07 -08:00
ahocevar 80f13188a3 Addressing @bartvde's review comments 2013-01-07 14:26:41 +01:00
Bart van den Eijnden 9adbf431ca clear the grid when we change from singleTile mode true to false or vice versa, discussed change with @ahocevar see #821 for the details 2013-01-07 13:25:15 +01:00
Bart van den Eijnden 5b5415d6b7 fix indentation 2013-01-04 17:09:38 +01:00
Bart van den Eijnden de4b995616 incorporate @ahocevar's review 2013-01-04 17:05:03 +01:00
Bart van den Eijnden 1e1ce54e5b add tests and finish off the functionality for switching between singleTile true and false 2013-01-04 15:10:48 +01:00
Bart van den Eijnden 5114ecbaee ability to switch between singleTile true and false 2013-01-04 14:29:07 +01:00
ahocevar 1b2003a2b4 Recovering from merge conflicts 2012-12-23 19:18:26 +01:00
ahocevar afe53aba7d Put backbuffer below all layers, except when panning 2012-12-23 18:34:55 +01:00
ahocevar 0b8deb11a2 Revert "No backbuffer removal delay needed with 3d enabled"
This reverts commit 7e8271525ed52288092a135b1c65eed4849c8e49.
2012-12-23 18:34:55 +01:00
ahocevar f51211e93f No magic for loadend delay
This change reintroduces the removeBackBufferDelay, and documents exactly
what it does and when it may be useful.
2012-12-23 18:34:52 +01:00
ahocevar 1764bbdd18 Giving the last tile time to render
The loadend event of an image is fired before the image is rendered. For
standard 256x256 tiles, this does not matter. But for singleTile layers on
large screens, rendering time needs to be considered. So we add a delay
that depends on the tile size. TODO: make the denominator configurable.
2012-12-23 18:34:52 +01:00
ahocevar a02163f01d No backbuffer removal delay needed with 3d enabled 2012-12-23 18:34:52 +01:00
ahocevar efd2de870a Recovering from merge conflicts 2012-12-23 17:24:20 +01:00
ahocevar c0913668d3 moveTimerId is no longer used 2012-12-23 17:00:45 +01:00
ahocevar 80fa251649 New TileManager
This removes all tile queueing/loading specific code from Layer.Grid
and creates a new class that manages tile loading and caching.
2012-12-23 17:00:45 +01:00
ahocevar 2ee362a79b New tile image cache and tile queue improvements
We now reuse tile images by maintaining a cache of image elements with a
simplified LRU expiry policy (by order, not by timestamp). The tile queue
is bypassed for images that are available in the cache, so they can be
rendered immediately. And the tile queue itself loads more than just one
image at a time now (2 per layer url).
2012-12-23 16:57:24 +01:00
ahocevar 810d9ea95d Fixing line breaks. 2012-12-21 13:10:26 +01:00
ahocevar fcd8586883 Using an array for the transitionend event names 2012-12-21 13:07:36 +01:00
ahocevar 43c646b6da Use new Opera event name as well
As pointed out by @bartvde, according to
http://stackoverflow.com/questions/5819912/webkit-transition-end-in-mozilla-and-opera,
Opera uses otransitionend or oTransitionEnd, depending on the version.
2012-12-21 13:01:15 +01:00
ahocevar dd244e6988 Use transitionend listeners where available
In addition to relying on removeBackBufferDelay, we can remove the
backbuffer earlier without flicker in an ontransitionend listener on the
last loaded tile.
2012-12-21 12:33:28 +01:00
ahocevar c3b13b5df3 Using radix parameter to make linter happy 2012-10-15 08:27:01 +02:00
ahocevar 583dc15700 Merge pull request #587 from ahocevar/587
Layer.WMS: BBOX precision errors in URLs. r=@bartvde
2012-10-12 08:53:23 -07:00
ahocevar a0acf1e550 Calculating rowSign only once 2012-10-12 16:16:44 +02:00
ahocevar 0eb8949ad2 Updating and fixing API docs 2012-10-12 16:11:10 +02:00
ahocevar 157dd9e1c2 Fixing typo 2012-10-12 14:44:48 +02:00
ahocevar 6607bcc0bb Do not cache data from aborted tile loads
This also results in a simplified cache method that can more easily be
overridden for use with other storage providers.
2012-10-12 14:06:08 +02:00
ahocevar ff4a1b2468 Optimizing positions for rendering
Calculating pixel positions from origin and grid index causes alignment
issues in the grid. By going back to incremental positioning, we get a
result without blank spaces between tiles again.
2012-10-12 03:23:56 +02:00
ahocevar 66455600c7 Better precision for right and top corners 2012-10-12 03:10:42 +02:00
ahocevar c5bb52d93f No deltas for tile bounds/position calculation
Now we also do not use deltas for shiftRow and shiftColumn. Some
refactoring was done so we do not need different calculateGridLayout
methods for layers with top-left and bottom-left tile origin.

TODO: With this commit, ArcGisCache and KaMap layers are broken.
2012-10-11 21:22:52 +02:00
ahocevar d4f011d00c Absolute calculation of tile bounds
This avoids cumulated tile bounds errors for layer types that do not use a
tile row/column index in requests (e.g. WMS).
2012-10-10 12:22:57 +02:00
ahocevar 75f2e1f847 Addressing @bartdve's review comments. 2012-08-21 14:00:48 +02:00