I've had many users with the need to publish a tiled service to ArcGIS Online. Two issues they face is that they do not have ArcGIS for Server, and they do not want to burn through all of their credits having ArcGIS Online create the tiles. This document will show you how you can accomplish this without running into these issues.
1. Add the data to ArcMap that you would like to create a tiled service for. In the below example, I am using a mosaic dataset of SID imagery:
2. (OPTIONAL) Open the Generate Tile Cache Tiling Scheme tool within the Data Management > Tile Cache toolset. Specify to generate a NEW tiling scheme, specify the number of scales, the scales themselves, and tile format:
3. Open the Manage Tile Cache tool. Specify a cache location, cache name, and the input data source (i.e. in this example, the mosaic dataset). For the Tiling Scheme choose an ArcGIS Online predefined scheme from the dropdown, or choose 'IMPORT_SCHEME' and browse to the XML file that was created with the Generate Tile Cache Tiling Scheme tool. Optionally, adjust the minimum and maximum cached scales.
Note: The Environment Setting Parallel Processing Factor can be used to speed up performance by taking advantage of more than one core.
4. After this tool completes, the cache is created and added to the map. Next, open the Export Tile Cache tool. Specify the cache that was just created and an output location. Choose 'TILE_PACKAGE' for 'Export Cache As'. This tool will create a .tpk file.
5. Share the TPK file to ArcGIS Online by opening the Share Package tool. If you are not signed in to ArcGIS Online, it will prompt you for your credentials. Once the Share Package tool is open, specify the .tpk file for the Input Package created previously. Add a summary, tags, and optionally share this with Everybody or your ArcGIS Online Groups.
6. After the Share Package tool completes, login to ArcGIS Online using a browser of your choice and browse to 'My Content'. You will see the tile package there:
7. Click on the tile package > Publish > Publish:
The tiles will begin publishing. You can check on the status of the tiles by clicking on 'Manage Tiles':
Once all of the tiles are published, you will have a Tiled Layer you can use with your web maps and apps:
Since you used Desktop to create the tiles (ArcGIS Online was only used published them), you will not be charged 1 credit per 1,000 tiles generated. You will only be charged for tile storage, which is 1.2 credits per 1 GB stored per month.
Thanks for sharing!
Agreed. Very cool indeed. Thank you Jake!
We have followed this workflow and are currently waiting on all of the tiles to be published. The tile package is 1.4GB and we kicked the publish off at 8am yesterday, 24hours later it says 22% of the tiles are available.
Does that seem correct, or should it process faster than that?
Is there another way we should be doing this?
Thanks for the help,
It should process much faster than this. Try clearing the browser cache, and refreshing the page. Does it still read 22%?
It still reads 22%.
Conclusion: In the end the tile layer is working, we have the map cache set up to only cache areas of interest (using a polygon), and I believe the 22% is coming from the fact that 22% of the full extent is cached, and this coincides with our areas of interest.
Thanks for the help Jake Skinner
Is the zoom level still limited to 19. I have been gathering aerial with a UAV and the zoom level is not granular enough.
On load basemap zoom level determines web map's zoom levels. So, add your layer, check to add it as basemap layer, save your map, reload the page. Now you should be able to zoom in as much as your layer permits.
This is really cool. And it mostly worked on my first try. A few details I need to resolve.
1) My tile layer definitely has a projection issue, what projection should I be working in when generating the tiles from my desktop?
2) Values that should have been transparent came out as light grey.... maybe that's due to my projection issue?
3) My tile layer has no legend when viewed in the Map... any ideas? Again maybe this has something to do with my projection problem.
Thanks for any suggestions.
Thanks, but I already know that. I don't want the aerial from the drone as the base map. I want to overlay the available base maps but overide the base map limit of 19.
The web map's zoom level will be set based on the basemap you are using. If you are using the ArcGIS Online basemaps, you are limited to the max zoom level of these services. The only way to zoom into a larger scale is to add a basemap that is cached at a larger scale.
1. If you are using the Tiled Layer as a basemap, the projection can be any one you'd like. If you plan on overlaying the tiled layer with one of ArcGIS Online's basemaps, the projection should be WGS 1984 Web Mercator (auxiliary sphere).
2. If you are working with imagery, did you choose 'MIXED' for the Tile Format when you ran the Generate Tile Cache Tiling Scheme tool? More information about the Tile Formats can be found here.
3. ArcGIS.com is configured not to show Tiled Layers in the legend. I'm not sure if there is a way to change this.
Hi Jake, thanks for the useful information. I have a problem while publishing .tpk , an error appears:
There was an error publishing the service.
Has anyone else the same issue? It is an unanswered question on Geonet here Publishing tile package "There was an error publishing the service"
Thanks again. Went ahead and got my grid in the WGS 84 Web Mercator (auxiliary sphere) projection and also reclassed the zero values to NoData which I believed helped with the transparency.
On the legend, I found this: Publish tiles—ArcGIS Online Help | ArcGIS
-- which using the first option will indeed give a legend in the output. It matched the legend in my origin mxd, just as hoped.
I'm not certain what the threshold is for a "large tile package" but I highly recommend the first option if anyone is looking to have a legend. My dataset was 30 meter cells for most of New England and this worked well.
Looks like the second option described there is a very simplified version of your excellent White Paper.
Thanks again for your help and Best Regards,
Thanks, Jake. I've run this process successfully in the past (using a model) but now I'm getting a blank cache when the Manage Tile Cache tool finishes. It writes out the file, but no imagery shows up at any scale. Do you have any idea why? I'm running 10.2.1.
Nice description of the process.
I've already published a post that addresses the issue thoroughly, with the 3 methods to create TPK and upload it to ArcGIS Online without the need for ArcGIS Server:
Create Cache and TPK without ArcGIS for Server - Workflows for Desktop users
I think That it could help people to deepen their understanding of the process, combining your screenshots.
Many thanks Jake!
Jake Skinner I saw your presentation on this at NEARC a couple of weeks ago and you mentioned that I could use this to create labels for Collector. What steps to I need to take prior to this tutorial to do that. Just make my labels into annotations?
Thomas DiPietro you don't have to convert your labels to annotation. Simply set the layers transparency to 100%, and then follow the steps in the article.
I'm having this same issue; I created the tile package for a single raster dataset and shared to ArcGIS Online with ArcMap version 10.3.1 and when publishing the .tpk via ArcGIS Online, get the error stated above. When I open the uploaded .tpk in ArcGIS for Desktop, it looks fine, so I can't figure out why this error would occur. I'm an administrator, so I have publishing rights.
Jake Skinner I would like to have the labels display at a scale smaller than 2000 but I seem to be unable to do so. I set up the scales at the appropriate in the tiling scheme just fine. Is there a work around I can use? Basically I need to label individual buildings within a small city, in such a way that the labels show up in Collector.
Can you share the tiled service to 'Everyone' and then send me the URL? You can private message me with the URL if you'd like.
It looks like you have a scale dependency on the layer when you built the cache. At smaller scales, the layer is available. You can tell by the layer in the Contents tab, it's not greyed out:
When zooming into a larger scale, you can see the layer is greyed out. This is due to a scale dependency:
You will need to remove this scale dependency within the MXD and then rebuild the cache for this scale.
Thanks for your sharing.
I have the version 10.3 of Arc gis, so the name of the too you used are different.
Once I generate a NEW tiling scheme, I cannot find the tool " Manage Tile Cache", I tried with the tool "Manage Globe Server Cache Tiles" and "Manage Map Server Cache Tiles".
So I cannot go forward and follow your steps.
Do you have any idea about that?
Thanks in advance
Andrea, here is the 10.3.1 help link for the topic
Manage Tile Cache—Help | ArcGIS for Desktop
Look in the Tile Cache toolset
I have ArcGIS for Server so I created my first map cache following the steps here: http://server.arcgis.com/en/server/latest/publish-services/windows/creating-a-map-cache.htm
So now I want to create a Tile package to upload to ArcGIS Online like it mentions here: http://blogs.esri.com/esri/arcgis/2013/02/06/workflows-for-building-and-hosting-cached-map-tiles-in-...
But when I open the "Export Tile Cache" tool the first thing it says is "Input Tile Cache" and asks for the location. Um? I guess it's on my server in the C:\arcgisserver\directories\arcgiscache folder? How do I path to that!?
Maybe I'll have to do it using your steps above and using ArcGIS Desktop instead. I can't find any info on how to use this Export Tile Cache tool. Any help would be appreciated!
Yes you are correct that you will need to get the cache from you cache directory. All you will need to do is connect to this folder. Click the browse icon for 'Input Tile Cache' and then select 'Connect to Folder at the top right':
Ok, I will have to try that.
I'm trying to create a tiled service that is just address point labels. The label is maplex black text with yellow halo. When I create the service and cache and view it in my rest directory preview it looks ok. But when I add it to ArcGIS Online map I am getting only black text and not at the correct zoom levels either. Any idea what is going on? Thanks
If you have a simple map you can also use the Create Map Tile Package and do a lot of this in one step. There is no AOI option and it does not use Parallel Processing but it is easier for users. Looks like these will not be fixed in 10.4 either.
Also note I have 4 open bugs on these tools all dealing with the AOI parameter. You will get all kinds of issues in the extent when using AOI.
[BUG-000086429: The Manage Tile Cache tool does not honor the area of interest parameter set when creating the cache.] I have 2 out there now that say only 3.63% of the tiles published but it actually works just fine. Case #01691221 and #01642593
[BUG-000085241: Publishing tiles does not complete in ArcGIS Online. This may be due to incorrect extents, however this warning is never provided to the user when creating the tile package.]
Unknown number - the extent is also wrong when using the Export Tile cache tool. They listed BUG-000085241 but this is already above and different. I had case #01642593 and #01623834 because the export tool also bombs in scheduled scripts but works fine not scheduled.
BUG-000084160 The Manage Tile Cache tool will fail when run in python. I was trying to get around the bug above and found another one.
Also on the issue of not being able to cache a Esri basemap.
Our contractor also has an open issue that hurts him and us. It was supposed to be fixed in 10.3.1 but was not. Defect Escalation - BUG-000081937 / DE-000000372
It is probably because you used a AOI. There is a know bug I have open on this. See this post and below
Mange Tiles shows much larger size than cache using custom scales
I think I saw a post that Maplex is not supported on AGO
I have found that if your data and map projection are not the same you will have all kinds of issues. I have published to AGO in UTM but then you can not mix them with regular basemaps.
I just created my own Area of Interest and also saw a percentage instead of 100%, even though it appears to be done. So your comment helped me, thanks!
I had to create my own custom scale range for tile service/tile schema to get my labels at lower levels since the default from ArcMap only goes to 1:1128. I used
Hope this helps.
about labels in map service, "Simply set the layers transparency to 100%"
Great tip, thanks!!
Esri support wasn't sure what the problem was. But if I started from scratch building a new mxd adding data from the geodatabase (not copy/paste from other mxd) I could publish the map service and cache looked like it should with the halos.
I'm having some difficulties with something I feel should be working just fine -- a tileset of only labels (transparent background).
My goal is to create an AGOL-hosted basemap reference layer, which will sit atop another hosted tileset (already published within my organization). I have an MXD with multiple annotations for the labels set up specifically for each of several zoom levels. While publishing the service through ArcGIS for Desktop's built in method, on "Analyze" I get warnings that "Annotation layer may use inline fonts that are not installed on the server," and "Map is being published with data copied to the server using data frame full extent." When I "Preview," everything looks as I'd expect it to, with my labels sitting on an empty background for the several zooms I care about. However, when I publish the tile set (using tiled mapping, not feature access), the resulting tileset on AGOL is empty. I can add it to an existing web map, set it as the reference layer, but I am not seeing any of the labels I should.
Would publishing the MXD using a different tile packaging method be better suited for this? I don't think fonts are the issue, as I've tried several different ones.. and wouldn't it default to a different font if the current wasn't installed?
Sounds like you are publishing a service. If you want a cache of labels build a tile package using Create Map Tile package. I have done this with labels. You can also do this with vector tiles if you are going to use it online.
My issue is that when I set the visibility scales to let say the room level in AGOL, the images will not show up even though the standard Imagery appears at 1:524. Any thoughts? I have some site/design plans that have been georeferenced and the engineers would like to zoom in more and don't necessarily care about the ortho behind it. But as you said, there are limitations to whatever basemap you're using. Is there a better workflow to be discovered? Such as creating my own basemap then overlaying the site plans?
I am currently creating tile packages so that I can use them within Survey123 offline. So far the best way I have found to do this is by Share As > Tile Package. Then once it is finished tiling, I place the .tpk in the media folder of my survey using Connect for Survey123. This makes the surveys rather large in terms of file size and so it will often take a while for my survey to publish (getting stuck at the creating the item info) to AGOL so our field agents can use them. We have to be able to work offline in case of a bad storm, however I was wondering if there was a way to call these Tile Layers from Survey123 if we did have a connection. For example, when I click on my geopoint question within the survey on my device and the map enlarges there is an option to change my basemap. The tile package I embed shows up on the list. Is there a way to see all of the Tile Layers I have hosted on AGOL on the same list?
Also, my tile packages consist of clipped SID imagery of Florida's coastline overlaid with labeled vector data representing range monuments. Would I be able to create a separate Feature Service of range monuments, call that Feature Service into my Tile Layer, and then call that Tile Layer into my survey to reduce file size? I have read up on using custom URL schemes within Survey123 but have yet to find an answer.
Thanks Jake, you prevented me from wasting a bunch of credits with this workflow.
I don't know if this thread is still being monitored, but I tried to do this in Pro, and I keep getting hung up on the Export part of the process. Here's a screenshot of my parameters and the resulting error. I've tried multiple times to run it, using different output locations and "Export Cache as" options, all resulting in same error. Any ideas on what I'm doing wrong?
Amelia Newsam have you tried the same tool in ArcMap? I'm curious to see if it fails there as well.
Also, what version of ArcGIS Pro are you using?
2.4.1, and I did just get it to work using ArcMap. I will now see if I can get it up on my ESRI and if it looks OK.
Yup, it worked!! Thanks!
Looks like ArcMap still has some skin in the game