# GeoJsonDataSource

#### new Cesium.GeoJsonDataSource(name)
engine/Source/DataSources/GeoJsonDataSource.js 593

A `DataSource` which processes both GeoJSON and TopoJSON data. simplestyle-spec properties will also be used if they are present.

Name | Type | Description
--- | --- | ---
`name` | string | optional The name of this data source. If undefined, a name will be taken from the name of the GeoJSON file.

##### Example:

    const viewer = new Cesium.Viewer('cesiumContainer');
    viewer.dataSources.add(Cesium.GeoJsonDataSource.load('../../SampleData/ne_10m_us_states.topojson', {
      stroke: Cesium.Color.HOTPINK,
      fill: Cesium.Color.PINK,
      strokeWidth: 3,
      markerSymbol: '?'
    }));

##### Demo:

- Cesium Sandcastle GeoJSON and TopoJSON Demo
- Cesium Sandcastle GeoJSON simplestyle Demo

### Members

#### static Cesium.GeoJsonDataSource.clampToGround : boolean
engine/Source/DataSources/GeoJsonDataSource.js 711

Gets or sets default of whether to clamp to the ground.

Default Value: `false`

#### static Cesium.GeoJsonDataSource.crsLinkHrefs : object
engine/Source/DataSources/GeoJsonDataSource.js 743

Gets an object that maps the href property of a crs link to a callback function which takes the crs properties object and returns a Promise that resolves to a function that takes a GeoJSON coordinate and transforms it into a WGS84 Earth-fixed Cartesian. Items in this object take precedence over those defined in `crsLinkHrefs`, assuming the link has a type specified.

#### static Cesium.GeoJsonDataSource.crsLinkTypes : object
engine/Source/DataSources/GeoJsonDataSource.js 757

Gets an object that maps the type property of a crs link to a callback function which takes the crs properties object and returns a Promise that resolves to a function that takes a GeoJSON coordinate and transforms it into a WGS84 Earth-fixed Cartesian. Items in `crsLinkHrefs` take precedence over this object.

#### static Cesium.GeoJsonDataSource.crsNames : object
engine/Source/DataSources/GeoJsonDataSource.js 728

Gets an object that maps the name of a crs to a callback function which takes a GeoJSON coordinate and transforms it into a WGS84 Earth-fixed Cartesian. Older versions of GeoJSON which supported the EPSG type can be added to this list as well, by specifying the complete EPSG name, for example 'EPSG:4326'.

#### static Cesium.GeoJsonDataSource.fill : Color
engine/Source/DataSources/GeoJsonDataSource.js 697

Gets or sets default color for polygon interiors.

Default Value: `Color.YELLOW`

#### static Cesium.GeoJsonDataSource.markerColor : Color
engine/Source/DataSources/GeoJsonDataSource.js 655

Gets or sets the default color of the map pin created for each point.

Default Value: `Color.ROYALBLUE`

#### static Cesium.GeoJsonDataSource.markerSize : number
engine/Source/DataSources/GeoJsonDataSource.js 626

Gets or sets the default size of the map pin created for each point, in pixels.

Default Value: `48`

#### static Cesium.GeoJsonDataSource.markerSymbol : string
engine/Source/DataSources/GeoJsonDataSource.js 641

Gets or sets the default symbol of the map pin created for each point. This can be any valid Maki identifier, any single character, or blank if no symbol is to be used.

#### static Cesium.GeoJsonDataSource.stroke : Color
engine/Source/DataSources/GeoJsonDataSource.js 669

Gets or sets the default color of polylines and polygon outlines.

Default Value: `Color.BLACK`

#### static Cesium.GeoJsonDataSource.strokeWidth : number
engine/Source/DataSources/GeoJsonDataSource.js 683

Gets or sets the default width of polylines and polygon outlines.

Default Value: `2.0`

#### changedEvent : Event
engine/Source/DataSources/GeoJsonDataSource.js 815

Gets an event that will be raised when the underlying data changes.

#### clock : DataSourceClock
engine/Source/DataSources/GeoJsonDataSource.js 786

This DataSource only defines static data, therefore this property is always undefined.

#### clustering : EntityCluster
engine/Source/DataSources/GeoJsonDataSource.js 860

Gets or sets the clustering options for this data source. This object can be shared between multiple data sources.

#### credit : Credit
engine/Source/DataSources/GeoJsonDataSource.js 878

Gets the credit that will be displayed for the data source

#### entities : EntityCollection
engine/Source/DataSources/GeoJsonDataSource.js 795

