There are a large number of options and configurations to consider when producing an ESRI Map Service. This Implementation document outlines the procedure used by the AZGS to generate a Map Service that can be either dynamic or cached, can also be used as the source of a WMS, and provides as much metadata as can be provided in the ESRI Map Service format. An example of an AZGS Map Service is provided below.
Getting Started: Build a Geodatabase
At the AZGS, the first step in the creation of an ESRI Map Service is to select and export the data we wish to provide from the repository, or wherever it is currently housed. Fortunately, for our most popular map-publication series (Digital Geologic Maps, Digital Information Series and Digital Map Series), this export will have already been done for the purposes of the publication. We export and distribute our geographic datasets in NCGMP09 format, which provides us with a standard schema and starting point. Here are a list of points to consider when building your backend dataset:
According to ESRI, ArcGIS Server performs best when the web service backend is a File Geodatabase. Any other ESRI format will work (shapefile, personal geodatabase, ArcSDE layer, etc), but because of the supposed performance benefits, we use a File Geodatabase. Convert the data to this format if you have to.
Take a close look at the schema of the database. Remember that the goal here is to build something that is a very user-friendly portrayal of your data. All of the following will end up included in some way in your ESRI Map Service and so they should be paid attention to:
Is the geodatabase name relatively descriptive of what it contains?
Are the table/featureclass names relatively descriptive of what they contain?
Are there meaningful field name aliases set up for the attributes of all the tables/featureclasses
Are there any relationship classes that you'll want to be captured? If so, do the forward/backwards names describe the relationship well?
Are there any foreign key relationships in your featureclasses that you want to display? If the keys are coded values, make sure that domains are set up properly so that users will see the value instead of the cryptic key.
If we are providing a service with more than one portrayal of the same features, we use different featuredatasets to house the features involved in each portrayal. The Tonto National Forest service contains two polygon layers, one displaying a lithogenetic classification of rocks across the mapped area, the other using a lithostratigraphic classification scheme. In the database these are represented as two polygon featureclasses in distinct featuredatasets.
Getting Started: Keeping Data Organized
We develop data and ArcMap documents on our LAN before moving them over to our web server, which is separated for security reasons. In order to keep our data and projects standardized, please follow these guidelines for locating and organizing the files that you use to build a service:
Begin by making a folder for your service in the ...\CurrentProjects\Online Map Services folder. Use the Folder Template to structure your service directory.
Use the folders outside the "For Kyanite" directory to assemble your ArcMap Project. Once everything is put together, mimic the structure in the "For Kyanite/ArcGIS" directory. This will become a backup of what is being used on the web server.