KmlDataSource

new Cesium.KmlDataSource(options)

A DataSource which processes Keyhole Markup Language 2.2 (KML).

KML support in Cesium is incomplete, but a large amount of the standard, as well as Google's gx extension namespace, is supported. See Github issue #873 for a detailed list of what is and isn't supported. Cesium will also write information to the console when it encounters most unsupported features.

Non visual feature data, such as atom:author and ExtendedData is exposed via an instance of KmlFeatureData, which is added to each Entity under the kml property.

Name Type Description
options KmlDataSource.ConstructorOptions optional Object describing initialization options
Example:
const viewer = new Cesium.Viewer('cesiumContainer');
viewer.dataSources.add(Cesium.KmlDataSource.load('../../SampleData/facilities.kmz',
     {
          camera: viewer.scene.camera,
          canvas: viewer.scene.canvas
     })
);
Demo:
See:

Members

The position and orientation of this Camera will be used to populate various camera parameters when making network requests. Camera movement will determine when to trigger NetworkLink refresh if viewRefreshMode is onStop.

canvas : HTMLCanvasElement|undefined

The current size of this Canvas will be used to populate the Link parameters for client height and width.
Gets an event that will be raised when the underlying data changes.
Gets the clock settings defined by the loaded KML. This represents the total availability interval for all time-dynamic data. If the KML does not contain time-dynamic data, this value is undefined.
Gets or sets the clustering options for this data source. This object can be shared between multiple data sources.
Gets the credit that will be displayed for the data source
Gets the collection of Entity instances.
Gets an event that will be raised if an error is encountered during processing.

isLoading : Boolean

Gets a value indicating if the data source is currently loading data.
Gets the KML Tours that are used to guide the camera to specified destinations on given time intervals.
Gets an event that will be raised when the data source either starts or stops loading.
Gets or sets a human-readable name for this instance. This will be automatically be set to the KML document name on load.
Gets an event that will be raised when the data source refreshes a network link.
Gets whether or not this data source should be displayed.

unsupportedNodeEvent : Event

Gets an event that will be raised when the data source finds an unsupported node type.

Methods

static Cesium.KmlDataSource.load(data, options)Promise.<KmlDataSource>

Creates a Promise to a new instance loaded with the provided KML data.
Name Type Description
data Resource | String | Document | Blob A url, parsed KML document, or Blob containing binary KMZ data or a parsed KML document.
options KmlDataSource.ConstructorOptions optional An object specifying configuration options
Returns:
A promise that will resolve to a new KmlDataSource instance once the KML is loaded.
Cleans up any non-entity elements created by the data source. Currently this only affects ScreenOverlay elements.

load(data, options)Promise.<KmlDataSource>

Asynchronously loads the provided KML data, replacing any existing data.
Name Type Description
data Resource | String | Document | Blob A url, parsed KML document, or Blob containing binary KMZ data or a parsed KML document.
options KmlDataSource.LoadOptions optional An object specifying configuration options
Returns:
A promise that will resolve to this instances once the KML is loaded.

update(time)Boolean

Updates any NetworkLink that require updating.
Name Type Description
time JulianDate The simulation time.
Returns:
True if this data source is ready to be displayed at the provided time, false otherwise.

Type Definitions

Cesium.KmlDataSource.ConstructorOptions

Options for constructing a new KmlDataSource, or calling the static `load` method.
Properties:
Name Type Attributes Default Description
camera Camera <optional>
The camera that is used for viewRefreshModes and sending camera properties to network links.
canvas HTMLCanvasElement <optional>
The canvas that is used for sending viewer properties to network links.
credit Credit | String <optional>
A credit for the data source, which is displayed on the canvas.
sourceUri String <optional>
Overrides the url to use for resolving relative links and other KML network features.
clampToGround Boolean <optional>
false true if we want the geometry features (Polygons, LineStrings and LinearRings) clamped to the ground.
ellipsoid Ellipsoid <optional>
Ellipsoid.WGS84 The global ellipsoid used for geographical calculations.
screenOverlayContainer Element | String <optional>
A container for ScreenOverlay images.

Cesium.KmlDataSource.LoadOptions

Initialization options for the `load` method.
Properties:
Name Type Attributes Default Description
sourceUri String <optional>
Overrides the url to use for resolving relative links and other KML network features.
clampToGround Boolean <optional>
false true if we want the geometry features (Polygons, LineStrings and LinearRings) clamped to the ground.
ellipsoid Ellipsoid <optional>
Ellipsoid.WGS84 The global ellipsoid used for geographical calculations.
screenOverlayContainer Element | String <optional>
A container for ScreenOverlay images.
Need help? The fastest way to get answers is from the community and team on the Cesium Forum.