ArcGIS and Tiled Maps

From Wildsong
Jump to navigationJump to search

"Tiled maps" means raster tiles in this article.

Overview

You can design beautiful maps in ArcGIS For Desktop. You can ship the MXD file off to ArcGIS For Server to turn them into web maps.

But what if you want to create a map in ArcMap and then turn it into a map displayed in some less expensive web server?

Is this workflow possible? (I still have not answered this question!)

  1. Create map in ArcMap
  2. Generate tile package
  3. Copy tile package to server
  4. (Non-ESRI) server sends tiles to browsers for use as map layer(s).

Just found this interesting blog post today, needs further investigation. Demystifying the ESRI Compact Cache; maybe it will help.

The problem is unpacking the ESRI format TPK down into the PNG or JPG files it contains. I see references in the ArcGIS Python docs on storing the tiles in "exploded" form, but don't know how to do that yet.

When you drag a TPK file from ArcCatalog to ArcMap to preview it, behind the scenes ArcMap unpacks it and stores it in "C:/Users/your name here/Documents/ArcGIS/Packages/packagename. This could surprise you by using up all the disk space on C:/. I am guessing nothing ever deletes the unpacked folders.

What is a tile package?

ESRI help page: About tile packages

What does "Enable ArcGIS Runtime Tools" mean? I think it means it allows uploads from the File->Share wizard.

What does it mean "Automatically select location" vs "Use user specified location"?

TPK file contents

It is a zip file, which is what I expected. Inside the zip are "bundle" files which are in "Compact cache" format.

Unzipped...

esriinfo/item.pkinfo
esriinfo/iteminfo.xml
esriinfo/thumbnail/thumbnail.png
v101/Web Mercator Map/conf.cdi
v101/Web Mercator Map/conf.xml
                     _alllayers/L00/R0000C0000.bundle
                     _alllayers/L00/R0000C0000.bundlx
                     _alllayers/L01/R0000C0000.bundle
                     _alllayers/L01/R0000C0000.bundlx
.
.
.
v101/Web Mercator Map.lyr
  • File:Conf.xml - metadata including descriptions of the tile sets in the file.
  • The v101 appears to refer to the current ArcGIS release, 10.1.
  • The "Web Mercator Map" is the name of my active Data Frame in the MXD.
  • The layer number Lxx refers to the zoom level.

In addition to dragging the complete TPK onto ArcMap, you can also unpack the tile package in ArcCatalog (right click on it) and then drag the .lyr file into a map to see its contents.

Map design

Projection: When creating the MXD, you should put the data frame in EPSG 3857 Web Mercator (Auxilliary Sphere) coordinate system.

Scales: Set the MXD to use the standard Web Mercator scales. Limit it to show only these scales. In ArcMap they are available when you click "Load" in Scale Settings. Select ArcGIS Online/Bing/Google and it will load in the standard settings. You can delete the ones you don't want then. See also http://blogs.esri.com/esri/arcgis/2009/03/19/how-can-you-tell-what-map-scales-are-shown-for-online-maps/

Groups for zoom levels: I create a group for each zoom level and name it appropriatedly, for example "Zoom 19 (1:1128)". Then I set the scale levels as properties on each group. Then I can add data and symbolize it appropriately in each zoom group.

Extent of data frame: I zoom out until everything I need is visible, then set the maximum extent on the data frame.

Generating tiles

In ArcMap, use File -> Sharing to bring up the dialog.

Warning about projection

I get HIGH warnings because the data frame is EPSG 3857 but the data are in other projections. I ignore this because I don't want to reproject all my data.

Warning about transparency

When I analyze my map one of the warnings I get is "10009: Enabling the option to convert layer transparency to color transparency may improve performance".

The way to select color transparency is to expand the warning, right click on each entry therein, and select "Use color transparency". I think it's saying to use the alpha channel in the PNG files, but I have no certainty on this.

The help doc says: You are using layer transparency, which applies dynamic transparency to all the map layer's contents. Unlike ArcMap, map services support color transparency, and enabling a conversion of layer transparency to color transparency in the Prepare window can improve the performance of your map. However, the use of color transparency may alter the appearance of your map.