KML support in ArcGIS Server
Keyhole Markup Language (KML) is an XML-based file format used to represent geographic features in applications such as Google Earth and ArcGIS Explorer. KML allows you to draw points, lines, and polygons on maps and globes and share them with others. Using KML you can also designate text, pictures, movies, or links to other GIS services that appear when the user clicks the feature. Many KML client applications are free and provide a familiar, user-friendly navigation experience.
What can you do with KML using ArcGIS Server?
ArcGIS Server allows you to share your maps and data as KML in several ways:
- Map and image services expose a KML network link through Representational State Transfer (REST).
- You can create your own KML network link using Services Directory or Manager.
- When you query map layers or perform a geoprocessing or geocoding operation through REST, you can get the results as KML.
In all these cases, the KML is dynamically generated, meaning that users who view the KML will always see the latest maps and data from your server. If you just want to generate static KML documents that you can e-mail or place on a file server, you can use the Map To KML and Layer To KML tools from ArcGIS Desktop.
How do you configure map and image services to return KML?
To share your maps and imagery as dynamic KML, all you have to do is publish them as services. Both map services and image services can return KML. Manager has tools that you can use to quickly publish the services.
Before you publish the services, you'll need to do some preparatory work. Map services require that you first prepare a map document containing the layers you want to make available as KML. In this map document, you can specify specific labeling, rendering, symbology, and HTML Popup properties that will be reflected in your KML. Three-dimensional properties need to be set in ArcGlobe and imported as layer files into your map document.
Image services require a raster dataset, a mosaic dataset, or a layer file referencing a raster dataset or mosaic dataset. You may prefer to use a layer file to define a specific renderer to ensure the image service looks the way you want it to.
KML through REST
All map and image services expose a KML network link through REST. Simply put, REST is a way of exposing information about your services through a series of navigable URLs. You can discover the URL to the network link using Services Directory, which is an application designed to help you navigate the REST endpoints on your server. The URL points to a .kmz file that you can add to Google Earth or any other client that supports KML network links.
If you don't want to use the default network link, you can use Services Directory or Manager to generate your own. See Viewing services as KML to learn more about REST, KML network links, and how ArcGIS Server works with both.
Viewing what's available on your server
Through the ArcGIS Services Directory, you can also view the footprints of all the map and image services on your GIS server. At any level of the server (for a folder or for the entire server), you can access a footprint KML network link that displays locations and descriptions of your services. You can use this footprint network link as a guide to show others what's available on your server.
Geocoding, geoprocessing, and query results as KML
ArcGIS Server map services can return the results of geoprocessing, geocoding, and query operations as KML. These services can be used in applications and can also be used directly by analysts typing in REST URLs. This is a good way to allow applications and users to selectively retrieve information from online geodatabases in KML format.
Recent improvements with KML
Below are some improvements to KML support that were added in ArcGIS Server 9.3:
- Generation of KML 2.2-compliant KML.
- Automatic availability of KML through REST.
- Use of KML Regions to display cached map services via REST.
- Availability of KML for image services.
- Availability of service footprints as KML through REST.
- Support for most ArcMap labeling capabilities.
- Ability to turn labels off.
- Ability to view the legends for a service. (These come from the ArcMap page layout view.)
- Formatting that you style on the HTML Popup tab of the Layer Properties dialog box in ArcMap transfers to the KML feature description.