# GeoJsonDataSource

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

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 649

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

Default Value: `false`

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

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 695

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 666

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 635

Gets or sets default color for polygon interiors.

Default Value: `Color.YELLOW`

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

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 550

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 565

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.outline : Boolean
DataSources/GeoJsonDataSource.js 593

Gets or sets the Property specifying whether the polygon is outlined.

Default Value: `false`

#### static Cesium.GeoJsonDataSource.stroke : Color
DataSources/GeoJsonDataSource.js 607

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

Default Value: `Color.BLACK`

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

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

Default Value: `2.0`

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

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

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

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

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

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

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

Gets the credit that will be displayed for the data source

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

Gets the collection of `Entity` instances.

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

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

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

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

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

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

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

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

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

Gets whether or not this data source should be displayed.

### Methods

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

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 843

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.
`outline` | Boolean | `GeoJsonDataSource.outline` | optional Gets or sets the Property specifying whether the polygon is outlined.
`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 910

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 983

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 476

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.