Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Extend tiling api to be able to transform raster images #442

Closed
wants to merge 21 commits into from

Conversation

dstenger
Copy link
Contributor

The tiling API was extended to be able to to transform raster images. Thie pull request does NOT include a raster transformer, so an error is returned if request crs does not match the tile crs (same behaviour in the current implementation, just the error type changed from invalidCrs (in my opinion a wrong type as a user can configure other crs) to illegalRequest)

There are two general problems:

  • The source tiles have a different crs and envelope than the request. How can the correct tiles be choosen?
  • Raster image transformations are not 100% accurate. Due to that fact, there are small gaps between the tiles if the transformation is done for each tile itself.

To tackle the first problem, the request envelope is transformed to the crs of the first coordinate system known to the TileLayer. Then all tiles are retrieved with the transformed envelope from the tile data set having the first crs (canges in TileLayer). Later, the Java2DTileRenderer checks whether the crs of the tiles and the request crs match. Otherwise a transformation is executed (or error is thrown if there was no transformer injected into tile renderer).

To tackle the second problem, the image is created in the tile crs first and finally the whole image is transformed to the query crs (almost all changes in Java2DTileRenderer). A precondition for this mechanism was to change the API of the TileRenderer: All tiles are given to the renderer instead of just one single.

Finally, the Java2DTileRenderer can now get an ImageTransformer (new interface) via constructor injection. This transformer is used to transform the raster image. If null is injected (status of this pull request), an error is thrown if an user tries to transform tile datsources (same behaviour as in the current implementation; see first passage).

…envelope are on the right corner of envelope
@stephanr
Copy link
Member

stephanr commented Nov 5, 2014

See also Issue #423

@MrSnyder MrSnyder added this to the 3.4 milestone Nov 11, 2014
@tfr42 tfr42 added feature feature needs discussion requires discussion with contributor labels Nov 11, 2014
@MrSnyder
Copy link
Contributor

How do I actually use this functionality via a TileStore config? Do all TileStore types support this?

@tfr42
Copy link
Member

tfr42 commented Feb 6, 2015

Thank you for your contribution. Your pull request has been discussed by the TMC today. Please see the following remarks from the TMC members:

  • How do I actually use this functionality via a TileStore config?
  • Do all TileStore types support this?

However, we found that it is not ready yet for inclusion:
The TMC would be happy if can find the time to address these shortcomings.

@tfr42 tfr42 added the stuck stuck PR label Apr 30, 2015
@tfr42 tfr42 self-assigned this Apr 30, 2015
@dstenger
Copy link
Contributor Author

dstenger commented May 6, 2015

  • How do I actually use this functionality via a TileStore config?
    There is no extra configuration necessary. If the storage CRS of the TileStore differs from the requested CRS, transformation is automatically activated if ImageTransformer has been injected. Otherwise, an exception is thrown if CRS differ from each other (also current behaviour).
  • Do all TileStore types support this?
    The feature was tested and implemented for GeoTIFFTileStore. Other TileStores have not been tested, but they should work as well.

@tfr42 tfr42 added contributions welcome asking for contribution (time and money sponsor) and removed in progress labels Oct 1, 2015
@copierrj copierrj added the needs rebase PR is not up to date and needs rebase label Oct 12, 2015
@tfr42 tfr42 modified the milestones: 3.5, 3.4 Aug 9, 2016
@tfr42 tfr42 added the marked for deletion PR with that label will be closed soon label Nov 30, 2018
@tfr42
Copy link
Member

tfr42 commented Nov 30, 2018

Dear deegree users,
If someone of you would like this PR merged and want this as an official part of deegree, then please act now! Either rebase and fix the build or post a comment. Otherwise we will close this PR soon.

@tfr42 tfr42 removed this from the 3.5 milestone Nov 30, 2018
@tfr42
Copy link
Member

tfr42 commented Jun 14, 2019

Thank you for your contribution. Unfortunately, the TMC members came to the conclusion not to merge it into the deegree code base since the PR get stuck (see PR marked for deletion). Of course this is not the final word. If you think, that we did wrong then please re-initiate the Decision Making Process by making a opening an updated pull request and taking the feedback from the TMC into consideration. Perhaps we can then merge that new pull request. Anyhow, we do appreciate your commitment to open source and to deegree in special.

@tfr42 tfr42 closed this Jun 14, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
contributions welcome asking for contribution (time and money sponsor) feature feature marked for deletion PR with that label will be closed soon needs discussion requires discussion with contributor needs rebase PR is not up to date and needs rebase stuck stuck PR
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants