ArcSever Tile Cache: Create Overzoom Effect

3146
11
04-20-2017 12:02 PM
DavidColey
Frequent Contributor

Hi - I asked this in response regarding a method to prepare a tpk for offline use: How does esri create the 'overzoom' effect for the world topo map service?  Clearly the large scales say past 1:564 are drawing at the same resolution, but I can't figure out how to do that with my own caches.  I thought it would be as simple as copying my largest bundle's LOD into the even larger levels, but that doesn't work.

Does the cache have to be exploded?  Does it matter if the tile format is PNG vs JPEG?  Any suggestions?

Thanks,

David

0 Kudos
11 Replies
DavidColey
Frequent Contributor

So I still haven't been able to find anything on this.  Does anyone have any suggestions?  

0 Kudos
DavidColey
Frequent Contributor

I hate to keep doing this but does no one know how this overzoom effect is created?  ESRI?  Something in the Rest?  I know js4.x will overzoom by setting a map constraint maxZoom to 0, but obviously that is not the case when viewing the World Topo cached tile service from the services page . . . .

0 Kudos
RebeccaStrauch__GISP
MVP Emeritus

I'm not 100% sure what you mean by over zoom.  Are you talking about zooming in even further than 1:564 to get even fuzzier imagery?  Maybe a pic would help.

i think instead of copying one LOD to another LOD, I think you would need to add the LOD and cache it.  I'm guessing that dong that from your original source is not giving you the results you are looking for.

So how about taking the cached images, for dues useing purposes, let's say you level 19, and placing a copy of those as the source if a new temporary service. Create the cache at the scale you would have for your level 20, 21, etc.  then copying those into you real service.  If you have the Image Server extension (or full product if 10.5.x), you could use a mosaic of the level 19 cache and that might work.

i don't know if that will work or not, but conceptually, that is where I might start.  At least maybe thus will get the discussion going.  

0 Kudos
DavidColey
Frequent Contributor

Thanks for the reply Rebecca.  Yes that is what I am referring to.  What it appears that esri does is to create tiles at a small scale 1:1128), and then add those same tiles to to the next several larger scales (1:564, 1:282 etc), but keep the larger scales at the same resolution as the smaller scale by tweaking the cache's config.xml.  

This method does seem to work when creating a tile package(for hosting) and then adjusting the lods in the config.xml, but does not seem to work for a standard map cache at 10.4x or 10.5.  So I was hoping that esri would reply and tell what they are doing, if in fact the only way to get this to work is through the tile package

0 Kudos
RebeccaStrauch__GISP
MVP Emeritus

A .tpk is just a zip file.  Have you tried changing the extension and grabbing the tiles that way??

0 Kudos
DavidColey
Frequent Contributor

Sorry I didn't make myself very clear.  So what I am trying to do is to create the same 'overzoom' or fuzzy resolution tiles for scales 1:282, 1:141, and 1:70 for my local base map tile cache, same as esri is doing with the world topo and world streets base maps.  I have created the scales (levels) in my tiling scheme, then left those levels empty.  

I then tried placing the bundle files from the 1:564 scale into the empty zoom levels under my _alllayers folder in the cache directory for my local base, and then tweaking the conf.xml's Resolution tags for the large scales to match the 564 scale.  I found this method in a post or a help doc for a tpk that you would use with Mobile for example (I'll post back the link when I can find it again).  So far, this method doesn't work for a Sever cache, or at least I can't get it to.  So I am wondering how esri is making this effect work for their basemaps.  

They obviously are not creating tiles at those levels and resolutions. Nor do I wish to, takes forever uses a ton of space that I don't have.  In the meantime, I am using a 'missing' tile .png, which is fine at 3.x and the wabs but the 'missing' png isn't being honored at 4.x!

I'd love to be out of caching all together, but until vector tiles or the mapbox spec catches up with at least honoring a stacked label (not to mention printing), then creating caches is going to be with us for awhile.  

0 Kudos
RebeccaStrauch__GISP
MVP Emeritus

Ok, I see what you are getting at now.  I would be trying the same things you are, that is, manipulating the config.xml ro try to get it to see the same resolution.  I didn't know that was possible since each additional level usually wants a 4x resolution (or whatever the factor). I wonder if reaching out to the ArcGIS Online‌ team might get you a name of someone that knows how they did it there.  It may be an in-house trick they can share....or not.

DavidColey
Frequent Contributor

Oh good suggestion thanks and thanks for taking the time to chime in.  I'll post back anything I find

DavidColey
Frequent Contributor

So as I began to look closer at the world topo service at:

World_Topo_Map (MapServer) 

I noticed in the capabilities key value pair in the json something called Tilemap:

"capabilities": "Map,Tilemap,Query,Data",

I'd be remiss if I didn't investigate further and so in my fiddler session for the lods at levels like 23 (1:70 scale):

services.arcgisonline.com/arcgis/rest/services/World_Topo_Map/MapServer/tilemap/23/3536792/2273984/8/8 

and as you can see instead of returning 'tile' the service returns 'tilemap' - as specified in it's capabilites above.  

The kicker is: How do I enable that capability on my tiled cached services?  Because the only reference I can find to the 'tilemap' as a capability is with Vector tile services:

ArcGIS REST API 

You can't just go into your Admin at

Home > services > CachedMapServices > SarasotaCountyBaseMap_v3.MapServer > edit

and add the capability

Sure would be nice if esri would chime in here.... is this a server object extension that enables the Tilemap capability for a cached map service?