Creating (and Sharing with You) a Vector Tile Cache for ArcGIS Server

—Dave Bouwman and Mike Juniper (DTSAgile)

I, for one, welcome our tiled vector overlords! At DTS, we really dig the new stuff in ArcGIS feature services at 10. Smart client-side fetching and caching are great, and we like all the editing coolness. But we are demanding souls, and there are a few things we'd still like to have. First, we want generalization, on the fly, based on zoom level. I'm lazy, and I don't want to have to manually generalize my data. But we do want detailed geometries when zoomed in, so right now we need to have another layer, with another dataset behind it, and manage switching layers in code, transparent to the user. And for points—how about we cluster them up server side? Enter the vector tile cache. We simply precache a bunch of JSON files in the typical tile storage hierarchy. And it's all managed by a handy dandy REST server object extension. In this talk, we'll describe why we wanted to do this; how we built the REST server object extension that cooks and caches the JSON tiles with automatic generalization or clustering. We'll show this working with Polymaps and Tile5 JavaScript map libraries, and if we have time, we'll cook up custom layers for the ArcGIS APIs for JavaScript and Flex. And if that's not enough, all the code will be up on GitHub for your use and abuse. Let there be vectors!