Commit Graph

3391 Commits

Author SHA1 Message Date
Olivier Guyot
1c5fd62e43 View / refactor how zoom and resolution are computed
This commit aims to simplify the computation of zoom and resolution in the
View class.

Previously zoom levels and resolution computations were mixed in different places,
ie resolution constraints, initial values, etc.

Now the View class only has the `getZoomForResolution` and `getResolutionForZoom`
methods to convert from one system to another.

Other than that, most computations use the resolution system internally.

The `constrainResolution` method also does not exist anymore, and is replaced
by `getValidResolution` and `getValidZoomLevel` public methods.
2019-02-22 15:01:30 +01:00
Olivier Guyot
1f379a06a4 View / add support for viewport extent constraint
This introduces a breaking change:

The `extent` view option now constrains the whole viewport and not just the
view center.
The option `constrainOnlyCenter` was added to keep the previous behaviour.

Constraining the whole viewport and not only the view center means
that the center and resolution constraints must be applied with a knowledge of
the viewport size.
2019-02-22 15:01:30 +01:00
jahow
e52fab636c View / apply constraints automatically based on hints
All constraints can now function differently if they are applied during
interaction or animation.
2019-02-22 15:01:30 +01:00
Olivier Guyot
3c1e3779e2 View / add a method to compute a valid zoom level
The `getValidZoomLevel` apply the current resolution constraint to return
a value that is guaranteed valid.

This is used for interactions & controls which need a target value to work:
the +/- buttons, the zoom clider, the dragbox zoom and the mouse wheel zoom.
2019-02-22 15:01:30 +01:00
Olivier Guyot
4e1ece16ed View / implemented begin- and endInteraction methods 2019-02-22 15:01:30 +01:00
Andreas Hocevar
6ce499532c Merge pull request #9250 from ahocevar/clear-refresh
Clearer behaviour of clear() and refresh() on sources
2019-02-21 17:12:26 +01:00
ahocevar
4166c80c6e Test cache size 2019-02-21 01:35:40 +01:00
ahocevar
94cd126189 Add setUrl function and don't reset loaded extents in setLoader 2019-02-20 21:55:29 +01:00
ahocevar
f40cbf2cac Do not reload on clear(), but on refresh() 2019-02-20 20:39:04 +01:00
ahocevar
a0ba8dd8c6 Add a clear() method for tile sources 2019-02-20 20:37:58 +01:00
ahocevar
8557bd96b5 Test refresh() for image sources 2019-02-20 20:36:40 +01:00
Frederic Junod
4cb9b1eeb3 Add setRotateWithView function to ol/style/Text 2019-02-19 14:20:58 +01:00
ahocevar
974684ed2b Use Puppeteer for tests 2019-02-18 23:54:20 +01:00
ahocevar
667cadc403 Remove extent default so we catch errors when extent is not set 2019-02-18 12:07:10 +01:00
ahocevar
020f513ed5 Remove unused sortByZIndex function 2019-02-14 17:40:38 +01:00
ahocevar
703dadfcde Fix ScaleLine control now that getPointResolution works correctly 2019-02-07 12:26:18 +01:00
ahocevar
b3bc78daec Provide center in the correct projection 2019-02-07 12:23:45 +01:00
ahocevar
d24ae3c2ac Fix expectation for degree point resolution 2019-02-07 12:22:18 +01:00
Roman Zoller
2c859b1196 Rename misnamed functions in geom/flat/orient
- Rename linearRingIsOriented => linearRingsAreOriented
  The function checks all linear rings of a Polygon, so
  the plural "rings" is more appropriate
- Rename linearRingsAreOriented => linearRingssAreOriented
  The double s is appropriate because the check is done for
  all Polygons of a MultiPolygon

