Tuesday, December 1, 2015

WMS and WMTS: Using CalTopo Layers In ArcGIS

I regularly get asked about using CalTopo layers in desktop programs, often but not always ArcGIS.  There are a number of protocols for accessing seamless map data, and one of them (WMS) has been supported by CalTopo for a while.  However I always kept it closely guarded - if you asked nicely I'd provide the URL, but implore you not to share it with anyone lest a horde of ArcGIS users descend on my server.

With the introduction of paid subscriptions, I can now make this a publicly known feature, along with WMTS support for serving tilesets as-is.  As a note, this is limited to pro accounts, which seems reasonable to me as most people who need to import custom layers into a GIS program are likely paid professionals.

Access is restricted using account-specific API keys.  Click on your account name at the top of the left bar, and then the "Your Account" tab in the dialog.

If you are a pro-level user, you'll see an API access section with links to the WMS and WMTS endpoints.  In this case, ABC123 is my auto-generated (and made up) API key.

If the program you're using supports WMTS, you'll have better luck using that to serve tiles and letting your program combine them into a seamless image.  Because WMS has CalTopo's server compose a new image every time you pan the map, redraws will be slower and can't take advantage of caching.

Both services are provided in spherical mercator projection only (EPSG 3857, 900913, etc).  If you need something else, your GIS program needs to be able to do the reprojecting.

Also note that unlike traditional WMS services, CalTopo's WMS API is only intended to have one layer turned on at a time.  If you turn on multiple layers at once, you may get unexpected results, including no data showing up.

Comprehensive instructions for your program of choice should be available online, but an abbreviated version for ArcGIS and WMTS is shown below.  To start with, on the Add Data dialog, find the GIS Servers folder and choose "Add WMTS Server".

Enter the WMTS URL from your CalTopo account dialog, click Get Layers to verify it, and then OK.

Choose the layer you want to add.


As another example, here's the new MBTopo layer rendered in ArcGIS:


  1. This comment has been removed by a blog administrator.

  2. I am trying to use a WMS or WMTS from Digital Globe to provide updated imagery, but the systems are not talking. Is there a workaround?

    If there is a way to use the print function with better imagery than the NAIP 2013-2015 please share (google won't allow printing of their products).

  3. I would like to add PLSS (Public Land Survey System) overlays to your maps. Can you advise how I can do this?

  4. Is there a way to import an ArcGIS map into CalTopo? I found an ArcGIS that has some very specific property lines that I’d like to add to CalTopo in order to analyze some gps tracks. Thanks.