Frequently asked questions about KML
The following list of frequently asked questions may help you solve some common issues when working with KML inside ArcGIS.
KML version support in ArcGIS
What version of KML can be displayed in ArcGIS?
Display support for KML in ArcGIS cannot be described as a KML version number. Given that many KML tags introduced in KML 2.0 are still present in KML 2.1 and KML 2.2, it is possible to have a KML file with a 2.2 header that contains only tags that were released with KML 2.0 or 2.1. In these cases, ArcGIS may fully support the display of a KML 2.2 file. Some key KML items supported for display include geometry (points, lines, polygons), ground overlays, network links, feature symbology, LookAt positions, screen overlays, COLLADA files, radio button folders, regions, and nested folders. Examples of KML items not yet supported for display include photo overlays, balloon styles, and time spans (animations). Furthermore, there is currently no support for any of the more than 20 new tags included in KML 2.2. For example, ArcGIS does not support display of the improved schema tags or photo overlays. All unsupported tags are simply ignored when reading the KML. This means that KML files with a mixture of supported and unsupported content will still be brought into ArcGIS and at least partially displayed. For more information, see the "Displaying KML 2.2 objects in ArcGlobe" section further down in this topic.
What version of KML is exported using ArcGIS geoprocessing tools?
The header of a KML exported from ArcGIS will indicate that the content is KML 2.2. However, the tags within the KML will only be those that were defined in the KML 2.0/2.1 specifications. Some key items supported in exported KML files include geometry (points, lines, polygons),; ground overlays, feature symbology, LookAt positions, screen overlays (legends), radio button folders (legends), folders (feature layers and group layers), and HTML descriptions. Examples of KML items not supported in exported KML files include COLLADA, regions, and time spans (animations).
What version of KML is served using ArcGIS Server?
The header of a KML network link document being served from ArcGIS will indicate that the content is KML 2.2. However, the tags within the KML will only be those that were defined in the KML 2.0/2.1 specifications. Some key items supported in served KML network links include geometry (points, lines, polygons), ground overlays, feature symbology, LookAt positions, screen overlays (map legends), radio button folders (map legend placements), folders (group layers), HTML descriptions, and regions. Examples of KML items not supported in served KML network links include COLLADA and time spans (animations).
Displaying KML 2.2 objects in ArcGlobe
What objects in the KML 2.2 specification will be displayed?
The KML 2.2 specification includes over 160 tags, grouped into logical objects and types. ArcGlobe displays the bulk of the KML 2.2 specification, with key exceptions including photo overlays and time animations. The KML logical objects that are supported for display in ArcGlobe are detailed in the diagram of the KML 2.2 hierarchy below.
What parts of the Link and ListStyle objects are supported?
The Link object has two main purposes—to specify the location of referenced objects, such as network links and models, and to specify behavior for the link, such as when to reload the referenced content. The Link object has many subtags, some of which are supported and some of which are not:
- Supported: <href>, <refreshInterval>, <viewRefreshTime>
Partially supported: <refreshMode> (onChange, OnInterval), <viewRefreshMode> (never, onStop, onRequest)
- Not supported: <viewBoundScale>, <viewFormat>, <httpQuery>, <refreshMode> (onExpire), <viewRefreshMode> (onRegion)
The ListStyle object specifies how items are displayed in the list view. The list view is a hierarchy of containers and children and is exposed in the KML Contents dialog box in ArcGlobe and the Places panel in Google Earth. The ListStyle object has three subtag groups, of which ESRI supports one:
- Supported: <listItemType>
- Not supported: <bgColor>, <ItemIcon>
If the header of my KML file says it is 2.0 or 2.1, will it still display in ArcGlobe?
Yes, based on the object-level support detailed above. Supported KML objects will be displayed, and unsupported KML objects will not. The KML 2.2 specification is a modified extension of the KML 2.0 and 2.1 specifications and shares many of the same elements. It is possible to have a KML 2.2 file that contains only tags defined in an earlier release of the KML specification.
Over 20 new tags are in the KML 2.2 specification. Are any of those tags supported?
No, none of the newly added KML 2.2 tags are supported for displaying, exporting, or serving in ArcGIS.
ArcToolbox and KML
Where are the KML geoprocessing tools?
The three KML tools are found inside the Conversion toolbox. Map to KML and Layer to KML are found inside the To KML toolset, while KML to Layer is found inside the From KML toolset.
What does the Return single composite image option in the Map To KML and Layer To KML geoprocessing tools mean for vector layers?
This option is exposed on the Data Content Properties section of the geoprocessing tool dialog box, and it will convert the input map or layer into an exported image to be displayed as a KML ground overlay. Features displayed this way will no longer contain any feature description information and cannot be clicked to bring up a pop-up window. Also, with any image-based export of KML from ArcGIS, the image is a snapshot of the data that will not adjust its display resolution as the user zooms in and out. To get this behavior, you must publish the KML as a service using ArcGIS Server. For maps, the option to export to KML ground overlay images can be done either as a single image for the whole map, using the Return single composite image option, or as a set of ground overlays, one for each layer, using the Convert vector to raster option.
What are the Layer Output Scale and Map Output Scale properties used for?
Both of the output scale properties are used to set the scale of the map before the content is exported to an image. If the scale specified results in one or more layers not being displayed due to that layer being outside its scale-dependent rendering threshold, those layers will not be included in the exported KML image. If the layer or map being exported is all vector layers, only the scale-dependent visibility of the layer is checked. If none of the layers are using scale-dependent rendering, the Map Output Scale property is not used at all.
How do I export my features so they display as 3D vector KML elements?
To display GIS data as 3D vector KML elements, such as extruded polygons or 3D lines, the layer must have the appropriate 3D properties defined. You can set these properties through the Layer Properties dialog box in either ArcGlobe or ArcScene. These properties will remain with the layer even if it is copied and pasted into ArcMap to run the Map To KML geoprocessing tool.
What spatial reference should I use when exporting my maps and data as KML?
Any spatial reference can be used. During export, the data is automatically converted into WGS84 for display as KML. Applying the correct datum transform is always critical when converting between spatial references. When using the Map To KML tool or when exporting from ArcGIS Server, any datum transformation you specify when adding layers to the source map will be honored. When using the Layer To KML tool, it is recommended that you convert your data to WGS84 manually before exporting to KML, to ensure the correct datum transformation occurs.
What spatial reference does my KML import as?
When importing a KML into ArcGIS it will be created with the WGS84 spatial reference. You can use the Project tool to change the spatial reference of the data from WGS84 to one of your liking.
ArcGlobe Desktop and KML
How do I add KML data into ArcGlobe?
KML data can be added into ArcGlobe as either a reference to a KML file on disk or on the Internet or as a URL-based reference to a KML network link service. For network links, the connection information may include HTML-style parameters. Given these additional capabilities, KML data is added into ArcGlobe from two specialized commands on the KML toolbar. Add the KML toolbar to your display by clicking Customize > Toolbars and choosing the KML toolbar. Add KML data using the Add KML Data and Add KML Network Link commands, then view the hierarchical content of the KML layer inside the KML Contents control. Save your ArcGlobe document to retain this configuration. The next time you open ArcGlobe, the KML toolbar will be visible.
I've added my KML data. Why don't I see any content?
The extent of the KML data may not be in your current view extent. Right-click on the layer in the table of contents and click Zoom To Layer.
I zoomed to my layer. Why am I in Africa?
All layers displayed in ArcGIS must have an extent. The center of the default extent for KML layers is (0,0), which happens to be off the coast of Africa. If your KML layer uses the default (0,0) extent, it does not have any geographic content that is supported for display in ArcGIS. Some reasons why this may occur include the following:
- All the KML elements are unsupported types. For example, the KML file contains a set of photo overlays.
- The KML references a network link that is disabled or unavailable. For example, your Internet connection is down.
- The KML file contains no geometry. For example, it contains only organizational folders.
- The KML file contains invalid geometry. For example, the points and lines within the KML have invalid coordinates.
ArcGIS Server Manager and KML
How do I create a KML network link using ArcGIS Server?
When authoring a map service using ArcGIS Server Manager, there is an option to enable KML capabilities for the service. Enabling this option exposes more configuration options for the service that are explicitly for KML. A map service with the KML capability enabled allows any KML client, such as ArcGlobe, ArcGIS Explorer, Google Earth, Google Maps, and Google Mobile Maps, to request data from the service in KML format. See Managing KML network links in the ArcGIS Server Help Online for details about creating and managing KML network links. Like all map services, a KML-enabled map service is created from a map document authored in ArcMap. See Preparing your map documents in ArcGIS for KML publishing for details on authoring a map document that will display well as KML.
Additional REST KML network links that can be accessed include map service layer query operations, geocode address and reverse geocode operations, and results of submitted geoprocessing jobs.
What spatial reference should I use when serving my maps and data as KML?
Any spatial reference can be used. When served, the data is automatically converted into WGS84 for display as KML. Applying the correct datum transformation is always critical when converting between spatial references. When using the Map To KML tool or when exporting from ArcGIS Server, any datum transformation you specify when adding layers to the source map will be honored. When using the Layer To KML tool, it is recommended that you convert your data to WGS84 manually before exporting to KML, to ensure the correct datum transformation occurs.