Project Summary

Project image thumnail

Custom Map Control and Services

Developed a Custom ArcGIS Server Map Control, Web Service, and Automation Components

Project Problem

The client wanted to integrate mapping into an existing desktop risk management application. The application was to be freely distributed to its customers and the client did not want the additional expense of including a desktop GIS product. Map performance was also expected to be on par with that of existing mapping applications like Google maps, including the display of millions of point features. The client was also in need of a custom factory application that would automate the conversion of their business databases to spatially-enabled ArcSDE databases, pre-process spatial joins, and automate the creation of ArcGIS Server map services along with the MXD documents that are used for those services.

Project Solution

Great Arc architected a solution including the following: a custom desktop map control, a custom web service to process ArcGIS Server requests, and a series of data automation components to prepare the data and create ArcGIS Server map services.

Map Control Great Arc built a custom map control for the desktop that accepts several data sources including ArcGIS Server, ArcWeb Services, ArcIMS, ArcGIS Online and a custom point event service created by Great Arc. The map control was built to be integrated by another contractor that is not familiar with GIS technology. Therefore, the map control needed a simplified set of commands that would be used by the contractor. The map control includes the following features:

  • Standard Map Tools (Zoom, Pan, Measure, Copy to Clipboard, etc.)
  • User drawn selection (Rectangle, Circle, Polygon)
  • Geocode Address (Includes three methods: ArcGIS Server, Yahoo Maps and Google Maps)
  • Supports the display of pre-rendered tile services for high performance (ArcGIS Server, ArcGIS Online, and ArcWeb Services)
  • Supports dynamically-defined thematics on any feature layer
  • Includes a custom-built point renderer that reads latitude and longitude fields from existing business tables for placement
  • Can render 100,000 points, including selections, in less than one second
  • Custom point aggregation allows millions of points displayed sub-second
  • Includes custom Map Tips that allows the display of any number of fields when the user hovers over visible map features
  • Navigation map that automatically scrolls when the user drags the current map extent rectangle to an edge of the navigation map
  • Stateless – all map state information is stored at the client desktop to avoid dropped sessions
  • Multi-threaded to allow simultaneous map requests to the various map services

Web Service In order to avoid the need to distribute licensed software to the end-users desktop, Great Arc built the ArcGIS Server features into a custom map service that resides on the client’s web server. In this design, all ArcGIS Server calls are made from the custom web service instead of from the client application. The web service includes the following features:

  • Generate map images for locally-defined map services
  • Displays selected features if they exist
  • Display custom thematics
  • Process selections based on user-drawn shapes
  • Process spatial selections using existing boundary selections
  • Geocode addresses using a ArcGIS Server Gecode Service
  • Write selection results to a SQL Server temp table
  • Supports coordinate transformations
  • Post-processes ArcGIS Server rendered images
  • Applies transparency for layering on top of tiled bitmaps
  • Antialiases image for improved quality

Data Factory Automation Components In order to prepare the business data for inclusion in the map controls, many manual steps were made that required a significant amount of time and included many potential points of failure. Great Arc provided custom automation components that were integrated into a data factory application. These components are responsible for several steps in the data preparation process. The automation components perform the following:

  • Spatially enable an existing database with ArcSDE
  • Convert a business table containing latitude and longitude fields to a point feature class
  • Execute spatial joins with common boundary layers (State, County, Zip, etc.) to populate fields
  • Create a custom MXD with the new point feature class
  • Create and start a new ArcGIS Server map service using the newly-created MXD



  • ArcGIS Server
  • ArcSDE
  • ArcWeb Services
  • ArcIMS
  • ArcObjects
  • C#.NET