Gets the collection of `Entity` instances.

#### errorEvent : Event
engine/Source/DataSources/GeoJsonDataSource.js 825

Gets an event that will be raised if an error is encountered during processing.

#### isLoading : boolean
engine/Source/DataSources/GeoJsonDataSource.js 805

Gets a value indicating if the data source is currently loading data.

#### loadingEvent : Event
engine/Source/DataSources/GeoJsonDataSource.js 835

Gets an event that will be raised when the data source either starts or stops loading.

#### name : string
engine/Source/DataSources/GeoJsonDataSource.js 770

Gets or sets a human-readable name for this instance.

#### show : boolean
engine/Source/DataSources/GeoJsonDataSource.js 845

Gets whether or not this data source should be displayed.

### Methods

#### static Cesium.GeoJsonDataSource.load(data, options) → Promise.<GeoJsonDataSource>
engine/Source/DataSources/GeoJsonDataSource.js 615

Creates a Promise to a new instance loaded with the provided GeoJSON or TopoJSON data.

Name | Type | Description
--- | --- | ---
`data` | Resource | string | object | A url, GeoJSON object, or TopoJSON object to be loaded.
`options` | GeoJsonDataSource.LoadOptions | optional An object specifying configuration options

##### Returns:

A promise that will resolve when the data is loaded.

#### load(data, options) → Promise.<GeoJsonDataSource>
engine/Source/DataSources/GeoJsonDataSource.js 893

Asynchronously loads the provided GeoJSON or TopoJSON data, replacing any existing data.

Name | Type | Description
--- | --- | ---
`data` | Resource | string | object | A url, GeoJSON object, or TopoJSON object to be loaded.
`options` | GeoJsonDataSource.LoadOptions | optional An object specifying configuration options

##### Returns:

a promise that will resolve when the GeoJSON is loaded.

#### process(data, options) → Promise.<GeoJsonDataSource>
engine/Source/DataSources/GeoJsonDataSource.js 905

Asynchronously loads the provided GeoJSON or TopoJSON data, without replacing any existing data.

Name | Type | Description
--- | --- | ---
`data` | Resource | string | object | A url, GeoJSON object, or TopoJSON object to be loaded.
`options` | GeoJsonDataSource.LoadOptions | optional An object specifying configuration options

##### Returns:

a promise that will resolve when the GeoJSON is loaded.

#### update(time) → boolean
engine/Source/DataSources/GeoJsonDataSource.js 981

Updates the data source to the provided time. This function is optional and is not required to be implemented. It is provided for data sources which retrieve data based on the current animation time or scene state. If implemented, update will be called by `DataSourceDisplay` once a frame.

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.GeoJsonDataSource.describe(properties, nameProperty)
engine/Source/DataSources/GeoJsonDataSource.js 1058

This callback is displayed as part of the GeoJsonDataSource class.

Name | Type | Description
--- | --- | ---
`properties` | object | The properties of the feature.
`nameProperty` | string | The property key that Cesium estimates to have the name of the feature.

#### Cesium.GeoJsonDataSource.LoadOptions
engine/Source/DataSources/GeoJsonDataSource.js 552

Initialization options for the `load` method.

##### Properties:

Name | Type | Attributes | Default | Description
--- | --- | --- | --- | ---
`sourceUri` | string | <optional> |  | Overrides the url to use for resolving relative links.
`describe` | GeoJsonDataSource.describe | <optional> | GeoJsonDataSource.defaultDescribeProperty | A function which returns a Property object (or just a string).
`markerSize` | number | <optional> | GeoJsonDataSource.markerSize | The default size of the map pin created for each point, in pixels.
`markerSymbol` | string | <optional> | GeoJsonDataSource.markerSymbol | The default symbol of the map pin created for each point.
`markerColor` | Color | <optional> | GeoJsonDataSource.markerColor | The default color of the map pin created for each point.
`stroke` | Color | <optional> | GeoJsonDataSource.stroke | The default color of polylines and polygon outlines.
`strokeWidth` | number | <optional> | GeoJsonDataSource.strokeWidth | The default width of polylines and polygon outlines.
`fill` | Color | <optional> | GeoJsonDataSource.fill | The default color for polygon interiors.
`clampToGround` | boolean | <optional> | GeoJsonDataSource.clampToGround | true if we want the geometry features (polygons or linestrings) clamped to the ground.
`credit` | Credit | string | <optional> |  | A credit for the data source, which is displayed on the canvas.

Need help? The fastest way to get answers is from the community and team on the Cesium Forum.