terriajs
Version:
Geospatial data visualization platform.
169 lines (153 loc) • 5.2 kB
text/typescript
import CatalogMemberTraits from "./CatalogMemberTraits";
import GetCapabilitiesTraits from "./GetCapabilitiesTraits";
import GroupTraits from "./GroupTraits";
import mixTraits from "../mixTraits";
import ModelTraits from "../ModelTraits";
import objectTrait from "../Decorators/objectTrait";
import primitiveTrait from "../Decorators/primitiveTrait";
import UrlTraits from "./UrlTraits";
import LegendOwnerTraits from "./LegendOwnerTraits";
import { traitClass } from "../Trait";
export type QueryPropertyName =
| "identifier"
| "title"
| "type"
| "abstract"
| "format"
| "modified"
| "relation"
| "spatial"
| "subject";
export class DomainSpecTraits extends ModelTraits {
({
type: "string",
name: "Domain Property Name",
description: "Domain Property Name."
})
domainPropertyName?: string;
({
type: "string",
name: "Hierarchy Separator",
description: "Hierarchy Separator."
})
hierarchySeparator?: string;
({
type: "string",
name: "Query Property Name",
description: "Query Property Name."
})
queryPropertyName?: QueryPropertyName;
}
({
description: `Creates one catalog group from url that points to a csw service.
The url in the example supports CORS therefore do not use proxy. Using a proxy might not work.`,
example: {
type: "csw-group",
url: "http://oa-gis.csiro.au/geonetwork/srv/eng/csw",
domainSpecification: {
domainPropertyName: "awavea",
hierarchySeparator: " | ",
queryPropertyName: "subject"
},
name: "Marine Energy Context Layers",
id: "some unique ID"
}
})
export default class CswCatalogGroupTraits extends mixTraits(
GetCapabilitiesTraits,
GroupTraits,
UrlTraits,
CatalogMemberTraits,
LegendOwnerTraits
) {
({
type: "boolean",
name: "Flatten",
description:
"True to flatten the layers into a single list; false to use the layer hierarchy."
})
flatten?: boolean = false;
({
type: DomainSpecTraits,
name: "Domain Specification",
description: "Domain Specification"
})
domainSpecification?: DomainSpecTraits;
({
type: "boolean",
name: "Include WMS",
description:
"True to allow WMS resources to be added to the catalog; otherwise, false."
})
includeWms: boolean = true;
({
type: "boolean",
name: "Include KML",
description:
"True to allow KML resources to be added to the catalog; otherwise, false."
})
includeKml: boolean = true;
({
type: "boolean",
name: "Include CSV",
description:
"True to allow CSV resources to be added to the catalog; otherwise, false."
})
includeCsv: boolean = true;
({
type: "boolean",
name: "Include ESRI Map Server",
description:
"True to allow ESRI Map resources to be added to the catalog; otherwise, false."
})
includeEsriMapServer: boolean = true;
({
type: "boolean",
name: "Include GeoJSON",
description:
"True to allow GeoJSON resources to be added to the catalog; otherwise, false"
})
includeGeoJson: boolean = true;
({
type: "string",
name: "WMS Resource Format",
description:
"Gets or sets a regular expression that, when it matches the protocol attribute of a URI element of a record, indicates that the URI is a WMS resource."
})
wmsResourceFormat = "\\bwms\\b";
({
type: "string",
name: "KML Resource Format",
description:
"Gets or sets a regular expression that, when it matches the protocol attribute of a URI element of a record, indicates that the resource is a KML resource."
})
kmlResourceFormat = "\\bkml\\b";
({
type: "string",
name: "CSV Resource Format",
description:
"Gets or sets a regular expression that, when it matches the protocol attribute of a URI element of a record, indicates that the URI is a CSV resource."
})
csvResourceFormat = "\\bcsv-geo-";
({
type: "string",
name: "ESRI MapServer Resource Format",
description:
"Gets or sets a regular expression that, when it matches the protocol attribute of a URI element of a record, indicates that the URI is a Esri MapServer resource."
})
esriMapServerResourceFormat = "\\besri rest\\b";
({
type: "string",
name: "WMS Resource Format",
description:
"Gets or sets a regular expression that, when it matches the protocol attribute of a URI element of a record, indicates that the URI is a GeoJSON resource."
})
geoJsonResourceFormat = "\\bgeojson\\b";
({
type: "string",
name: "GetRecords Template",
description:
"Gets or sets the template XML string to POST to the CSW server to query for catalog items. If this property is undefined,`lib/Models/CswGetRecordsTemplate.xml` is used. The XML string should have a `{startPosition}` placeholder to be replaced with the next start position in order to allow incremental paging of results.."
})
getRecordsTemplate?: string;
}