Multiple Maps with different zoom levels #911

mikes222 opened this Issue Dec 13, 2016 · 4 comments


None yet

2 participants


I have a MultiMapDataStore with different maps.

  • One map is created with configuration parameter zoom-interval-conf=8,5,11
  • Another map (or a bunch of other maps) is/are created with zoom-interval-conf=15,12,18

Since public boolean supportsTile(Tile tile) do not take the zoomLevel into account the system tries to query the detailed maps even if it should display zoomLevel 5 which lead to OutOfMemoryError because the detailed maps tries to collect several 100.000 ways for MapReadResult.

Some additional infos:

MapFile.processBlocks is called with the following QueryParameters:

QueryParameters{fromBaseTileX=0, fromBaseTileY=0, fromBlockX=0, fromBlockY=0, queryTileBitmask=0, queryZoomLevel=12, toBaseTileX=32767, toBaseTileY=32767, toBlockX=1365, toBlockY=2272, useTileBitmask=false}

This call never returns...

How to solve that issue?

  • take zoomLevel into account at supportsTile(), how?
  • do not return ways/pois if no zoomlevel is defined in the current map?
  • some code in MultiMapDataStore to have a fallback?

Any help is appreciated.
Regards, Mike


addendum: setting public void restrictToZoomRange(byte minZoom, byte maxZoom) to 12, 18 does not help.

@devemux86 devemux86 closed this Dec 14, 2016
@devemux86 devemux86 added this to the 0.7.0 milestone Dec 18, 2016
devemux86 commented Dec 18, 2016 edited

I enabled the MapFile.restrictToZoomRange(minZoom, maxZoom) in a more formal way.

MultiMapLowResWorld sample demonstrates the two ways for restricting zoom range:

  • Use MapFile.restrictToZoomRange(minZoom, maxZoom)
  • Override the MapDataStore.supportsTile(tile)

@mikes222 can you check if it works for you?

mikes222 commented Dec 22, 2016 edited

Hi @devemux86, yes it works!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment