mbxmapkit icon indicating copy to clipboard operation
mbxmapkit copied to clipboard

Finish implementing overzooming

Open ghost opened this issue 11 years ago • 16 comments

Overzooming, or scaling and cropping tiles from a lower zoom level, is useful for:

  1. Maps with more than one layer, where the max zoom for one tile source is lower than the max zoom for the other layer. For example, an MBTiles heat map which ends at zoom 10 and a street map which ends at zoom 17. See https://github.com/mapbox/mbxmapkit/pull/20#issuecomment-34297670
  2. Zooming in to distinguish between markers which are close together, or perhaps to see detail in a GPS track. For example, consider a street map which ends at zoom level 16 and markers for two businesses which are only 20 feet apart on the ground. The ability to zoom in to level 17, 18, etc would make it easier to tap on the correct marker.
  3. 3D maps which render tiles from a range of zoom levels in perspective on the same map. See #35

I presently have a partial implementation for this (MBTiles on iOS only) over at https://github.com/wsnook/mbxmapkit/tree/issue35. However, that uses image manipulation code that probably won't compile on OS X.

Before this is ready to use, it will need to be adapted to work for online tiles, and it will need to be adapted and tested for OS X.

ghost avatar Feb 18 '14 23:02 ghost

Do you think this is a good chunk of work and should wait until after 0.2.0? Or relatively smaller scale?

incanus avatar Feb 19 '14 00:02 incanus

I think it should be pretty easy. The main blocker for me is that I need to sign up for a Mac Developer Program membership to make any progress on the OS X side.

The one catch is that, for online tiles, this will need to mess with loadTileAtPath:result. A whole lot of potential changes involve that function, so they need to be coordinated to some extent. That's why I ended up doing things the way I did with merging a giant pile of stuff into pull request #38. The branching was just starting to get too crazy.

For example, I think it would be cool to implement a good ~~offline~~ cache manager (dictionary of persistent regions so they can be both requested and released, an option for performance boosting only, and options to manipulate the cache for development). If you want to tackle that, it would be nice to figure out which change goes first so that branching and merging doesn't lead to a ton of annoying conflicts in loadTileAtPath:result.

ghost avatar Feb 19 '14 00:02 ghost

The main blocker for me is that I need to sign up for a Mac Developer Program membership to make any progress on the OS X side.

I'll add you to ours. Invite incoming.

incanus avatar Feb 19 '14 00:02 incanus

@incanus, It's possible I may have misunderstood what you meant here, see https://github.com/mapbox/mbxmapkit/pull/38#issuecomment-35472752.

To hopefully be a bit more clear, I think that work on this issue should be paused until the dust settles from pull request #38. If you intend for #38 to be equivalent to milestone 0.2.0, then I think this issue should be a part of the next milestone after that one.

ghost avatar Feb 19 '14 07:02 ghost

Yeah, I am thinking we skip a possible 0.1.1 and go straight to 0.2.0 given that it contains some new functionality. Overzooming and fixing #35 as a result can wait until the next release, then.

incanus avatar Feb 19 '14 17:02 incanus

This can wait until after 0.3.0

ghost avatar May 01 '14 03:05 ghost

When we zoom in beyond level 18 with a satellite map in our app, MBXRasterTileOverlay currently returns dark grey tiles with light grey title center points and other features. Will implementing overzoom resolve this issue? If so, this would be a high priority for us. And likely a high priority for other developers displaying satellite map data.

lightandshadow68 avatar Aug 08 '14 16:08 lightandshadow68

Yes, the idea of overzooming is that lower-numbered tiles would be magnified (albeit blurry) to still show content.

incanus avatar Aug 08 '14 18:08 incanus

@incanus or @incanus Can you clarify the timing for this work? I see that it's intended for the 0.3.1 release. Has a release date been set for 0.3.1? Is that the primary focus for the team now? We can't take development ownership for this issue, but it is important for us in the near-term and we can offer extensive testing support.

jswestlake avatar Aug 12 '14 16:08 jswestlake

This project is somewhat back-burnered for a bit as we focus more on Mapbox GL native & JS. So, no release date as of yet on 0.3.1 or overzooming.

incanus avatar Aug 12 '14 17:08 incanus

I've got overzoom working in this branch: https://github.com/Rowjo/mbxmapkit/tree/over-zoom

rowjo avatar Oct 14 '14 09:10 rowjo

My implementation uses UIKit, so needs work to support OSX too. Also, I only have access to new iOS devices and have not tested on anything older than a iPhone 5s. @incanus , @wsnook - I'm happy to implement the OSX code if this would be helpful?

rowjo avatar Oct 16 '14 15:10 rowjo

If you're able to, that would be great @Rowjo, but it's not a main focus of the project anymore.

incanus avatar Oct 16 '14 15:10 incanus

@incanus Ok, I'll get this done soon. What's does the future of this project hold? Will you be continuing support or phasing it out to be replaced with Mapbox GL?

rowjo avatar Oct 17 '14 09:10 rowjo

Here's the best guidelines we have on that @Rowjo: https://github.com/mapbox/mapbox-gl-cocoa/blob/master/FAQ.md

incanus avatar Oct 17 '14 16:10 incanus

Thanks @incanus

rowjo avatar Oct 21 '14 08:10 rowjo