Select to view content in your preferred language

Retina Display Issue: Fuzzy Symbology and Tile Imagery

5743
10
06-03-2011 11:26 AM
AaronConnolly
Regular Contributor
Dev Team,

The symbology and tile imagery in our iOS application appear blurred on the iPhone 4???s Retina Display and we're not sure why. We've created the necessary images in both resolutions to support older versions of the iPhone, but we're not sure what we've done wrong. There don't appear to be any articles or resources on the current SDK's support for the Retina Display. I???ve attached a screen shot for reference. Notice how all the other graphics are nice and crisp and how it contrasts with the fuzziness of the tile imagery and symbology. A few questions:

- What might be causing the fuzziness and how can it be resolved? Is it something with the map? Is it something with the AGSPictureMarkerSymbol?
- What if we wanted to use Bing maps tile imagery, would those tiles be fuzzy as well when accessed through the ESRI iOS map View?

Thanks for your time,
- Aaron
0 Kudos
10 Replies
Nicholas-Furness
Esri Regular Contributor
The original problem is that the tiled map service layers in the iOS api are displayed with fuzzy, low resolution.  Compare to android, which displays tiled layers correctly.


The tile imagery looks as expected to me. In the original post, it's only the symbols overlaid on the map which are fuzzy and that has been fixed.

In the case of tiles, the global ArcGIS Online tiles have not been generated to retina display dpi. For that reason, the SDKs will render them at the generated tile resolution by default.

You can opt to render the tiles at native display resolution by making use of AGSTiledLayer's renderNativeResolution property (which I think is what the Android app does), but it can make label text very small (see screenshots). It essentially gets the next zoom level of tiles and renders them smaller.

Tile Resolution:
[ATTACH=CONFIG]27608[/ATTACH]

Native Resolution:
[ATTACH=CONFIG]27609[/ATTACH]

Also attached is a project that allows you to switch between native and non-native resolutions to see the difference.

Hope this helps,

Nick.
0 Kudos