Modify

Opened 8 years ago

Closed 4 years ago

Last modified 4 years ago

#7682 closed defect (fixed)

WMS-cache does not "tile" requests one same boundaries between session resulting in re-requests of already cached areas

Reported by: jjaf.de Owned by: team
Priority: normal Milestone: 15.08
Component: Core imagery Version: tested
Keywords: WMS cache hasExactMatch tiling Cc: jttt

Description

WMS does pre-load cached areas but since

cache.hasExactMatch()

is false since the viewport is slighty shifted although the complete area can be rendered the whole area is re-requested from WMS-server

Problem

Re-requests are resulting in having a huge cache of [session]-times the size and stress on network and WMS-server.

possible Solution

A solution could be to introduce "tiling" in maybe

downloadAreaToCache()

so that the same bounding-boxes for WMS-requests having shifted viewports are being calculated between sessions or have an algorithm to recognise total coverage from cache instead of

cache.hasExactMatch()

I would suggest the former is easier to implement maybe with help from the tiling-projection.

Workaround

Set viewport to exactly same coordnates and zoom before adding WMS-layer with cache e.g. by using "Jump To Position".

Attachments (0)

Change History (10)

comment:1 Changed 8 years ago by bastiK

Cc: jttt added
Type: enhancementdefect

When scale matches exactly, the cache should be used.

comment:2 Changed 8 years ago by stoecker

We have WMS bookmarks, which solve this issue already. THought maybe a tiled approach and some sort of "native" request levels would be a good idea.

comment:3 Changed 8 years ago by jttt

WmsLayer already has tiling, method getImageXIndex() convert coordinate to tile index. But scale needs to be exactly the same as before (that's what WMS bookmarks are for).

comment:4 Changed 8 years ago by bastiK

Native request levels may decrease the image quality in some cases, but I guess for the average user, it would be an improvement.

comment:5 Changed 6 years ago by Don-vip

Component: CoreCore imagery

comment:6 Changed 6 years ago by anonymous

I believe this issue is now fixed, if "automatically change resolution" for WMS layers is checked. This option snaps imagery to specific zoom levels, making manually bookmarking obsolete.

comment:7 Changed 4 years ago by wiktorn

Milestone: 15.06

comment:8 Changed 4 years ago by Don-vip

Milestone: 15.0615.07

skip milestone 15.06

comment:9 Changed 4 years ago by wiktorn

Resolution: fixed
Status: newclosed

In 8526/josm:

Introduce WMS layer based on TMS. (closes: #11255)

HEADS UP: After this patch you need to manually remove JAX-B generated file/class: org/w3/_2001/xmlschema/Adapter1.java to compile the tree again.

  • create AbstractTileSourceLayer based on TMSLayer as a base for TMS, WMS and (future) WMTS layers, (addresses #11459)
  • WMS layer now uses JCS Caching (closes: #7363)
  • introduce new conversion methods in TileSource, that convert both X and Y (lat and lon) in one call. This is necessary for other than PseudoMercator projections
    • introduce TileXY class that represents X and Y indexes of tile in tile matrix/space
    • mark old conversion methods as deprecated
    • refactor JMapViewer and JOSM to new methods
    • change use of Coordinate class to ICoordinate where appropiate
  • extract CachedAttributionBingAerialTileSource to separate file
  • create TemplatedWMSTileSource that provides the WMS Layer with square (according to current projection) tiles (closes: #11572, closes: #7682, addresses: #5454)
  • implemented precaching imagery along GPX track for AbstractTileSourceLayer, so now it work for both - WMS and TMS (closes: #9154)
  • implemented common righ-click menu on map view, as well on layer list (closes #3591)
  • create separate build commands for JMapViewer classes to easily spot, when josm classes are used within JMapViewer
  • remove unnecessary classes of previous WMS implementation - GeorefImage, wms-cache.xsd (and JAXB task from build), WMSCache, WMSRequest, WMSGrabber, HTMLGrabber, WMSException

comment:10 Changed 4 years ago by Don-vip

Milestone: 15.0715.08

Milestone renamed

Modify Ticket

Change Properties
Set your email in Preferences
Action
as closed The owner will remain team.
as The resolution will be set.
The resolution will be deleted.

Add Comment


E-mail address and name can be saved in the Preferences.

 
Note: See TracTickets for help on using tickets.