This commit restores the function names from OpenLayers v4,
they were changed (wrongly IMHO) in #7820.
2019-02-05 17:49:21 +01:00
Roman Zoller
c4be22b1b6 Add failing test for MultiPolygon#getArea 2019-02-05 17:48:42 +01:00
ahocevar
ce7a1b4365 Add test to verify that removefeature is triggered 2019-02-04 12:46:51 +01:00
ahocevar
09a1c1ef1b Avoid clipping when rendering to tiles that don't exceed the clip extent 2019-01-24 09:09:22 +01:00
ahocevar
592b6cf362 Keep track of used labels 2019-01-23 21:52:22 +01:00
Frederic Junod
af8a22d34d Keep two digits for the opacity value in layer state 2019-01-22 12:47:34 +01:00
ahocevar
e37734826c Release canvas memory faster 2019-01-21 23:04:31 +01:00
ahocevar
90c8fc7888 Properly unregister prepareTile listeners 2019-01-13 23:09:24 +01:00
ahocevar
54f48e9c03 Re-add missing import after rebase 2019-01-09 13:45:01 +01:00
ahocevar
0f3c0d1af4 Rename VectorImageTile to VectorRenderTile 2019-01-09 13:45:01 +01:00
ahocevar
32696638d2 Simplify vector tile code 2019-01-09 13:45:01 +01:00
ahocevar
ab797b7160 Let source set the key, like other sources do 2019-01-08 13:44:20 +01:00
ahocevar
523d3a4e8c Let the source load source tiles 2019-01-08 13:44:19 +01:00
Frédéric Junod
cf6b1ca1cc Merge pull request #9072 from fredj/rm_layerStates
Remove 'layerStates' property from the FrameState
2019-01-07 10:11:52 +01:00
ahocevar
409c962caf Reset lastDragTime when condition is not met 2018-12-21 22:26:05 +01:00
Frederic Junod
5195adea85 Remove 'layerStates' property from the FrameState 2018-12-18 09:49:38 +01:00
Frederic Junod
0ec769c234 Remove getChecksum functions 2018-12-14 13:00:35 +01:00
Frederic Junod
1bb1e3c542 Remove Atlas and AtlasManager 2018-12-14 13:00:35 +01:00
ahocevar
80ebb8142c Avoid unexpected behavior when passing string coordinates 2018-12-13 19:07:12 +01:00
Andreas Hocevar
0cda18f58a Merge pull request #9008 from ahocevar/decouple-group-creation
Decouple render instruction creation from rendering
2018-12-07 14:33:54 +01:00
Andreas Hocevar
1c4cfc9559 Merge pull request #9024 from ahocevar/imagelayer-events
Add prerender and postrender events for Image layer
2018-12-07 07:46:39 +01:00
ahocevar
6cabb9dd0b Remove drag segments of removed features 2018-12-05 12:02:35 +01:00
ahocevar
df59b894b1 Make tile keys stable to avoid TileQueue confusion 2018-12-04 11:09:51 +01:00
ahocevar
976863c376 Add prerender and postrender events for Image layer 2018-12-02 21:05:20 +01:00
ahocevar
fbf98a44ea Streamline tile preparation and remove unused code 2018-11-29 22:35:46 +01:00
ahocevar
2ce8fa6f10 Render only when we have time, and not during interaction/animation 2018-11-28 14:42:41 +01:00
ahocevar
82e2a84862 Remove interim tile handling for now 2018-11-28 14:42:41 +01:00
ahocevar
f4aec3fd01 Remove unused Builder/Executor functions and members 2018-11-25 20:06:37 +01:00
Frederic Junod
e66a84c897 Add imageRatio option for VectorImage layers 2018-11-22 09:38:08 +01:00
Tim Schaub
e9a30c5cb7 Use standard tile coords 2018-11-21 11:14:17 -07:00
Tim Schaub
37c987de0a Move quadKey function to the one place it is used 2018-11-21 10:10:51 -07:00
Tim Schaub
c6be2c7ff5 Merge pull request #8977 from jahow/add-webgl-rendering-tests
Add WebGL rendering tests & improve the WebGLHelper API
2018-11-20 03:59:06 -08:00