code: function(terria, url) {
    DataSourceCatalogItem.call(this, terria);
  
    this._dataSource = undefined;
    this._readyData = undefined;
  
    this.url = url;
  
    /**
     * Gets or sets the GeoJSON data, represented as a binary blob, object literal, or a Promise for one of those things.
     * If this property is set, {@link CatalogItem#url} is ignored.
     * This property is observable.
     * @type {Blob|Object|Promise}
     */
    this.data = undefined;
  
    /**
     * Gets or sets the URL from which the {@link GeoJsonCatalogItem#data} was obtained.  This will be used
     * to resolve any resources linked in the GeoJSON file, if any.
     * @type {String}
     */
    this.dataSourceUrl = undefined;
  
    /**
     * Gets or sets an object of style information which will be used instead of the default, but won't override
     * styles set on individual GeoJSON features. Styles follow the SimpleStyle spec: https://github.com/mapbox/simplestyle-spec/tree/master/1.1.0
     * `marker-opacity` and numeric values for `marker-size` are also supported.
     * @type {Object}
     */
    this.style = undefined;
  
    /**
     * Gets or sets a value indicating whether the features in this GeoJSON should be clamped to the terrain surface.
     * @type {Boolean}
     */
    this.clampToGround = undefined;
  
    knockout.track(this, ["data", "dataSourceUrl", "style", "clampToGround"]);
  }
docs: A {@link CatalogItem} representing GeoJSON feature data.
  
  @alias GeoJsonCatalogItem
  @constructor
  @extends CatalogItem
  
  @param {Terria} terria The Terria instance.
  @param {String} [url] The URL from which to retrieve the GeoJSON data.