# GeoJsonDataSource

#### new Cesium.GeoJsonDataSource(name)
DataSources/GeoJsonDataSource.js 600

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:

    var 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
DataSources/GeoJsonDataSource.js 718

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

Default Value: `false`

#### static Cesium.GeoJsonDataSource.crsLinkHrefs : Object
DataSources/GeoJsonDataSource.js 750

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
DataSources/GeoJsonDataSource.js 764

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
DataSources/GeoJsonDataSource.js 735

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
DataSources/GeoJsonDataSource.js 704

Gets or sets default color for polygon interiors.

Default Value: `Color.YELLOW`

#### static Cesium.GeoJsonDataSource.markerColor : Color
DataSources/GeoJsonDataSource.js 662

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

Default Value: `Color.ROYALBLUE`

#### static Cesium.GeoJsonDataSource.markerSize : Number
DataSources/GeoJsonDataSource.js 633

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

Default Value: `48`

#### static Cesium.GeoJsonDataSource.markerSymbol : String
DataSources/GeoJsonDataSource.js 648

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
DataSources/GeoJsonDataSource.js 676

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

Default Value: `Color.BLACK`

#### static Cesium.GeoJsonDataSource.strokeWidth : Number
DataSources/GeoJsonDataSource.js 690

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

Default Value: `2.0`

#### changedEvent : Event
DataSources/GeoJsonDataSource.js 822

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

#### clock : DataSourceClock
DataSources/GeoJsonDataSource.js 793

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

#### clustering : EntityCluster
DataSources/GeoJsonDataSource.js 867

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

#### credit : Credit
DataSources/GeoJsonDataSource.js 885

Gets the credit that will be displayed for the data source

#### entities : EntityCollection
DataSources/GeoJsonDataSource.js 802

Gets the collection of `Entity` instances.

#### errorEvent : Event
DataSources/GeoJsonDataSource.js 832

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

#### isLoading : Boolean
DataSources/GeoJsonDataSource.js 812

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

#### loadingEvent : Event
DataSources/GeoJsonDataSource.js 842

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

#### name : String
DataSources/GeoJsonDataSource.js 777

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

#### show : Boolean
DataSources/GeoJsonDataSource.js 852

Gets whether or not this data source should be displayed.

### Methods

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

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>
DataSources/GeoJsonDataSource.js 911

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`

Object

optional An object with the following properties:

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

##### Returns:

a promise that will resolve when the GeoJSON is loaded.

#### update(time) → Boolean
DataSources/GeoJsonDataSource.js 983

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)
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
DataSources/GeoJsonDataSource.js 560

Initialization options for the `load` method.

##### Properties:

Name | Type | Attributes | Default | Description
--- | --- | --- | --- | ---
`sourceUri` | String | <optional> |  | Overrides the url to use for resolving relative links.
`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.