From c3e1d10fb5fc908ffa087843ad966a613a1422bd Mon Sep 17 00:00:00 2001 From: Mike Wu Date: Mon, 22 Jan 2024 17:13:31 +1100 Subject: [PATCH 01/39] Add examples for doc. --- .../ApiTableCatalogItemTraits.ts | 51 +++++++++++++++++++ .../ArcGisMapServerCatalogGroupTraits.ts | 10 ++++ .../ArcGisMapServerCatalogItemTraits.ts | 11 ++++ 3 files changed, 72 insertions(+) diff --git a/lib/Traits/TraitsClasses/ApiTableCatalogItemTraits.ts b/lib/Traits/TraitsClasses/ApiTableCatalogItemTraits.ts index 38c4ddd50c9..ed30cb50fc2 100644 --- a/lib/Traits/TraitsClasses/ApiTableCatalogItemTraits.ts +++ b/lib/Traits/TraitsClasses/ApiTableCatalogItemTraits.ts @@ -2,6 +2,7 @@ import objectArrayTrait from "../Decorators/objectArrayTrait"; import primitiveArrayTrait from "../Decorators/primitiveArrayTrait"; import primitiveTrait from "../Decorators/primitiveTrait"; import ModelTraits from "../ModelTraits"; +import { traitClass } from "../Trait"; import mixTraits from "../mixTraits"; import ApiRequestTraits, { QueryParamTraits } from "./ApiRequestTraits"; import AutoRefreshingTraits from "./AutoRefreshingTraits"; @@ -47,6 +48,56 @@ export class ApiTableColumnTraits extends ModelTraits { responseDataPath?: string; } +@traitClass({ + description: `Creates an api-table type dataset in the catalog, typically used for live sensor data.`, + example: { + type: "api-table", + name: "City of Melbourne Pedestrian Counter", + description: + "The City of Melbourne Pedestrian Counting System data has been obtained from the City of Melbourne Open data platform: www.data.melbourne.vic.gov.au to demonstrate the directional movement of pedestrians across the city.\n\nThe counters generate a per minute reading on each of the pedestrian traffic sensors which are then displayed as near-live data.\n\nTo find out more about the City of Melbourne's Pedestrian Counting System or to seek access to their data, please click:\n\nhttp://www.pedestrian.melbourne.vic.gov.au/?_ga=2.244642053.1432520662.1632694466-1456630549.1631675392#date=27-09-2021&time=1", + defaultStyle: { + time: { + spreadFinishTime: true, + timeColumn: "sensing_datetime" + } + }, + initialTimeSource: "stop", + columns: [ + { + name: "total_of_directions" + }, + { + name: "direction_2" + }, + { + name: "direction_1" + }, + { + name: "sensing_datetime" + }, + { + name: "latitude" + }, + { + name: "longitude" + } + ], + idKey: "location_id", + refreshInterval: 60, + removeDuplicateRows: true, + apis: [ + { + url: "https://melbournetestbed.opendatasoft.com/api/explore/v2.1/catalog/datasets/pedestrian-counting-system-past-hour-counts-per-minute/records?select=location_id%2Csensing_datetime%2Cdirection_1%2Cdirection_2%2Ctotal_of_directions&order_by=sensing_datetime%20DESC&limit=100", + responseDataPath: "results", + kind: "PER_ROW" + }, + { + url: "https://melbournetestbed.opendatasoft.com/api/explore/v2.1/catalog/datasets/pedestrian-counting-system-sensor-locations/exports/json?lang=en&timezone=Australia%2FSydney", + kind: "PER_ID" + } + ] + } +}) export default class ApiTableCatalogItemTraits extends mixTraits( TableTraits, CatalogMemberTraits, diff --git a/lib/Traits/TraitsClasses/ArcGisMapServerCatalogGroupTraits.ts b/lib/Traits/TraitsClasses/ArcGisMapServerCatalogGroupTraits.ts index 986754cdf88..92054ec6400 100644 --- a/lib/Traits/TraitsClasses/ArcGisMapServerCatalogGroupTraits.ts +++ b/lib/Traits/TraitsClasses/ArcGisMapServerCatalogGroupTraits.ts @@ -1,11 +1,21 @@ import { JsonObject } from "../../Core/Json"; import anyTrait from "../Decorators/anyTrait"; +import { traitClass } from "../Trait"; import mixTraits from "../mixTraits"; import CatalogMemberTraits from "./CatalogMemberTraits"; import GroupTraits from "./GroupTraits"; import LegendOwnerTraits from "./LegendOwnerTraits"; import UrlTraits from "./UrlTraits"; +@traitClass({ + description: `Creates a group that has individual ESRI WMS layers in the given URL as members in the catalog.`, + example: { + type: "esri-mapServer-group", + name: "Catchment Scale Land Use", + id: "354db2f2", + url: "https://www.asris.csiro.au/arcgis/rest/services/abares/clum_50m_2018/MapServer" + } +}) export default class ArcGisMapServerCatalogGroupTraits extends mixTraits( GroupTraits, UrlTraits, diff --git a/lib/Traits/TraitsClasses/ArcGisMapServerCatalogItemTraits.ts b/lib/Traits/TraitsClasses/ArcGisMapServerCatalogItemTraits.ts index e58c22d3b13..340ec9bd9a7 100644 --- a/lib/Traits/TraitsClasses/ArcGisMapServerCatalogItemTraits.ts +++ b/lib/Traits/TraitsClasses/ArcGisMapServerCatalogItemTraits.ts @@ -1,6 +1,7 @@ import { JsonObject } from "../../Core/Json"; import anyTrait from "../Decorators/anyTrait"; import primitiveTrait from "../Decorators/primitiveTrait"; +import { traitClass } from "../Trait"; import mixTraits from "../mixTraits"; import CatalogMemberTraits from "./CatalogMemberTraits"; import DiscretelyTimeVaryingTraits from "./DiscretelyTimeVaryingTraits"; @@ -10,6 +11,16 @@ import LegendOwnerTraits from "./LegendOwnerTraits"; import { MinMaxLevelTraits } from "./MinMaxLevelTraits"; import UrlTraits from "./UrlTraits"; +@traitClass({ + description: `Creates a single item in the catalog from one or many ESRI WMS layers. + + Note: The following example does not specify layers property therefore will present all layers in the given URL as single catalog item. To present specific layers only, add them in layers property, e.g. "layers": "AUS_GA_2500k_MiscLines,AUS_GA_2500k_Faults".`, + example: { + url: "https://services.ga.gov.au/gis/rest/services/GA_Surface_Geology/MapServer", + type: "esri-mapServer", + name: "Surface Geology" + } +}) export default class ArcGisMapServerCatalogItemTraits extends mixTraits( ImageryProviderTraits, LayerOrderingTraits, From 79bcdf053d323ccf1b2ed13d1af3ea9c52cf24b3 Mon Sep 17 00:00:00 2001 From: Mike Wu Date: Wed, 31 Jan 2024 15:46:26 +1100 Subject: [PATCH 02/39] Added more examples. --- .../ArcGisFeatureServerCatalogGroupTraits.ts | 13 ++++++++++++ .../ArcGisFeatureServerCatalogItemTraits.ts | 12 +++++++++++ .../ArcGisPortalCatalogGroupTraits.ts | 20 +++++++++++++++++++ 3 files changed, 45 insertions(+) diff --git a/lib/Traits/TraitsClasses/ArcGisFeatureServerCatalogGroupTraits.ts b/lib/Traits/TraitsClasses/ArcGisFeatureServerCatalogGroupTraits.ts index 4ec1a0d9177..d8dc149c14e 100644 --- a/lib/Traits/TraitsClasses/ArcGisFeatureServerCatalogGroupTraits.ts +++ b/lib/Traits/TraitsClasses/ArcGisFeatureServerCatalogGroupTraits.ts @@ -1,9 +1,22 @@ +import { traitClass } from "../Trait"; import mixTraits from "../mixTraits"; import CatalogMemberTraits from "./CatalogMemberTraits"; import GroupTraits from "./GroupTraits"; import LegendOwnerTraits from "./LegendOwnerTraits"; import UrlTraits from "./UrlTraits"; +@traitClass({ + description: `Creates a group that has individual ESRI WFS layers in the given URL as members. + + Note: To exclude unwanted layers, specify their names in property excludeMembers.`, + example: { + url: "https://services7.arcgis.com/fVJQ0uhT9L4zp35f/arcgis/rest/services/ActivityArea_gdb/FeatureServer", + type: "esri-featureServer-group", + excludeMembers: ["BCC SHWEP"], + name: "Activity Area", + id: "some id" + } +}) export default class ArcGisFeatureServerCatalogGroupTraits extends mixTraits( GroupTraits, UrlTraits, diff --git a/lib/Traits/TraitsClasses/ArcGisFeatureServerCatalogItemTraits.ts b/lib/Traits/TraitsClasses/ArcGisFeatureServerCatalogItemTraits.ts index ad7fb3a26b4..a7998e8be21 100644 --- a/lib/Traits/TraitsClasses/ArcGisFeatureServerCatalogItemTraits.ts +++ b/lib/Traits/TraitsClasses/ArcGisFeatureServerCatalogItemTraits.ts @@ -1,4 +1,5 @@ import primitiveTrait from "../Decorators/primitiveTrait"; +import { traitClass } from "../Trait"; import mixTraits from "../mixTraits"; import CatalogMemberTraits from "./CatalogMemberTraits"; import { GeoJsonTraits } from "./GeoJsonTraits"; @@ -6,6 +7,17 @@ import LegendOwnerTraits from "./LegendOwnerTraits"; import MappableTraits from "./MappableTraits"; import UrlTraits from "./UrlTraits"; +@traitClass({ + description: `Creates a single item in the catalog from one or many ESRI WFS layers. + + Note: Must specify layer ID in the URL.".`, + example: { + url: "https://services5.arcgis.com/OvOcYIrJnM97ABBA/arcgis/rest/services/Australian_Public_Hospitals_WFL1/FeatureServer/0", + type: "esri-featureServer", + name: "Australian Public Hospitals", + id: "some id" + } +}) export default class ArcGisFeatureServerCatalogItemTraits extends mixTraits( UrlTraits, MappableTraits, diff --git a/lib/Traits/TraitsClasses/ArcGisPortalCatalogGroupTraits.ts b/lib/Traits/TraitsClasses/ArcGisPortalCatalogGroupTraits.ts index ddfd3c298d3..fa01e8f8bbf 100644 --- a/lib/Traits/TraitsClasses/ArcGisPortalCatalogGroupTraits.ts +++ b/lib/Traits/TraitsClasses/ArcGisPortalCatalogGroupTraits.ts @@ -1,6 +1,7 @@ import { JsonObject } from "../../Core/Json"; import anyTrait from "../Decorators/anyTrait"; import primitiveTrait from "../Decorators/primitiveTrait"; +import { traitClass } from "../Trait"; import mixTraits from "../mixTraits"; import ArcGisPortalSharedTraits from "./ArcGisPortalSharedTraits"; import CatalogMemberTraits from "./CatalogMemberTraits"; @@ -8,6 +9,25 @@ import GroupTraits from "./GroupTraits"; import LegendOwnerTraits from "./LegendOwnerTraits"; import UrlTraits from "./UrlTraits"; +@traitClass({ + description: `Creates a group with members from ArcGIS server portal. + + Note: +
  • Requests members of specific types.
  • +
  • Sorts members according to their titles.
  • +
  • Members are organised in subgroups according to their categories.
  • `, + example: { + url: "https://portal.spatial.nsw.gov.au/portal", + type: "arcgis-portal-group", + groupBy: "portalCategories", + name: "NSW Spatial Portal Categories", + searchParams: { + q: '(type:"Map Service" OR type:"WMS" OR type:"KML")', + sortField: "title" + }, + id: "some id" + } +}) export default class ArcGisPortalCatalogGroupTraits extends mixTraits( GroupTraits, UrlTraits, From f871f4b9f6a07754008a0a19b4323d8d40cef6c7 Mon Sep 17 00:00:00 2001 From: Mike Wu Date: Wed, 31 Jan 2024 15:52:15 +1100 Subject: [PATCH 03/39] Update doc --- .../TraitsClasses/ArcGisFeatureServerCatalogItemTraits.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/Traits/TraitsClasses/ArcGisFeatureServerCatalogItemTraits.ts b/lib/Traits/TraitsClasses/ArcGisFeatureServerCatalogItemTraits.ts index a7998e8be21..cade9acf759 100644 --- a/lib/Traits/TraitsClasses/ArcGisFeatureServerCatalogItemTraits.ts +++ b/lib/Traits/TraitsClasses/ArcGisFeatureServerCatalogItemTraits.ts @@ -8,9 +8,9 @@ import MappableTraits from "./MappableTraits"; import UrlTraits from "./UrlTraits"; @traitClass({ - description: `Creates a single item in the catalog from one or many ESRI WFS layers. + description: `Creates a single item in the catalog from one ESRI WFS layer. - Note: Must specify layer ID in the URL.".`, + Note: Must specify layer ID, e.g. /0, in the URL path.".`, example: { url: "https://services5.arcgis.com/OvOcYIrJnM97ABBA/arcgis/rest/services/Australian_Public_Hospitals_WFL1/FeatureServer/0", type: "esri-featureServer", From e221aefff4feb5d7720d660746e6c15acf2fc288 Mon Sep 17 00:00:00 2001 From: Mike Wu Date: Wed, 31 Jan 2024 16:01:28 +1100 Subject: [PATCH 04/39] Update doc --- lib/Traits/TraitsClasses/ArcGisPortalCatalogGroupTraits.ts | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/lib/Traits/TraitsClasses/ArcGisPortalCatalogGroupTraits.ts b/lib/Traits/TraitsClasses/ArcGisPortalCatalogGroupTraits.ts index fa01e8f8bbf..2b6dc300b03 100644 --- a/lib/Traits/TraitsClasses/ArcGisPortalCatalogGroupTraits.ts +++ b/lib/Traits/TraitsClasses/ArcGisPortalCatalogGroupTraits.ts @@ -13,9 +13,10 @@ import UrlTraits from "./UrlTraits"; description: `Creates a group with members from ArcGIS server portal. Note: -
  • Requests members of specific types.
  • -
  • Sorts members according to their titles.
  • -
  • Members are organised in subgroups according to their categories.
  • `, +
    The following example will
    +
  • Request datasets of specific types only.
  • +
  • Organise members in subgroups according to their categories.
  • +
  • Sort members according to their titles.
  • `, example: { url: "https://portal.spatial.nsw.gov.au/portal", type: "arcgis-portal-group", From d47fe5a3d5c46303082f6e2e3d03cb656f92503f Mon Sep 17 00:00:00 2001 From: Mike Wu Date: Wed, 31 Jan 2024 16:48:40 +1100 Subject: [PATCH 05/39] Fixed an incorrect import. --- lib/Models/Catalog/Esri/ArcGisCatalogGroup.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/Models/Catalog/Esri/ArcGisCatalogGroup.ts b/lib/Models/Catalog/Esri/ArcGisCatalogGroup.ts index 3b1aa01588b..6ae89842985 100644 --- a/lib/Models/Catalog/Esri/ArcGisCatalogGroup.ts +++ b/lib/Models/Catalog/Esri/ArcGisCatalogGroup.ts @@ -11,7 +11,7 @@ import CatalogMemberMixin from "../../../ModelMixins/CatalogMemberMixin"; import GroupMixin from "../../../ModelMixins/GroupMixin"; import UrlMixin from "../../../ModelMixins/UrlMixin"; import ModelReference from "../../../Traits/ModelReference"; -import ArcGisCatalogGroupTraits from "../../../Traits/TraitsClasses/ArcGisMapServerCatalogGroupTraits"; +import ArcGisCatalogGroupTraits from "../../../Traits/TraitsClasses/ArcGisCatalogGroupTraits"; import CommonStrata from "../../Definition/CommonStrata"; import CreateModel from "../../Definition/CreateModel"; import LoadableStratum from "../../Definition/LoadableStratum"; From c596bdb090893ed6b79b63d1336aed83d7556033 Mon Sep 17 00:00:00 2001 From: Mike Wu Date: Wed, 31 Jan 2024 16:58:36 +1100 Subject: [PATCH 06/39] Updated doc. --- CHANGES.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGES.md b/CHANGES.md index c4c805caaf9..44b4d264b51 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -15,6 +15,7 @@ - Prevent user adding empty web url - Fix bug where search results shown in `My Data` tab - Fix bug in function createDiscreteTimesFromIsoSegments where it might create duplicate timestamps. +- Add examples. - [The next improvement] #### 8.4.1 - 2023-12-08 From 855d6545774e33797ff4010c2cc1dd3c236c6be8 Mon Sep 17 00:00:00 2001 From: Mike Wu Date: Thu, 1 Feb 2024 11:09:13 +1100 Subject: [PATCH 07/39] Added a new example. --- lib/Traits/TraitsClasses/ArcGisCatalogGroupTraits.ts | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/lib/Traits/TraitsClasses/ArcGisCatalogGroupTraits.ts b/lib/Traits/TraitsClasses/ArcGisCatalogGroupTraits.ts index ace77b9b5c1..328b87beb75 100644 --- a/lib/Traits/TraitsClasses/ArcGisCatalogGroupTraits.ts +++ b/lib/Traits/TraitsClasses/ArcGisCatalogGroupTraits.ts @@ -1,9 +1,19 @@ +import { traitClass } from "../Trait"; import mixTraits from "../mixTraits"; import CatalogMemberTraits from "./CatalogMemberTraits"; import GroupTraits from "./GroupTraits"; import LegendOwnerTraits from "./LegendOwnerTraits"; import UrlTraits from "./UrlTraits"; +@traitClass({ + description: `Creates a group that has individual ESRI services ("MapServer" or "FeatureServer") in the given URL as members (subgroups) in the catalog.`, + example: { + type: "esri-group", + name: "Sydney", + url: "https://services1.arcgis.com/cNVyNtjGVZybOQWZ/arcgis/rest/services", + id: "some id" + } +}) export default class ArcGisCatalogGroupTraits extends mixTraits( GroupTraits, UrlTraits, From 57383f7763e176ade58ad567ae9123c87c032dbe Mon Sep 17 00:00:00 2001 From: Mike Wu Date: Thu, 1 Feb 2024 12:28:08 +1100 Subject: [PATCH 08/39] Added an example for arcgis-portal-item type. --- .../ArcGisFeatureServerCatalogItemTraits.ts | 2 +- lib/Traits/TraitsClasses/ArcGisPortalItemTraits.ts | 14 ++++++++++++++ 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/lib/Traits/TraitsClasses/ArcGisFeatureServerCatalogItemTraits.ts b/lib/Traits/TraitsClasses/ArcGisFeatureServerCatalogItemTraits.ts index cade9acf759..48fee802991 100644 --- a/lib/Traits/TraitsClasses/ArcGisFeatureServerCatalogItemTraits.ts +++ b/lib/Traits/TraitsClasses/ArcGisFeatureServerCatalogItemTraits.ts @@ -10,7 +10,7 @@ import UrlTraits from "./UrlTraits"; @traitClass({ description: `Creates a single item in the catalog from one ESRI WFS layer. - Note: Must specify layer ID, e.g. /0, in the URL path.".`, + Note: Must specify layer ID, e.g. /0, in the URL path.`, example: { url: "https://services5.arcgis.com/OvOcYIrJnM97ABBA/arcgis/rest/services/Australian_Public_Hospitals_WFL1/FeatureServer/0", type: "esri-featureServer", diff --git a/lib/Traits/TraitsClasses/ArcGisPortalItemTraits.ts b/lib/Traits/TraitsClasses/ArcGisPortalItemTraits.ts index 120c35a38fa..1a20b6f35cc 100644 --- a/lib/Traits/TraitsClasses/ArcGisPortalItemTraits.ts +++ b/lib/Traits/TraitsClasses/ArcGisPortalItemTraits.ts @@ -4,7 +4,21 @@ import MappableTraits from "./MappableTraits"; import mixTraits from "../mixTraits"; import primitiveTrait from "../Decorators/primitiveTrait"; import UrlTraits from "./UrlTraits"; +import { traitClass } from "../Trait"; +@traitClass({ + description: `Creates an item or group that referehces an item in ArcGIS portal. + Note: +
  • The itemId in the example is the referenced item's ID in the portal.
  • +
  • Not all referenced items can be added to the map. E.g., some types need conversions.
  • `, + example: { + type: "arcgis-portal-item", + itemId: "084c61c6dd404517bc2db69079ddec38", + name: "NSW Administrative Theme", + url: "https://portal.spatial.nsw.gov.au/portal", + id: "some id" + } +}) export default class ArcGisPortalItemTraits extends mixTraits( UrlTraits, MappableTraits, From 8d6d3f0d4df2a14c68727990ac883573fd9a2b52 Mon Sep 17 00:00:00 2001 From: Mike Wu Date: Mon, 5 Feb 2024 17:23:58 +1100 Subject: [PATCH 09/39] Add a 3d-tiles example. --- .../Cesium3DTilesCatalogItemTraits.ts | 21 +++++++++++-------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/lib/Traits/TraitsClasses/Cesium3DTilesCatalogItemTraits.ts b/lib/Traits/TraitsClasses/Cesium3DTilesCatalogItemTraits.ts index aaf9f407d55..6abd74fb01f 100644 --- a/lib/Traits/TraitsClasses/Cesium3DTilesCatalogItemTraits.ts +++ b/lib/Traits/TraitsClasses/Cesium3DTilesCatalogItemTraits.ts @@ -1,3 +1,4 @@ +import { traitClass } from "../Trait"; import mixTraits from "../mixTraits"; import CatalogMemberTraits from "./CatalogMemberTraits"; import Cesium3DTilesTraits from "./Cesium3dTilesTraits"; @@ -9,15 +10,17 @@ import ShadowTraits from "./ShadowTraits"; import TransformationTraits from "./TransformationTraits"; import UrlTraits from "./UrlTraits"; -/** - * This is a description of the 3D Tiles Catalog Item - * @example - * { - * "type": "3d-tiles", - * "ionAssetId": "1234", - * "name": "My 3D-Tiles dataset" - * } - */ +@traitClass({ + description: `Creates a 3d tiles item in the catalog from an ION Asset ID. + + Note: Instead of specifying ionAssetId property, you can also provide a URL, for example, "url": "https://storage.googleapis.com/vic-datasets-public/1ce41fe7-aed2-4ad3-be4d-c38b715ce9af/v1/tileset.json".`, + example: { + type: "3d-tiles", + ionAssetId: 69380, + name: "CoM Melbourne 3D Photo Mesh", + id: "some-unique-id" + } +}) export default class Cesium3DTilesCatalogItemTraits extends mixTraits( SearchableItemTraits, PlaceEditorTraits, From 3ce3bfdcd7c03e13dbfcef787505f56ace755f6a Mon Sep 17 00:00:00 2001 From: Mike Wu Date: Mon, 5 Feb 2024 17:34:47 +1100 Subject: [PATCH 10/39] Add a cesium terrain example. --- .../TraitsClasses/CesiumTerrainCatalogItemTraits.ts | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/lib/Traits/TraitsClasses/CesiumTerrainCatalogItemTraits.ts b/lib/Traits/TraitsClasses/CesiumTerrainCatalogItemTraits.ts index fd00078975a..81a4119da98 100644 --- a/lib/Traits/TraitsClasses/CesiumTerrainCatalogItemTraits.ts +++ b/lib/Traits/TraitsClasses/CesiumTerrainCatalogItemTraits.ts @@ -3,7 +3,19 @@ import MappableTraits from "./MappableTraits"; import mixTraits from "../mixTraits"; import primitiveTrait from "../Decorators/primitiveTrait"; import UrlTraits from "./UrlTraits"; +import { traitClass } from "../Trait"; +@traitClass({ + description: `Creates a Cesium terrain item in the catalog from url.`, + example: { + type: "cesium-terrain", + description: + "This product is a terrain, it provides a representation of the earth's surface with which to apply data in Digital Twin Victoria. The terrain has been generated by transforming Vicmap Elevation digital elevation models (DEMs) into a quantized-mesh terrain tileset. The combined Vicmap elevation extent is embedded in ‘Cesium World Terrain’. These DEMs include ‘Vicmap Elevation DEM 10m’ which provides a base for state-wide coverage. Where available 1m DEMs have been embedded over the ‘Vicmap Elevation DEM 10m’ product. These include:
    • Ararat: 2018-19_cep31-2018-19_3d-regional-towns-lidar_ararat
    • Ballarat: 2018-19_cep31-2018-19_3d-regional-towns-lidar_ballarat
    • Bendigo: 2018-19_cep31-2018-19_3d-regional-towns-lidar_bendigo
    • Bright: 2018-19_cep31-2018-19_3d-regional-towns-lidar_bright
    • Castlemaine: 2018-19_cep31-2018-19_3d-regional-towns-lidar_castlemaine
    • Echuca: 2018-19_cep31-2018-19_3d-regional-towns-lidar_echuca
    • Golden Plains: 2020-21_cep24-2020-21_golden-plains_lidar
    • Great Ocean Road: 2019-20_cep27-2019-20_great_ocean_road_elevation
    • Horsham: 2018-19_cep31-2018-19_3d-regional-towns-lidar_horsham
    • Kilmore: 2018-19_cep31-2018-19_3d-regional-towns-lidar_kilmore
    • Latrobe Valley: 2018-19_cep31-2018-19_3d-regional-towns-lidar_latrobevalley
    • Melbourne: 2017-18_greater_melbourne_lidar_project-01-2017-18
    • Mildura: 2020-21_cep21-2020-21_mildura-towns-lidar_mildura
    • Sale: 2018-19_cep31-2018-19_3d-regional-towns-lidar_sale
    • Seymour: 2018-19_cep31-2018-19_3d-regional-towns-lidar_seymour
    • Shepparton: 2018-19_cep31-2018-19_3d-regional-towns-lidar_shepparton
    • Swan Hill: 2018-19_cep31-2018-19_3d-regional-towns-lidar_swanhill
    • Traralgon: 2018-19_cep31-2018-19_3d-regional-towns-lidar_traralgon
    • Wangaratta: 2018-19_cep31-2018-19_3d-regional-towns-lidar_wangaratta
    • Warracknabeal: 2018-19_cep31-2018-19_3d-regional-towns-lidar_warracknabeal
    • Warrnambool: 2016-17_cep19-2016-17_warrnambool-city
    • Wodonga: cep28-2016-17_north-east-towns-lidar_wodonga
    • Wonthaggi: 2018-19_cep31-2018-19_3d-regional-towns-lidar_wonthaggi
    ", + url: "https://storage.googleapis.com/vic-datasets-public/85b71982-f5fe-4093-b4e4-fd2e50198fba/v2", + name: "A Vic Terrain", + id: "some-unique-id" + } +}) export default class CesiumTerrainCatalogItemTraits extends mixTraits( UrlTraits, MappableTraits, From 06b30297df566babe1c8d2450e3fa3c8267b879c Mon Sep 17 00:00:00 2001 From: Mike Wu Date: Mon, 5 Feb 2024 17:38:55 +1100 Subject: [PATCH 11/39] Update cesium terrain example. --- lib/Traits/TraitsClasses/CesiumTerrainCatalogItemTraits.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/Traits/TraitsClasses/CesiumTerrainCatalogItemTraits.ts b/lib/Traits/TraitsClasses/CesiumTerrainCatalogItemTraits.ts index 81a4119da98..7558d3cfed8 100644 --- a/lib/Traits/TraitsClasses/CesiumTerrainCatalogItemTraits.ts +++ b/lib/Traits/TraitsClasses/CesiumTerrainCatalogItemTraits.ts @@ -10,7 +10,7 @@ import { traitClass } from "../Trait"; example: { type: "cesium-terrain", description: - "This product is a terrain, it provides a representation of the earth's surface with which to apply data in Digital Twin Victoria. The terrain has been generated by transforming Vicmap Elevation digital elevation models (DEMs) into a quantized-mesh terrain tileset. The combined Vicmap elevation extent is embedded in ‘Cesium World Terrain’. These DEMs include ‘Vicmap Elevation DEM 10m’ which provides a base for state-wide coverage. Where available 1m DEMs have been embedded over the ‘Vicmap Elevation DEM 10m’ product. These include:
    • Ararat: 2018-19_cep31-2018-19_3d-regional-towns-lidar_ararat
    • Ballarat: 2018-19_cep31-2018-19_3d-regional-towns-lidar_ballarat
    • Bendigo: 2018-19_cep31-2018-19_3d-regional-towns-lidar_bendigo
    • Bright: 2018-19_cep31-2018-19_3d-regional-towns-lidar_bright
    • Castlemaine: 2018-19_cep31-2018-19_3d-regional-towns-lidar_castlemaine
    • Echuca: 2018-19_cep31-2018-19_3d-regional-towns-lidar_echuca
    • Golden Plains: 2020-21_cep24-2020-21_golden-plains_lidar
    • Great Ocean Road: 2019-20_cep27-2019-20_great_ocean_road_elevation
    • Horsham: 2018-19_cep31-2018-19_3d-regional-towns-lidar_horsham
    • Kilmore: 2018-19_cep31-2018-19_3d-regional-towns-lidar_kilmore
    • Latrobe Valley: 2018-19_cep31-2018-19_3d-regional-towns-lidar_latrobevalley
    • Melbourne: 2017-18_greater_melbourne_lidar_project-01-2017-18
    • Mildura: 2020-21_cep21-2020-21_mildura-towns-lidar_mildura
    • Sale: 2018-19_cep31-2018-19_3d-regional-towns-lidar_sale
    • Seymour: 2018-19_cep31-2018-19_3d-regional-towns-lidar_seymour
    • Shepparton: 2018-19_cep31-2018-19_3d-regional-towns-lidar_shepparton
    • Swan Hill: 2018-19_cep31-2018-19_3d-regional-towns-lidar_swanhill
    • Traralgon: 2018-19_cep31-2018-19_3d-regional-towns-lidar_traralgon
    • Wangaratta: 2018-19_cep31-2018-19_3d-regional-towns-lidar_wangaratta
    • Warracknabeal: 2018-19_cep31-2018-19_3d-regional-towns-lidar_warracknabeal
    • Warrnambool: 2016-17_cep19-2016-17_warrnambool-city
    • Wodonga: cep28-2016-17_north-east-towns-lidar_wodonga
    • Wonthaggi: 2018-19_cep31-2018-19_3d-regional-towns-lidar_wonthaggi
    ", + "This product is a terrain, it provides a representation of the earth's surface with which to apply data in Digital Twin Victoria. The terrain has been generated by transforming Vicmap Elevation digital elevation models (DEMs) into a quantized-mesh terrain tileset. The combined Vicmap elevation extent is embedded in ‘Cesium World Terrain’. These DEMs include ‘Vicmap Elevation DEM 10m’ which provides a base for state-wide coverage. Where available 1m DEMs have been embedded over the ‘Vicmap Elevation DEM 10m’ product.", url: "https://storage.googleapis.com/vic-datasets-public/85b71982-f5fe-4093-b4e4-fd2e50198fba/v2", name: "A Vic Terrain", id: "some-unique-id" From cb34ee0d837d1a17abbbb3d1d4f70b65410a1763 Mon Sep 17 00:00:00 2001 From: Mike Wu Date: Tue, 6 Feb 2024 10:03:30 +1100 Subject: [PATCH 12/39] Fix typo. --- lib/Traits/TraitsClasses/ArcGisPortalItemTraits.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/Traits/TraitsClasses/ArcGisPortalItemTraits.ts b/lib/Traits/TraitsClasses/ArcGisPortalItemTraits.ts index 1a20b6f35cc..f7d3f4bae6b 100644 --- a/lib/Traits/TraitsClasses/ArcGisPortalItemTraits.ts +++ b/lib/Traits/TraitsClasses/ArcGisPortalItemTraits.ts @@ -7,7 +7,8 @@ import UrlTraits from "./UrlTraits"; import { traitClass } from "../Trait"; @traitClass({ - description: `Creates an item or group that referehces an item in ArcGIS portal. + description: `Creates an item or group that references an item in ArcGIS portal. + Note:
  • The itemId in the example is the referenced item's ID in the portal.
  • Not all referenced items can be added to the map. E.g., some types need conversions.
  • `, From 7f3ddf2cca9af73ae66c1a2c7b5ac62caa1210ea Mon Sep 17 00:00:00 2001 From: Mike Wu Date: Tue, 6 Feb 2024 14:31:38 +1100 Subject: [PATCH 13/39] Add example and update doc. --- .../TraitsClasses/CkanCatalogGroupTraits.ts | 70 ++++++++++++++++--- 1 file changed, 61 insertions(+), 9 deletions(-) diff --git a/lib/Traits/TraitsClasses/CkanCatalogGroupTraits.ts b/lib/Traits/TraitsClasses/CkanCatalogGroupTraits.ts index 9e8e485abb9..5bb7986cdd4 100644 --- a/lib/Traits/TraitsClasses/CkanCatalogGroupTraits.ts +++ b/lib/Traits/TraitsClasses/CkanCatalogGroupTraits.ts @@ -8,7 +8,59 @@ import GroupTraits from "./GroupTraits"; import LegendOwnerTraits from "./LegendOwnerTraits"; import UrlTraits from "./UrlTraits"; import primitiveArrayTrait from "../Decorators/primitiveArrayTrait"; +import { traitClass } from "../Trait"; +@traitClass({ + description: `Creates a group with members from Ckan server. + + Note: +
    The following example will
    +
  • Request datasets of specific types only.
  • +
  • Organise members in subgroups according to their organisations.
  • +
  • For any wms type item, use ESPG:3857 as crs.
  • `, + example: { + url: "https://discover.data.vic.gov.au/", + type: "ckan-group", + name: "DataVic Open Data Portal", + filterQuery: [ + { + fq: '+(res_format:(wms OR WMS OR shapefile OR Shapefile OR "zip (shp)" OR shp OR SHP OR kmz OR GeoJSON OR geojson OR csv-geo-au OR aus-geo-csv))' + } + ], + groupBy: "organization", + supportedResourceFormats: [ + { + id: "WMS", + urlRegex: "^((?!data.gov.au/geoserver).)*$" + }, + { + id: "Kml", + onlyUseIfSoleResource: true + }, + { + id: "Shapefile", + onlyUseIfSoleResource: true + } + ], + ungroupedTitle: "Organisation not declared", + itemPropertiesByType: [ + { + type: "wms", + itemProperties: { + crs: "EPSG:3857" + } + } + ], + resourceIdTemplate: "{{resource.name}}-{{resource.format}}", + restrictResourceIdTemplateToOrgsWithNames: [ + "department-of-energy-environment-climate-action", + "department-of-jobs-skills-industry-regions", + "department-of-transport-and-planning", + "victorian-electoral-commission" + ], + id: "some id" + } +}) export default class CkanCatalogGroupTraits extends mixTraits( GroupTraits, UrlTraits, @@ -19,15 +71,15 @@ export default class CkanCatalogGroupTraits extends mixTraits( @anyTrait({ name: "Filter Query", description: `Gets or sets the filter query to pass to CKAN when querying the available data sources and their groups. Each item in the - * array causes an independent request to the CKAN, and the results are concatenated. The - * search string is equivalent to what would be in the parameters segment of the url calling the CKAN search api. - * See the [Solr documentation](http://wiki.apache.org/solr/CommonQueryParameters#fq) for information about filter queries. - * Each item is an object ({ fq: 'res_format:wms' }). For robustness sake, a query string is also allowed. E.g. - * "fq=(res_format:wms OR res_format:WMS)" and "fq=+(res_format%3Awms%20OR%20res_format%3AWMS)" are allowed. - * To get all the datasets with wms resources: [{ fq: 'res_format%3awms' }] - * To get all wms/WMS datasets in the Surface Water group: [{q: 'groups=Surface Water', fq: 'res_format:WMS' }] - * To get both wms and esri-mapService datasets: [{q: 'res_format:WMS'}, {q: 'res_format:"Esri REST"' }] - * To get all datasets with no filter, you can use [''] + array causes an independent request to the CKAN, and the results are concatenated. The + search string is equivalent to what would be in the parameters segment of the url calling the CKAN search api. + See the [Solr documentation](http://wiki.apache.org/solr/CommonQueryParameters#fq) for information about filter queries. + Each item is an object ({ fq: 'res_format:wms' }). For robustness sake, a query string is also allowed. E.g. + "fq=(res_format:wms OR res_format:WMS)" and "fq=+(res_format%3Awms%20OR%20res_format%3AWMS)" are allowed. +
  • To get all the datasets with wms resources: [{ fq: 'res_format%3awms' }]
  • +
  • To get all wms/WMS datasets in the Surface Water group: [{q: 'groups=Surface Water', fq: 'res_format:WMS' }]
  • +
  • To get both wms and esri-mapService datasets: [{q: 'res_format:WMS'}, {q: 'res_format:"Esri REST"' }]
  • +
  • To get all datasets with no filter, you can use ['']
  • ` }) filterQuery?: (JsonObject | string)[] = [ From 5b10db530740f41f7996c3b3befbcfd794a1ad5a Mon Sep 17 00:00:00 2001 From: Mike Wu Date: Tue, 6 Feb 2024 15:35:31 +1100 Subject: [PATCH 14/39] Add example of ckan-item type. --- .../TraitsClasses/CkanItemReferenceTraits.ts | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/lib/Traits/TraitsClasses/CkanItemReferenceTraits.ts b/lib/Traits/TraitsClasses/CkanItemReferenceTraits.ts index c449665630b..98e56854218 100644 --- a/lib/Traits/TraitsClasses/CkanItemReferenceTraits.ts +++ b/lib/Traits/TraitsClasses/CkanItemReferenceTraits.ts @@ -4,7 +4,21 @@ import mixTraits from "../mixTraits"; import MappableTraits from "./MappableTraits"; import primitiveTrait from "../Decorators/primitiveTrait"; import UrlTraits from "./UrlTraits"; +import { traitClass } from "../Trait"; +@traitClass({ + description: `Creates a calalog item that references a ckan item. + + Note: +
  • The property resourceId in the example below is a Ckan resource Id that references a geospatial type (wms) data.
  • `, + example: { + url: "https://discover.data.vic.gov.au", + type: "ckan-item", + resourceId: "22b8cf52-4583-4609-a3da-a6e1805829d9", + name: "A Ckan Item (WMS)", + id: "some id" + } +}) export default class CkanCatalogItemTraits extends mixTraits( UrlTraits, MappableTraits, From 7fa0f418a303d5ad7940b0099cf90c89ceba9fb4 Mon Sep 17 00:00:00 2001 From: Mike Wu Date: Fri, 9 Feb 2024 12:21:16 +1100 Subject: [PATCH 15/39] Add composite type example. --- .../CompositeCatalogItemTraits.ts | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/lib/Traits/TraitsClasses/CompositeCatalogItemTraits.ts b/lib/Traits/TraitsClasses/CompositeCatalogItemTraits.ts index 036a103a2e0..d0d74d370c5 100644 --- a/lib/Traits/TraitsClasses/CompositeCatalogItemTraits.ts +++ b/lib/Traits/TraitsClasses/CompositeCatalogItemTraits.ts @@ -2,10 +2,31 @@ import CatalogMemberFactory from "../../Models/Catalog/CatalogMemberFactory"; import modelReferenceArrayTrait from "../Decorators/modelReferenceArrayTrait"; import mixTraits from "../mixTraits"; import ModelReference from "../ModelReference"; +import { traitClass } from "../Trait"; import CatalogMemberTraits from "./CatalogMemberTraits"; import LegendOwnerTraits from "./LegendOwnerTraits"; import MappableTraits from "./MappableTraits"; +@traitClass({ + description: `Creates one catalog item that combines multiple datasets.`, + example: { + type: "composite", + name: "Combine Multiple Datasets", + id: "some unique ID", + members: [ + { + url: "https://portal.spatial.nsw.gov.au/server/rest/services/NSW_Administrative_Boundaries_Theme/MapServer/8", + id: "one unique ID", + type: "esri-mapServer" + }, + { + url: "https://tiles.terria.io/static/auspost-locations.csv", + id: "another unique ID", + type: "csv" + } + ] + } +}) export default class CompositeCatalogItemTraits extends mixTraits( MappableTraits, CatalogMemberTraits, From c8410d5184465ac8034b73d87cce79123af578cf Mon Sep 17 00:00:00 2001 From: Mike Wu Date: Fri, 9 Feb 2024 12:31:23 +1100 Subject: [PATCH 16/39] Add example for csv type. --- lib/Traits/TraitsClasses/CsvCatalogItemTraits.ts | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/lib/Traits/TraitsClasses/CsvCatalogItemTraits.ts b/lib/Traits/TraitsClasses/CsvCatalogItemTraits.ts index 420216d59b3..dc8fc1b59fa 100644 --- a/lib/Traits/TraitsClasses/CsvCatalogItemTraits.ts +++ b/lib/Traits/TraitsClasses/CsvCatalogItemTraits.ts @@ -2,6 +2,7 @@ import objectTrait from "../Decorators/objectTrait"; import primitiveTrait from "../Decorators/primitiveTrait"; import mixTraits from "../mixTraits"; import ModelTraits from "../ModelTraits"; +import { traitClass } from "../Trait"; import AutoRefreshingTraits from "./AutoRefreshingTraits"; import TableTraits from "./Table/TableTraits"; import UrlTraits from "./UrlTraits"; @@ -31,6 +32,15 @@ class PollingTraits extends ModelTraits { shouldReplaceData = true; } +@traitClass({ + description: `Creates one catalog item from url that points to a CSV file that contains geospatial data.`, + example: { + type: "csv", + url: "https://tiles.terria.io/static/auspost-locations.csv", + name: "Australia Post Locations", + id: "some unique ID" + } +}) export default class CsvCatalogItemTraits extends mixTraits( AutoRefreshingTraits, UrlTraits, From 9515b78334687386cead09bbc6d9481ed7d3004a Mon Sep 17 00:00:00 2001 From: Mike Wu Date: Fri, 9 Feb 2024 14:13:08 +1100 Subject: [PATCH 17/39] Add example for csw-group type. --- .../TraitsClasses/CswCatalogGroupTraits.ts | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/lib/Traits/TraitsClasses/CswCatalogGroupTraits.ts b/lib/Traits/TraitsClasses/CswCatalogGroupTraits.ts index 951797a49e2..25055065deb 100644 --- a/lib/Traits/TraitsClasses/CswCatalogGroupTraits.ts +++ b/lib/Traits/TraitsClasses/CswCatalogGroupTraits.ts @@ -9,6 +9,7 @@ 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" @@ -42,6 +43,21 @@ export class DomainSpecTraits extends ModelTraits { queryPropertyName?: QueryPropertyName; } +@traitClass({ + 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, From e6143d5fde917aa18b2c6ff647dc3cc809bd1bd0 Mon Sep 17 00:00:00 2001 From: Mike Wu Date: Fri, 9 Feb 2024 15:11:53 +1100 Subject: [PATCH 18/39] Add example for czml type. --- lib/Traits/TraitsClasses/CzmlCatalogItemTraits.ts | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/lib/Traits/TraitsClasses/CzmlCatalogItemTraits.ts b/lib/Traits/TraitsClasses/CzmlCatalogItemTraits.ts index 7b56a800ead..0e6d66008f9 100644 --- a/lib/Traits/TraitsClasses/CzmlCatalogItemTraits.ts +++ b/lib/Traits/TraitsClasses/CzmlCatalogItemTraits.ts @@ -1,6 +1,7 @@ import { JsonObject } from "../../Core/Json"; import anyTrait from "../Decorators/anyTrait"; import primitiveTrait from "../Decorators/primitiveTrait"; +import { traitClass } from "../Trait"; import mixTraits from "../mixTraits"; import AutoRefreshingTraits from "./AutoRefreshingTraits"; import CatalogMemberTraits from "./CatalogMemberTraits"; @@ -9,6 +10,17 @@ import MappableTraits from "./MappableTraits"; import TimeVaryingTraits from "./TimeVaryingTraits"; import UrlTraits from "./UrlTraits"; +@traitClass({ + description: `Creates one catalog item from url that points to a czml file. + + Note: If the model is not visible, try to disable the terrain by uncheck the box "Terrain hides underground features".`, + example: { + type: "czml", + url: "https://tiles.terria.io/terriajs-examples/czml/smooth.czml", + name: "czml example", + id: "some unique ID" + } +}) export default class CzmlCatalogItemTraits extends mixTraits( AutoRefreshingTraits, TimeVaryingTraits, From 3a33c6f50a15d39e4006b18971246b1e08fc409d Mon Sep 17 00:00:00 2001 From: Mike Wu Date: Mon, 12 Feb 2024 11:05:04 +1100 Subject: [PATCH 19/39] Add czml and geojson examples. --- lib/Traits/TraitsClasses/CzmlCatalogItemTraits.ts | 2 +- lib/Traits/TraitsClasses/GeoJsonCatalogItemTraits.ts | 10 ++++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/lib/Traits/TraitsClasses/CzmlCatalogItemTraits.ts b/lib/Traits/TraitsClasses/CzmlCatalogItemTraits.ts index 0e6d66008f9..cfd267a0f6f 100644 --- a/lib/Traits/TraitsClasses/CzmlCatalogItemTraits.ts +++ b/lib/Traits/TraitsClasses/CzmlCatalogItemTraits.ts @@ -13,7 +13,7 @@ import UrlTraits from "./UrlTraits"; @traitClass({ description: `Creates one catalog item from url that points to a czml file. - Note: If the model is not visible, try to disable the terrain by uncheck the box "Terrain hides underground features".`, + Note: If the model is not visible, try to disable the terrain by unchecking the box "Terrain hides underground features".`, example: { type: "czml", url: "https://tiles.terria.io/terriajs-examples/czml/smooth.czml", diff --git a/lib/Traits/TraitsClasses/GeoJsonCatalogItemTraits.ts b/lib/Traits/TraitsClasses/GeoJsonCatalogItemTraits.ts index f220da614ab..2d8ec988934 100644 --- a/lib/Traits/TraitsClasses/GeoJsonCatalogItemTraits.ts +++ b/lib/Traits/TraitsClasses/GeoJsonCatalogItemTraits.ts @@ -2,10 +2,20 @@ import { JsonObject } from "../../Core/Json"; import anyTrait from "../Decorators/anyTrait"; import objectArrayTrait from "../Decorators/objectArrayTrait"; import primitiveTrait from "../Decorators/primitiveTrait"; +import { traitClass } from "../Trait"; import mixTraits from "../mixTraits"; import ApiRequestTraits from "./ApiRequestTraits"; import { GeoJsonTraits } from "./GeoJsonTraits"; +@traitClass({ + description: `Creates one catalog item from url that points to a geojson file.`, + example: { + type: "geojson", + url: "https://tiles.terria.io/terriajs-examples/geojson/bike_racks.geojson", + name: "geojson example", + id: "some unique ID" + } +}) export default class GeoJsonCatalogItemTraits extends mixTraits( GeoJsonTraits, ApiRequestTraits From 32684af8696bc8d4672c0eac45ec6c590d989fa6 Mon Sep 17 00:00:00 2001 From: Mike Wu Date: Mon, 12 Feb 2024 14:50:40 +1100 Subject: [PATCH 20/39] Add gltf example. --- lib/Traits/TraitsClasses/GltfCatalogItemTraits.ts | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/lib/Traits/TraitsClasses/GltfCatalogItemTraits.ts b/lib/Traits/TraitsClasses/GltfCatalogItemTraits.ts index b5d7f44060c..127c78632bc 100644 --- a/lib/Traits/TraitsClasses/GltfCatalogItemTraits.ts +++ b/lib/Traits/TraitsClasses/GltfCatalogItemTraits.ts @@ -1,9 +1,24 @@ +import { traitClass } from "../Trait"; import mixTraits from "../mixTraits"; import AutoRefreshingTraits from "./AutoRefreshingTraits"; import GltfTraits from "./GltfTraits"; import PlaceEditorTraits from "./PlaceEditorTraits"; import UrlTraits from "./UrlTraits"; +@traitClass({ + description: `Creates one catalog item from url that points to a gltf file.`, + example: { + name: "gltf example", + type: "gltf", + url: "https://tiles.terria.io/terriajs-examples/czml/geelong_mini_demo_bin_linux_v1.0-draft_x64.gltf", + origin: { + longitude: 144.3569, + latitude: -38.14688, + height: -16 + }, + heightReference: "CLAMP_TO_TERRAIN" + } +}) export default class GltfCatalogItemTraits extends mixTraits( UrlTraits, AutoRefreshingTraits, From c441e44ab88c79200ae9fd8113f4f94e373e9703 Mon Sep 17 00:00:00 2001 From: Mike Wu Date: Mon, 12 Feb 2024 16:25:44 +1100 Subject: [PATCH 21/39] Add gtfs example. --- .../TraitsClasses/GtfsCatalogItemTraits.ts | 30 +++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/lib/Traits/TraitsClasses/GtfsCatalogItemTraits.ts b/lib/Traits/TraitsClasses/GtfsCatalogItemTraits.ts index c7f4685b6b4..761f5890612 100644 --- a/lib/Traits/TraitsClasses/GtfsCatalogItemTraits.ts +++ b/lib/Traits/TraitsClasses/GtfsCatalogItemTraits.ts @@ -3,6 +3,7 @@ import objectTrait from "../Decorators/objectTrait"; import primitiveTrait from "../Decorators/primitiveTrait"; import mixTraits from "../mixTraits"; import ModelTraits from "../ModelTraits"; +import { traitClass } from "../Trait"; import AutoRefreshingTraits from "./AutoRefreshingTraits"; import CatalogMemberTraits from "./CatalogMemberTraits"; import GtfsModelTraits from "./GtfsModelTraits"; @@ -29,6 +30,35 @@ export class HeadersTraits extends ModelTraits { value?: string; } +@traitClass({ + description: `Creates one catalog item from url that points to a gltf file. + Note: +
  • You need to obtain a valid api key for the NSW transport api.
  • +
  • When the camera is less than maximumDistance (500m) away, bus 3d models (scene.gltf) will be rendered.
  • `, + example: { + type: "gtfs", + url: "https://api.transport.nsw.gov.au/v1/gtfs/vehiclepos/buses", + image: "https://tiles.terria.io/terriajs-examples/gtfs/TfNSW_B.png", + name: "NSW Live Transport - Buses", + headers: [ + { + name: "Authorization", + value: "apikey put-a-real-api-key-here" + } + ], + refreshInterval: 60, + featureInfoTemplate: { + name: "{{vehicle_trip_bus_number}}", + template: + "Bus: {{route_short_name}}
    Occupancy: {{occupancy_status_str}}
    Speed: {{speed_km}} km/h
    Direction: ⬆" + }, + model: { + url: "https://tiles.terria.io/terriajs-examples/gtfs/lowpoly_bus/scene.gltf", + scale: 0.3048, + maximumDistance: 500.0 + } + } +}) export default class GtfsCatalogItemTraits extends mixTraits( UrlTraits, CatalogMemberTraits, From b05a011f91e61b7eb5d6aa5b0c3f1f207baec85e Mon Sep 17 00:00:00 2001 From: Mike Wu Date: Tue, 13 Feb 2024 12:29:19 +1100 Subject: [PATCH 22/39] Update doc. --- lib/Traits/TraitsClasses/GtfsCatalogItemTraits.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/Traits/TraitsClasses/GtfsCatalogItemTraits.ts b/lib/Traits/TraitsClasses/GtfsCatalogItemTraits.ts index 761f5890612..9f165767b1a 100644 --- a/lib/Traits/TraitsClasses/GtfsCatalogItemTraits.ts +++ b/lib/Traits/TraitsClasses/GtfsCatalogItemTraits.ts @@ -31,7 +31,7 @@ export class HeadersTraits extends ModelTraits { } @traitClass({ - description: `Creates one catalog item from url that points to a gltf file. + description: `Creates one catalog item from url that points to a gtfs service. Note:
  • You need to obtain a valid api key for the NSW transport api.
  • When the camera is less than maximumDistance (500m) away, bus 3d models (scene.gltf) will be rendered.
  • `, From a46cb9a0a4dca522e405ce79f61d8f184c104f79 Mon Sep 17 00:00:00 2001 From: Mike Wu Date: Tue, 13 Feb 2024 13:22:40 +1100 Subject: [PATCH 23/39] Add magda example. --- lib/Traits/TraitsClasses/MagdaReferenceTraits.ts | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/lib/Traits/TraitsClasses/MagdaReferenceTraits.ts b/lib/Traits/TraitsClasses/MagdaReferenceTraits.ts index a2d6a749fd7..23622bd4ba0 100644 --- a/lib/Traits/TraitsClasses/MagdaReferenceTraits.ts +++ b/lib/Traits/TraitsClasses/MagdaReferenceTraits.ts @@ -6,7 +6,21 @@ import mixTraits from "../mixTraits"; import objectArrayTrait from "../Decorators/objectArrayTrait"; import primitiveTrait from "../Decorators/primitiveTrait"; import UrlTraits from "./UrlTraits"; +import { traitClass } from "../Trait"; +@traitClass({ + description: `Creates one catalog item from url that points to a magda record. + + Note: +
  • The url points to a magda server.
  • +
  • A magda record identified by recordId must be mappable.
  • `, + example: { + type: "magda", + url: "https://data.gov.au", + name: "Magda example", + recordId: "dist-sa-97d6773f-6ce8-4b0b-a2a1-c2687448c672" + } +}) export default class MagdaReferenceTraits extends mixTraits( CatalogMemberReferenceTraits, UrlTraits From 060fb0de4005702a9ab099107a7168b8f44e9711 Mon Sep 17 00:00:00 2001 From: Mike Wu Date: Tue, 13 Feb 2024 14:47:56 +1100 Subject: [PATCH 24/39] Update examples. --- lib/Traits/TraitsClasses/GltfCatalogItemTraits.ts | 3 ++- lib/Traits/TraitsClasses/GtfsCatalogItemTraits.ts | 3 ++- lib/Traits/TraitsClasses/MagdaReferenceTraits.ts | 3 ++- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/lib/Traits/TraitsClasses/GltfCatalogItemTraits.ts b/lib/Traits/TraitsClasses/GltfCatalogItemTraits.ts index 127c78632bc..a20aec67960 100644 --- a/lib/Traits/TraitsClasses/GltfCatalogItemTraits.ts +++ b/lib/Traits/TraitsClasses/GltfCatalogItemTraits.ts @@ -16,7 +16,8 @@ import UrlTraits from "./UrlTraits"; latitude: -38.14688, height: -16 }, - heightReference: "CLAMP_TO_TERRAIN" + heightReference: "CLAMP_TO_TERRAIN", + id: "some unique id" } }) export default class GltfCatalogItemTraits extends mixTraits( diff --git a/lib/Traits/TraitsClasses/GtfsCatalogItemTraits.ts b/lib/Traits/TraitsClasses/GtfsCatalogItemTraits.ts index 9f165767b1a..994c360cb41 100644 --- a/lib/Traits/TraitsClasses/GtfsCatalogItemTraits.ts +++ b/lib/Traits/TraitsClasses/GtfsCatalogItemTraits.ts @@ -56,7 +56,8 @@ export class HeadersTraits extends ModelTraits { url: "https://tiles.terria.io/terriajs-examples/gtfs/lowpoly_bus/scene.gltf", scale: 0.3048, maximumDistance: 500.0 - } + }, + id: "some unique id" } }) export default class GtfsCatalogItemTraits extends mixTraits( diff --git a/lib/Traits/TraitsClasses/MagdaReferenceTraits.ts b/lib/Traits/TraitsClasses/MagdaReferenceTraits.ts index 23622bd4ba0..d2154368e0e 100644 --- a/lib/Traits/TraitsClasses/MagdaReferenceTraits.ts +++ b/lib/Traits/TraitsClasses/MagdaReferenceTraits.ts @@ -18,7 +18,8 @@ import { traitClass } from "../Trait"; type: "magda", url: "https://data.gov.au", name: "Magda example", - recordId: "dist-sa-97d6773f-6ce8-4b0b-a2a1-c2687448c672" + recordId: "dist-sa-97d6773f-6ce8-4b0b-a2a1-c2687448c672", + id: "some unique id" } }) export default class MagdaReferenceTraits extends mixTraits( From 5eb98bb520649ba9429ae6e23da76ed2a82300f6 Mon Sep 17 00:00:00 2001 From: Mike Wu Date: Tue, 13 Feb 2024 15:00:38 +1100 Subject: [PATCH 25/39] Add mvt example. --- .../MapboxVectorTileCatalogItemTraits.ts | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/lib/Traits/TraitsClasses/MapboxVectorTileCatalogItemTraits.ts b/lib/Traits/TraitsClasses/MapboxVectorTileCatalogItemTraits.ts index c5a2abba2a1..75d7b376942 100644 --- a/lib/Traits/TraitsClasses/MapboxVectorTileCatalogItemTraits.ts +++ b/lib/Traits/TraitsClasses/MapboxVectorTileCatalogItemTraits.ts @@ -1,6 +1,7 @@ import { JsonObject } from "../../Core/Json"; import anyTrait from "../Decorators/anyTrait"; import primitiveTrait from "../Decorators/primitiveTrait"; +import { traitClass } from "../Trait"; import mixTraits from "../mixTraits"; import CatalogMemberTraits from "./CatalogMemberTraits"; import ImageryProviderTraits from "./ImageryProviderTraits"; @@ -9,6 +10,22 @@ import LegendOwnerTraits from "./LegendOwnerTraits"; import MappableTraits from "./MappableTraits"; import UrlTraits from "./UrlTraits"; +@traitClass({ + description: `Creates one catalog item from url that points to a mvt service.`, + example: { + type: "mvt", + name: "mvt example", + description: + "Federal electoral boundaries which will apply at the 2019 federal election. Produced by combining boundary datasets provided by AEC for each state.", + url: "https://tiles.terria.io/ELB_2019/{z}/{x}/{y}.pbf", + opacity: 1, + lineColor: "hsl(180,80%,30%)", + layer: "ELB_2019", + maximumNativeZoom: 12, + minimumZoom: 0, + id: "some unique id" + } +}) export default class MapboxVectorTileCatalogItemTraits extends mixTraits( LayerOrderingTraits, UrlTraits, From b63e4f146d5996d38521f7003ef71d583689123e Mon Sep 17 00:00:00 2001 From: Mike Wu Date: Tue, 13 Feb 2024 15:25:09 +1100 Subject: [PATCH 26/39] Add opendatasoft-group example. --- .../OpenDataSoftCatalogGroupTraits.ts | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/lib/Traits/TraitsClasses/OpenDataSoftCatalogGroupTraits.ts b/lib/Traits/TraitsClasses/OpenDataSoftCatalogGroupTraits.ts index 731e331b260..2a6ed766428 100644 --- a/lib/Traits/TraitsClasses/OpenDataSoftCatalogGroupTraits.ts +++ b/lib/Traits/TraitsClasses/OpenDataSoftCatalogGroupTraits.ts @@ -6,6 +6,7 @@ import objectArrayTrait from "../Decorators/objectArrayTrait"; import primitiveTrait from "../Decorators/primitiveTrait"; import UrlTraits from "./UrlTraits"; import LegendOwnerTraits from "./LegendOwnerTraits"; +import { traitClass } from "../Trait"; export class RefineTraits extends ModelTraits { @primitiveTrait({ @@ -23,6 +24,21 @@ export class RefineTraits extends ModelTraits { value?: string; } +@traitClass({ + description: `Creates one catalog group from url that points to a opendatasoft service.`, + example: { + name: "opendatasoft-group example", + type: "opendatasoft-group", + url: "https://data.bmcc.nsw.gov.au", + facetFilters: [ + { + name: "features", + value: "geo" + } + ], + id: "some unique id" + } +}) export default class OpenDataSoftCatalogGroupTraits extends mixTraits( UrlTraits, CatalogMemberTraits, From 2955d5b37f5639c7a2eaa5cda9fe320cf924e35c Mon Sep 17 00:00:00 2001 From: Mike Wu Date: Tue, 13 Feb 2024 15:25:38 +1100 Subject: [PATCH 27/39] Update example. --- lib/Traits/TraitsClasses/OpenDataSoftCatalogGroupTraits.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/Traits/TraitsClasses/OpenDataSoftCatalogGroupTraits.ts b/lib/Traits/TraitsClasses/OpenDataSoftCatalogGroupTraits.ts index 2a6ed766428..4c369dd6333 100644 --- a/lib/Traits/TraitsClasses/OpenDataSoftCatalogGroupTraits.ts +++ b/lib/Traits/TraitsClasses/OpenDataSoftCatalogGroupTraits.ts @@ -25,7 +25,7 @@ export class RefineTraits extends ModelTraits { } @traitClass({ - description: `Creates one catalog group from url that points to a opendatasoft service.`, + description: `Creates one catalog group from url that points to an opendatasoft service.`, example: { name: "opendatasoft-group example", type: "opendatasoft-group", From 1462b02330ec1a2ec9e9086bd30f7177fafcf2db Mon Sep 17 00:00:00 2001 From: Mike Wu Date: Tue, 13 Feb 2024 15:33:42 +1100 Subject: [PATCH 28/39] Add opendatasoft-item example. --- .../TraitsClasses/OpenDataSoftCatalogItemTraits.ts | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/lib/Traits/TraitsClasses/OpenDataSoftCatalogItemTraits.ts b/lib/Traits/TraitsClasses/OpenDataSoftCatalogItemTraits.ts index 1b96788c9f5..209088e511b 100644 --- a/lib/Traits/TraitsClasses/OpenDataSoftCatalogItemTraits.ts +++ b/lib/Traits/TraitsClasses/OpenDataSoftCatalogItemTraits.ts @@ -1,5 +1,6 @@ import objectTrait from "../Decorators/objectTrait"; import primitiveTrait from "../Decorators/primitiveTrait"; +import { traitClass } from "../Trait"; import mixTraits from "../mixTraits"; import AutoRefreshingTraits from "./AutoRefreshingTraits"; import CatalogMemberTraits from "./CatalogMemberTraits"; @@ -9,6 +10,16 @@ import LegendOwnerTraits from "./LegendOwnerTraits"; import TableTraits from "./Table/TableTraits"; import UrlTraits from "./UrlTraits"; +@traitClass({ + description: `Creates one catalog item from url that points to an opendatasoft service.`, + example: { + url: "https://data.bmcc.nsw.gov.au", + type: "opendatasoft-item", + datasetId: "bicycle-network-blue-mountains", + name: "opendatasoft-item example", + id: "some unique id" + } +}) export default class OpenDataSoftCatalogItemTraits extends mixTraits( AutoRefreshingTraits, TableTraits, From d2fe07803d783c54925944c5274ee1d1369b3597 Mon Sep 17 00:00:00 2001 From: Mike Wu Date: Tue, 13 Feb 2024 16:31:48 +1100 Subject: [PATCH 29/39] Add open-street-map base map item example. --- .../OpenStreetMapCatalogItemTraits.ts | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/lib/Traits/TraitsClasses/OpenStreetMapCatalogItemTraits.ts b/lib/Traits/TraitsClasses/OpenStreetMapCatalogItemTraits.ts index 7cde1221957..b21880aa624 100644 --- a/lib/Traits/TraitsClasses/OpenStreetMapCatalogItemTraits.ts +++ b/lib/Traits/TraitsClasses/OpenStreetMapCatalogItemTraits.ts @@ -7,7 +7,29 @@ import LegendOwnerTraits from "./LegendOwnerTraits"; import MappableTraits from "./MappableTraits"; import ImageryProviderTraits from "./ImageryProviderTraits"; import UrlTraits from "./UrlTraits"; +import { traitClass } from "../Trait"; +@traitClass({ + description: `Creates one base map item from url that points to an OpenStreetMap service.`, + example: { + item: { + type: "open-street-map", + name: "Voyager", + url: "https://global.ssl.fastly.net/rastertiles/voyager/", + attribution: "© OpenStreetMap contributors ODbL, © CartoDB CC-BY 3.0", + opacity: 1, + subdomains: [ + "cartodb-basemaps-a", + "cartodb-basemaps-b", + "cartodb-basemaps-c", + "cartodb-basemaps-d" + ] + }, + image: + "https://terria-catalogs-public.storage.googleapis.com/misc/basemaps/icons/voyager-aus.png", + id: "some unique id" + } +}) export default class OpenStreetMapCatalogItemTraits extends mixTraits( ImageryProviderTraits, LayerOrderingTraits, From aa0e8361a729038ec59ead77b87cca79d7dd8829 Mon Sep 17 00:00:00 2001 From: Mike Wu Date: Tue, 13 Feb 2024 16:38:44 +1100 Subject: [PATCH 30/39] Add sdmx-group example. --- lib/Traits/TraitsClasses/SdmxCatalogGroupTraits.ts | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/lib/Traits/TraitsClasses/SdmxCatalogGroupTraits.ts b/lib/Traits/TraitsClasses/SdmxCatalogGroupTraits.ts index 0d340484823..10e9e8a3566 100644 --- a/lib/Traits/TraitsClasses/SdmxCatalogGroupTraits.ts +++ b/lib/Traits/TraitsClasses/SdmxCatalogGroupTraits.ts @@ -4,7 +4,18 @@ import mixTraits from "../mixTraits"; import SdmxCommonTraits from "./SdmxCommonTraits"; import UrlTraits from "./UrlTraits"; import LegendOwnerTraits from "./LegendOwnerTraits"; +import { traitClass } from "../Trait"; +@traitClass({ + description: `Creates one catalog group from url that points to an sdmx service.`, + example: { + id: "some unique id", + type: "sdmx-group", + name: "sdmx-group example", + url: "https://api.data.abs.gov.au", + mergeGroupsByName: true + } +}) export default class SdmxCatalogGroupTraits extends mixTraits( SdmxCommonTraits, UrlTraits, From 8ba748367d8a0172ec06495c6a5b8d02cd649d84 Mon Sep 17 00:00:00 2001 From: Mike Wu Date: Wed, 14 Feb 2024 10:29:22 +1100 Subject: [PATCH 31/39] Add sdmx-json example. --- lib/Traits/TraitsClasses/SdmxCatalogItemTraits.ts | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/lib/Traits/TraitsClasses/SdmxCatalogItemTraits.ts b/lib/Traits/TraitsClasses/SdmxCatalogItemTraits.ts index a7bc22ed7df..36e57ee919a 100644 --- a/lib/Traits/TraitsClasses/SdmxCatalogItemTraits.ts +++ b/lib/Traits/TraitsClasses/SdmxCatalogItemTraits.ts @@ -1,5 +1,6 @@ import objectArrayTrait from "../Decorators/objectArrayTrait"; import primitiveTrait from "../Decorators/primitiveTrait"; +import { traitClass } from "../Trait"; import mixTraits from "../mixTraits"; import EnumDimensionTraits from "./DimensionTraits"; import LegendOwnerTraits from "./FeatureInfoTraits"; @@ -16,6 +17,18 @@ export class SdmxDimensionTraits extends mixTraits(EnumDimensionTraits) { }) position?: number; } + +@traitClass({ + description: `Creates one catalog item from url that points to an sdmx service.`, + example: { + type: "sdmx-json", + url: "https://api.data.abs.gov.au", + dataflowId: "ABS_REGIONAL_LGA2017", + name: "sdmx-json example", + agencyId: "ABS", + id: "some unique id" + } +}) export default class SdmxCatalogItemTraits extends mixTraits( SdmxCommonTraits, UrlTraits, From 916eb67bebe36d84d127e112c443dc50196cd9e1 Mon Sep 17 00:00:00 2001 From: Mike Wu Date: Thu, 15 Feb 2024 12:38:32 +1100 Subject: [PATCH 32/39] Add shp example. --- lib/Traits/TraitsClasses/ShapefileCatalogItemTraits.ts | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/lib/Traits/TraitsClasses/ShapefileCatalogItemTraits.ts b/lib/Traits/TraitsClasses/ShapefileCatalogItemTraits.ts index c5ed0f062eb..b28e6f993b9 100644 --- a/lib/Traits/TraitsClasses/ShapefileCatalogItemTraits.ts +++ b/lib/Traits/TraitsClasses/ShapefileCatalogItemTraits.ts @@ -1,7 +1,17 @@ import { GeoJsonTraits } from "./GeoJsonTraits"; import mixTraits from "../mixTraits"; import CatalogMemberTraits from "./CatalogMemberTraits"; +import { traitClass } from "../Trait"; +@traitClass({ + description: `Creates one catalog item from url that points to a zipped shapefile.`, + example: { + type: "shp", + name: "shp (shapefile) example", + url: "https://tiles.terria.io/terriajs-examples/shp/airports.zip", + id: "some unique id" + } +}) export default class ShapefileCatalogItemTraits extends mixTraits( GeoJsonTraits, CatalogMemberTraits From 273da2ad0b2701a062d02f2860b7b766848bba7e Mon Sep 17 00:00:00 2001 From: Mike Wu Date: Thu, 15 Feb 2024 15:22:38 +1100 Subject: [PATCH 33/39] Add terria-reference example. --- .../TraitsClasses/GtfsCatalogItemTraits.ts | 1 + .../TraitsClasses/TerriaReferenceTraits.ts | 17 +++++++++++++++++ 2 files changed, 18 insertions(+) diff --git a/lib/Traits/TraitsClasses/GtfsCatalogItemTraits.ts b/lib/Traits/TraitsClasses/GtfsCatalogItemTraits.ts index 994c360cb41..7b660448e12 100644 --- a/lib/Traits/TraitsClasses/GtfsCatalogItemTraits.ts +++ b/lib/Traits/TraitsClasses/GtfsCatalogItemTraits.ts @@ -32,6 +32,7 @@ export class HeadersTraits extends ModelTraits { @traitClass({ description: `Creates one catalog item from url that points to a gtfs service. + Note:
  • You need to obtain a valid api key for the NSW transport api.
  • When the camera is less than maximumDistance (500m) away, bus 3d models (scene.gltf) will be rendered.
  • `, diff --git a/lib/Traits/TraitsClasses/TerriaReferenceTraits.ts b/lib/Traits/TraitsClasses/TerriaReferenceTraits.ts index fc83eee74a7..54d039cebb9 100644 --- a/lib/Traits/TraitsClasses/TerriaReferenceTraits.ts +++ b/lib/Traits/TraitsClasses/TerriaReferenceTraits.ts @@ -3,7 +3,24 @@ import mixTraits from "../mixTraits"; import CatalogMemberReferenceTraits from "./CatalogMemberReferenceTraits"; import UrlTraits from "./UrlTraits"; import primitiveTrait from "../Decorators/primitiveTrait"; +import { traitClass } from "../Trait"; +@traitClass({ + description: `Creates a catalog group or item from url that points to a terria catalog json file. + + Note: +
  • The referenced json file may contain more items than you need.
  • +
  • Specify required catalog entry IDs (e.g. "LAEMW8fc") in path. If not specified, the whole catalog will be added.
  • +
  • If the reference is a group, it is helpful to set isGroup to true.
  • `, + example: { + type: "terria-reference", + url: "https://tiles.terria.io/terriajs-examples/terria-reference/a-terria-catalog.json", + isGroup: true, + path: ["LAEMW8fc"], + name: "terria-reference example", + id: "some unique id for terria-reference example" + } +}) export default class TerriaReferenceTraits extends mixTraits( UrlTraits, CatalogMemberReferenceTraits From 81771aea294fff33019b20ec389998ee34fa64ea Mon Sep 17 00:00:00 2001 From: Mike Wu Date: Thu, 15 Feb 2024 17:12:19 +1100 Subject: [PATCH 34/39] Add assimp example. --- .../TraitsClasses/AssImpCatalogItemTraits.ts | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/lib/Traits/TraitsClasses/AssImpCatalogItemTraits.ts b/lib/Traits/TraitsClasses/AssImpCatalogItemTraits.ts index 7ddcf2d79ad..ccc12999a36 100644 --- a/lib/Traits/TraitsClasses/AssImpCatalogItemTraits.ts +++ b/lib/Traits/TraitsClasses/AssImpCatalogItemTraits.ts @@ -1,8 +1,33 @@ import primitiveArrayTrait from "../Decorators/primitiveArrayTrait"; import primitiveTrait from "../Decorators/primitiveTrait"; +import { traitClass } from "../Trait"; import mixTraits from "../mixTraits"; import GltfCatalogItemTraits from "./GltfCatalogItemTraits"; +@traitClass({ + description: `Creates one catalog item from url that points to a 3d model.`, + example: { + type: "assimp", + name: "cube", + urls: [ + "https://raw.githubusercontent.com/kovacsv/assimpjs/main/examples/testfiles/cube_with_materials.obj", + "https://raw.githubusercontent.com/kovacsv/assimpjs/main/examples/testfiles/cube_with_materials.mtl" + ], + baseUrl: "https://github.com/kovacsv/assimpjs/raw/main/examples/testfiles/", + scale: 100, + origin: { + latitude: -42.8826, + longitude: 147.3257, + height: 100 + }, + rectangle: { + west: 147.33, + south: -42.9, + east: 147.33, + north: -42.87 + } + } +}) export default class AssImpCatalogItemTraits extends mixTraits( GltfCatalogItemTraits ) { From b3db3cf6af333977bdba931dd91e036b620c5e1e Mon Sep 17 00:00:00 2001 From: Mike Wu Date: Thu, 15 Feb 2024 17:14:46 +1100 Subject: [PATCH 35/39] Update example --- lib/Traits/TraitsClasses/AssImpCatalogItemTraits.ts | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/lib/Traits/TraitsClasses/AssImpCatalogItemTraits.ts b/lib/Traits/TraitsClasses/AssImpCatalogItemTraits.ts index ccc12999a36..58800dd15db 100644 --- a/lib/Traits/TraitsClasses/AssImpCatalogItemTraits.ts +++ b/lib/Traits/TraitsClasses/AssImpCatalogItemTraits.ts @@ -8,7 +8,7 @@ import GltfCatalogItemTraits from "./GltfCatalogItemTraits"; description: `Creates one catalog item from url that points to a 3d model.`, example: { type: "assimp", - name: "cube", + name: "assimp example", urls: [ "https://raw.githubusercontent.com/kovacsv/assimpjs/main/examples/testfiles/cube_with_materials.obj", "https://raw.githubusercontent.com/kovacsv/assimpjs/main/examples/testfiles/cube_with_materials.mtl" @@ -25,7 +25,8 @@ import GltfCatalogItemTraits from "./GltfCatalogItemTraits"; south: -42.9, east: 147.33, north: -42.87 - } + }, + id: "some unique id" } }) export default class AssImpCatalogItemTraits extends mixTraits( From 289aef9627b2c154aa59fe89715a953a542390d1 Mon Sep 17 00:00:00 2001 From: Mike Wu Date: Fri, 16 Feb 2024 09:57:52 +1100 Subject: [PATCH 36/39] Add thredds example. --- lib/Traits/TraitsClasses/ThreddsCatalogGroupTraits.ts | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/lib/Traits/TraitsClasses/ThreddsCatalogGroupTraits.ts b/lib/Traits/TraitsClasses/ThreddsCatalogGroupTraits.ts index e48fdcfe891..88a88a1464d 100644 --- a/lib/Traits/TraitsClasses/ThreddsCatalogGroupTraits.ts +++ b/lib/Traits/TraitsClasses/ThreddsCatalogGroupTraits.ts @@ -3,7 +3,17 @@ import GroupTraits from "./GroupTraits"; import mixTraits from "../mixTraits"; import UrlTraits from "./UrlTraits"; import LegendOwnerTraits from "./LegendOwnerTraits"; +import { traitClass } from "../Trait"; +@traitClass({ + description: `Creates one catalog group from url that points to a thredds service.`, + example: { + type: "thredds-group", + url: "http://dapds00.nci.org.au/thredds/catalog/rr9/ASCAT/ASCAT_v1-0_soil-moisture_daily_0-05deg_2007-2011/00000000/catalog.xml", + name: "thredds example", + id: "some unique id" + } +}) export default class ThreddsCatalogGroupTraits extends mixTraits( GroupTraits, UrlTraits, From 2085a3111a8a99ffd1e18b29e2684cc497665585 Mon Sep 17 00:00:00 2001 From: Mike Wu Date: Fri, 16 Feb 2024 10:20:08 +1100 Subject: [PATCH 37/39] Add url-template-imagery example. --- .../UrlTemplateImageryCatalogItemTraits.ts | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/lib/Traits/TraitsClasses/UrlTemplateImageryCatalogItemTraits.ts b/lib/Traits/TraitsClasses/UrlTemplateImageryCatalogItemTraits.ts index 12cac945558..5e6dc6f2c23 100644 --- a/lib/Traits/TraitsClasses/UrlTemplateImageryCatalogItemTraits.ts +++ b/lib/Traits/TraitsClasses/UrlTemplateImageryCatalogItemTraits.ts @@ -7,7 +7,18 @@ import LegendOwnerTraits from "./LegendOwnerTraits"; import MappableTraits from "./MappableTraits"; import ImageryProviderTraits from "./ImageryProviderTraits"; import UrlTraits from "./UrlTraits"; +import { traitClass } from "../Trait"; +@traitClass({ + description: `Creates one catalog item from url that points to a template imagery service.`, + example: { + name: "url-template-imagery example", + type: "url-template-imagery", + url: "https://storage.googleapis.com/terria-datasets-public/basemaps/natural-earth-tiles/{z}/{x}/{reverseY}.png", + maximumLevel: 7, + id: "some unique id for url-template-imagery example" + } +}) export default class UrlTemplateImageryCatalogItemTraits extends mixTraits( ImageryProviderTraits, LayerOrderingTraits, From caa58ae6c4a82b3fcf60de901b248f1549195014 Mon Sep 17 00:00:00 2001 From: Mike Wu Date: Tue, 20 Feb 2024 11:54:15 +1100 Subject: [PATCH 38/39] Add wfs example. --- .../WebFeatureServiceCatalogGroupTraits.ts | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/lib/Traits/TraitsClasses/WebFeatureServiceCatalogGroupTraits.ts b/lib/Traits/TraitsClasses/WebFeatureServiceCatalogGroupTraits.ts index f2a65b1f6f6..bbf655f8bbe 100644 --- a/lib/Traits/TraitsClasses/WebFeatureServiceCatalogGroupTraits.ts +++ b/lib/Traits/TraitsClasses/WebFeatureServiceCatalogGroupTraits.ts @@ -4,7 +4,20 @@ import GroupTraits from "./GroupTraits"; import mixTraits from "../mixTraits"; import UrlTraits from "./UrlTraits"; import LegendOwnerTraits from "./LegendOwnerTraits"; +import { traitClass } from "../Trait"; +@traitClass({ + description: `Creates a single item in the catalog from url that points to WFS service. + + Note: Must specify property typeNames.`, + example: { + "type": "wfs", + "name": "wfs example", + "url": "https://warehouse.ausseabed.gov.au/geoserver/ows", + "typeNames": "ausseabed:AHO_Reference_Surface__Broome__2023_0_5m_L0_Coverage", + "id": "some unique id for wfs example" + } +}) export default class WebFeatureServiceCatalogGroupTraits extends mixTraits( GetCapabilitiesTraits, GroupTraits, From 7c4535b0a1e4f5cac6a24065097e045803e65936 Mon Sep 17 00:00:00 2001 From: Mike Wu Date: Tue, 20 Feb 2024 12:15:50 +1100 Subject: [PATCH 39/39] Run prettier. --- .../WebFeatureServiceCatalogGroupTraits.ts | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/lib/Traits/TraitsClasses/WebFeatureServiceCatalogGroupTraits.ts b/lib/Traits/TraitsClasses/WebFeatureServiceCatalogGroupTraits.ts index bbf655f8bbe..c095b70df16 100644 --- a/lib/Traits/TraitsClasses/WebFeatureServiceCatalogGroupTraits.ts +++ b/lib/Traits/TraitsClasses/WebFeatureServiceCatalogGroupTraits.ts @@ -11,11 +11,11 @@ import { traitClass } from "../Trait"; Note: Must specify property typeNames.`, example: { - "type": "wfs", - "name": "wfs example", - "url": "https://warehouse.ausseabed.gov.au/geoserver/ows", - "typeNames": "ausseabed:AHO_Reference_Surface__Broome__2023_0_5m_L0_Coverage", - "id": "some unique id for wfs example" + type: "wfs", + name: "wfs example", + url: "https://warehouse.ausseabed.gov.au/geoserver/ows", + typeNames: "ausseabed:AHO_Reference_Surface__Broome__2023_0_5m_L0_Coverage", + id: "some unique id for wfs example" } }) export default class WebFeatureServiceCatalogGroupTraits extends mixTraits(