From 22f3baff6cc2199c19e6fed9feb6a51a2744fbe8 Mon Sep 17 00:00:00 2001 From: glughi Date: Tue, 2 Nov 2021 17:23:36 +0100 Subject: [PATCH 001/215] Remove elevation error in coordinates --- lib/Map/prettifyCoordinates.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/Map/prettifyCoordinates.ts b/lib/Map/prettifyCoordinates.ts index 0aa577fda9b..aaad1397d0e 100644 --- a/lib/Map/prettifyCoordinates.ts +++ b/lib/Map/prettifyCoordinates.ts @@ -42,7 +42,7 @@ export default function prettifyCoordinates( if (height !== undefined) { prettyElevation = Math.round(height) + - (errorBar !== undefined ? "±" + Math.round(errorBar) : "") + + //(errorBar !== undefined ? "±" + Math.round(errorBar) : "") + "m"; } From 0130fc7d461b1c91afdef72acfb8eb75884cd7c6 Mon Sep 17 00:00:00 2001 From: glughi Date: Tue, 2 Nov 2021 17:25:04 +0100 Subject: [PATCH 002/215] Add CoordsPanel --- .../Map/Panels/CoordsPanel/CoordsPanel.jsx | 582 ++++++++++++++++++ .../Map/Panels/CoordsPanel/coords-panel.scss | 38 ++ .../Panels/CoordsPanel/coords-panel.scss.d.ts | 18 + 3 files changed, 638 insertions(+) create mode 100644 lib/ReactViews/Map/Panels/CoordsPanel/CoordsPanel.jsx create mode 100644 lib/ReactViews/Map/Panels/CoordsPanel/coords-panel.scss create mode 100644 lib/ReactViews/Map/Panels/CoordsPanel/coords-panel.scss.d.ts diff --git a/lib/ReactViews/Map/Panels/CoordsPanel/CoordsPanel.jsx b/lib/ReactViews/Map/Panels/CoordsPanel/CoordsPanel.jsx new file mode 100644 index 00000000000..da7334c8029 --- /dev/null +++ b/lib/ReactViews/Map/Panels/CoordsPanel/CoordsPanel.jsx @@ -0,0 +1,582 @@ +"use strict"; + +import classNames from "classnames"; +import React, { useState, useEffect } from "react"; +import Icon, { StyledIcon } from "../../../../Styled/Icon"; +//import Loader from "../../../Loader"; +import MenuPanel from "../../../StandardUserInterface/customizable/MenuPanel"; +import Input from "../../../Styled/Input/Input.jsx"; +import DropdownStyles from "../panel.scss"; +import Styles from "./coords-panel.scss"; + +import clipboard from "clipboard"; +import Box from "../../../../Styled/Box"; +import Button from "../../../../Styled/Button"; +import Select from "../../../../Styled/Select"; +import CesiumResource from "terriajs-cesium/Source/Core/Resource"; +import createZoomToFunction from "../../../../Map/zoomRectangleFromPoint"; + +const CoordsText = props => { + const { + name, + title, + message, + tooltip, + value, + setValue, + isCartographic, + moveTo, + readonly + } = props; + + const clipboardBtn = new clipboard(`.btn-copy-${name}`); + + return ( +
+
{title}
+
+ {message} +
+ + setValue(e)} + onChange={e => setValue(e.target.value)} + id={name} + /> + + + +
+ ); +}; + +const SrsSelection = props => { + const { + name, + title, + tooltip, + isCartographic, + setSrs, + reset, + convert, + conversionList + } = props; + + return ( +
+
{title}
+ + + + +
+ ); +}; + +const CoordsPanel = props => { + const { terria, viewState, modalWidth, onUserClick } = props; + + const conversionList = [ + { + desc: "EPSG:4326 WGS84 → EPSG:3003 Monte Mario / Italy zone 1", + from: 4326, + to: 3003, + transformForward: false, + wkt: { + wkt: + 'GEOGTRAN["CGT_AD400_MM_ETRS89_V1A",GEOGCS["GCS_Monte_Mario",DATUM["D_Monte_Mario",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],METHOD["NTv2"],PARAMETER["Dataset_it_emirom_ad400_v1/RER_AD400_MM_ETRS89_V1A",0.0]]' + } + }, + { + desc: "EPSG:4326 WGS84 → EPSG:3004 Monte Mario / Italy zone 2", + from: 4326, + to: 3004, + transformForward: false, + wkt: { + wkt: + 'GEOGTRAN["CGT_AD400_MM_ETRS89_V1A",GEOGCS["GCS_Monte_Mario",DATUM["D_Monte_Mario",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],METHOD["NTv2"],PARAMETER["Dataset_it_emirom_ad400_v1/RER_AD400_MM_ETRS89_V1A",0.0]]' + } + }, + { + desc: "EPSG:4326 WGS84 → EPSG:4265 Monte Mario", + from: 4326, + to: 4265, + transformForward: false, + wkt: { + wkt: + 'GEOGTRAN["CGT_AD400_MM_ETRS89_V1A",GEOGCS["GCS_Monte_Mario",DATUM["D_Monte_Mario",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],METHOD["NTv2"],PARAMETER["Dataset_it_emirom_ad400_v1/RER_AD400_MM_ETRS89_V1A",0.0]]' + } + }, + { + desc: "EPSG:4326 WGS84 → EPSG:5659 UTMRER", + from: 4326, + to: 5659, + transformForward: false, + wkt: { + wkt: + 'GEOGTRAN["CGT_AD400_MM_ETRS89_V1A",GEOGCS["GCS_Monte_Mario",DATUM["D_Monte_Mario",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],METHOD["NTv2"],PARAMETER["Dataset_it_emirom_ad400_v1/RER_AD400_MM_ETRS89_V1A",0.0]]' + } + }, + { + desc: "EPSG:4326 WGS84 → EPSG:4258 ETRS89", + from: 4326, + to: 4258, + transformForward: false, + wkt: {} + }, + { + desc: "EPSG:4326 WGS84 → EPSG:25832 ETRS89 / UTM zone 32N", + from: 4326, + to: 25832, + transformForward: false, + wkt: {} + }, + { + desc: "EPSG:4326 WGS84 → EPSG:25833 ETRS89 / UTM zone 33N", + from: 4326, + to: 25833, + transformForward: false, + wkt: {} + }, + { + desc: "EPSG:4326 WGS84 → EPSG:6706 RDN2008", + from: 4326, + to: 6706, + transformForward: false, + wkt: {} + }, + { + desc: "EPSG:4326 WGS84 → EPSG:7791 RDN2008 / UTM zone 32N", + from: 4326, + to: 7791, + transformForward: false, + wkt: {} + }, + { + desc: "EPSG:4326 WGS84 → EPSG:7792 RDN2008 / UTM zone 33N", + from: 4326, + to: 7792, + transformForward: false, + wkt: {} + }, + { + desc: "EPSG:4326 WGS84 → EPSG:4230 ED50", + from: 4326, + to: 4230, + transformForward: false, + wkt: { + wkt: + 'GEOGTRAN["CGT_ED50_ETRS89_GPS7_K2",GEOGCS["GCS_European_1950",DATUM["D_European_1950",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],METHOD["NTv2"],PARAMETER["Dataset_it_emirom_gps7_k2/RER_ED50_ETRS89_GPS7_K2",0.0]]' + } + }, + { + desc: "EPSG:4326 WGS84 → EPSG:23032 ED50 / UTM zone 32N", + from: 4326, + to: 23032, + transformForward: false, + wkt: { + wkt: + 'GEOGTRAN["CGT_ED50_ETRS89_GPS7_K2",GEOGCS["GCS_European_1950",DATUM["D_European_1950",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],METHOD["NTv2"],PARAMETER["Dataset_it_emirom_gps7_k2/RER_ED50_ETRS89_GPS7_K2",0.0]]' + } + }, + { + desc: "EPSG:4326 WGS84 → EPSG:23033 ED50 / UTM zone 33N", + from: 4326, + to: 23033, + transformForward: false, + wkt: { + wkt: + 'GEOGTRAN["CGT_ED50_ETRS89_GPS7_K2",GEOGCS["GCS_European_1950",DATUM["D_European_1950",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],METHOD["NTv2"],PARAMETER["Dataset_it_emirom_gps7_k2/RER_ED50_ETRS89_GPS7_K2",0.0]]' + } + }, + { + desc: "EPSG:4326 WGS84 → EPSG:32632 WGS 84 / UTM zone 32N", + from: 4326, + to: 32632, + transformForward: false, + wkt: {} + }, + { + desc: "EPSG:4326 WGS84 → EPSG:32633 WGS 84 / UTM zone 33N", + from: 4326, + to: 32633, + transformForward: false, + wkt: {} + }, + { + desc: "EPSG:3003 Monte Mario / Italy zone 1 → EPSG:4326 WGS84", + from: 3003, + to: 4326, + transformForward: true, + wkt: { + wkt: + 'GEOGTRAN["CGT_AD400_MM_ETRS89_V1A",GEOGCS["GCS_Monte_Mario",DATUM["D_Monte_Mario",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],METHOD["NTv2"],PARAMETER["Dataset_it_emirom_ad400_v1/RER_AD400_MM_ETRS89_V1A",0.0]]' + } + }, + { + desc: "EPSG:3004 Monte Mario / Italy zone 2 → EPSG:4326 WGS84", + from: 3004, + to: 4326, + transformForward: true, + wkt: { + wkt: + 'GEOGTRAN["CGT_AD400_MM_ETRS89_V1A",GEOGCS["GCS_Monte_Mario",DATUM["D_Monte_Mario",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],METHOD["NTv2"],PARAMETER["Dataset_it_emirom_ad400_v1/RER_AD400_MM_ETRS89_V1A",0.0]]' + } + }, + { + desc: "EPSG:4265 Monte Mario → EPSG:4326 WGS84", + from: 4265, + to: 4326, + transformForward: true, + wkt: { + wkt: + 'GEOGTRAN["CGT_AD400_MM_ETRS89_V1A",GEOGCS["GCS_Monte_Mario",DATUM["D_Monte_Mario",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],METHOD["NTv2"],PARAMETER["Dataset_it_emirom_ad400_v1/RER_AD400_MM_ETRS89_V1A",0.0]]' + } + }, + { + desc: "EPSG:5659 UTMRER → EPSG:4326 WGS84", + from: 5659, + to: 4326, + transformForward: true, + wkt: { + wkt: + 'GEOGTRAN["CGT_AD400_MM_ETRS89_V1A",GEOGCS["GCS_Monte_Mario",DATUM["D_Monte_Mario",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],METHOD["NTv2"],PARAMETER["Dataset_it_emirom_ad400_v1/RER_AD400_MM_ETRS89_V1A",0.0]]' + } + }, + { + desc: "EPSG:4258 ETRS89 → EPSG:4326 WGS84", + from: 4258, + to: 4326, + transformForward: true, + wkt: {} + }, + { + desc: "EPSG:25832 ETRS89 / UTM zone 32N → EPSG:4326 WGS84", + from: 25832, + to: 4326, + transformForward: true, + wkt: {} + }, + { + desc: "EPSG:25833 ETRS89 / UTM zone 33N → EPSG:4326 WGS84", + from: 25833, + to: 4326, + transformForward: true, + wkt: {} + }, + { + desc: "EPSG:6706 RDN2008 → EPSG:4326 WGS84", + from: 6706, + to: 4326, + transformForward: true, + wkt: {} + }, + { + desc: "EPSG:7791 RDN2008 / UTM zone 32N → EPSG:4326 WGS84", + from: 7791, + to: 4326, + transformForward: true, + wkt: {} + }, + { + desc: "EPSG:7792 RDN2008 / UTM zone 33N → EPSG:4326 WGS84", + from: 7792, + to: 4326, + transformForward: true, + wkt: {} + }, + { + desc: "EPSG:4230 ED50 → EPSG:4326 WGS84", + from: 4230, + to: 4326, + transformForward: true, + wkt: { + wkt: + 'GEOGTRAN["CGT_ED50_ETRS89_GPS7_K2",GEOGCS["GCS_European_1950",DATUM["D_European_1950",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],METHOD["NTv2"],PARAMETER["Dataset_it_emirom_gps7_k2/RER_ED50_ETRS89_GPS7_K2",0.0]]' + } + }, + { + desc: "EPSG:23032 ED50 / UTM zone 32N → EPSG:4326 WGS84", + from: 23032, + to: 4326, + transformForward: true, + wkt: { + wkt: + 'GEOGTRAN["CGT_ED50_ETRS89_GPS7_K2",GEOGCS["GCS_European_1950",DATUM["D_European_1950",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],METHOD["NTv2"],PARAMETER["Dataset_it_emirom_gps7_k2/RER_ED50_ETRS89_GPS7_K2",0.0]]' + } + }, + { + desc: "EPSG:23033 ED50 / UTM zone 33N → EPSG:4326 WGS84", + from: 23033, + to: 4326, + transformForward: true, + wkt: { + wkt: + 'GEOGTRAN["CGT_ED50_ETRS89_GPS7_K2",GEOGCS["GCS_European_1950",DATUM["D_European_1950",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],METHOD["NTv2"],PARAMETER["Dataset_it_emirom_gps7_k2/RER_ED50_ETRS89_GPS7_K2",0.0]]' + } + }, + { + desc: "EPSG:32632 WGS 84 / UTM zone 32N → EPSG:4326 WGS84", + from: 32632, + to: 4326, + transformForward: true, + wkt: {} + }, + { + desc: "EPSG:32633 WGS 84 / UTM zone 33N → EPSG:4326 WGS84", + from: 32633, + to: 4326, + transformForward: true, + wkt: {} + } + ]; + + const [isOpen, setIsOpen] = useState(false); + const [coordsInputTxt, setCoordsInputTxt] = useState(""); + const [coordsOutputTxt, setCoordsOutputTxt] = useState(""); + const [inputX, setInputX] = useState(null); + const [inputY, setInputY] = useState(null); + const [outputX, setOutputX] = useState(null); + const [outputY, setOutputY] = useState(null); + const [isInputCartographic, setIsInputCartographic] = useState(false); + const [isOutputCartographic, setIsOutputCartographic] = useState(false); + const [srs, setSrs] = useState(conversionList[0]); + + const dropdownTheme = { + outer: classNames(Styles.sharePanel), + inner: classNames(Styles.dropdownInner) + }; + + const btnText = "Coordinate"; + const btnTitle = "Converti coordinate"; + + const renderContent = () => { + return ( +
+ { + moveTo(inputX, inputY); + }} + message="Lat, Lon (in gradi decimali) oppure X, Y oppure Est, Nord" + tooltip="Se la finestra 'Informazioni' è aperta le coordinate sono lette da lì e non sono modificabili" + /> + + { + moveTo(outputY, outputX); + }} + readonly + message="Lat, Lon (in gradi decimali) oppure X, Y oppure Est, Nord" + tooltip="" + /> +
+ ); + }; + + const moveTo = (x, y) => { + const bboxSize = 0.005; + const time = 2.0; + const rectangle = createZoomToFunction(x, y, bboxSize); + + terria.currentViewer.zoomTo(rectangle, time); + terria.cesium._selectionIndicator.animateAppear(); + }; + + const reset = () => { + setCoordsInputTxt(""); + setCoordsOutputTxt(""); + setIsInputCartographic(false); + setIsOutputCartographic(false); + }; + + const callConverter = () => { + if (!srs || !inputX || !inputY) { + return; + } + + CesiumResource.fetchJson({ + url: terria.corsProxy.getURL( + "http://servizigis.regione.emilia-romagna.it/arcgis/rest/services/Utilities/Geometry/GeometryServer/project" + ), + queryParameters: { + inSR: srs.from, + outSR: srs.to, + geometries: isInputCartographic + ? inputY.toString() + "," + inputX.toString() + : inputX.toString() + "," + inputY.toString(), + transformation: JSON.stringify(srs.wkt), + transformForward: srs.transformForward, + f: "json" + } + }).then(function(results) { + if (results.geometries) { + const geom = results.geometries[0]; + const areLatLon = + geom.x >= 0 && geom.x <= 360 && geom.y >= 0 && geom.y <= 360; + const x = geom.x.toFixed(areLatLon ? 6 : 4); + const y = geom.y.toFixed(areLatLon ? 6 : 4); + + setOutputX(x); + setOutputY(y); + setIsOutputCartographic(areLatLon); + setCoordsOutputTxt(areLatLon ? y + ", " + x : x + ", " + y); + } else { + setCoordsOutputTxt(results.error.message); + } + }); + }; + + const onLoadPickedCoords = () => { + if (terria.pickedFeatures) { + const cartographicCoords = Ellipsoid.WGS84.cartesianToCartographic( + terria.pickedFeatures.pickPosition + ); + + const latitude = CesiumMath.toDegrees(cartographicCoords.latitude); + const longitude = CesiumMath.toDegrees(cartographicCoords.longitude); + + setInputX(latitude); + setInputY(longitude); + setCoordsInputTxt(latitude.toFixed(6) + ", " + longitude.toFixed(6)); + setIsInputCartographic(true); + } + }; + + useEffect(() => { + if (coordsInputTxt && coordsInputTxt !== "") { + const splitted = coordsInputTxt.toString().split(/[ |,|;]+/g); + const x = parseFloat(splitted[0]); + const y = parseFloat(splitted[1]); + const areLatLon = x >= 0 && x <= 360 && y >= 0 && y <= 360; + setInputX(x); + setInputY(y); + setIsInputCartographic(areLatLon); + } + }, [coordsInputTxt]); + + /*const isOpen = this.props.viewState.openCoordinateConverterPanel; + if (isOpen && this.props.terria.isFeaturePicked) { + this.onLoadPickedCoords(); + this.props.terria.isFeaturePicked = false; + }*/ + + return ( +
+ { + if (true) viewState.shareModalIsVisible = false; + }} + onUserClick={onUserClick} + > + {isOpen && renderContent()} + +
+ ); +}; + +//export default withTranslation()(CoordsPanel); +export default CoordsPanel; diff --git a/lib/ReactViews/Map/Panels/CoordsPanel/coords-panel.scss b/lib/ReactViews/Map/Panels/CoordsPanel/coords-panel.scss new file mode 100644 index 00000000000..d4c23beb0b6 --- /dev/null +++ b/lib/ReactViews/Map/Panels/CoordsPanel/coords-panel.scss @@ -0,0 +1,38 @@ +@import "~terriajs-variables"; +@import "../../../../Sass/common/mixins"; + +.share-panel { + font-size: $font-size-mid-small; +} + +.dropdown-inner { + width: $share-panel-width; + @include transform-origin(50%, top); +} + +.crs--item { + composes: field from "../../../../Sass/common/_form.scss"; + background-color: $overlay; + color: $color-primary; +} + +.shareUrlfield { + width: calc(100% - 80px); + padding-left: 1rem; + padding-right: 0; +} + +.explanation { + font-size: smaller; + font-weight: lighter; + color: $text-light-dimmed; +} + +.format-button, +.print-button { + composes: btn from "../../../../Sass/common/_buttons.scss"; + composes: btn-primary from "../../../../Sass/common/_buttons.scss"; + width: auto; + display: inline; + margin: 2px; +} diff --git a/lib/ReactViews/Map/Panels/CoordsPanel/coords-panel.scss.d.ts b/lib/ReactViews/Map/Panels/CoordsPanel/coords-panel.scss.d.ts new file mode 100644 index 00000000000..97eac20fe52 --- /dev/null +++ b/lib/ReactViews/Map/Panels/CoordsPanel/coords-panel.scss.d.ts @@ -0,0 +1,18 @@ +// This file is automatically generated. +// Please do not change this file! +interface CssExports { + 'crs--item': string; + 'crsItem': string; + 'dropdown-inner': string; + 'dropdownInner': string; + 'explanation': string; + 'format-button': string; + 'formatButton': string; + 'print-button': string; + 'printButton': string; + 'share-panel': string; + 'sharePanel': string; + 'shareUrlfield': string; +} +declare var cssExports: CssExports; +export = cssExports; From ccac69a7c936c9898c9c55440dc485e3e8bd8244 Mon Sep 17 00:00:00 2001 From: glughi Date: Tue, 2 Nov 2021 17:26:19 +0100 Subject: [PATCH 003/215] Add elevation to FeatureInfo --- .../FeatureInfo/FeatureInfoPanel.jsx | 70 +++++++++++++++---- 1 file changed, 55 insertions(+), 15 deletions(-) diff --git a/lib/ReactViews/FeatureInfo/FeatureInfoPanel.jsx b/lib/ReactViews/FeatureInfo/FeatureInfoPanel.jsx index 3bdbd42aae7..645e3321a06 100644 --- a/lib/ReactViews/FeatureInfo/FeatureInfoPanel.jsx +++ b/lib/ReactViews/FeatureInfo/FeatureInfoPanel.jsx @@ -25,6 +25,8 @@ import classNames from "classnames"; import { observer, disposeOnUnmount } from "mobx-react"; import { action, reaction, runInAction } from "mobx"; +import sampleTerrainMostDetailed from "terriajs-cesium/Source/Core/sampleTerrainMostDetailed.js"; + @observer class FeatureInfoPanel extends React.Component { static propTypes = { @@ -40,7 +42,8 @@ class FeatureInfoPanel extends React.Component { left: null, right: null, top: null, - bottom: null + bottom: null, + elev: undefined }; } @@ -221,29 +224,66 @@ class FeatureInfoPanel extends React.Component { // this.locationUpdated(longitude, latitude); const that = this; + + if ( + this.props.terria.cesium && + this.props.terria.cesium.scene.terrainProvider + ) { + sampleTerrainMostDetailed( + this.props.terria.cesium.scene.terrainProvider, + [cartographic] + ).then(function(newPositions) { + that.setState({ elev: Math.round(newPositions[0].height) }); + }); + } else { + this.setState({ elev: undefined }); + } + const pinClicked = function() { that.pinClicked(longitude, latitude); }; + const coordinateClicked = () => { + this.props.viewState.openCoordinateConverterPanel = true; + this.close(); + }; + const locationButtonStyle = isMarkerVisible(this.props.terria) ? Styles.btnLocationSelected : Styles.btnLocation; return ( -
- Lat / Lon  - - {pretty.latitude + ", " + pretty.longitude} - {!this.props.printView && ( - - )} - +
+ +
+ Altitudine + {this.state.elev} m s.l.m. +
+
+
+ Lat / Lon  + + {pretty.latitude + ", " + pretty.longitude} + {!this.props.printView && ( + + + + + )} + +
); } From a5f11f486a43ba5c86f77ea01549d30ba75abc4e Mon Sep 17 00:00:00 2001 From: glughi Date: Tue, 2 Nov 2021 17:26:56 +0100 Subject: [PATCH 004/215] Use SLM instead of ellipsoid height --- lib/ReactViewModels/MouseCoords.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/ReactViewModels/MouseCoords.ts b/lib/ReactViewModels/MouseCoords.ts index 2f1b56ab682..52c82857eeb 100644 --- a/lib/ReactViewModels/MouseCoords.ts +++ b/lib/ReactViewModels/MouseCoords.ts @@ -220,7 +220,8 @@ export default class MouseCoords { const geoidHeight = result[0] || 0.0; this.tileRequestInFlight = undefined; if (Cartographic.equals(position, this.cartographic)) { - position.height = positionWithHeight.height - geoidHeight; + // Comments to use SLM instead of ellipsoid height + //position.height = positionWithHeight.height - geoidHeight; this.cartographicToFields(position); } else { // Mouse moved since we started this request, so the result isn't useful. Try again next time. From bc3d14f465d0833805f28a1eebdfdc04f16a6dfa Mon Sep 17 00:00:00 2001 From: glughi Date: Tue, 2 Nov 2021 17:28:18 +0100 Subject: [PATCH 005/215] Switch BingMapsSearch culture from "en-au" to "it" --- lib/Models/SearchProviders/BingMapsSearchProvider.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/Models/SearchProviders/BingMapsSearchProvider.ts b/lib/Models/SearchProviders/BingMapsSearchProvider.ts index f3916092087..7088d23aed7 100644 --- a/lib/Models/SearchProviders/BingMapsSearchProvider.ts +++ b/lib/Models/SearchProviders/BingMapsSearchProvider.ts @@ -47,8 +47,8 @@ export default class BingMapsSearchProvider extends SearchProvider { options.flightDurationSeconds, 1.5 ); - this.primaryCountry = defaultValue(options.primaryCountry, "Australia"); - this.culture = defaultValue(options.culture, "en-au"); + this.primaryCountry = defaultValue(options.primaryCountry, "Italy"); + this.culture = defaultValue(options.culture, "it"); if (!this.key) { console.warn( From bd318f996b3bd63c614a8f7b88fe8c9bf6e4fae9 Mon Sep 17 00:00:00 2001 From: glughi Date: Tue, 2 Nov 2021 17:34:29 +0100 Subject: [PATCH 006/215] Clamp to ground Kml --- lib/Models/Catalog/CatalogItems/KmlCatalogItem.ts | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/lib/Models/Catalog/CatalogItems/KmlCatalogItem.ts b/lib/Models/Catalog/CatalogItems/KmlCatalogItem.ts index a2ecd919348..1f6c30bf815 100644 --- a/lib/Models/Catalog/CatalogItems/KmlCatalogItem.ts +++ b/lib/Models/Catalog/CatalogItems/KmlCatalogItem.ts @@ -20,6 +20,9 @@ import KmlCatalogItemTraits from "../../../Traits/TraitsClasses/KmlCatalogItemTr import CreateModel from "../../Definition/CreateModel"; import proxyCatalogItemUrl from "../proxyCatalogItemUrl"; +import HeightReference from "terriajs-cesium/Source/Scene/HeightReference"; +import ArcType from "terriajs-cesium/Source/Core/ArcType"; + const kmzRegex = /\.kmz$/i; class KmlCatalogItem extends MappableMixin( @@ -139,6 +142,16 @@ class KmlCatalogItem extends MappableMixin( ); } } + + // Clamp to ground + if (isDefined(entity.polyline)) { + entity.polyline.clampToGround = new ConstantProperty(true); + entity.polyline.arcType = new ConstantProperty(ArcType.GEODESIC); + } else if (isDefined(entity.billboard)) { + entity.billboard.heightReference = new ConstantProperty( + HeightReference.CLAMP_TO_GROUND + ); + } } const terrainProvider = this.terria.cesium.scene.globe.terrainProvider; sampleTerrain(terrainProvider, 11, positionsToSample).then(function() { From f432f69feb1b98dd44c226660fe67e5870fd1d36 Mon Sep 17 00:00:00 2001 From: glughi Date: Tue, 2 Nov 2021 17:35:05 +0100 Subject: [PATCH 007/215] Add Copy icon --- lib/Styled/Icon.tsx | 4 +++- wwwroot/images/icons/copy.svg | 8 ++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) create mode 100644 wwwroot/images/icons/copy.svg diff --git a/lib/Styled/Icon.tsx b/lib/Styled/Icon.tsx index 417325e29f8..0898950e967 100644 --- a/lib/Styled/Icon.tsx +++ b/lib/Styled/Icon.tsx @@ -124,7 +124,9 @@ export const GLYPHS = { pedestrian: require("../../wwwroot/images/icons/pedestrian.svg"), minimize: require("../../wwwroot/images/icons/minimize.svg"), maximize: require("../../wwwroot/images/icons/maximize.svg"), - closeTool: require("../../wwwroot/images/icons/close-tool.svg") + closeTool: require("../../wwwroot/images/icons/close-tool.svg"), + + copy: require("../../wwwroot/images/icons/copy.svg") }; interface IconProps { diff --git a/wwwroot/images/icons/copy.svg b/wwwroot/images/icons/copy.svg new file mode 100644 index 00000000000..bc00e6c305d --- /dev/null +++ b/wwwroot/images/icons/copy.svg @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file From 7d9e5d94e3ab64b98d2da5b0a7384b4d1b311592 Mon Sep 17 00:00:00 2001 From: glughi Date: Tue, 2 Nov 2021 17:36:17 +0100 Subject: [PATCH 008/215] Add CoordsPanel to menu --- lib/ReactViews/Map/MenuBar.jsx | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/lib/ReactViews/Map/MenuBar.jsx b/lib/ReactViews/Map/MenuBar.jsx index b815f9d885e..db63b0bc807 100644 --- a/lib/ReactViews/Map/MenuBar.jsx +++ b/lib/ReactViews/Map/MenuBar.jsx @@ -6,6 +6,7 @@ import PropTypes from "prop-types"; import classNames from "classnames"; import SettingPanel from "./Panels/SettingPanel"; import SharePanel from "./Panels/SharePanel/SharePanel"; +import CoordsPanel from "./Panels/CoordsPanel/CoordsPanel"; import ToolsPanel from "./Panels/ToolsPanel/ToolsPanel"; import Icon from "../../Styled/Icon"; import Prompt from "../Generic/Prompt"; @@ -117,6 +118,9 @@ const MenuBar = observer(props => {
  • +
  • + +
  • From 750f28ab7565f0a3b88a3135a39dd69187b50d7f Mon Sep 17 00:00:00 2001 From: glughi Date: Tue, 2 Nov 2021 17:36:45 +0100 Subject: [PATCH 009/215] Print version to console --- .../StandardUserInterface/StandardUserInterface.jsx | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/lib/ReactViews/StandardUserInterface/StandardUserInterface.jsx b/lib/ReactViews/StandardUserInterface/StandardUserInterface.jsx index 695d5732d4c..396925d5c33 100644 --- a/lib/ReactViews/StandardUserInterface/StandardUserInterface.jsx +++ b/lib/ReactViews/StandardUserInterface/StandardUserInterface.jsx @@ -251,6 +251,12 @@ const StandardUserInterface = observer( this.props.viewState.storyShown && !this.props.viewState.explorerPanelIsVisible && !this.props.viewState.storyBuilderShown; + + // Print version to console + console.log( + "rer3d-terriajs v." + require("../../../package.json").version + ); + return ( Date: Fri, 12 Nov 2021 19:29:23 +0100 Subject: [PATCH 010/215] Set globe background color to white --- lib/Models/Cesium.ts | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/lib/Models/Cesium.ts b/lib/Models/Cesium.ts index eaa7dd2da6b..21a3d772dc1 100644 --- a/lib/Models/Cesium.ts +++ b/lib/Models/Cesium.ts @@ -71,6 +71,8 @@ import GlobeOrMap from "./GlobeOrMap"; import Terria from "./Terria"; import UserDrawing from "./UserDrawing"; +import Color from "terriajs-cesium/Source/Core/Color"; + //import Cesium3DTilesInspector from "terriajs-cesium/Source/Widgets/Cesium3DTilesInspector/Cesium3DTilesInspector"; // Intermediary @@ -258,6 +260,8 @@ export default class Cesium extends GlobeOrMap { } } + this.scene.globe.baseColor = Color.WHITE; + this.scene.globe.depthTestAgainstTerrain = false; // var d = this._getDisclaimer(); From 5fef9a4a44fe6d32d2fd07c1fcfa30726f6330c2 Mon Sep 17 00:00:00 2001 From: glughi Date: Tue, 23 Nov 2021 16:39:44 +0100 Subject: [PATCH 011/215] Clamp to ground lines of Measure Tool --- lib/Models/UserDrawing.ts | 3 +++ 1 file changed, 3 insertions(+) diff --git a/lib/Models/UserDrawing.ts b/lib/Models/UserDrawing.ts index d786ae9fd5c..0ac9c35d9e2 100644 --- a/lib/Models/UserDrawing.ts +++ b/lib/Models/UserDrawing.ts @@ -255,6 +255,9 @@ export default class UserDrawing extends MappableMixin( return pos; }, false), + // Clamp to ground lines of Measure Tool + clampToGround: true, + material: new PolylineGlowMaterialProperty({ color: new Color(0.0, 0.0, 0.0, 0.1), glowPower: 0.25 From 9e46ae0f5de1c4d6548cbb8584e6ddd6e418f2fb Mon Sep 17 00:00:00 2001 From: glughi Date: Tue, 23 Nov 2021 16:46:46 +0100 Subject: [PATCH 012/215] Change prettifyCoordinates default digits to 6 --- lib/Map/prettifyCoordinates.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/Map/prettifyCoordinates.ts b/lib/Map/prettifyCoordinates.ts index aaad1397d0e..9d3eddae1c9 100644 --- a/lib/Map/prettifyCoordinates.ts +++ b/lib/Map/prettifyCoordinates.ts @@ -31,7 +31,7 @@ export interface PrettyCoordinates { export default function prettifyCoordinates( longitude: number, latitude: number, - { height, errorBar, digits = 5 }: PrettifyOptions = {} + { height, errorBar, digits = 6 }: PrettifyOptions = {} ) { const prettyLatitude = Math.abs(latitude).toFixed(digits) + "°" + (latitude < 0.0 ? "S" : "N"); From f3d9ab2eb2ae55ac8ade8efe332283ca5f5c52cd Mon Sep 17 00:00:00 2001 From: glughi Date: Tue, 23 Nov 2021 16:49:39 +0100 Subject: [PATCH 013/215] Store and load last picked point coordinates --- lib/Models/Terria.ts | 7 +++- .../FeatureInfo/FeatureInfoPanel.jsx | 17 +++----- .../Map/Panels/CoordsPanel/CoordsPanel.jsx | 39 +++++++++---------- 3 files changed, 29 insertions(+), 34 deletions(-) diff --git a/lib/Models/Terria.ts b/lib/Models/Terria.ts index 3e5c6c7328e..02691f752cd 100644 --- a/lib/Models/Terria.ts +++ b/lib/Models/Terria.ts @@ -99,6 +99,8 @@ import TimelineStack from "./TimelineStack"; import { isViewerMode, setViewerMode } from "./ViewerMode"; import Workbench from "./Workbench"; +import Cartesian3 from "terriajs-cesium/Source/Core/Cartesian3"; + // import overrides from "../Overrides/defaults.jsx"; interface ConfigParameters { @@ -465,6 +467,9 @@ export default class Terria { @observable allowFeatureInfoRequests: boolean = true; + @observable + pickedPosition: Cartesian3 | undefined; + /** * Gets or sets the stack of map interactions modes. The mode at the top of the stack * (highest index) handles click interactions with the map @@ -493,7 +498,7 @@ export default class Terria { @observable terrainSplitDirection: ImagerySplitDirection = ImagerySplitDirection.NONE; - @observable depthTestAgainstTerrainEnabled = false; + @observable depthTestAgainstTerrainEnabled = true; @observable stories: any[] = []; diff --git a/lib/ReactViews/FeatureInfo/FeatureInfoPanel.jsx b/lib/ReactViews/FeatureInfo/FeatureInfoPanel.jsx index f90ec729b90..3bf2c933c4b 100644 --- a/lib/ReactViews/FeatureInfo/FeatureInfoPanel.jsx +++ b/lib/ReactViews/FeatureInfo/FeatureInfoPanel.jsx @@ -243,11 +243,6 @@ class FeatureInfoPanel extends React.Component { that.pinClicked(longitude, latitude); }; - const coordinateClicked = () => { - this.props.viewState.openCoordinateConverterPanel = true; - this.close(); - }; - const locationButtonStyle = isMarkerVisible(this.props.terria) ? Styles.btnLocationSelected : Styles.btnLocation; @@ -273,13 +268,6 @@ class FeatureInfoPanel extends React.Component { > - )} @@ -359,6 +347,11 @@ class FeatureInfoPanel extends React.Component { } } + // Store position in Terria state + if (!!position) { + terria.pickedPosition = position; + } + const locationElements = (
  • {this.renderLocationItem(position)}
  • diff --git a/lib/ReactViews/Map/Panels/CoordsPanel/CoordsPanel.jsx b/lib/ReactViews/Map/Panels/CoordsPanel/CoordsPanel.jsx index da7334c8029..675782fee89 100644 --- a/lib/ReactViews/Map/Panels/CoordsPanel/CoordsPanel.jsx +++ b/lib/ReactViews/Map/Panels/CoordsPanel/CoordsPanel.jsx @@ -15,6 +15,8 @@ import Button from "../../../../Styled/Button"; import Select from "../../../../Styled/Select"; import CesiumResource from "terriajs-cesium/Source/Core/Resource"; import createZoomToFunction from "../../../../Map/zoomRectangleFromPoint"; +import Ellipsoid from "terriajs-cesium/Source/Core/Ellipsoid"; +import CesiumMath from "terriajs-cesium/Source/Core/Math"; const CoordsText = props => { const { @@ -105,6 +107,10 @@ const SrsSelection = props => { conversionList } = props; + useEffect(() => { + setSrs(conversionList[0]); + }, [isCartographic]); + return (
    {title}
    @@ -521,22 +527,6 @@ const CoordsPanel = props => { }); }; - const onLoadPickedCoords = () => { - if (terria.pickedFeatures) { - const cartographicCoords = Ellipsoid.WGS84.cartesianToCartographic( - terria.pickedFeatures.pickPosition - ); - - const latitude = CesiumMath.toDegrees(cartographicCoords.latitude); - const longitude = CesiumMath.toDegrees(cartographicCoords.longitude); - - setInputX(latitude); - setInputY(longitude); - setCoordsInputTxt(latitude.toFixed(6) + ", " + longitude.toFixed(6)); - setIsInputCartographic(true); - } - }; - useEffect(() => { if (coordsInputTxt && coordsInputTxt !== "") { const splitted = coordsInputTxt.toString().split(/[ |,|;]+/g); @@ -549,11 +539,18 @@ const CoordsPanel = props => { } }, [coordsInputTxt]); - /*const isOpen = this.props.viewState.openCoordinateConverterPanel; - if (isOpen && this.props.terria.isFeaturePicked) { - this.onLoadPickedCoords(); - this.props.terria.isFeaturePicked = false; - }*/ + useEffect(() => { + if (!!terria && !!terria.pickedPosition) { + const cartographic = Ellipsoid.WGS84.cartesianToCartographic( + terria.pickedPosition + ); + const latitude = CesiumMath.toDegrees(cartographic.latitude).toFixed(6); + const longitude = CesiumMath.toDegrees(cartographic.longitude).toFixed(6); + if (coordsInputTxt !== `${latitude}, ${longitude}`) { + setCoordsInputTxt(`${latitude}, ${longitude}`); + } + } + }, [terria.pickedPosition]); return (
    From ca03d80fc6166b4d05bec2bf32c1763e39b13c77 Mon Sep 17 00:00:00 2001 From: glughi Date: Thu, 25 Nov 2021 09:33:00 +0100 Subject: [PATCH 014/215] Workaround for rebuild problem when MeasureTool.ts is modified --- lib/ReactViews/Map/Navigation/Items/MeasureTool.ts | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/lib/ReactViews/Map/Navigation/Items/MeasureTool.ts b/lib/ReactViews/Map/Navigation/Items/MeasureTool.ts index efd1f08d5da..76c06484898 100644 --- a/lib/ReactViews/Map/Navigation/Items/MeasureTool.ts +++ b/lib/ReactViews/Map/Navigation/Items/MeasureTool.ts @@ -15,8 +15,9 @@ import ViewerMode from "../../../../Models/ViewerMode"; import { GLYPHS } from "../../../../Styled/Icon"; import MapNavigationItemController from "../../../../ViewModels/MapNavigation/MapNavigationItemController"; -const EllipsoidTangentPlane = require("terriajs-cesium/Source/Core/EllipsoidTangentPlane"); -const PolygonGeometryLibrary = require("terriajs-cesium/Source/Core/PolygonGeometryLibrary"); +// From require to import +import EllipsoidTangentPlane from "terriajs-cesium/Source/Core/EllipsoidTangentPlane"; +import PolygonGeometryLibrary from "terriajs-cesium/Source/Core/PolygonGeometryLibrary"; interface PropTypes { terria: Terria; @@ -217,7 +218,7 @@ export default class MeasureTool extends MapNavigationItemController { onCleanUp() { this.totalDistanceMetres = 0; this.totalAreaMetresSquared = 0; - super.deactivate(); + //super.deactivate(); } @action.bound @@ -247,7 +248,7 @@ export default class MeasureTool extends MapNavigationItemController { */ deactivate() { this.userDrawing.endDrawing(); - super.deactivate(); + //super.deactivate(); } /** @@ -255,6 +256,6 @@ export default class MeasureTool extends MapNavigationItemController { */ activate() { this.userDrawing.enterDrawMode(); - super.activate(); + //super.activate(); } } From 1d5ec3fa93624d5c95c4fabd5331681bbc40cae7 Mon Sep 17 00:00:00 2001 From: glughi Date: Thu, 25 Nov 2021 09:36:53 +0100 Subject: [PATCH 015/215] Allow measure area of polygon --- lib/ReactViews/Map/Navigation/Items/MeasureTool.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/ReactViews/Map/Navigation/Items/MeasureTool.ts b/lib/ReactViews/Map/Navigation/Items/MeasureTool.ts index 76c06484898..c1d638a6a1e 100644 --- a/lib/ReactViews/Map/Navigation/Items/MeasureTool.ts +++ b/lib/ReactViews/Map/Navigation/Items/MeasureTool.ts @@ -45,7 +45,7 @@ export default class MeasureTool extends MapNavigationItemController { this.userDrawing = new UserDrawing({ terria: props.terria, messageHeader: i18next.t("measure.measureTool"), - allowPolygon: false, + allowPolygon: true, onPointClicked: this.onPointClicked, onPointMoved: this.onPointMoved, onCleanUp: this.onCleanUp, From 3cb46ab52582b4cfbfa9ba5ef377116fc7d55c3d Mon Sep 17 00:00:00 2001 From: glughi Date: Thu, 25 Nov 2021 09:37:31 +0100 Subject: [PATCH 016/215] Clamp to ground user drawed polygons --- lib/Models/UserDrawing.ts | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/lib/Models/UserDrawing.ts b/lib/Models/UserDrawing.ts index 0ac9c35d9e2..4d00cd4936a 100644 --- a/lib/Models/UserDrawing.ts +++ b/lib/Models/UserDrawing.ts @@ -29,6 +29,8 @@ import MappableTraits from "../Traits/TraitsClasses/MappableTraits"; import CreateModel from "./Definition/CreateModel"; import MapInteractionMode from "./MapInteractionMode"; import Terria from "./Terria"; +import ConstantProperty from "terriajs-cesium/Source/DataSources/ConstantProperty"; +import HeightReference from "terriajs-cesium/Source/Scene/HeightReference"; interface Options { terria: Terria; @@ -438,7 +440,12 @@ export default class UserDrawing extends MappableMixin( }, false), material: new Color(0.0, 0.666, 0.843, 0.25), outlineColor: new Color(1.0, 1.0, 1.0, 1.0), - perPositionHeight: true + + // Clamp to ground polygons of Measure Tool + heightReference: new ConstantProperty( + HeightReference.CLAMP_TO_GROUND + ), + perPositionHeight: false } }); this.closeLoop = true; From 77f7ebade6e3fb6c5339f737a8fad03222ac0d5a Mon Sep 17 00:00:00 2001 From: glughi Date: Tue, 30 Nov 2021 10:19:07 +0100 Subject: [PATCH 017/215] Enable and fix point moving when measuring distance or area --- lib/Map/CesiumDragPoints.js | 8 +++++--- lib/Map/DragPoints.js | 3 ++- lib/Models/UserDrawing.ts | 7 +++++++ lib/ReactViews/Map/Navigation/Items/MeasureTool.ts | 3 ++- 4 files changed, 16 insertions(+), 5 deletions(-) diff --git a/lib/Map/CesiumDragPoints.js b/lib/Map/CesiumDragPoints.js index ed24d1a31af..5b74d2f604e 100644 --- a/lib/Map/CesiumDragPoints.js +++ b/lib/Map/CesiumDragPoints.js @@ -64,13 +64,15 @@ CesiumDragPoints.prototype.setUp = function() { if ( !defined(this._terria.cesium) || !defined(this._terria.cesium.scene) || - !defined(this._terria.cesium.viewer) + //!defined(this._terria.cesium.viewer) + !defined(this._terria.cesium.scene.camera) ) { // Test context or something has gone *so* badly wrong return; } this._scene = this._terria.cesium.scene; - this._viewer = this._terria.cesium.viewer; + //this._viewer = this._terria.cesium.viewer; + this._camera = this._scene.camera; this._mouseHandler = new ScreenSpaceEventHandler(this._scene.canvas, false); var that = this; @@ -107,7 +109,7 @@ CesiumDragPoints.prototype.setUp = function() { return; } that.dragCount = that.dragCount + 1; - var cartesian = that._viewer.camera.pickEllipsoid( + var cartesian = that._camera.pickEllipsoid( move.endPosition, that._scene.globe.ellipsoid ); diff --git a/lib/Map/DragPoints.js b/lib/Map/DragPoints.js index 5581de035ee..8eb72475ee5 100644 --- a/lib/Map/DragPoints.js +++ b/lib/Map/DragPoints.js @@ -79,7 +79,8 @@ DragPoints.prototype._createDragPointsHelper = function(pointMovedCallback) { if (defined(this._dragPointsHelper)) { this._dragPointsHelper.destroy(); } - if (this._terria.viewerMode === ViewerMode.Leaflet) { + + if (this._terria.mainViewer.viewerMode === ViewerMode.Leaflet) { this._dragPointsHelper = new LeafletDragPoints( this._terria, pointMovedCallback diff --git a/lib/Models/UserDrawing.ts b/lib/Models/UserDrawing.ts index 4d00cd4936a..aab6f84797e 100644 --- a/lib/Models/UserDrawing.ts +++ b/lib/Models/UserDrawing.ts @@ -53,6 +53,7 @@ export default class UserDrawing extends MappableMixin( private readonly onMakeDialogMessage?: () => string; private readonly buttonText?: string; private readonly onPointClicked?: (dataSource: CustomDataSource) => void; + private readonly onPointMoved?: (dataSource: CustomDataSource) => void; private readonly onCleanUp?: () => void; private readonly invisible?: boolean; private readonly dragHelper: DragPoints; @@ -99,6 +100,8 @@ export default class UserDrawing extends MappableMixin( */ this.onPointClicked = options.onPointClicked; + this.onPointMoved = options.onPointMoved; + /** * Callback that occurs on clean up, i.e. when drawing is done or cancelled. */ @@ -130,6 +133,9 @@ export default class UserDrawing extends MappableMixin( // helper for dragging points around this.dragHelper = new DragPoints(options.terria, customDataSource => { + if (typeof this.onPointMoved === "function") { + this.onPointMoved(customDataSource); + } this.prepareToAddNewPoint(); }); } @@ -300,6 +306,7 @@ export default class UserDrawing extends MappableMixin( position: new ConstantPositionProperty(position), billboard: { image: this.svgPoint, + heightReference: HeightReference.CLAMP_TO_GROUND, eyeOffset: new Cartesian3(0.0, 0.0, -50.0) } }); diff --git a/lib/ReactViews/Map/Navigation/Items/MeasureTool.ts b/lib/ReactViews/Map/Navigation/Items/MeasureTool.ts index c1d638a6a1e..3238d93e01a 100644 --- a/lib/ReactViews/Map/Navigation/Items/MeasureTool.ts +++ b/lib/ReactViews/Map/Navigation/Items/MeasureTool.ts @@ -17,7 +17,8 @@ import MapNavigationItemController from "../../../../ViewModels/MapNavigation/Ma // From require to import import EllipsoidTangentPlane from "terriajs-cesium/Source/Core/EllipsoidTangentPlane"; -import PolygonGeometryLibrary from "terriajs-cesium/Source/Core/PolygonGeometryLibrary"; +const PolygonGeometryLibrary = require("terriajs-cesium/Source/Core/PolygonGeometryLibrary") + .default; interface PropTypes { terria: Terria; From 637f6dafdd8381a798b6cab18cb7a44f475ab478 Mon Sep 17 00:00:00 2001 From: glughi Date: Fri, 17 Dec 2021 15:17:18 +0100 Subject: [PATCH 018/215] Add a button to MeasureTool to enable/disabled clampToGround --- lib/Models/UserDrawing.ts | 24 ++++++++++++++++++- lib/ReactViewModels/ViewState.ts | 6 +++++ .../Map/Navigation/Items/MeasureTool.ts | 7 +++++- .../Map/Navigation/registerMapNavigations.tsx | 1 + 4 files changed, 36 insertions(+), 2 deletions(-) diff --git a/lib/Models/UserDrawing.ts b/lib/Models/UserDrawing.ts index aab6f84797e..f9cab090dc0 100644 --- a/lib/Models/UserDrawing.ts +++ b/lib/Models/UserDrawing.ts @@ -43,6 +43,7 @@ interface Options { onPointMoved?: (dataSource: DataSource) => void; onCleanUp?: () => void; invisible?: boolean; + viewState?: ViewState; } export default class UserDrawing extends MappableMixin( @@ -57,6 +58,7 @@ export default class UserDrawing extends MappableMixin( private readonly onCleanUp?: () => void; private readonly invisible?: boolean; private readonly dragHelper: DragPoints; + private readonly viewState?: ViewState; pointEntities: CustomDataSource; otherEntities: CustomDataSource; @@ -71,6 +73,8 @@ export default class UserDrawing extends MappableMixin( private mousePointEntity?: Entity; private mouseMoveDispose?: IReactionDisposer; + private disposeClampMeasureLineToGround?: IReactionDisposer; + constructor(options: Options) { super(createGuid(), options.terria); @@ -131,6 +135,8 @@ export default class UserDrawing extends MappableMixin( this.invisible = options.invisible; + this.viewState = options.viewState; + // helper for dragging points around this.dragHelper = new DragPoints(options.terria, customDataSource => { if (typeof this.onPointMoved === "function") { @@ -138,6 +144,18 @@ export default class UserDrawing extends MappableMixin( } this.prepareToAddNewPoint(); }); + + this.disposeClampMeasureLineToGround = reaction( + () => this.viewState?.clampMeasureLineToGround, + clampMeasureLineToGround => { + if (!!this.otherEntities.entities.values[0].polyline) { + this.otherEntities.entities.values[0].polyline.clampToGround = new ConstantProperty( + clampMeasureLineToGround + ); + } + }, + { equals: (a, b) => a === b } + ); } protected forceLoadMapItems(): Promise { @@ -264,7 +282,7 @@ export default class UserDrawing extends MappableMixin( }, false), // Clamp to ground lines of Measure Tool - clampToGround: true, + clampToGround: !!this.viewState?.clampMeasureLineToGround, material: new PolylineGlowMaterialProperty({ color: new Color(0.0, 0.0, 0.0, 0.1), @@ -513,6 +531,10 @@ export default class UserDrawing extends MappableMixin( this.mouseMoveDispose(); } + if (isDefined(this.disposeClampMeasureLineToGround)) { + this.disposeClampMeasureLineToGround(); + } + // Allow client to clean up too if (typeof this.onCleanUp === "function") { this.onCleanUp(); diff --git a/lib/ReactViewModels/ViewState.ts b/lib/ReactViewModels/ViewState.ts index cbd7b27996c..b241190137a 100644 --- a/lib/ReactViewModels/ViewState.ts +++ b/lib/ReactViewModels/ViewState.ts @@ -268,6 +268,12 @@ export default class ViewState { */ @observable featureInfoPanelIsCollapsed: boolean = false; + /** + * Gets or sets a value indicating whether the path line drawn by MeasureTool is clamped to ground. + * @type {Boolean} + */ + @observable clampMeasureLineToGround: boolean = true; + /** * True if this is (or will be) the first time the user has added data to the map. * @type {Boolean} diff --git a/lib/ReactViews/Map/Navigation/Items/MeasureTool.ts b/lib/ReactViews/Map/Navigation/Items/MeasureTool.ts index 3238d93e01a..35e64a8ffac 100644 --- a/lib/ReactViews/Map/Navigation/Items/MeasureTool.ts +++ b/lib/ReactViews/Map/Navigation/Items/MeasureTool.ts @@ -10,6 +10,7 @@ import PolygonHierarchy from "terriajs-cesium/Source/Core/PolygonHierarchy"; import VertexFormat from "terriajs-cesium/Source/Core/VertexFormat"; import CustomDataSource from "terriajs-cesium/Source/DataSources/CustomDataSource"; import Terria from "../../../../Models/Terria"; +import ViewState from "../../../../ReactViewModels/ViewState"; import UserDrawing from "../../../../Models/UserDrawing"; import ViewerMode from "../../../../Models/ViewerMode"; import { GLYPHS } from "../../../../Styled/Icon"; @@ -22,6 +23,7 @@ const PolygonGeometryLibrary = require("terriajs-cesium/Source/Core/PolygonGeome interface PropTypes { terria: Terria; + viewState: ViewState; onClose(): void; } @@ -30,6 +32,7 @@ export default class MeasureTool extends MapNavigationItemController { static id = "measure-tool"; static displayName = "MeasureTool"; readonly terria: Terria; + readonly viewState: ViewState; @observable totalDistanceMetres: number = 0; @observable @@ -43,6 +46,7 @@ export default class MeasureTool extends MapNavigationItemController { super(); const t = i18next.t.bind(i18next); this.terria = props.terria; + this.viewState = props.viewState; this.userDrawing = new UserDrawing({ terria: props.terria, messageHeader: i18next.t("measure.measureTool"), @@ -50,7 +54,8 @@ export default class MeasureTool extends MapNavigationItemController { onPointClicked: this.onPointClicked, onPointMoved: this.onPointMoved, onCleanUp: this.onCleanUp, - onMakeDialogMessage: this.onMakeDialogMessage + onMakeDialogMessage: this.onMakeDialogMessage, + viewState: props.viewState }); this.onClose = props.onClose; } diff --git a/lib/ReactViews/Map/Navigation/registerMapNavigations.tsx b/lib/ReactViews/Map/Navigation/registerMapNavigations.tsx index c698b4480c7..bc2b05be267 100644 --- a/lib/ReactViews/Map/Navigation/registerMapNavigations.tsx +++ b/lib/ReactViews/Map/Navigation/registerMapNavigations.tsx @@ -91,6 +91,7 @@ export const registerMapNavigations = (viewState: ViewState) => { const measureTool = new MeasureTool({ terria, + viewState, onClose: () => { runInAction(() => { viewState.panel = undefined; From 856ef4d7d9cb27b67e51056f0a73208dd3a0a61b Mon Sep 17 00:00:00 2001 From: glughi Date: Fri, 17 Dec 2021 15:20:37 +0100 Subject: [PATCH 019/215] When drawing a path with MeasureTool store its data and sampled path data --- lib/Models/Terria.ts | 36 +++++- .../Map/Navigation/Items/MeasureTool.ts | 121 ++++++++++++++++-- 2 files changed, 146 insertions(+), 11 deletions(-) diff --git a/lib/Models/Terria.ts b/lib/Models/Terria.ts index 02691f752cd..b367ea3cba7 100644 --- a/lib/Models/Terria.ts +++ b/lib/Models/Terria.ts @@ -98,8 +98,8 @@ import ShareDataService from "./ShareDataService"; import TimelineStack from "./TimelineStack"; import { isViewerMode, setViewerMode } from "./ViewerMode"; import Workbench from "./Workbench"; - import Cartesian3 from "terriajs-cesium/Source/Core/Cartesian3"; +import Cartographic from "terriajs-cesium/Source/Core/Cartographic"; // import overrides from "../Overrides/defaults.jsx"; @@ -334,6 +334,15 @@ interface HomeCameraInit { west: number; } +interface PathSampled { + [key: string]: { + index: number; + totalDistance: number; + stepDistances: number[]; + stepHeights: number[]; + }; +} + export default class Terria { private readonly models = observable.map(); @@ -467,8 +476,29 @@ export default class Terria { @observable allowFeatureInfoRequests: boolean = true; - @observable - pickedPosition: Cartesian3 | undefined; + /** + * Gets or sets the last position picked by FeatureInfo. + * @type {Cartesian3} + */ + @observable pickedPosition: Cartesian3 | undefined; + + /** + * Gets or sets the points of a path drawn with the MeasureTool. + * @type {Cartographic[]} + */ + @observable pathPoints: Cartographic[] | undefined; + + /** + * Gets or sets the distances between stages of a path drawn with the MeasureTool. + * @type {number[]} + */ + @observable pathDistances: number[] | undefined; + + /** + * Gets or sets the data computed sampling a path drawn with the MeasureTool. + * @type {PathSampled} + */ + @observable pathSampled: PathSampled = {}; /** * Gets or sets the stack of map interactions modes. The mode at the top of the stack diff --git a/lib/ReactViews/Map/Navigation/Items/MeasureTool.ts b/lib/ReactViews/Map/Navigation/Items/MeasureTool.ts index 35e64a8ffac..f68165977aa 100644 --- a/lib/ReactViews/Map/Navigation/Items/MeasureTool.ts +++ b/lib/ReactViews/Map/Navigation/Items/MeasureTool.ts @@ -15,9 +15,12 @@ import UserDrawing from "../../../../Models/UserDrawing"; import ViewerMode from "../../../../Models/ViewerMode"; import { GLYPHS } from "../../../../Styled/Icon"; import MapNavigationItemController from "../../../../ViewModels/MapNavigation/MapNavigationItemController"; - -// From require to import import EllipsoidTangentPlane from "terriajs-cesium/Source/Core/EllipsoidTangentPlane"; +import Cartographic from "terriajs-cesium/Source/Core/Cartographic"; +import TerrainProvider from "terriajs-cesium/Source/Core/TerrainProvider"; +import sampleTerrainMostDetailed from "terriajs-cesium/Source/Core/sampleTerrainMostDetailed"; +const PolylinePipeline = require("terriajs-cesium/Source/Core/PolylinePipeline") + .default; const PolygonGeometryLibrary = require("terriajs-cesium/Source/Core/PolygonGeometryLibrary") .default; @@ -95,6 +98,55 @@ export default class MeasureTool extends MapNavigationItemController { return numberStr; } + async updateSampledPath( + index: number, + pointA: Cartographic, + pointB: Cartographic, + terrainProvider: TerrainProvider, + ellipsoid: Ellipsoid + ) { + const granularity = 0.00001; + const cartesians = ellipsoid.cartographicArrayToCartesianArray([ + pointA, + pointB + ]); + const interpolatedCartographics = ellipsoid.cartesianArrayToCartographicArray( + PolylinePipeline.generateCartesianArc({ + positions: cartesians, + granularity: granularity + }) + ); + + const sampledCartographics = await sampleTerrainMostDetailed( + terrainProvider, + interpolatedCartographics + ); + const sampledCartesians = ellipsoid.cartographicArrayToCartesianArray( + sampledCartographics + ); + + let totalDistance: number = 0; + const stepDistances: number[] = []; + for (let i = 0; i < sampledCartesians.length; ++i) { + const dist: number = + i > 0 + ? Cartesian3.distance(sampledCartesians[i - 1], sampledCartesians[i]) + : 0; + totalDistance += dist; + stepDistances.push(dist); + } + + const res = { + key: `${JSON.stringify(pointA)} ${JSON.stringify(pointB)}`, + index: index, + totalDistance: totalDistance, + stepDistances: stepDistances, + stepHeights: sampledCartographics.map(elem => elem.height) + }; + + return res; + } + @action updateDistance(pointEntities: CustomDataSource) { this.totalDistanceMetres = 0; @@ -102,19 +154,58 @@ export default class MeasureTool extends MapNavigationItemController { return; } + const pathPoints: Cartographic[] = []; + const pathDistances: number[] = []; const prevPoint = pointEntities.entities.values[0]; let prevPointPos = prevPoint.position!.getValue( this.terria.timelineClock.currentTime ); + + pathPoints.push(Cartographic.fromCartesian(prevPointPos, Ellipsoid.WGS84)); + pathDistances.push(0); + + const terrainProvider = this.terria.cesium?.scene.terrainProvider; + const ellipsoid = this.terria.cesium?.scene.globe.ellipsoid; + for (let i = 1; i < pointEntities.entities.values.length; i++) { const currentPoint = pointEntities.entities.values[i]; const currentPointPos = currentPoint.position!.getValue( this.terria.timelineClock.currentTime ); - this.totalDistanceMetres = - this.totalDistanceMetres + - this.getGeodesicDistance(prevPointPos, currentPointPos); + const dist = this.getGeodesicDistance(prevPointPos, currentPointPos); + + this.totalDistanceMetres = this.totalDistanceMetres + dist; + + const currentCarto = Cartographic.fromCartesian( + currentPointPos, + Ellipsoid.WGS84 + ); + + if (!!terrainProvider && !!ellipsoid) { + const key = `${JSON.stringify( + pathPoints[pathPoints.length - 1] + )} ${JSON.stringify(currentCarto)}`; + if (!(key in this.terria.pathSampled)) { + this.updateSampledPath( + i, + pathPoints[pathPoints.length - 1], + currentCarto, + terrainProvider, + ellipsoid + ).then( + action(res => { + this.terria.pathSampled = { + ...this.terria.pathSampled, + [res.key]: res + }; + }) + ); + } + } + + pathPoints.push(currentCarto); + pathDistances.push(dist); prevPointPos = currentPointPos; } @@ -123,9 +214,22 @@ export default class MeasureTool extends MapNavigationItemController { const firstPointPos = firstPoint.position!.getValue( this.terria.timelineClock.currentTime ); - this.totalDistanceMetres = - this.totalDistanceMetres + - this.getGeodesicDistance(prevPointPos, firstPointPos); + + const dist = this.getGeodesicDistance(prevPointPos, firstPointPos); + + this.totalDistanceMetres = this.totalDistanceMetres + dist; + + pathPoints.push( + Cartographic.fromCartesian(firstPointPos, Ellipsoid.WGS84) + ); + pathDistances.push(dist); + } + + this.terria.pathPoints = pathPoints; + this.terria.pathDistances = pathDistances; + + if (pathDistances.length > 0) { + this.viewState.elevationPanelIsVisible = true; } } @@ -222,6 +326,7 @@ export default class MeasureTool extends MapNavigationItemController { @action.bound onCleanUp() { + this.terria.pathSampled = {}; this.totalDistanceMetres = 0; this.totalAreaMetresSquared = 0; //super.deactivate(); From f6738933bce1908dfcd8c72bbdb55ccb1e954031 Mon Sep 17 00:00:00 2001 From: glughi Date: Mon, 20 Dec 2021 11:31:57 +0100 Subject: [PATCH 020/215] Add elevation/path panel and chart --- lib/ReactViewModels/ViewState.ts | 19 +- lib/ReactViews/BottomDock/BottomDock.jsx | 14 + .../Custom/Chart/ElevationChartPanel.jsx | 177 ++++++++++++ lib/ReactViews/Custom/Chart/PointOnMap.tsx | 3 +- .../Elevation/ElevationDownload.jsx | 128 +++++++++ lib/ReactViews/Elevation/ElevationPanel.jsx | 256 ++++++++++++++++++ .../Elevation/elevation-download.scss | 56 ++++ .../Elevation/elevation-download.scss.d.ts | 14 + lib/ReactViews/Elevation/elevation-panel.scss | 161 +++++++++++ .../Elevation/elevation-panel.scss.d.ts | 29 ++ .../StandardUserInterface.jsx | 5 + 11 files changed, 859 insertions(+), 3 deletions(-) create mode 100644 lib/ReactViews/Custom/Chart/ElevationChartPanel.jsx create mode 100644 lib/ReactViews/Elevation/ElevationDownload.jsx create mode 100644 lib/ReactViews/Elevation/ElevationPanel.jsx create mode 100644 lib/ReactViews/Elevation/elevation-download.scss create mode 100644 lib/ReactViews/Elevation/elevation-download.scss.d.ts create mode 100644 lib/ReactViews/Elevation/elevation-panel.scss create mode 100644 lib/ReactViews/Elevation/elevation-panel.scss.d.ts diff --git a/lib/ReactViewModels/ViewState.ts b/lib/ReactViewModels/ViewState.ts index b241190137a..90962c834c3 100644 --- a/lib/ReactViewModels/ViewState.ts +++ b/lib/ReactViewModels/ViewState.ts @@ -268,11 +268,26 @@ export default class ViewState { */ @observable featureInfoPanelIsCollapsed: boolean = false; - /** + /** + * Gets or sets a value indicating whether the ElevationPanel is visible. + * @type {Boolean} + */ + @observable elevationPanelIsVisible: boolean = false; + /** + * Gets or sets a value indicating whether the ElevationPanel is collapsed. + * @type {Boolean} + */ + @observable elevationPanelIsCollapsed: boolean = false; + /** + * Gets or sets a value indicating whether the ElevationChart is visible. + * @type {Boolean} + */ + @observable elevationChartIsVisible: boolean = false; + /** * Gets or sets a value indicating whether the path line drawn by MeasureTool is clamped to ground. * @type {Boolean} */ - @observable clampMeasureLineToGround: boolean = true; + @observable clampMeasureLineToGround: boolean = true; /** * True if this is (or will be) the first time the user has added data to the map. diff --git a/lib/ReactViews/BottomDock/BottomDock.jsx b/lib/ReactViews/BottomDock/BottomDock.jsx index 684add10514..2b2ef4369e4 100644 --- a/lib/ReactViews/BottomDock/BottomDock.jsx +++ b/lib/ReactViews/BottomDock/BottomDock.jsx @@ -7,6 +7,7 @@ import PropTypes from "prop-types"; import React from "react"; import measureElement from "../../ReactViews/HOCs/measureElement"; import ChartPanel from "../Custom/Chart/ChartPanel"; +import ElevationChartPanel from "../Custom/Chart/ElevationChartPanel"; import Styles from "./bottom-dock.scss"; import ChartDisclaimer from "./ChartDisclaimer"; import Timeline from "./Timeline/Timeline"; @@ -66,6 +67,19 @@ const BottomDock = observer( onHeightChange={this.onHeightChange} viewState={this.props.viewState} /> + 0 + } + > + + diff --git a/lib/ReactViews/Custom/Chart/ElevationChartPanel.jsx b/lib/ReactViews/Custom/Chart/ElevationChartPanel.jsx new file mode 100644 index 00000000000..76bd42cbd87 --- /dev/null +++ b/lib/ReactViews/Custom/Chart/ElevationChartPanel.jsx @@ -0,0 +1,177 @@ +"use strict"; + +import { values } from "mobx"; +import { observer } from "mobx-react"; +import PropTypes from "prop-types"; +import React from "react"; +//import { withTranslation } from "react-i18next"; +import defined from "terriajs-cesium/Source/Core/defined"; +import Icon from "../../../Styled/Icon"; +import Chart from "./BottomDockChart"; +import Styles from "./chart-panel.scss"; +import { action } from "mobx"; + +const height = 300; + +@observer +class ElevationChartPanel extends React.Component { + static displayName = "ElevationChartPanel"; + + static propTypes = { + terria: PropTypes.object.isRequired, + onHeightChange: PropTypes.func, + viewState: PropTypes.object.isRequired, + animationDuration: PropTypes.number + }; + + @action + closePanel() { + this.props.viewState.elevationChartIsVisible = false; + } + + componentDidUpdate() { + if (defined(this.props.onHeightChange)) { + this.props.onHeightChange(); + } + } + + render() { + const chartItems = []; + + if ( + !!this.props.terria?.pathPoints && + this.props.terria.pathPoints.slice().length > 0 + ) { + /*const pointItem = new GeoJsonCatalogItem(createGuid(), this.props.terria); + pointItem.setTrait( + CommonStrata.user, + "style", + createStratumInstance(StyleTraits, { + "stroke-width": 3, + "marker-size": "30", + stroke: "#ffffff", + "marker-color": "#f00", + "marker-opacity": 1 + }) + ); + pointItem.setTrait(CommonStrata.user, "geoJsonData", { + type: "Feature", + properties: {}, + geometry: { + type: "Point", + //coordinates: [props.point.longitude, props.point.latitude] + coordinates: [this.props.terria.pathPoints[0].longitude, this.props.terria.pathPoints[0].latitude] + } + }); + pointItem.setTrait(CommonStrata.user, "show", true); + pointItem.setTrait(CommonStrata.user, "isOpenInWorkbench", true); + pointItem.setTrait(CommonStrata.user, "isOpen", true); + pointItem.setTrait(CommonStrata.underride, "name", "marco"); + this.props.terria.addModel(pointItem); + this.props.terria.overlays.add(pointItem);*/ + + const pathDistances = this.props.terria.pathDistances.slice(); + const y = this.props.terria.pathPoints + .slice() + .map(p => Math.round(p.height)); + const item = { + categoryName: "Percorso", + name: "in aria", + units: "m", + isSelectedInWorkbench: false, + points: y.map((h, i) => ({ + x: pathDistances + .map((v, j) => (j <= i ? v : 0)) + .reduce((a, b) => a + b, 0) + .toFixed(2), + y: h + })), + //"pointOnMap": points.map(p => ({ "latitude": p.latitude, "longitude": p.longitude })), + key: "path", + type: "lineAndPoint", + glyphStyle: "circle", + getColor: () => "#f00", + domain: { + x: [0, pathDistances.reduce((a, b) => a + b, 0)], + y: [Math.min(...y), Math.max(...y)] + } + }; + chartItems.push(item); + + const pathSampled = values(this.props.terria.pathSampled).sort( + (a, b) => a.index > b.index + ); + const sampledX = []; + const sampledY = []; + let distance = 0; + pathSampled.forEach(elem => { + elem.stepDistances.forEach((dist, i) => { + distance += dist; + sampledX.push(distance.toFixed(2)); + sampledY.push(Math.round(elem.stepHeights[i])); + }); + }); + const itemSampled = { + categoryName: "Percorso", + name: "a terra", + units: "m", + isSelectedInWorkbench: false, + points: sampledX.map((v, i) => { + return { x: v, y: sampledY[i] }; + }), + key: "path_sampled", + type: "line", + glyphStyle: "circle", + getColor: () => "#0f0", + domain: { + x: [0, distance], + y: [Math.min(...sampledY), Math.max(...sampledY)] + } + }; + chartItems.push(itemSampled); + + console.log(item.domain.y); + console.log(itemSampled.domain.y); + + this.props.terria.currentViewer.notifyRepaintRequired(); + } + + return ( +
    +
    +
    +
    +
    + + +
    +
    + {!!chartItems && ( + + )} +
    +
    +
    +
    +
    + ); + } +} + +export default ElevationChartPanel; diff --git a/lib/ReactViews/Custom/Chart/PointOnMap.tsx b/lib/ReactViews/Custom/Chart/PointOnMap.tsx index 36adbc6d537..6a9a5364fda 100644 --- a/lib/ReactViews/Custom/Chart/PointOnMap.tsx +++ b/lib/ReactViews/Custom/Chart/PointOnMap.tsx @@ -44,7 +44,8 @@ export default class PointOnMap extends React.Component { } }); props.terria.addModel(pointItem); - props.terria.overlays.add(pointItem); + //It cause error when using ElevationChart. Why? + //props.terria.overlays.add(pointItem); this.pointItem = pointItem; } diff --git a/lib/ReactViews/Elevation/ElevationDownload.jsx b/lib/ReactViews/Elevation/ElevationDownload.jsx new file mode 100644 index 00000000000..ef27d407763 --- /dev/null +++ b/lib/ReactViews/Elevation/ElevationDownload.jsx @@ -0,0 +1,128 @@ +import React, { useState } from "react"; +import CesiumMath from "terriajs-cesium/Source/Core/Math"; +import Cartographic from "terriajs-cesium/Source/Core/Cartographic"; +import Entity from "terriajs-cesium/Source/DataSources/Entity"; +import EntityCollection from "terriajs-cesium/Source/DataSources/EntityCollection"; +import PolylineGraphics from "terriajs-cesium/Source/DataSources/PolylineGraphics"; +import exportKml from "terriajs-cesium/Source/DataSources/exportKml"; +import DataUri from "../../Core/DataUri"; +import Dropdown from "../Generic/Dropdown"; +import Icon from "../../Styled/Icon"; +import Styles from "./elevation-download.scss"; + +const ElevationDownload = props => { + const { data, name, ellipsoid } = props; + + const [kml, setKml] = useState(null); + + const getLinks = () => { + return [ + { + href: DataUri.make("csv", generateCsvData(data)), + download: `${name}.csv`, + label: "CSV" + }, + { + href: !!kml + ? DataUri.make( + "application/vnd.google-earth.kml+xml;charset=utf-8", + kml + ) + : false, + download: `${name}.kml`, + label: "KML" + }, + { + href: DataUri.make("json", generateJson(data)), + download: `${name}.json`, + label: "JSON" + } + ].filter(download => !!download.href); + }; + + const generateKml = async data => { + if (!!!data || !!!data.pathPoints) { + return; + } + const output = { + entities: new EntityCollection(), + kmz: false, + ellipsoid: ellipsoid + }; + output.entities.add( + new Entity({ + id: 0, + polyline: new PolylineGraphics({ + positions: data.pathPoints.map(elem => + Cartographic.toCartesian(elem, ellipsoid) + ) + }) + }) + ); + let res = await exportKml(output); + return res.kml; + }; + + const generateJson = data => { + if (!!!data || !!!data.pathPoints) { + return; + } + + return JSON.stringify({ + type: "LineString", + coordinates: data.pathPoints.map(elem => [ + CesiumMath.toDegrees(elem.longitude), + CesiumMath.toDegrees(elem.latitude), + Math.round(elem.height) + ]), + properties: data?.properties + }); + }; + + const generateCsvData = data => { + if (!!!data || !!!data.pathPoints) { + return; + } + const rows = [Object.keys(data.pathPoints[0]).join(",")]; + rows.push( + ...data.pathPoints.map(elem => + [ + CesiumMath.toDegrees(elem.longitude), + CesiumMath.toDegrees(elem.latitude), + Math.round(elem.height) + ].join(",") + ) + ); + return rows.join("\n"); + }; + + const icon = ( + + + + ); + + if (!!ellipsoid) { + generateKml(data).then(res => { + setKml(res); + }); + } + + return ( + + Download + + ); +}; + +export default ElevationDownload; diff --git a/lib/ReactViews/Elevation/ElevationPanel.jsx b/lib/ReactViews/Elevation/ElevationPanel.jsx new file mode 100644 index 00000000000..7558e07cbd9 --- /dev/null +++ b/lib/ReactViews/Elevation/ElevationPanel.jsx @@ -0,0 +1,256 @@ +"use strict"; + +import React from "react"; +import DragWrapper from "../DragWrapper"; +import Styles from "./elevation-panel.scss"; +import classNames from "classnames"; +import Icon, { StyledIcon } from "../../Styled/Icon"; +import { action, computed } from "mobx"; +import { observer } from "mobx-react"; +import ElevationDownload from "./ElevationDownload"; +import EllipsoidGeodesic from "terriajs-cesium/Source/Core/EllipsoidGeodesic"; +import CesiumMath from "terriajs-cesium/Source/Core/Math"; +import Button from "../../Styled/Button"; +import Box from "../../Styled/Box"; + +const ElevationPanel = observer(props => { + const { terria, viewState } = props; + + const panelClassName = classNames(Styles.panel, { + [Styles.isCollapsed]: viewState.elevationPanelIsCollapsed, + [Styles.isVisible]: viewState.elevationPanelIsVisible, + [Styles.isTranslucent]: viewState.explorerPanelIsVisible + }); + + const close = action(() => { + viewState.elevationPanelIsVisible = false; + + // give the close animation time to finish before unselecting, to avoid jumpiness + /*setTimeout( + action(() => { + terria.pickedFeatures = undefined; + terria.selectedFeature = undefined; + }), + 200 + );*/ + }); + + const toggleCollapsed = action(() => { + viewState.elevationPanelIsCollapsed = !viewState.elevationPanelIsCollapsed; + }); + + const toggleChart = action(() => { + viewState.elevationChartIsVisible = !viewState.elevationChartIsVisible; + }); + + const toggleLineClampToGround = action(() => { + viewState.clampMeasureLineToGround = !viewState.clampMeasureLineToGround; + }); + + const prettifyNumber = (number, squared) => { + if (typeof number == "undefined") { + return 0; + } + + if (number <= 0) { + return ""; + } + // Given a number representing a number in metres, make it human readable + let label = "m"; + if (squared) { + if (number > 999999) { + label = "km"; + number = number / 1000000.0; + } + } else { + if (number > 999) { + label = "km"; + number = number / 1000.0; + } + } + + number = number.toFixed(2); + // http://stackoverflow.com/questions/2901102/how-to-print-a-number-with-commas-as-thousands-separators-in-javascript + number = number.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ","); + let numberStr = number + " " + label; + if (squared) { + numberStr += "\u00B2"; + } + return numberStr; + }; + + const getBearing = () => { + if ( + !!!terria?.cesium?.scene?.globe?.ellipsoid || + !!!terria.pathPoints || + terria.pathPoints.length === 0 + ) { + return ""; + } + + const ellipsoid = terria.cesium.scene.globe.ellipsoid; + const start = terria.pathPoints[0]; + const end = terria.pathPoints[terria.pathPoints.length - 1]; + const geo = new EllipsoidGeodesic(start, end, ellipsoid); + const bearing = (CesiumMath.toDegrees(geo.startHeading) + 360) % 360; + + return `${bearing.toFixed(0)}°`; + }; + + const getHeightDifference = () => { + if (!!!terria.pathPoints || terria.pathPoints.length === 0) { + return ""; + } + + const start = terria.pathPoints[0]; + const end = terria.pathPoints[terria.pathPoints.length - 1]; + const difference = end.height - start.height; + + return `${difference.toFixed(0)}m`; + }; + + const heights = computed(() => { + return terria.pathPoints?.map(elem => elem.height) || []; + }); + + return ( + +
    +
    +
    + +
    + PERCORSO +
    +
    + +
    + +
    +
    + + + + + + + + + + + + + + + + + + + + + +
    Alt. minAlt. maxRottaDislivello
    {prettifyNumber(Math.min(...heights.get()))}{prettifyNumber(Math.max(...heights.get()))}{getBearing()}{getHeightDifference()}
    +
    +
    + Dettaglio tappe +
    + + + + + + + + + + + + {terria.pathPoints && + terria.pathPoints.map((point, idx) => { + const key = `${JSON.stringify( + terria.pathPoints[idx - 1] + )} ${JSON.stringify(point)}`; + return ( + + + + + + + + ); + })} + +
    #AltitudineDislivelloDistanzaDistanza 3D
    {idx + 1}{point.height.toFixed(0)} + {idx > 0 + ? ( + point.height - terria.pathPoints[idx - 1].height + ).toFixed(0) + : ""} + + {idx > 0 ? terria.pathDistances[idx].toFixed(2) : ""} + + {idx > 0 && key in terria.pathSampled + ? terria.pathSampled[key].totalDistance.toFixed(2) + : ""} +
    + {!!terria?.cesium?.scene?.globe?.ellipsoid && ( + + )} +
    +
    +
    + ); +}); + +export default ElevationPanel; diff --git a/lib/ReactViews/Elevation/elevation-download.scss b/lib/ReactViews/Elevation/elevation-download.scss new file mode 100644 index 00000000000..84df46f0f61 --- /dev/null +++ b/lib/ReactViews/Elevation/elevation-download.scss @@ -0,0 +1,56 @@ +@import "~terriajs-variables"; +@import "../../Sass/common/mixins"; + +.download { + float: right; + margin: 10px 1px; +} + +.btn { + composes: btn from "./elevation-panel.scss"; + composes: btn-primary from "../../Sass/common/_buttons.scss"; +} + +.icon--download { + // the default icon styling for a dropdown is for a btn--primary, so we have to make some adjustments + padding-right: 15px; + svg { + position: absolute; + top: 6px; + right: 5px; + height: 20px; + width: 20px; + fill: currentColor; + } +} + +.dropdown__list { + display: flex; + flex-direction: column; + li a { + // this makes sure the hover highlight fills the full width of the item + display: block; + padding-top: 0; + padding-bottom: 0; + width: 100%; + @if variable-exists(text-link) { + color: $text-link; + } + // Outside of a dropdown menu, links are normally shown with the same color on hover. + // So, to provide some highlighting on hover in a dropdown menu, use the visited link color, + // if it exists and is different from the unvisited link color. + &:hover { + @if variable-exists(text-visited-link) and + variable-exists(text-link) and + ($text-visited-link != $text-link) + { + color: $text-visited-link; + text-decoration: $link-text-decoration; + } + } + } +} + +.dropdown__button { + composes: btn--small from "../../Sass/common/_buttons.scss"; +} diff --git a/lib/ReactViews/Elevation/elevation-download.scss.d.ts b/lib/ReactViews/Elevation/elevation-download.scss.d.ts new file mode 100644 index 00000000000..f1b24ac15d2 --- /dev/null +++ b/lib/ReactViews/Elevation/elevation-download.scss.d.ts @@ -0,0 +1,14 @@ +// This file is automatically generated. +// Please do not change this file! +interface CssExports { + 'btn': string; + 'download': string; + 'dropdownButton': string; + 'dropdownList': string; + 'dropdown__button': string; + 'dropdown__list': string; + 'icon--download': string; + 'iconDownload': string; +} +declare var cssExports: CssExports; +export = cssExports; diff --git a/lib/ReactViews/Elevation/elevation-panel.scss b/lib/ReactViews/Elevation/elevation-panel.scss new file mode 100644 index 00000000000..cd9cc58cd25 --- /dev/null +++ b/lib/ReactViews/Elevation/elevation-panel.scss @@ -0,0 +1,161 @@ +@import "~terriajs-variables"; +@import "../../Sass/common/mixins"; + +.panel { + background: $feature-info-bg; + color: $feature-info-color; + border-radius: $radius-small; + display: none; + + svg { + fill: $feature-info-color; + } + + a { + @include link($feature-info-bg); + } +} + +.is-collapsed { + .body { + display: none; + } +} + +.is-visible { + display: block; +} + +.is-translucent { + opacity: 0.6; +} + +.header { + background: $feature-info-header-bg; + padding-right: $input-height; + line-height: $modal-header-height; +} + +.btnPanelHeading { + padding: 0px 8px; + color: $feature-info-btn-color; + width: 100%; +} + +.btn--download { + padding: 3px; + width: 27px; + margin-left: 3px; +} + +.btn--close-feature, +.btnToggleFeature { + composes: btn from "../../Sass/common/_buttons.scss"; + vertical-align: middle; + &:hover, + &:focus { + svg { + fill: $color-primary; + } + } + svg { + height: 10px; + width: 10px; + display: block; + fill: $feature-info-btn-color; + } +} + +.btn--close-feature { + position: absolute; + right: 8px; + top: 8px; + svg { + width: 15px; + height: 26px; + } +} + +.btnToggleFeature { + padding: $padding; +} + +.no-results { + composes: no-results from "../../Sass/common/_labels.scss"; +} + +.body { + composes: list-reset from "../../Sass/common/_base.scss"; + composes: scrollbars from "../../Sass/common/_base.scss"; + + overflow-y: auto; + overflow-x: auto; + max-height: calc(80vh - #{$padding * 2 + $btn-default-line-height}); + font-size: $font-size-feature-info; + + padding-bottom: 40px; +} + +.location { + margin: 10px; + display: flex; + align-items: center; + justify-content: space-between; +} + +.btn-location { + composes: btn from "../../Sass/common/_buttons.scss"; + vertical-align: bottom; + margin-left: 5px; + + &:hover { + svg { + fill: $color-primary; + } + } + svg { + height: 18px; + width: 18px; + fill: $feature-info-btn-color; + } +} + +.btn-location-selected { + composes: btn-location; + + svg { + fill: $color-primary; + } +} + +.elevation { + //font-family: Arial, Helvetica, sans-serif; + font-family: $font-feature-info; + border-collapse: collapse; + width: 100%; +} + +.elevation td, +.elevation th { + border: 1px solid #ddd; + padding: 8px; +} + +//.elevation tr:nth-child(even){background-color: #f2f2f2;} +.elevation tr:nth-child(odd) { + @if variable-exists(feature-info-table-odd-row-bg) { + background-color: $feature-info-table-odd-row-bg; + } +} + +.elevation tr:hover { + background-color: #aaa; +} + +.elevation th { + padding-top: 12px; + padding-bottom: 12px; + text-align: left; + //background-color: #04AA6D; + //color: white; +} diff --git a/lib/ReactViews/Elevation/elevation-panel.scss.d.ts b/lib/ReactViews/Elevation/elevation-panel.scss.d.ts new file mode 100644 index 00000000000..a855eac90ea --- /dev/null +++ b/lib/ReactViews/Elevation/elevation-panel.scss.d.ts @@ -0,0 +1,29 @@ +// This file is automatically generated. +// Please do not change this file! +interface CssExports { + 'body': string; + 'btn--close-feature': string; + 'btn--download': string; + 'btn-location': string; + 'btn-location-selected': string; + 'btnCloseFeature': string; + 'btnDownload': string; + 'btnLocation': string; + 'btnLocationSelected': string; + 'btnPanelHeading': string; + 'btnToggleFeature': string; + 'elevation': string; + 'header': string; + 'is-collapsed': string; + 'is-translucent': string; + 'is-visible': string; + 'isCollapsed': string; + 'isTranslucent': string; + 'isVisible': string; + 'location': string; + 'no-results': string; + 'noResults': string; + 'panel': string; +} +declare var cssExports: CssExports; +export = cssExports; diff --git a/lib/ReactViews/StandardUserInterface/StandardUserInterface.jsx b/lib/ReactViews/StandardUserInterface/StandardUserInterface.jsx index 37dc5aa0f81..c9390a7429f 100644 --- a/lib/ReactViews/StandardUserInterface/StandardUserInterface.jsx +++ b/lib/ReactViews/StandardUserInterface/StandardUserInterface.jsx @@ -44,6 +44,7 @@ import HelpPanel from "../Map/Panels/HelpPanel/HelpPanel"; import Tool from "../Tools/Tool"; import Disclaimer from "../Disclaimer"; import CollapsedNavigation from "../Map/Navigation/Items/OverflowNavigationItem"; +import ElevationPanel from "../Elevation/ElevationPanel"; export const showStoryPrompt = (viewState, terria) => { terria.configParameters.showFeaturePrompts && @@ -457,6 +458,10 @@ const StandardUserInterface = observer( terria={terria} viewState={this.props.viewState} /> +
    Date: Mon, 20 Dec 2021 11:32:44 +0100 Subject: [PATCH 021/215] Fix elev use in FeatureInfoPanel --- lib/ReactViews/FeatureInfo/FeatureInfoPanel.jsx | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/ReactViews/FeatureInfo/FeatureInfoPanel.jsx b/lib/ReactViews/FeatureInfo/FeatureInfoPanel.jsx index 3bf2c933c4b..c791a3e96a0 100644 --- a/lib/ReactViews/FeatureInfo/FeatureInfoPanel.jsx +++ b/lib/ReactViews/FeatureInfo/FeatureInfoPanel.jsx @@ -226,7 +226,7 @@ class FeatureInfoPanel extends React.Component { const that = this; if ( - this.props.terria.cesium && + !!this.props.terria.cesium && this.props.terria.cesium.scene.terrainProvider ) { sampleTerrainMostDetailed( @@ -235,7 +235,7 @@ class FeatureInfoPanel extends React.Component { ).then(function(newPositions) { that.setState({ elev: Math.round(newPositions[0].height) }); }); - } else { + } else if (typeof this.state.elev !== "undefined") { this.setState({ elev: undefined }); } @@ -249,7 +249,7 @@ class FeatureInfoPanel extends React.Component { return (
    - +
    Altitudine {this.state.elev} m s.l.m. From a8c25f31bd74b90ae0d90dde6cc4c3d4723793ee Mon Sep 17 00:00:00 2001 From: glughi Date: Tue, 21 Dec 2021 16:27:19 +0100 Subject: [PATCH 022/215] Fix BingMapSearchProvider zoom to location --- .../SearchProviders/BingMapsSearchProvider.ts | 27 +++++++++++++++---- 1 file changed, 22 insertions(+), 5 deletions(-) diff --git a/lib/Models/SearchProviders/BingMapsSearchProvider.ts b/lib/Models/SearchProviders/BingMapsSearchProvider.ts index 7088d23aed7..38e38bb5ee7 100644 --- a/lib/Models/SearchProviders/BingMapsSearchProvider.ts +++ b/lib/Models/SearchProviders/BingMapsSearchProvider.ts @@ -15,6 +15,7 @@ import { Category, SearchAction } from "../../Core/AnalyticEvents/analyticEvents"; +import { Cartographic, EllipsoidGeodesic } from "terriajs-cesium"; interface BingMapsSearchProviderOptions { terria: Terria; @@ -43,10 +44,7 @@ export default class BingMapsSearchProvider extends SearchProvider { this.url += "/"; } this.key = options.key; - this.flightDurationSeconds = defaultValue( - options.flightDurationSeconds, - 1.5 - ); + this.flightDurationSeconds = defaultValue(options.flightDurationSeconds, 3); this.primaryCountry = defaultValue(options.primaryCountry, "Italy"); this.culture = defaultValue(options.culture, "it"); @@ -200,7 +198,26 @@ export default class BingMapsSearchProvider extends SearchProvider { function createZoomToFunction(model: BingMapsSearchProvider, resource: any) { const [south, west, north, east] = resource.bbox; - const rectangle = Rectangle.fromDegrees(west, south, east, north); + //const rectangle = Rectangle.fromDegrees(west, south, east, north); + + const epsilon = 10e-5; + + let westSouth = Cartographic.fromDegrees(parseFloat(west), parseFloat(south)); + let eastNorth = Cartographic.fromDegrees(parseFloat(east), parseFloat(north)); + + const distance = new EllipsoidGeodesic(westSouth, eastNorth).surfaceDistance; + if (distance < 50) { + westSouth = new Cartographic( + westSouth.longitude - epsilon, + westSouth.latitude - epsilon + ); + eastNorth = new Cartographic( + eastNorth.longitude + epsilon, + eastNorth.latitude + epsilon + ); + } + + const rectangle = Rectangle.fromCartographicArray([westSouth, eastNorth]); return function() { const terria = model.terria; From da9411a8c553abe3f4bbd9500866770689c1c37e Mon Sep 17 00:00:00 2001 From: glughi Date: Tue, 21 Dec 2021 17:05:26 +0100 Subject: [PATCH 023/215] Add RerSearchProvider --- .../SearchProviders/RerSearchProvider.ts | 234 ++++++++++++++++++ 1 file changed, 234 insertions(+) create mode 100644 lib/Models/SearchProviders/RerSearchProvider.ts diff --git a/lib/Models/SearchProviders/RerSearchProvider.ts b/lib/Models/SearchProviders/RerSearchProvider.ts new file mode 100644 index 00000000000..900248a69a1 --- /dev/null +++ b/lib/Models/SearchProviders/RerSearchProvider.ts @@ -0,0 +1,234 @@ +import { observable, runInAction } from "mobx"; +import defaultValue from "terriajs-cesium/Source/Core/defaultValue"; +import defined from "terriajs-cesium/Source/Core/defined"; +import Ellipsoid from "terriajs-cesium/Source/Core/Ellipsoid"; +import CesiumMath from "terriajs-cesium/Source/Core/Math"; +import Rectangle from "terriajs-cesium/Source/Core/Rectangle"; +import Resource from "terriajs-cesium/Source/Core/Resource"; +import loadJsonp from "../../Core/loadJsonp"; +import SearchProvider from "./SearchProvider"; +import SearchResult from "./SearchResult"; +import Terria from "../Terria"; +import SearchProviderResults from "./SearchProviderResults"; +import i18next from "i18next"; +import { + Category, + SearchAction +} from "../../Core/AnalyticEvents/analyticEvents"; + +interface RerSearchProviderOptions { + terria: Terria; + flightDurationSeconds?: number; +} + +export default class RerSearchProvider extends SearchProvider { + readonly terria: Terria; + @observable flightDurationSeconds: number; + @observable urlHandle: string; + @observable urlAddress: string; + @observable bodyHandle: string; + @observable bodyAddressTemplate: string; + @observable handle: string; + + constructor(options: RerSearchProviderOptions) { + super(); + + this.terria = options.terria; + this.name = "RER"; + + /*if (this.url.length > 0 && this.url[this.url.length - 1] !== "/") { + this.url += "/"; + }*/ + this.flightDurationSeconds = defaultValue(options.flightDurationSeconds, 3); + + this.urlHandle = this.terria.corsProxy.getURL( + "https://servizigis.regione.emilia-romagna.it/normalizzatore/eGeoCoding?serviceType=DBServices&serviceName=Normalizzatore&message=GetHandle" + ); + this.urlAddress = this.terria.corsProxy.getURL( + "https://servizigis.regione.emilia-romagna.it/normalizzatore/eGeoCoding?serviceType=DBServices&serviceName=Normalizzatore&message=Norm_Indirizzo_Unico" + ); + this.bodyHandle = JSON.stringify({ + GetHandleInputParams: { + p_Username: "commercio", + p_Userpassword: "MAy64T7cc76ASn3CaJX8" + } + }); + this.bodyAddressTemplate = JSON.stringify({ + Norm_Indirizzo_UnicoInputParams: { + p_Indirizzo: "$1", + p_Tipo_Coord: "WGS84", + p_Rif_Geo_Civ: "ECIV", + p_Handle: "$2" + } + }); + this.handle = ""; + } + + getHandle(searchResults: SearchProviderResults): Promise | undefined { + var that = this; + + return Resource.post({ + url: this.urlHandle, + data: this.bodyHandle, + headers: { + soapAction: this.urlHandle, + "Content-Type": "application/json" + } + }) + ?.then(results => { + that.handle = JSON.parse( + results + ).getHandleOutput.getHandleOutputParams.p_Handle; + }) + .catch(() => { + searchResults.message = i18next.t("viewModels.searchErrorOccurred"); + }); + } + + protected async doSearch( + searchText: string, + searchResults: SearchProviderResults + ): Promise { + searchResults.results.length = 0; + searchResults.message = undefined; + + if (searchText === undefined || /^\s*$/.test(searchText)) { + return Promise.resolve(); + } + + this.terria.analytics?.logEvent( + Category.search, + SearchAction.bing, + searchText + ); + + //let promise: Promise | undefined = Promise.resolve(); + let promise: Promise; + + if (!!!this.handle) { + //promise = promise.then(() => this.getHandle(searchResults)); + await this.getHandle(searchResults); + } + + await Resource.post({ + url: this.urlAddress, + data: this.bodyAddressTemplate + .replace("$1", searchText) + .replace("$2", this.handle), + headers: { + soapAction: this.urlAddress, + "Content-Type": "application/json" + } + }) + ?.then(result => { + const resObj = JSON.parse(result); + + if (searchResults.isCanceled) { + // A new search has superseded this one, so ignore the result. + return; + } + + if ( + resObj.norm_Indirizzo_UnicoOutput + .norm_Indirizzo_UnicoOutputRecordsetArray.length === 0 + ) { + searchResults.message = i18next.t("viewModels.searchNoLocations"); + return; + } + + const idSet = new Set(); + const locations: any[] = []; + + resObj.norm_Indirizzo_UnicoOutput.norm_Indirizzo_UnicoOutputRecordsetArray.forEach( + (element: { + sTRADARIO_ID: string; + cIVICO_X: string; + cENTR_X: string; + cIVICO_Y: string; + cENTR_Y: string; + dUG: string; + dENOMINAZIONE: string; + dESCRIZIONE_CIVICO: string; + cOMUNE: string; + pROVINCIA: string; + gR_AFFIDABILITA: string; + }) => { + if (!idSet.has(element.sTRADARIO_ID)) { + const isHouseNumber = element.cIVICO_X !== ""; + const centerX = parseFloat( + isHouseNumber ? element.cIVICO_X : element.cENTR_X + ); + const centerY = parseFloat( + isHouseNumber ? element.cIVICO_Y : element.cENTR_Y + ); + locations.push( + new SearchResult({ + name: + element.dUG + + " " + + element.dENOMINAZIONE + + (isHouseNumber ? " " + element.dESCRIZIONE_CIVICO : "") + + ", " + + element.cOMUNE + + ", " + + element.pROVINCIA, + isImportant: parseFloat(element.gR_AFFIDABILITA) < 1, + location: { + latitude: centerY, + longitude: centerX + }, + clickAction: createZoomToFunction( + this, + centerX, + centerY, + isHouseNumber + ) + }) + ); + idSet.add(element.sTRADARIO_ID); + } + } + ); + + runInAction(() => { + searchResults.results.push(...locations); + }); + + if (searchResults.results.length === 0) { + searchResults.message = i18next.t("viewModels.searchNoLocations"); + } + }) + .catch(err => { + console.log("ERRORERRR"); + console.log(typeof err); + console.log(err); + + if (searchResults.isCanceled) { + // A new search has superseded this one, so ignore the result. + return; + } + searchResults.message = i18next.t("viewModels.searchErrorOccurred"); + }); + } +} + +function createZoomToFunction( + model: RerSearchProvider, + centerX: number, + centerY: number, + isHouseNumber: boolean +) { + // Avoids the bbox is too small and camera too close to the ground + const delta = isHouseNumber ? 0.0025 : 0.005; + const rectangle = Rectangle.fromDegrees( + centerX - delta, + centerY - delta, + centerX + delta, + centerY + delta + ); + + return function() { + const terria = model.terria; + terria.currentViewer.zoomTo(rectangle, model.flightDurationSeconds); + }; +} From 02a5f17518bba3f299e1af4ae0dcd18b2bd8af7a Mon Sep 17 00:00:00 2001 From: glughi Date: Tue, 21 Dec 2021 17:05:41 +0100 Subject: [PATCH 024/215] Add NominatimSearchProvider --- .../NominatimSearchProvider.ts | 239 ++++++++++++++++++ 1 file changed, 239 insertions(+) create mode 100644 lib/Models/SearchProviders/NominatimSearchProvider.ts diff --git a/lib/Models/SearchProviders/NominatimSearchProvider.ts b/lib/Models/SearchProviders/NominatimSearchProvider.ts new file mode 100644 index 00000000000..b8a091985f4 --- /dev/null +++ b/lib/Models/SearchProviders/NominatimSearchProvider.ts @@ -0,0 +1,239 @@ +import { observable, runInAction } from "mobx"; +import defaultValue from "terriajs-cesium/Source/Core/defaultValue"; +//import defined from "terriajs-cesium/Source/Core/defined"; +import Ellipsoid from "terriajs-cesium/Source/Core/Ellipsoid"; +import CesiumMath from "terriajs-cesium/Source/Core/Math"; +import Rectangle from "terriajs-cesium/Source/Core/Rectangle"; +import Resource from "terriajs-cesium/Source/Core/Resource"; +import Cartesian2 from "terriajs-cesium/Source/Core/Cartesian2"; +import EllipsoidGeodesic from "terriajs-cesium/Source/Core/EllipsoidGeodesic"; +import loadJsonp from "../../Core/loadJsonp"; +import loadJson from "../../Core/loadJson"; +import SearchProvider from "./SearchProvider"; +import SearchResult from "./SearchResult"; +import Terria from "../Terria"; +import SearchProviderResults from "./SearchProviderResults"; +import i18next from "i18next"; +import { + Category, + SearchAction +} from "../../Core/AnalyticEvents/analyticEvents"; +import Cartographic from "terriajs-cesium/Source/Core/Cartographic"; + +interface NominatimSearchProviderOptions { + terria: Terria; + url?: string; + key?: string; + flightDurationSeconds?: number; + limitBounded?: number; + limitOthers?: number; + countryCodes?: string; +} + +export default class NominatimSearchProvider extends SearchProvider { + readonly terria: Terria; + @observable url: string; + @observable key: string | undefined; + @observable flightDurationSeconds: number; + @observable limitBounded: number; + @observable limitOthers: number; + @observable countryCodes: string; + + constructor(options: NominatimSearchProviderOptions) { + super(); + + this.terria = options.terria; + this.name = "Nominatim"; + this.url = defaultValue(options.url, "//nominatim.openstreetmap.org/"); + if (this.url.length > 0 && this.url[this.url.length - 1] !== "/") { + this.url += "/"; + } + this.key = options.key; + this.flightDurationSeconds = defaultValue(options.flightDurationSeconds, 3); + this.limitBounded = 2; + this.limitOthers = 2; + this.countryCodes = `&countrycodes=${defaultValue( + options.countryCodes, + "it" + )}`; + + if (!this.key) { + console.warn( + "The " + + this.name + + " geocoder will always return no results because a Bing Maps key has not been provided. Please get a Bing Maps key from Nominatimportal.com and add it to parameters.NominatimKey in config.json." + ); + } + } + + protected doSearch( + searchText: string, + searchResults: SearchProviderResults + ): Promise { + searchResults.results.length = 0; + searchResults.message = undefined; + + if (searchText === undefined || /^\s*$/.test(searchText)) { + return Promise.resolve(); + } + + this.terria.analytics?.logEvent( + Category.search, + SearchAction.bing, + searchText + ); + + var bboxStr = ""; + + if (!!this.terria.cesium) { + const scene = this.terria?.cesium?.scene; + const camera = scene?.camera; + const canvas = scene?.canvas; + if (!!!camera || !!!canvas) { + return Promise.resolve(); + } + + const posUL2d = camera.pickEllipsoid( + new Cartesian2(0, 0), + Ellipsoid.WGS84 + ); + const posLR2d = camera.pickEllipsoid( + new Cartesian2(canvas.width, canvas.height), + Ellipsoid.WGS84 + ); + if (!!posUL2d && !!posLR2d) { + const posUL = Ellipsoid.WGS84.cartesianToCartographic(posUL2d); + const posLR = Ellipsoid.WGS84.cartesianToCartographic(posLR2d); + bboxStr = + "&viewbox=" + + CesiumMath.toDegrees(posUL.longitude) + + "," + + CesiumMath.toDegrees(posUL.latitude) + + "," + + CesiumMath.toDegrees(posLR.longitude) + + "," + + CesiumMath.toDegrees(posLR.latitude); + } else { + bboxStr = ""; + } + } else if (!!this.terria.leaflet) { + var bbox = this.terria.leaflet.map.getBounds(); + bboxStr = + "&viewbox=" + + bbox.getWest() + + "," + + bbox.getNorth() + + "," + + bbox.getEast() + + "," + + bbox.getSouth(); + } + var promiseBounded = loadJson( + this.url + + "search?q=" + + searchText + + bboxStr + + "&bounded=1&format=json" + + this.countryCodes + + "&limit=" + + this.limitBounded + ); + var promiseOthers = loadJson( + this.url + + "search?q=" + + searchText + + "&format=json" + + this.countryCodes + + "&limit=" + + this.limitOthers + ); + + return Promise.all([promiseBounded, promiseOthers]) + .then(result => { + if (searchResults.isCanceled) { + // A new search has superseded this one, so ignore the result. + return; + } + + if (!!!result || (result[0].length === 0 && result[1].length === 0)) { + searchResults.message = i18next.t("viewModels.searchNoLocations"); + return; + } + + const idSet = new Set(); + const locations: any[] = []; + + for (let i = 0; i < result.length; ++i) { + for (let j = 0; j < result[i].length; ++j) { + const resource = result[i][j]; + + const name = resource.display_name; + if (!!!name) { + continue; + } + + if (!idSet.has(resource.place_id)) { + locations.push( + new SearchResult({ + name: name, + isImportant: false, + clickAction: createZoomToFunction(this, resource), + location: { + latitude: parseFloat(resource.lat), + longitude: parseFloat(resource.lon) + } + }) + ); + idSet.add(resource.place_id); + } + } + } + + runInAction(() => { + searchResults.results.push(...locations); + }); + + if (searchResults.results.length === 0) { + searchResults.message = i18next.t("viewModels.searchNoLocations"); + } + }) + .catch(err => { + if (searchResults.isCanceled) { + // A new search has superseded this one, so ignore the result. + return; + } else { + console.log(`Error in NominatimSearchProvider: ${err}`); + } + + searchResults.message = i18next.t("viewModels.searchErrorOccurred"); + }); + } +} + +function createZoomToFunction(model: NominatimSearchProvider, resource: any) { + const [south, north, west, east] = resource.boundingbox; + + const epsilon = 10e-5; + + let westSouth = Cartographic.fromDegrees(parseFloat(west), parseFloat(south)); + let eastNorth = Cartographic.fromDegrees(parseFloat(east), parseFloat(north)); + + const distance = new EllipsoidGeodesic(westSouth, eastNorth).surfaceDistance; + if (distance < 50) { + westSouth = new Cartographic( + westSouth.longitude - epsilon, + westSouth.latitude - epsilon + ); + eastNorth = new Cartographic( + eastNorth.longitude + epsilon, + eastNorth.latitude + epsilon + ); + } + + const rectangle = Rectangle.fromCartographicArray([westSouth, eastNorth]); + + return function() { + const terria = model.terria; + terria.currentViewer.zoomTo(rectangle, model.flightDurationSeconds); + }; +} From 96d732eed4b5646481da224e58bc5f79636eb12f Mon Sep 17 00:00:00 2001 From: glughi Date: Tue, 21 Dec 2021 17:05:53 +0100 Subject: [PATCH 025/215] Fix translation warning --- lib/ReactViews/Search/SearchBoxAndResults.jsx | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/ReactViews/Search/SearchBoxAndResults.jsx b/lib/ReactViews/Search/SearchBoxAndResults.jsx index d3d002dc2a5..af34ec58857 100644 --- a/lib/ReactViews/Search/SearchBoxAndResults.jsx +++ b/lib/ReactViews/Search/SearchBoxAndResults.jsx @@ -42,7 +42,8 @@ export function SearchInDataCatalog({ viewState, handleClick }) { i18nKey="search.searchInDataCatalog" locationSearchText={locationSearchText} > - Search {locationSearchText} in the Data Catalogue + Search {{ locationSearchText }} in the Data + Catalogue From e3d72a07689a0f5d5ff641db3d8cc4b79c3619cb Mon Sep 17 00:00:00 2001 From: glughi Date: Wed, 22 Dec 2021 11:57:01 +0100 Subject: [PATCH 026/215] Fix zoom to location --- lib/Models/Cesium.ts | 4 +++- lib/Models/SearchProviders/BingMapsSearchProvider.ts | 12 ++++++++---- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/lib/Models/Cesium.ts b/lib/Models/Cesium.ts index 21a3d772dc1..be37f18dbe5 100644 --- a/lib/Models/Cesium.ts +++ b/lib/Models/Cesium.ts @@ -646,7 +646,7 @@ export default class Cesium extends GlobeOrMap { ); const terrainProvider = this.scene.globe.terrainProvider; // A sufficiently coarse tile level that still has approximately accurate height - const level = 6; + const level = 9; const center = Rectangle.center(target); // Perform an elevation query at the centre of the rectangle @@ -656,6 +656,8 @@ export default class Cesium extends GlobeOrMap { sampleTerrain(terrainProvider, level, [center]) ); } catch { + console.log("FALLITOOOO"); + // if the request fails just use center with height=0 terrainSample = center; } diff --git a/lib/Models/SearchProviders/BingMapsSearchProvider.ts b/lib/Models/SearchProviders/BingMapsSearchProvider.ts index 38e38bb5ee7..159179a0d42 100644 --- a/lib/Models/SearchProviders/BingMapsSearchProvider.ts +++ b/lib/Models/SearchProviders/BingMapsSearchProvider.ts @@ -38,7 +38,8 @@ export default class BingMapsSearchProvider extends SearchProvider { super(); this.terria = options.terria; - this.name = i18next.t("viewModels.searchLocations"); + // this.name = i18next.t("viewModels.searchLocations"); + this.name = "Bing"; this.url = defaultValue(options.url, "https://dev.virtualearth.net/"); if (this.url.length > 0 && this.url[this.url.length - 1] !== "/") { this.url += "/"; @@ -200,12 +201,15 @@ function createZoomToFunction(model: BingMapsSearchProvider, resource: any) { const [south, west, north, east] = resource.bbox; //const rectangle = Rectangle.fromDegrees(west, south, east, north); - const epsilon = 10e-5; + // const epsilon = 10e-5; let westSouth = Cartographic.fromDegrees(parseFloat(west), parseFloat(south)); let eastNorth = Cartographic.fromDegrees(parseFloat(east), parseFloat(north)); - const distance = new EllipsoidGeodesic(westSouth, eastNorth).surfaceDistance; + /* const distance = new EllipsoidGeodesic(westSouth, eastNorth).surfaceDistance; + + console.log(distance); + if (distance < 50) { westSouth = new Cartographic( westSouth.longitude - epsilon, @@ -215,7 +219,7 @@ function createZoomToFunction(model: BingMapsSearchProvider, resource: any) { eastNorth.longitude + epsilon, eastNorth.latitude + epsilon ); - } + } */ const rectangle = Rectangle.fromCartographicArray([westSouth, eastNorth]); From 27ccfa40a1d8b1017a359e7fcf257a1b79472f88 Mon Sep 17 00:00:00 2001 From: glughi Date: Wed, 22 Dec 2021 11:58:02 +0100 Subject: [PATCH 027/215] Fix ESlint errors and warnings --- .../Custom/Chart/ElevationChartPanel.jsx | 7 ++- .../Elevation/ElevationDownload.jsx | 19 +++++--- lib/ReactViews/Elevation/ElevationPanel.jsx | 17 ++----- .../FeatureInfo/FeatureInfoPanel.jsx | 2 +- .../Map/Panels/CoordsPanel/CoordsPanel.jsx | 48 +++++++++++++++---- 5 files changed, 59 insertions(+), 34 deletions(-) diff --git a/lib/ReactViews/Custom/Chart/ElevationChartPanel.jsx b/lib/ReactViews/Custom/Chart/ElevationChartPanel.jsx index 76bd42cbd87..8aaa29223f3 100644 --- a/lib/ReactViews/Custom/Chart/ElevationChartPanel.jsx +++ b/lib/ReactViews/Custom/Chart/ElevationChartPanel.jsx @@ -4,7 +4,6 @@ import { values } from "mobx"; import { observer } from "mobx-react"; import PropTypes from "prop-types"; import React from "react"; -//import { withTranslation } from "react-i18next"; import defined from "terriajs-cesium/Source/Core/defined"; import Icon from "../../../Styled/Icon"; import Chart from "./BottomDockChart"; @@ -42,7 +41,7 @@ class ElevationChartPanel extends React.Component { !!this.props.terria?.pathPoints && this.props.terria.pathPoints.slice().length > 0 ) { - /*const pointItem = new GeoJsonCatalogItem(createGuid(), this.props.terria); + /* const pointItem = new GeoJsonCatalogItem(createGuid(), this.props.terria); pointItem.setTrait( CommonStrata.user, "style", @@ -68,7 +67,7 @@ class ElevationChartPanel extends React.Component { pointItem.setTrait(CommonStrata.user, "isOpen", true); pointItem.setTrait(CommonStrata.underride, "name", "marco"); this.props.terria.addModel(pointItem); - this.props.terria.overlays.add(pointItem);*/ + this.props.terria.overlays.add(pointItem); */ const pathDistances = this.props.terria.pathDistances.slice(); const y = this.props.terria.pathPoints @@ -86,7 +85,7 @@ class ElevationChartPanel extends React.Component { .toFixed(2), y: h })), - //"pointOnMap": points.map(p => ({ "latitude": p.latitude, "longitude": p.longitude })), + // "pointOnMap": points.map(p => ({ "latitude": p.latitude, "longitude": p.longitude })), key: "path", type: "lineAndPoint", glyphStyle: "circle", diff --git a/lib/ReactViews/Elevation/ElevationDownload.jsx b/lib/ReactViews/Elevation/ElevationDownload.jsx index ef27d407763..a1c44d8367f 100644 --- a/lib/ReactViews/Elevation/ElevationDownload.jsx +++ b/lib/ReactViews/Elevation/ElevationDownload.jsx @@ -9,6 +9,7 @@ import DataUri from "../../Core/DataUri"; import Dropdown from "../Generic/Dropdown"; import Icon from "../../Styled/Icon"; import Styles from "./elevation-download.scss"; +import PropTypes from "prop-types"; const ElevationDownload = props => { const { data, name, ellipsoid } = props; @@ -23,7 +24,7 @@ const ElevationDownload = props => { label: "CSV" }, { - href: !!kml + href: kml ? DataUri.make( "application/vnd.google-earth.kml+xml;charset=utf-8", kml @@ -41,7 +42,7 @@ const ElevationDownload = props => { }; const generateKml = async data => { - if (!!!data || !!!data.pathPoints) { + if (!data || !data.pathPoints) { return; } const output = { @@ -59,12 +60,12 @@ const ElevationDownload = props => { }) }) ); - let res = await exportKml(output); + const res = await exportKml(output); return res.kml; }; const generateJson = data => { - if (!!!data || !!!data.pathPoints) { + if (!data || !data.pathPoints) { return; } @@ -80,7 +81,7 @@ const ElevationDownload = props => { }; const generateCsvData = data => { - if (!!!data || !!!data.pathPoints) { + if (!data || !data.pathPoints) { return; } const rows = [Object.keys(data.pathPoints[0]).join(",")]; @@ -102,7 +103,7 @@ const ElevationDownload = props => { ); - if (!!ellipsoid) { + if (ellipsoid) { generateKml(data).then(res => { setKml(res); }); @@ -125,4 +126,10 @@ const ElevationDownload = props => { ); }; +ElevationDownload.propTypes = { + data: PropTypes.object, + name: PropTypes.string, + ellipsoid: PropTypes.object +}; + export default ElevationDownload; diff --git a/lib/ReactViews/Elevation/ElevationPanel.jsx b/lib/ReactViews/Elevation/ElevationPanel.jsx index 7558e07cbd9..0098146f647 100644 --- a/lib/ReactViews/Elevation/ElevationPanel.jsx +++ b/lib/ReactViews/Elevation/ElevationPanel.jsx @@ -24,15 +24,6 @@ const ElevationPanel = observer(props => { const close = action(() => { viewState.elevationPanelIsVisible = false; - - // give the close animation time to finish before unselecting, to avoid jumpiness - /*setTimeout( - action(() => { - terria.pickedFeatures = undefined; - terria.selectedFeature = undefined; - }), - 200 - );*/ }); const toggleCollapsed = action(() => { @@ -48,7 +39,7 @@ const ElevationPanel = observer(props => { }); const prettifyNumber = (number, squared) => { - if (typeof number == "undefined") { + if (typeof number === "undefined") { return 0; } @@ -81,8 +72,8 @@ const ElevationPanel = observer(props => { const getBearing = () => { if ( - !!!terria?.cesium?.scene?.globe?.ellipsoid || - !!!terria.pathPoints || + !terria?.cesium?.scene?.globe?.ellipsoid || + !terria.pathPoints || terria.pathPoints.length === 0 ) { return ""; @@ -98,7 +89,7 @@ const ElevationPanel = observer(props => { }; const getHeightDifference = () => { - if (!!!terria.pathPoints || terria.pathPoints.length === 0) { + if (!terria.pathPoints || terria.pathPoints.length === 0) { return ""; } diff --git a/lib/ReactViews/FeatureInfo/FeatureInfoPanel.jsx b/lib/ReactViews/FeatureInfo/FeatureInfoPanel.jsx index c791a3e96a0..f33bb6a8de0 100644 --- a/lib/ReactViews/FeatureInfo/FeatureInfoPanel.jsx +++ b/lib/ReactViews/FeatureInfo/FeatureInfoPanel.jsx @@ -348,7 +348,7 @@ class FeatureInfoPanel extends React.Component { } // Store position in Terria state - if (!!position) { + if (position) { terria.pickedPosition = position; } diff --git a/lib/ReactViews/Map/Panels/CoordsPanel/CoordsPanel.jsx b/lib/ReactViews/Map/Panels/CoordsPanel/CoordsPanel.jsx index 675782fee89..6ebb281ac26 100644 --- a/lib/ReactViews/Map/Panels/CoordsPanel/CoordsPanel.jsx +++ b/lib/ReactViews/Map/Panels/CoordsPanel/CoordsPanel.jsx @@ -3,13 +3,13 @@ import classNames from "classnames"; import React, { useState, useEffect } from "react"; import Icon, { StyledIcon } from "../../../../Styled/Icon"; -//import Loader from "../../../Loader"; +// import Loader from "../../../Loader"; import MenuPanel from "../../../StandardUserInterface/customizable/MenuPanel"; import Input from "../../../Styled/Input/Input.jsx"; import DropdownStyles from "../panel.scss"; import Styles from "./coords-panel.scss"; -import clipboard from "clipboard"; +// import clipboard from "clipboard"; import Box from "../../../../Styled/Box"; import Button from "../../../../Styled/Button"; import Select from "../../../../Styled/Select"; @@ -17,6 +17,7 @@ import CesiumResource from "terriajs-cesium/Source/Core/Resource"; import createZoomToFunction from "../../../../Map/zoomRectangleFromPoint"; import Ellipsoid from "terriajs-cesium/Source/Core/Ellipsoid"; import CesiumMath from "terriajs-cesium/Source/Core/Math"; +import PropTypes from "prop-types"; const CoordsText = props => { const { @@ -31,7 +32,7 @@ const CoordsText = props => { readonly } = props; - const clipboardBtn = new clipboard(`.btn-copy-${name}`); + // const clipboardBtn = new clipboard(`.btn-copy-${name}`); return (
    @@ -49,8 +50,8 @@ const CoordsText = props => { type="text" value={value} readOnly={readonly ?? false} - //placeholder={this.state.placeholder} - //onClick={e => setValue(e)} + // placeholder={this.state.placeholder} + // onClick={e => setValue(e)} onChange={e => setValue(e.target.value)} id={name} /> @@ -97,7 +98,6 @@ const CoordsText = props => { const SrsSelection = props => { const { - name, title, tooltip, isCartographic, @@ -448,7 +448,6 @@ const CoordsPanel = props => { tooltip="Se la finestra 'Informazioni' è aperta le coordinate sono lette da lì e non sono modificabili" /> {
    { modalWidth={modalWidth} smallScreen={viewState.useSmallScreenInterface} onDismissed={() => { - if (true) viewState.shareModalIsVisible = false; + viewState.shareModalIsVisible = false; }} onUserClick={onUserClick} > @@ -575,5 +574,34 @@ const CoordsPanel = props => { ); }; -//export default withTranslation()(CoordsPanel); +CoordsText.propTypes = { + name: PropTypes.string, + title: PropTypes.string, + message: PropTypes.string, + tooltip: PropTypes.string, + value: PropTypes.string, + setValue: PropTypes.func, + isCartographic: PropTypes.bool, + moveTo: PropTypes.func, + readonly: PropTypes.bool +}; + +SrsSelection.propTypes = { + title: PropTypes.string, + tooltip: PropTypes.string, + isCartographic: PropTypes.bool, + setSrs: PropTypes.func, + reset: PropTypes.func, + convert: PropTypes.func, + conversionList: PropTypes.array +}; + +CoordsPanel.propTypes = { + terria: PropTypes.object.isRequired, + viewState: PropTypes.object.isRequired, + modalWidth: PropTypes.number, + onUserClick: PropTypes.func +}; + +// export default withTranslation()(CoordsPanel); export default CoordsPanel; From c666b11d9f287da18a3948e0b0c98f58f7a17fce Mon Sep 17 00:00:00 2001 From: glughi Date: Wed, 22 Dec 2021 16:45:47 +0100 Subject: [PATCH 028/215] Increase Leaflet max zoom level from 18 to 21 --- lib/Models/Leaflet.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/Models/Leaflet.ts b/lib/Models/Leaflet.ts index 091634af0d7..a60dc7ceb73 100644 --- a/lib/Models/Leaflet.ts +++ b/lib/Models/Leaflet.ts @@ -103,6 +103,7 @@ export default class Leaflet extends GlobeOrMap { clippingRectangle: Rectangle | undefined ) => GridLayer = computedFn((ip, clippingRectangle) => { const layerOptions = { + maxZoom: 21, bounds: clippingRectangle && rectangleToLatLngBounds(clippingRectangle) }; // We have two different kinds of ImageryProviderLeaflet layers From b3e7a7f6eb5073dc91a2745efa9770beb388b01f Mon Sep 17 00:00:00 2001 From: glughi Date: Mon, 10 Jan 2022 15:24:35 +0100 Subject: [PATCH 029/215] Add MeasurableTraits --- lib/ModelMixins/MeasurableMixin.ts | 64 +++++++++++++++++++ .../Catalog/CatalogItems/KmlCatalogItem.ts | 13 +++- .../Workbench/Controls/ViewingControls.jsx | 21 ++++++ .../TraitsClasses/KmlCatalogItemTraits.ts | 2 + lib/Traits/TraitsClasses/MeasurableTraits.ts | 5 ++ 5 files changed, 103 insertions(+), 2 deletions(-) create mode 100644 lib/ModelMixins/MeasurableMixin.ts create mode 100644 lib/Traits/TraitsClasses/MeasurableTraits.ts diff --git a/lib/ModelMixins/MeasurableMixin.ts b/lib/ModelMixins/MeasurableMixin.ts new file mode 100644 index 00000000000..01afd9d6172 --- /dev/null +++ b/lib/ModelMixins/MeasurableMixin.ts @@ -0,0 +1,64 @@ +import { computed } from "mobx"; +import JulianDate from "terriajs-cesium/Source/Core/JulianDate"; +import Constructor from "../Core/Constructor"; +import Model from "../Models/Definition/Model"; +import { SelectableDimensionSelect } from "../Models/SelectableDimensions"; +import StratumOrder from "../Models/Definition/StratumOrder"; +import MeasurableTraits from "../Traits/TraitsClasses/MeasurableTraits"; + +type MixinModel = Model; + +function MeasurableMixin>(Base: T) { + abstract class MeasurableMixin extends Base { + //abstract get styleSelectableDimensions(): + // | SelectableDimensionSelect[] + // | undefined; + + get hasMeasurableMixin() { + return true; + } + + abstract get canUseAsPath(): boolean; + + abstract get asPath(): object[]; + + /*abstract get canDiffImages(): boolean; + + abstract showDiffImage( + firstDate: JulianDate, + secondDate: JulianDate, + diffStyleId: string + ): void; + + abstract clearDiffImage(): void; + + abstract getLegendUrlForStyle( + diffStyleId: string, + firstDate?: JulianDate, + secondDate?: JulianDate + ): string; + + @computed + get canFilterTimeByFeature() { + // Hides the SatelliteImageryTimeFilterSection for the item if it is + // currently showing difference image + return super.canFilterTimeByFeature && !this.isShowingDiff; + }*/ + } + + return MeasurableMixin; +} + +namespace MeasurableMixin { + export interface Instance + extends InstanceType> {} + + export function isMixedInto(model: any): model is Instance { + return model?.hasDiffableMixin; + } + + export const stratumName = "measureableStratum"; + StratumOrder.addLoadStratum(stratumName); +} + +export default MeasurableMixin; diff --git a/lib/Models/Catalog/CatalogItems/KmlCatalogItem.ts b/lib/Models/Catalog/CatalogItems/KmlCatalogItem.ts index fd89131593e..ff2bc2de788 100644 --- a/lib/Models/Catalog/CatalogItems/KmlCatalogItem.ts +++ b/lib/Models/Catalog/CatalogItems/KmlCatalogItem.ts @@ -22,11 +22,12 @@ import proxyCatalogItemUrl from "../proxyCatalogItemUrl"; import HeightReference from "terriajs-cesium/Source/Scene/HeightReference"; import ArcType from "terriajs-cesium/Source/Core/ArcType"; +import MeasurableMixin from "../../../ModelMixins/MeasurableMixin"; const kmzRegex = /\.kmz$/i; -class KmlCatalogItem extends MappableMixin( - UrlMixin(CatalogMemberMixin(CreateModel(KmlCatalogItemTraits))) +class KmlCatalogItem extends MeasurableMixin( + MappableMixin(UrlMixin(CatalogMemberMixin(CreateModel(KmlCatalogItemTraits)))) ) { static readonly type = "kml"; get type() { @@ -178,6 +179,14 @@ class KmlCatalogItem extends MappableMixin( }); } } + + @computed get canUseAsPath() { + return false; + } + + @computed get asPath() { + return [{}]; + } } export default KmlCatalogItem; diff --git a/lib/ReactViews/Workbench/Controls/ViewingControls.jsx b/lib/ReactViews/Workbench/Controls/ViewingControls.jsx index 204b7d2e21e..c12ad3f82cf 100644 --- a/lib/ReactViews/Workbench/Controls/ViewingControls.jsx +++ b/lib/ReactViews/Workbench/Controls/ViewingControls.jsx @@ -378,6 +378,27 @@ const ViewingControls = observer( + +
  • + runInAction(() => this.searchItem())} + title="Usa il dato del layer come percorso di cui misurare altitudine e statistiche" + > + + + Percorso + + +
  • +
  • Date: Mon, 10 Jan 2022 15:24:50 +0100 Subject: [PATCH 030/215] Fix BingMapsSearchProvider --- .../SearchProviders/BingMapsSearchProvider.ts | 25 ++++--------------- 1 file changed, 5 insertions(+), 20 deletions(-) diff --git a/lib/Models/SearchProviders/BingMapsSearchProvider.ts b/lib/Models/SearchProviders/BingMapsSearchProvider.ts index 159179a0d42..9ee9d3d18f8 100644 --- a/lib/Models/SearchProviders/BingMapsSearchProvider.ts +++ b/lib/Models/SearchProviders/BingMapsSearchProvider.ts @@ -15,7 +15,7 @@ import { Category, SearchAction } from "../../Core/AnalyticEvents/analyticEvents"; -import { Cartographic, EllipsoidGeodesic } from "terriajs-cesium"; +import Cartographic from "terriajs-cesium/Source/Core/Cartographic"; interface BingMapsSearchProviderOptions { terria: Terria; @@ -45,7 +45,10 @@ export default class BingMapsSearchProvider extends SearchProvider { this.url += "/"; } this.key = options.key; - this.flightDurationSeconds = defaultValue(options.flightDurationSeconds, 3); + this.flightDurationSeconds = defaultValue( + options.flightDurationSeconds, + 3.0 + ); this.primaryCountry = defaultValue(options.primaryCountry, "Italy"); this.culture = defaultValue(options.culture, "it"); @@ -201,26 +204,8 @@ function createZoomToFunction(model: BingMapsSearchProvider, resource: any) { const [south, west, north, east] = resource.bbox; //const rectangle = Rectangle.fromDegrees(west, south, east, north); - // const epsilon = 10e-5; - let westSouth = Cartographic.fromDegrees(parseFloat(west), parseFloat(south)); let eastNorth = Cartographic.fromDegrees(parseFloat(east), parseFloat(north)); - - /* const distance = new EllipsoidGeodesic(westSouth, eastNorth).surfaceDistance; - - console.log(distance); - - if (distance < 50) { - westSouth = new Cartographic( - westSouth.longitude - epsilon, - westSouth.latitude - epsilon - ); - eastNorth = new Cartographic( - eastNorth.longitude + epsilon, - eastNorth.latitude + epsilon - ); - } */ - const rectangle = Rectangle.fromCartographicArray([westSouth, eastNorth]); return function() { From 3591ef087cb727bdecb7146d4aad9006fe8c61c3 Mon Sep 17 00:00:00 2001 From: glughi Date: Mon, 10 Jan 2022 15:25:14 +0100 Subject: [PATCH 031/215] Fix package.json --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 87d5fd8f7fe..645298d6154 100644 --- a/package.json +++ b/package.json @@ -156,7 +156,7 @@ "style-loader": "^0.23.1", "styled-components": "^5.1.0", "svg-sprite-loader": "4.1.3", - "terriajs-cesium": "1.81.3", + "terriajs-cesium": "^1.81.3", "terriajs-html2canvas": "1.0.0-alpha.12-terriajs-1", "terriajs-protomaps": "1.14.0-prerelease", "thredds-catalog-crawler": "0.0.5", From 0784b73788005f2e2ad32c8c7e412e1cc52440ae Mon Sep 17 00:00:00 2001 From: glughi Date: Fri, 14 Jan 2022 10:41:57 +0100 Subject: [PATCH 032/215] Add MeasurableTraits to load path data from layers --- lib/ModelMixins/GeojsonMixin.ts | 142 +++++++++++++++++- lib/ModelMixins/MeasurableMixin.ts | 62 +++++--- .../Catalog/CatalogItems/KmlCatalogItem.ts | 34 ++++- lib/ReactViewModels/ViewState.ts | 14 ++ .../Custom/Chart/ElevationChartPanel.jsx | 3 - .../Workbench/Controls/ViewingControls.jsx | 15 +- lib/Traits/TraitsClasses/GeoJsonTraits.ts | 2 + lib/Traits/TraitsClasses/MeasurableTraits.ts | 11 +- 8 files changed, 247 insertions(+), 36 deletions(-) diff --git a/lib/ModelMixins/GeojsonMixin.ts b/lib/ModelMixins/GeojsonMixin.ts index 232f97982d2..f4727a52f0d 100644 --- a/lib/ModelMixins/GeojsonMixin.ts +++ b/lib/ModelMixins/GeojsonMixin.ts @@ -23,6 +23,7 @@ import { toJS } from "mobx"; import Cartesian3 from "terriajs-cesium/Source/Core/Cartesian3"; +import Cartographic from "terriajs-cesium/Source/Core/Cartographic"; import clone from "terriajs-cesium/Source/Core/clone"; import Color from "terriajs-cesium/Source/Core/Color"; import DeveloperError from "terriajs-cesium/Source/Core/DeveloperError"; @@ -55,7 +56,12 @@ import filterOutUndefined from "../Core/filterOutUndefined"; import formatPropertyValue from "../Core/formatPropertyValue"; import hashFromString from "../Core/hashFromString"; import isDefined from "../Core/isDefined"; -import { isJsonObject } from "../Core/Json"; +import { + isJsonObject, + isJsonArray, + JsonArray, + isJsonNumber +} from "../Core/Json"; import { isJson } from "../Core/loadBlob"; import makeRealPromise from "../Core/makeRealPromise"; import StandardCssColors from "../Core/StandardCssColors"; @@ -81,6 +87,16 @@ import { RectangleTraits } from "../Traits/TraitsClasses/MappableTraits"; import { DiscreteTimeAsJS } from "./DiscretelyTimeVaryingMixin"; import { ExportData } from "./ExportableMixin"; import TableMixin from "./TableMixin"; +import MeasurableMixin from "./MeasurableMixin"; + +enum PathTypes { + noPath = 0, + featureCollectionLineString = 1, + featureCollectionMultiLineString = 2, + lineString = 3, + multiLineString = 4 + //geometryCollection: 5 +} const SIMPLE_STYLE_KEYS = [ "marker-size", @@ -163,8 +179,8 @@ class GeoJsonStratum extends LoadableStratum(GeoJsonTraits) { StratumOrder.addLoadStratum(GeoJsonStratum.stratumName); function GeoJsonMixin>>(Base: T) { - abstract class GeoJsonMixin extends TableMixin( - UrlMixin(CatalogMemberMixin(Base)) + abstract class GeoJsonMixin extends MeasurableMixin( + TableMixin(UrlMixin(CatalogMemberMixin(Base))) ) { @observable private _dataSource: CzmlDataSource | GeoJsonDataSource | undefined; @@ -1029,6 +1045,126 @@ function GeoJsonMixin>>(Base: T) { async forceLoadTableData() { return undefined; } + + protected _pathType: PathTypes = PathTypes.noPath; + + @computed get canUseAsPath() { + let pathType: PathTypes = PathTypes.noPath; + + if ( + this.readyData && + isJsonObject(this.readyData.crs) && + this.readyData.crs.type === "EPSG" && + isJsonObject(this.readyData.crs.properties) && + this.readyData.crs.properties.code === "4326" + ) { + if ( + this.readyData.type === "FeatureCollection" && + isJsonArray(this.readyData.features) && + this.readyData.features.length == 1 && + isJsonObject(this.readyData.features[0]) + ) { + const geometry = this.readyData.features[0].geometry; + if (isJsonObject(geometry) && isJsonArray(geometry.coordinates)) { + if ( + geometry.type === "MultiLineString" && + geometry.coordinates.length == 1 && + isJsonArray(geometry.coordinates[0]) && + geometry.coordinates[0].length > 1 + ) { + pathType = PathTypes.featureCollectionMultiLineString; + } else if ( + geometry.type === "LineString" && + geometry.coordinates.length > 1 + ) { + pathType = PathTypes.featureCollectionLineString; + } + } + } + /*else if (this.readyData.type === "LineString" && isJsonArray(this.readyData.coordinates) + && this.readyData.coordinates.length > 1) { + pathType = PathTypes.lineString; + } + else if (this.readyData.type === "MultiLineString" && isJsonArray(this.readyData.coordinates) + && this.readyData.coordinates.length == 1) { + pathType = PathTypes.multiLineString; + }*/ + /*else if(this.readyData.type === "GeometryCollection") { + pathType = PathTypes.geometryCollection; + }*/ + } + + this._pathType = pathType; + return pathType !== PathTypes.noPath; + } + + computePath() { + let jsonCoords: JsonArray | undefined; + + switch (this._pathType) { + case PathTypes.featureCollectionMultiLineString: + if ( + this.readyData && + isJsonArray(this.readyData.features) && + this.readyData.features.length > 0 && + isJsonObject(this.readyData.features[0]) && + isJsonObject(this.readyData.features[0].geometry) && + isJsonArray(this.readyData.features[0].geometry.coordinates) && + this.readyData.features[0].geometry.coordinates.length > 0 && + isJsonArray(this.readyData.features[0].geometry.coordinates[0]) + ) { + jsonCoords = this.readyData.features[0].geometry.coordinates[0]; + } + break; + case PathTypes.featureCollectionLineString: + if ( + this.readyData && + isJsonArray(this.readyData.features) && + this.readyData.features.length > 0 && + isJsonObject(this.readyData.features[0]) && + isJsonObject(this.readyData.features[0].geometry) && + isJsonArray(this.readyData.features[0].geometry.coordinates) + ) { + jsonCoords = this.readyData.features[0].geometry.coordinates; + } + break; + /*case PathTypes.multiLineString: + if(this.readyData && isJsonArray(this.readyData.coordinates)) { + jsonCoords = this.readyData.coordinates[0]; + } + break; + case PathTypes.lineString: + if(this.readyData && isJsonArray(this.readyData.coordinates)) { + jsonCoords = this.readyData.coordinates; + } + break;*/ + } + + if (!jsonCoords || jsonCoords.length === 0) { + return; + } + + const coordinates: Cartographic[] = jsonCoords.map(elem => { + if ( + elem && + isJsonArray(elem) && + elem.length === 3 && + isJsonNumber(elem[0]) && + isJsonNumber(elem[1]) && + isJsonNumber(elem[2]) + ) { + return Cartographic.fromDegrees( + elem[0], + elem[1], + Math.round(elem[2]) + ); + } else { + return Cartographic.fromDegrees(0, 0, 0); + } + }); + + this.asPath(coordinates); + } } return GeoJsonMixin; } diff --git a/lib/ModelMixins/MeasurableMixin.ts b/lib/ModelMixins/MeasurableMixin.ts index 01afd9d6172..3ec205d17b5 100644 --- a/lib/ModelMixins/MeasurableMixin.ts +++ b/lib/ModelMixins/MeasurableMixin.ts @@ -1,10 +1,12 @@ -import { computed } from "mobx"; -import JulianDate from "terriajs-cesium/Source/Core/JulianDate"; +import { computed, action } from "mobx"; import Constructor from "../Core/Constructor"; import Model from "../Models/Definition/Model"; -import { SelectableDimensionSelect } from "../Models/SelectableDimensions"; import StratumOrder from "../Models/Definition/StratumOrder"; import MeasurableTraits from "../Traits/TraitsClasses/MeasurableTraits"; +import sampleTerrainMostDetailed from "terriajs-cesium/Source/Core/sampleTerrainMostDetailed"; +import EllipsoidGeodesic from "terriajs-cesium/Source/Core/EllipsoidGeodesic"; +import Cartographic from "terriajs-cesium/Source/Core/Cartographic"; +import TerrainProvider from "terriajs-cesium/Source/Core/TerrainProvider"; type MixinModel = Model; @@ -14,36 +16,52 @@ function MeasurableMixin>(Base: T) { // | SelectableDimensionSelect[] // | undefined; + @computed get hasMeasurableMixin() { return true; } abstract get canUseAsPath(): boolean; - abstract get asPath(): object[]; + abstract computePath(): void; - /*abstract get canDiffImages(): boolean; + @action + update(newPositions: Cartographic[]) { + let dist = 0.0; + const stepDistanceMeters: number[] = [0.0]; - abstract showDiffImage( - firstDate: JulianDate, - secondDate: JulianDate, - diffStyleId: string - ): void; + newPositions.forEach((elem, index) => { + elem.height = Math.round(elem.height); + if (index > 0) { + const geodesic = new EllipsoidGeodesic(elem, newPositions[index - 1]); + dist += geodesic.surfaceDistance; + stepDistanceMeters.push(dist); + } + }); + if (newPositions.length > 1) { + this.terria.pathPoints = newPositions; + this.terria.pathDistances = stepDistanceMeters; + } + } - abstract clearDiffImage(): void; + asPath(positions: Cartographic[]) { + if (!this?.terria?.cesium?.scene) { + return; + } + const terrainProvider: TerrainProvider = this.terria?.cesium?.scene + .terrainProvider; - abstract getLegendUrlForStyle( - diffStyleId: string, - firstDate?: JulianDate, - secondDate?: JulianDate - ): string; + let prom = Promise.resolve(positions); + if (positions.every(element => element.height < 1)) { + prom = prom.then(pos => + sampleTerrainMostDetailed(terrainProvider, pos) + ); + } - @computed - get canFilterTimeByFeature() { - // Hides the SatelliteImageryTimeFilterSection for the item if it is - // currently showing difference image - return super.canFilterTimeByFeature && !this.isShowingDiff; - }*/ + prom.then((newPositions: Cartographic[]) => { + this.update(newPositions); + }); + } } return MeasurableMixin; diff --git a/lib/Models/Catalog/CatalogItems/KmlCatalogItem.ts b/lib/Models/Catalog/CatalogItems/KmlCatalogItem.ts index ff2bc2de788..7b643e82f9b 100644 --- a/lib/Models/Catalog/CatalogItems/KmlCatalogItem.ts +++ b/lib/Models/Catalog/CatalogItems/KmlCatalogItem.ts @@ -19,10 +19,10 @@ import UrlMixin from "../../../ModelMixins/UrlMixin"; import KmlCatalogItemTraits from "../../../Traits/TraitsClasses/KmlCatalogItemTraits"; import CreateModel from "../../Definition/CreateModel"; import proxyCatalogItemUrl from "../proxyCatalogItemUrl"; - import HeightReference from "terriajs-cesium/Source/Scene/HeightReference"; import ArcType from "terriajs-cesium/Source/Core/ArcType"; import MeasurableMixin from "../../../ModelMixins/MeasurableMixin"; +import Entity from "terriajs-cesium/Source/DataSources/Entity"; const kmzRegex = /\.kmz$/i; @@ -181,11 +181,39 @@ class KmlCatalogItem extends MeasurableMixin( } @computed get canUseAsPath() { + if ( + this._dataSource && + this._dataSource.entities && + this._dataSource.entities.values && + this._dataSource.entities.values.length > 0 + ) { + const items = this._dataSource.entities.values.filter( + elem => elem && typeof elem.polyline !== "undefined" + ); + if ( + items.length == 1 && + items[0]?.polyline?.positions?.getValue(JulianDate.now()).length > 1 + ) { + return true; + } + } return false; } - @computed get asPath() { - return [{}]; + computePath() { + const items: Entity[] = + this?._dataSource?.entities?.values.filter( + elem => elem && typeof elem.polyline !== "undefined" + ) ?? []; + const coordinates: Cartesian3[] = items[0]?.polyline?.positions?.getValue( + JulianDate.now() + ); + if (coordinates && coordinates.length > 0) { + const positions: Cartographic[] = coordinates.map(elem => + Cartographic.fromCartesian(elem) + ); + this.asPath(positions); + } } } diff --git a/lib/ReactViewModels/ViewState.ts b/lib/ReactViewModels/ViewState.ts index 90962c834c3..98ec6edf435 100644 --- a/lib/ReactViewModels/ViewState.ts +++ b/lib/ReactViewModels/ViewState.ts @@ -9,6 +9,7 @@ import { import { Ref } from "react"; import defined from "terriajs-cesium/Source/Core/defined"; import CesiumEvent from "terriajs-cesium/Source/Core/Event"; +import Cartographic from "terriajs-cesium/Source/Core/Cartographic"; import addedByUser from "../Core/addedByUser"; import { Category, HelpAction } from "../Core/AnalyticEvents/analyticEvents"; import Result from "../Core/Result"; @@ -323,6 +324,7 @@ export default class ViewState { private _previewedItemIdSubscription: IReactionDisposer; private _workbenchHasTimeWMSSubscription: IReactionDisposer; private _storyBeforeUnloadSubscription: IReactionDisposer; + private _elevationPanelIsVisibleSubscription: IReactionDisposer; private _disclaimerHandler: DisclaimerHandler; constructor(options: ViewStateOptions) { @@ -443,6 +445,17 @@ export default class ViewState { } ); + this._elevationPanelIsVisibleSubscription = reaction( + () => this.terria.pathPoints, + (pathPoints: Cartographic[] | undefined) => { + if (defined(pathPoints) && pathPoints && pathPoints.length > 0) { + this.elevationPanelIsVisible = true; + } else { + this.elevationPanelIsVisible = false; + } + } + ); + const handleWindowClose = (e: BeforeUnloadEvent) => { // Cancel the event e.preventDefault(); // If you prevent default behavior in Mozilla Firefox prompt will always be shown @@ -471,6 +484,7 @@ export default class ViewState { this._storyPromptSubscription(); this._previewedItemIdSubscription(); this._workbenchHasTimeWMSSubscription(); + this._elevationPanelIsVisibleSubscription(); this._disclaimerHandler.dispose(); this.searchState.dispose(); } diff --git a/lib/ReactViews/Custom/Chart/ElevationChartPanel.jsx b/lib/ReactViews/Custom/Chart/ElevationChartPanel.jsx index 8aaa29223f3..3c88d31cb04 100644 --- a/lib/ReactViews/Custom/Chart/ElevationChartPanel.jsx +++ b/lib/ReactViews/Custom/Chart/ElevationChartPanel.jsx @@ -129,9 +129,6 @@ class ElevationChartPanel extends React.Component { }; chartItems.push(itemSampled); - console.log(item.domain.y); - console.log(itemSampled.domain.y); - this.props.terria.currentViewer.notifyRepaintRequired(); } diff --git a/lib/ReactViews/Workbench/Controls/ViewingControls.jsx b/lib/ReactViews/Workbench/Controls/ViewingControls.jsx index c12ad3f82cf..33f8ef19344 100644 --- a/lib/ReactViews/Workbench/Controls/ViewingControls.jsx +++ b/lib/ReactViews/Workbench/Controls/ViewingControls.jsx @@ -37,6 +37,10 @@ import { exportData } from "../../Preview/ExportData"; import LazyItemSearchTool from "../../Tools/ItemSearchTool/LazyItemSearchTool"; import WorkbenchButton from "../WorkbenchButton"; +import KmlCatalogItem from "../../../Models/Catalog/CatalogItems/KmlCatalogItem"; +import GeoJsonCatalogItem from "../../../Models/Catalog/CatalogItems/GeoJsonCatalogItem"; +import GpxCatalogItem from "../../../Models/Catalog/CatalogItems/GpxCatalogItem"; + const BoxViewingControl = styled(Box).attrs({ centered: true, left: true, @@ -258,6 +262,11 @@ const ViewingControls = observer( }); }, + computePath() { + const { item, viewState } = this.props; + item.computePath(); + }, + async previewItem() { let item = this.props.item; // If this is a chartable item opened from another catalog item, get the info of the original item. @@ -382,14 +391,14 @@ const ViewingControls = observer( condition={ (item instanceof GeoJsonCatalogItem || item instanceof KmlCatalogItem || - item instanceof OgrCatalogItem || + //item instanceof OgrCatalogItem || item instanceof GpxCatalogItem) && - item.canUseAsPath() + item.canUseAsPath } >
  • runInAction(() => this.searchItem())} + onClick={() => runInAction(() => this.computePath())} title="Usa il dato del layer come percorso di cui misurare altitudine e statistiche" > diff --git a/lib/Traits/TraitsClasses/GeoJsonTraits.ts b/lib/Traits/TraitsClasses/GeoJsonTraits.ts index 1f18c4e22d3..dfee336a9d7 100644 --- a/lib/Traits/TraitsClasses/GeoJsonTraits.ts +++ b/lib/Traits/TraitsClasses/GeoJsonTraits.ts @@ -10,6 +10,7 @@ import StyleTraits from "./StyleTraits"; import TableTraits from "./TableTraits"; import UrlTraits from "./UrlTraits"; import LegendOwnerTraits from "./LegendOwnerTraits"; +import MeasurableTraits from "./MeasurableTraits"; export class PerPropertyGeoJsonStyleTraits extends ModelTraits { @anyTrait({ @@ -37,6 +38,7 @@ export class PerPropertyGeoJsonStyleTraits extends ModelTraits { } export class GeoJsonTraits extends mixTraits( + MeasurableTraits, LegendOwnerTraits, TableTraits, FeatureInfoTraits, diff --git a/lib/Traits/TraitsClasses/MeasurableTraits.ts b/lib/Traits/TraitsClasses/MeasurableTraits.ts index c6ef4de494b..cbaf5741f7c 100644 --- a/lib/Traits/TraitsClasses/MeasurableTraits.ts +++ b/lib/Traits/TraitsClasses/MeasurableTraits.ts @@ -1,5 +1,12 @@ import ModelTraits from "../ModelTraits"; -// import primitiveTrait from "../Decorators/primitiveTrait"; +import primitiveTrait from "../Decorators/primitiveTrait"; // import primitiveArrayTrait from "../Decorators/primitiveArrayTrait"; -export default class MeasurableTraits extends ModelTraits {} +export default class MeasurableTraits extends ModelTraits { + @primitiveTrait({ + type: "string", + name: "measure", + description: "" + }) + measure?: string; +} From c69e822fd46dd5c4094e5107f251d6b71575a8f9 Mon Sep 17 00:00:00 2001 From: glughi Date: Tue, 25 Jan 2022 18:40:42 +0100 Subject: [PATCH 033/215] Better italian translation --- lib/Language/it/translation.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/Language/it/translation.json b/lib/Language/it/translation.json index e63ea474fef..2d6e1ad5f2e 100644 --- a/lib/Language/it/translation.json +++ b/lib/Language/it/translation.json @@ -1308,7 +1308,7 @@ "closeDataPanel": "Chiudi pannello dati", "load": "Carica dati locali/web", "browse": "Sfoglia...", - "addDataBtnText": "Esplora i dati della mappa", + "addDataBtnText": "Esplora il catalogo", "localFile": "<0>Passo 2: Selezionare il file", "note": "<0>Nota: I dati aggiunti in questo modo non vengono salvati o resi visibili agli altri.", "infoText": "<0>Trascina un file qui per visualizzarlo localmente sulla mappa<1>(non sarà salvato o caricato su internet)", From 6e5680c62f4e2431d6e17b6d75976ebbf9eb90c2 Mon Sep 17 00:00:00 2001 From: glughi Date: Tue, 25 Jan 2022 18:42:45 +0100 Subject: [PATCH 034/215] Add save and load functions to SharePanel --- .../Map/Panels/SharePanel/FileInput.jsx | 62 +++++++++++++++++++ .../Map/Panels/SharePanel/SharePanel.jsx | 47 ++++++++++++++ .../Map/Panels/SharePanel/file-input.scss | 32 ++++++++++ .../Panels/SharePanel/file-input.scss.d.ts | 12 ++++ .../Map/Panels/SharePanel/share-panel.scss | 10 +++ .../Panels/SharePanel/share-panel.scss.d.ts | 3 + 6 files changed, 166 insertions(+) create mode 100644 lib/ReactViews/Map/Panels/SharePanel/FileInput.jsx create mode 100644 lib/ReactViews/Map/Panels/SharePanel/file-input.scss create mode 100644 lib/ReactViews/Map/Panels/SharePanel/file-input.scss.d.ts diff --git a/lib/ReactViews/Map/Panels/SharePanel/FileInput.jsx b/lib/ReactViews/Map/Panels/SharePanel/FileInput.jsx new file mode 100644 index 00000000000..ef1c4ff20f1 --- /dev/null +++ b/lib/ReactViews/Map/Panels/SharePanel/FileInput.jsx @@ -0,0 +1,62 @@ +import React from "react"; +import PropTypes from "prop-types"; +import createReactClass from "create-react-class"; +import classNames from "classnames"; +import { withTranslation } from "react-i18next"; + +import Styles from "./file-input.scss"; + +// When uploading a file +// use an button element to have consistent stylying +const FileInput = createReactClass({ + propTypes: { + label: PropTypes.string, + onChange: PropTypes.func, + accept: PropTypes.string, + t: PropTypes.func.isRequired + }, + + getInitialState() { + const { t } = this.props; + return { + value: t("addData.browse"), + hovered: false + }; + }, + + handleChange(e) { + this.setState({ + value: e.target.value.split(/(\\|\/)/g).pop() + }); + if (this.props.onChange) { + this.props.onChange(e); + } + }, + + render() { + const { t } = this.props; + return ( +
    this.setState({ hovered: true })} + onMouseLeave={() => this.setState({ hovered: false })} + > + + +
    + ); + } +}); + +module.exports = withTranslation()(FileInput); diff --git a/lib/ReactViews/Map/Panels/SharePanel/SharePanel.jsx b/lib/ReactViews/Map/Panels/SharePanel/SharePanel.jsx index 10a27225d0a..a9232caa53b 100644 --- a/lib/ReactViews/Map/Panels/SharePanel/SharePanel.jsx +++ b/lib/ReactViews/Map/Panels/SharePanel/SharePanel.jsx @@ -27,6 +27,7 @@ import { Category, ShareAction } from "../../../../Core/AnalyticEvents/analyticEvents"; +import FileInput from "./FileInput"; const SharePanel = observer( createReactClass({ @@ -315,6 +316,19 @@ const SharePanel = observer( return this.props.terria.catalog.userAddedDataGroup.members.length > 0; }, + /* Load map config from a file */ + loadMapFromFile() { + fileDialog({ multiple: false, accept: ".geo3d" }).then(file => { + if (file.length == 1) { + var reader = new FileReader(); + reader.onload = function(e) { + window.open(e.target.result, "_self"); + }; + reader.readAsText(file[0]); + } + }); + }, + renderWarning() { const unshareableItems = this.props.terria.catalog.userAddedDataGroup.memberModels.filter( model => !isShareable(this.props.terria)(model.uniqueId) @@ -472,6 +486,39 @@ const SharePanel = observer(
  • +
    +
    Salva Mappa
    +
    + Salva o carica una mappa da file +
    + {/*
    + Salva + + */} +
    +
    + + Salva + +
    + {}} /> +
    +
    diff --git a/lib/ReactViews/Map/Panels/SharePanel/file-input.scss b/lib/ReactViews/Map/Panels/SharePanel/file-input.scss new file mode 100644 index 00000000000..7a803c76142 --- /dev/null +++ b/lib/ReactViews/Map/Panels/SharePanel/file-input.scss @@ -0,0 +1,32 @@ +@import "~terriajs-variables"; +@import "../../../../Sass/common/mixins"; + +@include empty-module("file-input"); + +// Add data from url form +// +// Markup: +//
    +// +// +//
    +// +// Style guide: 3.2 +// + +.input { + width: 100%; + opacity: 0; + position: absolute; + padding: $padding; + cursor: pointer; +} + +.btn { + composes: btn from "../../../../Sass/common/_buttons.scss"; + composes: btn-primary from "../../../../Sass/common/_buttons.scss"; + + &--hover { + composes: btn-primary--hover from "../../../../Sass/common/_buttons.scss"; + } +} diff --git a/lib/ReactViews/Map/Panels/SharePanel/file-input.scss.d.ts b/lib/ReactViews/Map/Panels/SharePanel/file-input.scss.d.ts new file mode 100644 index 00000000000..bb43f807f0b --- /dev/null +++ b/lib/ReactViews/Map/Panels/SharePanel/file-input.scss.d.ts @@ -0,0 +1,12 @@ +// This file is automatically generated. +// Please do not change this file! +interface CssExports { + 'btn': string; + 'btn--hover': string; + 'btnHover': string; + 'file-input': string; + 'fileInput': string; + 'input': string; +} +declare var cssExports: CssExports; +export = cssExports; diff --git a/lib/ReactViews/Map/Panels/SharePanel/share-panel.scss b/lib/ReactViews/Map/Panels/SharePanel/share-panel.scss index 30350072810..349a08e0baa 100644 --- a/lib/ReactViews/Map/Panels/SharePanel/share-panel.scss +++ b/lib/ReactViews/Map/Panels/SharePanel/share-panel.scss @@ -1,6 +1,8 @@ @import "~terriajs-variables"; @import "../../../../Sass/common/mixins"; +@include empty-module("file-input"); + .share-panel { font-size: $font-size-mid-small; } @@ -166,3 +168,11 @@ cursor: pointer; } } + +.input { + width: 100%; + opacity: 0; + position: absolute; + padding: $padding; + cursor: pointer; +} diff --git a/lib/ReactViews/Map/Panels/SharePanel/share-panel.scss.d.ts b/lib/ReactViews/Map/Panels/SharePanel/share-panel.scss.d.ts index 8cb95fe2f2c..7a6b179738f 100644 --- a/lib/ReactViews/Map/Panels/SharePanel/share-panel.scss.d.ts +++ b/lib/ReactViews/Map/Panels/SharePanel/share-panel.scss.d.ts @@ -20,10 +20,13 @@ interface CssExports { 'dropdown-inner': string; 'dropdownInner': string; 'explanation': string; + 'file-input': string; + 'fileInput': string; 'format-button': string; 'formatButton': string; 'img--share': string; 'imgShare': string; + 'input': string; 'link': string; 'link-wrapper': string; 'linkWrapper': string; From b3783d85890bdaec00491893f56288c80218ce2b Mon Sep 17 00:00:00 2001 From: glughi Date: Tue, 25 Jan 2022 18:44:39 +0100 Subject: [PATCH 035/215] Set default line stroke width to 4 px --- lib/ModelMixins/GeojsonMixin.ts | 2 +- lib/Models/Catalog/CatalogItems/KmlCatalogItem.ts | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/lib/ModelMixins/GeojsonMixin.ts b/lib/ModelMixins/GeojsonMixin.ts index f4727a52f0d..eb8e508c856 100644 --- a/lib/ModelMixins/GeojsonMixin.ts +++ b/lib/ModelMixins/GeojsonMixin.ts @@ -719,7 +719,7 @@ function GeoJsonMixin>>(Base: T) { polygonStroke: getColor(this.terria.baseMapContrastColor), polylineStroke: getRandomCssColor(this.name ?? ""), markerStrokeWidth: 1, - polylineStrokeWidth: 2, + polylineStrokeWidth: 4, polygonStrokeWidth: 1, fill: getRandomCssColor((this.name ?? "") + " fill"), fillAlpha: 0.75 diff --git a/lib/Models/Catalog/CatalogItems/KmlCatalogItem.ts b/lib/Models/Catalog/CatalogItems/KmlCatalogItem.ts index 7b643e82f9b..faa30add537 100644 --- a/lib/Models/Catalog/CatalogItems/KmlCatalogItem.ts +++ b/lib/Models/Catalog/CatalogItems/KmlCatalogItem.ts @@ -133,6 +133,10 @@ class KmlCatalogItem extends MeasurableMixin( } } + if (isDefined(entity.polyline)) { + entity.polyline.width = new ConstantProperty(4); + } + // Clamp to ground if (isDefined(entity.polyline)) { entity.polyline.clampToGround = new ConstantProperty(true); From 16347341d9c35f769311a0d00690183c68c2bf93 Mon Sep 17 00:00:00 2001 From: glughi Date: Tue, 25 Jan 2022 18:45:35 +0100 Subject: [PATCH 036/215] Search in catalog uses also item info --- lib/Models/SearchProviders/CatalogSearchProvider.ts | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/lib/Models/SearchProviders/CatalogSearchProvider.ts b/lib/Models/SearchProviders/CatalogSearchProvider.ts index a3c4a0b03f3..fefd6de5849 100644 --- a/lib/Models/SearchProviders/CatalogSearchProvider.ts +++ b/lib/Models/SearchProviders/CatalogSearchProvider.ts @@ -42,7 +42,11 @@ export function loadAndSearchCatalogRecursively( // includeStrata: [CommonStrata.definition] // }); autorun(reaction => { - const searchString = `${modelToSave.name} ${modelToSave.uniqueId} ${modelToSave.description}`; + // Search also in catalog item info. + const searchString = `${modelToSave.name} ${modelToSave.uniqueId} ${ + modelToSave.description + } ${JSON.stringify(modelToSave.infoAsObject)}`; + const matchesString = searchString.toLowerCase().indexOf(searchTextLowercase) !== -1; resultMap.set(model.uniqueId, matchesString); @@ -135,6 +139,9 @@ export default class CatalogSearchProvider extends SearchProvider { return Promise.resolve(); } + console.log("eeee"); + console.log(searchText); + // Load catalogIndex if needed if (this.terria.catalogIndex && !this.terria.catalogIndex.loadPromise) { try { @@ -159,6 +166,8 @@ export default class CatalogSearchProvider extends SearchProvider { const results = await this.terria.catalogIndex.search(searchText); runInAction(() => (searchResults.results = results)); } else { + console.log("nnnn"); + await loadAndSearchCatalogRecursively( this.terria.modelValues, searchText.toLowerCase(), From fed9c3d67b8af56120d7df7cc1073e85d0f77ced Mon Sep 17 00:00:00 2001 From: glughi Date: Tue, 1 Feb 2022 17:32:07 +0100 Subject: [PATCH 037/215] Change RerSearchProvider name --- lib/Models/SearchProviders/CatalogSearchProvider.ts | 5 ----- lib/Models/SearchProviders/RerSearchProvider.ts | 2 +- 2 files changed, 1 insertion(+), 6 deletions(-) diff --git a/lib/Models/SearchProviders/CatalogSearchProvider.ts b/lib/Models/SearchProviders/CatalogSearchProvider.ts index fefd6de5849..536336d00a6 100644 --- a/lib/Models/SearchProviders/CatalogSearchProvider.ts +++ b/lib/Models/SearchProviders/CatalogSearchProvider.ts @@ -139,9 +139,6 @@ export default class CatalogSearchProvider extends SearchProvider { return Promise.resolve(); } - console.log("eeee"); - console.log(searchText); - // Load catalogIndex if needed if (this.terria.catalogIndex && !this.terria.catalogIndex.loadPromise) { try { @@ -166,8 +163,6 @@ export default class CatalogSearchProvider extends SearchProvider { const results = await this.terria.catalogIndex.search(searchText); runInAction(() => (searchResults.results = results)); } else { - console.log("nnnn"); - await loadAndSearchCatalogRecursively( this.terria.modelValues, searchText.toLowerCase(), diff --git a/lib/Models/SearchProviders/RerSearchProvider.ts b/lib/Models/SearchProviders/RerSearchProvider.ts index 900248a69a1..ddd3e389e46 100644 --- a/lib/Models/SearchProviders/RerSearchProvider.ts +++ b/lib/Models/SearchProviders/RerSearchProvider.ts @@ -34,7 +34,7 @@ export default class RerSearchProvider extends SearchProvider { super(); this.terria = options.terria; - this.name = "RER"; + this.name = "Servizi RER"; /*if (this.url.length > 0 && this.url[this.url.length - 1] !== "/") { this.url += "/"; From 1924e3cf47ae3e81147c8decad9c558d76fb3d4f Mon Sep 17 00:00:00 2001 From: glughi Date: Thu, 10 Feb 2022 13:02:19 +0100 Subject: [PATCH 038/215] Add getZoomLevel function to GlobeOrMap --- lib/Models/Cesium.ts | 42 ++++++++++++++++++++++++++++++++++++++++ lib/Models/GlobeOrMap.ts | 5 +++++ lib/Models/Leaflet.ts | 4 ++++ lib/Models/NoViewer.ts | 4 ++++ 4 files changed, 55 insertions(+) diff --git a/lib/Models/Cesium.ts b/lib/Models/Cesium.ts index fe835b0c8be..a094cea0da2 100644 --- a/lib/Models/Cesium.ts +++ b/lib/Models/Cesium.ts @@ -1503,6 +1503,43 @@ export default class Cesium extends GlobeOrMap { scene.imageryLayers.remove(result); }; } + + getZoomLevel(): number | undefined { + const camera = this.scene.camera; + const width = this.scene.canvas.clientWidth; + const height = this.scene.canvas.clientHeight; + + const pixelDimension = camera.frustum.getPixelDimensions( + this.scene.drawingBufferWidth, + this.scene.drawingBufferHeight, + 1.0, + window.devicePixelRatio, + new Cartesian2() + ); + const pxHalfCm = 0.05 / pixelDimension.x; + const aPos = getRayPosition( + new Cartesian2(width * 0.5 - pxHalfCm, height - 20), + this.scene + ); + + if (typeof aPos === "undefined") return; + const bPos = getRayPosition( + new Cartesian2(width * 0.5 + pxHalfCm, height - 20), + this.scene + ); + if (typeof bPos === "undefined") return; + + let scaleDivider = Cartesian2.distance( + Cartesian2.fromCartesian3(aPos), + Cartesian2.fromCartesian3(bPos) + ); + let scale = 22.56994; + let level; + for (level = 19; level > 1 && scaleDivider > scale; --level) { + scale *= 2; + } + return level; + } } var boundingSphereScratch = new BoundingSphere(); @@ -1605,3 +1642,8 @@ function flyToBoundingSpherePromise( }); }); } + +function getRayPosition(coord: Cartesian2, scene: Scene) { + const ray = scene.camera.getPickRay(coord); + return scene.globe.pick(ray, scene); +} diff --git a/lib/Models/GlobeOrMap.ts b/lib/Models/GlobeOrMap.ts index ec7f3ad84fe..fc30898dcc1 100644 --- a/lib/Models/GlobeOrMap.ts +++ b/lib/Models/GlobeOrMap.ts @@ -413,4 +413,9 @@ export default abstract class GlobeOrMap { "captureScreenshot must be implemented in the derived class." ); } + + /** + * + */ + abstract getZoomLevel(): number | undefined; } diff --git a/lib/Models/Leaflet.ts b/lib/Models/Leaflet.ts index cdd14f9cb21..eb4c8694c58 100644 --- a/lib/Models/Leaflet.ts +++ b/lib/Models/Leaflet.ts @@ -1064,6 +1064,10 @@ export default class Leaflet extends GlobeOrMap { map.removeLayer(layer); }; } + + getZoomLevel(): number | undefined { + return this.map.getZoom(); + } } function isImageryLayer( diff --git a/lib/Models/NoViewer.ts b/lib/Models/NoViewer.ts index c7044c9fb24..5e220251609 100644 --- a/lib/Models/NoViewer.ts +++ b/lib/Models/NoViewer.ts @@ -71,6 +71,10 @@ class NoViewer extends GlobeOrMap { ) { return () => {}; } + + getZoomLevel(): number | undefined { + return undefined; + } } export default NoViewer; From 3c179ef297afda062f0be4f423b2bca8da8cadd9 Mon Sep 17 00:00:00 2001 From: glughi Date: Thu, 10 Feb 2022 13:04:50 +0100 Subject: [PATCH 039/215] Add appendData trait to GeoJson --- lib/ModelMixins/GeojsonMixin.ts | 68 +++++++++++++++++++++-- lib/Traits/TraitsClasses/GeoJsonTraits.ts | 8 +++ 2 files changed, 71 insertions(+), 5 deletions(-) diff --git a/lib/ModelMixins/GeojsonMixin.ts b/lib/ModelMixins/GeojsonMixin.ts index eb8e508c856..75f253ca4a9 100644 --- a/lib/ModelMixins/GeojsonMixin.ts +++ b/lib/ModelMixins/GeojsonMixin.ts @@ -462,11 +462,30 @@ function GeoJsonMixin>>(Base: T) { this._dataSource = undefined; }); } else { - const dataSource = await this.loadGeoJsonDataSource(geoJsonWgs84); - runInAction(() => { - this._dataSource = dataSource; - this._imageryProvider = undefined; - }); + if (!this.appendData || !this._dataSource) { + const dataSource = await this.loadGeoJsonDataSource(geoJsonWgs84); + runInAction(() => { + this._dataSource = dataSource; + this._imageryProvider = undefined; + }); + } else { + const collection = this._dataSource.entities; + + for (let i = 0; i < geoJsonWgs84.features.length; ++i) { + const elem = geoJsonWgs84.features[i]; + + if (collection.getById(elem.id?.toString() ?? "")) continue; + + this.addPerPropertyStyleToGeoJsonSingle(elem); + + GeoJsonDataSource.load(elem, { clampToGround: true }).then( + loaded => { + const entity = loaded.entities.values[0]; + collection.add(entity); + } + ); + } + } } } catch (e) { throw networkRequestError( @@ -518,6 +537,45 @@ function GeoJsonMixin>>(Base: T) { } } + @action + private addPerPropertyStyleToGeoJsonSingle(feature: Feature) { + const featureProperties = feature.properties; + if (featureProperties === null) { + return; + } + + const featurePropertiesEntires = Object.entries(featureProperties); + + const matchedStyles = this.perPropertyStyles.filter(style => { + const stylePropertiesEntries = Object.entries(style.properties ?? {}); + + // For every key-value pair in the style, is there an identical one in the feature's properties? + return stylePropertiesEntries.every( + ([styleKey, styleValue]) => + featurePropertiesEntires.find(([featKey, featValue]) => { + if (typeof styleValue === "string" && !style.caseSensitive) { + featKey === styleKey && + (typeof featValue === "string" + ? featValue + : featValue.toString() + ).toLowerCase() === styleValue.toLowerCase(); + } + return featKey === styleKey && featValue === styleValue; + }) !== undefined + ); + }); + + if (matchedStyles !== undefined) { + for (let matched of matchedStyles) { + for (let trait of Object.keys(matched.style.traits)) { + featureProperties[trait] = + // @ts-ignore - TS can't tell that `trait` is of the correct index type for style + matched.style[trait] ?? featureProperties[trait]; + } + } + } + } + @action private createProtomapsImageryProvider(geoJson: FeatureCollectionWithCrs) { let currentTimeRows: number[] | undefined; diff --git a/lib/Traits/TraitsClasses/GeoJsonTraits.ts b/lib/Traits/TraitsClasses/GeoJsonTraits.ts index dfee336a9d7..0d1b3fac53b 100644 --- a/lib/Traits/TraitsClasses/GeoJsonTraits.ts +++ b/lib/Traits/TraitsClasses/GeoJsonTraits.ts @@ -139,4 +139,12 @@ export class GeoJsonTraits extends mixTraits( \`\`\`` }) czmlTemplate?: JsonObject; + + @primitiveTrait({ + type: "boolean", + name: "Append data", + description: + "If 'true' append new data to old, if 'false' instead of replace them" + }) + appendData: boolean = false; } From 303413d0eb923a463152981016f21ac1dc1e7f82 Mon Sep 17 00:00:00 2001 From: glughi Date: Thu, 10 Feb 2022 13:06:12 +0100 Subject: [PATCH 040/215] Add RerFeatureServerCatalogItemTraits traits --- .../RerFeatureServerCatalogItemTraits.ts | 200 ++++++++++++++++++ 1 file changed, 200 insertions(+) create mode 100644 lib/Traits/TraitsClasses/RerFeatureServerCatalogItemTraits.ts diff --git a/lib/Traits/TraitsClasses/RerFeatureServerCatalogItemTraits.ts b/lib/Traits/TraitsClasses/RerFeatureServerCatalogItemTraits.ts new file mode 100644 index 00000000000..bc8fdf798f9 --- /dev/null +++ b/lib/Traits/TraitsClasses/RerFeatureServerCatalogItemTraits.ts @@ -0,0 +1,200 @@ +import primitiveTrait from "../Decorators/primitiveTrait"; +import primitiveArrayTrait from "../Decorators/primitiveArrayTrait"; +import objectTrait from "../Decorators/objectTrait"; +import objectArrayTrait from "../Decorators/objectArrayTrait"; +import anyTrait from "../Decorators/anyTrait"; +import ModelTraits from "../ModelTraits"; +import mixTraits from "../mixTraits"; +import { PerPropertyGeoJsonStyleTraits } from "./GeoJsonTraits"; +import StyleTraits from "./StyleTraits"; + +export class RerLabelTraits extends ModelTraits { + @primitiveTrait({ + type: "number", + name: "levelMin", + description: "" + }) + levelMin: number = 7; + + @primitiveTrait({ + type: "number", + name: "levelMax", + description: "" + }) + levelMax: number = 16; + + @primitiveTrait({ + type: "string", + name: "labelField", + description: "" + }) + labelField: string = ""; + + @primitiveTrait({ + type: "boolean", + name: "show", + description: "" + }) + show: boolean = true; + + @primitiveTrait({ + type: "string", + name: "font", + description: "" + }) + font: string = ""; + + @primitiveTrait({ + type: "string", + name: "fillColor", + description: "" + }) + fillColor: string = "red"; + + @primitiveTrait({ + type: "string", + name: "backgroundColor", + description: "" + }) + backgroundColor: string = "transparent"; +} + +export class RerDistanceShowFilterTraits extends ModelTraits { + @primitiveTrait({ + type: "number", + name: "level", + description: "" + }) + level: number = 0; + + @primitiveTrait({ + type: "number", + name: "distance", + description: "" + }) + distance: number = 0; + + /*@primitiveTrait({ + type: "number", + name: "distanceWhenIsPitch", + description: + "" + }) + distanceWhenIsPitch: number = 0;*/ +} + +export class RerFeatureShowFilterTraits extends ModelTraits { + /*@primitiveTrait({ + type: "string", + name: "filter", + description: + "" + }) + filter: "DISABLED" | "BY_NEARNESS" | "BY_DISTANCE" = "DISABLED";*/ + + @primitiveTrait({ + type: "number", + name: "cameraTiltedAngle", + description: "" + }) + cameraTiltedAngle: number = 45; + + @primitiveTrait({ + type: "number", + name: "cameraLandedAngle", + description: "" + }) + cameraLandedAngle: number = 25; + + @primitiveTrait({ + type: "boolean", + name: "hideFeaturesIfLanded", + description: "" + }) + hideFeaturesIfLanded: boolean = true; + + /*@primitiveArrayTrait({ + type: "number", + name: "nearestPerLevel", + description: + "" + }) + nearestPerLevel: number[] = [];*/ + + @objectArrayTrait({ + type: RerDistanceShowFilterTraits, + name: "tiltedDisplayDistanceCondition", + description: "", + idProperty: "level" + }) + tiltedDisplayDistanceCondition: RerDistanceShowFilterTraits[] = []; +} + +export default class RerFeatureServerCatalogItemTraits extends ModelTraits { + @primitiveTrait({ + type: "boolean", + name: "Append data", + description: + "If 'true' append new data to old, if 'false' instead of replace them" + }) + appendData: boolean = false; + + @primitiveTrait({ + type: "string", + name: "levelField", + description: "" + }) + levelField: string = ""; + + @primitiveTrait({ + type: "number", + name: "levelMax", + description: "" + }) + levelMax: number = 16; + + @primitiveTrait({ + type: "number", + name: "levelMin", + description: "" + }) + levelMin: number = 7; + + @objectTrait({ + type: RerFeatureShowFilterTraits, + name: "displayFilter", + description: "" + }) + displayFilter?: RerFeatureShowFilterTraits; + + @objectArrayTrait({ + type: RerLabelTraits, + name: "labels", + description: "", + idProperty: "levelMin" + }) + labels: RerLabelTraits[] = []; + + @objectTrait({ + type: StyleTraits, + name: "Style", + description: + "Styling rules that follow [simplestyle-spec](https://github.com/mapbox/simplestyle-spec). If using geojson-vt/TableStyleTraits, then this style will be used as the default style (which will be overriden by TableStyleTraits). To disable TableStyleTraits, see `disableTableStyle`." + }) + style?: StyleTraits; + + @objectArrayTrait({ + name: "Per property styles", + type: PerPropertyGeoJsonStyleTraits, + description: + "Override feature styles according to their properties. This is only supported for cesium primitives (see `forceCesiumPrimitives`)", + idProperty: "index" + }) + perPropertyStyles: PerPropertyGeoJsonStyleTraits[] = []; + + @anyTrait({ + name: "drawingInfo", + description: "" + }) + drawingInfo: any; +} From 7ae4d9f37c46cd986ee4c092649e01253cddc63e Mon Sep 17 00:00:00 2001 From: glughi Date: Thu, 10 Feb 2022 15:50:14 +0100 Subject: [PATCH 041/215] Rename RerFeatureServerCatalogItemTraits to RerFeatureServerTraits --- ...temTraits.ts => RerFeatureServerTraits.ts} | 59 +++++++++++-------- 1 file changed, 36 insertions(+), 23 deletions(-) rename lib/Traits/TraitsClasses/{RerFeatureServerCatalogItemTraits.ts => RerFeatureServerTraits.ts} (61%) diff --git a/lib/Traits/TraitsClasses/RerFeatureServerCatalogItemTraits.ts b/lib/Traits/TraitsClasses/RerFeatureServerTraits.ts similarity index 61% rename from lib/Traits/TraitsClasses/RerFeatureServerCatalogItemTraits.ts rename to lib/Traits/TraitsClasses/RerFeatureServerTraits.ts index bc8fdf798f9..b5d3feff899 100644 --- a/lib/Traits/TraitsClasses/RerFeatureServerCatalogItemTraits.ts +++ b/lib/Traits/TraitsClasses/RerFeatureServerTraits.ts @@ -12,14 +12,16 @@ export class RerLabelTraits extends ModelTraits { @primitiveTrait({ type: "number", name: "levelMin", - description: "" + description: + "Valore minimo del range di zoom in cui usare questa classe di etichette" }) levelMin: number = 7; @primitiveTrait({ type: "number", name: "levelMax", - description: "" + description: + "Valore massimo del range di zoom in cui usare questa classe di etichette" }) levelMax: number = 16; @@ -28,33 +30,35 @@ export class RerLabelTraits extends ModelTraits { name: "labelField", description: "" }) - labelField: string = ""; + labelField: string = + "Nome del campo della proprietà da usare come testo dell'etichetta"; @primitiveTrait({ type: "boolean", name: "show", - description: "" + description: + "Indica se le etichette di questa classe devono essere mostrate o nascoste" }) show: boolean = true; @primitiveTrait({ type: "string", name: "font", - description: "" + description: "Il font delle etichette di questa classe" }) font: string = ""; @primitiveTrait({ type: "string", name: "fillColor", - description: "" + description: "Il colore del testo delle etichette di questa classe" }) fillColor: string = "red"; @primitiveTrait({ type: "string", name: "backgroundColor", - description: "" + description: "Il colore dello sfondo delle etichette di questa classe" }) backgroundColor: string = "transparent"; } @@ -63,14 +67,16 @@ export class RerDistanceShowFilterTraits extends ModelTraits { @primitiveTrait({ type: "number", name: "level", - description: "" + description: + "Valore della proprietà definita dal campo a cui si applica questa regola" }) level: number = 0; @primitiveTrait({ type: "number", name: "distance", - description: "" + description: + "La distanza massima fra feature e camera (in metri) oltre la quale la feature viene nascosta" }) distance: number = 0; @@ -95,21 +101,24 @@ export class RerFeatureShowFilterTraits extends ModelTraits { @primitiveTrait({ type: "number", name: "cameraTiltedAngle", - description: "" + description: + "Angolo (in gradi) sotto il quale la camera è considerata 'tilted', deve essere maggiore di " }) cameraTiltedAngle: number = 45; @primitiveTrait({ type: "number", name: "cameraLandedAngle", - description: "" + description: + "Angolo (in gradi) sotto il quale la camera è considerata 'landed', deve essere inferiore a " }) cameraLandedAngle: number = 25; @primitiveTrait({ type: "boolean", name: "hideFeaturesIfLanded", - description: "" + description: + "Se 'true', le feature di questo dataset vanno nascoste quando la camera è 'landed'" }) hideFeaturesIfLanded: boolean = true; @@ -124,53 +133,56 @@ export class RerFeatureShowFilterTraits extends ModelTraits { @objectArrayTrait({ type: RerDistanceShowFilterTraits, name: "tiltedDisplayDistanceCondition", - description: "", + description: + "Array che permette di indicare per ogni livello la distanza massima di visualizzazione", idProperty: "level" }) tiltedDisplayDistanceCondition: RerDistanceShowFilterTraits[] = []; } -export default class RerFeatureServerCatalogItemTraits extends ModelTraits { +export default class RerFeatureServerTraits extends ModelTraits { @primitiveTrait({ type: "boolean", name: "Append data", description: - "If 'true' append new data to old, if 'false' instead of replace them" + "Se 'true', i nuovi dati vengono aggiunti al dataset invece di sostituire quelli precedenti" }) appendData: boolean = false; @primitiveTrait({ type: "string", name: "levelField", - description: "" + description: "Il campo della feature da cui leggere il suo livello" }) levelField: string = ""; @primitiveTrait({ type: "number", name: "levelMax", - description: "" + description: "Il livello massimo atteso delle features del dataset" }) levelMax: number = 16; @primitiveTrait({ type: "number", name: "levelMin", - description: "" + description: "Il livello minimo atteso delle features del dataset" }) levelMin: number = 7; @objectTrait({ type: RerFeatureShowFilterTraits, name: "displayFilter", - description: "" + description: + "Definisce le regole di visualizzazione delle features del dataset" }) displayFilter?: RerFeatureShowFilterTraits; @objectArrayTrait({ type: RerLabelTraits, name: "labels", - description: "", + description: + "Definisce la visualizzazione e lo stile delle etichette delle features del dataset", idProperty: "levelMin" }) labels: RerLabelTraits[] = []; @@ -179,7 +191,7 @@ export default class RerFeatureServerCatalogItemTraits extends ModelTraits { type: StyleTraits, name: "Style", description: - "Styling rules that follow [simplestyle-spec](https://github.com/mapbox/simplestyle-spec). If using geojson-vt/TableStyleTraits, then this style will be used as the default style (which will be overriden by TableStyleTraits). To disable TableStyleTraits, see `disableTableStyle`." + "Stilizzazione usando le regole di [simplestyle-spec](https://github.com/mapbox/simplestyle-spec)" }) style?: StyleTraits; @@ -187,14 +199,15 @@ export default class RerFeatureServerCatalogItemTraits extends ModelTraits { name: "Per property styles", type: PerPropertyGeoJsonStyleTraits, description: - "Override feature styles according to their properties. This is only supported for cesium primitives (see `forceCesiumPrimitives`)", + "Sovrascrive lo stile delle singole feature in base alle proprietà", idProperty: "index" }) perPropertyStyles: PerPropertyGeoJsonStyleTraits[] = []; @anyTrait({ name: "drawingInfo", - description: "" + description: + "Stilizzazione usando le regole di [ESRI ArcGis drawingInfo](https://developers.arcgis.com/web-map-specification/objects/drawingInfo/)" }) drawingInfo: any; } From d4eeff2c4f1528c84b0339733339e2dcce177b6d Mon Sep 17 00:00:00 2001 From: glughi Date: Thu, 10 Feb 2022 15:50:58 +0100 Subject: [PATCH 042/215] Add RerFeatureServer traits to ArcGisFeatureServerCatalogItem --- .../Esri/ArcGisFeatureServerCatalogItem.ts | 486 ++++++++++++++++-- .../ArcGisFeatureServerCatalogItemTraits.ts | 9 + 2 files changed, 466 insertions(+), 29 deletions(-) diff --git a/lib/Models/Catalog/Esri/ArcGisFeatureServerCatalogItem.ts b/lib/Models/Catalog/Esri/ArcGisFeatureServerCatalogItem.ts index 2c10e4c6a0c..da64ba5d951 100644 --- a/lib/Models/Catalog/Esri/ArcGisFeatureServerCatalogItem.ts +++ b/lib/Models/Catalog/Esri/ArcGisFeatureServerCatalogItem.ts @@ -1,5 +1,5 @@ import i18next from "i18next"; -import { computed, runInAction } from "mobx"; +import { computed, runInAction, toJS } from "mobx"; import Cartesian3 from "terriajs-cesium/Source/Core/Cartesian3"; import Color from "terriajs-cesium/Source/Core/Color"; import createGuid from "terriajs-cesium/Source/Core/createGuid"; @@ -36,6 +36,18 @@ import GeoJsonCatalogItem from "../CatalogItems/GeoJsonCatalogItem"; import proxyCatalogItemUrl from "../proxyCatalogItemUrl"; import { getLineStyleCesium } from "./esriLineStyle"; import GeoJsonDataSource from "terriajs-cesium/Source/DataSources/GeoJsonDataSource"; +import { RerLabelTraits } from "../../../Traits/TraitsClasses/RerFeatureServerTraits"; +import { + LabelGraphics, + VerticalOrigin, + Cartesian2, + Scene, + Rectangle, + DistanceDisplayCondition +} from "terriajs-cesium"; +import CesiumEvent from "terriajs-cesium/Source/Core/Event"; +import CesiumMath from "terriajs-cesium/Source/Core/Math"; +import { FeatureCollectionWithCrs } from "../../../ModelMixins/GeojsonMixin"; const proj4 = require("proj4").default; @@ -165,6 +177,12 @@ interface Extent { spatialReference?: SpatialReference; } +enum CameraPitchState { + normal = 0, + tilted = 1, + landed = 2 +} + class FeatureServerStratum extends LoadableStratum( ArcGisFeatureServerCatalogItemTraits ) { @@ -196,6 +214,16 @@ class FeatureServerStratum extends LoadableStratum( return this._geoJsonItem; } + mergeData(newData: FeatureCollectionWithCrs) { + //console.log("mergeData"); + + this._geoJsonItem.setTrait( + CommonStrata.user, + "geoJsonData", + newData as any + ); + } + static async load(item: ArcGisFeatureServerCatalogItem) { if (!isDefined(item.url) || !isDefined(item.uri)) { throw new TerriaError({ @@ -226,7 +254,15 @@ class FeatureServerStratum extends LoadableStratum( ); let tempEsriJson: any = null; const esriJson = await loadGeoJson(item); - const geoJsonData = featureDataToGeoJson(esriJson.layers[0]); + + let isMapServerQuery = false; + runInAction(() => { + isMapServerQuery = item.isMapServerQuery; + }); + + const geoJsonData = featureDataToGeoJson( + isMapServerQuery ? esriJson : esriJson.layers[0] + ); if (!geoJsonData) { throw TerriaError.from("Failed to convert ESRI json data into GeoJSON"); } @@ -236,9 +272,50 @@ class FeatureServerStratum extends LoadableStratum( geoJsonData as any ); + runInAction(() => { + // Add appendData + geoJsonItem.setTrait( + CommonStrata.definition, + "appendData", + item.rerFeatureService.appendData as any + ); + + // Add style + geoJsonItem.setTrait( + CommonStrata.definition, + "style", + item.rerFeatureService.style as any + ); + + // Add perPropertyStyles + geoJsonItem.setTrait( + CommonStrata.definition, + "perPropertyStyles", + item.rerFeatureService.perPropertyStyles as any + ); + }); + (await geoJsonItem.loadMetadata()).throwIfError(); const featureServer = await loadMetadata(item); + // Add drawingInfo Renderer + runInAction(() => { + if ( + !item.useStyleInformationFromService && + item.rerFeatureService.drawingInfo + ) { + featureServer.drawingInfo.renderer = toJS( + item.rerFeatureService.drawingInfo + ); + + item.setTrait( + CommonStrata.definition, + "useStyleInformationFromService", + true + ); + } + }); + const stratum = new FeatureServerStratum( item, geoJsonItem, @@ -395,17 +472,159 @@ export default class ArcGisFeatureServerCatalogItem extends MappableMixin( return i18next.t("models.arcGisFeatureServerCatalogItem.name"); } + protected removeCesiumMoveEndEventListener: + | CesiumEvent.RemoveCallback + | undefined; + protected removeLeafletMoveEndEventListener: boolean = false; + public level = 0; + public bbox = new Rectangle(); + protected _oldLevel = 0; + protected _cameraPitch: number = CameraPitchState.normal; + protected _cameraPitchIsChanged = true; + protected _displayConditions: { [key: number]: ConstantProperty } = {}; + + protected checkReload() { + let changed = false; + + if (this.terria.cesium?.scene) { + let level = this.terria.cesium.getZoomLevel(); + if (!level) return; + if (level > this.rerFeatureService.levelMax) + level = this.rerFeatureService.levelMax; + if (this.level !== level) { + this.level = level; + changed = true; + } + + const pitch = this.terria.cesium.scene.camera.pitch; + if ( + pitch >= + -CesiumMath.toRadians( + this.rerFeatureService.displayFilter.cameraLandedAngle + ) + ) { + if (this._cameraPitch !== CameraPitchState.landed) { + this._cameraPitch = CameraPitchState.landed; + this._cameraPitchIsChanged = true; + } + } else if ( + pitch >= + -CesiumMath.toRadians( + this.rerFeatureService.displayFilter.cameraTiltedAngle + ) + ) { + if (this._cameraPitch !== CameraPitchState.tilted) { + this._cameraPitch = CameraPitchState.tilted; + this._cameraPitchIsChanged = true; + } + } else if (this._cameraPitch !== CameraPitchState.normal) { + this._cameraPitch = CameraPitchState.normal; + this._cameraPitchIsChanged = true; + } + + const newRect = this.terria.cesium.getCurrentCameraView().rectangle; + if (newRect && !this.bbox.equalsEpsilon(newRect, newRect.width * 0.03)) { + this.bbox = newRect; + changed = true; + } + } else if (this.terria.leaflet) { + let level = this.terria.leaflet.getZoomLevel(); + if (!level) return; + if (level > this.rerFeatureService.levelMax) + level = this.rerFeatureService.levelMax; + if (this.level !== level) { + this.level = level; + changed = true; + } + + const newRect = this.terria.leaflet.getCurrentCameraView().rectangle; + if (newRect && !this.bbox.equalsEpsilon(newRect, newRect.width * 0.03)) { + this.bbox = newRect; + changed = true; + } + } + + if (changed && this.strata.has(FeatureServerStratum.stratumName)) { + console.log( + `rerFeatureService = zoom level: ${this.level} - cameraPitchState: ${this._cameraPitch}` + ); + + this.forceLoadMetadata().then(() => { + this.forceLoadMapItems(); + }); + } + } + protected forceLoadMetadata(): Promise { - return FeatureServerStratum.load(this).then(stratum => { - runInAction(() => { - this.strata.set(FeatureServerStratum.stratumName, stratum); + console.log("forceLoadMetadata"); + + if (!this.removeCesiumMoveEndEventListener && this.terria.cesium) { + //console.log("cesium"); + + const that = this; + this.removeCesiumMoveEndEventListener = this.terria.cesium.scene.camera.moveEnd.addEventListener( + function() { + runInAction(() => { + that.checkReload(); + }); + } + ); + //runInAction(() => { that.checkReload() }); + } + if (!this.removeLeafletMoveEndEventListener && this.terria.leaflet) { + //console.log("leaf"); + + const that = this; + this.terria.leaflet.map.on("zoomlevelschange", function() { + runInAction(() => { + that.checkReload(); + }); + }); + this.terria.leaflet.map.on("moveend", function() { + runInAction(() => { + that.checkReload(); + }); }); + this.removeLeafletMoveEndEventListener = true; + } + runInAction(() => { + this.checkReload(); }); + if (this.strata.has(FeatureServerStratum.stratumName)) { + //console.log("strato vecchio"); + + return loadGeoJson(this).then(esriJson => { + const geoJsonData = featureDataToGeoJson(esriJson); + const oldStratum = ( + this.strata.get(FeatureServerStratum.stratumName) + ); + if (oldStratum && geoJsonData) { + oldStratum.mergeData(geoJsonData); + } + }); + } else { + //console.log("strato nuovo"); + + return FeatureServerStratum.load(this).then(stratum => { + runInAction(() => { + this.strata.set(FeatureServerStratum.stratumName, stratum); + }); + }); + } } protected async forceLoadMapItems() { const that = this; if (isDefined(that.geoJsonItem)) { + console.log("item.forceLoadMapItems"); + + const itemsToSuspend = that.mapItems.filter( + item => item instanceof GeoJsonDataSource + ); + if (itemsToSuspend && itemsToSuspend.length > 0) { + (itemsToSuspend[0]).entities.suspendEvents(); + } + (await that.geoJsonItem.loadMapItems()).throwIfError(); const featureServerData = that.featureServerData; if ( @@ -418,7 +637,7 @@ export default class ArcGisFeatureServerCatalogItem extends MappableMixin( that.mapItems.forEach(mapItem => { if (!(mapItem instanceof GeoJsonDataSource)) return; const entities = mapItem.entities; - entities.suspendEvents(); + //entities.suspendEvents(); // A 'simple' renderer only applies a single style to all features if (rendererType === "simple") { @@ -456,9 +675,157 @@ export default class ArcGisFeatureServerCatalogItem extends MappableMixin( }); } - entities.resumeEvents(); + //entities.resumeEvents(); + }); + } + + console.log("pronto"); + + if (that.rerFeatureService) { + runInAction(() => { + if (that._displayConditions) { + that.rerFeatureService.displayFilter.tiltedDisplayDistanceCondition.forEach( + element => { + that._displayConditions[element.level] = new ConstantProperty( + new DistanceDisplayCondition(0, element.distance) + ); + } + ); + } + + const isCameraLanded = that._cameraPitch === CameraPitchState.landed; + const showLabels = + that.rerFeatureService.labels && + that.rerFeatureService.labels.length > 0; + const levelField = that.rerFeatureService.levelField; + that.mapItems.forEach(mapItem => { + if (!(mapItem instanceof GeoJsonDataSource)) return; + const entities = mapItem.entities; + + console.log(entities.values.length); + + entities.values.forEach(function(entity) { + if (entity.billboard) { + if ( + !isCameraLanded && + entity.properties && + entity.properties[levelField].getValue() <= that.level + ) { + if (showLabels) { + // Labels + const labelClass: + | RerLabelTraits + | undefined = that.rerFeatureService.labels.find( + (elem: RerLabelTraits) => + entity?.properties && + entity.properties[levelField] && + entity.properties[levelField] >= elem.levelMin && + entity.properties[levelField] < elem.levelMax + ); + + if (labelClass?.show && !entity.label) { + entity.label = new LabelGraphics({ + text: entity.properties[labelClass.labelField], + font: labelClass.font, + fillColor: Color.fromCssColorString( + labelClass.fillColor + ), + backgroundColor: Color.fromCssColorString( + labelClass.backgroundColor + ), + showBackground: + typeof labelClass.backgroundColor !== "undefined" && + labelClass.backgroundColor !== "transparent" + ? true + : false, + verticalOrigin: VerticalOrigin.TOP, + show: true, + heightReference: HeightReference.CLAMP_TO_GROUND, + disableDepthTestDistance: Number.POSITIVE_INFINITY + }); + } + } + + entity.show = true; + entity.billboard.verticalOrigin = new ConstantProperty( + VerticalOrigin.BOTTOM + ); + entity.billboard.disableDepthTestDistance = new ConstantProperty( + Number.POSITIVE_INFINITY + ); + + if (that.terria.cesium && that._cameraPitchIsChanged) { + const lvl = entity.properties[levelField].getValue(); + entity.billboard.distanceDisplayCondition = + that._cameraPitch === CameraPitchState.normal + ? undefined + : that._displayConditions[lvl]; + if (entity.label) { + entity.label.distanceDisplayCondition = + entity.billboard.distanceDisplayCondition; + } + } + } else { + entity.show = false; + } + } + }); + + if (that._cameraPitchIsChanged) { + that._cameraPitchIsChanged = false; + } + }); }); } + + // Label + /*runInAction(() => { + if (that.rerFeatureService && that.rerFeatureService.labels && that.rerFeatureService.labels.length > 0) { + const levelField = that.rerFeatureService.levelField; + that.mapItems.forEach(mapItem => { + if (!(mapItem instanceof GeoJsonDataSource)) return; + const entities = mapItem.entities; + //entities.suspendEvents(); + + entities.values.forEach(function (entity) { + const labelClass: RerLabelTraits | undefined = that.rerFeatureService.labels.find((elem: RerLabelTraits) => + entity?.properties && entity.properties[levelField] + && entity.properties[levelField] >= elem.levelMin && entity.properties[levelField] < elem.levelMax); + + if (labelClass?.show && entity.properties) { + entity.label = new LabelGraphics({ + text: entity.properties[labelClass.labelField], + font: labelClass.font, + fillColor: Color.fromCssColorString(labelClass.fillColor), + backgroundColor: Color.fromCssColorString( + labelClass.backgroundColor + ), + showBackground: + typeof labelClass.backgroundColor !== "undefined" && + labelClass.backgroundColor !== "transparent" + ? true + : false, + verticalOrigin: VerticalOrigin.TOP, + show: true, + heightReference: HeightReference.CLAMP_TO_GROUND, + disableDepthTestDistance: Number.POSITIVE_INFINITY + }); + } + else if (entity.label) { + entity.label.show = new ConstantProperty(false); + } + }); + //entities.resumeEvents(); + }); + } + });*/ + + const itemsToResume = that.mapItems.filter( + item => item instanceof GeoJsonDataSource + ); + if (itemsToResume && itemsToResume.length > 0) { + (itemsToResume[0]).entities.resumeEvents(); + } } } @@ -492,6 +859,13 @@ export default class ArcGisFeatureServerCatalogItem extends MappableMixin( } return []; } + + @computed get isMapServerQuery(): boolean { + const url = cleanUrl(this.url || "0d"); + const regex = /^(.*MapServer)\/(\d+)/; + const matches = url.match(regex); + return !!matches; + } } function setupUniqueValueRenderer(renderer: UniqueValueRenderer) { @@ -760,30 +1134,79 @@ function buildMetadataUrl(catalogItem: ArcGisFeatureServerCatalogItem) { } function buildGeoJsonUrl(catalogItem: ArcGisFeatureServerCatalogItem) { - const url = cleanUrl(catalogItem.url || "0d"); - const urlComponents = splitLayerIdFromPath(url); - const layerId = urlComponents.layerId; - - if (!isDefined(layerId)) { - throw networkRequestError({ - title: i18next.t( - "models.arcGisFeatureServerCatalogItem.invalidServiceTitle" - ), - message: i18next.t( - "models.arcGisFeatureServerCatalogItem.invalidServiceMessage" - ) - }); + if (catalogItem.isMapServerQuery) { + return buildMapServerQueryUrl(catalogItem); + } else { + const url = cleanUrl(catalogItem.url || "0d"); + const urlComponents = splitLayerIdFromPath(url); + const layerId = urlComponents.layerId; + + if (!isDefined(layerId)) { + throw networkRequestError({ + title: i18next.t( + "models.arcGisFeatureServerCatalogItem.invalidServiceTitle" + ), + message: i18next.t( + "models.arcGisFeatureServerCatalogItem.invalidServiceMessage" + ) + }); + } + + return proxyCatalogItemUrl( + catalogItem, + new URI(urlComponents.urlWithoutLayerId) + .segment("query") + .addQuery("f", "json") + .addQuery( + "layerDefs", + "{" + layerId + ':"' + catalogItem.layerDef + '"}' + ) + .addQuery("outSR", "4326") + .toString() + ); } +} - return proxyCatalogItemUrl( - catalogItem, - new URI(urlComponents.urlWithoutLayerId) - .segment("query") - .addQuery("f", "json") - .addQuery("layerDefs", "{" + layerId + ':"' + catalogItem.layerDef + '"}') - .addQuery("outSR", "4326") - .toString() - ); +function buildMapServerQueryUrl(catalogItem: ArcGisFeatureServerCatalogItem) { + var url = new URI(cleanUrl(catalogItem.url || "0d")) + .segment("query") + .addQuery( + "where", + `${ + catalogItem.rerFeatureService.levelField + }<=${catalogItem.level.toString()}` + ) + .addQuery( + "geometry" /*catalogItem.cameraPitch > 0 && typeof catalogItem.polygon !== 'undefined' && catalogItem.polygon.length > 0 ? + JSON.stringify({rings: [[ + [CesiumMath.toDegrees(catalogItem.polygon[0].longitude), CesiumMath.toDegrees(item.polygon[0].latitude)], + [CesiumMath.toDegrees(catalogItem.polygon[1].longitude), CesiumMath.toDegrees(item.polygon[1].latitude)], + [CesiumMath.toDegrees(item.polygon[2].longitude), CesiumMath.toDegrees(item.polygon[2].latitude)], + [CesiumMath.toDegrees(item.polygon[3].longitude), CesiumMath.toDegrees(item.polygon[3].latitude)] + ]]}) :*/, + CesiumMath.toDegrees(catalogItem.bbox.west) + + "," + + CesiumMath.toDegrees(catalogItem.bbox.south) + + "," + + CesiumMath.toDegrees(catalogItem.bbox.east) + + "," + + CesiumMath.toDegrees(catalogItem.bbox.north) + ) + .addQuery( + "geometryType", + /*item.cameraPitch > 0 ? "esriGeometryPolygon" :*/ "esriGeometryEnvelope" + ) + .addQuery("spatialRel", "esriSpatialRelIndexIntersects") + .addQuery("outFields", "*") + .addQuery("returnGeometry", "true") + .addQuery("outSR", "4326") + .addQuery("f", "geojson") + .toString(); + + //console.log("url:"); + //console.log(url); + + return url; } function splitLayerIdFromPath(url: string) { @@ -806,3 +1229,8 @@ function cleanUrl(url: string): string { uri.search(""); return uri.toString(); } + +function getRayPosition(coord: Cartesian2, scene: Scene) { + const ray = scene.camera.getPickRay(coord); + return scene.globe.pick(ray, scene); +} diff --git a/lib/Traits/TraitsClasses/ArcGisFeatureServerCatalogItemTraits.ts b/lib/Traits/TraitsClasses/ArcGisFeatureServerCatalogItemTraits.ts index e3101773dcb..a4fa6fce7eb 100644 --- a/lib/Traits/TraitsClasses/ArcGisFeatureServerCatalogItemTraits.ts +++ b/lib/Traits/TraitsClasses/ArcGisFeatureServerCatalogItemTraits.ts @@ -1,9 +1,11 @@ import primitiveTrait from "../Decorators/primitiveTrait"; +import objectTrait from "../Decorators/objectTrait"; import mixTraits from "../mixTraits"; import CatalogMemberTraits from "./CatalogMemberTraits"; import LegendOwnerTraits from "./LegendOwnerTraits"; import MappableTraits from "./MappableTraits"; import UrlTraits from "./UrlTraits"; +import RerFeatureServerTraits from "./RerFeatureServerTraits"; export default class ArcGisFeatureServerCatalogItemTraits extends mixTraits( UrlTraits, @@ -34,4 +36,11 @@ export default class ArcGisFeatureServerCatalogItemTraits extends mixTraits( "The 'layerDef' string to pass to the server when requesting geometry." }) layerDef: string = "1=1"; + + @objectTrait({ + type: RerFeatureServerTraits, + name: "rerFeatureService", + description: "Defines if the layer is a 'rerFeatureService' and its rules" + }) + rerFeatureService?: RerFeatureServerTraits; } From 5425f0766bd436afa57cd53898491e0c1950cc87 Mon Sep 17 00:00:00 2001 From: glughi Date: Sat, 12 Feb 2022 00:47:12 +0100 Subject: [PATCH 043/215] Disable extra credit links --- lib/Models/Terria.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/Models/Terria.ts b/lib/Models/Terria.ts index fdce9dc5966..731236808cd 100644 --- a/lib/Models/Terria.ts +++ b/lib/Models/Terria.ts @@ -462,11 +462,11 @@ export default class Terria { feedbackMinLength: 0, extraCreditLinks: [ // Default credit links (shown at the bottom of the Cesium map) - { + /*{ text: "map.extraCreditLinks.dataAttribution", url: "about.html#data-attribution" }, - { text: "map.extraCreditLinks.disclaimer", url: "about.html#disclaimer" } + { text: "map.extraCreditLinks.disclaimer", url: "about.html#disclaimer" }*/ ] }; From 92d78a24a153fed84deba69d3c618218731c446b Mon Sep 17 00:00:00 2001 From: glughi Date: Sat, 12 Feb 2022 00:47:52 +0100 Subject: [PATCH 044/215] Set site title from config.json --- lib/Models/Terria.ts | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/lib/Models/Terria.ts b/lib/Models/Terria.ts index 731236808cd..01eb72ee322 100644 --- a/lib/Models/Terria.ts +++ b/lib/Models/Terria.ts @@ -882,6 +882,11 @@ export default class Terria { this.configParameters.customRequestSchedulerLimits ); + // Set site title from config.json + if (this.configParameters.appName) { + document.title = this.configParameters.appName; + } + this.analytics?.start(this.configParameters); this.analytics?.logEvent( Category.launch, From 611f4a140260dd144b9137a23abe34a806521c43 Mon Sep 17 00:00:00 2001 From: glughi Date: Sat, 12 Feb 2022 00:50:03 +0100 Subject: [PATCH 045/215] smallUserInterface improvements --- lib/ReactViewModels/ViewState.ts | 1 + .../Map/Navigation/Items/ZoomControl.tsx | 42 +++++++------ .../Map/Navigation/registerMapNavigations.tsx | 4 +- lib/ReactViews/Mobile/MobileHeader.jsx | 46 +++++++++++++- lib/ReactViews/Mobile/MobileModalWindow.jsx | 40 +++++++++++- lib/ReactViews/Mobile/mobile-header.scss | 16 ++++- lib/ReactViews/Mobile/mobile-header.scss.d.ts | 2 + .../StandardUserInterface/MapColumn.jsx | 61 +++++++++++-------- .../StandardUserInterface/map-column.scss | 12 ++++ .../map-column.scss.d.ts | 2 + 10 files changed, 175 insertions(+), 51 deletions(-) diff --git a/lib/ReactViewModels/ViewState.ts b/lib/ReactViewModels/ViewState.ts index 98ec6edf435..e6294c673e2 100644 --- a/lib/ReactViewModels/ViewState.ts +++ b/lib/ReactViewModels/ViewState.ts @@ -53,6 +53,7 @@ interface ViewStateOptions { export default class ViewState { readonly mobileViewOptions = Object.freeze({ + addData: "addData", data: "data", preview: "preview", nowViewing: "nowViewing", diff --git a/lib/ReactViews/Map/Navigation/Items/ZoomControl.tsx b/lib/ReactViews/Map/Navigation/Items/ZoomControl.tsx index 31ea8093c42..d9d717d4bc1 100644 --- a/lib/ReactViews/Map/Navigation/Items/ZoomControl.tsx +++ b/lib/ReactViews/Map/Navigation/Items/ZoomControl.tsx @@ -18,11 +18,13 @@ import { RawButton } from "../../../../Styled/Button"; import Icon, { GLYPHS } from "../../../../Styled/Icon"; import Ul, { Li } from "../../../../Styled/List"; import Terria from "./../../../../Models/Terria"; +import ViewState from "../../../../ReactViewModels/ViewState"; const Tween = require("terriajs-cesium/Source/ThirdParty/Tween").default; interface PropTypes extends WithTranslation { terria: Terria; + viewState: ViewState; theme: DefaultTheme; t: TFunction; } @@ -185,15 +187,17 @@ class ZoomControl extends React.Component { return (
      -
    • - - - -
    • + {!this.props.viewState.useSmallScreenInterface && ( +
    • + + + +
    • + )}
    • {
    • -
    • - - - -
    • + {!this.props.viewState.useSmallScreenInterface && ( +
    • + + + +
    • + )}
    ); diff --git a/lib/ReactViews/Map/Navigation/registerMapNavigations.tsx b/lib/ReactViews/Map/Navigation/registerMapNavigations.tsx index a9b580fcb3c..668e1742755 100644 --- a/lib/ReactViews/Map/Navigation/registerMapNavigations.tsx +++ b/lib/ReactViews/Map/Navigation/registerMapNavigations.tsx @@ -59,8 +59,8 @@ export const registerMapNavigations = (viewState: ViewState) => { controller: zoomToolController, location: "TOP", order: 2, - screenSize: "medium", - render: + screenSize: undefined, + render: }); const myLocation = new MyLocation({ terria }); diff --git a/lib/ReactViews/Mobile/MobileHeader.jsx b/lib/ReactViews/Mobile/MobileHeader.jsx index f57aa5c0587..768edad627e 100644 --- a/lib/ReactViews/Mobile/MobileHeader.jsx +++ b/lib/ReactViews/Mobile/MobileHeader.jsx @@ -15,6 +15,7 @@ import Branding from "../SidePanel/Branding"; import Styles from "./mobile-header.scss"; import MobileMenu from "./MobileMenu"; import MobileModalWindow from "./MobileModalWindow"; +import ViewerMode, { setViewerMode } from "../../Models/ViewerMode"; const MobileHeader = observer( createReactClass({ @@ -78,6 +79,23 @@ const MobileHeader = observer( this.toggleView(this.props.viewState.mobileViewOptions.nowViewing); }, + onMobileAddDataCatalogClicked() { + this.toggleView(this.props.viewState.mobileViewOptions.addData); + }, + + onMobileSwitchViewClicked() { + runInAction(() => { + const mainViewer = this.props.terria.mainViewer; + if (mainViewer.viewerMode === ViewerMode.Leaflet) { + setViewerMode("3d", mainViewer); + this.props.terria.setLocalProperty("viewermode", ViewerMode.Cesium); + } else { + setViewerMode("2d", mainViewer); + this.props.terria.setLocalProperty("viewermode", ViewerMode.Leaflet); + } + }); + }, + changeLocationSearchText(newText) { runInAction(() => { this.props.viewState.searchState.locationSearchText = newText; @@ -194,18 +212,44 @@ const MobileHeader = observer( background-color: ${p => p.theme.dark}; `} > + + 0}>
    + ); + case viewState.mobileViewOptions.addData: + return ( + this.onFileAddFinished(files)} /> ); case viewState.mobileViewOptions.preview: diff --git a/lib/ReactViews/Mobile/mobile-header.scss b/lib/ReactViews/Mobile/mobile-header.scss index d536a6607c4..f9c7e8f2f58 100644 --- a/lib/ReactViews/Mobile/mobile-header.scss +++ b/lib/ReactViews/Mobile/mobile-header.scss @@ -33,6 +33,18 @@ vertical-align: top; } +.btn-view-mode { + composes: btn; + + position: relative; + margin: 0 $padding-small; + padding: $padding $padding $padding $padding; + width: auto; + text-align: center; + font-size: 0.95rem; + border-radius: 4px; +} + .btn-add { composes: btn; @@ -40,14 +52,14 @@ margin: 0 $padding-small; padding: $padding $padding $padding $padding * 3; width: auto; - text-align: right; + text-align: center; font-size: 0.95rem; border-radius: 4px; svg { position: absolute; top: $padding; - left: $padding/2; + left: $padding; fill: #ffffff; } } diff --git a/lib/ReactViews/Mobile/mobile-header.scss.d.ts b/lib/ReactViews/Mobile/mobile-header.scss.d.ts index f937e185b15..c7d36d3107a 100644 --- a/lib/ReactViews/Mobile/mobile-header.scss.d.ts +++ b/lib/ReactViews/Mobile/mobile-header.scss.d.ts @@ -5,9 +5,11 @@ interface CssExports { 'btn-add': string; 'btn-now-viewing': string; 'btn-search': string; + 'btn-view-mode': string; 'btnAdd': string; 'btnNowViewing': string; 'btnSearch': string; + 'btnViewMode': string; 'doubleDigit': string; 'formSearchData': string; 'group-left': string; diff --git a/lib/ReactViews/StandardUserInterface/MapColumn.jsx b/lib/ReactViews/StandardUserInterface/MapColumn.jsx index 12584765673..ec83399c4e9 100644 --- a/lib/ReactViews/StandardUserInterface/MapColumn.jsx +++ b/lib/ReactViews/StandardUserInterface/MapColumn.jsx @@ -146,34 +146,43 @@ const MapColumn = observer( viewState={this.props.viewState} />
    - - - - - - - -
    - */} + + +
    + +
    +
    + + - -
    -
    + + + + + +
    + + +
    + + + {/*
    */} {/* TODO: re-implement/support custom feedbacks */} {/* Date: Mon, 14 Feb 2022 19:03:05 +0100 Subject: [PATCH 046/215] Fix imports from terriajs-cesium --- .../Esri/ArcGisFeatureServerCatalogItem.ts | 93 ++----------------- 1 file changed, 8 insertions(+), 85 deletions(-) diff --git a/lib/Models/Catalog/Esri/ArcGisFeatureServerCatalogItem.ts b/lib/Models/Catalog/Esri/ArcGisFeatureServerCatalogItem.ts index da64ba5d951..c633b21beb3 100644 --- a/lib/Models/Catalog/Esri/ArcGisFeatureServerCatalogItem.ts +++ b/lib/Models/Catalog/Esri/ArcGisFeatureServerCatalogItem.ts @@ -37,14 +37,12 @@ import proxyCatalogItemUrl from "../proxyCatalogItemUrl"; import { getLineStyleCesium } from "./esriLineStyle"; import GeoJsonDataSource from "terriajs-cesium/Source/DataSources/GeoJsonDataSource"; import { RerLabelTraits } from "../../../Traits/TraitsClasses/RerFeatureServerTraits"; -import { - LabelGraphics, - VerticalOrigin, - Cartesian2, - Scene, - Rectangle, - DistanceDisplayCondition -} from "terriajs-cesium"; +import DistanceDisplayCondition from "terriajs-cesium/Source/Core/DistanceDisplayCondition"; +import Rectangle from "terriajs-cesium/Source/Core/Rectangle"; +import Cartesian2 from "terriajs-cesium/Source/Core/Cartesian2"; +import Scene from "terriajs-cesium/Source/Scene/Scene"; +import VerticalOrigin from "terriajs-cesium/Source/Scene/VerticalOrigin"; +import LabelGraphics from "terriajs-cesium/Source/DataSources/LabelGraphics"; import CesiumEvent from "terriajs-cesium/Source/Core/Event"; import CesiumMath from "terriajs-cesium/Source/Core/Math"; import { FeatureCollectionWithCrs } from "../../../ModelMixins/GeojsonMixin"; @@ -215,8 +213,6 @@ class FeatureServerStratum extends LoadableStratum( } mergeData(newData: FeatureCollectionWithCrs) { - //console.log("mergeData"); - this._geoJsonItem.setTrait( CommonStrata.user, "geoJsonData", @@ -556,11 +552,7 @@ export default class ArcGisFeatureServerCatalogItem extends MappableMixin( } protected forceLoadMetadata(): Promise { - console.log("forceLoadMetadata"); - if (!this.removeCesiumMoveEndEventListener && this.terria.cesium) { - //console.log("cesium"); - const that = this; this.removeCesiumMoveEndEventListener = this.terria.cesium.scene.camera.moveEnd.addEventListener( function() { @@ -569,11 +561,8 @@ export default class ArcGisFeatureServerCatalogItem extends MappableMixin( }); } ); - //runInAction(() => { that.checkReload() }); } if (!this.removeLeafletMoveEndEventListener && this.terria.leaflet) { - //console.log("leaf"); - const that = this; this.terria.leaflet.map.on("zoomlevelschange", function() { runInAction(() => { @@ -591,8 +580,6 @@ export default class ArcGisFeatureServerCatalogItem extends MappableMixin( this.checkReload(); }); if (this.strata.has(FeatureServerStratum.stratumName)) { - //console.log("strato vecchio"); - return loadGeoJson(this).then(esriJson => { const geoJsonData = featureDataToGeoJson(esriJson); const oldStratum = ( @@ -603,8 +590,6 @@ export default class ArcGisFeatureServerCatalogItem extends MappableMixin( } }); } else { - //console.log("strato nuovo"); - return FeatureServerStratum.load(this).then(stratum => { runInAction(() => { this.strata.set(FeatureServerStratum.stratumName, stratum); @@ -616,8 +601,6 @@ export default class ArcGisFeatureServerCatalogItem extends MappableMixin( protected async forceLoadMapItems() { const that = this; if (isDefined(that.geoJsonItem)) { - console.log("item.forceLoadMapItems"); - const itemsToSuspend = that.mapItems.filter( item => item instanceof GeoJsonDataSource ); @@ -679,8 +662,6 @@ export default class ArcGisFeatureServerCatalogItem extends MappableMixin( }); } - console.log("pronto"); - if (that.rerFeatureService) { runInAction(() => { if (that._displayConditions) { @@ -701,9 +682,6 @@ export default class ArcGisFeatureServerCatalogItem extends MappableMixin( that.mapItems.forEach(mapItem => { if (!(mapItem instanceof GeoJsonDataSource)) return; const entities = mapItem.entities; - - console.log(entities.values.length); - entities.values.forEach(function(entity) { if (entity.billboard) { if ( @@ -778,48 +756,6 @@ export default class ArcGisFeatureServerCatalogItem extends MappableMixin( }); } - // Label - /*runInAction(() => { - if (that.rerFeatureService && that.rerFeatureService.labels && that.rerFeatureService.labels.length > 0) { - const levelField = that.rerFeatureService.levelField; - that.mapItems.forEach(mapItem => { - if (!(mapItem instanceof GeoJsonDataSource)) return; - const entities = mapItem.entities; - //entities.suspendEvents(); - - entities.values.forEach(function (entity) { - const labelClass: RerLabelTraits | undefined = that.rerFeatureService.labels.find((elem: RerLabelTraits) => - entity?.properties && entity.properties[levelField] - && entity.properties[levelField] >= elem.levelMin && entity.properties[levelField] < elem.levelMax); - - if (labelClass?.show && entity.properties) { - entity.label = new LabelGraphics({ - text: entity.properties[labelClass.labelField], - font: labelClass.font, - fillColor: Color.fromCssColorString(labelClass.fillColor), - backgroundColor: Color.fromCssColorString( - labelClass.backgroundColor - ), - showBackground: - typeof labelClass.backgroundColor !== "undefined" && - labelClass.backgroundColor !== "transparent" - ? true - : false, - verticalOrigin: VerticalOrigin.TOP, - show: true, - heightReference: HeightReference.CLAMP_TO_GROUND, - disableDepthTestDistance: Number.POSITIVE_INFINITY - }); - } - else if (entity.label) { - entity.label.show = new ConstantProperty(false); - } - }); - //entities.resumeEvents(); - }); - } - });*/ - const itemsToResume = that.mapItems.filter( item => item instanceof GeoJsonDataSource ); @@ -1177,13 +1113,7 @@ function buildMapServerQueryUrl(catalogItem: ArcGisFeatureServerCatalogItem) { }<=${catalogItem.level.toString()}` ) .addQuery( - "geometry" /*catalogItem.cameraPitch > 0 && typeof catalogItem.polygon !== 'undefined' && catalogItem.polygon.length > 0 ? - JSON.stringify({rings: [[ - [CesiumMath.toDegrees(catalogItem.polygon[0].longitude), CesiumMath.toDegrees(item.polygon[0].latitude)], - [CesiumMath.toDegrees(catalogItem.polygon[1].longitude), CesiumMath.toDegrees(item.polygon[1].latitude)], - [CesiumMath.toDegrees(item.polygon[2].longitude), CesiumMath.toDegrees(item.polygon[2].latitude)], - [CesiumMath.toDegrees(item.polygon[3].longitude), CesiumMath.toDegrees(item.polygon[3].latitude)] - ]]}) :*/, + "geometry", CesiumMath.toDegrees(catalogItem.bbox.west) + "," + CesiumMath.toDegrees(catalogItem.bbox.south) + @@ -1192,20 +1122,13 @@ function buildMapServerQueryUrl(catalogItem: ArcGisFeatureServerCatalogItem) { "," + CesiumMath.toDegrees(catalogItem.bbox.north) ) - .addQuery( - "geometryType", - /*item.cameraPitch > 0 ? "esriGeometryPolygon" :*/ "esriGeometryEnvelope" - ) + .addQuery("geometryType", "esriGeometryEnvelope") .addQuery("spatialRel", "esriSpatialRelIndexIntersects") .addQuery("outFields", "*") .addQuery("returnGeometry", "true") .addQuery("outSR", "4326") .addQuery("f", "geojson") .toString(); - - //console.log("url:"); - //console.log(url); - return url; } From b08cb302ab35fb59a688438c93c7afc2a7ba8486 Mon Sep 17 00:00:00 2001 From: glughi Date: Tue, 15 Feb 2022 15:47:37 +0100 Subject: [PATCH 047/215] Fix Load button in SharePanel --- .../Map/Panels/SharePanel/FileInput.jsx | 2 +- .../Map/Panels/SharePanel/SharePanel.jsx | 49 +++++++++---------- 2 files changed, 24 insertions(+), 27 deletions(-) diff --git a/lib/ReactViews/Map/Panels/SharePanel/FileInput.jsx b/lib/ReactViews/Map/Panels/SharePanel/FileInput.jsx index ef1c4ff20f1..b1b99a6634c 100644 --- a/lib/ReactViews/Map/Panels/SharePanel/FileInput.jsx +++ b/lib/ReactViews/Map/Panels/SharePanel/FileInput.jsx @@ -34,7 +34,6 @@ const FileInput = createReactClass({ }, render() { - const { t } = this.props; return (
    this.setState({ hovered: false })} > 0; }, - /* Load map config from a file */ - loadMapFromFile() { - fileDialog({ multiple: false, accept: ".geo3d" }).then(file => { - if (file.length == 1) { - var reader = new FileReader(); - reader.onload = function(e) { - window.open(e.target.result, "_self"); - }; - reader.readAsText(file[0]); - } - }); - }, - renderWarning() { const unshareableItems = this.props.terria.catalog.userAddedDataGroup.memberModels.filter( model => !isShareable(this.props.terria)(model.uniqueId) @@ -491,18 +478,15 @@ const SharePanel = observer(
    Salva o carica una mappa da file
    - {/*
    - Salva - - */} -
    Date: Tue, 15 Feb 2022 15:49:01 +0100 Subject: [PATCH 048/215] Fix lint warnings --- lib/ReactViews/Mobile/MobileHeader.jsx | 6 ----- .../StandardUserInterface/MapColumn.jsx | 24 ------------------- .../Workbench/Controls/ViewingControls.jsx | 4 ++-- 3 files changed, 2 insertions(+), 32 deletions(-) diff --git a/lib/ReactViews/Mobile/MobileHeader.jsx b/lib/ReactViews/Mobile/MobileHeader.jsx index 768edad627e..ee0e7e89206 100644 --- a/lib/ReactViews/Mobile/MobileHeader.jsx +++ b/lib/ReactViews/Mobile/MobileHeader.jsx @@ -221,18 +221,12 @@ const MobileHeader = observer( ViewerMode.Leaflet ? "3D" : "2D"} - {/**/}
    - {/**/}
    @@ -182,29 +181,6 @@ const MapColumn = observer(
    - {/*
    */} - {/* TODO: re-implement/support custom feedbacks */} - {/* -
    - -
    -
    */} - Date: Wed, 16 Feb 2022 17:15:11 +0100 Subject: [PATCH 049/215] Bump to rer3d+8.1.16 --- CHANGES.md | 20 ++++++++++++++++++++ package.json | 4 ++-- 2 files changed, 22 insertions(+), 2 deletions(-) diff --git a/CHANGES.md b/CHANGES.md index 9a6a5c8269c..a22345519c1 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -1,6 +1,26 @@ Change Log ========== +#### rer3d+8.1.16 +* Review and merge customizations from rer3d v7 + * Set default line stroke width to 4 px + * Add save and load functions to SharePanel + * Add MeasurableTraits + * Clamp to ground GeoJson, Kml, Gpx + * Add elevation to FeatureInfo + * Add CoordsPanel + * Remove elevation error in coordinates + * smallUserInterface improvements + * Increase Leaflet max zoom level from 18 to 21 + * Add NominatimSearchProvider + * Add RerSearchProvider + * Fix BingMapSearchProvider zoom to location +* Add appendData trait to GeoJson +* Add RerFeatureServerTraits traits +* Clamp to ground lines of Measure Tool +* Disable extra credit links +* Set site title from config.json + #### next release (8.1.17) - **Breaking changes**: diff --git a/package.json b/package.json index 645298d6154..c0c85b40935 100644 --- a/package.json +++ b/package.json @@ -8,7 +8,7 @@ }, "repository": { "type": "git", - "url": "http://github.com/TerriaJS/terriajs" + "url": "http://github.com/bioretics/rer3d-terriajs" }, "config": { "docRepo": "git@github.com:TerriaJS/Documentation.git" @@ -213,7 +213,7 @@ "react-shallow-testutils": "^3.0.0", "react-test-renderer": "^16.3.2", "regenerator-runtime": "^0.13.2", - "terriajs-server": "^3.3.3", + "terriajs-server": "bioretics/terriajs-server", "webpack-cli": "^3.3.11", "webpack-dev-server": "^3.1.14", "yaml": "^1.10.0" From ebe9cd330f6ab8aad195e6b3dcfcae86881203de Mon Sep 17 00:00:00 2001 From: glughi Date: Fri, 25 Feb 2022 10:23:49 +0100 Subject: [PATCH 050/215] Add control of the map from the keyboard --- CHANGES.md | 3 + .../StandardUserInterface/MapColumn.jsx | 126 ++++++++++++++++++ 2 files changed, 129 insertions(+) diff --git a/CHANGES.md b/CHANGES.md index a22345519c1..cdcbf5f14c1 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -1,6 +1,9 @@ Change Log ========== +#### next release rer3d +* Add control of the map from the keyboard + #### rer3d+8.1.16 * Review and merge customizations from rer3d v7 * Set default line stroke width to 4 px diff --git a/lib/ReactViews/StandardUserInterface/MapColumn.jsx b/lib/ReactViews/StandardUserInterface/MapColumn.jsx index ca68b72aa15..e0ba16467ab 100644 --- a/lib/ReactViews/StandardUserInterface/MapColumn.jsx +++ b/lib/ReactViews/StandardUserInterface/MapColumn.jsx @@ -20,10 +20,24 @@ import Loader from "../Loader"; import Styles from "./map-column.scss"; import { observer } from "mobx-react"; import SlideUpFadeIn from "../Transitions/SlideUpFadeIn/SlideUpFadeIn"; +import Button from "../../Styled/Button"; const isIE = FeatureDetection.isInternetExplorer(); const chromeVersion = FeatureDetection.chromeVersion(); +const flags = { + moveForward: false, + moveBackward: false, + moveUp: false, + moveDown: false, + moveLeft: false, + moveRight: false, + rotateUp: false, + rotateDown: false, + rotateLeft: false, + rotateRight: false +}; + /** * Right-hand column that contains the map, controls that sit over the map and sometimes the bottom dock containing * the timeline and charts. @@ -89,6 +103,21 @@ const MapColumn = observer( } }, + onKeyDown(event) { + const flagName = getFlagForKeyCode(event.key); + if (typeof flagName !== "undefined") { + flags[flagName] = true; + keyboardTickFunc(this.props); + } + }, + + onKeyUp(event) { + const flagName = getFlagForKeyCode(event.key); + if (typeof flagName !== "undefined") { + flags[flagName] = false; + } + }, + render() { const { customElements } = this.props; // const { t } = this.props; @@ -98,11 +127,15 @@ const MapColumn = observer( const mapCellClass = classNames(Styles.mapCell, { [Styles.mapCellChrome]: isAboveChrome75 }); + const keyboardControlDescription = + "Navigazione della mappa da tastiera\n w = zoom in\n s = zoom out\n q = muovi in su\n e = muovi in giù\n d = muovi a sinistra\n a = muovi a destra\n r = ruota in su\n f = ruota in giù\n z = ruota a sinistra\n x = ruota a destra"; return (
    {feedbackItem}
    + + +
    @@ -225,4 +282,73 @@ const MapColumn = observer( }) ); +function getFlagForKeyCode(keyCode) { + switch (keyCode) { + case "w": + return "moveForward"; + case "s": + return "moveBackward"; + case "q": + return "moveUp"; + case "e": + return "moveDown"; + case "d": + return "moveRight"; + case "a": + return "moveLeft"; + case "r": + return "rotateUp"; + case "f": + return "rotateDown"; + case "z": + return "rotateLeft"; + case "x": + return "rotateRight"; + default: + return undefined; + } +} + +function keyboardTickFunc(props) { + const scene = props.terria.cesium.scene; + const ellipsoid = scene.globe.ellipsoid; + const camera = scene.camera; + const cameraHeight = ellipsoid.cartesianToCartographic(camera.position) + .height; + const moveRate = cameraHeight / 100.0; + + if (flags.moveForward) { + camera.moveForward(moveRate); + } + if (flags.moveBackward) { + camera.moveBackward(moveRate); + } + if (flags.moveUp) { + camera.moveUp(moveRate); + } + if (flags.moveDown) { + camera.moveDown(moveRate); + } + if (flags.moveLeft) { + camera.moveLeft(moveRate); + } + if (flags.moveRight) { + camera.moveRight(moveRate); + } + if (flags.rotateUp) { + camera.lookUp(); + } + if (flags.rotateDown) { + camera.lookDown(); + } + if (flags.rotateLeft) { + camera.lookLeft(); + } + if (flags.rotateRight) { + camera.lookRight(); + } + + props.terria.currentViewer.notifyRepaintRequired(); +} + export default withTranslation()(MapColumn); From 3241743c3a9b44cc84959ab830b28d0ff6c5ff25 Mon Sep 17 00:00:00 2001 From: glughi Date: Fri, 4 Mar 2022 10:43:04 +0100 Subject: [PATCH 051/215] Fix clipboard --- .../Map/Panels/CoordsPanel/CoordsPanel.jsx | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/lib/ReactViews/Map/Panels/CoordsPanel/CoordsPanel.jsx b/lib/ReactViews/Map/Panels/CoordsPanel/CoordsPanel.jsx index 6ebb281ac26..2f6bc8e25cf 100644 --- a/lib/ReactViews/Map/Panels/CoordsPanel/CoordsPanel.jsx +++ b/lib/ReactViews/Map/Panels/CoordsPanel/CoordsPanel.jsx @@ -9,7 +9,7 @@ import Input from "../../../Styled/Input/Input.jsx"; import DropdownStyles from "../panel.scss"; import Styles from "./coords-panel.scss"; -// import clipboard from "clipboard"; +import clipboard from "clipboard"; import Box from "../../../../Styled/Box"; import Button from "../../../../Styled/Button"; import Select from "../../../../Styled/Select"; @@ -32,7 +32,20 @@ const CoordsText = props => { readonly } = props; - // const clipboardBtn = new clipboard(`.btn-copy-${name}`); + useEffect(() => { + const clipboardBtn = new clipboard(`.btn-copy-${name}`); + + clipboardBtn.on("success", evt => { + console.log("ok"); + }); + clipboardBtn.on("error", () => { + console.log("error"); + }); + + return function cleanup() { + clipboardBtn.destroy(); + }; + }, []); return (
    From 79999ff0f9d5b917f0a38b364bad6459be74d6ca Mon Sep 17 00:00:00 2001 From: glughi Date: Mon, 7 Mar 2022 17:16:33 +0100 Subject: [PATCH 052/215] Improve Kml polygon visualization --- lib/Models/Catalog/CatalogItems/KmlCatalogItem.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/Models/Catalog/CatalogItems/KmlCatalogItem.ts b/lib/Models/Catalog/CatalogItems/KmlCatalogItem.ts index faa30add537..a7e78c8522c 100644 --- a/lib/Models/Catalog/CatalogItems/KmlCatalogItem.ts +++ b/lib/Models/Catalog/CatalogItems/KmlCatalogItem.ts @@ -6,7 +6,7 @@ import Ellipsoid from "terriajs-cesium/Source/Core/Ellipsoid"; import JulianDate from "terriajs-cesium/Source/Core/JulianDate"; import PolygonHierarchy from "terriajs-cesium/Source/Core/PolygonHierarchy"; import Resource from "terriajs-cesium/Source/Core/Resource"; -import sampleTerrain from "terriajs-cesium/Source/Core/sampleTerrain"; +import sampleTerrainMostDetailed from "terriajs-cesium/Source/Core/sampleTerrainMostDetailed"; import ConstantProperty from "terriajs-cesium/Source/DataSources/ConstantProperty"; import KmlDataSource from "terriajs-cesium/Source/DataSources/KmlDataSource"; import Property from "terriajs-cesium/Source/DataSources/Property"; @@ -148,7 +148,7 @@ class KmlCatalogItem extends MeasurableMixin( } } const terrainProvider = this.terria.cesium.scene.globe.terrainProvider; - sampleTerrain(terrainProvider, 11, positionsToSample).then(function() { + sampleTerrainMostDetailed(terrainProvider, positionsToSample).then(function() { for (let i = 0; i < positionsToSample.length; ++i) { const position = positionsToSample[i]; if (!isDefined(position.height)) { From e20c716e23728ad26ca7a96cb7839ccce5d3a29c Mon Sep 17 00:00:00 2001 From: glughi Date: Tue, 8 Mar 2022 10:52:52 +0100 Subject: [PATCH 053/215] Temporary turn off search in catalog info. --- lib/Models/SearchProviders/CatalogSearchProvider.ts | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/lib/Models/SearchProviders/CatalogSearchProvider.ts b/lib/Models/SearchProviders/CatalogSearchProvider.ts index 536336d00a6..bd03a6f0f0d 100644 --- a/lib/Models/SearchProviders/CatalogSearchProvider.ts +++ b/lib/Models/SearchProviders/CatalogSearchProvider.ts @@ -43,9 +43,10 @@ export function loadAndSearchCatalogRecursively( // }); autorun(reaction => { // Search also in catalog item info. - const searchString = `${modelToSave.name} ${modelToSave.uniqueId} ${ + /* const searchString = `${modelToSave.name} ${modelToSave.uniqueId} ${ modelToSave.description - } ${JSON.stringify(modelToSave.infoAsObject)}`; + } ${JSON.stringify(modelToSave.infoAsObject)}`; */ + const searchString = `${modelToSave.name} ${modelToSave.uniqueId} ${modelToSave.description}`; const matchesString = searchString.toLowerCase().indexOf(searchTextLowercase) !== -1; From 99a10384a79894d9999db3a953383ed515c7ba0c Mon Sep 17 00:00:00 2001 From: glughi Date: Tue, 8 Mar 2022 11:38:48 +0100 Subject: [PATCH 054/215] Bump to rer3d+8.1.16-2 --- CHANGES.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/CHANGES.md b/CHANGES.md index cdcbf5f14c1..60a06440b7b 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -1,8 +1,11 @@ Change Log ========== -#### next release rer3d +#### rer3d+8.1.16-2 * Add control of the map from the keyboard +* Fix clipboard +* Improve Kml polygon visualization +* Temporary turn off search in catalog info #### rer3d+8.1.16 * Review and merge customizations from rer3d v7 From 83057c3d4d1ae5a8bac453dc7ad6cf69e23aae84 Mon Sep 17 00:00:00 2001 From: glughi Date: Mon, 23 May 2022 16:06:18 +0200 Subject: [PATCH 055/215] Merge fixes --- lib/ModelMixins/GeojsonMixin.ts | 128 +++++++++++++++++- .../Catalog/CatalogItems/KmlCatalogItem.ts | 6 +- .../Esri/ArcGisFeatureServerCatalogItem.ts | 2 + lib/Models/Terria.ts | 4 +- lib/ReactViewModels/ViewState.ts | 1 + .../Map/Panels/CoordsPanel/CoordsPanel.jsx | 4 +- .../StandardUserInterface/MapColumn.jsx | 50 +++---- .../StandardUserInterface.jsx | 1 + 8 files changed, 165 insertions(+), 31 deletions(-) diff --git a/lib/ModelMixins/GeojsonMixin.ts b/lib/ModelMixins/GeojsonMixin.ts index aa18bd9e00f..760819b497c 100644 --- a/lib/ModelMixins/GeojsonMixin.ts +++ b/lib/ModelMixins/GeojsonMixin.ts @@ -58,7 +58,13 @@ import filterOutUndefined from "../Core/filterOutUndefined"; import formatPropertyValue from "../Core/formatPropertyValue"; import hashFromString from "../Core/hashFromString"; import isDefined from "../Core/isDefined"; -import { isJsonNumber, isJsonObject, JsonObject } from "../Core/Json"; +import { + isJsonNumber, + isJsonObject, + JsonObject, + isJsonArray, + JsonArray +} from "../Core/Json"; import { isJson } from "../Core/loadBlob"; import makeRealPromise from "../Core/makeRealPromise"; import StandardCssColors from "../Core/StandardCssColors"; @@ -1238,6 +1244,126 @@ function GeoJsonMixin>>(Base: T) { return undefined; } + protected _pathType: PathTypes = PathTypes.noPath; + + @computed get canUseAsPath() { + let pathType: PathTypes = PathTypes.noPath; + + if ( + this.readyData && + isJsonObject(this.readyData.crs) && + this.readyData.crs.type === "EPSG" && + isJsonObject(this.readyData.crs.properties) && + this.readyData.crs.properties.code === "4326" + ) { + if ( + this.readyData.type === "FeatureCollection" && + isJsonArray(this.readyData.features) && + this.readyData.features.length == 1 && + isJsonObject(this.readyData.features[0]) + ) { + const geometry = this.readyData.features[0].geometry; + if (isJsonObject(geometry) && isJsonArray(geometry.coordinates)) { + if ( + geometry.type === "MultiLineString" && + geometry.coordinates.length == 1 && + isJsonArray(geometry.coordinates[0]) && + geometry.coordinates[0].length > 1 + ) { + pathType = PathTypes.featureCollectionMultiLineString; + } else if ( + geometry.type === "LineString" && + geometry.coordinates.length > 1 + ) { + pathType = PathTypes.featureCollectionLineString; + } + } + } + /*else if (this.readyData.type === "LineString" && isJsonArray(this.readyData.coordinates) + && this.readyData.coordinates.length > 1) { + pathType = PathTypes.lineString; + } + else if (this.readyData.type === "MultiLineString" && isJsonArray(this.readyData.coordinates) + && this.readyData.coordinates.length == 1) { + pathType = PathTypes.multiLineString; + }*/ + /*else if(this.readyData.type === "GeometryCollection") { + pathType = PathTypes.geometryCollection; + }*/ + } + + this._pathType = pathType; + return pathType !== PathTypes.noPath; + } + + computePath() { + let jsonCoords: JsonArray | undefined; + + switch (this._pathType) { + case PathTypes.featureCollectionMultiLineString: + if ( + this.readyData && + isJsonArray(this.readyData.features) && + this.readyData.features.length > 0 && + isJsonObject(this.readyData.features[0]) && + isJsonObject(this.readyData.features[0].geometry) && + isJsonArray(this.readyData.features[0].geometry.coordinates) && + this.readyData.features[0].geometry.coordinates.length > 0 && + isJsonArray(this.readyData.features[0].geometry.coordinates[0]) + ) { + jsonCoords = this.readyData.features[0].geometry.coordinates[0]; + } + break; + case PathTypes.featureCollectionLineString: + if ( + this.readyData && + isJsonArray(this.readyData.features) && + this.readyData.features.length > 0 && + isJsonObject(this.readyData.features[0]) && + isJsonObject(this.readyData.features[0].geometry) && + isJsonArray(this.readyData.features[0].geometry.coordinates) + ) { + jsonCoords = this.readyData.features[0].geometry.coordinates; + } + break; + /*case PathTypes.multiLineString: + if(this.readyData && isJsonArray(this.readyData.coordinates)) { + jsonCoords = this.readyData.coordinates[0]; + } + break; + case PathTypes.lineString: + if(this.readyData && isJsonArray(this.readyData.coordinates)) { + jsonCoords = this.readyData.coordinates; + } + break;*/ + } + + if (!jsonCoords || jsonCoords.length === 0) { + return; + } + + const coordinates: Cartographic[] = jsonCoords.map(elem => { + if ( + elem && + isJsonArray(elem) && + elem.length === 3 && + isJsonNumber(elem[0]) && + isJsonNumber(elem[1]) && + isJsonNumber(elem[2]) + ) { + return Cartographic.fromDegrees( + elem[0], + elem[1], + Math.round(elem[2]) + ); + } else { + return Cartographic.fromDegrees(0, 0, 0); + } + }); + + this.asPath(coordinates); + } + @computed get viewingControls(): ViewingControl[] { return this.useMvt && this.activeStyle // Note we want falsy here for activeStyle ("" is equivalent to undefined) ? [ diff --git a/lib/Models/Catalog/CatalogItems/KmlCatalogItem.ts b/lib/Models/Catalog/CatalogItems/KmlCatalogItem.ts index 48c9730f188..78d6eff5b9a 100644 --- a/lib/Models/Catalog/CatalogItems/KmlCatalogItem.ts +++ b/lib/Models/Catalog/CatalogItems/KmlCatalogItem.ts @@ -28,8 +28,10 @@ import Entity from "terriajs-cesium/Source/DataSources/Entity"; const kmzRegex = /\.kmz$/i; class KmlCatalogItem - extends MappableMixin( - UrlMixin(CatalogMemberMixin(CreateModel(KmlCatalogItemTraits))) + extends MeasurableMixin( + MappableMixin( + UrlMixin(CatalogMemberMixin(CreateModel(KmlCatalogItemTraits))) + ) ) implements HasLocalData { static readonly type = "kml"; diff --git a/lib/Models/Catalog/Esri/ArcGisFeatureServerCatalogItem.ts b/lib/Models/Catalog/Esri/ArcGisFeatureServerCatalogItem.ts index c2914657c3d..93e93ebdb03 100644 --- a/lib/Models/Catalog/Esri/ArcGisFeatureServerCatalogItem.ts +++ b/lib/Models/Catalog/Esri/ArcGisFeatureServerCatalogItem.ts @@ -2,6 +2,8 @@ import { Geometry, GeometryCollection, Properties } from "@turf/helpers"; import i18next from "i18next"; import { computed, runInAction, toJS } from "mobx"; import Cartesian3 from "terriajs-cesium/Source/Core/Cartesian3"; +import Cartesian2 from "terriajs-cesium/Source/Core/Cartesian2"; +import Scene from "terriajs-cesium/Source/Scene/Scene"; import Color from "terriajs-cesium/Source/Core/Color"; import BillboardGraphics from "terriajs-cesium/Source/DataSources/BillboardGraphics"; import ColorMaterialProperty from "terriajs-cesium/Source/DataSources/ColorMaterialProperty"; diff --git a/lib/Models/Terria.ts b/lib/Models/Terria.ts index a9b34f50ec7..79a765f5437 100644 --- a/lib/Models/Terria.ts +++ b/lib/Models/Terria.ts @@ -474,11 +474,11 @@ export default class Terria { feedbackMinLength: 0, extraCreditLinks: [ // Default credit links (shown at the bottom of the Cesium map) - { + /*{ text: "map.extraCreditLinks.dataAttribution", url: "about.html#data-attribution" }, - { text: "map.extraCreditLinks.disclaimer", url: "about.html#disclaimer" } + { text: "map.extraCreditLinks.disclaimer", url: "about.html#disclaimer" }*/ ], printDisclaimer: undefined, storyRouteUrlPrefix: undefined diff --git a/lib/ReactViewModels/ViewState.ts b/lib/ReactViewModels/ViewState.ts index 9744d2a1687..5e40adcd274 100644 --- a/lib/ReactViewModels/ViewState.ts +++ b/lib/ReactViewModels/ViewState.ts @@ -8,6 +8,7 @@ import { } from "mobx"; import { Ref } from "react"; import defined from "terriajs-cesium/Source/Core/defined"; +import Cartographic from "terriajs-cesium/Source/Core/Cartographic"; import addedByUser from "../Core/addedByUser"; import { Category, diff --git a/lib/ReactViews/Map/Panels/CoordsPanel/CoordsPanel.jsx b/lib/ReactViews/Map/Panels/CoordsPanel/CoordsPanel.jsx index 2f6bc8e25cf..22724997d92 100644 --- a/lib/ReactViews/Map/Panels/CoordsPanel/CoordsPanel.jsx +++ b/lib/ReactViews/Map/Panels/CoordsPanel/CoordsPanel.jsx @@ -5,7 +5,7 @@ import React, { useState, useEffect } from "react"; import Icon, { StyledIcon } from "../../../../Styled/Icon"; // import Loader from "../../../Loader"; import MenuPanel from "../../../StandardUserInterface/customizable/MenuPanel"; -import Input from "../../../Styled/Input/Input.jsx"; +import Input from "../../../../Styled/Input"; import DropdownStyles from "../panel.scss"; import Styles from "./coords-panel.scss"; @@ -14,7 +14,7 @@ import Box from "../../../../Styled/Box"; import Button from "../../../../Styled/Button"; import Select from "../../../../Styled/Select"; import CesiumResource from "terriajs-cesium/Source/Core/Resource"; -import createZoomToFunction from "../../../../Map/zoomRectangleFromPoint"; +import createZoomToFunction from "../../../../Map/Vector/zoomRectangleFromPoint"; import Ellipsoid from "terriajs-cesium/Source/Core/Ellipsoid"; import CesiumMath from "terriajs-cesium/Source/Core/Math"; import PropTypes from "prop-types"; diff --git a/lib/ReactViews/StandardUserInterface/MapColumn.jsx b/lib/ReactViews/StandardUserInterface/MapColumn.jsx index 42af8d3aabb..a31b78ff988 100644 --- a/lib/ReactViews/StandardUserInterface/MapColumn.jsx +++ b/lib/ReactViews/StandardUserInterface/MapColumn.jsx @@ -17,6 +17,7 @@ import TerriaViewerWrapper from "../Map/TerriaViewerWrapper"; import SlideUpFadeIn from "../Transitions/SlideUpFadeIn/SlideUpFadeIn"; import Styles from "./map-column.scss"; import Toast from "./Toast"; +import Button from "../../Styled/Button"; const isIE = FeatureDetection.isInternetExplorer(); const chromeVersion = FeatureDetection.chromeVersion(); @@ -195,32 +196,33 @@ const MapColumn = observer(
    + +
    + + {/* TODO: re-implement/support custom feedbacks */} + {/* +
    + - - - - - -
    - - -
    - - +
    +
    */} + { terria.configParameters.showFeaturePrompts && From efd470de4afc18147764c5a45043dc6dd12429c9 Mon Sep 17 00:00:00 2001 From: Giovanni Lughi Date: Thu, 26 May 2022 10:04:58 +0200 Subject: [PATCH 056/215] Merge fixes --- lib/ModelMixins/MeasurableMixin.ts | 2 +- lib/ReactViews/BottomDock/BottomDock.tsx | 9 +++++++++ .../Workbench/Controls/ViewingControls.tsx | 14 ++++++++++++++ lib/Styled/Icon.tsx | 1 + 4 files changed, 25 insertions(+), 1 deletion(-) diff --git a/lib/ModelMixins/MeasurableMixin.ts b/lib/ModelMixins/MeasurableMixin.ts index 3ec205d17b5..ec3dd8e489a 100644 --- a/lib/ModelMixins/MeasurableMixin.ts +++ b/lib/ModelMixins/MeasurableMixin.ts @@ -72,7 +72,7 @@ namespace MeasurableMixin { extends InstanceType> {} export function isMixedInto(model: any): model is Instance { - return model?.hasDiffableMixin; + return model?.hasMeasurableMixin; } export const stratumName = "measureableStratum"; diff --git a/lib/ReactViews/BottomDock/BottomDock.tsx b/lib/ReactViews/BottomDock/BottomDock.tsx index 82d8aa746a3..7e2ffcef3de 100644 --- a/lib/ReactViews/BottomDock/BottomDock.tsx +++ b/lib/ReactViews/BottomDock/BottomDock.tsx @@ -4,6 +4,7 @@ import React from "react"; import Terria from "../../Models/Terria"; import ViewState from "../../ReactViewModels/ViewState"; import ChartPanel from "../Custom/Chart/ChartPanel"; +import ElevationChartPanel from "../Custom/Chart/ElevationChartPanel"; import measureElement from "../HOCs/measureElement"; import withControlledVisibility from "../HOCs/withControlledVisibility"; import Styles from "./bottom-dock.scss"; @@ -62,6 +63,14 @@ class BottomDock extends React.Component {
    + {this.props.viewState.elevationChartIsVisible && + !!terria.pathPoints && + terria.pathPoints.length > 0 && ( + + )} {top && ( ) : null} + {MeasurableMixin.isMixedInto(item) && item.canUseAsPath && ( +
  • + runInAction(() => item.computePath())} + title="Usa il dato del layer come percorso di cui misurare altitudine e statistiche" + > + + + Percorso + + +
  • + )}
  • Date: Wed, 22 Jun 2022 14:06:16 +0200 Subject: [PATCH 057/215] Refresh terrain when TerrainProvider item loaded or when its visibility is changed --- lib/Models/Cesium.ts | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/lib/Models/Cesium.ts b/lib/Models/Cesium.ts index 7f9a61b2011..2ccc438d1c4 100644 --- a/lib/Models/Cesium.ts +++ b/lib/Models/Cesium.ts @@ -429,7 +429,16 @@ export default class Cesium extends GlobeOrMap { this._disposeWorkbenchMapItemsSubscription = this.observeModelLayer(); this._disposeTerrainReaction = autorun(() => { - this.scene.globe.terrainProvider = this._terrainProvider; + // Refresh terrain when TerrainProvider item loaded or when its visibility is changed + const newTerrain = + this._allMappables.find(({ item, mapItem }) => { + return isTerrainProvider(mapItem) && item.show; + })?.mapItem ?? this._terrainProvider; + //const newTerrain = this._firstMapItemTerrainProviders ?? this._terrainProvider; + if (this.scene.globe.terrainProvider !== newTerrain) { + this.scene.globe.terrainProvider = newTerrain as TerrainProvider; + } + this.scene.globe.splitDirection = this.terria.showSplitter ? this.terria.terrainSplitDirection : ImagerySplitDirection.NONE; @@ -659,8 +668,6 @@ export default class Cesium extends GlobeOrMap { sampleTerrain(terrainProvider, level, [center]) ); } catch { - console.log("FALLITOOOO"); - // if the request fails just use center with height=0 terrainSample = center; } From fdfa01dd555a5248168c0a36005d199f8a017a1b Mon Sep 17 00:00:00 2001 From: glughi Date: Tue, 28 Jun 2022 18:21:04 +0200 Subject: [PATCH 058/215] Fix measure tool point move --- lib/Map/DragPoints/CesiumDragPoints.js | 9 +++++++-- lib/Models/UserDrawing.ts | 2 -- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/lib/Map/DragPoints/CesiumDragPoints.js b/lib/Map/DragPoints/CesiumDragPoints.js index 5b74d2f604e..0a9e560cb98 100644 --- a/lib/Map/DragPoints/CesiumDragPoints.js +++ b/lib/Map/DragPoints/CesiumDragPoints.js @@ -109,10 +109,15 @@ CesiumDragPoints.prototype.setUp = function() { return; } that.dragCount = that.dragCount + 1; - var cartesian = that._camera.pickEllipsoid( + + // Use ray to find a more precise position + /*var cartesian = that._camera.pickEllipsoid( move.endPosition, that._scene.globe.ellipsoid - ); + );*/ + const pickRay = that._camera.getPickRay(move.endPosition); + const cartesian = that._scene.globe.pick(pickRay, that._scene); + that._entityDragged.position = cartesian; for (var i = 0; i < that._draggableObjects.entities.values.length; i++) { if ( diff --git a/lib/Models/UserDrawing.ts b/lib/Models/UserDrawing.ts index a5a43da020e..507f775e8ad 100644 --- a/lib/Models/UserDrawing.ts +++ b/lib/Models/UserDrawing.ts @@ -113,8 +113,6 @@ export default class UserDrawing extends MappableMixin( */ this.onPointClicked = options.onPointClicked; - this.onPointMoved = options.onPointMoved; - /** * Callback that occurs when point is moved. Function takes a CustomDataSource which is a list of PointEntities. */ From d4fee93eb90889f69dfd1072cd7d9a008f3cbef4 Mon Sep 17 00:00:00 2001 From: glughi Date: Fri, 1 Jul 2022 19:08:00 +0200 Subject: [PATCH 059/215] A new ColorPanel --- lib/ReactViews/Map/MenuBar.jsx | 4 + .../Map/Panels/ColorPanel/ColorPanel.jsx | 259 ++++++++++++++++++ .../Map/Panels/ColorPanel/color-panel.scss | 52 ++++ .../Panels/ColorPanel/color-panel.scss.d.ts | 20 ++ 4 files changed, 335 insertions(+) create mode 100644 lib/ReactViews/Map/Panels/ColorPanel/ColorPanel.jsx create mode 100644 lib/ReactViews/Map/Panels/ColorPanel/color-panel.scss create mode 100644 lib/ReactViews/Map/Panels/ColorPanel/color-panel.scss.d.ts diff --git a/lib/ReactViews/Map/MenuBar.jsx b/lib/ReactViews/Map/MenuBar.jsx index 1bddf2846fc..a5b883c23f4 100644 --- a/lib/ReactViews/Map/MenuBar.jsx +++ b/lib/ReactViews/Map/MenuBar.jsx @@ -6,6 +6,7 @@ import classNames from "classnames"; import SettingPanel from "./Panels/SettingPanel"; import SharePanel from "./Panels/SharePanel/SharePanel"; import CoordsPanel from "./Panels/CoordsPanel/CoordsPanel"; +import ColorPanel from "./Panels/ColorPanel/ColorPanel"; import ToolsPanel from "./Panels/ToolsPanel/ToolsPanel"; import StoryButton from "./StoryButton/StoryButton"; import LangPanel from "./Panels/LangPanel/LangPanel"; @@ -76,6 +77,9 @@ const MenuBar = observer(props => {
  • +
  • + +
  • {props.terria.configParameters?.languageConfiguration?.enabled ? (
  • { + const { terria, viewState, modalWidth, onUserClick } = props; + + const [isOpen, setIsOpen] = useState(false); + const [layers, setLayers] = useState([]); + const [bandTransparency, setBandTransparency] = useState(0.5); + + const dropdownTheme = { + outer: classNames(Styles.sharePanel), + inner: classNames(Styles.dropdownInner) + }; + + const btnText = "Colora"; + const btnTitle = "Colora il terreno in base all'altitudine"; + + const apply = () => { + var material = createElevationBandMaterial({ + scene: terria.cesium.scene, + layers: layers.map(layer => { + return { + entries: [ + { + height: layer.fromHeight, + color: Color.fromCssColorString(layer.fromColor).withAlpha( + bandTransparency + ) + }, + { + height: layer.toHeight, + color: Color.fromCssColorString(layer.toColor).withAlpha( + bandTransparency + ) + } + ] + }; + }) + }); + + terria.cesium.scene.globe.material = material; + }; + + const renderContent = () => { + return ( +
    +
    Range di altitudine da colorare
    +
    range min - max (in metri)
    + + Transparency + setBandTransparency(Number(e.target.value))} + /> + + + {layers.map((layer, index) => { + return ( + + { + setLayers( + layers.map((item, ind) => + ind === index + ? { ...item, fromHeight: Number(e.target.value) } + : item + ) + ); + }} + /> + { + setLayers( + layers.map((item, ind) => + ind === index + ? { + ...item, + fromColor: e.target.value, + toColor: e.target.value + } + : item + ) + ); + }} + /> + { + setLayers( + layers.map((item, ind) => + ind === index + ? { ...item, toHeight: Number(e.target.value) } + : item + ) + ); + }} + /> + { + setLayers( + layers.map((item, ind) => + ind === index + ? { ...item, toColor: e.target.value } + : item + ) + ); + }} + /> + + + ); + })} + + + + + + Dopo aver premuto il bottone "Applica", clicca sulla mappa per + aggiornarla. + + +
    + ); + }; + + return ( +
    + { + if (true) viewState.shareModalIsVisible = false; + }} + onUserClick={onUserClick} + > + {isOpen && renderContent()} + +
    + ); +}; + +ColorPanel.propTypes = { + terria: PropTypes.object.isRequired, + viewState: PropTypes.object.isRequired, + modalWidth: PropTypes.number, + onUserClick: PropTypes.func +}; + +export default ColorPanel; diff --git a/lib/ReactViews/Map/Panels/ColorPanel/color-panel.scss b/lib/ReactViews/Map/Panels/ColorPanel/color-panel.scss new file mode 100644 index 00000000000..7a7fa5ac183 --- /dev/null +++ b/lib/ReactViews/Map/Panels/ColorPanel/color-panel.scss @@ -0,0 +1,52 @@ +@import "~terriajs-variables"; +@import "../../../../Sass/common/mixins"; + +.share-panel { + font-size: $font-size-mid-small; +} + +.dropdown-inner { + width: $share-panel-width; + @include transform-origin(50%, top); +} + +.crs--item { + composes: field from "../../../../Sass/common/_form.scss"; + background-color: $overlay; + color: $color-primary; +} + +.shareUrlfield { + width: calc(100% - 80px); + padding-left: 1rem; + padding-right: 0; +} + +.explanation { + font-size: smaller; + font-weight: lighter; + color: $text-light-dimmed; +} + +.format-button, +.print-button { + composes: btn from "../../../../Sass/common/_buttons.scss"; + composes: btn-primary from "../../../../Sass/common/_buttons.scss"; + width: auto; + display: inline; + margin: 2px; +} + +.field-range { + composes: field from "../../../../Sass/common/_form.scss"; + background: $overlay; + color: #fff !important; + &::selection { + background: $color-primary; /* WebKit/Blink Browsers */ + color: #fff; + } + &::-moz-selection { + background: $color-primary; /* Gecko Browsers */ + color: #fff; + } +} diff --git a/lib/ReactViews/Map/Panels/ColorPanel/color-panel.scss.d.ts b/lib/ReactViews/Map/Panels/ColorPanel/color-panel.scss.d.ts new file mode 100644 index 00000000000..7c92bee7235 --- /dev/null +++ b/lib/ReactViews/Map/Panels/ColorPanel/color-panel.scss.d.ts @@ -0,0 +1,20 @@ +// This file is automatically generated. +// Please do not change this file! +interface CssExports { + 'crs--item': string; + 'crsItem': string; + 'dropdown-inner': string; + 'dropdownInner': string; + 'explanation': string; + 'field-range': string; + 'fieldRange': string; + 'format-button': string; + 'formatButton': string; + 'print-button': string; + 'printButton': string; + 'share-panel': string; + 'sharePanel': string; + 'shareUrlfield': string; +} +declare var cssExports: CssExports; +export = cssExports; From d11b263145813ea7fd7390a24a3c578602fd2b3b Mon Sep 17 00:00:00 2001 From: glughi Date: Tue, 5 Jul 2022 19:48:30 +0200 Subject: [PATCH 060/215] Fix loading nested ArcGis groups --- .../Catalog/Esri/ArcGisMapServerCatalogGroup.ts | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/lib/Models/Catalog/Esri/ArcGisMapServerCatalogGroup.ts b/lib/Models/Catalog/Esri/ArcGisMapServerCatalogGroup.ts index b58f3494539..f94dee99869 100644 --- a/lib/Models/Catalog/Esri/ArcGisMapServerCatalogGroup.ts +++ b/lib/Models/Catalog/Esri/ArcGisMapServerCatalogGroup.ts @@ -190,11 +190,24 @@ export class MapServerStratum extends LoadableStratum( } const id = this._catalogGroup.uniqueId; //if parent layer is not -1 then this is sublayer so we define its ID like that - const layerId = + /*const layerId = id + "/" + (layer.parentLayerId !== -1 ? layer.parentLayerId + "/" : "") + - layer.id; + layer.id;*/ + //Use all parents layerId, as in terria.models + const parentsArray: number[] = []; + let parentLayerId: number = layer.parentLayerId; + while (parentLayerId !== -1) { + if (this._mapServer?.layers && parentLayerId in this._mapServer.layers) { + parentsArray.push(parentLayerId); + parentLayerId = this._mapServer.layers[parentLayerId].parentLayerId; + } + } + const layerId = `${id}${ + parentsArray.length > 0 ? "/" : "" + }${parentsArray.reverse().join("/")}/${layer.id}`; + let model: ArcGisMapServerCatalogItem | ArcGisMapServerCatalogGroup; // Treat layer as a group if it has type "Group Layer" - or has subLayers From 335e496704c81511845d7019dfab9a3ec91e6f5f Mon Sep 17 00:00:00 2001 From: glughi Date: Mon, 25 Jul 2022 16:43:38 +0200 Subject: [PATCH 061/215] Fix hideLayerAfterMinScaleDenominator in ArcGisMapServerCatalogItem --- .../Catalog/Esri/ArcGisMapServerCatalogItem.ts | 18 +++++++++++++++++- lib/Traits/TraitsClasses/MinMaxLevelTraits.ts | 2 +- 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/lib/Models/Catalog/Esri/ArcGisMapServerCatalogItem.ts b/lib/Models/Catalog/Esri/ArcGisMapServerCatalogItem.ts index b45a2a2ed9f..7211201a659 100644 --- a/lib/Models/Catalog/Esri/ArcGisMapServerCatalogItem.ts +++ b/lib/Models/Catalog/Esri/ArcGisMapServerCatalogItem.ts @@ -37,6 +37,7 @@ import StratumFromTraits from "../../Definition/StratumFromTraits"; import StratumOrder from "../../Definition/StratumOrder"; import MinMaxLevelMixin from "./../../../ModelMixins/MinMaxLevelMixin"; import { scaleDenominatorToLevel } from "../../../Core/scaleToDenominator"; +import CommonStrata from "../../../Models/Definition/CommonStrata"; const proj4 = require("proj4").default; @@ -383,6 +384,17 @@ export default class ArcGisMapServerCatalogItem extends MappableMixin( const stratum = await MapServerStratum.load(this); runInAction(() => { this.strata.set(MapServerStratum.stratumName, stratum); + + if ( + isDefined(this.maximumScale) && + !isDefined(this.minScaleDenominator) + ) { + this.setTrait( + CommonStrata.user, + "minScaleDenominator", + this.maximumScale + ); + } }); } @@ -476,7 +488,11 @@ export default class ArcGisMapServerCatalogItem extends MappableMixin( url: cleanAndProxyUrl(this, getBaseURI(this).toString()), layers: layers, tilingScheme: new WebMercatorTilingScheme(), - maximumLevel: maximumLevel, + maximumLevel: + !!maximumLevel && this.hideLayerAfterMinScaleDenominator + ? maximumLevel + 1 + : maximumLevel, + //minimumLevel: minimumLevel, tileHeight: this.tileHeight, tileWidth: this.tileWidth, parameters: params, diff --git a/lib/Traits/TraitsClasses/MinMaxLevelTraits.ts b/lib/Traits/TraitsClasses/MinMaxLevelTraits.ts index 7aa4c8d36d6..cee0fc35d72 100644 --- a/lib/Traits/TraitsClasses/MinMaxLevelTraits.ts +++ b/lib/Traits/TraitsClasses/MinMaxLevelTraits.ts @@ -31,7 +31,7 @@ export class MinMaxLevelTraits extends ModelTraits { description: "True to hide tiles when the `Minimum Scale Denominator` is exceeded. If false, we can zoom in arbitrarily close to the (increasingly blurry) layer." }) - hideLayerAfterMinScaleDenominator: boolean = false; + hideLayerAfterMinScaleDenominator: boolean = true; @primitiveTrait({ type: "string", From 6d83ade04737342ef680dd82bdd6b8c7d2f2f398 Mon Sep 17 00:00:00 2001 From: glughi Date: Mon, 25 Jul 2022 16:47:13 +0200 Subject: [PATCH 062/215] Improve TerrainProvider refresh on workbench item visibility changes. --- lib/Models/Cesium.ts | 29 ++++++++++++++++++++++++++--- 1 file changed, 26 insertions(+), 3 deletions(-) diff --git a/lib/Models/Cesium.ts b/lib/Models/Cesium.ts index 2ccc438d1c4..f114ef89956 100644 --- a/lib/Models/Cesium.ts +++ b/lib/Models/Cesium.ts @@ -75,6 +75,7 @@ import Terria from "./Terria"; import UserDrawing from "./UserDrawing"; import Color from "terriajs-cesium/Source/Core/Color"; +import CommonStrata from "./Definition/CommonStrata"; //import Cesium3DTilesInspector from "terriajs-cesium/Source/Widgets/Cesium3DTilesInspector/Cesium3DTilesInspector"; @@ -431,12 +432,27 @@ export default class Cesium extends GlobeOrMap { this._disposeTerrainReaction = autorun(() => { // Refresh terrain when TerrainProvider item loaded or when its visibility is changed const newTerrain = - this._allMappables.find(({ item, mapItem }) => { - return isTerrainProvider(mapItem) && item.show; - })?.mapItem ?? this._terrainProvider; + this._allShowedTerrainMapItems.find(mapItem => { + return mapItem !== this.scene.globe.terrainProvider; + }) ?? + this._allShowedTerrainMapItems.find(mapItem => { + return mapItem === this.scene.globe.terrainProvider; + }) ?? + this._terrainProvider; //const newTerrain = this._firstMapItemTerrainProviders ?? this._terrainProvider; if (this.scene.globe.terrainProvider !== newTerrain) { + this._allMappables + .filter(({ item, mapItem }) => { + return ( + item.show && isTerrainProvider(mapItem) && mapItem !== newTerrain + ); + }) + .forEach(element => { + if (element && element.item) + element.item.setTrait(CommonStrata.user, "show", false); + }); this.scene.globe.terrainProvider = newTerrain as TerrainProvider; + this.notifyRepaintRequired(); } this.scene.globe.splitDirection = this.terria.showSplitter @@ -544,6 +560,13 @@ export default class Cesium extends GlobeOrMap { return this._allMappables.map(({ mapItem }) => mapItem); } + @computed + private get _allShowedTerrainMapItems(): MapItem[] { + return this._allMappables + .filter(({ mapItem, item }) => isTerrainProvider(mapItem) && item.show) + .map(({ mapItem }) => mapItem); + } + private observeModelLayer() { return autorun(() => { // TODO: Look up the type in a map and call the associated function. From b4d79886e3c6e284044a2e4d6a18f9760dd81f37 Mon Sep 17 00:00:00 2001 From: glughi Date: Wed, 27 Jul 2022 13:33:54 +0200 Subject: [PATCH 063/215] Fix update Measurable distance --- lib/ModelMixins/MeasurableMixin.ts | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/lib/ModelMixins/MeasurableMixin.ts b/lib/ModelMixins/MeasurableMixin.ts index ec3dd8e489a..23b56509460 100644 --- a/lib/ModelMixins/MeasurableMixin.ts +++ b/lib/ModelMixins/MeasurableMixin.ts @@ -27,15 +27,16 @@ function MeasurableMixin>(Base: T) { @action update(newPositions: Cartographic[]) { - let dist = 0.0; + //let dist = 0.0; const stepDistanceMeters: number[] = [0.0]; newPositions.forEach((elem, index) => { elem.height = Math.round(elem.height); if (index > 0) { const geodesic = new EllipsoidGeodesic(elem, newPositions[index - 1]); - dist += geodesic.surfaceDistance; - stepDistanceMeters.push(dist); + /*dist += geodesic.surfaceDistance; + stepDistanceMeters.push(dist);*/ + stepDistanceMeters.push(geodesic.surfaceDistance); } }); if (newPositions.length > 1) { From 47cd59262b3208a4f37c5915cb02af31d3388610 Mon Sep 17 00:00:00 2001 From: glughi Date: Tue, 2 Aug 2022 17:15:36 +0200 Subject: [PATCH 064/215] Fix html-to-react dependency --- package.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index 35bd12486ff..f86fc5c1877 100644 --- a/package.json +++ b/package.json @@ -106,7 +106,7 @@ "gulp": "^4.0.0", "hammerjs": "^2.0.6", "hoist-non-react-statics": "^3.3.2", - "html-to-react": "^1.4.5", + "html-to-react": "1.4.5", "i18next": "^19.9.0", "i18next-browser-languagedetector": "^4.0.1", "i18next-http-backend": "^1.1.1", @@ -130,7 +130,7 @@ "mutationobserver-shim": "^0.3.1", "papaparse": "^5.2.0", "pbf": "^3.0.1", - "pell": "github:TerriaJS/pell#master", + "pell": "https://github.com/TerriaJS/pell.git", "point-in-polygon": "^1.0.1", "proj4": "^2.4.4", "prop-types": "^15.6.0", From 21d7a21db8ac520f0e5b086d1cc95ea76aeb417f Mon Sep 17 00:00:00 2001 From: glughi Date: Mon, 5 Sep 2022 10:53:59 +0200 Subject: [PATCH 065/215] Replace Nunito font from googleapis.com with Titillium from RER server. --- lib/ReactViews/Map/Panels/HelpPanel/help-panel.scss | 3 ++- lib/ReactViews/WelcomeMessage/welcome-message.scss | 5 +++-- lib/Sass/common/_variables.scss | 5 +++-- 3 files changed, 8 insertions(+), 5 deletions(-) diff --git a/lib/ReactViews/Map/Panels/HelpPanel/help-panel.scss b/lib/ReactViews/Map/Panels/HelpPanel/help-panel.scss index f926db93df9..75e423da5b5 100644 --- a/lib/ReactViews/Map/Panels/HelpPanel/help-panel.scss +++ b/lib/ReactViews/Map/Panels/HelpPanel/help-panel.scss @@ -1,6 +1,7 @@ @import "~terriajs-variables"; @import "../../../../Sass/common/mixins"; -@import url("https://fonts.googleapis.com/css?family=Nunito:600,800&display=swap"); +//@import url("https://fonts.googleapis.com/css?family=Nunito:600,800&display=swap"); +@import url("https://wwwservizitest.regione.emilia-romagna.it/includes/TemplatesER/-cdn/fonts/fonts.googleapis.titillium.css?family=Titillium:600,800&display=swap"); .help-panel { font-family: $font-base; width: 320px; diff --git a/lib/ReactViews/WelcomeMessage/welcome-message.scss b/lib/ReactViews/WelcomeMessage/welcome-message.scss index 935016ac4fa..c8684bb1812 100644 --- a/lib/ReactViews/WelcomeMessage/welcome-message.scss +++ b/lib/ReactViews/WelcomeMessage/welcome-message.scss @@ -1,7 +1,8 @@ @import "~terriajs-variables"; @import "~terriajs-mixins"; // @import url("https://fonts.googleapis.com/css?family=Montserrat:700&display=swap"); -@import url("https://fonts.googleapis.com/css?family=Nunito:600,600i&display=swap"); +//@import url("https://fonts.googleapis.com/css?family=Nunito:600,600i&display=swap"); +@import url("https://wwwservizitest.regione.emilia-romagna.it/includes/TemplatesER/-cdn/fonts/fonts.googleapis.titillium.css?family=Titillium:600,600i&display=swap"); .WelcomeModalWrapper { color: $dark; @@ -21,7 +22,7 @@ .WelcomeModal { position: relative; - font-family: "Nunito", "Open Sans"; + font-family: "Titillium", "Open Sans"; text-align: left; box-shadow: $box-shadow; box-sizing: border-box; diff --git a/lib/Sass/common/_variables.scss b/lib/Sass/common/_variables.scss index a69b1182cf9..cb6a88dada2 100644 --- a/lib/Sass/common/_variables.scss +++ b/lib/Sass/common/_variables.scss @@ -1,7 +1,8 @@ @import url("https://fonts.googleapis.com/css?family=Nunito:300,400,500,400italic,600,700&display=swap"); +@import url("https://wwwservizitest.regione.emilia-romagna.it/includes/TemplatesER/-cdn/fonts/fonts.googleapis.titillium.css?family=Titillium:300,400,500,400italic,600,700&display=swap"); -$font-pop: "Nunito", sans-serif; -$font-base: "Nunito", sans-serif; +$font-pop: "Titillium", sans-serif; +$font-base: "Titillium", sans-serif; $font-mono: monospace, sans-serif; $font-feature-info: $font-mono; $font: $font-base; From 01ed73cfbe43007074d4383625d13f9efdfa6fe3 Mon Sep 17 00:00:00 2001 From: glughi Date: Wed, 7 Sep 2022 10:36:23 +0200 Subject: [PATCH 066/215] Fix base maps order --- lib/Models/BaseMaps/BaseMapsModel.ts | 19 ++++++++----------- 1 file changed, 8 insertions(+), 11 deletions(-) diff --git a/lib/Models/BaseMaps/BaseMapsModel.ts b/lib/Models/BaseMaps/BaseMapsModel.ts index 27545c3ce7a..65c4cbc8a27 100644 --- a/lib/Models/BaseMaps/BaseMapsModel.ts +++ b/lib/Models/BaseMaps/BaseMapsModel.ts @@ -46,20 +46,17 @@ export class BaseMapsModel extends CreateModel(BaseMapsTraits) { get baseMapItems(): BaseMapItem[] { const enabledBaseMaps: BaseMapItem[] = []; - this.items.forEach(baseMapItem => { - if ( - baseMapItem.item && - !ModelReference.isRemoved(baseMapItem.item) && - (!this.enabledBaseMaps || - this.enabledBaseMaps.includes(baseMapItem.item)) - ) { - const itemModel = this.terria.getModelById(BaseModel, baseMapItem.item); - if (MappableMixin.isMixedInto(itemModel)) + this.enabledBaseMaps.forEach(baseMapItem => { + const item = this.items.find(item => item.item === baseMapItem); + if (item && !ModelReference.isRemoved(baseMapItem)) { + const itemModel = this.terria.getModelById(BaseModel, baseMapItem); + if (MappableMixin.isMixedInto(itemModel)) { enabledBaseMaps.push({ - image: baseMapItem.image, - contrastColor: baseMapItem.contrastColor, + image: item.image, + contrastColor: item.contrastColor, item: itemModel }); + } } }); From 52c6dc94db3c4c56e1949db255a982fa5791c690 Mon Sep 17 00:00:00 2001 From: glughi Date: Wed, 7 Sep 2022 11:41:33 +0200 Subject: [PATCH 067/215] merge from pre-prettier-v2 --- .github/workflows/deploy.yml | 10 +- .husky/pre-commit | 4 + .prettierignore | 68 +- .prettierrc | 3 + CHANGES.md | 4096 +++++++------ README.md | 80 +- architecture/0003-drop-ie11-support.md | 59 +- architecture/0010-never-support-ie11.md | 33 + buildprocess/ci-deploy.sh | 4 +- buildprocess/ci-values.yml | 262 +- buildprocess/configureWebpack.js | 767 +-- buildprocess/generateCatalogIndex.ts | 115 +- doc/README.md | 26 +- doc/acknowledgements/attributions.md | 931 ++- .../cross-origin-resource-sharing.md | 15 +- .../feature-info-template.md | 46 +- doc/contributing/README.md | 28 +- doc/contributing/init-sources.md | 85 + doc/customizing/client-side-config.md | 240 +- doc/customizing/initialization-files.md | 184 +- .../controlling-with-url-parameters.md | 50 +- doc/getting-started.md | 26 +- doc/mkdocs.yml | 1 + lib/Core/AnalyticEvents/analyticEvents.ts | 3 +- lib/Core/ConsoleAnalytics.js | 26 +- lib/Core/DataUri.js | 35 - lib/Core/GoogleAnalytics.js | 6 +- lib/Core/ServerConfig.js | 5 +- lib/Core/ensureSuffix.ts | 7 + lib/Core/getDataType.ts | 23 +- lib/Core/injectTerms.ts | 18 +- lib/Core/isDefined.ts | 4 +- lib/Core/loadArrayBuffer.ts | 6 +- lib/Core/loadBlob.ts | 101 +- lib/Core/loadCsv.ts | 3 +- lib/Core/loadJson.ts | 13 +- lib/Core/loadJson5.ts | 3 +- lib/Core/loadJsonp.js | 3 +- lib/Core/loadWithXhr.js | 15 +- lib/Core/makeRealPromise.ts | 14 - lib/Core/pollToPromise.js | 29 +- lib/Core/readXml.js | 33 +- lib/Core/updateFromJson.js | 4 +- lib/Language/languageHelpers.ts | 41 +- lib/Map/Cesium/CesiumRenderLoopPauser.ts | 10 +- lib/Map/Cesium/CesiumSelectionIndicator.ts | 4 + .../MapboxVectorTileImageryProvider.ts | 3 +- .../ProtomapsImageryProvider.ts | 3 +- .../ImageryProvider/getUrlForImageryTile.ts | 3 +- .../ImageryProviderLeafletGridLayer.ts | 8 +- .../ImageryProviderLeafletTileLayer.ts | 12 +- lib/Map/LeafletPatched.js | 23 + lib/Map/Region/RegionProvider.ts | 14 + lib/Map/Vector/EarthGravityModel1996.js | 3 +- lib/Map/Vector/Reproject.js | 13 +- lib/Map/Vector/geoRssConvertor.js | 5 +- lib/ModelMixins/Cesium3dTilesMixin.ts | 60 +- lib/ModelMixins/DiscretelyTimeVaryingMixin.ts | 52 +- .../ExportWebCoverageServiceMixin.ts | 30 +- lib/ModelMixins/FeatureInfoMixin.ts | 77 - .../FeatureInfoUrlTemplateMixin.ts | 181 + lib/ModelMixins/GeojsonMixin.ts | 161 +- lib/ModelMixins/GltfMixin.ts | 41 +- lib/ModelMixins/GroupMixin.ts | 9 +- lib/ModelMixins/MappableMixin.ts | 14 +- lib/ModelMixins/MinMaxLevelMixin.ts | 9 +- lib/ModelMixins/TableMixin.ts | 130 +- lib/ModelMixins/TileErrorHandlerMixin.ts | 18 +- lib/ModelMixins/TimeVarying.ts | 5 + lib/Models/BaseMaps/defaultBaseMaps.ts | 4 + lib/Models/BoxDrawing.ts | 5 + .../CatalogItems/Cesium3DTilesCatalogItem.ts | 13 +- .../CatalogItems/CesiumTerrainCatalogItem.ts | 100 +- .../Catalog/CatalogItems/CzmlCatalogItem.ts | 17 +- .../Catalog/CatalogItems/GeoRssCatalogItem.ts | 202 +- .../Catalog/CatalogItems/GltfCatalogItem.ts | 12 - .../CatalogItems/OpenDataSoftCatalogItem.ts | 36 +- .../CatalogReferences/SplitItemReference.ts | 38 +- .../CatalogReferences/TerriaReference.ts | 2 +- lib/Models/Catalog/Ckan/CkanCatalogGroup.ts | 14 +- lib/Models/Catalog/Ckan/CkanItemReference.ts | 12 +- .../Esri/ArcGisMapServerCatalogItem.ts | 10 +- lib/Models/Catalog/Gltf/AssImpCatalogItem.ts | 285 + lib/Models/Catalog/Gltf/GLTF.ts | 690 +++ lib/Models/Catalog/Gltf/GltfCatalogItem.ts | 31 + .../SensorObservationServiceCatalogItem.ts | 2 +- .../Ows/WebFeatureServiceCapabilities.ts | 3 +- .../Ows/WebFeatureServiceSearchProvider.ts | 5 +- .../Catalog/Ows/WebMapServiceCatalogItem.ts | 12 +- .../Ows/WebProcessingServiceCapabilities.ts | 5 +- .../WebProcessingServiceCatalogFunction.ts | 95 +- .../Catalog/SdmxJson/SdmxJsonCatalogItem.ts | 14 +- .../SdmxJson/SdmxJsonDataflowStratum.ts | 116 +- .../Catalog/createCatalogItemFromFileOrUrl.ts | 20 +- lib/Models/Catalog/registerCatalogMembers.ts | 4 +- lib/Models/Cesium.ts | 414 +- lib/Models/DefaultTimelineModel.ts | 17 +- lib/Models/Definition/CreateModel.ts | 32 +- lib/Models/Feature.ts | 3 +- .../FunctionParameters/DateParameter.ts | 23 + .../FunctionParameters/DateTimeParameter.ts | 1 + lib/Models/GlobeOrMap.ts | 30 +- lib/Models/HasLocalData.ts | 1 + lib/Models/InitSource.ts | 17 +- lib/Models/Internationalization.ts | 36 +- lib/Models/Leaflet.ts | 105 +- lib/Models/LeafletAttribution.ts | 96 + lib/Models/NoViewer.ts | 2 + .../SelectableDimensions.ts | 9 +- lib/Models/StoryVideoSettings.ts | 3 + lib/Models/Terria.ts | 172 +- lib/Models/TimelineStack.ts | 13 +- lib/Models/UserDrawing.ts | 17 +- lib/ReactViewModels/ViewState.ts | 25 +- lib/ReactViewModels/defaultHelpContent.ts | 3 + .../Analytics/DateParameterEditor.jsx | 65 + lib/ReactViews/Analytics/ParameterEditor.jsx | 18 + lib/ReactViews/Analytics/RegionPicker.jsx | 59 +- .../Analytics/parameter-editors.scss | 4 +- lib/ReactViews/BadgeBar.tsx | 31 +- lib/ReactViews/BottomDock/BottomDock.tsx | 13 +- .../BottomDock/Timeline/DateTimePicker.tsx | 24 +- lib/ReactViews/Clipboard.tsx | 9 +- lib/ReactViews/Credits/Credit.tsx | 26 + lib/ReactViews/Credits/Credit.type.ts | 4 + lib/ReactViews/Credits/Credits.tsx | 24 + lib/ReactViews/Credits/CreditsContainer.tsx | 28 + .../DataAttribution/DataAttributionModal.tsx | 98 + .../Credits/MapCredits/MapCreditLogo.tsx | 22 + .../Credits/MapCredits/MapCredits.tsx | 71 + lib/ReactViews/Credits/Spacer.tsx | 11 + lib/ReactViews/Credits/TerriaLogo.tsx | 17 + lib/ReactViews/Credits/index.ts | 2 + lib/ReactViews/Custom/Chart/ChartPanel.jsx | 2 +- .../Custom/Chart/ChartPanelDownloadButton.jsx | 125 - .../Custom/Chart/ChartPanelDownloadButton.tsx | 120 + lib/ReactViews/Custom/Chart/Legends.jsx | 2 + lib/ReactViews/Custom/Chart/LineChart.jsx | 2 + lib/ReactViews/Custom/ExternalLink.tsx | 54 + .../Custom/parseCustomHtmlToReact.ts | 79 +- .../Custom/parseCustomMarkdownToReact.ts | 6 +- lib/ReactViews/Disclaimer.jsx | 14 +- lib/ReactViews/DragDropFile.tsx | 43 +- lib/ReactViews/DragDropNotification.jsx | 12 +- .../ExplorerWindow/ExplorerWindow.tsx | 28 +- .../ExplorerWindow/Tabs/MyDataTab/AddData.jsx | 35 +- .../FeatureInfo/FeatureInfoDownload.jsx | 46 +- .../FeatureInfo/FeatureInfoPanel.jsx | 73 +- .../FeatureInfo/FeatureInfoSection.jsx | 2 +- lib/ReactViews/Feedback/FeedbackForm.tsx | 26 +- lib/ReactViews/Generic/Editor.jsx | 96 +- lib/ReactViews/Generic/Responsive.jsx | 44 - lib/ReactViews/Generic/Responsive.tsx | 40 + lib/ReactViews/Generic/editor.skin.min.css | 3190 ++++++++++ .../GyroscopeGuidance/GyroscopeGuidance.jsx | 4 +- lib/ReactViews/HOCs/measureElement.tsx | 70 +- .../HelpScreens/SatelliteHelpPrompt.jsx | 7 +- lib/ReactViews/Map/ExperimentalFeatures.jsx | 36 - lib/ReactViews/Map/ExperimentalFeatures.tsx | 40 + .../Map/Navigation/Items/Compass.tsx | 12 +- .../Navigation/Items/MapNavigationItem.tsx | 15 +- .../Map/Navigation/Items/MeasureTool.ts | 39 +- .../Items/OverflowNavigationItem.tsx | 79 +- .../Map/Navigation/Items/ZoomControl.tsx | 7 +- .../Map/Navigation/MapNavigation.tsx | 2 +- lib/ReactViews/Map/Panels/BaseOuterPanel.js | 3 +- lib/ReactViews/Map/Panels/DropdownPanel.jsx | 1 + .../Map/Panels/HelpPanel/HelpPanel.jsx | 34 +- .../Map/Panels/HelpPanel/HelpPanelItem.jsx | 30 +- .../Map/Panels/HelpPanel/HelpVideoPanel.jsx | 131 +- .../Map/Panels/HelpPanel/StyledHtml.jsx | 9 +- .../Map/Panels/HelpPanel/TrainerPane.jsx | 6 +- .../Map/Panels/HelpPanel/VideoGuide.jsx | 6 + lib/ReactViews/Map/Panels/InnerPanel.jsx | 7 +- .../Map/Panels/LangPanel/LangPanel.tsx | 18 +- lib/ReactViews/Map/Panels/MobilePanel.jsx | 1 + lib/ReactViews/Map/Panels/SettingPanel.tsx | 12 +- .../AdvancedOptions/AdvancedOptions.tsx | 103 + .../AdvancedOptions/EmbedSection.tsx | 41 + .../SharePanel/AdvancedOptions/index.ts | 1 + .../Map/Panels/SharePanel/BuildShareLink.ts | 13 +- .../Panels/SharePanel/Print/PrintSection.tsx | 64 + .../Map/Panels/SharePanel/Print/PrintView.tsx | 30 +- .../Map/Panels/SharePanel/SharePanel.jsx | 621 -- .../Map/Panels/SharePanel/SharePanel.tsx | 206 + .../Panels/SharePanel/SharePanelContent.tsx | 78 + .../Panels/SharePanel/ShareUrl/ShareUrl.tsx | 149 + .../SharePanel/ShareUrl/ShareUrlBookmark.tsx | 31 + .../SharePanel/ShareUrl/ShareUrlWarning.tsx | 85 + .../Map/Panels/SharePanel/ShareUrl/index.ts | 2 + .../Map/Panels/SharePanel/StorySharePanel.jsx | 1 + .../Map/Panels/SharePanel/StyledHr.tsx | 10 + .../Map/Panels/SharePanel/share-panel.scss | 105 - .../Panels/SharePanel/share-panel.scss.d.ts | 29 - lib/ReactViews/Map/Panels/TerrainSide.tsx | 149 + .../Map/Panels/ToolsPanel/CountDatasets.jsx | 5 +- lib/ReactViews/Map/ProgressBar.jsx | 162 +- lib/ReactViews/Map/TrainerBar/TrainerBar.tsx | 55 +- lib/ReactViews/Map/progress-bar.scss | 29 +- lib/ReactViews/Map/progress-bar.scss.d.ts | 3 + lib/ReactViews/Map/terria-viewer-wrapper.scss | 72 - lib/ReactViews/Mobile/MobileHeader.jsx | 546 +- lib/ReactViews/Mobile/MobileMenu.jsx | 7 +- lib/ReactViews/Mobile/MobileModalWindow.jsx | 21 +- .../Notification/MapInteractionWindow.tsx | 35 +- lib/ReactViews/Notification/Notification.tsx | 8 +- lib/ReactViews/Preview/GroupPreview.jsx | 2 +- lib/ReactViews/Preview/MappablePreview.jsx | 2 +- lib/ReactViews/Search/Breadcrumbs.jsx | 6 +- .../Search/LocationSearchResults.jsx | 4 +- lib/ReactViews/Search/SearchBox.jsx | 11 +- lib/ReactViews/Search/SearchBoxAndResults.jsx | 2 +- lib/ReactViews/Search/sidebar-search.scss | 1 - lib/ReactViews/SelectableDimensions/Color.tsx | 2 +- .../SelectableDimensions/Select.tsx | 5 +- lib/ReactViews/SidePanel/Branding.tsx | 15 +- lib/ReactViews/SidePanel/FullScreenButton.jsx | 16 +- lib/ReactViews/SidePanel/SidePanel.jsx | 257 - lib/ReactViews/SidePanel/SidePanel.tsx | 229 + .../ContextProviders.tsx | 14 + .../GlobalTerriaStyles.ts | 70 + .../StandardUserInterface/MapColumn.jsx | 106 +- .../SidePanelContainer.tsx | 5 +- .../StandardUserInterface.jsx | 494 -- .../StandardUserInterface.tsx | 319 + .../ViewStateContext.tsx | 37 + .../WorkflowPanelContainer.tsx | 5 +- .../processCustomElements.jsx | 2 +- .../standard-user-interface.scss | 1 + lib/ReactViews/Story/Story.tsx | 13 +- lib/ReactViews/Story/StoryBuilder.jsx | 635 -- lib/ReactViews/Story/StoryBuilder.tsx | 640 ++ lib/ReactViews/Story/StoryEditor.jsx | 36 +- lib/ReactViews/Story/StoryPanel/StoryBody.tsx | 4 +- .../Story/StoryPanel/StoryPanel.tsx | 71 +- lib/ReactViews/Story/story-editor.scss | 9 +- lib/ReactViews/Tools/DiffTool/DiffTool.tsx | 20 +- .../PedestrianMode/DropPedestrianToGround.tsx | 7 +- .../PedestrianMode/MovementsController.ts | 9 +- lib/ReactViews/Tools/Tool.tsx | 31 +- lib/ReactViews/Tools/ToolModal.tsx | 6 +- lib/ReactViews/Tour/TourPortal.jsx | 22 +- .../WelcomeMessage/WelcomeMessage.jsx | 3 +- .../Workbench/Controls/ChartItemSelector.jsx | 88 - .../Workbench/Controls/ChartItemSelector.tsx | 110 + .../Controls/DateTimeSelectorSection.jsx | 240 - .../Controls/DateTimeSelectorSection.tsx | 286 + .../Controls/DisplayAsPercentSection.tsx | 40 + .../Workbench/Controls/LeftRightSection.jsx | 119 - .../Workbench/Controls/LeftRightSection.tsx | 112 + .../Workbench/Controls/OpacitySection.tsx | 47 +- .../Workbench/Controls/ScaleWorkbenchInfo.tsx | 6 +- .../Workbench/Controls/ShortReport.tsx | 33 +- .../Workbench/Controls/ViewingControls.tsx | 18 +- .../Controls/WorkbenchItemControls.tsx | 7 +- .../Controls/chart-item-selector.scss | 26 - .../Controls/chart-item-selector.scss.d.ts | 9 - .../Controls/datetime-selector-section.scss | 139 - .../datetime-selector-section.scss.d.ts | 17 - .../Workbench/Controls/input-range.scss | 42 - .../Controls/left-right-section.scss | 15 - .../Controls/left-right-section.scss.d.ts | 14 - .../Workbench/Controls/opacity-section.scss | 23 - .../Controls/opacity-section.scss.d.ts | 8 - lib/ReactViews/Workbench/Workbench.jsx | 108 - lib/ReactViews/Workbench/Workbench.tsx | 123 + ...orkbenchButton.jsx => WorkbenchButton.tsx} | 83 +- lib/ReactViews/Workbench/WorkbenchItem.jsx | 174 - lib/ReactViews/Workbench/WorkbenchItem.tsx | 215 + lib/ReactViews/Workbench/WorkbenchList.jsx | 49 - lib/ReactViews/Workbench/WorkbenchList.tsx | 80 + .../Workbench/WorkbenchSplitScreen.tsx | 261 +- lib/ReactViews/Workbench/sortable.css | 6 +- lib/ReactViews/Workbench/workbench-item.scss | 100 - .../Workbench/workbench-item.scss.d.ts | 24 - lib/ReactViews/Workbench/workbench-list.scss | 28 - .../Workbench/workbench-list.scss.d.ts | 12 - lib/ReactViews/Workbench/workbench.scss | 23 - lib/ReactViews/Workbench/workbench.scss.d.ts | 8 - .../Workflow/SelectableDimensionWorkflow.tsx | 141 +- lib/ReactViews/useCallbackRef.ts | 34 + lib/Sass/global/_editor.scss | 3 - lib/Sass/global/global.scss | 1 - lib/Styled/Box.tsx | 8 +- lib/Styled/Button.tsx | 22 +- lib/Styled/Hr.tsx | 2 +- lib/Styled/List.tsx | 25 +- lib/Styled/Text.tsx | 13 +- lib/Table/ColorStyleLegend.ts | 26 + lib/Table/Csv.ts | 2 +- lib/Table/TableAutomaticStylesStratum.ts | 36 + lib/Table/TableColumn.ts | 22 +- .../createRegionMappedImageryProvider.ts | 5 +- lib/ThirdParty/assimpjs/index.d.ts | 1 + .../terriajs-cesium-extra/index.d.ts | 4 +- .../ArcGisMapServerCatalogItemTraits.ts | 7 +- .../TraitsClasses/AssImpCatalogItemTraits.ts | 22 + .../Cesium3DTilesCatalogItemTraits.ts | 4 +- .../TraitsClasses/Cesium3dTilesTraits.ts | 10 +- lib/Traits/TraitsClasses/ChartTraits.ts | 5 +- .../TraitsClasses/CsvCatalogItemTraits.ts | 8 +- .../TraitsClasses/CzmlCatalogItemTraits.ts | 6 +- .../DiscretelyTimeVaryingTraits.ts | 4 +- lib/Traits/TraitsClasses/FeatureInfoTraits.ts | 29 +- .../TraitsClasses/FeaturePickingTraits.ts | 12 + lib/Traits/TraitsClasses/GeoJsonTraits.ts | 14 +- .../TraitsClasses/GeoRssCatalogItemTraits.ts | 10 +- .../TraitsClasses/GltfCatalogItemTraits.ts | 10 +- lib/Traits/TraitsClasses/GltfTraits.ts | 2 - .../TraitsClasses/GtfsCatalogItemTraits.ts | 4 +- .../TraitsClasses/ImageryProviderTraits.ts | 10 +- .../TraitsClasses/KmlCatalogItemTraits.ts | 7 +- lib/Traits/TraitsClasses/LegendTraits.ts | 6 +- .../MapboxVectorTileCatalogItemTraits.ts | 4 +- lib/Traits/TraitsClasses/MappableTraits.ts | 17 + .../OpenDataSoftCatalogItemTraits.ts | 4 +- .../TraitsClasses/SdmxCatalogItemTraits.ts | 14 +- .../SenapsLocationsCatalogItemTraits.ts | 8 +- .../SensorObservationCatalogItemTraits.ts | 12 +- lib/Traits/TraitsClasses/SplitterTraits.ts | 4 +- .../WebMapServiceCatalogItemTraits.ts | 21 +- .../WebMapTileServiceCatalogItemTraits.ts | 4 +- ...ocessingServiceCatalogFunctionJobTraits.ts | 6 +- lib/Traits/mixTraits.ts | 16 +- .../CompositeBar/CompositeBarModel.ts | 4 +- lib/ViewModels/MapNavigation/MapToolbar.ts | 2 +- lib/ViewModels/TerriaViewer.ts | 39 +- netlify.toml | 4 +- package.json | 41 +- prettier.config.js | 3 - test/Core/CorsProxySpec.js | 7 +- test/Language/languageHelpersSpec.ts | 35 + test/ModelMixins/Cesium3dTilesMixinSpec.ts | 1 + test/ModelMixins/DiffableMixinSpec.ts | 21 +- .../DiscretelyTimeVaryingMixinSpec.ts | 6 +- test/ModelMixins/TableMixinSpec.ts | 264 +- test/ModelMixins/TileErrorHandlerMixinSpec.ts | 6 +- test/ModelMixins/TimeFilterMixinSpec.ts | 5 +- test/Models/Catalog/CatalogGroupSpec.js | 16 +- test/Models/Catalog/CatalogGroupSpec.ts | 159 +- test/Models/Catalog/CatalogItemSpec.js | 4 +- .../CatalogItems/AssImpCatalogItemSpec.ts | 83 + .../Cesium3DTilesCatalogItemSpec.ts | 17 +- .../CesiumTerrainCatalogItemSpec.ts | 95 + .../CatalogItems/CompositeCatalogItemSpec.ts | 2 +- .../CatalogItems/CsvCatalogItemSpec.js | 177 +- .../CatalogItems/CzmlCatalogItemSpec.ts | 2 +- .../CatalogItems/GeoJsonCatalogItemSpec.ts | 55 +- .../CatalogItems/GeoRssCatalogItemSpec.js | 256 - .../CatalogItems/GeoRssCatalogItemSpec.ts | 118 +- .../CatalogItems/GltfCatalogItemSpec.ts | 2 +- .../ImageryLayerCatalogItemSpec.js | 23 +- .../CatalogItems/KmlCatalogItemSpec.js | 20 +- ...SensorObservationServiceCatalogItemSpec.ts | 14 +- .../CatalogItems/TerrainCatalogItemSpec.js | 30 +- test/Models/Catalog/CatalogMemberSpec.js | 11 +- test/Models/Catalog/CatalogSpec.js | 18 +- .../Catalog/Ckan/CkanCatalogGroupSpec.ts | 12 +- .../Ows/WebMapServiceCatalogItemSpec.ts | 69 + .../SdmxJson/SdmxJsonCatalogItemSpec.ts | 8 +- .../esri/ArcGisMapServerCatalogItemSpec.ts | 4 +- test/Models/CesiumSpec.ts | 127 +- test/Models/LeafletSpec.js | 36 +- test/Models/TerriaSpec.ts | 247 +- test/Models/UserDrawingSpec.ts | 9 +- test/ReactViews/ChartSpec.jsx | 6 +- test/ReactViews/DisclaimerSpec.tsx | 21 +- test/ReactViews/FeatureInfoSectionSpec.tsx | 6 +- .../Map/Panels/HelpPanel/HelpPanelSpec.tsx | 33 +- .../Panels/SharePanel/BuildShareLinkSpec.ts | 4 +- .../Map/TrainerBar/TrainerBarSpec.tsx | 26 +- test/ReactViews/ScalesSpec.jsx | 4 +- test/ReactViews/ShortReportSpec.tsx | 32 +- test/ReactViews/SidePanel/BrandingSpec.tsx | 27 +- test/ReactViews/ToolSpec.tsx | 10 +- .../ItemSearchTool/ItemSearchToolSpec.tsx | 2 +- test/ReactViews/Tour/TourPortalSpec.tsx | 27 +- test/ReactViews/WelcomeMessageSpec.tsx | 10 +- .../Controls/ChartItemSelectorSpec.tsx | 9 +- .../Controls/DateTimeSelectorSectionSpec.tsx | 25 +- test/ReactViews/withContext.tsx | 24 + test/ReactViews/withThemeContext.jsx | 8 - test/SpecMain.ts | 3 +- test/Table/TableStyleSpec.ts | 129 + test/Utility/loadAndStubTextResources.js | 17 +- wwwroot/data/regionMapping.json | 5349 ++++++++--------- .../languages}/ar/translation.json | 0 .../languages}/ca/translation.json | 37 +- .../languages}/cs/translation.json | 29 +- .../languages}/de/translation.json | 0 .../languages/el}/translation.json | 0 .../languages}/en/translation.json | 50 +- .../languages}/es/translation.json | 0 .../languages}/fr/translation.json | 4 +- .../languages}/id/translation.json | 21 +- .../languages}/it/translation.json | 4 +- .../languages}/ja/translation.json | 4 +- .../languages}/km/translation.json | 0 .../languages}/ko/translation.json | 0 .../languages/lo}/translation.json | 0 wwwroot/languages/lzh/translation.json | 1 + .../languages}/my/translation.json | 0 .../languages}/nb_NO/translation.json | 0 .../languages}/pt_BR/translation.json | 101 +- .../languages}/ru/translation.json | 0 .../languages}/si/translation.json | 0 .../languages}/th/translation.json | 0 .../languages}/tr/translation.json | 0 .../languages}/vi/translation.json | 0 .../languages}/zh_Hans/translation.json | 4 +- wwwroot/test/AssImp/README.md | 19 + wwwroot/test/AssImp/cube_texture.png | Bin 0 -> 56249 bytes wwwroot/test/AssImp/cube_with_materials.mtl | 25 + wwwroot/test/AssImp/cube_with_materials.obj | 38 + wwwroot/test/AssImp/zip-test.zip | Bin 0 -> 55814 bytes wwwroot/test/GeoRSS/atom/badItem.xml | 2 +- .../csv/lat_lon_enum_date_id_with_regions.csv | 15 + .../test/regionMapping/additionalRegion.json | 75 + .../region_map-SOME_OTHER_REGION.json | 5 + yarn.lock | 494 +- 420 files changed, 20636 insertions(+), 13519 deletions(-) create mode 100755 .husky/pre-commit create mode 100644 .prettierrc create mode 100644 architecture/0010-never-support-ie11.md create mode 100644 doc/contributing/init-sources.md create mode 100644 lib/Core/ensureSuffix.ts delete mode 100644 lib/Core/makeRealPromise.ts create mode 100644 lib/Map/LeafletPatched.js delete mode 100644 lib/ModelMixins/FeatureInfoMixin.ts create mode 100644 lib/ModelMixins/FeatureInfoUrlTemplateMixin.ts delete mode 100644 lib/Models/Catalog/CatalogItems/GltfCatalogItem.ts create mode 100644 lib/Models/Catalog/Gltf/AssImpCatalogItem.ts create mode 100644 lib/Models/Catalog/Gltf/GLTF.ts create mode 100644 lib/Models/Catalog/Gltf/GltfCatalogItem.ts create mode 100644 lib/Models/FunctionParameters/DateParameter.ts create mode 100644 lib/Models/LeafletAttribution.ts create mode 100644 lib/Models/StoryVideoSettings.ts create mode 100644 lib/ReactViews/Analytics/DateParameterEditor.jsx create mode 100644 lib/ReactViews/Credits/Credit.tsx create mode 100644 lib/ReactViews/Credits/Credit.type.ts create mode 100644 lib/ReactViews/Credits/Credits.tsx create mode 100644 lib/ReactViews/Credits/CreditsContainer.tsx create mode 100644 lib/ReactViews/Credits/DataAttribution/DataAttributionModal.tsx create mode 100644 lib/ReactViews/Credits/MapCredits/MapCreditLogo.tsx create mode 100644 lib/ReactViews/Credits/MapCredits/MapCredits.tsx create mode 100644 lib/ReactViews/Credits/Spacer.tsx create mode 100644 lib/ReactViews/Credits/TerriaLogo.tsx create mode 100644 lib/ReactViews/Credits/index.ts delete mode 100644 lib/ReactViews/Custom/Chart/ChartPanelDownloadButton.jsx create mode 100644 lib/ReactViews/Custom/Chart/ChartPanelDownloadButton.tsx create mode 100644 lib/ReactViews/Custom/ExternalLink.tsx delete mode 100644 lib/ReactViews/Generic/Responsive.jsx create mode 100644 lib/ReactViews/Generic/Responsive.tsx create mode 100644 lib/ReactViews/Generic/editor.skin.min.css delete mode 100644 lib/ReactViews/Map/ExperimentalFeatures.jsx create mode 100644 lib/ReactViews/Map/ExperimentalFeatures.tsx create mode 100644 lib/ReactViews/Map/Panels/SharePanel/AdvancedOptions/AdvancedOptions.tsx create mode 100644 lib/ReactViews/Map/Panels/SharePanel/AdvancedOptions/EmbedSection.tsx create mode 100644 lib/ReactViews/Map/Panels/SharePanel/AdvancedOptions/index.ts create mode 100644 lib/ReactViews/Map/Panels/SharePanel/Print/PrintSection.tsx delete mode 100644 lib/ReactViews/Map/Panels/SharePanel/SharePanel.jsx create mode 100644 lib/ReactViews/Map/Panels/SharePanel/SharePanel.tsx create mode 100644 lib/ReactViews/Map/Panels/SharePanel/SharePanelContent.tsx create mode 100644 lib/ReactViews/Map/Panels/SharePanel/ShareUrl/ShareUrl.tsx create mode 100644 lib/ReactViews/Map/Panels/SharePanel/ShareUrl/ShareUrlBookmark.tsx create mode 100644 lib/ReactViews/Map/Panels/SharePanel/ShareUrl/ShareUrlWarning.tsx create mode 100644 lib/ReactViews/Map/Panels/SharePanel/ShareUrl/index.ts create mode 100644 lib/ReactViews/Map/Panels/SharePanel/StyledHr.tsx create mode 100644 lib/ReactViews/Map/Panels/TerrainSide.tsx delete mode 100644 lib/ReactViews/SidePanel/SidePanel.jsx create mode 100644 lib/ReactViews/SidePanel/SidePanel.tsx create mode 100644 lib/ReactViews/StandardUserInterface/ContextProviders.tsx create mode 100644 lib/ReactViews/StandardUserInterface/GlobalTerriaStyles.ts delete mode 100644 lib/ReactViews/StandardUserInterface/StandardUserInterface.jsx create mode 100644 lib/ReactViews/StandardUserInterface/StandardUserInterface.tsx create mode 100644 lib/ReactViews/StandardUserInterface/ViewStateContext.tsx delete mode 100644 lib/ReactViews/Story/StoryBuilder.jsx create mode 100644 lib/ReactViews/Story/StoryBuilder.tsx delete mode 100644 lib/ReactViews/Workbench/Controls/ChartItemSelector.jsx create mode 100644 lib/ReactViews/Workbench/Controls/ChartItemSelector.tsx delete mode 100644 lib/ReactViews/Workbench/Controls/DateTimeSelectorSection.jsx create mode 100644 lib/ReactViews/Workbench/Controls/DateTimeSelectorSection.tsx create mode 100644 lib/ReactViews/Workbench/Controls/DisplayAsPercentSection.tsx delete mode 100644 lib/ReactViews/Workbench/Controls/LeftRightSection.jsx create mode 100644 lib/ReactViews/Workbench/Controls/LeftRightSection.tsx delete mode 100644 lib/ReactViews/Workbench/Controls/chart-item-selector.scss delete mode 100644 lib/ReactViews/Workbench/Controls/chart-item-selector.scss.d.ts delete mode 100644 lib/ReactViews/Workbench/Controls/datetime-selector-section.scss delete mode 100644 lib/ReactViews/Workbench/Controls/datetime-selector-section.scss.d.ts delete mode 100644 lib/ReactViews/Workbench/Controls/input-range.scss delete mode 100644 lib/ReactViews/Workbench/Controls/left-right-section.scss delete mode 100644 lib/ReactViews/Workbench/Controls/left-right-section.scss.d.ts delete mode 100644 lib/ReactViews/Workbench/Controls/opacity-section.scss delete mode 100644 lib/ReactViews/Workbench/Controls/opacity-section.scss.d.ts delete mode 100644 lib/ReactViews/Workbench/Workbench.jsx create mode 100644 lib/ReactViews/Workbench/Workbench.tsx rename lib/ReactViews/Workbench/{WorkbenchButton.jsx => WorkbenchButton.tsx} (62%) delete mode 100644 lib/ReactViews/Workbench/WorkbenchItem.jsx create mode 100644 lib/ReactViews/Workbench/WorkbenchItem.tsx delete mode 100644 lib/ReactViews/Workbench/WorkbenchList.jsx create mode 100644 lib/ReactViews/Workbench/WorkbenchList.tsx delete mode 100644 lib/ReactViews/Workbench/workbench-item.scss delete mode 100644 lib/ReactViews/Workbench/workbench-item.scss.d.ts delete mode 100644 lib/ReactViews/Workbench/workbench-list.scss delete mode 100644 lib/ReactViews/Workbench/workbench-list.scss.d.ts delete mode 100644 lib/ReactViews/Workbench/workbench.scss delete mode 100644 lib/ReactViews/Workbench/workbench.scss.d.ts create mode 100644 lib/ReactViews/useCallbackRef.ts delete mode 100644 lib/Sass/global/_editor.scss create mode 100644 lib/ThirdParty/assimpjs/index.d.ts create mode 100644 lib/Traits/TraitsClasses/AssImpCatalogItemTraits.ts create mode 100644 lib/Traits/TraitsClasses/FeaturePickingTraits.ts delete mode 100644 prettier.config.js create mode 100644 test/Language/languageHelpersSpec.ts create mode 100644 test/Models/Catalog/CatalogItems/AssImpCatalogItemSpec.ts create mode 100644 test/Models/Catalog/CatalogItems/CesiumTerrainCatalogItemSpec.ts delete mode 100644 test/Models/Catalog/CatalogItems/GeoRssCatalogItemSpec.js create mode 100644 test/ReactViews/withContext.tsx delete mode 100644 test/ReactViews/withThemeContext.jsx rename {lib/Language => wwwroot/languages}/ar/translation.json (100%) rename {lib/Language => wwwroot/languages}/ca/translation.json (98%) rename {lib/Language => wwwroot/languages}/cs/translation.json (98%) rename {lib/Language => wwwroot/languages}/de/translation.json (100%) rename {lib/Language/lo => wwwroot/languages/el}/translation.json (100%) rename {lib/Language => wwwroot/languages}/en/translation.json (97%) rename {lib/Language => wwwroot/languages}/es/translation.json (100%) rename {lib/Language => wwwroot/languages}/fr/translation.json (99%) rename {lib/Language => wwwroot/languages}/id/translation.json (96%) rename {lib/Language => wwwroot/languages}/it/translation.json (99%) rename {lib/Language => wwwroot/languages}/ja/translation.json (99%) rename {lib/Language => wwwroot/languages}/km/translation.json (100%) rename {lib/Language => wwwroot/languages}/ko/translation.json (100%) rename {lib/Language/lzh => wwwroot/languages/lo}/translation.json (100%) create mode 100644 wwwroot/languages/lzh/translation.json rename {lib/Language => wwwroot/languages}/my/translation.json (100%) rename {lib/Language => wwwroot/languages}/nb_NO/translation.json (100%) rename {lib/Language => wwwroot/languages}/pt_BR/translation.json (96%) rename {lib/Language => wwwroot/languages}/ru/translation.json (100%) rename {lib/Language => wwwroot/languages}/si/translation.json (100%) rename {lib/Language => wwwroot/languages}/th/translation.json (100%) rename {lib/Language => wwwroot/languages}/tr/translation.json (100%) rename {lib/Language => wwwroot/languages}/vi/translation.json (100%) rename {lib/Language => wwwroot/languages}/zh_Hans/translation.json (99%) create mode 100644 wwwroot/test/AssImp/README.md create mode 100644 wwwroot/test/AssImp/cube_texture.png create mode 100644 wwwroot/test/AssImp/cube_with_materials.mtl create mode 100644 wwwroot/test/AssImp/cube_with_materials.obj create mode 100644 wwwroot/test/AssImp/zip-test.zip create mode 100644 wwwroot/test/csv/lat_lon_enum_date_id_with_regions.csv create mode 100644 wwwroot/test/regionMapping/additionalRegion.json create mode 100644 wwwroot/test/regionMapping/region_map-SOME_OTHER_REGION.json diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index eebdb3d0106..9fcea52b7a1 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -9,7 +9,7 @@ jobs: - uses: actions/checkout@v2 - uses: actions/setup-node@v2 with: - node-version: '14.x' + node-version: "14.x" - uses: google-github-actions/setup-gcloud@v0.2.1 with: service_account_key: ${{ secrets.GCP_CREDENTIALS }} @@ -20,7 +20,7 @@ jobs: location: ${{ secrets.GKE_LOCATION }} - uses: azure/setup-helm@v1.1 with: - version: 'v3.3.1' + version: "v3.3.1" - run: bash ./buildprocess/ci-deploy.sh env: NODE_OPTIONS: --max_old_space_size=4096 @@ -28,3 +28,9 @@ jobs: SHARE_S3_SECRET_ACCESS_KEY: ${{ secrets.SHARE_S3_SECRET_ACCESS_KEY }} FEEDBACK_GITHUB_TOKEN: ${{ secrets.FEEDBACK_GITHUB_TOKEN }} GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + # Upload new yarn.lock file (as it may change after `sync-dependencies`) + - uses: actions/upload-artifact@v3 + if: always() + with: + name: yarn.lock + path: yarn.lock diff --git a/.husky/pre-commit b/.husky/pre-commit new file mode 100755 index 00000000000..0da96d6baa5 --- /dev/null +++ b/.husky/pre-commit @@ -0,0 +1,4 @@ +#!/usr/bin/env sh +. "$(dirname -- "$0")/_/husky.sh" + +npx pretty-quick --staged diff --git a/.prettierignore b/.prettierignore index 0b37967472f..62a39ac9c00 100644 --- a/.prettierignore +++ b/.prettierignore @@ -1,34 +1,42 @@ -# Ignore everything -* - -# Unignore directories (to all depths) and unignore code and style files -!lib/**/ -!lib/**/*.js -!lib/**/*.json -!lib/**/*.jsx -!lib/**/*.ts -!lib/**/*.tsx -!lib/**/*.scss - -!test/**/ -!test/**/*.js -!test/**/*.jsx -!test/**/*.ts -!test/**/*.tsx -!test/**/*.scss +# ===================== +# From .gitignore. Update this list when .gitignore changes + +docs/ +node_modules/ +.idea/ +build/ +error.log +output.log +npm-debug.log +.DS_Store +terria.lib.js +terriajs-server.log +terriajs.pid +/wwwroot/doc/ +/wwwroot/schema/ +/wwwroot/user-guide/ +/coverage/ +package-lock.json +*.swp +dist +.history/ + +# Catalog index generation files +catalog-index*.json + +# End of .gitignore copy +# ===================== + + +# Generated files +/wwwroot/data/regionids +yarn.lock # These are auto-generated by css-modules-typescript-loader **/*.scss.d.ts -# Unignore new files -!buildprocess/ -!buildprocess/webpack-tools.config.js -!buildprocess/generateDocs.ts -!buildprocess/generateCatalogIndex.ts -!buildprocess/patchNetworkRequests.ts - -!wwwroot -!wwwroot/test -!wwwroot/test/Magda -!wwwroot/test/Magda/shareKeys/**/ -!wwwroot/test/Magda/shareKeys/**/*.json +# Third party files +/wwwroot/third_party + +# Ignore some files +doc/acknowledgements/attributions.md diff --git a/.prettierrc b/.prettierrc new file mode 100644 index 00000000000..1a8654abc28 --- /dev/null +++ b/.prettierrc @@ -0,0 +1,3 @@ +{ + "trailingComma": "none" +} \ No newline at end of file diff --git a/CHANGES.md b/CHANGES.md index 92424da838d..ee570ea5724 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -1,229 +1,391 @@ -Change Log -========== +# Change Log #### rer3d+8.1.16-2 -* Add control of the map from the keyboard -* Fix clipboard -* Improve Kml polygon visualization -* Temporary turn off search in catalog info + +- Add control of the map from the keyboard +- Fix clipboard +- Improve Kml polygon visualization +- Temporary turn off search in catalog info #### rer3d+8.1.16 -* Review and merge customizations from rer3d v7 - * Set default line stroke width to 4 px - * Add save and load functions to SharePanel - * Add MeasurableTraits - * Clamp to ground GeoJson, Kml, Gpx - * Add elevation to FeatureInfo - * Add CoordsPanel - * Remove elevation error in coordinates - * smallUserInterface improvements - * Increase Leaflet max zoom level from 18 to 21 - * Add NominatimSearchProvider - * Add RerSearchProvider - * Fix BingMapSearchProvider zoom to location -* Add appendData trait to GeoJson -* Add RerFeatureServerTraits traits -* Clamp to ground lines of Measure Tool -* Disable extra credit links -* Set site title from config.json + +- Review and merge customizations from rer3d v7 + - Set default line stroke width to 4 px + - Add save and load functions to SharePanel + - Add MeasurableTraits + - Clamp to ground GeoJson, Kml, Gpx + - Add elevation to FeatureInfo + - Add CoordsPanel + - Remove elevation error in coordinates + - smallUserInterface improvements + - Increase Leaflet max zoom level from 18 to 21 + - Add NominatimSearchProvider + - Add RerSearchProvider + - Fix BingMapSearchProvider zoom to location +- Add appendData trait to GeoJson +- Add RerFeatureServerTraits traits +- Clamp to ground lines of Measure Tool +- Disable extra credit links +- Set site title from config.json #### next release (8.1.17) + #### next release (8.2.4) + #### next release (8.2.5) -* [The next improvement] +#### next release (8.2.13) + +- Fix pedestrian drop behaviour so that the camera heading stays unchanged even after the drop +- Improve the CKAN model robustness by removing leading and trailing spaces in wms layer names. +- Load all `InitSources` sequentially instead of asyncronosly +- Fix `DOMPurify.sanitize` call in `PrintView` +- [The next improvement] + +#### release 8.2.12 - 2022-08-10 + +- Dropped "optional" from the prompt text in file upload modal for both local and web data. +- Changed the text for the first file upload option from "Auto-detect (recommended)" to simply "File type" for local files and "File or web service type" for web urls. +- Automatically suffix supported extension list to the entries in file type dropdown to improve clarity. +- Removed IFC from upload file type (until further testing). +- Move `CkanCatalogGroup` "ungrouped" group to end of members + +#### release 8.2.11 - 2022-08-08 + +- Add ability to customise the getting started video in the StoryBuilder panel +- Set cesium base URL by default so that cesium assets are resolved correctly +- Add `cesiumBaseUrl` to `TerriaOptions` for overriding the default cesium base url setting +- Fix broken Bing map logo in attributions +- Added ability to customise the getting started video in the StoryBuilder panel. +- Fixed a bug where menu items were rendered in the wrong style if the window was resized from small to large, or large to small. +- Strongly type `item` in WorkbenchItem and remove `show` toggle for non `Mappable` items. +- Add `configParameters.regionMappingDefinitionsUrls` - to support multiple URLs for region mapping definitions - if multiple provided then the first matching region will be used (in order of URLs) + - `configParameters.regionMappingDefinitionsUrl` still exists but is deprecated - if defined it will override `regionMappingDefinitionsUrls` +- `TableMixin.matchRegionProvider` now returns `RegionProvider` instead of `string` region type. (which exists at `regionProvider.regionType`) +- Fix `shouldShorten` property in catalog and story `ShareUrl` +- Fix `shortenShareUrls` user property +- Add `videoCoverImageOpacity` option to `HelpContentItem` so that we can fade the background of help video panels. +- Fix a bug where all `HelpVideoPanel`s were being rendered resulting in autoplayed videos playing at random. +- Add `getFeatureInfoUrl` and `getFeatureInfoParameters` to `WebMapServiceCatalogItemTraits` +- Fix `SearchBoxAndResults` Trans values +- Fix `generateCatalogIndex` for nested references +- Fix `SearchBox` handling of `searchWithDebounce` when `debounceDuration` prop changes. It now fushes instead of cancels. + +#### release 8.2.10 - 2022-08-02 + +- **Breaking changes:** + - **Minimum NodeJS version is now 14** +- Consolidate `HasLocalData` interface +- Add `GlTf` type definition (v2) +- Add `gltfModelUrl` to `GltfMixin` - this must be implemented by Models which use `GltfMixin` +- Moved `GltfCatalogItem` to `lib/Models/Catalog/Gltf/GltfCatalogItem.ts` +- Add experimental client-side 3D file conversion using [`assimpjs`](https://github.com/kovacsv/assimpjs) ([emscripten](https://emscripten.org) interface for the [assimp](https://github.com/assimp/assimp) library) + - This supports `zip` files and `HasLocalData` - but is not in `getDataType` as the scene editor (closed source) is required to geo-reference + - Supports over 40 formats - including Collada, obj, Blender, DXF - [full list](https://github.com/assimp/assimp/blob/master/doc/Fileformats.md) +- Add `description` to `getDataType` - this will be displayed between Step 1 and Step 2 +- Add warning message to `GltfMixin` when showing in 2D mode (Leaflet) +- Upgrade `husky` to `^8.0.1` +- Prevent looping when navigating between scenes in StoryPanel using keyboard arrows +- Fix bug where StoryPanel keyboard navigation persists after closing StoryPanel +- Fix select when clicking on multiple features in 2D (#5660) +- Implemented support for `featureInfoUrlTemplate` on 2D vector features (#5660) +- Implemented FeatureInfoMixin in GeojsonMixin (#5660) +- `GpxCatalogItem` now use `GeojsonMixin` for loading data. (#5660) +- `GeoRssCatalogItem` now use `GeojsonMixin` for loading data. (#5660) +- Upgrade i18next to `v21` +- Limit workbench item title to 2 lines and show overflow: ellipsis after. +- Add `allowFeaturePicking` trait to Cesium3dTileMixin. +- Feature Info now hidden on Cesium3dTiles items if `allowFeaturePicking` set to false. Default is true. +- Add `initFragmentPaths` support for hostnames different to `configUrl`/`applicationUrl` +- Add DOMPurify to `parseCustomHtmlToReact` (it was already present in `parseCustomMarkdownToReact`) +- Update `html-to-react` to `1.4.7` +- Add `ViewState` React context provider to `StandardUserInterface` - instead of passing `viewState` or `terria` props through components, please use + - `useViewState` hook + - `withViewState` HOC +- Move `GlobalTerriaStyles` from `StandardUserInterface` to separate file +- Add `ExternalLinkWithWarning` component - this will replace all URLs in story body and add a warning message when URLs are clicked on. +- Fixed a bug where adding `CesiumTerrainCatalogItem` to workbench didn't apply it when `configParameters.cesiumTerrainAssetId` or `configParameters.cesiumTerrainUrl` was set. +- `CesiumTerrainCatalogItem` will now show a status `In use` or `Not in use` in the workbench. +- Rewrote `CesiumTerrainCatalogItem` to handle and report network errors. +- Set `JulianDate.toIso8601` second precision to nanosecond - this prevents weird date strings with scientific/exponent notation (eg `2008-05-07T22:54:45.7275957614183426e-11Z`) +- Add attribution for Natural Earth II and NASA Black Marble basemaps. + +#### 8.2.9 - 2022-07-13 + +- Pin `html-to-react` to `1.4.5` due to ESM module in dependency (`parse5`) breaking webpack +- Add step to `"Deploy TerriaMap"` action to save `yarn.lock` after `sync-dependencies` (for debug purposes) +- TSIfy `SharePanel` +- Move `includeStoryInShare` out of `ViewState` into local state +- Implement ability to navigate between scenes in StoryPanel using keyboard arrows +- Rename `FeatureInfoMixin` to `FeatureInfoUrlTemplateMixin` +- Move `featureInfoTemplate` and `showStringIfPropertyValueIsNull` from `FeatureInfoTraits` to `MappableTraits` (all mappable catalog items) +- Remove `FeatureInfoUrlTemplateTraits` from all models that don't use `FeatureInfoUrlTemplateMixin` +- Upgrade prettier to version 2.7.1 +- [The next improvement] +- Fix "Regions: xxx" short report showing for non region mapped items +- Fix `showInChartPanel` default for mappable items + +#### 8.2.8 - 2022-07-04 + +- Improve Split/compare error handling +- Fix `itemProperties` split bug +- Table styling is disabled if `MultiPoint` are in GeoJSON +- Add `GeoJsonTraits.useOutlineColorForLineFeatures` - If enabled, `TableOutlineStyleTraits` will be used to color Line Features, otherwise `TableColorStyleTraits` will be used. +- Fix feature highliting for `Line`, `MultiLine` and `MultiPoint` +- Await Internationalisation initialisation in `Terria.start` +- `UserDrawing.messageHeader` can now also be `() => string` + +#### 8.2.7 - 2022-06-30 + +- Fix `WorkbenchItem` title height +- Add region map info and move "No Data" message to `InfoSections` in `TableAutomaticStylesStratum` +- Fix missing `TableColorStyleTraits.legend` values in `ColorStyleLegend` +- Fix `DateTimeSelectorSection.changeDateTime()` binding. +- `RegionProvider.find*Variable` functions now try to match with and without whitespace (spaces, hyphens and underscores) +- Clean up `regionMapping.json` descriptions +- Implement Leaflet credits as a react component, so it is easier to maintain them. Leaflet view now show terria extra credits. +- Implement Cesium credits as a react component, so it is easier to maintain them. +- Implement data attribution modal for map data attributions/credits. Used by both Leaflet and Cesium viewers. +- Fixed translation of Leaflet and Cesium credits. +- TSXify `ChartPanelDownloadButton` +- `ChartPanelDownloadButton` will now only export columns which are visible in chart +- Cleanup `Mixin` and `Traits` inheritance +- Wrap the following components in `observer` - `ChartItem`, `LineChart`, (chart) `Legends`, `ChartPanelDownloadButton` +- Improve TerriaReference error logging +- Fix handling GeoJSON if features have null geometry +- Fix bug where map tools names appear as translation strings +- Allow IFC files to be added to a map from local or web data (Requires non-open source plugin) +- Rename `useTranslationIfExists` to `applyTranslationIfExists` so it doesn't look like a React hook. +- Added a required parameter i18n to `applyTranslationIfExists` to avoid having stale translated strings when the language changes. +- Fix `StoryBuilder` remove all text color +- Fix `FeatureInfoPanel` `Loader` color + +#### 8.2.6 - 2022-06-17 + +- **Breaking changes:** + - Changed translation resolution. Now the "translation" namespace loads only from `${terria.baseUrl}/languages/{{lng}}/translation.json` (TerriaJS assets) and "languageOverrides" loads from `languages/{{lng}}/languageOverrides.json` (a TerriaMap's assets) +- Removed EN & FR translation files from bundle. All translation files are now loaded on demand. +- Moved translation files from `lib/Language/*/translation.json` to `wwwroot/languages/*/translation.json`. +- Fixed default 3d-tiles styling to add a workaround for a Cesium bug which resulted in wrong translucency value for point clouds. +- Remove Pell dependency, now replaced with TinyMCE (WYSIWYG editor library). +- Added `beforeRestoreAppState` hook for call to `Terria.start()` which gets called before state is restored from share data. +- Made `order` optional for `ICompositeBarItem`. +- Fix `includes` path for `url-loader` rule so that it doesn't incorrectly match package names with `terriajs` as prefix. +- Add help button for bookmarking sharelinks to SharePanel (if that help item exists in config) + +#### 8.2.5 - 2022-06-07 + +- Add Google Analytics event for drag and drop of files onto map. +- Allow users to choose whether Story is included in Share +- Fixed bug that broke Cesium when WebGL was not available. Reverts to Leaflet. +- Fixed bug where `new Terria()` constructror would try to access `document` and throw an error when running in NodeJS. +- Add WPS support for `Date` (additional to existing `DateTime`) and support for `ComplexData` `Date`/`DateTime` WPS Inputs. +- TSXified `StandardUserInterface` and some other components. If your TerriaMap imports `StandardUserInterface.jsx` remove the `.jsx` extension so webpack can find the new `.tsx` file. +- Fix use of `baseMapContrastColor` in region mapping/protomaps and remove `MAX_SELECTABLE_DIMENSION_OPTIONS`. +- `mapItems` can now return arbitrary Cesium primitives. +- Added progress of 3DTiles data source loading to Progress Bar. +- ProgressBar colour now depends on baseMapContrastColor - improves visibility on light map backgrounds. +- Update `terriajs-cesium` to `1.92.0`. +- Replace Pell WYSIWYG editor library with TinyMCE, allows richer editing of Stories in the Story Builder +- Added support for using Compare / Split Screen mode with Cesium 3D Tiles. +- Fix `BottomDock.handleClick` binding +- Use the theme base font to style story share panel. +- Fix problem with Story Prompt not showing +- Fix global body style (font and focus purple) +- Add `color:inherit` to `Button` #### 8.2.4 - 2022-05-23 -* Update protomaps to `1.19.0` - now using offical version. -* Fix Table/VectorStylingWorkflow for datasets with no columns/properties to visualise -* Improve default `activeStyle` in `TableMixin` - if no `scalar` style is found then find first style with enum, text and finally region. -* Add Mustache template support to `modelDimensions` for string properties in `option.value` (with the catalog member as context) -* Added a check for disableExport in ChartPanelDownloadButton.jsx. Prevents download button rendering. -* Fix `CatalogIndex` types -* Moved code for retrieving a model by id, share key or CatalogIndex to a new function `terria.getModelByIdShareKeyOrCatalogIndex`. -* Updated handling of `previewedItemId` to use new function `terria.getModelByIdShareKeyOrCatalogIndex`. This will now use CatalogIndex if the `previewedItemId` cannot be found in models or model share keys. -* Fixed a race condition inside ModalPopup that caused the explorer panel (data catalogue) to be stuck hidden until refresh. -* Fix bug that broke the `DiffTool` preventing it from opening. -* TSify `BottomDock` and `measureElement` components. -* Fixed a bug in `GltfMixin` which resulted in some traits missing from `GltfCatalogItem` and broke tools like the scene editor. -* Leaflet attribution can be set through `config.leafletAttributionPrefix`. Attribution HTML string to show on Leaflet maps. Will use Leaflet's default if undefined. To hide Leaflet attribution - set `leafletAttributionPrefix:""` -* Re-add missing `helpPanel.mapUserGuide` translation string -* Fix `sortMembersBy` for child `Groups` and `References` -* Add `raiseError` convenience method to `TerriaError` -* Improve `filterOutUndefined` types -* Add [Maki icons](https://labs.mapbox.com/maki-icons/) - these can be used in `TablePointStyleTraits`. For example `marker = "hospital"` -* Rename `ProtomapsImageryProvider.duplicate()` to `ProtomapsImageryProvider.clone()`. -* Add [`ts-essentials` library](https://github.com/ts-essentials/ts-essentials) - "a set of high-quality, useful TypeScript types that make writing type-safe code easier" -* `GeojsonMixin` improvements - * `uveMvt` is now `useTableStylingAndProtomaps` - * If `useTableStylingAndProtomaps` is true, then protomaps is used for Line and Polygon features, and `TableMixin` is used for Point features (see `createLongitudeLatitudeFeaturePerRow()`) - * `GeoJsonTraits.style` is now only supported by Cesium primitives (if defined, then `useTableStylingAndProtomaps` will be false). Instead you can use `TableStyleTraits` -* `TableMixin` improvements - * Add new `TableStyleMap` model, this is used to support `enum`, `bin` and `null` styles for the following: - * `TablePointStyleTraits` - this supports markers (URLs or Maki icons) and rotation, width, height and pixelOffset. - * Add `TableOutlineStyleTraits` - this supports color and width. - * Legends are now handled by `TableAutomaticLegendStratum` - * Legends will be merged across `TableStyleMaps` and `TableColorMap` - for example, marker icons will be shown in legend with correct colors. See `MergedStyleMapLegend` - * Default `activeStyle` is now picked by finding the first column of type `scalar`, and then the first column of type `enum`, then `text` and then finally `region`. -* `ArcGisFeatureServiceCatalogItem` now uses Table styling and `protomaps` -* Adapted `BaseModel.addObject` to handle adding objects to `ArrayTraits` with `idProperty="index"` and `isRemoval`. The new object will be placed at the end of the array (across all strata). -* Add `allowCustomInput` property to `SelectableDimensionGroup` - if true then `react-select` will allow custom user input. -* `TableStylingWorkflow` improvements - * Better handling of swapping between different color scheme types (eg enum or bin) - * Add point, outline and point-size traits +- Update protomaps to `1.19.0` - now using offical version. +- Fix Table/VectorStylingWorkflow for datasets with no columns/properties to visualise +- Improve default `activeStyle` in `TableMixin` - if no `scalar` style is found then find first style with enum, text and finally region. +- Add Mustache template support to `modelDimensions` for string properties in `option.value` (with the catalog member as context) +- Added a check for disableExport in ChartPanelDownloadButton.jsx. Prevents download button rendering. +- Fix `CatalogIndex` types +- Moved code for retrieving a model by id, share key or CatalogIndex to a new function `terria.getModelByIdShareKeyOrCatalogIndex`. +- Updated handling of `previewedItemId` to use new function `terria.getModelByIdShareKeyOrCatalogIndex`. This will now use CatalogIndex if the `previewedItemId` cannot be found in models or model share keys. +- Fixed a race condition inside ModalPopup that caused the explorer panel (data catalogue) to be stuck hidden until refresh. +- Fix bug that broke the `DiffTool` preventing it from opening. +- TSify `BottomDock` and `measureElement` components. +- Fixed a bug in `GltfMixin` which resulted in some traits missing from `GltfCatalogItem` and broke tools like the scene editor. +- Leaflet attribution can be set through `config.leafletAttributionPrefix`. Attribution HTML string to show on Leaflet maps. Will use Leaflet's default if undefined. To hide Leaflet attribution - set `leafletAttributionPrefix:""` +- Re-add missing `helpPanel.mapUserGuide` translation string +- Fix `sortMembersBy` for child `Groups` and `References` +- Add `raiseError` convenience method to `TerriaError` +- Improve `filterOutUndefined` types +- Add [Maki icons](https://labs.mapbox.com/maki-icons/) - these can be used in `TablePointStyleTraits`. For example `marker = "hospital"` +- Rename `ProtomapsImageryProvider.duplicate()` to `ProtomapsImageryProvider.clone()`. +- Add [`ts-essentials` library](https://github.com/ts-essentials/ts-essentials) - "a set of high-quality, useful TypeScript types that make writing type-safe code easier" +- `GeojsonMixin` improvements + - `uveMvt` is now `useTableStylingAndProtomaps` + - If `useTableStylingAndProtomaps` is true, then protomaps is used for Line and Polygon features, and `TableMixin` is used for Point features (see `createLongitudeLatitudeFeaturePerRow()`) + - `GeoJsonTraits.style` is now only supported by Cesium primitives (if defined, then `useTableStylingAndProtomaps` will be false). Instead you can use `TableStyleTraits` +- `TableMixin` improvements + - Add new `TableStyleMap` model, this is used to support `enum`, `bin` and `null` styles for the following: + - `TablePointStyleTraits` - this supports markers (URLs or Maki icons) and rotation, width, height and pixelOffset. + - Add `TableOutlineStyleTraits` - this supports color and width. + - Legends are now handled by `TableAutomaticLegendStratum` + - Legends will be merged across `TableStyleMaps` and `TableColorMap` - for example, marker icons will be shown in legend with correct colors. See `MergedStyleMapLegend` + - Default `activeStyle` is now picked by finding the first column of type `scalar`, and then the first column of type `enum`, then `text` and then finally `region`. +- `ArcGisFeatureServiceCatalogItem` now uses Table styling and `protomaps` +- Adapted `BaseModel.addObject` to handle adding objects to `ArrayTraits` with `idProperty="index"` and `isRemoval`. The new object will be placed at the end of the array (across all strata). +- Add `allowCustomInput` property to `SelectableDimensionGroup` - if true then `react-select` will allow custom user input. +- `TableStylingWorkflow` improvements + - Better handling of swapping between different color scheme types (eg enum or bin) + - Add point, outline and point-size traits #### 8.2.3 - 2022-04-22 -* **Breaking changes:** - * `CkanItemReference` no longer copies `default` stratum to target - please use `itemProperties` instead. -* **Revert** Use CKAN Dataset `name` property for WMS `layers` as last resort. -* Add support for `WebMapServiceCatalogGroup` to `CkanItemReference` - this will be used instead of `WebMapServiceCatalogItem` if WMS `layers` can't be identified from CKAN resource metadata. - * Add `allowEntireWmsServers` to `CkanCatalogGroupTraits` - defaults to `true` -* Ignore WMS `Layers` with duplicate `Name` properties -* Fix selectable dimensions passing reactive objects and arrays to updateModelFromJson (which could cause problems with array detection). +- **Breaking changes:** + - `CkanItemReference` no longer copies `default` stratum to target - please use `itemProperties` instead. +- **Revert** Use CKAN Dataset `name` property for WMS `layers` as last resort. +- Add support for `WebMapServiceCatalogGroup` to `CkanItemReference` - this will be used instead of `WebMapServiceCatalogItem` if WMS `layers` can't be identified from CKAN resource metadata. + - Add `allowEntireWmsServers` to `CkanCatalogGroupTraits` - defaults to `true` +- Ignore WMS `Layers` with duplicate `Name` properties +- Fix selectable dimensions passing reactive objects and arrays to updateModelFromJson (which could cause problems with array detection). #### 8.2.2 - 2022-04-19 -* Fixed a whitescreen with PrintView. +- Fixed a whitescreen with PrintView. #### 8.2.1 - 2022-04-13 -* Fixed selectable-dimension checkbox group rendering bug where the group is hidden when it has empty children. +- Fixed selectable-dimension checkbox group rendering bug where the group is hidden when it has empty children. #### 8.2.0 - 2022-04-12 -* **Breaking changes:** - * Multiple changes to `GtfsCatalogItem`: - * Removed `apiKey` in favour of more general `headers` - * Removed unused `bearingDirectionProperty` & `compassDirectionProperty` - * `image` is no longer resolved relative to the TerriaJS asset folder. This will allow using relative URLs for assets that aren't inside the TerriaJS asset folder. Any relative `image` urls should now have "build/TerriaJS/" prepended (the value of `terria.baseUrl`). -* Added `colorModelsByProperty` to `GtfsCatalogItem` which will colour 1 model differently for different vehichles based on properties matched by regular expression. E.g. colour a vehicle model by which train line the vehicle is travelling on. -* Fixed a bug where cross-origin billboard images threw errors in Leaflet mode when trying to recolour the image. -* Changed rounding of the numbers of the countdown timer in the workbench UI for items that use polling. The timer wil now show 00:00 for at most 500ms (instead of a full second). This means that for timers that are a multiple of 1000ms the timer will now show 00:01 for the last second before polling, instead of 00:00. -* TSified `BuildShareLink`, `InitSourceData` and `ShareData`. -* Added `HasLocalData` interface - which has `hasLocalData` property to implement. -* Added `ModelJson` interface - which provides loose type hints for Model JSON. -* Added `settings` object to `InitSourceData` - provides `baseMaximumScreenSpaceError, useNativeResolution, alwaysShowTimeline, baseMapId, terrainSplitDirection, depthTestAgainstTerrainEnabled` - these properties are now saved in share links/stories. -* Moved `setAlwaysShowTimeline` logic from `SettingsPanel` to `TimelineStack.ts`. +- **Breaking changes:** + - Multiple changes to `GtfsCatalogItem`: + - Removed `apiKey` in favour of more general `headers` + - Removed unused `bearingDirectionProperty` & `compassDirectionProperty` + - `image` is no longer resolved relative to the TerriaJS asset folder. This will allow using relative URLs for assets that aren't inside the TerriaJS asset folder. Any relative `image` urls should now have "build/TerriaJS/" prepended (the value of `terria.baseUrl`). +- Added `colorModelsByProperty` to `GtfsCatalogItem` which will colour 1 model differently for different vehichles based on properties matched by regular expression. E.g. colour a vehicle model by which train line the vehicle is travelling on. +- Fixed a bug where cross-origin billboard images threw errors in Leaflet mode when trying to recolour the image. +- Changed rounding of the numbers of the countdown timer in the workbench UI for items that use polling. The timer wil now show 00:00 for at most 500ms (instead of a full second). This means that for timers that are a multiple of 1000ms the timer will now show 00:01 for the last second before polling, instead of 00:00. +- TSified `BuildShareLink`, `InitSourceData` and `ShareData`. +- Added `HasLocalData` interface - which has `hasLocalData` property to implement. +- Added `ModelJson` interface - which provides loose type hints for Model JSON. +- Added `settings` object to `InitSourceData` - provides `baseMaximumScreenSpaceError, useNativeResolution, alwaysShowTimeline, baseMapId, terrainSplitDirection, depthTestAgainstTerrainEnabled` - these properties are now saved in share links/stories. +- Moved `setAlwaysShowTimeline` logic from `SettingsPanel` to `TimelineStack.ts`. #### 8.1.27 - 2022-04-08 -* Use CKAN Dataset `name` property for WMS `layers` as last resort. -* Set CKAN Group will now set CKAN Item `name` in `definition` stratum. -* Ignore GeoJSON Features with no geometry. -* Fix feedback link styling. -* Improve `CatalogIndexReference` error messages. +- Use CKAN Dataset `name` property for WMS `layers` as last resort. +- Set CKAN Group will now set CKAN Item `name` in `definition` stratum. +- Ignore GeoJSON Features with no geometry. +- Fix feedback link styling. +- Improve `CatalogIndexReference` error messages. #### 8.1.26 - 2022-04-05 -* **Breaking changes** - * All dynamic groups (eg `WebMapServiceCatalogGroup`) will create members and set `definition` strata (instead of `underride`) -* New `GltfMixin`, which `GltfCatalogItem` now uses. -* Hook up `beforeViewerChanged` and `afterViewerChanged` events so they are +- **Breaking changes** + - All dynamic groups (eg `WebMapServiceCatalogGroup`) will create members and set `definition` strata (instead of `underride`) +- New `GltfMixin`, which `GltfCatalogItem` now uses. +- Hook up `beforeViewerChanged` and `afterViewerChanged` events so they are triggered on viewer change. They are raised only on change between 2D and 3D viewer mode. -* Removed references to conversion service which is no longer used in version >=8.0.0. -* Added experimental routing system - there may be breaking changes to this system in subsequent patch releases for a short time. The routes currently include: - * `/story/:share-id` ➡ loads share JSON from a URL `${configParameters.storyRouteUrlPrefix}:share-id` (`configParameters.storyRouteUrlPrefix` must have a trailing slash) - * `/catalog/:id` ➡ opens the data catalogue to the specified member -* Fixed a polyline position update bug in `LeafletVisualizer`. Polylines with time varying position will now correctly animate in leaflet mode. -* Change button cursor to pointer -* Add `GeoJsonTraits.filterByProperties` - this can be used to filter GeoJSON features by properties -* Add GeoJSON `czmlTemplate` support for `Polygon/MultiPolygon` -* Add custom `heightOffset` property to `czmlTemplate` -* Fixed a bug where Cesium3DTilePointFeature info is not shown when being clicked. -* Added optional `onDrawingComplete` callback to `UserDrawing` to receive drawn points or rectangle when the drawing is complete. -* Fixed a bug in `BoxDrawing` where the box can be below ground after initialization even when setting `keepBoxAboveGround` to true. -* Add `itemProperties`, `itemPropertiesByType` and `itemPropertiesByIds` to `GroupTraits` and `ReferenceTraits`. - * Properties set `override` strata - * Item properties will be set in the following order (highest to lowest priority) `itemPropertiesByIds`, `itemPropertiesByType`, `itemProperties`. - * If a parent group has `itemProperties`, `itemPropertiesByType` or `itemPropertiesByIds` - then child groups will have these values copied to `underride` when the parent group is loaded - * Similarly with references. -* Fix `viewCatalogMember` bug - where `_previewItem` was being set too late. -* Improve error message in `DataPreview` for references. -* Fix alignment of elements in story panel and move some styling from scss to styled components -* Click on the stories button opens a story builder (button on the left from story number) -* Added ASGS 2021 regions to region mapping: - * SA1-4 (e.g. sa3_code_2021) - * GCCSA - * STE & AUS (aliased to existing 2011/2016 data due to no change in geometry, names & codes) -* Added LGA regions from 2019 & 2021 to region mapping - only usable by lga code -* Increase `ForkTsCheckerWebpackPlugin` memoryLimit to 4GB -* Add `renderInline` option to markdownToHtml/React + TSify files -* Organise `lib/Map` into folder structure -* When `modelDimensions` are changed, `loadMapItems()` is automatically called -* Add `featureCounts` to `GeoJsonMixin` - this tracks number of GeoJSON Features by type -* Add `polygon-stroke`, `polyline-stroke` and `marker-stroke` to GeoJSON `StyleTraits` - these are only applied to geojson-vt features (not Cesium Primitives) -* TableMixin manual region mapping dimensions are now in a `SelectableDimensionGroup` -* Fix misc font/color styles -* Create reusable `StyledTextArea` component -* `Collapsible` improvements: - * Add `"checkbox"` `btnStyle` - * `onToggle` can now stop event propagation - * `title` now supports custom markdown -* Add `rightIcon` and `textLight` props to `Button` -* New `addTerriaScrollbarStyles` scss mixin -* `TableAutomaticStylesStratum` now creates `styles` for every column - but will hide columns depending on `TableColumnType` -* `TableAutomaticStylesStratum.numberFormatOptions` is now `TableStyle.numberFormatOptions` -* Implement `TableColorStyleTraits.legendTicks` - this will determine number of ticks for `ContinuousColorMap` legends -* `DiscreteColorMap` will now use `minimumValue`/`maximumValue` to calculate bins -* `SelectableDimensions` improvements - * Add `color`, `text`, `numeric` and `button` types - * Add `onToggle` function to `SelectableDimensionGroup` - * `Group` and `CheckboxGroup` now share the same UI and use `Collapsible` - * `enum` (previously `select`) now uses `react-select` component - * `color` uses `react-color` component - * `DimensionSelectorSection` / `DimensionSelector*` are now named the same as the model - eg `SelectableDimension` -* Create `Portal`, `PortalContainer`,`SidePanelContainer` and `WorkflowPanelContainer`. There are used by `WorkflowPanel`. -* Create `WorkflowPanel` - a basic building block for creating Workflows that sit on top of the workbench - * It has three reusable components, `Panel`, `PanelButton`, `PanelMenu` -* Create `selectableDimensionWorkflow` - This uses `WorkflowPanel` to show `SelectableDimensions` in a separate side panel. - * `TableStylingWorkflow` - set styling options for TableMixin models - * `VectorStylingWorkflow` - this extends `TableStylingWorkflow` - used to set styling options for GeoJsonMixin models (for Protomaps/geojson-vt only) -* Create `viewingControls` concept. This can be used to add menu items to workbench items menu (eg "Remove", "Export", ...) - * TSXify `ViewingControls` -* Add temporary `legendButton` property - this is used to show a "Custom" button above the Legend if custom styling has been applied - * This uses new `TableStyle.isCustom` property -* Move workbench item controls from `WorkbenchItem.jsx` `WorkbenchItemControls.tsx` -* Add `UrlTempalteImageryCatalogItem`, rename `RasterLayerTraits` to `ImageryProviderTraits` and add some properties. -* Added `ViewingControlsMenu` for making catalog wide extensions to viewing controls options. -* Added `MapToolbar`, a simpler API for adding buttons to the map navigation menu for the most common uses cases. -* Added `BoxDrawing` creation methods `fromTransform` and `fromTranslationRotationScale`. -* Fixed a bug where `zoom` hangs for catalog items with trait named `position`. -* Moved workflows to `Models/Workflows` and added helper method `runWorkflow` to invoke a workflow. -* Change NaturalEarth II basemap to use `url-template-imagery` -* Remove Gnaf API related files as the service was terminated. +- Removed references to conversion service which is no longer used in version >=8.0.0. +- Added experimental routing system - there may be breaking changes to this system in subsequent patch releases for a short time. The routes currently include: + - `/story/:share-id` ➡ loads share JSON from a URL `${configParameters.storyRouteUrlPrefix}:share-id` (`configParameters.storyRouteUrlPrefix` must have a trailing slash) + - `/catalog/:id` ➡ opens the data catalogue to the specified member +- Fixed a polyline position update bug in `LeafletVisualizer`. Polylines with time varying position will now correctly animate in leaflet mode. +- Change button cursor to pointer +- Add `GeoJsonTraits.filterByProperties` - this can be used to filter GeoJSON features by properties +- Add GeoJSON `czmlTemplate` support for `Polygon/MultiPolygon` +- Add custom `heightOffset` property to `czmlTemplate` +- Fixed a bug where Cesium3DTilePointFeature info is not shown when being clicked. +- Added optional `onDrawingComplete` callback to `UserDrawing` to receive drawn points or rectangle when the drawing is complete. +- Fixed a bug in `BoxDrawing` where the box can be below ground after initialization even when setting `keepBoxAboveGround` to true. +- Add `itemProperties`, `itemPropertiesByType` and `itemPropertiesByIds` to `GroupTraits` and `ReferenceTraits`. + - Properties set `override` strata + - Item properties will be set in the following order (highest to lowest priority) `itemPropertiesByIds`, `itemPropertiesByType`, `itemProperties`. + - If a parent group has `itemProperties`, `itemPropertiesByType` or `itemPropertiesByIds` - then child groups will have these values copied to `underride` when the parent group is loaded + - Similarly with references. +- Fix `viewCatalogMember` bug - where `_previewItem` was being set too late. +- Improve error message in `DataPreview` for references. +- Fix alignment of elements in story panel and move some styling from scss to styled components +- Click on the stories button opens a story builder (button on the left from story number) +- Added ASGS 2021 regions to region mapping: + - SA1-4 (e.g. sa3_code_2021) + - GCCSA + - STE & AUS (aliased to existing 2011/2016 data due to no change in geometry, names & codes) +- Added LGA regions from 2019 & 2021 to region mapping - only usable by lga code +- Increase `ForkTsCheckerWebpackPlugin` memoryLimit to 4GB +- Add `renderInline` option to markdownToHtml/React + TSify files +- Organise `lib/Map` into folder structure +- When `modelDimensions` are changed, `loadMapItems()` is automatically called +- Add `featureCounts` to `GeoJsonMixin` - this tracks number of GeoJSON Features by type +- Add `polygon-stroke`, `polyline-stroke` and `marker-stroke` to GeoJSON `StyleTraits` - these are only applied to geojson-vt features (not Cesium Primitives) +- TableMixin manual region mapping dimensions are now in a `SelectableDimensionGroup` +- Fix misc font/color styles +- Create reusable `StyledTextArea` component +- `Collapsible` improvements: + - Add `"checkbox"` `btnStyle` + - `onToggle` can now stop event propagation + - `title` now supports custom markdown +- Add `rightIcon` and `textLight` props to `Button` +- New `addTerriaScrollbarStyles` scss mixin +- `TableAutomaticStylesStratum` now creates `styles` for every column - but will hide columns depending on `TableColumnType` +- `TableAutomaticStylesStratum.numberFormatOptions` is now `TableStyle.numberFormatOptions` +- Implement `TableColorStyleTraits.legendTicks` - this will determine number of ticks for `ContinuousColorMap` legends +- `DiscreteColorMap` will now use `minimumValue`/`maximumValue` to calculate bins +- `SelectableDimensions` improvements + - Add `color`, `text`, `numeric` and `button` types + - Add `onToggle` function to `SelectableDimensionGroup` + - `Group` and `CheckboxGroup` now share the same UI and use `Collapsible` + - `enum` (previously `select`) now uses `react-select` component + - `color` uses `react-color` component + - `DimensionSelectorSection` / `DimensionSelector*` are now named the same as the model - eg `SelectableDimension` +- Create `Portal`, `PortalContainer`,`SidePanelContainer` and `WorkflowPanelContainer`. There are used by `WorkflowPanel`. +- Create `WorkflowPanel` - a basic building block for creating Workflows that sit on top of the workbench + - It has three reusable components, `Panel`, `PanelButton`, `PanelMenu` +- Create `selectableDimensionWorkflow` - This uses `WorkflowPanel` to show `SelectableDimensions` in a separate side panel. + - `TableStylingWorkflow` - set styling options for TableMixin models + - `VectorStylingWorkflow` - this extends `TableStylingWorkflow` - used to set styling options for GeoJsonMixin models (for Protomaps/geojson-vt only) +- Create `viewingControls` concept. This can be used to add menu items to workbench items menu (eg "Remove", "Export", ...) + - TSXify `ViewingControls` +- Add temporary `legendButton` property - this is used to show a "Custom" button above the Legend if custom styling has been applied + - This uses new `TableStyle.isCustom` property +- Move workbench item controls from `WorkbenchItem.jsx` `WorkbenchItemControls.tsx` +- Add `UrlTempalteImageryCatalogItem`, rename `RasterLayerTraits` to `ImageryProviderTraits` and add some properties. +- Added `ViewingControlsMenu` for making catalog wide extensions to viewing controls options. +- Added `MapToolbar`, a simpler API for adding buttons to the map navigation menu for the most common uses cases. +- Added `BoxDrawing` creation methods `fromTransform` and `fromTranslationRotationScale`. +- Fixed a bug where `zoom` hangs for catalog items with trait named `position`. +- Moved workflows to `Models/Workflows` and added helper method `runWorkflow` to invoke a workflow. +- Change NaturalEarth II basemap to use `url-template-imagery` +- Remove Gnaf API related files as the service was terminated. #### 8.1.25 - 2022-03-16 -* Fix broken download link for feature info panel charts when no download urls are specified. -* Fixed parameter names of WPS catalog functions. -* Improve WMS 1.1.1 support - * Added `useWmsVersion130` trait - Use WMS version 1.3.0. True by default (unless `url` has `"version=1.1.1"` or `"version=1.1.0"`), if false, then WMS version 1.1.1 will be used. - * Added `getFeatureInfoFormat` trait - Format parameter to pass to GetFeatureInfo requests. Defaults to "application/json", "application/vnd.ogc.gml", "text/html" or "text/plain" - depending on GetCapabilities response -* Add `legendBackgroundColor` to `LegendOwnerTraits` and `backgroundColor` to `LegendTraits` -* Add `sld_version=1.1.0` to `GetLegendGraphics` requests -* Filter `"styles","version","format","srs","crs"` conflicting query parameters from WMS `url` -* WMS `styles`, `tileWidth`, `tileHeight` and `crs`/`srs` will use value in `url` if it is defined (similar to existing behavior with `layers`) -* WMS will now show warning if invalid `layers` (eg if the specified `layers` don't exist in `GetCapabilities`) -* ArcGisFeatureServerCatalogItem can now load more than the maximum feature limit set by the server by making multiple requests, and uses GeojsonMixin -* Avoid creating duplication in categories in ArcGisPortalCatalogGroup. -* Fix `CatalogMemberMixin.hasDescription` null bug -* `TableStyle` now calculates `rectangle` for point based styles -* Fixed error installing dependencies by changing dependency "pell" to use github protocol rather than unencrypted Git protocol, which is no longer supported by GitHub as of 2022-03-15. +- Fix broken download link for feature info panel charts when no download urls are specified. +- Fixed parameter names of WPS catalog functions. +- Improve WMS 1.1.1 support + - Added `useWmsVersion130` trait - Use WMS version 1.3.0. True by default (unless `url` has `"version=1.1.1"` or `"version=1.1.0"`), if false, then WMS version 1.1.1 will be used. + - Added `getFeatureInfoFormat` trait - Format parameter to pass to GetFeatureInfo requests. Defaults to "application/json", "application/vnd.ogc.gml", "text/html" or "text/plain" - depending on GetCapabilities response +- Add `legendBackgroundColor` to `LegendOwnerTraits` and `backgroundColor` to `LegendTraits` +- Add `sld_version=1.1.0` to `GetLegendGraphics` requests +- Filter `"styles","version","format","srs","crs"` conflicting query parameters from WMS `url` +- WMS `styles`, `tileWidth`, `tileHeight` and `crs`/`srs` will use value in `url` if it is defined (similar to existing behavior with `layers`) +- WMS will now show warning if invalid `layers` (eg if the specified `layers` don't exist in `GetCapabilities`) +- ArcGisFeatureServerCatalogItem can now load more than the maximum feature limit set by the server by making multiple requests, and uses GeojsonMixin +- Avoid creating duplication in categories in ArcGisPortalCatalogGroup. +- Fix `CatalogMemberMixin.hasDescription` null bug +- `TableStyle` now calculates `rectangle` for point based styles +- Fixed error installing dependencies by changing dependency "pell" to use github protocol rather than unencrypted Git protocol, which is no longer supported by GitHub as of 2022-03-15. #### 8.1.24 - 2022-03-08 -* Ignores duplicate model ids in members array in `updateModelFromJson` -* Add support for `crs` property in GeoJSON `Feature` -* Add feature highlighting for Protomaps vector tiles -* Add back props `localDataTypes` and `remoteDataTypes` to the component `MyData` for customizing list of types shown in file upload modal. +- Ignores duplicate model ids in members array in `updateModelFromJson` +- Add support for `crs` property in GeoJSON `Feature` +- Add feature highlighting for Protomaps vector tiles +- Add back props `localDataTypes` and `remoteDataTypes` to the component `MyData` for customizing list of types shown in file upload modal. #### 8.1.23 - 2022-02-28 - **Breaking changes**: - * `IDEAL ZOOM` can be customised by providing `lookAt` or `camera` for `idealZoom` in `MappableTraits`. The `lookAt` takes precedence of `camera` if both exist. The values for `camera` can be easily obtained from property `initialCamera` by calling shared link api . + - `IDEAL ZOOM` can be customised by providing `lookAt` or `camera` for `idealZoom` in `MappableTraits`. The `lookAt` takes precedence of `camera` if both exist. The values for `camera` can be easily obtained from property `initialCamera` by calling shared link api . + * Fixed crash caused by ArcGisMapServerCatalogItem layer missing legend. * Refactored StoryPanel and made it be collapsible * Added animation.ts as a utility function to handle animation end changes (instead of using timeout) @@ -231,40 +393,40 @@ Change Log #### 8.1.22 - 2022-02-18 -* Added play story button in mobile view when there is an active story -* `IDEAL ZOOM` can be customised by providing `idealZoom` property in `MappableTraits`. -* Fix `AddData` options +- Added play story button in mobile view when there is an active story +- `IDEAL ZOOM` can be customised by providing `idealZoom` property in `MappableTraits`. +- Fix `AddData` options #### 8.1.21 - 2022-02-08 -* Fixed bug where WMS layer would crash terria if it had no styles, introduced in 8.1.14 +- Fixed bug where WMS layer would crash terria if it had no styles, introduced in 8.1.14 #### 8.1.20 - 2022-02-04 -* Fixed whitescreen on Print View in release/production builds +- Fixed whitescreen on Print View in release/production builds #### 8.1.19 - 2022-01-25 -* Add WMS support for `TIME=current` -* Only show `TableMixin.legends` if we have rows in dataColumnMajor and mapItems to show -* Add `WebMapServiceCatalogGroup.perLayerLinkedWcs`, this can be used to enable `ExportWebCoverageService` for **all** WMS layers. `item.linkedWcsCoverage` will be set to the WMS layer `Name` if it is defined, layer `Title` otherwise. -* MagdaReference can use addOrOverrideAspects trait to add or override "terria" aspect of target. -* Added new print preview page that opens up in a new window -* TSXified PrintView +- Add WMS support for `TIME=current` +- Only show `TableMixin.legends` if we have rows in dataColumnMajor and mapItems to show +- Add `WebMapServiceCatalogGroup.perLayerLinkedWcs`, this can be used to enable `ExportWebCoverageService` for **all** WMS layers. `item.linkedWcsCoverage` will be set to the WMS layer `Name` if it is defined, layer `Title` otherwise. +- MagdaReference can use addOrOverrideAspects trait to add or override "terria" aspect of target. +- Added new print preview page that opens up in a new window +- TSXified PrintView #### 8.1.18 - 2022-01-21 -* Add missing default Legend to `TableAutomaticStylesStratum.defaultStyle` -* Fix a bug in CompositeCatalogItem that causes share URLs to become extremely long. -* Fix `OpacitySection` number precision. -* Add `sortMembersBy` to `GroupTraits`. This can be set to sort group member models - For example `sortMembersBy = "name"` will alphabetically sort members by name. -* Remove `theme.fontImports` from `GlobalTerriaStyles` - it is now handled in `TerriaMap/index.js` -* Add check to `featureDataToGeoJson.getEsriFeature` to make sure geometry exists +- Add missing default Legend to `TableAutomaticStylesStratum.defaultStyle` +- Fix a bug in CompositeCatalogItem that causes share URLs to become extremely long. +- Fix `OpacitySection` number precision. +- Add `sortMembersBy` to `GroupTraits`. This can be set to sort group member models - For example `sortMembersBy = "name"` will alphabetically sort members by name. +- Remove `theme.fontImports` from `GlobalTerriaStyles` - it is now handled in `TerriaMap/index.js` +- Add check to `featureDataToGeoJson.getEsriFeature` to make sure geometry exists #### 8.1.17 - 2022-01-12 - **Breaking changes**: - * Minimum node version is now 12 after upgrading node-sass dependency + - Minimum node version is now 12 after upgrading node-sass dependency * Automatically cast property value to number in style expressions generated for 3d tiles filter. * Re-enable procedure and observable selectors for SOS items. @@ -280,198 +442,197 @@ Change Log #### 8.1.16 - 2021-12-23 -* Added region mapping support for Commonwealth Electoral Divisions as at 2 August 2021 (AEC) as com_elb_name_2021. +- Added region mapping support for Commonwealth Electoral Divisions as at 2 August 2021 (AEC) as com_elb_name_2021. #### 8.1.15 - 2021-12-22 -* Fix sharelink bug, and make `isJson*` type checks more rigorous -* Remove `uniqueId` from `CatalogMemberMixin.nameInCatalog` and add it as fallback to `CatalogMemberMixin.name` -* Add `shareKeys` and `nameInCatalog` to `CatalogIndexReference`. -* Remove `description` field from `CatalogIndex` - * The `CatalogIndex` can now be used to resolve models in sharelinks -* Add support for zipped `CatalogIndex` json files. -* Fix `SplitReferences` which use `shareKeys` -* Make `isJson*` type assertion functions more rigorous - * Add `deep` parameter, so you can use old "shallow" type check for performance reasons if needed -* Add Shapefile to `CkanDefaultFormatsStratum` -* Fix `ArcGisMapServerCatalogItem` metadata bug -* Remove legend traits from CatalogMemberMixin, replacing them with LegendOwnerTraits, and add tests to enforce correct use of legends. -* Add better support for retreiving GeoJsonCatalogItem data through APIs, including supporting geojson nested within json objects -* Fixed `ContinuousColorMap` min/max value bug. -* `TableStyle.outlierColor` is now only used if `zFilter` is active, or `colorTraits.outlierColor` is defined -* Add `forceConvertResultsToV8` to `WebProcessingServiceCatalogFunction`. If your WPS processes are returning v7 json, you will either need to set this to `true`, or set `version: 0.0.1` in JSON output (which will then be automatically converted to v8) -* Cleanup `CatalogFunction` error handling -* Fix `SelectAPolygonParameterEditor` feature picking (tsified) -* Add `WebMapServiceCatalogItem.rectangle` support for multiple WMS layers -* Fix picked feature highlighting for ArcGis REST API features (and TSify `featureDataToGeoJson`) -* Re-enable GeoJSON simple styling - now if more than 50% of features have [simple-style-spec properties](https://github.com/mapbox/simplestyle-spec) - automatic styling will be disabled (this behaviour can be disabled by setting `forceCesiumPrimitives = false`) -* Don't show `TableMixin` `legends` or `mapItems` if no data -* Fix `GeoJsonCatalogItem.legends` -* Add `isOpen` to `TerriaReferenceTraits` +- Fix sharelink bug, and make `isJson*` type checks more rigorous +- Remove `uniqueId` from `CatalogMemberMixin.nameInCatalog` and add it as fallback to `CatalogMemberMixin.name` +- Add `shareKeys` and `nameInCatalog` to `CatalogIndexReference`. +- Remove `description` field from `CatalogIndex` + - The `CatalogIndex` can now be used to resolve models in sharelinks +- Add support for zipped `CatalogIndex` json files. +- Fix `SplitReferences` which use `shareKeys` +- Make `isJson*` type assertion functions more rigorous + - Add `deep` parameter, so you can use old "shallow" type check for performance reasons if needed +- Add Shapefile to `CkanDefaultFormatsStratum` +- Fix `ArcGisMapServerCatalogItem` metadata bug +- Remove legend traits from CatalogMemberMixin, replacing them with LegendOwnerTraits, and add tests to enforce correct use of legends. +- Add better support for retreiving GeoJsonCatalogItem data through APIs, including supporting geojson nested within json objects +- Fixed `ContinuousColorMap` min/max value bug. +- `TableStyle.outlierColor` is now only used if `zFilter` is active, or `colorTraits.outlierColor` is defined +- Add `forceConvertResultsToV8` to `WebProcessingServiceCatalogFunction`. If your WPS processes are returning v7 json, you will either need to set this to `true`, or set `version: 0.0.1` in JSON output (which will then be automatically converted to v8) +- Cleanup `CatalogFunction` error handling +- Fix `SelectAPolygonParameterEditor` feature picking (tsified) +- Add `WebMapServiceCatalogItem.rectangle` support for multiple WMS layers +- Fix picked feature highlighting for ArcGis REST API features (and TSify `featureDataToGeoJson`) +- Re-enable GeoJSON simple styling - now if more than 50% of features have [simple-style-spec properties](https://github.com/mapbox/simplestyle-spec) - automatic styling will be disabled (this behaviour can be disabled by setting `forceCesiumPrimitives = false`) +- Don't show `TableMixin` `legends` or `mapItems` if no data +- Fix `GeoJsonCatalogItem.legends` +- Add `isOpen` to `TerriaReferenceTraits` #### 8.1.14 - 2021-12-13 - **Breaking changes**: - * `Result.throwIfUndefined()` will now only throw if `result.value` is undefined - regardless of `result.error` + - `Result.throwIfUndefined()` will now only throw if `result.value` is undefined - regardless of `result.error` * Reimplement option to zoom on item when adding it to workbench, `zoomOnAddToWorkbench` is added to `MappableTraits`. -* Update terria-js cesium to `1.81.3` +* Update terria-js cesium to `1.81.3` * Re-allowed models to be added to `workbench` if the are not `Mappable` or `Chartable` * Moved `WebMapServiceCatalogItem.GetCapbilitiesStratum` to `lib\Models\Catalog\Ows\WebMapServiceCapabilitiesStratum.ts` * Moved `WebMapServiceCatalogItem.DiffStratum` to `DiffableMixin` * `callWebCoverageService` now uses version WCS `2.0.0` - * All WCS export functionality is now in `ExportWebCoverageServiceMixin` - * Added `WebCoverageServiceParameterTraits` to `WebMapServiceCatalogItemTraits.linkedWcsParameters`. It includes `outputFormat` and `outputCrs` - * Will attempt to use native CRS and format (from `DescribeCoverage`) - * No longer sets `width` or `height` - so export will now return native resolution + - All WCS export functionality is now in `ExportWebCoverageServiceMixin` + - Added `WebCoverageServiceParameterTraits` to `WebMapServiceCatalogItemTraits.linkedWcsParameters`. It includes `outputFormat` and `outputCrs` + - Will attempt to use native CRS and format (from `DescribeCoverage`) + - No longer sets `width` or `height` - so export will now return native resolution * Anonymize user IP when using google analytics. * Fix crash when TableMixin-based catalog item had invalid date values * Fix `WebMapServiceCatalogItem.styles` if `supportsGetLegendGraphics = false`. This means that if a WMS server doesn't support `GetLegendGraphics` requests, the first style will be set as the default style. - #### 8.1.13 - 2021-12-03 -* Paramerterised the support email on the help panel to use the support email in config -* Refactored `TableColumn get type()` to move logic into `guessColumnTypeFromValues()` -* `TableMixin.activeStyle` will set `TableColumnType = hidden` for `scalar` columns with name `"id"`, `"_id_"` or `"fid"` -* Fix bug `TableColumn.type = scalar` even if there were no values. -* Table columns named `"easting"` and `"northing"` are now hidden by default from styles -* `TableColumn.type = enum` requires at least 2 unique values (including null) to be selected by default -* Tweak automatic `TableColumn.type = Enum` for wider range of values -* Exporting `TableMixin` will now add proper file extensions -* Added `TimeVaryingTraits.timeLabel` trait to change label on `DateTimeSelectorSection` (defaults to "Time:") - * This is set to `timeColumn.title` -* `TableColumn` will try to generate prettier `title` by un-camel casing, removing underscores and capitalising words -* `TableStyle` `startDates`, `finishDates` and `timeIntervals` will only set values for valid `rowGroups` (invalid rows will be set to `null`). For example, this means that rows with invalid regions will be ignored. -* Add "Disable style" option to `TableMixin.styleDimensions` - it can be enabled with `TableTraits.showDisableStyleOption` -* Added `timeDisableDimension` to `TableMixin` - this will render a checkbox to disable time dimension if `rowGroups` only have a single time interval per group (i.e. features aren't "moving" across time) - it can be enabled with `TableTraits.showDisableTimeOption` - `TableAutomaticStylesStratum` will automatically enable this if at least 50% of rowGroups only have one unique time interval (i.e. they don't change over time)\ -* Remove border from region mapping if no data -* Add `baseMapContrastColor` and `constrastColor` to `BaseMapModel` -* Fixed `TableMixin.defaultTableStyle.legends` - `defaultTableStyle` is now not observable - it is created once in the `contructor` -* Removed `Terria.configParameters.enableGeojsonMvt` - geojson-vt/Protomaps is now used by default -* `GpxCatalogItem` now uses `GeojsonMixin` -* Add an external link icon to external hyperlink when using method `parseCustomHtmlToReact`. This feature can be switched off by passing `{ disableExternalLinkIcon: true }` in `context` argument. -* Tsify `sendFeedback.ts` and improve error messages/notifications -* Removed unused overrideState from many DataCatalog React components. -* Fixed a bug where adding a timeseries dataset from the preview map's Add to map button didn't add the dataset to the `timelineStack`. -* Fixed incorrect colour for catalog item names in the explorer panel when using dynamic theming. -* Moved `CatalogIndex` loading from constructor (called in `Terria.start`) to `CatalogSearchProvider.doSearch` - this means the index will only be loaded when the user does their first search -* Add basic auth support to `generateCatalogIndex`, fix some bugs and improve performance -* Update terria-js cesium to `1.81.2` -* Add `uniqueId` as fallback to `nameInCatalog` -* Remove duplicated items from `OpenDataSoftGroup` and `SocrataGroup` +- Paramerterised the support email on the help panel to use the support email in config +- Refactored `TableColumn get type()` to move logic into `guessColumnTypeFromValues()` +- `TableMixin.activeStyle` will set `TableColumnType = hidden` for `scalar` columns with name `"id"`, `"_id_"` or `"fid"` +- Fix bug `TableColumn.type = scalar` even if there were no values. +- Table columns named `"easting"` and `"northing"` are now hidden by default from styles +- `TableColumn.type = enum` requires at least 2 unique values (including null) to be selected by default +- Tweak automatic `TableColumn.type = Enum` for wider range of values +- Exporting `TableMixin` will now add proper file extensions +- Added `TimeVaryingTraits.timeLabel` trait to change label on `DateTimeSelectorSection` (defaults to "Time:") + - This is set to `timeColumn.title` +- `TableColumn` will try to generate prettier `title` by un-camel casing, removing underscores and capitalising words +- `TableStyle` `startDates`, `finishDates` and `timeIntervals` will only set values for valid `rowGroups` (invalid rows will be set to `null`). For example, this means that rows with invalid regions will be ignored. +- Add "Disable style" option to `TableMixin.styleDimensions` - it can be enabled with `TableTraits.showDisableStyleOption` +- Added `timeDisableDimension` to `TableMixin` - this will render a checkbox to disable time dimension if `rowGroups` only have a single time interval per group (i.e. features aren't "moving" across time) - it can be enabled with `TableTraits.showDisableTimeOption` - `TableAutomaticStylesStratum` will automatically enable this if at least 50% of rowGroups only have one unique time interval (i.e. they don't change over time)\ +- Remove border from region mapping if no data +- Add `baseMapContrastColor` and `constrastColor` to `BaseMapModel` +- Fixed `TableMixin.defaultTableStyle.legends` - `defaultTableStyle` is now not observable - it is created once in the `contructor` +- Removed `Terria.configParameters.enableGeojsonMvt` - geojson-vt/Protomaps is now used by default +- `GpxCatalogItem` now uses `GeojsonMixin` +- Add an external link icon to external hyperlink when using method `parseCustomHtmlToReact`. This feature can be switched off by passing `{ disableExternalLinkIcon: true }` in `context` argument. +- Tsify `sendFeedback.ts` and improve error messages/notifications +- Removed unused overrideState from many DataCatalog React components. +- Fixed a bug where adding a timeseries dataset from the preview map's Add to map button didn't add the dataset to the `timelineStack`. +- Fixed incorrect colour for catalog item names in the explorer panel when using dynamic theming. +- Moved `CatalogIndex` loading from constructor (called in `Terria.start`) to `CatalogSearchProvider.doSearch` - this means the index will only be loaded when the user does their first search +- Add basic auth support to `generateCatalogIndex`, fix some bugs and improve performance +- Update terria-js cesium to `1.81.2` +- Add `uniqueId` as fallback to `nameInCatalog` +- Remove duplicated items from `OpenDataSoftGroup` and `SocrataGroup` #### 8.1.12 - 2021-11-18 -* Bigger zoom control icons. -* Modified "ideal zoom" to zoom closer to tilesets and datasources. -* Added `configParameters.feedbackPostamble`. Text showing at the bottom of feedback form, supports the internationalization using the translation key -* `GeoJsonMixin.style["stroke-opacity"]` will now also set `polygonStroke.alpha` and `polylineStroke.alpha` -* Reduce `GeoJsonMixin` default stroke width from `2` to `1` -* Add `TableMixin` styling to `GeoJsonMixin` - it will treat geojson feature properties as "rows" in a table - which can be styled in the same way as `TableMixin` (eg CSV). This is only enabled for geojson-vt/Protomaps (which requires `Terria.configParameters.enableGeojsonMvt = true`). For more info see `GeojsonMixin.forceLoadMapItems()` - * This can be disabled using `GeojsonTraits.disableTableStyle` -* Opacity and splitting is enabled for Geojson (if using geojson-vt/protomaps) -* Replaced `@types/geojson` Geojson types with `@turf/helpers` -* In `GeojsonMixin` replaced with `customDataLoader`, `loadFromFile` and `loadFromUrl` with `forceLoadGeojsonData` -* `GeojsonMixin` will now convert all geojson objects to FeatureCollection -* Exporting `GeojsonMixin` will now add proper file extensions -* `WebFeatureServiceCatalogItem` now uses `GeoJsonMixin` -* Fix `ProtomapsImageryProvider` geojson feature picking over antimeridian -* Add Socrata group to "Add web data -* Added "marker-stroke-width", "polyline-stroke-width", "polygon-stroke-width" to `GeojsonStyleTraits` (Note these are not apart of [simplestyle-spec](https://github.com/mapbox/simplestyle-spec/tree/master/1.1.0) and can only be used with `geojson-vt`) -* Add a method refreshCatalogMembersFromMagda to Terria class. -* Renable `useNativeResolution` on mobile -* Store `useNativeResolution`, `baseMaximumScreenSpaceError` as local properties -* Moved CKAN default `supportedFormats` to `CkanDefaultFormatsStratum` -* Add properties to `CkanResourceFormatTraits` - * `maxFileSize` to filter out resources with large files (default values: GeoJSON = 150MB, KML = 30MB, CZML = 50MB) - * `removeDuplicates` (which defaults to true) so we don't get duplicate formats for a dataset (it will check `resource.name`) - * If there are multiple matches, then the newest (from resource.created property) will be used - * `onlyUseIfSoleResource` to give a given resource format unless that is all that exists for a dataset -* Add CKAN `useSingleResource`, if `true`, then the highest match from `supportedResourceFormats` will be used for each dataset -* ArcGis Map/Feature Service will now set CRS from `latestWkid` if it exists (over `wkid`) -* Fix CKAN ArcGisFeatureService resources -* ArcGisFeatureServer will now set `outSR=4326` so we don't need to reproject client-side +- Bigger zoom control icons. +- Modified "ideal zoom" to zoom closer to tilesets and datasources. +- Added `configParameters.feedbackPostamble`. Text showing at the bottom of feedback form, supports the internationalization using the translation key +- `GeoJsonMixin.style["stroke-opacity"]` will now also set `polygonStroke.alpha` and `polylineStroke.alpha` +- Reduce `GeoJsonMixin` default stroke width from `2` to `1` +- Add `TableMixin` styling to `GeoJsonMixin` - it will treat geojson feature properties as "rows" in a table - which can be styled in the same way as `TableMixin` (eg CSV). This is only enabled for geojson-vt/Protomaps (which requires `Terria.configParameters.enableGeojsonMvt = true`). For more info see `GeojsonMixin.forceLoadMapItems()` + - This can be disabled using `GeojsonTraits.disableTableStyle` +- Opacity and splitting is enabled for Geojson (if using geojson-vt/protomaps) +- Replaced `@types/geojson` Geojson types with `@turf/helpers` +- In `GeojsonMixin` replaced with `customDataLoader`, `loadFromFile` and `loadFromUrl` with `forceLoadGeojsonData` +- `GeojsonMixin` will now convert all geojson objects to FeatureCollection +- Exporting `GeojsonMixin` will now add proper file extensions +- `WebFeatureServiceCatalogItem` now uses `GeoJsonMixin` +- Fix `ProtomapsImageryProvider` geojson feature picking over antimeridian +- Add Socrata group to "Add web data +- Added "marker-stroke-width", "polyline-stroke-width", "polygon-stroke-width" to `GeojsonStyleTraits` (Note these are not apart of [simplestyle-spec](https://github.com/mapbox/simplestyle-spec/tree/master/1.1.0) and can only be used with `geojson-vt`) +- Add a method refreshCatalogMembersFromMagda to Terria class. +- Renable `useNativeResolution` on mobile +- Store `useNativeResolution`, `baseMaximumScreenSpaceError` as local properties +- Moved CKAN default `supportedFormats` to `CkanDefaultFormatsStratum` +- Add properties to `CkanResourceFormatTraits` + - `maxFileSize` to filter out resources with large files (default values: GeoJSON = 150MB, KML = 30MB, CZML = 50MB) + - `removeDuplicates` (which defaults to true) so we don't get duplicate formats for a dataset (it will check `resource.name`) + - If there are multiple matches, then the newest (from resource.created property) will be used + - `onlyUseIfSoleResource` to give a given resource format unless that is all that exists for a dataset +- Add CKAN `useSingleResource`, if `true`, then the highest match from `supportedResourceFormats` will be used for each dataset +- ArcGis Map/Feature Service will now set CRS from `latestWkid` if it exists (over `wkid`) +- Fix CKAN ArcGisFeatureService resources +- ArcGisFeatureServer will now set `outSR=4326` so we don't need to reproject client-side #### 8.1.11 - 2021-11-15 -* Fix `SettingsPanel` type issue +- Fix `SettingsPanel` type issue #### 8.1.10 - 2021-11-15 -* Fix `CswCatalogGroup` XML types -* Added `MAINCODE` aliases for all ABS Statistical Area regions that were missing them. -* Fixed `superGet` replacement in webpack builds with babel versions `7.16.0` and above. +- Fix `CswCatalogGroup` XML types +- Added `MAINCODE` aliases for all ABS Statistical Area regions that were missing them. +- Fixed `superGet` replacement in webpack builds with babel versions `7.16.0` and above. #### 8.1.9 - 2021-11-01 -* TSify workbench splitter control and fix broken styling. -* Fix app crash when opening AR tool. +- TSify workbench splitter control and fix broken styling. +- Fix app crash when opening AR tool. #### 8.1.8 - 2021-10-29 -* Tsified `SettingPanel` -* Moved `setViewerMode` function from `Terria` class to `ViewerMode` -* Refactored checkbox to use children elements for label instead of label +- Tsified `SettingPanel` +- Moved `setViewerMode` function from `Terria` class to `ViewerMode` +- Refactored checkbox to use children elements for label instead of label property, `isDisabled`, `isChecked` and `font-size: inherit` style is passed to each child element (so propper styling is maintained) -* Fix an internal bug where Cesium.prototype.observeModelLayer() fails to remove 3D tilesets in certain cases. -* Rename `TerriaError._shouldRaiseToUser` to `overrideRaiseToUser` - * Note: `userProperties.ignoreError = "1"` will take precedence over `overrideRaiseToUser = true` -* Fix `overrideRaiseToUser` bug causing `overrideRaiseToUser` to be set to `true` in `TerriaError.combine` -* Add `rollbar.warning` for `TerriaErrorSeverity.Warning` -* Disable `zFilter` by default -* Remove use of word "outlier" in zFilter dimension and legend item (we now use "Extreme values") -* Add `cursor:pointer` to `Checkbox` -* Fix `MapNavigation` getter/setter `visible` bug. - * Replace `CompositeBarItemController` `visible` setter with `setVisible` function -* Use `yarn` in CI scripts (and upgrade node to v14) -* Fix app crash when previewing a nested reference in the catalog (eg when viewing an indexed search result where the result is a reference). -* Ported feaure from v7 to set WMS layers property from the value of `LAYERS`, `layers` or `typeName` from query string of CKAN resource URL. +- Fix an internal bug where Cesium.prototype.observeModelLayer() fails to remove 3D tilesets in certain cases. +- Rename `TerriaError._shouldRaiseToUser` to `overrideRaiseToUser` + - Note: `userProperties.ignoreError = "1"` will take precedence over `overrideRaiseToUser = true` +- Fix `overrideRaiseToUser` bug causing `overrideRaiseToUser` to be set to `true` in `TerriaError.combine` +- Add `rollbar.warning` for `TerriaErrorSeverity.Warning` +- Disable `zFilter` by default +- Remove use of word "outlier" in zFilter dimension and legend item (we now use "Extreme values") +- Add `cursor:pointer` to `Checkbox` +- Fix `MapNavigation` getter/setter `visible` bug. + - Replace `CompositeBarItemController` `visible` setter with `setVisible` function +- Use `yarn` in CI scripts (and upgrade node to v14) +- Fix app crash when previewing a nested reference in the catalog (eg when viewing an indexed search result where the result is a reference). +- Ported feaure from v7 to set WMS layers property from the value of `LAYERS`, `layers` or `typeName` from query string of CKAN resource URL. #### 8.1.4 - 2021-10-15 -* Make flex-search usage (for `CatalogIndex`) web-worker based -* Add `completeKnownContainerUniqueIds` to `Model` class - This will recursively travese tree of knownContainerUniqueIds models to return full list of dependencies -* Add all models from `completeKnownContainerUniqueIds` to shareData.models (even if they are empty) +- Make flex-search usage (for `CatalogIndex`) web-worker based +- Add `completeKnownContainerUniqueIds` to `Model` class - This will recursively travese tree of knownContainerUniqueIds models to return full list of dependencies +- Add all models from `completeKnownContainerUniqueIds` to shareData.models (even if they are empty) #### 8.1.3 - 2021-10-14 -* Reimplement map viewer url param -* Added `terriaError.importance` property. This can be set to adjust which error messages are presented to the user. - * `terriaErrorNotification` and `WarningBox` will use the error message with highest importance to show to the user ("Developer details" remains unchanged) -* Add `terriaError.shouldRaiseToUser` override, this can be used to raise errors with `Warning` severity. -* `terriaError.raisedToError` will now check if **any** `TerriaError` has been raised to the user in the tree. -* `workbench.add()` will now keep items which only return `Warning` severity `TerriaErrors` after loading. -* Improve SDMX error messages for no results -* Fix SDMX FeatureInfoSection time-series chart to only show if data exists. -* Improve GeoJSON CRS projection error messages -* Add `Notification` `onDismiss` and `ignore` properties. -* Fix `AsyncLoader` result bug -* Remove `Terria.error` event handler -* Refactor `workbench.add` to return `Result` -* Consolidated network request / CORS error message - it is now in `t("core.terriaError.networkRequestMessage")`. - * It can be injected into other translation strings like so: `"groupNotAvailableMessage": "$t(core.terriaError.networkRequestMessage)"` - * Or, you can use `networkRequestError(error)` to wrap up existing `TerriaError` objects -* Fix incorrect default `configParameters.feedbackPreamble` -* Fix incorrect default `configParameters.proj4def` - it is now `"proj4def/"` -* Fix Branding component. It wasn't wrapped in `observer` so it kept getting re-rendered -* Add `FeedbackLink` and `` custom component - this can be used to add a button to open feedback dialog (or show `supportEmail` in feedback is disabled) -* Fix `ContinuousColorMap` `Legend` issue due to funky JS precision -* Fix mobx computed cycle in `CkanDatasetStratum` which was making error messages for failed loading of CKAN items worse. +- Reimplement map viewer url param +- Added `terriaError.importance` property. This can be set to adjust which error messages are presented to the user. + - `terriaErrorNotification` and `WarningBox` will use the error message with highest importance to show to the user ("Developer details" remains unchanged) +- Add `terriaError.shouldRaiseToUser` override, this can be used to raise errors with `Warning` severity. +- `terriaError.raisedToError` will now check if **any** `TerriaError` has been raised to the user in the tree. +- `workbench.add()` will now keep items which only return `Warning` severity `TerriaErrors` after loading. +- Improve SDMX error messages for no results +- Fix SDMX FeatureInfoSection time-series chart to only show if data exists. +- Improve GeoJSON CRS projection error messages +- Add `Notification` `onDismiss` and `ignore` properties. +- Fix `AsyncLoader` result bug +- Remove `Terria.error` event handler +- Refactor `workbench.add` to return `Result` +- Consolidated network request / CORS error message - it is now in `t("core.terriaError.networkRequestMessage")`. + - It can be injected into other translation strings like so: `"groupNotAvailableMessage": "$t(core.terriaError.networkRequestMessage)"` + - Or, you can use `networkRequestError(error)` to wrap up existing `TerriaError` objects +- Fix incorrect default `configParameters.feedbackPreamble` +- Fix incorrect default `configParameters.proj4def` - it is now `"proj4def/"` +- Fix Branding component. It wasn't wrapped in `observer` so it kept getting re-rendered +- Add `FeedbackLink` and `` custom component - this can be used to add a button to open feedback dialog (or show `supportEmail` in feedback is disabled) +- Fix `ContinuousColorMap` `Legend` issue due to funky JS precision +- Fix mobx computed cycle in `CkanDatasetStratum` which was making error messages for failed loading of CKAN items worse. #### 8.1.2 - 2021-10-01 -* Removed duplicate Help icon and tooltip from the map navigation menu at the bottom as it is now shown in the top menu. -* Fixed a bug where the app shows a scrollbar in some instances. -* Wrap clean initSources with action. -* Modified `TerriaReference` to retain its name when expanded. Previously, when the reference is expanded, it will assume the name of the group or item of the target. -* Proxy `catalogIndex.url` +- Removed duplicate Help icon and tooltip from the map navigation menu at the bottom as it is now shown in the top menu. +- Fixed a bug where the app shows a scrollbar in some instances. +- Wrap clean initSources with action. +- Modified `TerriaReference` to retain its name when expanded. Previously, when the reference is expanded, it will assume the name of the group or item of the target. +- Proxy `catalogIndex.url` #### 8.1.1 - 2021-09-30 - **Breaking changes:** - * `blacklist` has been renamed to `excludeMembers` for `ArcGisPortalCatalogGroup` and `CkanCatalogGroup`. + - `blacklist` has been renamed to `excludeMembers` for `ArcGisPortalCatalogGroup` and `CkanCatalogGroup`. * Tsifyied and refactored `RegionProvider` and `RegionProviderList`, and re-enabled `loadRegionIDs` * `TableColorMap` `minimumValue` and `maximumValue` will now take into account valid regions. @@ -494,9 +655,9 @@ Change Log * Extracted function `scaleToDenominator` to core - for conversion of scale to zoom level. * Share/start data conversion will now only occur if `version` property is `0.x.x`. Previously, it was `version` property is **not** `8.x.x` * Filter table column values by Z Score. This is controlled by the following `TableColorStyleTraits`: - * `zScoreFilter` - Treat values outside of specifed z-score as outliers, and therefore do not include in color scale. This value is magnitude of z-score - it will apply to positive and negative z-scores. For example a value of `2` will treat all values that are 2 or more standard deviations from the mean as outliers. This must be defined to be enabled - currently it is only enabled for SDMX (with `zScoreFilter=4`). - * `zScoreFilterEnabled - True, if z-score filter is enabled - * `rangeFilter` - This is applied after the `zScoreFilter`. It is used to effectively 'disable' the zScoreFilter if it doesn't cut at least the specified percange of the range of values (for both minimum and maximum value). For exmaple if `rangeFilter = 0.2`, then the zScoreFilter will only be effective if it cuts at least 20% of the range of values from the minimum and maximum value + - `zScoreFilter` - Treat values outside of specifed z-score as outliers, and therefore do not include in color scale. This value is magnitude of z-score - it will apply to positive and negative z-scores. For example a value of `2` will treat all values that are 2 or more standard deviations from the mean as outliers. This must be defined to be enabled - currently it is only enabled for SDMX (with `zScoreFilter=4`). + - `zScoreFilterEnabled - True, if z-score filter is enabled + - `rangeFilter` - This is applied after the `zScoreFilter`. It is used to effectively 'disable' the zScoreFilter if it doesn't cut at least the specified percange of the range of values (for both minimum and maximum value). For exmaple if `rangeFilter = 0.2`, then the zScoreFilter will only be effective if it cuts at least 20% of the range of values from the minimum and maximum value * Add `outlierColor` to `ContinuousColorMap` * Add `placement` to `SelectableDimension`. This can be used to put `SelectableDimension` below legend using `placement = "belowLegend` * Add `SelectableDimensionCheckbox` (and rename `SelectableDimension` to `SelectableDimensionSelect`) @@ -515,15 +676,15 @@ Change Log * Make `regionColumn` `isNullable` - this means region column can be disabled by setting to `null`. * Fix scalar column color map with a single value * TableMixin will now clear data if an error occurs while calling `forceLoadTableData` -* `TableMixin` will now not return `mapItems` or `chartItems` if `isLoading` +* `TableMixin` will now not return `mapItems` or `chartItems` if `isLoading` * SDMX will now use `initialTimeSource = stop` * Fix `duplicateModels` duplicating observables across multiple models * Support group models in workbench -- All members will be automatically added to the map. * Added location search button to welcome modal in mobile view. * Add `DataUrlTraits` to `CatalogMemberTraits.dataUrls`. It contains an array of data URLS (with optional `title` which will render a button). It is handled the same as `MetadataUrls` except there is a `type` property which can be set to `wcs`, `wfs`... to show info about the URL. * Made search location bar span full width in mobile view. -* Automatically hide mobile modal window when user is interacting with the map. -* Disabled feature search in mobile +* Automatically hide mobile modal window when user is interacting with the map. +* Disabled feature search in mobile * Disabled export (clip&ship) in mobile * Fixed misplaced search icon in mobile safari. * Prevents story text from covering the whole screen in mobile devices. @@ -544,20 +705,20 @@ Change Log * When expanding charts from the same catalog item, we now create a new item if the expanded chart has a different title from the previously expanded chart for the same item. This behavior matches the behavior in `v7`. * Improve status message when feature info panel chart is loading * Fix broken chart panel download button. -* Changed @vx/* dependencies to @visx/* which is the new home of the chart library +* Changed @vx/_ dependencies to @visx/_ which is the new home of the chart library * The glyph style used for chart points can now be customized. * Added `TerriaReference` item, useful for mounting a catalog tree from an external init file at any position in the current map's catalog tree. -* Changed @vx/* dependencies to @visx/* which is the new home of the chart library +* Changed @vx/_ dependencies to @visx/_ which is the new home of the chart library * The glyph style used for chart points can now be customized. * Chart tooltip and legend bar can now fit more legends gracefully. #### 8.1.0 - 2021-09-08 - **Breaking changes:** - * Overhaul of map navigation: items no longer added inside UserInterface using
  • @@ -318,29 +318,31 @@ export default class Legend extends React.Component<{ className={Styles.legendInner} css={{ position: "relative", " li": { backgroundColor } }} > - {// Show temporary "legend button" - if custom styling has been applied - TableMixin.isMixedInto(this.props.item) && - this.props.item.legendButton ? ( - - ) : null} + { + // Show temporary "legend button" - if custom styling has been applied + TableMixin.isMixedInto(this.props.item) && + this.props.item.legendButton ? ( + + ) : null + } {(this.props.item.legends as Model[]).map( (legend, i: number) => ( diff --git a/lib/ReactViews/Workbench/Controls/SatelliteImageryTimeFilterSection.jsx b/lib/ReactViews/Workbench/Controls/SatelliteImageryTimeFilterSection.jsx index 1bdd6610a9a..b05204cd449 100644 --- a/lib/ReactViews/Workbench/Controls/SatelliteImageryTimeFilterSection.jsx +++ b/lib/ReactViews/Workbench/Controls/SatelliteImageryTimeFilterSection.jsx @@ -61,9 +61,9 @@ const SatelliteImageryTimeFilterSection = observer( // discrete times const disposer = reaction( () => pickPointMode.pickedFeatures, - async pickedFeatures => { + async (pickedFeatures) => { runInAction(() => { - pickPointMode.customUi = function() { + pickPointMode.customUi = function () { return ; }; }); @@ -80,10 +80,10 @@ const SatelliteImageryTimeFilterSection = observer( } const item = this.props.item; - const thisLayerFeature = pickedFeatures.features.filter(feature => { + const thisLayerFeature = pickedFeatures.features.filter((feature) => { return ( item.mapItems.find( - mapItem => + (mapItem) => mapItem.imageryProvider && mapItem.imageryProvider === feature.imageryLayer?.imageryProvider @@ -146,7 +146,7 @@ const SatelliteImageryTimeFilterSection = observer(
    p.theme.colorPrimary}; + background: ${(p) => p.theme.colorPrimary}; `} >
    diff --git a/lib/ReactViews/Workbench/Controls/ShortReport.tsx b/lib/ReactViews/Workbench/Controls/ShortReport.tsx index f921a990cbe..7143a9eac89 100644 --- a/lib/ReactViews/Workbench/Controls/ShortReport.tsx +++ b/lib/ReactViews/Workbench/Controls/ShortReport.tsx @@ -24,7 +24,7 @@ export default class ShortReport extends React.Component<{ ) { const shortReportSections = item.shortReportSections; const clickedReport = shortReportSections.find( - report => report.name === reportName + (report) => report.name === reportName ); if (isDefined(clickedReport)) { @@ -35,7 +35,7 @@ export default class ShortReport extends React.Component<{ * reports - a stopgap for the lack of consistent behavior surrounding * removals / re-ordering of objectArrayTraits */ - shortReportSections.forEach(report => + shortReportSections.forEach((report) => report.setTrait(CommonStrata.user, "show", report.show) ); clickedReport.setTrait(CommonStrata.user, "show", isOpen); @@ -49,7 +49,7 @@ export default class ShortReport extends React.Component<{ const item = this.props.item; - const shortReportSections = item.shortReportSections?.filter(r => + const shortReportSections = item.shortReportSections?.filter((r) => isDefined(r.name) ); @@ -75,14 +75,14 @@ export default class ShortReport extends React.Component<{ * use `Collapsible` if `content` is defined, otherwise just use `name` */} {shortReportSections - .filter(r => r.name) + .filter((r) => r.name) .map((r, i) => ( {r.content ? ( this.clickShortReport(item, r.name, show)} + onToggle={(show) => this.clickShortReport(item, r.name, show)} > {parseCustomMarkdownToReact(r.content!, { catalogItem: item diff --git a/lib/ReactViews/Workbench/Controls/TimerSection.jsx b/lib/ReactViews/Workbench/Controls/TimerSection.jsx index b12170e6943..64c042a7ec2 100644 --- a/lib/ReactViews/Workbench/Controls/TimerSection.jsx +++ b/lib/ReactViews/Workbench/Controls/TimerSection.jsx @@ -73,7 +73,7 @@ const TimerSection = observer( const date = new Date(null); date.setSeconds(this.state.secondsLeft); - const addLeadingZeroIfRequired = numString => + const addLeadingZeroIfRequired = (numString) => numString.length < 2 ? "0" + numString : numString; const minutes = addLeadingZeroIfRequired(date.getMinutes().toString()); diff --git a/lib/ReactViews/Workbench/Controls/ViewingControls.tsx b/lib/ReactViews/Workbench/Controls/ViewingControls.tsx index f5dc9bde375..ebe8cccc596 100644 --- a/lib/ReactViews/Workbench/Controls/ViewingControls.tsx +++ b/lib/ReactViews/Workbench/Controls/ViewingControls.tsx @@ -58,15 +58,15 @@ const BoxViewingControl = styled(Box).attrs({ const ViewingControlMenuButton = styled(RawButton).attrs({ // primaryHover: true })` - color: ${props => props.theme.textDarker}; - background-color: ${props => props.theme.textLight}; + color: ${(props) => props.theme.textDarker}; + background-color: ${(props) => props.theme.textLight}; ${StyledIcon} { width: 35px; } svg { - fill: ${props => props.theme.textDarker}; + fill: ${(props) => props.theme.textDarker}; width: 18px; height: 18px; } @@ -84,10 +84,10 @@ const ViewingControlMenuButton = styled(RawButton).attrs({ &:hover, &:focus { - color: ${props => props.theme.textLight}; - background-color: ${props => props.theme.colorPrimary}; + color: ${(props) => props.theme.textLight}; + background-color: ${(props) => props.theme.colorPrimary}; svg { - fill: ${props => props.theme.textLight}; + fill: ${(props) => props.theme.textLight}; } } `; @@ -274,7 +274,7 @@ class ViewingControls extends React.Component< this.props.viewState.openTool({ toolName: "Difference", getToolComponent: () => - import("../../Tools/DiffTool/DiffTool").then(m => m.default), + import("../../Tools/DiffTool/DiffTool").then((m) => m.default), showCloseButton: true, params: { sourceItem: this.props.item @@ -311,8 +311,8 @@ class ViewingControls extends React.Component< let item = this.props.item; // Open up all the parents (doesn't matter that this sets it to enabled as well because it already is). getAncestors(this.props.item) - .map(item => getDereferencedIfExists(item)) - .forEach(group => { + .map((item) => getDereferencedIfExists(item)) + .forEach((group) => { runInAction(() => { group.setTrait(CommonStrata.user, "isOpen", true); }); @@ -325,7 +325,7 @@ class ViewingControls extends React.Component< if (!ExportableMixin.isMixedInto(item)) return; - exportData(item).catch(e => { + exportData(item).catch((e) => { this.props.item.terria.raiseErrorToUser(e); }); } @@ -344,7 +344,7 @@ class ViewingControls extends React.Component< // Global viewing controls (usually defined by plugins). const globalViewingControls = filterOutUndefined( viewState.globalViewingControlOptions.map( - generateViewingControlForItem => { + (generateViewingControlForItem) => { try { return generateViewingControlForItem(item); } catch (err) { @@ -385,7 +385,7 @@ class ViewingControls extends React.Component< return (
      - {this.viewingControls.map(viewingControl => ( + {this.viewingControls.map((viewingControl) => (
    • handleOnClick(viewingControl)} @@ -543,7 +543,7 @@ class ViewingControls extends React.Component< { + onClick={(e) => { e.stopPropagation(); runInAction(() => { if (viewState.workbenchItemWithOpenControls === item.uniqueId) { diff --git a/lib/ReactViews/Workbench/PositionRightOfWorkbench.tsx b/lib/ReactViews/Workbench/PositionRightOfWorkbench.tsx index 4fae78687c9..effc54237de 100644 --- a/lib/ReactViews/Workbench/PositionRightOfWorkbench.tsx +++ b/lib/ReactViews/Workbench/PositionRightOfWorkbench.tsx @@ -21,8 +21,8 @@ type PositionRightOfWorkbenchProps = { * `; * */ -const PositionRightOfWorkbench: React.FC = observer( - props => { +const PositionRightOfWorkbench: React.FC = + observer((props) => { return ( = observ {props.children} ); - } -); + }); const Container = styled.div<{ isMapFullScreen: boolean }>` position: absolute; @@ -40,7 +39,7 @@ const Container = styled.div<{ isMapFullScreen: boolean }>` left: 0; right: unset; bottom: unset; - margin-left: ${props => + margin-left: ${(props) => props.isMapFullScreen ? 16 : parseInt(props.theme.workbenchWidth) + 16}px}; transition: margin-left 0.25s; `; diff --git a/lib/ReactViews/Workbench/Workbench.tsx b/lib/ReactViews/Workbench/Workbench.tsx index 16aa6f98c68..71af56f75e9 100644 --- a/lib/ReactViews/Workbench/Workbench.tsx +++ b/lib/ReactViews/Workbench/Workbench.tsx @@ -41,7 +41,7 @@ class Workbench extends React.Component { @action.bound removeAll() { - this.props.terria.workbench.items.forEach(item => { + this.props.terria.workbench.items.forEach((item) => { this.props.terria.analytics?.logEvent( Category.dataSource, DataSourceAction.removeAllFromWorkbench, diff --git a/lib/ReactViews/Workbench/WorkbenchButton.tsx b/lib/ReactViews/Workbench/WorkbenchButton.tsx index 2908a33a26f..7f9d04fa623 100644 --- a/lib/ReactViews/Workbench/WorkbenchButton.tsx +++ b/lib/ReactViews/Workbench/WorkbenchButton.tsx @@ -23,8 +23,8 @@ interface IStyledWorkbenchButton { // styles half ripped from nav.scss const StyledWorkbenchButton = styled(RawButton)` border-radius: 3px; - background: ${props => props.theme.dark}; - color: ${props => props.theme.textLight}; + background: ${(props) => props.theme.dark}; + color: ${(props) => props.theme.textLight}; flex-grow: 1; height: 32px; @@ -34,17 +34,17 @@ const StyledWorkbenchButton = styled(RawButton)` svg { height: 16px; width: 16px; - fill: ${props => props.theme.textLight}; + fill: ${(props) => props.theme.textLight}; } &:hover, &:focus { - background: ${props => props.theme.colorPrimary}; + background: ${(props) => props.theme.colorPrimary}; } // disabled - ${props => + ${(props) => props.disabled && ` opacity:0.5; @@ -56,7 +56,7 @@ const StyledWorkbenchButton = styled(RawButton)` } `} - ${props => + ${(props) => props.primary && ` background: ${props.theme.colorPrimary};A @@ -66,7 +66,7 @@ const StyledWorkbenchButton = styled(RawButton)` } `} - ${props => + ${(props) => props.inverted && ` background: ${props.theme.textDarker}; diff --git a/lib/ReactViews/Workbench/WorkbenchItem.tsx b/lib/ReactViews/Workbench/WorkbenchItem.tsx index e3c2309f6a0..3da611b2ce1 100644 --- a/lib/ReactViews/Workbench/WorkbenchItem.tsx +++ b/lib/ReactViews/Workbench/WorkbenchItem.tsx @@ -205,8 +205,8 @@ const DraggableBox = styled(Box)` `; const StyledLi = styled(Li)` - background: ${p => p.theme.darkWithOverlay}; - color: ${p => p.theme.textLight}; + background: ${(p) => p.theme.darkWithOverlay}; + color: ${(p) => p.theme.textLight}; border-radius: 4px; margin-bottom: 5px; width: 100%; diff --git a/lib/ReactViews/Workbench/WorkbenchList.tsx b/lib/ReactViews/Workbench/WorkbenchList.tsx index d78b14c5289..94230baa7c3 100644 --- a/lib/ReactViews/Workbench/WorkbenchList.tsx +++ b/lib/ReactViews/Workbench/WorkbenchList.tsx @@ -61,7 +61,7 @@ class WorkbenchList extends React.Component { width: 100%; `} > - {this.props.terria.workbench.items.map(item => { + {this.props.terria.workbench.items.map((item) => { return ( = props => { +export const Panel: React.FC = (props) => { const [isOpen, setIsOpen] = useState(false); useEffect(() => { isDefined(props.isOpen) ? setIsOpen(props.isOpen) : null; @@ -83,7 +83,7 @@ export const PanelButton: React.FC<{ onClick: () => void; title: string }> = ({ ); const Wrapper = styled.div` - background-color: ${p => p.theme.darkWithOverlay}; + background-color: ${(p) => p.theme.darkWithOverlay}; margin: 10px 5px 0px 5px; border-radius: 5px; border: 1px solid rgba(255, 255, 255, 0.15); @@ -95,7 +95,7 @@ const TitleBar = styled.div` flex-direction: row; justify-content: space-between; align-items: center; - border-bottom: 1px solid ${p => p.theme.darkLighter}; + border-bottom: 1px solid ${(p) => p.theme.darkLighter}; padding-left: 0.4em; `; @@ -108,7 +108,7 @@ const CollapsibleTitleBar = styled(RawButton)< flex-direction: row; justify-content: space-between; align-items: center; - ${p => (p.isOpen ? `border-bottom: 1px solid ${p.theme.darkLighter}` : "")}; + ${(p) => (p.isOpen ? `border-bottom: 1px solid ${p.theme.darkLighter}` : "")}; padding-left: 0.4em; padding-right: 0.4em; `; @@ -129,5 +129,5 @@ const Icon = styled(StyledIcon).attrs({ const Content = styled.div` padding: 0.4em; - color: ${p => p.theme.textLight}; + color: ${(p) => p.theme.textLight}; `; diff --git a/lib/ReactViews/Workflow/PanelMenu.tsx b/lib/ReactViews/Workflow/PanelMenu.tsx index 75e8815648a..af0e482c43f 100644 --- a/lib/ReactViews/Workflow/PanelMenu.tsx +++ b/lib/ReactViews/Workflow/PanelMenu.tsx @@ -48,7 +48,7 @@ export const PanelMenu: React.FC = ({ options }) => { {options.map(({ text, onSelect, disabled }) => (
    • handleClick(onSelect, e)} + onClick={(e) => handleClick(onSelect, e)} disabled={disabled} > @@ -74,13 +74,13 @@ const PanelMenuContainer = styled.div` padding: 0; list-style: none; border-radius: 3px; - border: 1px solid ${p => p.theme.grey}; - background-color: ${p => p.theme.dark}; + border: 1px solid ${(p) => p.theme.grey}; + background-color: ${(p) => p.theme.dark}; } ul > li { border: 0px; - border-bottom: 1px solid ${p => p.theme.grey}; + border-bottom: 1px solid ${(p) => p.theme.grey}; } ul > li:last-child { @@ -94,15 +94,15 @@ const PanelMenuItem = styled.button` padding: 8px 10px; border: 0; border-radius: 2px; - background-color: ${p => p.theme.dark}; + background-color: ${(p) => p.theme.dark}; :disabled > ${Text} { - color: ${p => p.theme.textLightDimmed}; + color: ${(p) => p.theme.textLightDimmed}; } :hover { cursor: pointer; - background-color: ${p => p.theme.colorPrimary}; + background-color: ${(p) => p.theme.colorPrimary}; } `; @@ -115,12 +115,12 @@ const PanelMenuButton = styled.button<{ isOpen: boolean }>` border-radius: 2px; svg { - fill: ${props => props.theme.greyLighter}; + fill: ${(props) => props.theme.greyLighter}; width: 16px; height: 16px; } - ${p => p.isOpen && `background-color: ${p.theme.dark}`}; + ${(p) => p.isOpen && `background-color: ${p.theme.dark}`}; :hover { cursor: pointer; diff --git a/lib/ReactViews/Workflow/SelectableDimensionWorkflow.tsx b/lib/ReactViews/Workflow/SelectableDimensionWorkflow.tsx index 84401e5eb66..986b1e74f09 100644 --- a/lib/ReactViews/Workflow/SelectableDimensionWorkflow.tsx +++ b/lib/ReactViews/Workflow/SelectableDimensionWorkflow.tsx @@ -39,9 +39,7 @@ const SelectableDimensionWorkflow: React.FC = observer(() => { menuComponent={ terria.selectableDimensionWorkflow.menu ? ( - ) : ( - undefined - ) + ) : undefined } > { onToggle={groupDim.onToggle} collapsible={true} > - {childDims.map(childDim => ( + {childDims.map((childDim) => ( = observer(props => { +const WorkflowPanel: React.FC = observer((props) => { const viewState = props.viewState; useEffect(function hideTerriaSidePanelOnMount() { @@ -100,10 +100,10 @@ const Container = styled.div` position: relative; display: flex; flex-direction: column; - font-family: ${p => p.theme.fontPop}px; - width: ${p => p.theme.workflowPanelWidth}px; + font-family: ${(p) => p.theme.fontPop}px; + width: ${(p) => p.theme.workflowPanelWidth}px; height: 100vh; - max-width: ${p => p.theme.workflowPanelWidth}px; + max-width: ${(p) => p.theme.workflowPanelWidth}px; box-sizing: border-box; padding: 0 0 5px; `; @@ -114,7 +114,7 @@ const TitleBar = styled.div` justify-content: space-between; align-items: center; padding: 0.7em; - border-bottom: 1px solid ${p => p.theme.darkLighter}; + border-bottom: 1px solid ${(p) => p.theme.darkLighter}; `; const FooterBar = styled(TitleBar)` @@ -160,7 +160,7 @@ const Error = styled.div` align-items: center; justify-content: center; text-align: center; - color: ${p => p.theme.textLight}; + color: ${(p) => p.theme.textLight}; font-size: 14px; `; diff --git a/lib/Styled/Box.tsx b/lib/Styled/Box.tsx index 081762d149c..ad2dbbf0c3c 100644 --- a/lib/Styled/Box.tsx +++ b/lib/Styled/Box.tsx @@ -73,111 +73,115 @@ export type IBoxProps = IBoxPropsBase & OneKeyFrom; export const Box = styled.div` display: flex; box-sizing: border-box; - ${props => props.position && `position: ${props.position};`} - ${props => props.position === "absolute" && `z-index:1;`} - ${props => !props.position && `position: relative;`} + ${(props) => props.position && `position: ${props.position};`} + ${(props) => props.position === "absolute" && `z-index:1;`} + ${(props) => !props.position && `position: relative;`} - ${props => + ${(props) => props.topRight && ` right: 0px; top: 0px; `} - ${props => props.displayInlineBlock && `display: inline-block;`} + ${(props) => props.displayInlineBlock && `display: inline-block;`} - ${props => props.rounded && `border-radius: ${props.theme.radiusLarge};`} + ${(props) => props.rounded && `border-radius: ${props.theme.radiusLarge};`} - ${props => props.fullHeight && `height: 100%;`} - ${props => props.fullWidth && `width: 100%;`} - ${props => props.styledWidth && `width: ${props.styledWidth};`} - ${props => props.styledHeight && `height: ${props.styledHeight};`} - ${props => props.styledMinWidth && `min-width: ${props.styledMinWidth};`} - ${props => props.styledMaxWidth && `max-width: ${props.styledMaxWidth};`} - ${props => props.styledMinHeight && `min-height: ${props.styledMinHeight};`} - ${props => props.styledMaxHeight && `max-height: ${props.styledMaxHeight};`} + ${(props) => props.fullHeight && `height: 100%;`} + ${(props) => props.fullWidth && `width: 100%;`} + ${(props) => props.styledWidth && `width: ${props.styledWidth};`} + ${(props) => props.styledHeight && `height: ${props.styledHeight};`} + ${(props) => props.styledMinWidth && `min-width: ${props.styledMinWidth};`} + ${(props) => props.styledMaxWidth && `max-width: ${props.styledMaxWidth};`} + ${(props) => props.styledMinHeight && `min-height: ${props.styledMinHeight};`} + ${(props) => props.styledMaxHeight && `max-height: ${props.styledMaxHeight};`} - ${props => + ${(props) => props.col && ` float: left; box-sizing: border-box; `} - // ${props => props.col1 && "width: 8.33333%;"} - // ${props => props.col2 && "width: 16.66667%;"} - // ${props => props.col3 && "width: 25%;"} - // ${props => props.col4 && "width: 33.33333%;"} - ${props => props.col5 && "width: 41.66667%;"} - ${props => props.col6 && "width: 50%;"} - // ${props => props.col7 && "width: 58.33333%;"} - // ${props => props.col8 && "width: 66.66667%;"} - // ${props => props.col9 && "width: 75%;"} - ${props => props.col10 && "width: 83.33333%;"} - ${props => props.col11 && "width: 91.66667%;"} - // ${props => props.col12 && "width: 100%;"} - - ${props => props.verticalCenter && `align-items: center;`} - ${props => props.centered && `align-items: center;`} - ${props => props.centered && `justify-content: center;`} - - ${props => + // ${(props) => props.col1 && "width: 8.33333%;"} + // ${(props) => props.col2 && "width: 16.66667%;"} + // ${(props) => props.col3 && "width: 25%;"} + // ${(props) => props.col4 && "width: 33.33333%;"} + ${(props) => props.col5 && "width: 41.66667%;"} + ${(props) => props.col6 && "width: 50%;"} + // ${(props) => props.col7 && "width: 58.33333%;"} + // ${(props) => props.col8 && "width: 66.66667%;"} + // ${(props) => props.col9 && "width: 75%;"} + ${(props) => props.col10 && "width: 83.33333%;"} + ${(props) => props.col11 && "width: 91.66667%;"} + // ${(props) => props.col12 && "width: 100%;"} + + ${(props) => props.verticalCenter && `align-items: center;`} + ${(props) => props.centered && `align-items: center;`} + ${(props) => props.centered && `justify-content: center;`} + + ${(props) => props.justifyContentSpaceAround && `justify-content: space-around;`} - ${props => props.justifySpaceBetween && `justify-content: space-between;`} + ${(props) => props.justifySpaceBetween && `justify-content: space-between;`} - ${props => props.left && `align-items: center;`} - ${props => props.left && `justify-content: flex-start;`} - ${props => props.alignItemsFlexStart && `align-items: flex-start;`} - ${props => props.leftSelf && `align-self: flex-start;`} + ${(props) => props.left && `align-items: center;`} + ${(props) => props.left && `justify-content: flex-start;`} + ${(props) => props.alignItemsFlexStart && `align-items: flex-start;`} + ${(props) => props.leftSelf && `align-self: flex-start;`} - ${props => props.right && `align-items: center;`} - ${props => props.right && `justify-content: flex-end;`} - ${props => props.alignItemsFlexEnd && `align-items: flex-end;`} - ${props => props.rightSelf && `align-self: flex-end;`} + ${(props) => props.right && `align-items: center;`} + ${(props) => props.right && `justify-content: flex-end;`} + ${(props) => props.alignItemsFlexEnd && `align-items: flex-end;`} + ${(props) => props.rightSelf && `align-self: flex-end;`} - ${props => props.column && `flex-direction: column;`} - ${props => props.flexWrap && `flex-wrap: wrap;`} + ${(props) => props.column && `flex-direction: column;`} + ${(props) => props.flexWrap && `flex-wrap: wrap;`} - ${props => props.flex && `flex: ${props.flex};`} - ${props => props.flexShrinkZero && `flex-shrink: 0;`} + ${(props) => props.flex && `flex: ${props.flex};`} + ${(props) => props.flexShrinkZero && `flex-shrink: 0;`} - ${props => props.boxShadow && `box-shadow: 0 2px 8px 0 rgba(0,0,0,0.16);`} + ${(props) => props.boxShadow && `box-shadow: 0 2px 8px 0 rgba(0,0,0,0.16);`} /* Background colours? unsure how to handle this on theme level yet */ - ${props => + ${(props) => props.charcoalGreyBg && `background-color: ${props.theme.charcoalGrey};`} /* background color can be set on box or passed in through props read via theme...? */ - ${props => + ${(props) => props.backgroundColor && `background-color: ${props.backgroundColor};`} /* Unsure of padding API as yet */ - ${props => props.padded && `padding: 5px;`} + ${(props) => props.padded && `padding: 5px;`} - ${props => props.paddedRatio && `padding: ${5 * props.paddedRatio}px;`} - ${props => + ${(props) => props.paddedRatio && `padding: ${5 * props.paddedRatio}px;`} + ${(props) => props.paddedHorizontally && ` - padding-left:${5 * - (props.paddedHorizontally === true ? 1 : props.paddedHorizontally)}px; - padding-right:${5 * - (props.paddedHorizontally === true ? 1 : props.paddedHorizontally)}px; + padding-left:${ + 5 * (props.paddedHorizontally === true ? 1 : props.paddedHorizontally) + }px; + padding-right:${ + 5 * (props.paddedHorizontally === true ? 1 : props.paddedHorizontally) + }px; `} - ${props => + ${(props) => props.paddedVertically && ` - padding-top: ${5 * - (props.paddedVertically === true ? 1 : props.paddedVertically)}px; - padding-bottom: ${5 * - (props.paddedVertically === true ? 1 : props.paddedVertically)}px; + padding-top: ${ + 5 * (props.paddedVertically === true ? 1 : props.paddedVertically) + }px; + padding-bottom: ${ + 5 * (props.paddedVertically === true ? 1 : props.paddedVertically) + }px; `} - ${props => props.styledPadding && `padding: ${props.styledPadding};`} + ${(props) => props.styledPadding && `padding: ${props.styledPadding};`} - ${props => props.styledMargin && `margin: ${props.styledMargin};`} + ${(props) => props.styledMargin && `margin: ${props.styledMargin};`} - ${props => + ${(props) => props.backgroundImage && ` ${ @@ -195,30 +199,30 @@ export const Box = styled.div` background-position: center; `} - ${props => props.wordBreak && `word-break: ${props.wordBreak};`} - ${props => props.whiteSpace && `white-space: ${props.whiteSpace};`} - ${props => + ${(props) => props.wordBreak && `word-break: ${props.wordBreak};`} + ${(props) => props.whiteSpace && `white-space: ${props.whiteSpace};`} + ${(props) => props.overflow && ` overflow: ${props.overflow}; `} - ${props => + ${(props) => props.overflowY && ` overflow-y: ${props.overflowY}; `} - ${props => - props.overflowX && - ` + ${(props) => + props.overflowX && + ` overflow-x: ${props.overflowX}; `} - ${props => + ${(props) => props.gap && ` gap: ${5 * (props.gap === true ? 1 : props.gap)}px;; `} - ${props => + ${(props) => props.scroll && ` -webkit-overflow-scrolling: touch; diff --git a/lib/Styled/Button.tsx b/lib/Styled/Button.tsx index 5aaedf2d764..d2a9a7e0e75 100644 --- a/lib/Styled/Button.tsx +++ b/lib/Styled/Button.tsx @@ -4,7 +4,7 @@ import { BoxSpan } from "./Box"; import { TextSpan } from "./Text"; const Icon = styled.span<{ rightIcon?: boolean }>` - ${p => (p.rightIcon ? `margin-left: 8px` : `margin-right: 8px`)}; + ${(p) => (p.rightIcon ? `margin-left: 8px` : `margin-right: 8px`)}; `; export interface IButtonProps { @@ -39,27 +39,27 @@ const StyledButton = styled.button` pointer-events: auto; cursor: pointer; min-height: 40px; - ${props => props.shortMinHeight && `min-height: 34px;`} + ${(props) => props.shortMinHeight && `min-height: 34px;`} // min-width: 75px; padding: 0 16px; border: 1px solid #e4e5e7; border-radius: 4px; - ${props => props.fullWidth && `width: 100%;`} - ${props => props.fullHeight && `height: 100%;`} - ${props => props.styledWidth && `width: ${props.styledWidth};`} - ${props => props.styledMinWidth && `min-width: ${props.styledMinWidth};`} + ${(props) => props.fullWidth && `width: 100%;`} + ${(props) => props.fullHeight && `height: 100%;`} + ${(props) => props.styledWidth && `width: ${props.styledWidth};`} + ${(props) => props.styledMinWidth && `min-width: ${props.styledMinWidth};`} - ${props => props.marginLeft && `margin-left: ${4 * props.marginLeft}px;`} - ${props => props.marginRight && `margin-right: ${4 * props.marginRight}px;`} + ${(props) => props.marginLeft && `margin-left: ${4 * props.marginLeft}px;`} + ${(props) => props.marginRight && `margin-right: ${4 * props.marginRight}px;`} &:hover, &:focus { opacity: 0.9; } - ${props => + ${(props) => props.primaryHover && ` &:hover, @@ -69,7 +69,7 @@ const StyledButton = styled.button` } `} - ${props => + ${(props) => props.primary && ` color: #fff; @@ -77,11 +77,11 @@ const StyledButton = styled.button` border: none; border-radius:20px; `} - ${props => props.rounded && ` border-radius: 32px; `} - ${props => props.roundLeft && `border-radius: 32px 0 0 32px;`} - ${props => props.roundRight && `border-radius: 0 32px 32px 0;`} + ${(props) => props.rounded && ` border-radius: 32px; `} + ${(props) => props.roundLeft && `border-radius: 32px 0 0 32px;`} + ${(props) => props.roundRight && `border-radius: 0 32px 32px 0;`} - ${props => + ${(props) => props.secondary && ` // background-color: #4d5766; @@ -90,28 +90,28 @@ const StyledButton = styled.button` border-radius: 20px; border: 2px solid ${props.theme.darkWithOverlay}; `} - ${props => + ${(props) => props.denyButton && ` border: 2px solid ${props.theme.grey}; color: ${props.theme.grey}; background-color: transparent; `} - ${props => + ${(props) => props.warning && ` background-color: red; `} - ${props => + ${(props) => props.splitter && ` background-color: ${props.theme.colorSecondary}; color: ${props.theme.textLight}; `} - ${props => props.transparentBg && `background: transparent;`} - ${props => + ${(props) => props.transparentBg && `background: transparent;`} + ${(props) => props.disabled && ` // normalize.css has some silly overrides so this specificity is needed here to re-override @@ -138,7 +138,7 @@ export const RawButton = styled.button` cursor: pointer; } - ${props => + ${(props) => props.activeStyles && ` &:hover, @@ -146,7 +146,7 @@ export const RawButton = styled.button` opacity: 0.9; } `} - ${props => + ${(props) => props.disabled && ` &[disabled] { @@ -154,11 +154,11 @@ export const RawButton = styled.button` } `} - ${props => props.fullWidth && `width: 100%;`} - ${props => props.fullHeight && `height: 100%;`} - ${props => props.styledWidth && `width: ${props.styledWidth};`} + ${(props) => props.fullWidth && `width: 100%;`} + ${(props) => props.fullHeight && `height: 100%;`} + ${(props) => props.styledWidth && `width: ${props.styledWidth};`} - ${props => + ${(props) => props.textLight ? `color: ${props.theme.textLight}` : `color: inherit`} `; @@ -173,7 +173,7 @@ type ButtonProps = { } & React.ComponentPropsWithoutRef; // Icon and props-children-mandatory-text-wrapping is a mess here so it's all very WIP -export const Button: React.FC = props => { +export const Button: React.FC = (props) => { const { primary, secondary, diff --git a/lib/Styled/ButtonAsLabel.tsx b/lib/Styled/ButtonAsLabel.tsx index 4f7a1baaea8..62997f45f3c 100644 --- a/lib/Styled/ButtonAsLabel.tsx +++ b/lib/Styled/ButtonAsLabel.tsx @@ -11,13 +11,13 @@ const ButtonAsLabel = styled(Box).attrs({ styledMinHeight: "32px" })` border-radius: 0 16px 16px 0; - ${props => + ${(props) => props.light && ` background: ${props.theme.textLight}; color: ${props.theme.textDark}; `} - ${props => + ${(props) => !props.light && ` background: ${props.theme.textBlack}; diff --git a/lib/Styled/Checkbox/Checkbox.tsx b/lib/Styled/Checkbox/Checkbox.tsx index bbbd8cd15ce..930311a6b5d 100644 --- a/lib/Styled/Checkbox/Checkbox.tsx +++ b/lib/Styled/Checkbox/Checkbox.tsx @@ -53,7 +53,7 @@ const Checkbox = memo( const id = useUID(); // Add props to children - const childrenWithProps = React.Children.map(children, child => { + const childrenWithProps = React.Children.map(children, (child) => { // Checking isValidElement is the safe way and avoids a typescript // error too. if (React.isValidElement(child)) { @@ -81,14 +81,14 @@ const Checkbox = memo( outline: 3px solid #c390f9; } ${!isDisabled && - ` + ` cursor: pointer; &:hover svg { opacity: 0.6; } `} ${isDisabled && - ` + ` cursor: not-allowed; `} `} diff --git a/lib/Styled/Checkbox/Elements/CheckboxIcon.tsx b/lib/Styled/Checkbox/Elements/CheckboxIcon.tsx index ac9f5494c35..8443eb5cc8e 100644 --- a/lib/Styled/Checkbox/Elements/CheckboxIcon.tsx +++ b/lib/Styled/Checkbox/Elements/CheckboxIcon.tsx @@ -10,7 +10,7 @@ const StyledCheckboxIcon = styled(StyledIcon).attrs({ align-self: flex-start; position: relative; fill: currentColor; - ${props => + ${(props) => !props.disabled && ` &:hover { diff --git a/lib/Styled/Hr.tsx b/lib/Styled/Hr.tsx index 750e8f42053..8618bc8e2ea 100644 --- a/lib/Styled/Hr.tsx +++ b/lib/Styled/Hr.tsx @@ -7,11 +7,11 @@ interface IProps { } export const Hr = styled.hr` - margin:0; + margin: 0; border: none; - ${props => props.fullWidth && `width: 100%;`} - border-bottom: ${props => props.size}px solid; - border-bottom-color: ${props => props.borderBottomColor}; + ${(props) => props.fullWidth && `width: 100%;`} + border-bottom: ${(props) => props.size}px solid; + border-bottom-color: ${(props) => props.borderBottomColor}; `; export default Hr; diff --git a/lib/Styled/Icon.tsx b/lib/Styled/Icon.tsx index 46af0911c2f..bece7561070 100644 --- a/lib/Styled/Icon.tsx +++ b/lib/Styled/Icon.tsx @@ -175,8 +175,8 @@ export interface IStyledIconProps { } export const StyledIcon = styled(Icon)` - display: ${props => (props.displayInline ? `inline` : `block`)}; - ${props => + display: ${(props) => (props.displayInline ? `inline` : `block`)}; + ${(props) => props.displayInline ? ` display: inline; @@ -185,19 +185,19 @@ export const StyledIcon = styled(Icon)` display: block;`} flex-shrink: 0; - ${props => props.styledWidth && `width: ${props.styledWidth};`} - ${props => props.styledHeight && `height: ${props.styledHeight};`} + ${(props) => props.styledWidth && `width: ${props.styledWidth};`} + ${(props) => props.styledHeight && `height: ${props.styledHeight};`} - ${props => props.light && `fill: ${props.theme.textLight};`} - ${props => props.dark && `fill: ${props.theme.textDark};`} + ${(props) => props.light && `fill: ${props.theme.textLight};`} + ${(props) => props.dark && `fill: ${props.theme.textDark};`} // Until we sort out what "light / dark" means for components that have both // modes, use "realDark" to get real - ${props => props.realDark && `fill: ${props.theme.dark};`} + ${(props) => props.realDark && `fill: ${props.theme.dark};`} - ${props => props.fillColor && `fill: ${props.fillColor};`} + ${(props) => props.fillColor && `fill: ${props.fillColor};`} - ${props => props.opacity && `opacity: ${props.opacity};`} + ${(props) => props.opacity && `opacity: ${props.opacity};`} `; export default Object.assign(Icon, { GLYPHS }); diff --git a/lib/Styled/IconWrapper.tsx b/lib/Styled/IconWrapper.tsx index 4c2e131f204..82a3a08395a 100644 --- a/lib/Styled/IconWrapper.tsx +++ b/lib/Styled/IconWrapper.tsx @@ -9,14 +9,14 @@ interface IconWrapperProps { export const IconWrapper = styled.span` display: grid; - // ${props => `width: ${props.width || 16}px`}; + // ${(props) => `width: ${props.width || 16}px`}; & > * { margin: auto; } - ${props => props.marginRight && `margin-right: 8px;`} + ${(props) => props.marginRight && `margin-right: 8px;`} flex-shrink: 0; - ${props => props.wide && `margin: auto 16px;`} + ${(props) => props.wide && `margin: auto 16px;`} `; export default IconWrapper; diff --git a/lib/Styled/Input.tsx b/lib/Styled/Input.tsx index 713aff351c9..c91a3d9d190 100644 --- a/lib/Styled/Input.tsx +++ b/lib/Styled/Input.tsx @@ -26,75 +26,79 @@ type TextAreaProps = React.InputHTMLAttributes & }; const commonStyles = css` --moz-appearance: none; --webkit-appearance: none; + -moz-appearance: none; + -webkit-appearance: none; -display: block; -box-sizing: border-box; -height: ${p => p.theme.inputHeight}; -width: 100%; -border: none; -border-radius: ${p => p.theme.radiusSmall}; + display: block; + box-sizing: border-box; + height: ${(p) => p.theme.inputHeight}; + width: 100%; + border: none; + border-radius: ${(p) => p.theme.radiusSmall}; -${props => - props.border && - ` + ${(props) => + props.border && + ` border-style: solid; border-width: 1px; border-color: ${props.fieldBorder}; `} -margin-top: 0; -margin-bottom: 0; -padding: 0px; -padding-left: 10px; -padding-right: 10px; -color: ${p => p.theme.textDark}; -background: ${p => p.theme.overlayInvert}; -${props => - props.light && - ` + margin-top: 0; + margin-bottom: 0; + padding: 0px; + padding-left: 10px; + padding-right: 10px; + color: ${(p) => p.theme.textDark}; + background: ${(p) => p.theme.overlayInvert}; + ${(props) => + props.light && + ` color: ${props.theme.textBlack}; background: ${props.theme.overlayInvert}; - ${props.border && + ${ + props.border && `border-color: transparent; &:focus { border-color: transparent; - }`} + }` + } `} -${props => - props.dark && - ` + ${(props) => + props.dark && + ` color: ${props.theme.textLight}; background: ${props.theme.overlay}; - ${props.border && + ${ + props.border && `border-color: ${props.fieldBorder}; - `}; -`} -${props => - props.white && ` + }; +`} +${(props) => + props.white && + ` color: ${props.theme.textDark}; background: #FFFFFF; `} -${props => props.fullHeight && `height: 100%;`} -${props => props.styledWidth && `width: ${props.styledWidth};`} -${props => props.styledHeight && `height: ${props.styledHeight};`} -${props => props.styledMinHeight && `min-height: ${props.styledMinHeight};`} -${props => props.styledMaxHeight && `max-height: ${props.styledMaxHeight};`} -${props => props.large && `height: ${props.theme.inputHeightLarge};`} -${props => props.rounded && `border-radius: 30px;`} -${props => props.disabled && `opacity: 0.3;`} -${props => - props.invalidValue && - ` +${(props) => props.fullHeight && `height: 100%;`} +${(props) => props.styledWidth && `width: ${props.styledWidth};`} +${(props) => props.styledHeight && `height: ${props.styledHeight};`} +${(props) => props.styledMinHeight && `min-height: ${props.styledMinHeight};`} +${(props) => props.styledMaxHeight && `max-height: ${props.styledMaxHeight};`} +${(props) => props.large && `height: ${props.theme.inputHeightLarge};`} +${(props) => props.rounded && `border-radius: 30px;`} +${(props) => props.disabled && `opacity: 0.3;`} +${(props) => + props.invalidValue && + ` border-color: #d60000; background-color: #fdf2f2; `} `; export const StyledTextArea = styled.textarea` -${commonStyles} - line-height: ${props => props.lineHeight}; + ${commonStyles} + line-height: ${(props) => props.lineHeight}; padding-top: 5px; padding-bottom: 5px; cursor: auto; diff --git a/lib/Styled/List.tsx b/lib/Styled/List.tsx index 29db9d70733..de219333569 100644 --- a/lib/Styled/List.tsx +++ b/lib/Styled/List.tsx @@ -12,7 +12,7 @@ export const Ul = styled(Box).attrs({ })` list-style: none; margin: 0; - ${props => + ${(props) => props.fullWidth && css` width: 100%; @@ -20,7 +20,7 @@ export const Ul = styled(Box).attrs({ width: 100%; } `} - ${props => + ${(props) => props.spaced && css` ${Li}:not(:first-child) { @@ -28,7 +28,7 @@ export const Ul = styled(Box).attrs({ } `} - ${props => + ${(props) => props.lined && css` ${Li}:first-child { diff --git a/lib/Styled/Select.tsx b/lib/Styled/Select.tsx index 9589283aa80..7ebe8f32b9d 100644 --- a/lib/Styled/Select.tsx +++ b/lib/Styled/Select.tsx @@ -38,29 +38,29 @@ const StyledSelect = styled.select` width: 100%; border: none; - border-radius: ${p => p.theme.radiusSmall}; - padding-left: ${p => p.paddingForLeftIcon || "10px"}; + border-radius: ${(p) => p.theme.radiusSmall}; + padding-left: ${(p) => p.paddingForLeftIcon || "10px"}; padding-right: 30px; // For icon - color: ${p => p.theme.textLight}; - background: ${p => p.theme.overlay}; + color: ${(p) => p.theme.textLight}; + background: ${(p) => p.theme.overlay}; & option { - color: ${p => p.theme.textBlack}; + color: ${(p) => p.theme.textBlack}; } - ${props => + ${(props) => props.light && ` color: ${props.theme.textBlack}; background: ${props.theme.overlayInvert}; `} - ${props => props.disabled && `opacity: 0.3;`} + ${(props) => props.disabled && `opacity: 0.3;`} `; const ArrowPositioning = styled.div` - ${props => props.theme.verticalAlign("absolute")} + ${(props) => props.theme.verticalAlign("absolute")} right: 10px; // Stops presentational icon preventing select activation via mouse @@ -68,7 +68,7 @@ const ArrowPositioning = styled.div` `; const LeftIconPositioning = styled.div` - ${props => props.theme.verticalAlign("absolute")} + ${(props) => props.theme.verticalAlign("absolute")} // Stops presentational icon preventing select activation via mouse pointer-events: none; @@ -84,7 +84,7 @@ interface SelectProps { [spread: string]: any; } -const Select: React.FC = props => { +const Select: React.FC = (props) => { const { leftIcon, children, diff --git a/lib/Styled/Spacing.tsx b/lib/Styled/Spacing.tsx index 8d4f849abc5..2c9d0f89016 100644 --- a/lib/Styled/Spacing.tsx +++ b/lib/Styled/Spacing.tsx @@ -13,11 +13,11 @@ interface ISpacingProps { export const Spacing = styled.div` // Unsure how to deal with 1px right now - ${props => props.marginRight && `margin-right: ${props.marginRight}px;`} - ${props => props.marginBottom && `margin-bottom: ${props.marginBottom}px;`} + ${(props) => props.marginRight && `margin-right: ${props.marginRight}px;`} + ${(props) => props.marginBottom && `margin-bottom: ${props.marginBottom}px;`} - ${props => props.bottom && `margin-bottom: ${props.bottom * 5}px;`} - ${props => props.right && `margin-right: ${props.right * 5}px;`} + ${(props) => props.bottom && `margin-bottom: ${props.bottom * 5}px;`} + ${(props) => props.right && `margin-right: ${props.right * 5}px;`} `; export const SpacingSpan = styled(Spacing).attrs({ diff --git a/lib/Styled/Text.tsx b/lib/Styled/Text.tsx index 4c9cae1c2db..126b0df0e31 100644 --- a/lib/Styled/Text.tsx +++ b/lib/Styled/Text.tsx @@ -59,16 +59,16 @@ export type ITextProps = ITextPropsBase & // should it be a span or inline-block-div? - leaning to div export const Text = styled.div` - ${props => props.displayBlock && `display: block;`} + ${(props) => props.displayBlock && `display: block;`} // Unsure about this one, as we don't have react-router / "actual links" at // the moment, no present way to distinguish external links, etc - ${props => props.isLink && `text-decoration: underline; cursor: pointer;`} + ${(props) => props.isLink && `text-decoration: underline; cursor: pointer;`} // TODO: themeify family - font-family: ${props => props.theme.fontBase}; + font-family: ${(props) => props.theme.fontBase}; - ${props => + ${(props) => props.breakWord && ` overflow-wrap: break-word; @@ -76,121 +76,121 @@ export const Text = styled.div` `} font-weight: 400; - ${props => props.light && `font-weight: 300;`} - ${props => props.bold && `font-weight: bold;`} - ${props => props.semiBold && `font-weight: 600;`} - ${props => props.extraBold && `font-weight: 800;`} - ${props => props.uppercase && `text-transform: uppercase;`} - - ${props => props.textAlignLeft && `text-align: left;`} - ${props => props.textAlignCenter && `text-align: center;`} - ${props => + ${(props) => props.light && `font-weight: 300;`} + ${(props) => props.bold && `font-weight: bold;`} + ${(props) => props.semiBold && `font-weight: 600;`} + ${(props) => props.extraBold && `font-weight: 800;`} + ${(props) => props.uppercase && `text-transform: uppercase;`} + + ${(props) => props.textAlignLeft && `text-align: left;`} + ${(props) => props.textAlignCenter && `text-align: center;`} + ${(props) => props.primary && ` color: ${props.theme.colorPrimary}; `} - ${props => + ${(props) => props.textLight && ` color: ${props.theme.textLight}; `} - ${props => + ${(props) => props.textLightDimmed && ` color: ${props.theme.textLightDimmed}; `} - ${props => + ${(props) => props.textDark && ` color: ${props.theme.textDark}; `} - ${props => + ${(props) => props.textDarker && ` color: ${props.theme.textDarker}; `} - ${props => + ${(props) => props.color && ` color: ${props.color}; `} - ${props => props.fullWidth && `width: 100%;`} - ${props => props.noWrap && `white-space: nowrap;`} + ${(props) => props.fullWidth && `width: 100%;`} + ${(props) => props.noWrap && `white-space: nowrap;`} line-height: 20px; - ${props => + ${(props) => !props.noFontSize && ` font-size: 13px; line-height: normal; `} - ${props => + ${(props) => props.mini && ` font-size: 10px; `} - ${props => + ${(props) => props.small && ` font-size: 12px; line-height: 16px; `} - ${props => + ${(props) => props.medium && ` // terrace designed ~h4 equivalent? font-size: 14px; `} - ${props => + ${(props) => props.large && ` font-size: 15px; `} - ${props => + ${(props) => (props?.as === "h4" || props.extraLarge) && ` font-size: 16px; `} // yeah extra extra large - will re-port to h4 once we re-add Heading.tsx - ${props => + ${(props) => (props?.as === "h3" || props.extraExtraLarge) && ` font-size: 18px; `} - ${props => + ${(props) => (props?.as === "h2" || props.subHeading) && ` font-weight: bold; font-size: 23px; line-height: 31px; `} - ${props => + ${(props) => (props?.as === "h1" || props.heading) && ` font-weight: 800; font-size: 26px; line-height: 32px; `} - ${props => + ${(props) => props.styledLineHeight && `line-height: ${props.styledLineHeight}`}; - ${props => + ${(props) => props.styledFontSize && ` font-size: ${props.styledFontSize}; `} - ${props => + ${(props) => props.styledLineHeight && ` line-height: ${props.styledLineHeight}; `} - ${props => + ${(props) => props.highlightLinks && ` a { @@ -198,17 +198,17 @@ export const Text = styled.div` } `} - ${props => + ${(props) => props.isDisabled && ` opacity: 0.3; cursor: not-allowed; `} - ${props => props.overflowHide && ` overflow: hidden;`} - ${props => props.overflowEllipsis && ` text-overflow: ellipsis;`} + ${(props) => props.overflowHide && ` overflow: hidden;`} + ${(props) => props.overflowEllipsis && ` text-overflow: ellipsis;`} - ${props => + ${(props) => props.maxLines && ` -webkit-line-clamp: ${props.maxLines === true ? 2 : props.maxLines}; diff --git a/lib/Styled/mixins.js b/lib/Styled/mixins.js index 391628ef83b..ec3e61403f9 100644 --- a/lib/Styled/mixins.js +++ b/lib/Styled/mixins.js @@ -41,16 +41,16 @@ export const removeListStyles = () => ` margin: 0; `; -export const borderRadiusTop = radius => ` +export const borderRadiusTop = (radius) => ` border-radius: ${radius}px ${radius}px 0 0; `; -export const borderRadiusRight = radius => ` +export const borderRadiusRight = (radius) => ` border-radius: 0 ${radius}px ${radius}px 0; `; -export const borderRadiusBottom = radius => ` +export const borderRadiusBottom = (radius) => ` border-radius: 0 0 ${radius}px ${radius}px; `; -export const borderRadiusLeft = radius => ` +export const borderRadiusLeft = (radius) => ` border-radius: ${radius}px 0 0 ${radius}px; `; @@ -65,7 +65,7 @@ export const addBasicHoverStyles = () => ` * unfortunately this means more classnames outputted, but gives us consistency * in the meantime. * */ -export const addTerriaPrimaryBtnStyles = props => ` +export const addTerriaPrimaryBtnStyles = (props) => ` background: ${props.theme.colorPrimary}; color: ${props.theme.textLight}; svg { @@ -79,7 +79,7 @@ export const addTerriaPrimaryBtnStyles = props => ` } `; -export const addTerriaSecondaryBtnStyles = props => ` +export const addTerriaSecondaryBtnStyles = (props) => ` color: ${props.theme.colorPrimary}; // Don't override border here on secondary, as it's set specifically on certain buttons e.g. story cancel button @@ -91,7 +91,7 @@ export const addTerriaSecondaryBtnStyles = props => ` ${addBasicHoverStyles()} `; -export const addTerriaTertiaryBtnStyles = props => ` +export const addTerriaTertiaryBtnStyles = (props) => ` color: ${props.theme.modalText}; background: ${props.theme.modalBg}; border: 2px solid ${props.theme.modalText}; @@ -103,7 +103,7 @@ export const addTerriaTertiaryBtnStyles = props => ` } `; -export const addTerriaMapBtnStyles = props => ` +export const addTerriaMapBtnStyles = (props) => ` color: ${props.theme.textLight}; background-color: ${props.theme.dark}; &:hover, @@ -123,7 +123,7 @@ export const addTerriaMapBtnStyles = props => ` } `; -export const addTerriaLightBtnStyles = props => ` +export const addTerriaLightBtnStyles = (props) => ` color: ${props.theme.textLight}; svg { fill: ${props.theme.textLight}; @@ -135,7 +135,7 @@ export const addTerriaLightBtnStyles = props => ` } `; -export const addTerriaScrollbarStyles = props => ` +export const addTerriaScrollbarStyles = (props) => ` -webkit-overflow-scrolling: touch; &::-webkit-scrollbar { diff --git a/lib/Table/ColorStyleLegend.ts b/lib/Table/ColorStyleLegend.ts index db66a946299..b759e54929c 100644 --- a/lib/Table/ColorStyleLegend.ts +++ b/lib/Table/ColorStyleLegend.ts @@ -283,9 +283,8 @@ export class ColorStyleLegend extends LoadableStratum(LegendTraits) { value: number, format: Intl.NumberFormatOptions | JsonObject | undefined ): string { - return (format?.maximumFractionDigits - ? value - : Math.round(value) + return ( + format?.maximumFractionDigits ? value : Math.round(value) ).toLocaleString(undefined, format); } } diff --git a/lib/Table/Csv.ts b/lib/Table/Csv.ts index 95441bade78..2c7ad2381fb 100644 --- a/lib/Table/Csv.ts +++ b/lib/Table/Csv.ts @@ -102,17 +102,17 @@ function getParseOptionsRowMajor( comments: filterOutComments, skipEmptyLines: true, worker: useWorker, - chunk: function(results, p) { + chunk: function (results, p) { parser = p; const data = results.data; for (let i = 0; i < data.length; ++i) { result.push(data[i]); } }, - complete: function() { + complete: function () { resolve(result); }, - error: function(e) { + error: function (e) { // If we did manage to get some data lets use what we've got // Perhaps there was an error because there was no Content-Length header if (result.length > 0) parser.abort(); @@ -133,7 +133,7 @@ function getParseOptionsColumnMajor( comments: filterOutComments, skipEmptyLines: true, worker: useWorker, - chunk: function(results, p) { + chunk: function (results, p) { parser = p; const data = results.data; for (let i = 0; i < data.length; ++i) { @@ -149,10 +149,10 @@ function getParseOptionsColumnMajor( } } }, - complete: function() { + complete: function () { resolve(result); }, - error: function(e) { + error: function (e) { // If we did manage to get some data lets use what we've got // Perhaps there was an error because there was no Content-Length header if (result.length > 0) parser.abort(); diff --git a/lib/Table/MergedStyleMapLegend.ts b/lib/Table/MergedStyleMapLegend.ts index 823cc9f7011..acd5a8278b1 100644 --- a/lib/Table/MergedStyleMapLegend.ts +++ b/lib/Table/MergedStyleMapLegend.ts @@ -22,7 +22,7 @@ export class MergedStyleMapLegend extends LoadableStratum(LegendTraits) { } @computed get title() { - return this.legends.find(l => l.title)?.title; + return this.legends.find((l) => l.title)?.title; } @computed @@ -30,10 +30,10 @@ export class MergedStyleMapLegend extends LoadableStratum(LegendTraits) { let items: StratumFromTraits[] = []; // Merge all Legend items by title - this.legends.forEach(legend => { - legend.items?.forEach(currentItem => { + this.legends.forEach((legend) => { + legend.items?.forEach((currentItem) => { const existingItemIndex = items.findIndex( - item => item.title && item.title === currentItem.title + (item) => item.title && item.title === currentItem.title ); const existingItem = items[existingItemIndex]; if (!existingItem) { diff --git a/lib/Table/StyleMapLegend.ts b/lib/Table/StyleMapLegend.ts index e152c0b49da..0ef8dfb90d6 100644 --- a/lib/Table/StyleMapLegend.ts +++ b/lib/Table/StyleMapLegend.ts @@ -65,9 +65,7 @@ export class StyleMapLegend< return items; } - private _createLegendItemsFromBinStyleMap(): StratumFromTraits< - LegendItemTraits - >[] { + private _createLegendItemsFromBinStyleMap(): StratumFromTraits[] { const column = this.styleMap.column; const minimum = column && column.valuesAsNumbers.minimum !== undefined @@ -112,9 +110,7 @@ export class StyleMapLegend< .concat(nullBin); } - private _createLegendItemsFromEnumStyleMap(): StratumFromTraits< - LegendItemTraits - >[] { + private _createLegendItemsFromEnumStyleMap(): StratumFromTraits[] { const column = this.styleMap.column; // Show null bin if data has null values - or if EnumColorMap doesn't have enough colors to show all values @@ -122,9 +118,9 @@ export class StyleMapLegend< column && (column.uniqueValues.numberOfNulls > 0 || column.uniqueValues.values.find( - value => + (value) => !this.styleMap.commonTraits.enum.find( - enumStyle => enumStyle.value === value + (enumStyle) => enumStyle.value === value ) )) ? [ @@ -136,7 +132,7 @@ export class StyleMapLegend< : []; return this.styleMap.traitValues.enum - .map(enumPoint => + .map((enumPoint) => createStratumInstance( LegendItemTraits, this.getPreview( @@ -152,9 +148,7 @@ export class StyleMapLegend< .concat(nullBin); } - private _createLegendItemsFromConstantColorMap(): StratumFromTraits< - LegendItemTraits - >[] { + private _createLegendItemsFromConstantColorMap(): StratumFromTraits[] { return [ createStratumInstance(LegendItemTraits, { ...this.legendItemOverrides, @@ -171,9 +165,8 @@ export class StyleMapLegend< format: Intl.NumberFormatOptions | JsonObject | undefined ): string { if (!isDefined(value) || value === null) return "No value"; - return (format?.maximumFractionDigits - ? value - : Math.round(value) + return ( + format?.maximumFractionDigits ? value : Math.round(value) ).toLocaleString(undefined, format); } } diff --git a/lib/Table/TableAutomaticStylesStratum.ts b/lib/Table/TableAutomaticStylesStratum.ts index 6abd3180eaf..89b118e0995 100644 --- a/lib/Table/TableAutomaticStylesStratum.ts +++ b/lib/Table/TableAutomaticStylesStratum.ts @@ -110,11 +110,11 @@ export default class TableAutomaticStylesStratum extends LoadableStratum( @computed get defaultChartStyle(): StratumFromTraits | undefined { const timeColumns = this.catalogItem.tableColumns.filter( - column => column.type === TableColumnType.time + (column) => column.type === TableColumnType.time ); const scalarColumns = this.catalogItem.tableColumns.filter( - column => column.type === TableColumnType.scalar + (column) => column.type === TableColumnType.scalar ); const hasTime = timeColumns.length > 0; @@ -138,7 +138,7 @@ export default class TableAutomaticStylesStratum extends LoadableStratum( get styles(): StratumFromTraits[] { // If no styles for scalar, enum - show styles using region columns const showRegionStyles = this.catalogItem.tableColumns.every( - column => + (column) => column.type !== TableColumnType.scalar && column.type !== TableColumnType.enum ); @@ -196,12 +196,11 @@ export default class TableAutomaticStylesStratum extends LoadableStratum( i < this.catalogItem.activeTableStyle.rowGroups.length; i++ ) { - const [rowGroupId, rowIds] = this.catalogItem.activeTableStyle.rowGroups[ - i - ]; + const [rowGroupId, rowIds] = + this.catalogItem.activeTableStyle.rowGroups[i]; // Check if there is only 1 unique date in this rowGroup const dates = rowIds - .map(rowId => + .map((rowId) => this.catalogItem.activeTableStyle.timeColumn?.valuesAsDates.values[ rowId ]?.getTime() diff --git a/lib/Table/TableColorMap.ts b/lib/Table/TableColorMap.ts index 340ddc03885..4db1f453c25 100644 --- a/lib/Table/TableColorMap.ts +++ b/lib/Table/TableColorMap.ts @@ -206,7 +206,7 @@ export default class TableColorMap { ) { return new EnumColorMap({ enumColors: filterOutUndefined( - this.enumColors.map(e => { + this.enumColors.map((e) => { if (e.value === undefined || e.color === undefined) { return undefined; } @@ -358,7 +358,7 @@ export default class TableColorMap { color }; }) - .filter(color => isDefined(color.value)); + .filter((color) => isDefined(color.value)); } /** This color is used to color values outside minimumValue and maximumValue - it is only used for ContinuousColorMaps @@ -482,8 +482,8 @@ export default class TableColorMap { * - colorColumn is scalar and the activeStyle has a regionColumn */ @computed get regionValues() { - const regionColumn = this.colorColumn?.tableModel.activeTableStyle - .regionColumn; + const regionColumn = + this.colorColumn?.tableModel.activeTableStyle.regionColumn; if (this.colorColumn?.type !== TableColumnType.scalar || !regionColumn) return; @@ -502,7 +502,7 @@ export default class TableColorMap { const values = this.regionValues ?? this.colorColumn?.valuesAsNumbers.values; if (values) { - return values.filter(val => val !== null) as number[]; + return values.filter((val) => val !== null) as number[]; } } @@ -544,12 +544,14 @@ export default class TableColorMap { // Array of row group values const rowGroupValues = rowGroups.map( - group => - group[1].map(row => values[row]).filter(val => val !== null) as number[] + (group) => + group[1] + .map((row) => values[row]) + .filter((val) => val !== null) as number[] ); // Get average value for each row group - const rowGroupAverages = rowGroupValues.map(val => getMean(val)); + const rowGroupAverages = rowGroupValues.map((val) => getMean(val)); const definedRowGroupAverages = filterOutUndefined(rowGroupAverages); const std = getStandardDeviation(definedRowGroupAverages); const mean = getMean(definedRowGroupAverages); @@ -727,7 +729,7 @@ function getStandardDeviation(array: number[]) { const mean = getMean(array); return isDefined(mean) ? Math.sqrt( - array.map(x => Math.pow(x - mean, 2)).reduce((a, b) => a + b) / n + array.map((x) => Math.pow(x - mean, 2)).reduce((a, b) => a + b) / n ) : undefined; } diff --git a/lib/Table/TableColumn.ts b/lib/Table/TableColumn.ts index b9587e8309d..e7f6891abec 100644 --- a/lib/Table/TableColumn.ts +++ b/lib/Table/TableColumn.ts @@ -124,8 +124,10 @@ export default class TableColumn { value: THIS_COLUMN_EXPRESSION_TOKEN }, ...filterOutUndefined( - this.traits.transformation?.dependencies?.map(colName => { - if (this.tableModel.tableColumns.find(col => col.name === colName)) { + this.traits.transformation?.dependencies?.map((colName) => { + if ( + this.tableModel.tableColumns.find((col) => col.name === colName) + ) { return { type: 3, // This type defines a constant value token: colName, @@ -160,7 +162,7 @@ export default class TableColumn { (pairs, token) => { if (token.token !== THIS_COLUMN_EXPRESSION_TOKEN) pairs[token.value] = - this.tableModel.tableColumns.find(col => col.name === token.token) + this.tableModel.tableColumns.find((col) => col.name === token.token) ?.valuesAsNumbers.values[rowIndex] ?? null; // Add column pair for this value (token `THIS_COLUMN_EXPRESSION_TOKEN`) else pairs[THIS_COLUMN_EXPRESSION_TOKEN] = value; @@ -294,7 +296,7 @@ export default class TableColumn { const centuryFix = (y: number) => y < 50 ? 2000 + y : y < 100 ? 1900 + y : y; - const ddmmyyyy: StringToDateFunction = value => { + const ddmmyyyy: StringToDateFunction = (value) => { // Try dd/mm/yyyy and watch out for failures that would also cross out mm/dd/yyyy for (let separator of separators) { const sep1 = value.indexOf(separator); @@ -338,7 +340,7 @@ export default class TableColumn { return null; }; - let mmddyyyy: StringToDateFunction = value => { + let mmddyyyy: StringToDateFunction = (value) => { // This function only exists to allow mm-dd-yyyy dates // mm/dd/yyyy dates could be picked up by `new Date` const separator = "-"; @@ -370,7 +372,7 @@ export default class TableColumn { } }; - let yyyyQQ: StringToDateFunction = value => { + let yyyyQQ: StringToDateFunction = (value) => { // Is it quarterly data in the format yyyy-Qx ? (Ignoring null values, and failing on any purely numeric values) if (value[4] === "-" && value[5] === "Q") { const year = +value.slice(0, 4); @@ -398,7 +400,7 @@ export default class TableColumn { return null; }; - let dateConstructor: StringToDateFunction = value => { + let dateConstructor: StringToDateFunction = (value) => { const ms = Date.parse(value); if (!Number.isNaN(ms)) { return new Date(ms); @@ -472,7 +474,7 @@ export default class TableColumn { return { ...this.valuesAsDates, values: valuesAsDates.values.map( - date => date && JulianDate.fromDate(date) + (date) => date && JulianDate.fromDate(date) ), minimum: valuesAsDates.minimum && JulianDate.fromDate(valuesAsDates.minimum), @@ -488,7 +490,7 @@ export default class TableColumn { get uniqueValues(): UniqueColumnValues { const replaceWithNull = this.traits.replaceWithNullValues; - const values = this.values.map(value => { + const values = this.values.map((value) => { if (value.length === 0) { return ""; } else if (replaceWithNull && replaceWithNull.indexOf(value) >= 0) { @@ -504,15 +506,17 @@ export default class TableColumn { function toArray(key: string, value: number): [string, number] { return [key, value]; } - const countArray = Object.keys(count).map(key => toArray(key, count[key])); + const countArray = Object.keys(count).map((key) => + toArray(key, count[key]) + ); - countArray.sort(function(a, b) { + countArray.sort(function (a, b) { return b[1] - a[1]; }); return { - values: countArray.map(a => a[0]), - counts: countArray.map(a => a[1]), + values: countArray.map((a) => a[0]), + counts: countArray.map((a) => a[1]), numberOfNulls: nullCount }; } @@ -609,11 +613,11 @@ export default class TableColumn { // - remove underscores // - capitalise this.name - .replace(/[A-Z][a-z]/g, letter => ` ${letter.toLowerCase()}`) + .replace(/[A-Z][a-z]/g, (letter) => ` ${letter.toLowerCase()}`) .replace(/_/g, " ") .trim() .toLowerCase() - .replace(/(^\w|\s\w)/g, m => m.toUpperCase()) + .replace(/(^\w|\s\w)/g, (m) => m.toUpperCase()) ); } @@ -632,7 +636,7 @@ export default class TableColumn { get traits(): Model { // It is important to match on column name and not column number because the column numbers can vary between stratum const thisColumn = this.tableModel.columns.find( - column => column.name === this.name + (column) => column.name === this.name ); if (thisColumn !== undefined) { const result = createCombinedModel( @@ -705,7 +709,7 @@ export default class TableColumn { // Explicit region type specified, we just need to resolve it. // Return first match in regionProviderLists regionProvider = regionProviderLists - .map(list => list.getRegionProvider(regionType)) + .map((list) => list.getRegionProvider(regionType)) .find(isDefined); } @@ -732,21 +736,21 @@ export default class TableColumn { if (columnName !== undefined) { // Resolve the explicit disambiguation column. return this.tableModel.tableColumns.find( - column => column.name === columnName + (column) => column.name === columnName ); } // See if the region provider likes any of the table's other columns for // disambiguation. const disambigName = this.regionType.findDisambigVariable( - this.tableModel.tableColumns.map(column => column.name) + this.tableModel.tableColumns.map((column) => column.name) ); if (disambigName === undefined) { return undefined; } return this.tableModel.tableColumns.find( - column => column.name === disambigName + (column) => column.name === disambigName ); } @@ -760,13 +764,13 @@ export default class TableColumn { get valueFunctionForType(): (rowIndex: number) => string | number | null { if (this.type === TableColumnType.scalar) { const values = this.valuesAsNumbers.values; - return function(rowIndex: number) { + return function (rowIndex: number) { return values[rowIndex]; }; } const values = this.values; - return function(rowIndex: number) { + return function (rowIndex: number) { return values[rowIndex]; }; } @@ -799,7 +803,7 @@ export default class TableColumn { } const values = valuesAsNumbers.values; - return function(rowIndex: number) { + return function (rowIndex: number) { const value = values[rowIndex]; if (value === null) { return null; @@ -880,7 +884,7 @@ export default class TableColumn { { hint: /^(year)$/i, type: TableColumnType.time } // Match "year" only, not "Final year" or "0-4 years". ]; - const match = typeHintSet.find(hint => { + const match = typeHintSet.find((hint) => { if (hint.hint.test(name)) { if (hint.typeFromValues) { return hint.typeFromValues === this.guessColumnTypeFromValues(); diff --git a/lib/Table/TableLegendStratum.ts b/lib/Table/TableLegendStratum.ts index a723c237fce..f32592fa6c0 100644 --- a/lib/Table/TableLegendStratum.ts +++ b/lib/Table/TableLegendStratum.ts @@ -42,10 +42,14 @@ export class TableAutomaticLegendStratum extends LoadableStratum( const override = { ...(this._item.activeTableStyle.tableColorMap.type === "constant" ? { - color: (this._item.activeTableStyle.tableColorMap - .colorMap as ConstantColorMap).color.toCssColorString(), - title: (this._item.activeTableStyle.tableColorMap - .colorMap as ConstantColorMap).title + color: ( + this._item.activeTableStyle.tableColorMap + .colorMap as ConstantColorMap + ).color.toCssColorString(), + title: ( + this._item.activeTableStyle.tableColorMap + .colorMap as ConstantColorMap + ).title } : {}), ...(this.showPointLegend && @@ -94,7 +98,7 @@ export class TableAutomaticLegendStratum extends LoadableStratum( @computed get showPointLegend() { return !!this._item.mapItems.find( - d => isDataSource(d) && d.entities.values.length > 0 + (d) => isDataSource(d) && d.entities.values.length > 0 ); } @@ -105,11 +109,11 @@ export class TableAutomaticLegendStratum extends LoadableStratum( this._item.activeTableStyle.tableColorMap.type, this._item.activeTableStyle.pointStyleMap.styleMap.type, this._item.activeTableStyle.outlineStyleMap.styleMap.type - ].filter(type => type !== "constant"); + ].filter((type) => type !== "constant"); const canMergeStyleTypes = - mergableStyleTypes.every(type => type === "enum") || - mergableStyleTypes.every(type => type === "bin"); + mergableStyleTypes.every((type) => type === "enum") || + mergableStyleTypes.every((type) => type === "bin"); const canMergeColumns = uniq( diff --git a/lib/Table/TableStyle.ts b/lib/Table/TableStyle.ts index 5e9c0916c5f..ee9bdb18bc9 100644 --- a/lib/Table/TableStyle.ts +++ b/lib/Table/TableStyle.ts @@ -60,7 +60,7 @@ export default class TableStyle { this.colorColumn, this.pointSizeColumn, ...(this.idColumns ?? []) - ]).every(col => col.ready); + ]).every((col) => col.ready); } /** @@ -80,7 +80,7 @@ export default class TableStyle { get title(): string { return ( this.styleTraits.title ?? - this.tableModel.tableColumns.find(col => col.name === this.id)?.title ?? + this.tableModel.tableColumns.find((col) => col.name === this.id)?.title ?? this.id ); } @@ -260,7 +260,7 @@ export default class TableStyle { get idColumns(): TableColumn[] | undefined { const idColumns = filterOutUndefined( this.timeTraits.idColumns - ? this.timeTraits.idColumns.map(name => this.resolveColumn(name)) + ? this.timeTraits.idColumns.map((name) => this.resolveColumn(name)) : [] ); return idColumns.length > 0 ? idColumns : undefined; @@ -456,13 +456,13 @@ export default class TableStyle { @computed get moreThanOneTimeInterval() { if (this.timeIntervals) { // Find first non-null time interval - const firstInterval = this.timeIntervals?.find(t => t) as + const firstInterval = this.timeIntervals?.find((t) => t) as | TimeInterval | undefined; if (firstInterval) { // Does there exist an interval which is different from firstInterval (that is to say, does there exist at least two unique intervals) return !!this.timeIntervals?.find( - t => + (t) => t && (!firstInterval.start.equals(t.start) || !firstInterval.stop.equals(t.stop)) @@ -504,7 +504,7 @@ export default class TableStyle { if (this.timeTraits.spreadStartTime) { // Find row ID with earliest date in this rowGroup const firstRowId = rowIds - .filter(id => filteredStartDates[id]) + .filter((id) => filteredStartDates[id]) .sort((idA, idB) => JulianDate.compare( filteredStartDates[idA]!, @@ -560,13 +560,13 @@ export default class TableStyle { for (let i = 0; i < this.rowGroups.length; i++) { const rowIds = this.rowGroups[i][1]; const sortedStartDates = sortedUniqueDates( - rowIds.map(id => timeColumn.valuesAsJulianDates.values[id]) + rowIds.map((id) => timeColumn.valuesAsJulianDates.values[id]) ); const finalDuration = estimateFinalDurationSeconds(sortedStartDates) ?? DEFAULT_FINAL_DURATION_SECONDS; - const startDatesForGroup = rowIds.map(id => startDates[id]); + const startDatesForGroup = rowIds.map((id) => startDates[id]); const finishDatesForGroup = this.calculateFinishDatesFromStartDates( startDatesForGroup, finalDuration @@ -598,9 +598,9 @@ export default class TableStyle { return ( Object.entries( - groupBy(tableRowIds, rowId => + groupBy(tableRowIds, (rowId) => groupByCols! - .map(col => { + .map((col) => { // If using region column as ID - only use valid regions if (col.type === TableColumnType.region) { return col.valuesAsRegions.regionIds[rowId]; @@ -611,7 +611,7 @@ export default class TableStyle { ) ) // Filter out bad IDs - .filter(value => value[0] !== "") + .filter((value) => value[0] !== "") ); } @@ -716,7 +716,7 @@ export default class TableStyle { if (name === undefined) { return undefined; } - return this.tableModel.tableColumns.find(column => column.name === name); + return this.tableModel.tableColumns.find((column) => column.name === name); } } diff --git a/lib/Table/TableStyleMap.ts b/lib/Table/TableStyleMap.ts index 6a5dc6d2dff..3aff6183efe 100644 --- a/lib/Table/TableStyleMap.ts +++ b/lib/Table/TableStyleMap.ts @@ -79,7 +79,7 @@ export default class TableStyleMap { @computed get column() { return this.traitValues.column ? this.tableModel.tableColumns.find( - column => column.name === this.traitValues.column + (column) => column.name === this.traitValues.column ) : undefined; } @@ -98,7 +98,7 @@ export default class TableStyleMap { ) { return { type: "bin", - mapValueToStyle: rowId => { + mapValueToStyle: (rowId) => { const value = this.column?.valuesForType[rowId]; if (typeof value !== "number") { return this.traitValues.null; @@ -127,9 +127,9 @@ export default class TableStyleMap { ) { return { type: "enum", - mapValueToStyle: rowId => { + mapValueToStyle: (rowId) => { const style = this.traitValues.enum!.find( - enumStyle => + (enumStyle) => enumStyle.value !== null && enumStyle.value === this.column?.values[rowId] ); diff --git a/lib/Table/createLongitudeLatitudeFeaturePerId.ts b/lib/Table/createLongitudeLatitudeFeaturePerId.ts index 30296bd9698..6bc1cf183ae 100644 --- a/lib/Table/createLongitudeLatitudeFeaturePerId.ts +++ b/lib/Table/createLongitudeLatitudeFeaturePerId.ts @@ -57,7 +57,7 @@ function createFeature( ): Entity { const isSampled = !!style.timeTraits.isSampled; const tableHasScalarColumn = !!style.tableModel.tableColumns.find( - col => col.type === TableColumnType.scalar + (col) => col.type === TableColumnType.scalar ); const interpolate = isSampled && tableHasScalarColumn; @@ -90,7 +90,7 @@ function createFeature( /** use `PointGraphics` or `BillboardGraphics`. This wil be false if any pointTraits.marker !== "point", as then we use images as billboards */ let usePointGraphics = true; - rowIds.forEach(rowId => { + rowIds.forEach((rowId) => { const longitude = longitudes[rowId]; const latitude = latitudes[rowId]; const interval = timeIntervals[rowId]; @@ -271,7 +271,7 @@ function getRowDescription( tableColumns: Readonly ) { const rows = tableColumns - .map(column => { + .map((column) => { const title = column.title; const value = column.valueFunctionForType(index); return `${title}${value}`; diff --git a/lib/Table/createLongitudeLatitudeFeaturePerRow.ts b/lib/Table/createLongitudeLatitudeFeaturePerRow.ts index 570de8694ac..a26c4229670 100644 --- a/lib/Table/createLongitudeLatitudeFeaturePerRow.ts +++ b/lib/Table/createLongitudeLatitudeFeaturePerRow.ts @@ -28,7 +28,7 @@ export default function createLongitudeLatitudeFeaturePerRow( const rowIds = style.tableModel.rowIds; return filterOutUndefined( - rowIds.map(rowId => { + rowIds.map((rowId) => { const longitude = longitudes[rowId]; const latitude = latitudes[rowId]; if (longitude === null || latitude === null) { @@ -91,7 +91,7 @@ export function getRowValues( ): JsonObject { const result: JsonObject = {}; - tableColumns.forEach(column => { + tableColumns.forEach((column) => { result[column.name] = column.valueFunctionForType(index); }); diff --git a/lib/Table/createRegionMappedImageryProvider.ts b/lib/Table/createRegionMappedImageryProvider.ts index 77ecd9085f8..2090252ae6b 100644 --- a/lib/Table/createRegionMappedImageryProvider.ts +++ b/lib/Table/createRegionMappedImageryProvider.ts @@ -51,7 +51,7 @@ export default function createRegionMappedImageryProvider( return new MapboxVectorTileImageryProvider({ url: regionType.server, layerName: regionType.layerName, - styleFunc: function(feature: any) { + styleFunc: function (feature: any) { const regionId = feature.properties[regionType.uniqueIdProp]; let rowNumber = getImageryLayerFilteredRow( @@ -125,7 +125,7 @@ const getImageryLayerFilteredRow = action( ) { return rowNumbers; } else if (Array.isArray(rowNumbers)) { - const matchingTimeRows: number[] = rowNumbers.filter(row => + const matchingTimeRows: number[] = rowNumbers.filter((row) => currentTimeRows!.includes(row) ); if (matchingTimeRows.length <= 1) { diff --git a/lib/Table/getChartDetailsFn.ts b/lib/Table/getChartDetailsFn.ts index 925a9c1cbf3..9d7dafe8141 100644 --- a/lib/Table/getChartDetailsFn.ts +++ b/lib/Table/getChartDetailsFn.ts @@ -6,16 +6,16 @@ export default function getChartDetailsFn(style: TableStyle, rowIds: number[]) { return undefined; const chartColumns = [style.timeColumn, style.colorColumn]; const csvData = [ - chartColumns.map(col => col!.title).join(","), - ...rowIds.map(i => - chartColumns!.map(col => col.valueFunctionForType(i)).join(",") + chartColumns.map((col) => col!.title).join(","), + ...rowIds.map((i) => + chartColumns!.map((col) => col.valueFunctionForType(i)).join(",") ) ].join("\n"); return { title: style.colorColumn?.title, xName: style.timeColumn?.title, yName: style.colorColumn?.title, - units: chartColumns.map(column => column.units || ""), + units: chartColumns.map((column) => column.units || ""), csvData }; }; diff --git a/lib/ThirdParty/xml2json.js b/lib/ThirdParty/xml2json.js index b466540d8db..fcd396f09c4 100644 --- a/lib/ThirdParty/xml2json.js +++ b/lib/ThirdParty/xml2json.js @@ -15,7 +15,7 @@ // The jQuery dependency has been removed for use in TerriaJS! -var xml2json = function(xml, extended) { +var xml2json = function (xml, extended) { if (!xml) return {}; // quick fail //### PARSER LIBRARY @@ -119,7 +119,7 @@ var xml2json = function(xml, extended) { } // parseXML // Core Function End // Utility functions - var jsVar = function(s) { + var jsVar = function (s) { return String(s || "").replace(/-/g, "_"); }; @@ -141,7 +141,7 @@ var xml2json = function(xml, extended) { // OLD isNum function: (for reference only) //var isNum = function(s){ return (typeof s == "number") || String((s && typeof s == "string") ? s : '').test(/^((-)?([0-9]*)((\.{0,1})([0-9]+))?$)/); }; - var myArr = function(o) { + var myArr = function (o) { // http://forum.jquery.com/topic/jquery-jquery-xml2json-problems-when-siblings-of-the-same-tagname-only-have-a-textnode-as-a-child //if(!o.length) o = [ o ]; o.length=o.length; if (!Array.isArray(o)) o = [o]; diff --git a/lib/Traits/ArrayNestedStrataMap.ts b/lib/Traits/ArrayNestedStrataMap.ts index b484b2fc5bd..6bde7aa79fd 100644 --- a/lib/Traits/ArrayNestedStrataMap.ts +++ b/lib/Traits/ArrayNestedStrataMap.ts @@ -10,7 +10,8 @@ import TraitsConstructor from "./TraitsConstructor"; * parent strata map. */ export default class ArrayNestedStrataMap - implements Map> { + implements Map> +{ constructor( readonly parentModel: Stratified, readonly parentProperty: string, @@ -120,8 +121,8 @@ export default class ArrayNestedStrataMap @computed private get strata(): ReadonlyMap> { - const strataTopToBottom: ReadonlyMap = this.parentModel - .strataTopToBottom; + const strataTopToBottom: ReadonlyMap = + this.parentModel.strataTopToBottom; const result = new Map>(); diff --git a/lib/Traits/Decorators/anyTrait.ts b/lib/Traits/Decorators/anyTrait.ts index c2bcb07bd1b..d551d944d9e 100644 --- a/lib/Traits/Decorators/anyTrait.ts +++ b/lib/Traits/Decorators/anyTrait.ts @@ -6,7 +6,7 @@ import Trait, { TraitOptions } from "../Trait"; export interface AnyTraitOptions extends TraitOptions {} export default function anyTrait(options: TraitOptions) { - return function(target: any, propertyKey: string) { + return function (target: any, propertyKey: string) { const constructor = target.constructor; if (!constructor.traits) { constructor.traits = {}; diff --git a/lib/Traits/Decorators/modelReferenceArrayTrait.ts b/lib/Traits/Decorators/modelReferenceArrayTrait.ts index 71c0fe01dbd..9cedb4b69d8 100644 --- a/lib/Traits/Decorators/modelReferenceArrayTrait.ts +++ b/lib/Traits/Decorators/modelReferenceArrayTrait.ts @@ -16,7 +16,7 @@ export interface ModelArrayTraitOptions extends TraitOptions { export default function modelReferenceArrayTrait( options: ModelArrayTraitOptions ) { - return function(target: any, propertyKey: string) { + return function (target: any, propertyKey: string) { const constructor = target.constructor; if (!constructor.traits) { constructor.traits = {}; @@ -55,7 +55,7 @@ export class ModelReferenceArrayTrait extends Trait { const modelIdArray: ModelReference[] = stratum[this.id]; if (modelIdArray) { - modelIdArray.forEach(modelId => { + modelIdArray.forEach((modelId) => { if (ModelReference.isRemoved(modelId)) { // This ID is removed in this stratum. removedIds[modelId.removed] = true; @@ -97,7 +97,7 @@ export class ModelReferenceArrayTrait extends Trait { const errors: TerriaError[] = []; const result = jsonValue - .map(jsonElement => { + .map((jsonElement) => { if (typeof jsonElement === "string") { return jsonElement; } else if (typeof jsonElement === "object") { diff --git a/lib/Traits/Decorators/modelReferenceTrait.ts b/lib/Traits/Decorators/modelReferenceTrait.ts index a37d464f133..281811bf952 100644 --- a/lib/Traits/Decorators/modelReferenceTrait.ts +++ b/lib/Traits/Decorators/modelReferenceTrait.ts @@ -13,7 +13,7 @@ export interface ModelTraitOptions extends TraitOptions { } export default function modelReferenceTrait(options: ModelTraitOptions) { - return function(target: any, propertyKey: string) { + return function (target: any, propertyKey: string) { const constructor = target.constructor; if (!constructor.traits) { constructor.traits = {}; @@ -77,7 +77,7 @@ export class ModelReferenceTrait extends Trait { stratumName, jsonValue, {} - ).catchError(error => errors.push(error)); + ).catchError((error) => errors.push(error)); result = newModel?.uniqueId ?? createStubCatalogItem(model.terria).uniqueId!; } diff --git a/lib/Traits/Decorators/objectArrayTrait.ts b/lib/Traits/Decorators/objectArrayTrait.ts index 5f16891ab2e..98602a8a279 100644 --- a/lib/Traits/Decorators/objectArrayTrait.ts +++ b/lib/Traits/Decorators/objectArrayTrait.ts @@ -32,7 +32,7 @@ export interface ObjectArrayTraitOptions export default function objectArrayTrait( options: ObjectArrayTraitOptions ) { - return function(target: any, propertyKey: string) { + return function (target: any, propertyKey: string) { const constructor = target.constructor; if (!constructor.traits) { constructor.traits = {}; @@ -145,7 +145,7 @@ export class ObjectArrayTrait extends Trait { // Correct ids are: // - Ids ordered by strata bottom to top combined with // - Ids removed by strata top to bottom - const ids = Array.from(idsInCorrectOrder).filter(id => + const ids = Array.from(idsInCorrectOrder).filter((id) => idsWithCorrectRemovals.has(id) ); @@ -155,7 +155,7 @@ export class ObjectArrayTrait extends Trait { const result: Model[] = []; - ids.forEach(value => { + ids.forEach((value) => { result.push(this.createObject(model, value)); }); @@ -182,11 +182,11 @@ export class ObjectArrayTrait extends Trait { const errors: TerriaError[] = []; - const resultArray = jsonValue.map(jsonElement => { + const resultArray = jsonValue.map((jsonElement) => { const ResultType = this.type; const result: any = createStratumInstance(ResultType); - Object.keys(jsonElement).forEach(propertyName => { + Object.keys(jsonElement).forEach((propertyName) => { const trait = ResultType.traits[propertyName]; if (trait === undefined) { errors.push( @@ -229,7 +229,7 @@ export class ObjectArrayTrait extends Trait { return undefined; } - return value.map(element => saveStratumToJson(this.type.traits, element)); + return value.map((element) => saveStratumToJson(this.type.traits, element)); } isSameType(trait: Trait): boolean { diff --git a/lib/Traits/Decorators/objectTrait.ts b/lib/Traits/Decorators/objectTrait.ts index 2389021cff6..4b06903f0c3 100644 --- a/lib/Traits/Decorators/objectTrait.ts +++ b/lib/Traits/Decorators/objectTrait.ts @@ -24,7 +24,7 @@ export interface ObjectTraitOptions export default function objectTrait( options: ObjectTraitOptions ) { - return function(target: any, propertyKey: string) { + return function (target: any, propertyKey: string) { const constructor = target.constructor; if (!constructor.traits) { constructor.traits = {}; @@ -73,7 +73,7 @@ export class ObjectTrait extends Trait { const errors: TerriaError[] = []; - Object.keys(jsonValue).forEach(propertyName => { + Object.keys(jsonValue).forEach((propertyName) => { const trait = ResultType.traits[propertyName]; if (trait === undefined) { errors.push( diff --git a/lib/Traits/Decorators/primitiveArrayTrait.ts b/lib/Traits/Decorators/primitiveArrayTrait.ts index 91401bbd961..896e612e17f 100644 --- a/lib/Traits/Decorators/primitiveArrayTrait.ts +++ b/lib/Traits/Decorators/primitiveArrayTrait.ts @@ -13,7 +13,7 @@ export interface PrimitiveArrayTraitOptions extends TraitOptions { export default function primitiveArrayTrait( options: PrimitiveArrayTraitOptions ) { - return function(target: any, propertyKey: string) { + return function (target: any, propertyKey: string) { const constructor = target.constructor; if (!constructor.traits) { constructor.traits = {}; @@ -86,6 +86,6 @@ export class PrimitiveArrayTrait extends Trait { return false; } - return jsonValue.every(item => typeof item === this.type); + return jsonValue.every((item) => typeof item === this.type); } } diff --git a/lib/Traits/Decorators/primitiveTrait.ts b/lib/Traits/Decorators/primitiveTrait.ts index 0086523ee42..e361c47b7a7 100644 --- a/lib/Traits/Decorators/primitiveTrait.ts +++ b/lib/Traits/Decorators/primitiveTrait.ts @@ -11,7 +11,7 @@ export interface PrimitiveTraitOptions extends TraitOptions { } export default function primitiveTrait(options: PrimitiveTraitOptions) { - return function(target: any, propertyKey: string) { + return function (target: any, propertyKey: string) { const constructor = target.constructor; if (!constructor.traits) { constructor.traits = {}; diff --git a/lib/Traits/NestedStrataMap.ts b/lib/Traits/NestedStrataMap.ts index 9f31bfa1533..2464a8d034d 100644 --- a/lib/Traits/NestedStrataMap.ts +++ b/lib/Traits/NestedStrataMap.ts @@ -8,7 +8,8 @@ import createStratumInstance from "../Models/Definition/createStratumInstance"; * parent strata map. */ export default class NestedStrataMap - implements Map { + implements Map +{ constructor( readonly parentTraitsClass: TraitsConstructor, readonly parent: Map>, diff --git a/lib/Traits/Trait.ts b/lib/Traits/Trait.ts index 402407933b3..fa5d77ca04d 100644 --- a/lib/Traits/Trait.ts +++ b/lib/Traits/Trait.ts @@ -9,7 +9,7 @@ export interface TraitClassOptions { /** Decorator to set traitClass options (eg `description` of the class) */ export function traitClass(options: TraitClassOptions) { - return function(target: any) { + return function (target: any) { target.description = options.description; target.example = options.example; }; diff --git a/lib/Traits/TraitsClasses/CkanCatalogGroupTraits.ts b/lib/Traits/TraitsClasses/CkanCatalogGroupTraits.ts index c1916edfef8..c18d6a699f6 100644 --- a/lib/Traits/TraitsClasses/CkanCatalogGroupTraits.ts +++ b/lib/Traits/TraitsClasses/CkanCatalogGroupTraits.ts @@ -31,8 +31,7 @@ export default class CkanCatalogGroupTraits extends mixTraits( }) filterQuery?: (JsonObject | string)[] = [ { - fq: - '(res_format:(czml OR CZML OR geojson OR GeoJSON OR WMS OR wms OR kml OR KML OR kmz OR KMZ OR WFS OR wfs OR CSV-GEO-AU OR csv-geo-au OR "Esri REST"))' + fq: '(res_format:(czml OR CZML OR geojson OR GeoJSON OR WMS OR wms OR kml OR KML OR kmz OR KMZ OR WFS OR wfs OR CSV-GEO-AU OR csv-geo-au OR "Esri REST"))' } ]; diff --git a/lib/Traits/TraitsClasses/CkanSharedTraits.ts b/lib/Traits/TraitsClasses/CkanSharedTraits.ts index 334a3109fa8..d5cc0dd8fe6 100644 --- a/lib/Traits/TraitsClasses/CkanSharedTraits.ts +++ b/lib/Traits/TraitsClasses/CkanSharedTraits.ts @@ -23,8 +23,7 @@ export default class CkanSharedTraits extends mixTraits(ReferenceTraits) { @primitiveTrait({ type: "boolean", - name: - "Use combination of dataset and resource name where multiple resources", + name: "Use combination of dataset and resource name where multiple resources", description: `Use a combination of the name and the resource and dataset name where there are multiple resources for a single dataset.` }) useCombinationNameWhereMultipleResources: boolean = false; diff --git a/lib/Traits/TraitsClasses/DimensionTraits.ts b/lib/Traits/TraitsClasses/DimensionTraits.ts index 10c3c181a12..1cfd5586934 100644 --- a/lib/Traits/TraitsClasses/DimensionTraits.ts +++ b/lib/Traits/TraitsClasses/DimensionTraits.ts @@ -8,8 +8,10 @@ import anyTrait from "../Decorators/anyTrait"; import objectArrayTrait from "../Decorators/objectArrayTrait"; import { JsonObject } from "../../Core/Json"; -export class DimensionOptionTraits extends ModelTraits - implements EnumDimensionOption { +export class DimensionOptionTraits + extends ModelTraits + implements EnumDimensionOption +{ @primitiveTrait({ type: "string", name: "ID", @@ -31,8 +33,10 @@ export class DimensionOptionTraits extends ModelTraits value?: JsonObject; } -export default class EnumDimensionTraits extends ModelTraits - implements EnumDimension { +export default class EnumDimensionTraits + extends ModelTraits + implements EnumDimension +{ @primitiveTrait({ type: "string", name: "ID", diff --git a/lib/Traits/TraitsClasses/KmlCatalogItemTraits.ts b/lib/Traits/TraitsClasses/KmlCatalogItemTraits.ts index 2ab80690638..b6975f7ba37 100644 --- a/lib/Traits/TraitsClasses/KmlCatalogItemTraits.ts +++ b/lib/Traits/TraitsClasses/KmlCatalogItemTraits.ts @@ -8,7 +8,6 @@ import MeasurableTraits from "./MeasurableTraits"; export default class KmlCatalogItemTraits extends mixTraits( MeasurableTraits, - FeatureInfoTraits, UrlTraits, MappableTraits, CatalogMemberTraits, diff --git a/lib/Traits/TraitsClasses/TableColumnTraits.ts b/lib/Traits/TraitsClasses/TableColumnTraits.ts index ad07bee82de..146f5a155fa 100644 --- a/lib/Traits/TraitsClasses/TableColumnTraits.ts +++ b/lib/Traits/TraitsClasses/TableColumnTraits.ts @@ -59,7 +59,7 @@ export default class TableColumnTraits extends ModelTraits { "The type of the column. If not specified, the type is guessed from " + "the column's name and values. Valid types are:\n\n" + Object.keys(TableColumnType) - .map(type => ` * \`${type}\``) + .map((type) => ` * \`${type}\``) .join("\n"), type: "string" }) diff --git a/lib/Traits/TraitsClasses/TableOutlineStyleTraits.ts b/lib/Traits/TraitsClasses/TableOutlineStyleTraits.ts index d2ceb11aac9..f2c6a998af5 100644 --- a/lib/Traits/TraitsClasses/TableOutlineStyleTraits.ts +++ b/lib/Traits/TraitsClasses/TableOutlineStyleTraits.ts @@ -42,7 +42,8 @@ export class BinOutlineSymbolTraits extends mixTraits( export default class TableOutlineStyleTraits extends mixTraits(TableStyleMapTraits) - implements TableStyleMapModel { + implements TableStyleMapModel +{ @objectArrayTrait({ name: "Enum Colors", description: diff --git a/lib/Traits/TraitsClasses/TablePointStyleTraits.ts b/lib/Traits/TraitsClasses/TablePointStyleTraits.ts index fb98abeee4c..69ef0f381a1 100644 --- a/lib/Traits/TraitsClasses/TablePointStyleTraits.ts +++ b/lib/Traits/TraitsClasses/TablePointStyleTraits.ts @@ -64,7 +64,8 @@ export class BinPointSymbolTraits extends mixTraits( export default class TablePointStyleTraits extends mixTraits(TableStyleMapTraits) - implements TableStyleMapModel { + implements TableStyleMapModel +{ @objectArrayTrait({ name: "Enum Colors", description: diff --git a/lib/Traits/mixTraits.ts b/lib/Traits/mixTraits.ts index 1d3105f2fec..d46d8b0d7eb 100644 --- a/lib/Traits/mixTraits.ts +++ b/lib/Traits/mixTraits.ts @@ -68,10 +68,10 @@ export default function mixTraits< Traits13, Traits14 ]); - const traitsInstances = traitsClasses.map(TraitsClass => new TraitsClass()); + const traitsInstances = traitsClasses.map((TraitsClass) => new TraitsClass()); const keysValues = traitsInstances.reduce((result, traitsInstance) => { return result.concat( - Object.keys(traitsInstance).map(property => ({ + Object.keys(traitsInstance).map((property) => ({ key: property, value: (traitsInstance)[property] })) @@ -82,14 +82,14 @@ export default function mixTraits< static readonly traits: any = {}; constructor() { super(); - keysValues.forEach(kv => { + keysValues.forEach((kv) => { (this)[kv.key] = kv.value; }); } } - traitsClasses.forEach(traitsClass => { - Object.keys(traitsClass.traits).forEach(trait => { + traitsClasses.forEach((traitsClass) => { + Object.keys(traitsClass.traits).forEach((trait) => { Mixed.traits[trait] = traitsClass.traits[trait]; }); }); diff --git a/lib/Traits/traitsClassToModelClass.ts b/lib/Traits/traitsClassToModelClass.ts index 447b3994f23..53144d9f5d5 100644 --- a/lib/Traits/traitsClassToModelClass.ts +++ b/lib/Traits/traitsClassToModelClass.ts @@ -8,7 +8,7 @@ import TraitsConstructor from "./TraitsConstructor"; // (check objectTrait & objectArrayTrait) and it will always be run outside an // `autorun` or an `observer`. Therefore, thecall to `createTransformer` will // not memoize and logs a warning. -const traitsClassToModelClass = memoize(function( +const traitsClassToModelClass = memoize(function ( traitsClass: TraitsConstructor ) { return CreateModel(traitsClass); diff --git a/lib/ViewModels/CompositeBar/CompositeBarItemController.ts b/lib/ViewModels/CompositeBar/CompositeBarItemController.ts index 3e2b8d450f5..e9ebec89d13 100644 --- a/lib/ViewModels/CompositeBar/CompositeBarItemController.ts +++ b/lib/ViewModels/CompositeBar/CompositeBarItemController.ts @@ -15,7 +15,8 @@ export interface ICompositeBarItemController { } export abstract class CompositeBarItemController - implements ICompositeBarItemController { + implements ICompositeBarItemController +{ static id: string; itemRef: React.RefObject = React.createRef(); diff --git a/lib/ViewModels/CompositeBar/CompositeBarModel.ts b/lib/ViewModels/CompositeBar/CompositeBarModel.ts index 9d9a319f520..93aa969f5c7 100644 --- a/lib/ViewModels/CompositeBar/CompositeBarModel.ts +++ b/lib/ViewModels/CompositeBar/CompositeBarModel.ts @@ -54,19 +54,19 @@ export abstract class CompositeBarModel< @computed get visibleItems(): CompositeBarItem[] { - return this.items.filter(item => item.controller.visible); + return this.items.filter((item) => item.controller.visible); } get pinnedItems(): CompositeBarItem[] { return this.items.filter( - item => item.controller.visible && item.controller.pinned + (item) => item.controller.visible && item.controller.pinned ); } setItems(items: CompositeBarItem[]) { const result: CompositeBarItem[] = []; if (!this.items || this.items.length === 0) { - this._items = items.map(item => { + this._items = items.map((item) => { return this.createCompositeBarItem(item); }); } else { @@ -224,7 +224,7 @@ export abstract class CompositeBarModel< } findItem(id: string): CompositeBarItem | undefined { - return this.items.filter(item => item.id === id)[0]; + return this.items.filter((item) => item.id === id)[0]; } protected createCompositeBarItem(item: CompositeBarItem): CompositeBarItem { diff --git a/lib/ViewModels/MapNavigation/MapNavigationModel.ts b/lib/ViewModels/MapNavigation/MapNavigationModel.ts index e5430ab95c8..d7c194174ef 100644 --- a/lib/ViewModels/MapNavigation/MapNavigationModel.ts +++ b/lib/ViewModels/MapNavigation/MapNavigationModel.ts @@ -19,9 +19,7 @@ export interface IMapNavigationItem render?: ReactNode; } -export default class MapNavigationModel extends CompositeBarModel< - IMapNavigationItem -> { +export default class MapNavigationModel extends CompositeBarModel { constructor( protected readonly terria: Terria, items?: IMapNavigationItem[], diff --git a/lib/ViewModels/TerriaViewer.ts b/lib/ViewModels/TerriaViewer.ts index fd709d023d2..baf04701d29 100644 --- a/lib/ViewModels/TerriaViewer.ts +++ b/lib/ViewModels/TerriaViewer.ts @@ -187,7 +187,7 @@ export default class TerriaViewer { }) private get _cesiumPromise() { return fromPromise( - import("../Models/Cesium").then(Cesium => Cesium.default) + import("../Models/Cesium").then((Cesium) => Cesium.default) ); } @@ -207,7 +207,7 @@ export default class TerriaViewer { }) private get _leafletPromise() { return fromPromise( - import("../Models/Leaflet").then(Leaflet => Leaflet.default) + import("../Models/Leaflet").then((Leaflet) => Leaflet.default) ); } diff --git a/lib/ViewModels/ViewingControlsMenu.ts b/lib/ViewModels/ViewingControlsMenu.ts index dad6267bd69..769568507d9 100644 --- a/lib/ViewModels/ViewingControlsMenu.ts +++ b/lib/ViewModels/ViewingControlsMenu.ts @@ -30,7 +30,7 @@ export function addMenuItem( generateViewingControl: ViewingControlGenerateFunction ): () => void { runInAction(() => { - viewState.globalViewingControlOptions.push(item => { + viewState.globalViewingControlOptions.push((item) => { const viewingControl = generateViewingControl(item); return viewingControl === undefined ? undefined @@ -45,7 +45,7 @@ export function addMenuItem( runInAction(() => { remove( viewState.globalViewingControlOptions, - fn => fn === generateViewingControl + (fn) => fn === generateViewingControl ); }); }; diff --git a/lib/ViewModels/updateApplicationOnHashChange.ts b/lib/ViewModels/updateApplicationOnHashChange.ts index 7ad2f4c11f9..6cf0fe59992 100644 --- a/lib/ViewModels/updateApplicationOnHashChange.ts +++ b/lib/ViewModels/updateApplicationOnHashChange.ts @@ -9,10 +9,10 @@ import Terria from "../Models/Terria"; * @param {Terria} terria The Terria instance to update. * @param {Window} window The browser's window DOM object. */ -export default function(terria: Terria, window: Window) { +export default function (terria: Terria, window: Window) { window.addEventListener( "hashchange", - async function() { + async function () { try { ( await terria.updateApplicationUrl(window.location.toString()) diff --git a/lib/ViewModels/updateApplicationOnMessageFromParentWindow.js b/lib/ViewModels/updateApplicationOnMessageFromParentWindow.js index e0049550fd8..d298c215199 100644 --- a/lib/ViewModels/updateApplicationOnMessageFromParentWindow.js +++ b/lib/ViewModels/updateApplicationOnMessageFromParentWindow.js @@ -3,12 +3,12 @@ const { TerriaErrorSeverity } = require("../Core/TerriaError"); var defined = require("terriajs-cesium/Source/Core/defined").default; -var updateApplicationOnMessageFromParentWindow = function(terria, window) { +var updateApplicationOnMessageFromParentWindow = function (terria, window) { var allowOrigin; window.addEventListener( "message", - async function(event) { + async function (event) { var origin = event.origin; if (!defined(origin) && defined(event.originalEvent)) { // For Chrome, the origin property is in the event.originalEvent object. diff --git a/test/.eslintrc b/test/.eslintrc index 8e791840981..52939e2adf9 100644 --- a/test/.eslintrc +++ b/test/.eslintrc @@ -1,5 +1,5 @@ { - "env": { - "jasmine": true - } + "env": { + "jasmine": true + } } diff --git a/test/Core/CorsProxySpec.js b/test/Core/CorsProxySpec.js index 09426c92443..ad77c5e0937 100644 --- a/test/Core/CorsProxySpec.js +++ b/test/Core/CorsProxySpec.js @@ -2,11 +2,11 @@ var CorsProxy = require("../../lib/Core/CorsProxy"); -describe("CorsProxy", function() { +describe("CorsProxy", function () { var corsProxy, loadDeferred, loadJson; var originalPageIsHttps, originalAlwaysUseProxy; - beforeEach(function() { + beforeEach(function () { loadDeferred = {}; loadDeferred.promise = new Promise((resolve, reject) => { loadDeferred.resolve = resolve; @@ -23,28 +23,28 @@ describe("CorsProxy", function() { corsProxy.alwaysUseProxy = false; }); - afterEach(function() { + afterEach(function () { corsProxy.pageIsHttps = originalPageIsHttps; corsProxy.alwaysUseProxy = originalAlwaysUseProxy; corsProxy.proxyDomains.length = 0; corsProxy.corsDomains.length = 0; }); - describe("init", function() { - it("should use baseProxyUrl for subsequent proxy calls", function() { + describe("init", function () { + it("should use baseProxyUrl for subsequent proxy calls", function () { corsProxy.init("", "proxy2/", {}); expect(corsProxy.getURL("example")).toBe("proxy2/example"); }); - it("should use the passed proxyDomains", function() { + it("should use the passed proxyDomains", function () { corsProxy.init(undefined, undefined, ["example.com"]); expect(corsProxy.shouldUseProxy("http://example.com")).toBe(true); expect(corsProxy.shouldUseProxy("http://example2.com")).toBe(false); }); - it("should ignore the passed proxyDomains if also provided a serverconfig list", function() { + it("should ignore the passed proxyDomains if also provided a serverconfig list", function () { corsProxy.init({ allowProxyFor: ["example2.com"] }, undefined, [ "example.com" ]); @@ -54,7 +54,7 @@ describe("CorsProxy", function() { expect(corsProxy.shouldUseProxy("http://example3.com")).toBe(false); }); - it("should honour proxyAllDomains being returned in proxyableDomains json by proxying all domains", function() { + it("should honour proxyAllDomains being returned in proxyableDomains json by proxying all domains", function () { corsProxy.init( { allowProxyFor: ["example2.com"], proxyAllDomains: true }, undefined, @@ -67,66 +67,66 @@ describe("CorsProxy", function() { }); }); - describe("getURL", function() { - beforeEach(function() { + describe("getURL", function () { + beforeEach(function () { corsProxy.init(undefined, undefined, ["example.com"]); }); - it("converts URLs in the proxyableDomains list", function() { + it("converts URLs in the proxyableDomains list", function () { expect(corsProxy.getURL("http://example.com/blah")).toBe( "proxy/http://example.com/blah" ); }); - it("converts URLs outside the proxyableDomains list", function() { + it("converts URLs outside the proxyableDomains list", function () { expect(corsProxy.getURL("http://example2.com/blah")).toBe( "proxy/http://example2.com/blah" ); }); - it("adds a proxy flag if specified", function() { + it("adds a proxy flag if specified", function () { expect(corsProxy.getURL("http://example.com/blah", "2d")).toBe( "proxy/_2d/http://example.com/blah" ); }); }); - describe("getURLProxyIfNecessary", function() { - beforeEach(function() { + describe("getURLProxyIfNecessary", function () { + beforeEach(function () { corsProxy.init(undefined, undefined, ["example.com"]); }); - it("converts URLs that should be proxied", function() { + it("converts URLs that should be proxied", function () { expect(corsProxy.getURLProxyIfNecessary("http://example.com/blah")).toBe( "proxy/http://example.com/blah" ); }); - it("doesn't converts URLs that should not be proxied", function() { + it("doesn't converts URLs that should not be proxied", function () { expect(corsProxy.getURLProxyIfNecessary("http://example2.com/blah")).toBe( "http://example2.com/blah" ); }); }); - describe("shouldUseProxy", function() { - beforeEach(function() { + describe("shouldUseProxy", function () { + beforeEach(function () { corsProxy.init(); }); - it("returns false for an undefined input", function() { + it("returns false for an undefined input", function () { expect(corsProxy.shouldUseProxy()).toBe(false); }); - it("returns false for a relative path", function() { + it("returns false for a relative path", function () { expect(corsProxy.shouldUseProxy("path")).toBe(false); }); - it("returns false for an absolute local path", function() { + it("returns false for an absolute local path", function () { expect(corsProxy.shouldUseProxy("/path")).toBe(false); }); - it("proxies all domains if an open proxy", function() { + it("proxies all domains if an open proxy", function () { corsProxy.proxyDomains.push("example.com"); corsProxy.isOpenProxy = true; expect(corsProxy.shouldUseProxy("http://www.example.com/foo")).toBe(true); @@ -135,8 +135,8 @@ describe("CorsProxy", function() { ); }); - describe("for a URL to a CORS-capable domain", function() { - it("does not proxy under usual conditions", function() { + describe("for a URL to a CORS-capable domain", function () { + it("does not proxy under usual conditions", function () { corsProxy.proxyDomains.push("example.com"); corsProxy.corsDomains.push("example.com"); expect(corsProxy.shouldUseProxy("http://www.example.com/foo")).toBe( @@ -144,7 +144,7 @@ describe("CorsProxy", function() { ); }); - it("are proxied for http requests on https sites", function() { + it("are proxied for http requests on https sites", function () { corsProxy.pageIsHttps = true; corsProxy.proxyDomains.push("example.com"); corsProxy.corsDomains.push("example.com"); @@ -154,15 +154,15 @@ describe("CorsProxy", function() { }); }); - describe("for a URL to a non-CORS capable domain", function() { - it("proxies to domains in proxyableDomains", function() { + describe("for a URL to a non-CORS capable domain", function () { + it("proxies to domains in proxyableDomains", function () { corsProxy.proxyDomains.push("example.com"); expect(corsProxy.shouldUseProxy("http://www.example.com/foo")).toBe( true ); }); - it("does not proxy requests to domains not in proxyableDomains", function() { + it("does not proxy requests to domains not in proxyableDomains", function () { corsProxy.proxyDomains.push("example.com"); expect(corsProxy.shouldUseProxy("http://www.example2.com/foo")).toBe( false @@ -170,25 +170,25 @@ describe("CorsProxy", function() { }); }); - describe("if alwaysUseProxy is true", function() { - beforeEach(function() { + describe("if alwaysUseProxy is true", function () { + beforeEach(function () { corsProxy.alwaysUseProxy = true; corsProxy.proxyDomains.push("example.com"); }); - it("should still block domains outside proxyabledomains", function() { + it("should still block domains outside proxyabledomains", function () { expect(corsProxy.shouldUseProxy("http://www.example2.com/foo")).toBe( false ); }); - it("should proxy for domain in list even when calling http -> http", function() { + it("should proxy for domain in list even when calling http -> http", function () { expect(corsProxy.shouldUseProxy("http://www.example.com/foo")).toBe( true ); }); - it("should proxy for domain in list even when in CORS list", function() { + it("should proxy for domain in list even when in CORS list", function () { corsProxy.corsDomains.push("example.com"); expect(corsProxy.shouldUseProxy("http://www.example.com/foo")).toBe( true diff --git a/test/Core/JsonSpec.ts b/test/Core/JsonSpec.ts index f2c91b17015..93fc8e033fe 100644 --- a/test/Core/JsonSpec.ts +++ b/test/Core/JsonSpec.ts @@ -15,10 +15,10 @@ import { } from "../../lib/Core/Json"; import Terria from "../../lib/Models/Terria"; -describe("Json", function() { - beforeEach(function() {}); +describe("Json", function () { + beforeEach(function () {}); - it("isJsonObject", function() { + it("isJsonObject", function () { expect(isJsonObject(null)).toBeFalsy(); expect(isJsonObject(1)).toBeFalsy(); expect(isJsonObject("stringy")).toBeFalsy(); @@ -54,7 +54,7 @@ describe("Json", function() { ).toBeTruthy(); }); - it("isJsonBoolean", function() { + it("isJsonBoolean", function () { expect(isJsonBoolean(null)).toBeFalsy(); expect(isJsonBoolean(1)).toBeFalsy(); expect(isJsonBoolean("stringy")).toBeFalsy(); @@ -68,7 +68,7 @@ describe("Json", function() { expect(isJsonBoolean(new Terria())).toBeFalsy(); }); - it("isJsonNumber", function() { + it("isJsonNumber", function () { expect(isJsonNumber(null)).toBeFalsy(); expect(isJsonNumber(1)).toBeTruthy(); expect(isJsonNumber("stringy")).toBeFalsy(); @@ -82,7 +82,7 @@ describe("Json", function() { expect(isJsonNumber(new Terria())).toBeFalsy(); }); - it("isJsonString", function() { + it("isJsonString", function () { expect(isJsonString(null)).toBeFalsy(); expect(isJsonString(1)).toBeFalsy(); expect(isJsonString("stringy")).toBeTruthy(); @@ -96,7 +96,7 @@ describe("Json", function() { expect(isJsonString(new Terria())).toBeFalsy(); }); - it("isJsonValue", function() { + it("isJsonValue", function () { expect(isJsonValue(null)).toBeTruthy(); expect(isJsonValue(1)).toBeTruthy(); expect(isJsonValue("stringy")).toBeTruthy(); @@ -132,7 +132,7 @@ describe("Json", function() { ).toBeTruthy(); }); - it("isJsonArray", function() { + it("isJsonArray", function () { expect(isJsonArray(null)).toBeFalsy(); expect(isJsonArray(1)).toBeFalsy(); expect(isJsonArray("stringy")).toBeFalsy(); @@ -165,7 +165,7 @@ describe("Json", function() { ).toBeTruthy(); }); - it("isJsonStringArray", function() { + it("isJsonStringArray", function () { expect(isJsonStringArray(null)).toBeFalsy(); expect(isJsonStringArray(1)).toBeFalsy(); expect(isJsonStringArray("stringy")).toBeFalsy(); @@ -181,7 +181,7 @@ describe("Json", function() { ).toBeFalsy(); }); - it("isJsonNumberArray", function() { + it("isJsonNumberArray", function () { expect(isJsonNumberArray(null)).toBeFalsy(); expect(isJsonNumberArray(1)).toBeFalsy(); expect(isJsonNumberArray("stringy")).toBeFalsy(); @@ -195,7 +195,7 @@ describe("Json", function() { expect(isJsonNumberArray([3, 1, [3, 4]])).toBeFalsy(); }); - it("isJsonObjectArray", function() { + it("isJsonObjectArray", function () { expect(isJsonObjectArray(null)).toBeFalsy(); expect(isJsonObjectArray(1)).toBeFalsy(); expect(isJsonObjectArray("stringy")).toBeFalsy(); @@ -216,7 +216,7 @@ describe("Json", function() { expect(isJsonObjectArray([3, 1, [3, 4]])).toBeFalsy(); }); - it("assertObject", function() { + it("assertObject", function () { expect(() => assertObject(null)).toThrow(); expect(() => assertObject(1)).toThrow(); expect(() => assertObject("stringy")).toThrow(); @@ -239,7 +239,7 @@ describe("Json", function() { }) ).toThrow(); }); - it("assertString", function() { + it("assertString", function () { expect(() => assertString(null)).toThrow(); expect(() => assertString(1)).toThrow(); expect(() => assertString("stringy")).toBeTruthy(); @@ -262,7 +262,7 @@ describe("Json", function() { }) ).toThrow(); }); - it("assertNumber", function() { + it("assertNumber", function () { expect(() => assertNumber(null)).toThrow(); expect(() => assertNumber(1)).toBeTruthy(); expect(() => assertNumber("stringy")).toThrow(); @@ -285,7 +285,7 @@ describe("Json", function() { }) ).toThrow(); }); - it("assertArray", function() { + it("assertArray", function () { expect(() => assertArray(null)).toThrow(); expect(() => assertArray(1)).toThrow(); expect(() => assertArray("stringy")).toThrow(); diff --git a/test/Core/ResultSpec.ts b/test/Core/ResultSpec.ts index 5d089074f3e..1c48f706510 100644 --- a/test/Core/ResultSpec.ts +++ b/test/Core/ResultSpec.ts @@ -1,10 +1,10 @@ import TerriaError from "../../lib/Core/TerriaError"; import Result from "../../lib/Core/Result"; -describe("Result", function() { - beforeEach(function() {}); +describe("Result", function () { + beforeEach(function () {}); - it("Can create Result without error", function() { + it("Can create Result without error", function () { const result = new Result("what"); expect(result.ignoreError()).toBe("what"); @@ -36,7 +36,7 @@ describe("Result", function() { expect(caughtError2).toBeFalsy(); }); - it("Can create Result with error", function() { + it("Can create Result with error", function () { const result = new Result( "what", new TerriaError({ message: "some error" }) diff --git a/test/Core/TerriaErrorSpec.ts b/test/Core/TerriaErrorSpec.ts index a50dbf42d0b..84927e07f87 100644 --- a/test/Core/TerriaErrorSpec.ts +++ b/test/Core/TerriaErrorSpec.ts @@ -1,15 +1,15 @@ import TerriaError, { TerriaErrorSeverity } from "../../lib/Core/TerriaError"; -describe("TerriaError", function() { - beforeEach(function() {}); +describe("TerriaError", function () { + beforeEach(function () {}); - it("Can create TerriaError", function() { + it("Can create TerriaError", function () { const test = new TerriaError({ message: "some message" }); expect(test.message).toBe("some message"); expect(test.title).toBe("core.terriaError.defaultTitle"); }); - it("Can create TerriaError from string", function() { + it("Can create TerriaError from string", function () { const test = TerriaError.from("What what"); expect(test.message).toBe("What what"); expect(test.title).toBe("core.terriaError.defaultTitle"); @@ -19,7 +19,7 @@ describe("TerriaError", function() { expect(test2.title).toBe("Some title"); }); - it("Can create TerriaError from Error", function() { + it("Can create TerriaError from Error", function () { const error = new Error("What what what"); const test = TerriaError.from(error); expect(test.message).toBe("What what what"); @@ -33,7 +33,7 @@ describe("TerriaError", function() { expect(test2.originalError?.[0]).toBe(error2); }); - it("Can create TerriaError from Object", function() { + it("Can create TerriaError from Object", function () { const error = new Object("some stringy object"); const test = TerriaError.from(error); expect(test.message).toBe("some stringy object"); @@ -41,7 +41,7 @@ describe("TerriaError", function() { expect(test.originalError?.[0]).toEqual(new Error("some stringy object")); }); - it("Can create chain of TerriaErrors and combine them", function() { + it("Can create chain of TerriaErrors and combine them", function () { const error = new TerriaError({ message: "some message" }); const test = TerriaError.from(error); expect(test).toBe(error); @@ -84,7 +84,7 @@ describe("TerriaError", function() { expect(combined?.flatten().length).toBe(7); }); - it("Combines correctly with overrideRaiseToUser", function() { + it("Combines correctly with overrideRaiseToUser", function () { const errorTrueOverride = new TerriaError({ message: "some message", overrideRaiseToUser: true, @@ -125,7 +125,7 @@ describe("TerriaError", function() { expect(combinedFalse?.overrideRaiseToUser).toBe(false); }); - it("Combines correctly with overrideRaiseToUser and severity", function() { + it("Combines correctly with overrideRaiseToUser and severity", function () { const error = new TerriaError({ message: "some message", overrideRaiseToUser: true, @@ -158,7 +158,7 @@ describe("TerriaError", function() { expect(combined?.shouldRaiseToUser).toBeTruthy(); }); - it("Correctly uses importance and highestImportanceError", function() { + it("Correctly uses importance and highestImportanceError", function () { const error = new TerriaError({ message: "some message" }); const test = TerriaError.from(error); expect(test).toBe(error); @@ -173,7 +173,7 @@ describe("TerriaError", function() { expect(test3.highestImportanceError).toBe(test3); }); - it("If one error is shown to user in tree, it will flag all errors in tree", function() { + it("If one error is shown to user in tree, it will flag all errors in tree", function () { const error = new TerriaError({ message: "some message" }); const test = TerriaError.from(error); expect(test).toBe(error); diff --git a/test/Core/addedByUserSpec.ts b/test/Core/addedByUserSpec.ts index 9747fc5090c..aca010a8890 100644 --- a/test/Core/addedByUserSpec.ts +++ b/test/Core/addedByUserSpec.ts @@ -4,13 +4,13 @@ import WebMapServiceCatalogGroup from "../../lib/Models/Catalog/Ows/WebMapServic import WebMapServiceCatalogItem from "../../lib/Models/Catalog/Ows/WebMapServiceCatalogItem"; import CommonStrata from "../../lib/Models/Definition/CommonStrata"; -describe("addedByUser", function() { +describe("addedByUser", function () { let terria: Terria; let item: WebMapServiceCatalogItem; let group: WebMapServiceCatalogGroup; let groupC: WebMapServiceCatalogGroup; - beforeEach(function() { + beforeEach(function () { terria = new Terria(); item = new WebMapServiceCatalogItem("A", terria); @@ -22,33 +22,33 @@ describe("addedByUser", function() { terria.addModel(groupC); }); - it("returns true for user added models", function() { + it("returns true for user added models", function () { terria.catalog.userAddedDataGroup.add(CommonStrata.user, item); terria.catalog.userAddedDataGroup.add(CommonStrata.user, group); expect(addedByUser(item)).toBe(true); expect(addedByUser(group)).toBe(true); }); - it("returns true for nested user added models", function() { + it("returns true for nested user added models", function () { terria.catalog.userAddedDataGroup.add(CommonStrata.user, group); group.add(CommonStrata.user, item); expect(addedByUser(item)).toBe(true); expect(addedByUser(group)).toBe(true); }); - it("returns false for non user added models", function() { + it("returns false for non user added models", function () { expect(addedByUser(item)).toBe(false); expect(addedByUser(group)).toBe(false); }); - it("does not blow stack when catalog groups ended up nested in itself", function() { + it("does not blow stack when catalog groups ended up nested in itself", function () { group.add(CommonStrata.definition, group); expect(() => addedByUser(group)).not.toThrow(); expect(addedByUser(item)).toBe(false); expect(addedByUser(group)).toBe(false); }); - it("does not blow stack when catalog groups ended up nested in each other", function() { + it("does not blow stack when catalog groups ended up nested in each other", function () { terria.catalog.userAddedDataGroup.add(CommonStrata.user, group); terria.catalog.userAddedDataGroup.add(CommonStrata.user, groupC); groupC.add(CommonStrata.definition, group); diff --git a/test/Core/arrayProductSpec.js b/test/Core/arrayProductSpec.js index 79573b190bb..41ba075604a 100644 --- a/test/Core/arrayProductSpec.js +++ b/test/Core/arrayProductSpec.js @@ -2,26 +2,26 @@ var arrayProduct = require("../../lib/Core/arrayProduct"); -describe("arrayProduct", function() { - it("works with one array of one", function() { +describe("arrayProduct", function () { + it("works with one array of one", function () { var test = [[1]]; var target = [[1]]; expect(arrayProduct(test)).toEqual(target); }); - it("works with several arrays of one", function() { + it("works with several arrays of one", function () { var test = [[1], [2], [3], [4]]; var target = [[1, 2, 3, 4]]; expect(arrayProduct(test)).toEqual(target); }); - it("works with one array of two", function() { + it("works with one array of two", function () { var test = [[1, 10]]; var target = [[1], [10]]; expect(arrayProduct(test)).toEqual(target); }); - it("works with an array of two in first place", function() { + it("works with an array of two in first place", function () { var test = [[1, 10], [2], [3], [4]]; var target = [ [1, 2, 3, 4], @@ -30,7 +30,7 @@ describe("arrayProduct", function() { expect(arrayProduct(test)).toEqual(target); }); - it("works with arrays of two in the first two places", function() { + it("works with arrays of two in the first two places", function () { var test = [[1, 10], [2, 20], [3], [4]]; // Actually the order of the subarrays is not important. var target = [ @@ -42,7 +42,7 @@ describe("arrayProduct", function() { expect(arrayProduct(test)).toEqual(target); }); - it("works with arrays of two in the first three places", function() { + it("works with arrays of two in the first three places", function () { var test = [[1, 10], [2, 20], [3, 30], [4]]; // Actually the order of the subarrays is not important. var target = [ @@ -58,7 +58,7 @@ describe("arrayProduct", function() { expect(arrayProduct(test)).toEqual(target); }); - it("works with an array of two in the final place", function() { + it("works with an array of two in the final place", function () { var test = [[1], [2], [3], [4, 40]]; var target = [ [1, 2, 3, 4], @@ -67,7 +67,7 @@ describe("arrayProduct", function() { expect(arrayProduct(test)).toEqual(target); }); - it("works with an array of two in the final two places", function() { + it("works with an array of two in the final two places", function () { var test = [[1], [2], [3, 30], [4, 40]]; var target = [ [1, 2, 3, 4], diff --git a/test/Core/combineDataSpec.js b/test/Core/combineDataSpec.js index f777ce60f1f..6c995a680ba 100644 --- a/test/Core/combineDataSpec.js +++ b/test/Core/combineDataSpec.js @@ -2,8 +2,8 @@ var combineData = require("../../lib/Core/combineData"); -describe("combineData", function() { - it("works with one array", function() { +describe("combineData", function () { + it("works with one array", function () { var data1 = [ [1, 5], [3, 7], @@ -14,7 +14,7 @@ describe("combineData", function() { expect(combined).toEqual(data1); }); - it("works with two sorted numerical arrays", function() { + it("works with two sorted numerical arrays", function () { var data1 = [ [1, 5], [3, 7], @@ -40,7 +40,7 @@ describe("combineData", function() { expect(combined).toEqual(target); }); - it("works with two unsorted numerical arrays", function() { + it("works with two unsorted numerical arrays", function () { var data1 = [ [1, 5], [6, 10], @@ -66,7 +66,7 @@ describe("combineData", function() { expect(combined).toEqual(target); }); - it("works with two date arrays", function() { + it("works with two date arrays", function () { var data1 = [ [new Date("2015-03-01"), 5], [new Date("2015-03-02"), 7], @@ -86,7 +86,7 @@ describe("combineData", function() { expect(combined).toEqual(target); }); - it("works with three sorted numerical arrays", function() { + it("works with three sorted numerical arrays", function () { var data1 = [ [1, 5], [3, 7], diff --git a/test/Core/combineFiltersSpec.js b/test/Core/combineFiltersSpec.js index 6200d9330a0..8636b59a947 100644 --- a/test/Core/combineFiltersSpec.js +++ b/test/Core/combineFiltersSpec.js @@ -2,50 +2,50 @@ var combineFilters = require("../../lib/Core/combineFilters"); -describe("combineFilters", function() { - describe("basic tests:", function() { - it("returns true when all filters true", function() { +describe("combineFilters", function () { + describe("basic tests:", function () { + it("returns true when all filters true", function () { expect( combineFilters([ - function() { + function () { return true; }, - function() { + function () { return true; }, - function() { + function () { return true; } ])() ).toBe(true); }); - it("returns false when all functions false", function() { + it("returns false when all functions false", function () { expect( combineFilters([ - function() { + function () { return false; }, - function() { + function () { return false; }, - function() { + function () { return false; } ])() ).toBe(false); }); - it("returns false when one functions false", function() { + it("returns false when one functions false", function () { expect( combineFilters([ - function() { + function () { return false; }, - function() { + function () { return true; }, - function() { + function () { return false; } ])() @@ -53,7 +53,7 @@ describe("combineFilters", function() { }); }); - it("passes arguments through to all filters", function() { + it("passes arguments through to all filters", function () { var filters = [ jasmine.createSpy("spy1").and.returnValue(true), jasmine.createSpy("spy2").and.returnValue(true), @@ -62,12 +62,12 @@ describe("combineFilters", function() { combineFilters(filters)("I", "am", "an", "elephant"); - filters.forEach(function(filterSpy) { + filters.forEach(function (filterSpy) { expect(filterSpy).toHaveBeenCalledWith("I", "am", "an", "elephant"); }); }); - it("stops on first false result", function() { + it("stops on first false result", function () { var filters = [ jasmine.createSpy("spy1").and.returnValue(true), jasmine.createSpy("spy2").and.returnValue(false), @@ -81,8 +81,8 @@ describe("combineFilters", function() { expect(filters[2]).not.toHaveBeenCalled(); }); - describe("only calls a function once", function() { - it("if it's specified multiple times", function() { + describe("only calls a function once", function () { + it("if it's specified multiple times", function () { var spy1 = jasmine.createSpy("spy1").and.returnValue(true); var filters = [ @@ -96,7 +96,7 @@ describe("combineFilters", function() { expect(spy1.calls.count()).toBe(1); }); - it("if combineFilters() is called on the result of another combineFilters() call", function() { + it("if combineFilters() is called on the result of another combineFilters() call", function () { var spy1 = jasmine.createSpy("spy1").and.returnValue(true); var combined = combineFilters([spy1, spy1]); diff --git a/test/Core/formatNumberForLocaleSpec.js b/test/Core/formatNumberForLocaleSpec.js index ee4acc1fa41..06564fdbe82 100644 --- a/test/Core/formatNumberForLocaleSpec.js +++ b/test/Core/formatNumberForLocaleSpec.js @@ -3,8 +3,8 @@ var formatNumberForLocale = require("../../lib/Core/formatNumberForLocale"); -describe("formatNumberForLocale", function() { - describe("with Intl", function() { +describe("formatNumberForLocale", function () { + describe("with Intl", function () { var separator = ","; var decimalPoint = "."; if (typeof Intl === "object" && typeof Intl.NumberFormat === "function") { @@ -12,21 +12,21 @@ describe("formatNumberForLocale", function() { decimalPoint = Intl.NumberFormat().format(0.5)[1]; } - it("returns strings for small integers", function() { + it("returns strings for small integers", function () { expect(formatNumberForLocale(0)).toBe("0"); expect(formatNumberForLocale(1)).toBe("1"); expect(formatNumberForLocale(123)).toBe("123"); expect(formatNumberForLocale(-10)).toBe("-10"); }); - it("handles non-numeric input", function() { + it("handles non-numeric input", function () { expect(formatNumberForLocale(null)).toBe(""); expect(formatNumberForLocale(undefined)).toBe(""); expect(formatNumberForLocale("NA")).toBe("NA"); expect(formatNumberForLocale("-")).toBe("-"); }); - it("does not truncate decimals or group 000s by default", function() { + it("does not truncate decimals or group 000s by default", function () { expect(formatNumberForLocale(6789123.4567891)).toBe( "6789123" + decimalPoint + "4567891" ); @@ -35,7 +35,7 @@ describe("formatNumberForLocale", function() { ); }); - it("maximumFractionDigits works with rounding", function() { + it("maximumFractionDigits works with rounding", function () { expect(formatNumberForLocale(-1.66, { maximumFractionDigits: 0 })).toBe( "-2" ); @@ -53,7 +53,7 @@ describe("formatNumberForLocale", function() { ).toContain("-10"); }); - it("minimumFractionDigits works", function() { + it("minimumFractionDigits works", function () { expect(formatNumberForLocale(3, { minimumFractionDigits: 2 })).toBe( "3" + decimalPoint + "00" ); @@ -74,7 +74,7 @@ describe("formatNumberForLocale", function() { ).toContain("-10.0"); // Accept -10.0 or -10.00 (but not 10). }); - it("useGrouping works", function() { + it("useGrouping works", function () { expect(formatNumberForLocale(-6789123.4, { useGrouping: true })).toBe( "-6" + separator + "789" + separator + "123" + decimalPoint + "4" ); @@ -86,7 +86,7 @@ describe("formatNumberForLocale", function() { ).toBe("-6" + separator + "789" + separator + "123" + decimalPoint + "4"); }); - it("style percent works", function() { + it("style percent works", function () { expect(formatNumberForLocale(0.934, { style: "percent" })).toBe( "93" + decimalPoint + "4%" ); @@ -105,10 +105,10 @@ describe("formatNumberForLocale", function() { }); }); - describe("without Intl", function() { + describe("without Intl", function () { var realIntl; - beforeEach(function() { + beforeEach(function () { if (typeof Intl === "object") { realIntl = Intl; // eslint-disable-next-line no-global-assign @@ -116,7 +116,7 @@ describe("formatNumberForLocale", function() { } }); - afterEach(function() { + afterEach(function () { if (realIntl) { // eslint-disable-next-line no-global-assign Intl = realIntl; @@ -125,26 +125,26 @@ describe("formatNumberForLocale", function() { var separator = ","; - it("returns strings for small integers", function() { + it("returns strings for small integers", function () { expect(formatNumberForLocale(0)).toBe("0"); expect(formatNumberForLocale(1)).toBe("1"); expect(formatNumberForLocale(123)).toBe("123"); expect(formatNumberForLocale(-10)).toBe("-10"); }); - it("handles non-numeric input", function() { + it("handles non-numeric input", function () { expect(formatNumberForLocale(null)).toBe(""); expect(formatNumberForLocale(undefined)).toBe(""); expect(formatNumberForLocale("NA")).toBe("NA"); expect(formatNumberForLocale("-")).toBe("-"); }); - it("does not truncate decimals or group 000s by default", function() { + it("does not truncate decimals or group 000s by default", function () { expect(formatNumberForLocale(6789123.4567891)).toBe("6789123.4567891"); expect(formatNumberForLocale(-6789123.4567891)).toBe("-6789123.4567891"); }); - it("maximumFractionDigits works with rounding", function() { + it("maximumFractionDigits works with rounding", function () { expect( formatNumberForLocale(-6789123.45678901, { maximumFractionDigits: 2 }) ).toBe("-6789123.46"); @@ -159,7 +159,7 @@ describe("formatNumberForLocale", function() { ).toContain("-10"); }); - it("useGrouping works", function() { + it("useGrouping works", function () { expect(formatNumberForLocale(-6789123.4, { useGrouping: true })).toBe( "-6" + separator + "789" + separator + "123.4" ); @@ -171,7 +171,7 @@ describe("formatNumberForLocale", function() { ).toBe("-6" + separator + "789" + separator + "123.4"); }); - it("style percent works", function() { + it("style percent works", function () { expect(formatNumberForLocale(0.934, { style: "percent" })).toBe("93.4%"); expect(formatNumberForLocale(1.555555, { style: "percent" })).toBe( "155.5555%" diff --git a/test/Core/getPathSpec.ts b/test/Core/getPathSpec.ts index a8eac8079dd..e0c35ea15b7 100644 --- a/test/Core/getPathSpec.ts +++ b/test/Core/getPathSpec.ts @@ -4,13 +4,13 @@ import CommonStrata from "../../lib/Models/Definition/CommonStrata"; import Terria from "../../lib/Models/Terria"; import WebMapServiceCatalogItem from "../../lib/Models/Catalog/Ows/WebMapServiceCatalogItem"; -describe("getPath", function() { +describe("getPath", function () { let terria: Terria; let item: WebMapServiceCatalogItem; let group1: CatalogGroup; let group2: CatalogGroup; - beforeEach(function() { + beforeEach(function () { terria = new Terria(); item = new WebMapServiceCatalogItem("A", terria); @@ -25,13 +25,13 @@ describe("getPath", function() { terria.catalog.group.add(CommonStrata.definition, group2); }); - it("returns correct path with default / separator", function() { + it("returns correct path with default / separator", function () { expect(getPath(group2)).toBe("G2"); expect(getPath(group1)).toBe("G2/G1"); expect(getPath(item)).toBe("G2/G1/A"); }); - it("returns correct path with custom separator", function() { + it("returns correct path with custom separator", function () { expect(getPath(group2, " -> ")).toBe("G2"); expect(getPath(group1, " -> ")).toBe("G2 -> G1"); expect(getPath(item, " -> ")).toBe("G2 -> G1 -> A"); diff --git a/test/Core/markdownToHtmlSpec.ts b/test/Core/markdownToHtmlSpec.ts index 5e3b9f16ea2..57d03723a42 100644 --- a/test/Core/markdownToHtmlSpec.ts +++ b/test/Core/markdownToHtmlSpec.ts @@ -3,16 +3,16 @@ import markdownToHtml from "../../lib/Core/markdownToHtml"; import Terria from "../../lib/Models/Terria"; import CustomComponent from "../../lib/ReactViews/Custom/CustomComponent"; -describe("markdownToHtml", function() { +describe("markdownToHtml", function () { let terria: Terria; - beforeEach(function() { + beforeEach(function () { terria = new Terria({ baseUrl: "./" }); registerCustomComponentTypes(); }); - it("correctly injects terria's custom tooltips", function() { + it("correctly injects terria's custom tooltips", function () { const spatialDataTerm = { term: "spatial data", content: "data that is spatial, spluh" diff --git a/test/Core/sortedIndicesSpec.js b/test/Core/sortedIndicesSpec.js index 0e00047ac0e..1ae03c4a591 100644 --- a/test/Core/sortedIndicesSpec.js +++ b/test/Core/sortedIndicesSpec.js @@ -2,8 +2,8 @@ var sortedIndices = require("../../lib/Core/sortedIndices"); -describe("sortedIndices", function() { - it("works", function() { +describe("sortedIndices", function () { + it("works", function () { var data = ["c", "a", "b", "d"]; var indices = sortedIndices(data); expect(indices).toEqual([1, 2, 0, 3]); diff --git a/test/Core/uriHelpersSpec.ts b/test/Core/uriHelpersSpec.ts index cccbd771fcd..ee7ecfa2940 100644 --- a/test/Core/uriHelpersSpec.ts +++ b/test/Core/uriHelpersSpec.ts @@ -1,9 +1,9 @@ import { getUriWithoutPath } from "../../lib/Core/uriHelpers"; import URI from "urijs"; -describe("uriHelpers", function() { - describe("getUriWithoutPath", function() { - it("returns a uri with protocol, hostname", function() { +describe("uriHelpers", function () { + describe("getUriWithoutPath", function () { + it("returns a uri with protocol, hostname", function () { const uriWithPath = new URI( "https://a.fully.qualified.domain/and-a-path" ); @@ -11,7 +11,7 @@ describe("uriHelpers", function() { "https://a.fully.qualified.domain/" ); }); - it("returns a uri with protocol, hostname and port", function() { + it("returns a uri with protocol, hostname and port", function () { const uriWithPortAndPath = new URI( "https://a.fully.qualified.domain:4242/and-a-path" ); diff --git a/test/Data/RegionMappingJsonSpec.js b/test/Data/RegionMappingJsonSpec.js index e26d0490062..6690977b248 100644 --- a/test/Data/RegionMappingJsonSpec.js +++ b/test/Data/RegionMappingJsonSpec.js @@ -1,10 +1,10 @@ -"use strict"; - -// tests will not build if this require statement is not valid -var RegionMappingJson = require("../../wwwroot/data/regionMapping.json"); - -describe("RegionMappingJson", function() { - it("is valid JSON", function() { - expect(RegionMappingJson).toEqual(RegionMappingJson); - }); -}); +"use strict"; + +// tests will not build if this require statement is not valid +var RegionMappingJson = require("../../wwwroot/data/regionMapping.json"); + +describe("RegionMappingJson", function () { + it("is valid JSON", function () { + expect(RegionMappingJson).toEqual(RegionMappingJson); + }); +}); diff --git a/test/Language/languageHelpersSpec.ts b/test/Language/languageHelpersSpec.ts index b3bcbb40670..94b927d0eb6 100644 --- a/test/Language/languageHelpersSpec.ts +++ b/test/Language/languageHelpersSpec.ts @@ -4,11 +4,11 @@ import { applyTranslationIfExists } from "../../lib/Language/languageHelpers"; -describe("applyTranslationIfExists", function() { +describe("applyTranslationIfExists", function () { let i18n: i18n; const translationKey = "testKey"; - beforeEach(async function() { + beforeEach(async function () { i18n = i18next.createInstance({ lng: "spec", debug: false, @@ -23,11 +23,11 @@ describe("applyTranslationIfExists", function() { await i18n.init(); }); - it("returns an unprefixed string without changing it", function() { + it("returns an unprefixed string without changing it", function () { expect(applyTranslationIfExists(translationKey, i18n)).toBe(translationKey); }); - it("returns a translation of a prefixed string", function() { + it("returns a translation of a prefixed string", function () { expect( applyTranslationIfExists(TRANSLATE_KEY_PREFIX + translationKey, i18n) ).toBe("testString"); diff --git a/test/Map/DragPointsSpec.js b/test/Map/DragPointsSpec.js index b6d198a9672..15be75a9959 100644 --- a/test/Map/DragPointsSpec.js +++ b/test/Map/DragPointsSpec.js @@ -5,16 +5,16 @@ var Terria = require("../../lib/Models/Terria"); var ViewerMode = require("../../lib/Models/ViewerMode"); var Entity = require("terriajs-cesium/Source/DataSources/Entity.js").default; -describe("DragPoints", function() { +describe("DragPoints", function () { var terria; - beforeEach(function() { + beforeEach(function () { terria = new Terria({ baseUrl: "./" }); }); - it("will change helper to right type if viewerMode changes to Leaflet", function() { + it("will change helper to right type if viewerMode changes to Leaflet", function () { terria.viewerMode = ViewerMode.CesiumTerrain; var dragPointsHelper = new DragPoints(terria); expect(dragPointsHelper._dragPointsHelper.type).toEqual("Cesium"); @@ -23,7 +23,7 @@ describe("DragPoints", function() { expect(dragPointsHelper._dragPointsHelper.type).toEqual("Leaflet"); }); - it("will change helper to right type if viewerMode changes to Cesium", function() { + it("will change helper to right type if viewerMode changes to Cesium", function () { terria.viewerMode = ViewerMode.Leaflet; var dragPointsHelper = new DragPoints(terria); expect(dragPointsHelper._dragPointsHelper.type).toEqual("Leaflet"); @@ -32,7 +32,7 @@ describe("DragPoints", function() { expect(dragPointsHelper._dragPointsHelper.type).toEqual("Cesium"); }); - it("will inform new helper about existing entities if helper is changed to Leaflet", function() { + it("will inform new helper about existing entities if helper is changed to Leaflet", function () { var entityArray = [ new Entity({ name: "first test entity" }), new Entity({ name: "second test entity" }) @@ -52,7 +52,7 @@ describe("DragPoints", function() { ); }); - it("will inform new helper about existing entities if helper is changed to Cesium", function() { + it("will inform new helper about existing entities if helper is changed to Cesium", function () { var entityArray = [ new Entity({ name: "first test entity" }), new Entity({ name: "second test entity" }) diff --git a/test/Map/EarthGravityModel1996Spec.js b/test/Map/EarthGravityModel1996Spec.js index 718fe6d247c..4ea69eefe64 100644 --- a/test/Map/EarthGravityModel1996Spec.js +++ b/test/Map/EarthGravityModel1996Spec.js @@ -7,10 +7,10 @@ var describeIfSupported = EarthGravityModel1996.isSupported() ? describe : xdescribe; -describeIfSupported("EarthGravityModel1996", function() { +describeIfSupported("EarthGravityModel1996", function () { var egm96; - beforeAll(function() { + beforeAll(function () { egm96 = new EarthGravityModel1996( require("file-loader!../../wwwroot/data/WW15MGH.DAC") ); @@ -18,40 +18,19 @@ describeIfSupported("EarthGravityModel1996", function() { // NGA calculator is here: http://earth-info.nga.mil/GandG/wgs84/gravitymod/egm96/intpt.html - it("produces a single result consistent with NGA calculator", function(done) { - egm96.getHeight(0.0, 0.0).then(function(height) { + it("produces a single result consistent with NGA calculator", function (done) { + egm96.getHeight(0.0, 0.0).then(function (height) { expect(height).toBe(17.16); done(); }); }); - it("produces multiple results consistent with NGA calculator", function(done) { + it("produces multiple results consistent with NGA calculator", function (done) { var testData = [ // longitude, latitude, expected height - 0.0, - 89.74, - 13.92, - 180.0, - 89.74, - 13.49, - -180.0, - 89.74, - 13.49, - 0.0, - -89.74, - -29.55, - 180.0, - -89.74, - -30.11, - -180.0, - -89.74, - -30.11, - 0.15, - 0.0, - 17.12, - -0.15, - 0.0, - 17.17 + 0.0, 89.74, 13.92, 180.0, 89.74, 13.49, -180.0, 89.74, 13.49, 0.0, -89.74, + -29.55, 180.0, -89.74, -30.11, -180.0, -89.74, -30.11, 0.15, 0.0, 17.12, + -0.15, 0.0, 17.17 ]; var cartographics = []; @@ -63,7 +42,7 @@ describeIfSupported("EarthGravityModel1996", function() { ); } - egm96.getHeights(cartographics).then(function() { + egm96.getHeights(cartographics).then(function () { for (var i = 0; i < cartographics.length; ++i) { expect( Math.abs(cartographics[i].height - testData[i * 3 + 2]) @@ -73,15 +52,15 @@ describeIfSupported("EarthGravityModel1996", function() { }); }); - it("works at the north pole", function(done) { - egm96.getHeight(0.0, Math.PI).then(function(height) { + it("works at the north pole", function (done) { + egm96.getHeight(0.0, Math.PI).then(function (height) { expect(height).toBe(13.61); done(); }); }); - it("works at the south pole", function(done) { - egm96.getHeight(0.0, -Math.PI).then(function(height) { + it("works at the south pole", function (done) { + egm96.getHeight(0.0, -Math.PI).then(function (height) { expect(height).toBe(-29.53); done(); }); diff --git a/test/Map/PickedFeaturesSpec.ts b/test/Map/PickedFeaturesSpec.ts index fa4a48fd22b..0c383a89519 100644 --- a/test/Map/PickedFeaturesSpec.ts +++ b/test/Map/PickedFeaturesSpec.ts @@ -6,8 +6,8 @@ import Feature from "../../lib/Models/Feature"; import Terria from "../../lib/Models/Terria"; import SimpleCatalogItem from "../Helpers/SimpleCatalogItem"; -describe("featureBelongsToCatalogItem", function() { - it("returns true if the `_catalogItem` property matches", function() { +describe("featureBelongsToCatalogItem", function () { + it("returns true if the `_catalogItem` property matches", function () { const item = new SimpleCatalogItem(undefined, new Terria()); const feature = new Feature({}); expect(featureBelongsToCatalogItem(feature, item)).toBe(false); @@ -15,7 +15,7 @@ describe("featureBelongsToCatalogItem", function() { expect(featureBelongsToCatalogItem(feature, item)).toBe(true); }); - it("returns true if mapItems has the dataSource that owns the feature", function() { + it("returns true if mapItems has the dataSource that owns the feature", function () { const item = new SimpleCatalogItem(undefined, new Terria()); const feature = new Feature({}); const dataSource = new CustomDataSource("testData"); @@ -25,7 +25,7 @@ describe("featureBelongsToCatalogItem", function() { expect(featureBelongsToCatalogItem(feature, item)).toBe(true); }); - it("returns true if mapItems has a matching imagery provider", function() { + it("returns true if mapItems has a matching imagery provider", function () { const item = new SimpleCatalogItem(undefined, new Terria()); const feature = new Feature({}); const imageryProvider = new WebMapServiceImageryProvider({ diff --git a/test/Map/ReprojectSpec.js b/test/Map/ReprojectSpec.js index 2d50b3834d3..e71f70b69d2 100644 --- a/test/Map/ReprojectSpec.js +++ b/test/Map/ReprojectSpec.js @@ -2,8 +2,8 @@ var Reproject = require("../../lib/Map/Vector/Reproject"); -describe("Reproject", function() { - it("function crsStringToCode translates CRS strings to Proj4 codes", function() { +describe("Reproject", function () { + it("function crsStringToCode translates CRS strings to Proj4 codes", function () { expect(Reproject.crsStringToCode("EPSG:4326")).toEqual("EPSG:4326"); expect(Reproject.crsStringToCode("EPSG:1234")).toEqual("EPSG:1234"); expect(Reproject.crsStringToCode("urn:ogc:def:crs:EPSG:6.6:4326")).toEqual( @@ -21,13 +21,13 @@ describe("Reproject", function() { expect(Reproject.crsStringToCode("CRS84")).toEqual("EPSG:4326"); }); - it("function willNeedReprojecting predicts correctly if something needs reprojecting", function() { + it("function willNeedReprojecting predicts correctly if something needs reprojecting", function () { expect(Reproject.willNeedReprojecting("EPSG:4326")).toBe(false); expect(Reproject.willNeedReprojecting("CRS84")).toBe(true); expect(Reproject.willNeedReprojecting("EPSG:1234")).toBe(true); }); - it("function reprojectPoint reprojects a point from one CRS to another", function() { + it("function reprojectPoint reprojects a point from one CRS to another", function () { var result = Reproject.reprojectPoint( [319180, 6399862], "EPSG:3006", diff --git a/test/Map/StyledHtmlSpec.tsx b/test/Map/StyledHtmlSpec.tsx index 1cd3cee964c..b458f8784e5 100644 --- a/test/Map/StyledHtmlSpec.tsx +++ b/test/Map/StyledHtmlSpec.tsx @@ -10,13 +10,13 @@ import { StyledHtmlRaw } from "../../lib/ReactViews/Map/Panels/HelpPanel/StyledH import { TooltipWithButtonLauncher } from "../../lib/ReactViews/Generic/TooltipWrapper"; import registerCustomComponentTypes from "../../lib/ReactViews/Custom/registerCustomComponentTypes"; -describe("StyledHtml", function() { +describe("StyledHtml", function () { let terria: Terria; let viewState: ViewState; let testRenderer: any; - beforeEach(function() { + beforeEach(function () { terria = new Terria({ baseUrl: "./" }); @@ -27,8 +27,8 @@ describe("StyledHtml", function() { }); }); - describe("with basic props", function() { - it("mounts without problems", function() { + describe("with basic props", function () { + it("mounts without problems", function () { act(() => { testRenderer = create( @@ -43,7 +43,7 @@ describe("StyledHtml", function() { const renderer = testRenderer.root; expect(renderer).toBeDefined(); }); - it("creates TooltipWithButtonLauncher when there are terms to inject", function() { + it("creates TooltipWithButtonLauncher when there are terms to inject", function () { registerCustomComponentTypes(); const spatialDataTerm = { term: "spatial data", diff --git a/test/Map/TableColumnSpec.js b/test/Map/TableColumnSpec.js index 3dcfe6cf94e..eb3d1981b7e 100644 --- a/test/Map/TableColumnSpec.js +++ b/test/Map/TableColumnSpec.js @@ -5,8 +5,8 @@ var TableColumn = require("../../lib/Map/TableColumn"); var VarType = require("../../lib/Map/VarType"); var VarSubType = require("../../lib/Map/VarSubType"); -describe("TableColumn", function() { - it("can make a new object and detect scalar type", function() { +describe("TableColumn", function () { + it("can make a new object and detect scalar type", function () { // Use a copy of data to make the column, because knockout adds stuff to data. // Also, test a "slice" of the column's values, to remove knockout stuff. var data = [1, 3, 4]; @@ -16,7 +16,7 @@ describe("TableColumn", function() { expect(tableColumn.type).toEqual(VarType.SCALAR); }); - it("treats null, NA and hyphens as null in numeric data", function() { + it("treats null, NA and hyphens as null in numeric data", function () { var data = [1, "NA", 4, "-", null, 3]; var tableColumn = new TableColumn("x", data.slice()); expect(tableColumn.name).toEqual("x"); @@ -24,7 +24,7 @@ describe("TableColumn", function() { expect(tableColumn.type).toEqual(VarType.SCALAR); }); - it("replaces null values before generating numericalValues", function() { + it("replaces null values before generating numericalValues", function () { var data = [0, 0, 0]; var tableColumn = new TableColumn("x", data.slice(), { replaceWithNullValues: [0] @@ -32,7 +32,7 @@ describe("TableColumn", function() { expect(tableColumn.numericalValues.slice()).toEqual([]); }); - it("treats hyphens, blanks and NA as strings in string data", function() { + it("treats hyphens, blanks and NA as strings in string data", function () { var data = ["%", "-", "!", "NA", ""]; var tableColumn = new TableColumn("x", data.slice()); expect(tableColumn.name).toEqual("x"); @@ -40,7 +40,7 @@ describe("TableColumn", function() { expect(tableColumn.type).toEqual(VarType.ENUM); }); - it("provides a null index for a null value in string data", function() { + it("provides a null index for a null value in string data", function () { var data = ["small", "medium", null, "big"]; var tableColumn = new TableColumn("size", data.slice()); expect(tableColumn.type).toEqual(VarType.ENUM); @@ -49,32 +49,32 @@ describe("TableColumn", function() { expect(tableColumn.values[2]).toBe(null); }); - it("ignores missing values when calculating min/max", function() { + it("ignores missing values when calculating min/max", function () { var data = [130.3, 131.3, null, 133.3]; var tableColumn = new TableColumn("lat", data.slice()); expect(tableColumn.maximumValue).toBe(133.3); expect(tableColumn.minimumValue).toBe(130.3); }); - it("can detect latitude type", function() { + it("can detect latitude type", function () { var data = [30.3, 31.3, 33.3]; var tableColumn = new TableColumn("lat", data.slice()); expect(tableColumn.type).toEqual(VarType.LAT); }); - it("can detect longitude type", function() { + it("can detect longitude type", function () { var data = [130.3, 131.3, 133.3]; var tableColumn = new TableColumn("lon", data.slice()); expect(tableColumn.type).toEqual(VarType.LON); }); - it("can detect address type", function() { + it("can detect address type", function () { var data = ["7 London Circuit Canberra City ACT 2601"]; var tableColumn = new TableColumn("address", data); expect(tableColumn.type).toEqual(VarType.ADDR); }); - it("can detect time type from yyyy-mm-dd", function() { + it("can detect time type from yyyy-mm-dd", function () { // Dates in this format are interpreted as midnight _UTC_ on the date. var data = ["2016-01-03", null, "2016-01-04"]; var tableColumn = new TableColumn("date", data.slice()); @@ -85,7 +85,7 @@ describe("TableColumn", function() { expect(tableColumn.dates[0]).toEqual(expected); }); - it("can detect time type from dd-mm-yyyy", function() { + it("can detect time type from dd-mm-yyyy", function () { // Dates in this format are interpreted as midnight _local time_ on the date. var data = ["31-12-2015", "04-01-2016", null]; var tableColumn = new TableColumn("date", data.slice()); @@ -96,7 +96,7 @@ describe("TableColumn", function() { expect(tableColumn.dates[1].getFullYear()).toEqual(2016); }); - it("can detect time type from mm-dd-yyyy", function() { + it("can detect time type from mm-dd-yyyy", function () { // Dates in this format are interpreted as midnight _local time_ on the date. var data = ["12-31-2015", "01-04-2016", null]; var tableColumn = new TableColumn("date", data.slice()); @@ -107,7 +107,7 @@ describe("TableColumn", function() { expect(tableColumn.dates[1].getFullYear()).toEqual(2016); }); - it("can detect ISO8601 UTC time type", function() { + it("can detect ISO8601 UTC time type", function () { var data = ["2016-01-03T12:15:59.1234Z", null, "2016-01-03T12:25:00Z"]; var tableColumn = new TableColumn("date", data.slice()); expect(tableColumn.type).toEqual(VarType.TIME); @@ -121,7 +121,7 @@ describe("TableColumn", function() { expect(tableColumn.dates[0].getUTCMilliseconds()).toEqual(123); }); - it("can detect time type and year subtype from yyyy", function() { + it("can detect time type and year subtype from yyyy", function () { var data = ["2010", "2011", "2012", null, "2013"]; var tableColumn = new TableColumn("date", data.slice()); expect(tableColumn.type).toEqual(VarType.TIME); @@ -134,7 +134,7 @@ describe("TableColumn", function() { expect(tableColumn.dates[0].getFullYear()).toEqual(2010); }); - it("can detect time type from yyyy-mm", function() { + it("can detect time type from yyyy-mm", function () { // Dates in this format are interpreted as midnight _UTC_ on the date. var data = ["2010-01", "2010-02", "2010-03", null, "2010-04"]; var tableColumn = new TableColumn("date", data.slice()); @@ -158,7 +158,7 @@ describe("TableColumn", function() { // expect(tableColumn.dates[1].getSeconds()).toEqual(45); // }); - it("can detect time type from yyyy-mm-dd h:mm", function() { + it("can detect time type from yyyy-mm-dd h:mm", function () { var data = ["2010-02-12 12:34", "2010-02-13 1:23", null]; var tableColumn = new TableColumn("date", data.slice()); expect(tableColumn.type).toEqual(VarType.TIME); @@ -171,7 +171,7 @@ describe("TableColumn", function() { expect(tableColumn.dates[1].getSeconds()).toEqual(0); }); - it("can detect time type from yyyy-mm-dd h:mm:ss", function() { + it("can detect time type from yyyy-mm-dd h:mm:ss", function () { var data = ["2010-02-12 12:34:56", "2010-02-13 1:23:45", null]; var tableColumn = new TableColumn("date", data.slice()); expect(tableColumn.type).toEqual(VarType.TIME); @@ -184,7 +184,7 @@ describe("TableColumn", function() { expect(tableColumn.dates[1].getSeconds()).toEqual(45); }); - it("can detect time type from yyyy-Qx", function() { + it("can detect time type from yyyy-Qx", function () { var data = ["2010-Q1", "2010-Q2", "2010-Q3", null, "2010-Q4"]; var tableColumn = new TableColumn("date", data.slice()); expect(tableColumn.type).toEqual(VarType.TIME); @@ -194,14 +194,14 @@ describe("TableColumn", function() { expect(tableColumn.dates[1].getFullYear()).toEqual(2010); }); - it("can detect year subtype using year title", function() { + it("can detect year subtype using year title", function () { var data = ["1066", "1776", "1788", "1901", null, "2220"]; var tableColumn = new TableColumn("year", data.slice()); expect(tableColumn.type).toEqual(VarType.TIME); expect(tableColumn.subtype).toEqual(VarSubType.YEAR); }); - it("detects years from numerical data in a column named time", function() { + it("detects years from numerical data in a column named time", function () { var data = [730, 1230, null, 130]; var tableColumn = new TableColumn("date", data.slice()); expect(tableColumn.type).toEqual(VarType.TIME); @@ -209,7 +209,7 @@ describe("TableColumn", function() { expect(tableColumn.values.slice()).toEqual(data); }); - it("can handle missing times", function() { + it("can handle missing times", function () { var data = ["2016-01-03T12:15:59.1234Z", "-", "2016-01-04T12:25:00Z", null]; var tableColumn = new TableColumn("date", data.slice()); expect(tableColumn.type).toEqual(VarType.TIME); @@ -218,44 +218,44 @@ describe("TableColumn", function() { expect(tableColumn.dates[2].getUTCDate()).toEqual(4); }); - it("treats numerical data >= 9999 in a column named time as scalars", function() { + it("treats numerical data >= 9999 in a column named time as scalars", function () { var data = [9999, 1230, null, 130]; var tableColumn = new TableColumn("date", data.slice()); expect(tableColumn.type).toEqual(VarType.SCALAR); expect(tableColumn.values.slice()).toEqual(data); }); - it("can detect tag type from ", function() { + it("can detect tag type from ", function () { var data = ['', '']; var tableColumn = new TableColumn("image", data.slice()); expect(tableColumn.type).toEqual(VarType.TAG); }); - it("can detect tag type from
      ", function() { + it("can detect tag type from
      ", function () { var data = ["
      ", "
      "]; var tableColumn = new TableColumn("bar", data); expect(tableColumn.type).toEqual(VarType.TAG); }); - it("can detect tag type from
      ", function() { + it("can detect tag type from
      ", function () { var data = ["
      Foo
      ", "
      Bar
      "]; var tableColumn = new TableColumn("foo", data); expect(tableColumn.type).toEqual(VarType.TAG); }); - it("does not use tag type for <<...>>", function() { + it("does not use tag type for <<...>>", function () { var data = ["<>", "<>"]; var tableColumn = new TableColumn("who", data); expect(tableColumn.type).toEqual(VarType.ENUM); }); - it("does not use tag type for ", function() { + it("does not use tag type for ", function () { var data = ["", ""]; var tableColumn = new TableColumn("fee", data); expect(tableColumn.type).toEqual(VarType.ENUM); }); - it("can sum three columns from array", function() { + it("can sum three columns from array", function () { var tableColumns = [ new TableColumn("one", [10, 1]), new TableColumn("two", [25, 2.5]), @@ -266,7 +266,7 @@ describe("TableColumn", function() { expect(result).toEqual(target); }); - it("can sum three columns as arguments", function() { + it("can sum three columns as arguments", function () { var result = TableColumn.sumValues( new TableColumn("one", [10, 1]), new TableColumn("two", [25, 2.5]), @@ -276,7 +276,7 @@ describe("TableColumn", function() { expect(result).toEqual(target); }); - it("can divide two columns' values", function() { + it("can divide two columns' values", function () { var result = TableColumn.divideValues( new TableColumn("num", [40, 3, 8]), new TableColumn("den", [10, 6, 0]), diff --git a/test/Map/TableStructureSpec.js b/test/Map/TableStructureSpec.js index e538ae07af3..e9a89678263 100644 --- a/test/Map/TableStructureSpec.js +++ b/test/Map/TableStructureSpec.js @@ -12,8 +12,8 @@ if (typeof Intl === "object" && typeof Intl.NumberFormat === "function") { decimalPoint = Intl.NumberFormat().format(0.5)[1]; } -describe("TableStructure", function() { - it("can read from json object", function() { +describe("TableStructure", function () { + it("can read from json object", function () { // Use a copy of data to make the column, because knockout adds stuff to data. // Also, test a "slice" of the column's values, to remove knockout stuff. var data = [ @@ -30,7 +30,7 @@ describe("TableStructure", function() { expect(tableStructure.columns[1].values.slice()).toEqual([5, 8, -3]); }); - it("can read from csv string", function() { + it("can read from csv string", function () { var csvString = "x,y\r\n1,5\r\n3,8\r\n4,-3\r\n"; var tableStructure = TableStructure.fromCsv(csvString); expect(tableStructure.columns.length).toEqual(2); @@ -40,7 +40,7 @@ describe("TableStructure", function() { expect(tableStructure.columns[1].values.slice()).toEqual([5, 8, -3]); }); - it("can read from json object into existing structure", function() { + it("can read from json object into existing structure", function () { var data = [ ["x", "y"], [1, 5], @@ -56,7 +56,7 @@ describe("TableStructure", function() { expect(tableStructure.columns[1].values.slice()).toEqual([5, 8, -3]); }); - it("can read from csv string into existing structure", function() { + it("can read from csv string into existing structure", function () { var csvString = "x,y\r\n1,5\r\n3,8\r\n4,-3\r\n"; var tableStructure = new TableStructure(); tableStructure.loadFromCsv(csvString); @@ -67,7 +67,7 @@ describe("TableStructure", function() { expect(tableStructure.columns[1].values.slice()).toEqual([5, 8, -3]); }); - it("can convert to ArrayOfColumns", function() { + it("can convert to ArrayOfColumns", function () { var data = [ ["x", "y"], [1, 5], @@ -81,7 +81,7 @@ describe("TableStructure", function() { expect(columns[1]).toEqual(["y", 5, 8, -3]); }); - it("can convert to ArrayOfRows", function() { + it("can convert to ArrayOfRows", function () { var data = [ ["x", "y"], ["1", "5"], @@ -94,7 +94,7 @@ describe("TableStructure", function() { expect(rows).toEqual(data); }); - it("can convert to ArrayOfRows with formatting", function() { + it("can convert to ArrayOfRows with formatting", function () { var data = [ ["x", "y"], [1.678, 9.883], @@ -123,7 +123,7 @@ describe("TableStructure", function() { expect(rows).toEqual(target); }); - it("can convert to ArrayOfRows with formatting and quotes if containing commas", function() { + it("can convert to ArrayOfRows with formatting and quotes if containing commas", function () { var data = [ ["x", "y"], [1.678, 9.883], @@ -152,7 +152,7 @@ describe("TableStructure", function() { expect(rows).toEqual(target); }); - it("can convert to ArrayOfRows with formatting and quotes if containing quotes", function() { + it("can convert to ArrayOfRows with formatting and quotes if containing quotes", function () { var data = [ ["x", "y"], [1.678, 9.883], @@ -181,7 +181,7 @@ describe("TableStructure", function() { expect(rows).toEqual(target); }); - it("can convert to csv", function() { + it("can convert to csv", function () { var data = [ ["lat", "y"], [1.678, 9.883], @@ -194,7 +194,7 @@ describe("TableStructure", function() { expect(csvString).toEqual("lat,y\n1.678,9.883\n54321,12345\n4,-3"); }); - it("can create a data URI", function() { + it("can create a data URI", function () { var data = [ ["lat", "y"], [1.6, -9.8] @@ -211,7 +211,7 @@ describe("TableStructure", function() { expect(uri).toEqual("data:attachment/csv,lat%2Cy%0A1.6%2C-9.8"); }); - it("can convert to row objects", function() { + it("can convert to row objects", function () { var data = [ ["lat", "y"], [1, 5.12345], @@ -228,7 +228,7 @@ describe("TableStructure", function() { expect(rowObjects[2]).toEqual({ lat: 4, y: "-3" }); }); - it("can convert to string and number row objects", function() { + it("can convert to string and number row objects", function () { var data = [ ["x", "y"], [1.678, -9.883], @@ -258,7 +258,7 @@ describe("TableStructure", function() { }); }); - it("can convert to point arrays", function() { + it("can convert to point arrays", function () { var data = [ ["a", "b", "c"], [1, 2, 3], @@ -280,7 +280,7 @@ describe("TableStructure", function() { ]); }); - it("can get column names", function() { + it("can get column names", function () { var data = [ ["lat", "y"], [1, 5], @@ -291,7 +291,7 @@ describe("TableStructure", function() { expect(tableStructure.getColumnNames()).toEqual(["lat", "y"]); }); - it("can get column with name", function() { + it("can get column with name", function () { var data = [ ["x", "y"], [1, 5], @@ -305,7 +305,7 @@ describe("TableStructure", function() { expect(tableStructure.getColumnWithName("z")).toBeUndefined(); }); - it("sets column types", function() { + it("sets column types", function () { var data = [ ["x", "lat"], [1, 5], @@ -319,7 +319,7 @@ describe("TableStructure", function() { expect(tableStructure.columnsByType[VarType.LAT][0].name).toEqual("lat"); }); - it("counts the final row of CSV files with no trailing linefeed(s)", function() { + it("counts the final row of CSV files with no trailing linefeed(s)", function () { var csvString = "postcode,value\n0800,1\n0885,2"; var tableStructure = new TableStructure(); tableStructure.loadFromCsv(csvString); @@ -340,7 +340,7 @@ describe("TableStructure", function() { expect(tableStructure.columns[1].values.length).toEqual(2); }); - it("ignores final blank rows of CSV files", function() { + it("ignores final blank rows of CSV files", function () { var csvString = "postcode,value\n0800,1,\n0885,2,"; var tableStructure = new TableStructure(); tableStructure.loadFromCsv(csvString); @@ -360,7 +360,7 @@ describe("TableStructure", function() { expect(tableStructure.columns[1].values.length).toEqual(2); }); - it("can read csv string where column names are numbers", function() { + it("can read csv string where column names are numbers", function () { var csvString = "1,2\n9,8\n7,6"; var tableStructure = new TableStructure(); tableStructure.loadFromCsv(csvString); @@ -368,7 +368,7 @@ describe("TableStructure", function() { expect(tableStructure.columns[1].name).toEqual("2"); }); - it("can describe rows with dates with and without timezones nicely", function() { + it("can describe rows with dates with and without timezones nicely", function () { var csvString = "date,value\r\n2015-10-15T12:34:56,5\r\n2015-10-02T12:34:56Z,8\r\n2015-11-03\r\n"; var tableStructure = TableStructure.fromCsv(csvString); @@ -383,7 +383,7 @@ describe("TableStructure", function() { expect(htmls[2]).toContain(">2015-11-03<"); // No time is added when only the date is given. }); - it("can describe rows with formatting", function() { + it("can describe rows with formatting", function () { var data = [ ["x", "y"], [1.678, 5.123], @@ -409,7 +409,7 @@ describe("TableStructure", function() { expect(htmls[1]).toContain("12" + separator + "345"); }); - it("can tell if it has address data", function() { + it("can tell if it has address data", function () { var data = [ ["x", "y", "Address"], [1.678, 5.123, "25 Gozzard Street, GUNGAHLIN TOWN CENTRE, ACT"], @@ -447,7 +447,7 @@ describe("TableStructure", function() { expect(tableStructureNoAddr.hasAddress).toBe(false); }); - it("can get feature id mapping", function() { + it("can get feature id mapping", function () { var data = [ ["year", "id", "lat", "lon"], [1970, "A", 16.8, 5.2], @@ -463,7 +463,7 @@ describe("TableStructure", function() { expect(map["B"]).toEqual([1, 3]); }); - it("can handle idColumnNames = []", function() { + it("can handle idColumnNames = []", function () { var data = [ ["year", "id", "lat", "lon"], [1970, "A", 16.8, 5.2], @@ -478,7 +478,7 @@ describe("TableStructure", function() { expect(map).toEqual({}); }); - it("can append a table", function() { + it("can append a table", function () { var data = [ ["year", "id", "lat", "lon"], [1970, "A", 16.8, 5.2], @@ -498,7 +498,7 @@ describe("TableStructure", function() { expect(table1.columns[1].values.slice()).toEqual(["A", "B", "C", "D"]); }); - it("can append part of a table", function() { + it("can append part of a table", function () { var data = [ ["year", "id", "lat", "lon"], [1970, "A", 16.8, 5.2], @@ -520,7 +520,7 @@ describe("TableStructure", function() { expect(table1.columns[1].values.slice()).toEqual(["A", "B", "D", "F"]); }); - it("can replace rows", function() { + it("can replace rows", function () { var data = [ ["year", "id", "lat", "lon"], [1970, "A", 16.8, 5.2], @@ -540,7 +540,7 @@ describe("TableStructure", function() { expect(table1.columns[1].values.slice()).toEqual(["A", "C"]); }); - it("can merge tables with dates", function() { + it("can merge tables with dates", function () { var data = [ ["year", "id", "lat", "lon"], [1970, "A", 16.8, 5.2], @@ -569,7 +569,7 @@ describe("TableStructure", function() { expect(table1.columns[1].color).toEqual("blue"); }); - it("can merge tables without dates", function() { + it("can merge tables without dates", function () { var data = [ ["id", "lat", "lon"], ["A", 16.8, 5.2], @@ -590,7 +590,7 @@ describe("TableStructure", function() { expect(table1.columns[1].values.slice()).toEqual([12, 16.2, 15]); }); - it("can add columns", function() { + it("can add columns", function () { var dataNoAddr = [ ["x", "y"], [1.678, 5.123], @@ -617,7 +617,7 @@ describe("TableStructure", function() { expect(tableStructure.columns[VarType.LON].values).toBe(longValues); }); - it("can sort columns", function() { + it("can sort columns", function () { var data = [ ["x", "y", "z"], [3, 5, "a"], @@ -627,14 +627,10 @@ describe("TableStructure", function() { var tableStructure = TableStructure.fromJson(data); tableStructure.sortBy(tableStructure.getColumnWithName("x")); expect(tableStructure.getColumnWithName("x").values.slice()).toEqual([ - 1, - 3, - 4 + 1, 3, 4 ]); expect(tableStructure.getColumnWithName("y").values.slice()).toEqual([ - 8, - 5, - -3 + 8, 5, -3 ]); expect(tableStructure.getColumnWithName("z").values.slice()).toEqual([ "c", @@ -643,35 +639,27 @@ describe("TableStructure", function() { ]); tableStructure.sortBy(tableStructure.getColumnWithName("z")); expect(tableStructure.getColumnWithName("x").values.slice()).toEqual([ - 3, - 4, - 1 + 3, 4, 1 ]); expect(tableStructure.getColumnWithName("y").values.slice()).toEqual([ - 5, - -3, - 8 + 5, -3, 8 ]); expect(tableStructure.getColumnWithName("z").values.slice()).toEqual([ "a", "b", "c" ]); - tableStructure.sortBy(tableStructure.getColumnWithName("x"), function( - a, - b - ) { - return b - a; - }); // descending + tableStructure.sortBy( + tableStructure.getColumnWithName("x"), + function (a, b) { + return b - a; + } + ); // descending expect(tableStructure.getColumnWithName("x").values.slice()).toEqual([ - 4, - 3, - 1 + 4, 3, 1 ]); expect(tableStructure.getColumnWithName("y").values.slice()).toEqual([ - -3, - 5, - 8 + -3, 5, 8 ]); expect(tableStructure.getColumnWithName("z").values.slice()).toEqual([ "b", @@ -680,7 +668,7 @@ describe("TableStructure", function() { ]); }); - it("can sort columns by date, even with null dates", function() { + it("can sort columns by date, even with null dates", function () { // Note the last date occurs before the first, but a string compare would disagree. var data = [ ["date", "v"], @@ -699,7 +687,7 @@ describe("TableStructure", function() { ]); }); - it("can calculate finish dates", function() { + it("can calculate finish dates", function () { var data = [["date"], ["2016-01-03T12:15:00Z"], ["2016-01-03T12:15:30Z"]]; var tableStructure = TableStructure.fromJson(data); tableStructure.setActiveTimeColumn(); @@ -709,7 +697,7 @@ describe("TableStructure", function() { ]); }); - it("can calculate sub-second finish dates", function() { + it("can calculate sub-second finish dates", function () { var data = [ ["date"], ["2016-01-03T12:15:00Z"], @@ -725,7 +713,7 @@ describe("TableStructure", function() { ]); }); - it("supports displayDuration", function() { + it("supports displayDuration", function () { var data = [["date"], ["2016-01-03"], ["2016-01-04"], ["2016-01-05"]]; var sevenDaysInMinutes = 60 * 24 * 7; var tableStructure = new TableStructure("test", { @@ -747,7 +735,7 @@ describe("TableStructure", function() { expect(durationInSeconds).toEqual(sevenDaysInMinutes * 60); }); - it("uses start_date and end_date", function() { + it("uses start_date and end_date", function () { // Note these end dates overlap (12:15:00-12:16:10, 12:15:30-12:16:40). var data = [ ["start_date", "end_date"], @@ -762,7 +750,7 @@ describe("TableStructure", function() { ]); }); - it("calculates id-specific date periods", function() { + it("calculates id-specific date periods", function () { // A and B both have two two-day observations, but they are interspersed. // Without an id column, they would have one-day observations. var data = [ @@ -784,7 +772,7 @@ describe("TableStructure", function() { ]); }); - it("can add feature rows at start and end dates", function() { + it("can add feature rows at start and end dates", function () { var data = [ ["date", "id", "value"], ["2016-01-01T00:00:00Z", "A", 10], @@ -794,10 +782,11 @@ describe("TableStructure", function() { ]; var tableStructure = TableStructure.fromJson(data); tableStructure.idColumnNames = ["id"]; - tableStructure.columns = tableStructure.getColumnsWithFeatureRowsAtStartAndEndDates( - "date", - "value" - ); + tableStructure.columns = + tableStructure.getColumnsWithFeatureRowsAtStartAndEndDates( + "date", + "value" + ); tableStructure.setActiveTimeColumn(); expect(tableStructure.columns[1].values.slice()).toEqual([ "A", @@ -825,9 +814,9 @@ describe("TableStructure", function() { ]); }); - describe("Time slider initial time as specified by initialTimeSource ", function() { + describe("Time slider initial time as specified by initialTimeSource ", function () { // Future developers take note: some of these tests will stop working sometime after August 3015. - it('should be start if "start" set', function() { + it('should be start if "start" set', function () { var tableStructure = new TableStructure("test", { initialTimeSource: "start" }); @@ -849,7 +838,7 @@ describe("TableStructure", function() { expect(currentTime).toBe("2013-08-07"); }); - it('should be current time if "present" set', function() { + it('should be current time if "present" set', function () { var tableStructure = new TableStructure("test", { initialTimeSource: "present" }); @@ -873,7 +862,7 @@ describe("TableStructure", function() { expect(currentTime).toBe(dateNow); }); - it('should be last time if "end" set', function() { + it('should be last time if "end" set', function () { var tableStructure = new TableStructure("test", { initialTimeSource: "end", finalEndJulianDate: JulianDate.fromIso8601("2015-08-09T00:00:00.00Z") @@ -891,7 +880,7 @@ describe("TableStructure", function() { expect(currentTime).toBe("2015-08-09"); }); - it("should be set to date specified if date is specified", function() { + it("should be set to date specified if date is specified", function () { var tableStructure = new TableStructure("test", { initialTimeSource: "2015-08-08T00:00:00.00Z" }); @@ -913,7 +902,7 @@ describe("TableStructure", function() { expect(currentTime).toBe("2015-08-08"); }); - it("should throw if a rubbish string is specified", function() { + it("should throw if a rubbish string is specified", function () { var tableStructure = new TableStructure("test", { initialTimeSource: "2015z08-08" }); @@ -924,7 +913,7 @@ describe("TableStructure", function() { ]; TableStructure.fromJson(data, tableStructure); - expect(function() { + expect(function () { tableStructure.setActiveTimeColumn(); }).toThrow(); }); diff --git a/test/Map/featureDataToGeoJsonSpec.ts b/test/Map/featureDataToGeoJsonSpec.ts index 60d063f3da1..aad9d2b296b 100644 --- a/test/Map/featureDataToGeoJsonSpec.ts +++ b/test/Map/featureDataToGeoJsonSpec.ts @@ -2,9 +2,9 @@ import featureDataToGeoJson from "../../lib/Map/PickedFeatures/featureDataToGeoJson"; -describe("featureDataToGeoJson", function() { - describe("Esri polygon", function() { - it("with a single outer ring", function() { +describe("featureDataToGeoJson", function () { + describe("Esri polygon", function () { + it("with a single outer ring", function () { const esri = { geometryType: "esriGeometryPolygon", geometry: { @@ -39,7 +39,7 @@ describe("featureDataToGeoJson", function() { }); }); - it("with one outer ring and two holes", function() { + it("with one outer ring and two holes", function () { const esri = { geometryType: "esriGeometryPolygon", geometry: { @@ -102,7 +102,7 @@ describe("featureDataToGeoJson", function() { }); }); - it("with two outer rings", function() { + it("with two outer rings", function () { const esri = { geometryType: "esriGeometryPolygon", geometry: { @@ -155,7 +155,7 @@ describe("featureDataToGeoJson", function() { }); }); - it("with two outer rings and a hole in each", function() { + it("with two outer rings and a hole in each", function () { const esri = { geometryType: "esriGeometryPolygon", geometry: { @@ -236,7 +236,7 @@ describe("featureDataToGeoJson", function() { }); }); - it("with no outer rings, assumes winding order is reversed and uses holes as outer rings", function() { + it("with no outer rings, assumes winding order is reversed and uses holes as outer rings", function () { const esri = { geometryType: "esriGeometryPolygon", geometry: { diff --git a/test/Map/unionRectanglesSpec.js b/test/Map/unionRectanglesSpec.js index fb9d04c5b9d..bda7c0188a8 100644 --- a/test/Map/unionRectanglesSpec.js +++ b/test/Map/unionRectanglesSpec.js @@ -4,20 +4,20 @@ var Rectangle = require("terriajs-cesium/Source/Core/Rectangle").default; var unionRectangles = require("../../lib/Map/Vector/unionRectangles"); -describe("unionRectangles", function() { - it("throws when first is not provided", function() { - expect(function() { +describe("unionRectangles", function () { + it("throws when first is not provided", function () { + expect(function () { unionRectangles(undefined, Rectangle.MAX_VALUE); }).toThrow(); }); - it("throws when second is not provided", function() { - expect(function() { + it("throws when second is not provided", function () { + expect(function () { unionRectangles(Rectangle.MAX_VALUE, undefined); }).toThrow(); }); - it("correctly computes a union", function() { + it("correctly computes a union", function () { var rectangle1 = new Rectangle(1.0, 1.1, 1.2, 1.3); var rectangle2 = new Rectangle(-1.0, 0.9, 1.3, 1.4); expect(unionRectangles(rectangle1, rectangle2)).toEqual( @@ -25,7 +25,7 @@ describe("unionRectangles", function() { ); }); - it("uses the result parameter if provided", function() { + it("uses the result parameter if provided", function () { var rectangle1 = new Rectangle(1.0, 1.1, 1.2, 1.3); var rectangle2 = new Rectangle(-1.0, 0.9, 1.3, 1.4); var output = new Rectangle(); diff --git a/test/ModelMixins/CatalogMemberMixinSpec.ts b/test/ModelMixins/CatalogMemberMixinSpec.ts index 2c1022a8b80..a686d6ede7c 100644 --- a/test/ModelMixins/CatalogMemberMixinSpec.ts +++ b/test/ModelMixins/CatalogMemberMixinSpec.ts @@ -12,12 +12,12 @@ import EnumDimensionTraits, { DimensionOptionTraits } from "../../lib/Traits/TraitsClasses/DimensionTraits"; -describe("CatalogMemberMixin", function() { - describe(" - infoWithoutSources", function() { +describe("CatalogMemberMixin", function () { + describe(" - infoWithoutSources", function () { let terria: Terria; let wmsItem: WebMapServiceCatalogItem; - beforeEach(async function() { + beforeEach(async function () { terria = new Terria({ baseUrl: "./" }); @@ -33,7 +33,7 @@ describe("CatalogMemberMixin", function() { await wmsItem.loadMetadata(); }); - it(" - infoAsObject exists", function() { + it(" - infoAsObject exists", function () { expect(wmsItem.info.length).toBe(6); expect(Object.keys(wmsItem.infoAsObject).length).toBe(6); expect(wmsItem.infoAsObject.WebMapServiceLayerDescription).toBe( @@ -41,8 +41,8 @@ describe("CatalogMemberMixin", function() { ); }); - it(" - info section can contain both content and contentAsObject ", function() { - wmsItem.info.forEach(i => { + it(" - info section can contain both content and contentAsObject ", function () { + wmsItem.info.forEach((i) => { // Something a bit funky with i18n strings not yet being transformed if (i.name === "models.webMapServiceCatalogItem.dataDescription") { expect(i.content).toBeUndefined(); @@ -54,7 +54,7 @@ describe("CatalogMemberMixin", function() { }); }); - it(" - info and infoWithoutSources can produce different results", function() { + it(" - info and infoWithoutSources can produce different results", function () { expect(wmsItem.info.length).toBe(6); if (wmsItem._sourceInfoItemNames !== undefined) { expect(wmsItem._sourceInfoItemNames.length).toBe(1); @@ -62,13 +62,13 @@ describe("CatalogMemberMixin", function() { expect(wmsItem.infoWithoutSources.length).toBe(5); }); - it(" - has metadataUrls", function() { + it(" - has metadataUrls", function () { expect(wmsItem.metadataUrls.length).toBe(1); expect(wmsItem.metadataUrls[0].url).toBe("http://examplemetadata.com"); expect(wmsItem.metadataUrls[0].title).toBeUndefined(); }); - it(" - can add metadataUrls title", function() { + it(" - can add metadataUrls title", function () { runInAction(() => { updateModelFromJson(wmsItem, "definition", { metadataUrls: [{ title: "Some Title" }] @@ -81,11 +81,11 @@ describe("CatalogMemberMixin", function() { }); }); - describe(" - AsyncLoaders work as expected", function() { + describe(" - AsyncLoaders work as expected", function () { let terria: Terria; let wmsItem: WebMapServiceCatalogItem; - beforeEach(async function() { + beforeEach(async function () { terria = new Terria({ baseUrl: "./" }); @@ -110,7 +110,7 @@ describe("CatalogMemberMixin", function() { let dispose: IReactionDisposer | undefined; // Wait for isLoadingMapItems to be true -> then check isLoadingMetadata and isLoading - await new Promise(resolve => { + await new Promise((resolve) => { dispose = reaction( () => wmsItem.isLoadingMapItems, () => { @@ -159,7 +159,7 @@ describe("CatalogMemberMixin", function() { expect(wmsItem.layers).toBe("init-layers"); const result = wmsItem.selectableDimensions.find( - dim => dim.id === "modelDimensions" + (dim) => dim.id === "modelDimensions" ); expect(result).toBeDefined(); diff --git a/test/ModelMixins/Cesium3dTilesMixinSpec.ts b/test/ModelMixins/Cesium3dTilesMixinSpec.ts index 48a6623f6de..af307acf62d 100644 --- a/test/ModelMixins/Cesium3dTilesMixinSpec.ts +++ b/test/ModelMixins/Cesium3dTilesMixinSpec.ts @@ -9,12 +9,12 @@ import Matrix4 from "terriajs-cesium/Source/Core/Matrix4"; import Cesium3DTileset from "terriajs-cesium/Source/Scene/Cesium3DTileset"; import CommonStrata from "../../lib/Models/Definition/CommonStrata"; -describe("Cesium3dTilesMixin", function() { +describe("Cesium3dTilesMixin", function () { let terria: Terria; let cesium3dTiles: Cesium3DTilesCatalogItem; - describe(" - loadClippingPlanes", function() { - beforeEach(async function() { + describe(" - loadClippingPlanes", function () { + beforeEach(async function () { terria = new Terria({ baseUrl: "./" }); @@ -37,22 +37,8 @@ describe("Cesium3dTilesMixin", function() { } ], modelMatrix: [ - 1.0, - 0.0, - 0.0, - 0.0, - 0.0, - 1.0, - 0.0, - 0.0, - 0.0, - 0.0, - 1.0, - 0.0, - 0.0, - 0.0, - 0.0, - 1.0 + 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, + 0.0, 0.0, 1.0 ], edgeColor: "blue", edgeWidth: 12.0 @@ -62,17 +48,17 @@ describe("Cesium3dTilesMixin", function() { await cesium3dTiles.loadMetadata(); }); - it(" - Property ClippingPlaneCollection to be defined", function() { + it(" - Property ClippingPlaneCollection to be defined", function () { expect(cesium3dTiles.clippingPlaneCollection).toBeDefined(); }); - it(" - Property ClippingPlaneCollection is a ClippingPlaneCollection type", function() { + it(" - Property ClippingPlaneCollection is a ClippingPlaneCollection type", function () { expect( cesium3dTiles.clippingPlaneCollection instanceof ClippingPlaneCollection ).toBe(true); }); - it(" - ClippingPlaneCollection must contain a ClippingPlane", function() { + it(" - ClippingPlaneCollection must contain a ClippingPlane", function () { const cpc = cesium3dTiles.clippingPlaneCollection; expect( cpc?.contains( @@ -81,35 +67,35 @@ describe("Cesium3dTilesMixin", function() { ).toBe(true); }); - it(" - ClippingPlaneCollection must be enabled", function() { + it(" - ClippingPlaneCollection must be enabled", function () { const cpc = cesium3dTiles.clippingPlaneCollection; expect(cpc?.enabled).toBe(true); }); - it(" - ClippingPlaneCollection unionClippingRegions must be false", function() { + it(" - ClippingPlaneCollection unionClippingRegions must be false", function () { const cpc = cesium3dTiles.clippingPlaneCollection; expect(cpc?.unionClippingRegions).toBe(false); }); - it(" - ClippingPlaneCollection edgeWidth must be 12.0", function() { + it(" - ClippingPlaneCollection edgeWidth must be 12.0", function () { const cpc = cesium3dTiles.clippingPlaneCollection; expect(cpc?.edgeWidth).toBe(12.0); }); - it(" - ClippingPlaneCollection edgeColor must be Blue", function() { + it(" - ClippingPlaneCollection edgeColor must be Blue", function () { const cpc = cesium3dTiles.clippingPlaneCollection; expect(cpc?.edgeColor.equals(Color.BLUE)).toBe(true); }); - it(" - ClippingPlaneCollection must content Identity Matrix as modelMatrix", function() { + it(" - ClippingPlaneCollection must content Identity Matrix as modelMatrix", function () { const cpc = cesium3dTiles.clippingPlaneCollection; expect(cpc?.modelMatrix.equals(Matrix4.IDENTITY)).toBe(true); }); }); - describe("tileset style", function() { - describe("show expression from filter", function() { - it("casts the property to number", async function() { + describe("tileset style", function () { + describe("show expression from filter", function () { + it("casts the property to number", async function () { terria = new Terria({ baseUrl: "./" }); diff --git a/test/ModelMixins/ClippingPlanesMixinSpec.ts b/test/ModelMixins/ClippingPlanesMixinSpec.ts index 87ec23726bf..37ca2f5590f 100644 --- a/test/ModelMixins/ClippingPlanesMixinSpec.ts +++ b/test/ModelMixins/ClippingPlanesMixinSpec.ts @@ -1,4 +1,4 @@ -describe("ClippingPlanesMixin", function() { +describe("ClippingPlanesMixin", function () { it("can create a simple clipping planes collection"); it("can create a box clipping planes collection"); it("can create box clipping plane graphics"); diff --git a/test/ModelMixins/DiffableMixinSpec.ts b/test/ModelMixins/DiffableMixinSpec.ts index 288edebbf25..7eed0b4f0a8 100644 --- a/test/ModelMixins/DiffableMixinSpec.ts +++ b/test/ModelMixins/DiffableMixinSpec.ts @@ -9,11 +9,11 @@ import CatalogMemberTraits from "../../lib/Traits/TraitsClasses/CatalogMemberTra import DiffableTraits from "../../lib/Traits/TraitsClasses/DiffableTraits"; import SplitterTraits from "../../lib/Traits/TraitsClasses/SplitterTraits"; -describe("DiffableMixin", function() { - describe("canFilterTimeByFeature", function() { +describe("DiffableMixin", function () { + describe("canFilterTimeByFeature", function () { it( "returns false if the item is showing diff", - action(function() { + action(function () { const testItem = new TestDiffableItem("test", new Terria()); testItem.setTrait(CommonStrata.user, "isShowingDiff", true); expect(testItem.canFilterTimeByFeature).toBe(false); @@ -22,7 +22,7 @@ describe("DiffableMixin", function() { it( "otherwise returns the inherited value", - action(function() { + action(function () { const testItem = new TestDiffableItem("test", new Terria()); testItem.setTrait(CommonStrata.user, "isShowingDiff", false); testItem.setTrait(CommonStrata.user, "timeFilterPropertyName", "foo"); diff --git a/test/ModelMixins/DiscretelyTimeVaryingMixinSpec.ts b/test/ModelMixins/DiscretelyTimeVaryingMixinSpec.ts index d492514f7a1..18502dddbb0 100644 --- a/test/ModelMixins/DiscretelyTimeVaryingMixinSpec.ts +++ b/test/ModelMixins/DiscretelyTimeVaryingMixinSpec.ts @@ -6,13 +6,13 @@ describe("DiscretelyTimeVaryingMixin", () => { let terria: Terria; let wmsItem: WebMapServiceCatalogItem; - beforeEach(async function() { + beforeEach(async function () { terria = new Terria({ baseUrl: "./" }); }); - it("ObjectifiedDates returns correct object", async function() { + it("ObjectifiedDates returns correct object", async function () { wmsItem = new WebMapServiceCatalogItem("mywms2", terria); wmsItem.setTrait( "definition", @@ -30,7 +30,7 @@ describe("DiscretelyTimeVaryingMixin", () => { expect(months.index[0]).toBe(3); }); - it("supports specifying a chartColor", async function() { + it("supports specifying a chartColor", async function () { wmsItem = new WebMapServiceCatalogItem("mywms2", terria); wmsItem.setTrait( "definition", @@ -44,7 +44,7 @@ describe("DiscretelyTimeVaryingMixin", () => { expect(wmsItem.chartItems[0].getColor()).toBe("#efefef"); }); - it("sets multiplier correctly from multiplierDefaultDeltaStep", async function() { + it("sets multiplier correctly from multiplierDefaultDeltaStep", async function () { wmsItem = new WebMapServiceCatalogItem("mywms2", terria); wmsItem.setTrait( "definition", diff --git a/test/ModelMixins/ExportWebCoverageServiceMixinSpec.ts b/test/ModelMixins/ExportWebCoverageServiceMixinSpec.ts index cffacb134b7..a96fc2d76e4 100644 --- a/test/ModelMixins/ExportWebCoverageServiceMixinSpec.ts +++ b/test/ModelMixins/ExportWebCoverageServiceMixinSpec.ts @@ -6,10 +6,10 @@ import Terria from "../../lib/Models/Terria"; const describeCoverageXml = require("raw-loader!../../wwwroot/test/WCS/DescribeCoverage.xml"); const wmsGetCapabilitiesXml = require("raw-loader!../../wwwroot/test/WMS/wms_crs.xml"); -describe("ExportWebCoverageServiceMixin", function() { +describe("ExportWebCoverageServiceMixin", function () { let terria: Terria; - beforeEach(async function() { + beforeEach(async function () { terria = new Terria({ baseUrl: "./" }); @@ -35,7 +35,7 @@ describe("ExportWebCoverageServiceMixin", function() { jasmine.Ajax.uninstall(); }); - it("Can call DescribeCoverage and set correct GetCoverage URL", async function() { + it("Can call DescribeCoverage and set correct GetCoverage URL", async function () { const wms = new WebMapServiceCatalogItem("test", terria); runInAction(() => { wms.setTrait("definition", "url", "https://some.ows.service/wms"); diff --git a/test/ModelMixins/TableMixinSpec.ts b/test/ModelMixins/TableMixinSpec.ts index 700e82fe648..9f9f917dcd3 100644 --- a/test/ModelMixins/TableMixinSpec.ts +++ b/test/ModelMixins/TableMixinSpec.ts @@ -47,11 +47,11 @@ const regionIdsLgaNameStates = JSON.stringify( require("../../wwwroot/data/regionids/region_map-FID_LGA_2011_AUST_STE_NAME11.json") ); -describe("TableMixin", function() { +describe("TableMixin", function () { let item: CsvCatalogItem; let terria: Terria; - beforeEach(function() { + beforeEach(function () { terria = new Terria({ baseUrl: "./" }); @@ -79,31 +79,31 @@ describe("TableMixin", function() { ).andReturn({ responseText: regionIdsLgaNameStates }); }); - afterEach(function() { + afterEach(function () { jasmine.Ajax.uninstall(); }); - describe("when the table has time, lat/lon and id columns", function() { + describe("when the table has time, lat/lon and id columns", function () { let dataSource: CustomDataSource; - beforeEach(async function() { + beforeEach(async function () { item.setTrait(CommonStrata.user, "csvString", LatLonEnumDateIdCsv); await item.loadMapItems(); dataSource = item.mapItems[0]; expect(dataSource instanceof CustomDataSource).toBe(true); }); - it("creates one entity per id", async function() { + it("creates one entity per id", async function () { expect(item.activeTableStyle.rowGroups.length).toBe(4); if (dataSource instanceof CustomDataSource) { expect(dataSource.entities.values.length).toBe(4); } }); - it("sets showInChartPanel to false - as is mappable", async function() { + it("sets showInChartPanel to false - as is mappable", async function () { expect(item.showInChartPanel).toBeFalsy(); }); - it("sets showInChartPanel to true - when lat/lon is disabled", async function() { + it("sets showInChartPanel to true - when lat/lon is disabled", async function () { updateModelFromJson(item, CommonStrata.definition, { columns: [ { name: "lat", type: "scalar" }, @@ -115,17 +115,19 @@ describe("TableMixin", function() { it("doesn't show regions - even if empty region column is detected", () => {}); - it("calculates rectangle", async function() { + it("calculates rectangle", async function () { expect(item.rectangle.north).toEqual(-20); expect(item.rectangle.south).toEqual(-37); expect(item.rectangle.east).toEqual(155); expect(item.rectangle.west).toEqual(115); }); - describe("the entities", function() { - it("has availability defined over the correct span", function() { + describe("the entities", function () { + it("has availability defined over the correct span", function () { expect( - dataSource.entities.values.map(e => e.availability?.start.toString()) + dataSource.entities.values.map((e) => + e.availability?.start.toString() + ) ).toEqual([ "2015-08-01T00:00:00Z", "2015-08-01T00:00:00Z", @@ -133,7 +135,7 @@ describe("TableMixin", function() { "2015-08-03T00:00:00Z" ]); expect( - dataSource.entities.values.map(e => e.availability?.stop.toString()) + dataSource.entities.values.map((e) => e.availability?.stop.toString()) ).toEqual([ "2015-08-07T06:00:00Z", "2015-08-07T00:00:00Z", @@ -143,14 +145,14 @@ describe("TableMixin", function() { }); }); - describe("when timeColumn is `null`", function() { - it("returns an empty `discreteTimes`", async function() { + describe("when timeColumn is `null`", function () { + it("returns an empty `discreteTimes`", async function () { expect(item.discreteTimes?.length).toBe(6); item.defaultStyle.time.setTrait(CommonStrata.user, "timeColumn", null); expect(item.discreteTimes).toBe(undefined); }); - it("creates entities for all times", async function() { + it("creates entities for all times", async function () { item.defaultStyle.time.setTrait(CommonStrata.user, "timeColumn", null); await item.loadMapItems(); const mapItem = item.mapItems[0]; @@ -165,9 +167,9 @@ describe("TableMixin", function() { // Note this is identical to "when the table has time, lat/lon and id columns" EXCEPT // - one additional spec - "doesn't show regions - even if empty region column is detected" // - "sets showInChartPanel to true - when lat/lon is disabled" is replaced by "shows regions when lat/lon is disabled" - describe("when the table has time, lat/lon, id columns AND regions", function() { + describe("when the table has time, lat/lon, id columns AND regions", function () { let dataSource: CustomDataSource; - beforeEach(async function() { + beforeEach(async function () { item.setTrait( CommonStrata.user, "csvString", @@ -178,18 +180,18 @@ describe("TableMixin", function() { expect(dataSource instanceof CustomDataSource).toBe(true); }); - it("creates one entity per id", async function() { + it("creates one entity per id", async function () { expect(item.activeTableStyle.rowGroups.length).toBe(4); if (dataSource instanceof CustomDataSource) { expect(dataSource.entities.values.length).toBe(4); } }); - it("sets showInChartPanel to false - as is mappable", async function() { + it("sets showInChartPanel to false - as is mappable", async function () { expect(item.showInChartPanel).toBeFalsy(); }); - it("shows regions when lat/lon is disabled", async function() { + it("shows regions when lat/lon is disabled", async function () { updateModelFromJson(item, CommonStrata.definition, { columns: [ { name: "lat", type: "scalar" }, @@ -208,17 +210,19 @@ describe("TableMixin", function() { expect(item.showingRegions).toBeFalsy(); }); - it("calculates rectangle", async function() { + it("calculates rectangle", async function () { expect(item.rectangle.north).toEqual(-20); expect(item.rectangle.south).toEqual(-37); expect(item.rectangle.east).toEqual(155); expect(item.rectangle.west).toEqual(115); }); - describe("the entities", function() { - it("has availability defined over the correct span", function() { + describe("the entities", function () { + it("has availability defined over the correct span", function () { expect( - dataSource.entities.values.map(e => e.availability?.start.toString()) + dataSource.entities.values.map((e) => + e.availability?.start.toString() + ) ).toEqual([ "2015-08-01T00:00:00Z", "2015-08-01T00:00:00Z", @@ -226,7 +230,7 @@ describe("TableMixin", function() { "2015-08-03T00:00:00Z" ]); expect( - dataSource.entities.values.map(e => e.availability?.stop.toString()) + dataSource.entities.values.map((e) => e.availability?.stop.toString()) ).toEqual([ "2015-08-07T06:00:00Z", "2015-08-07T00:00:00Z", @@ -236,14 +240,14 @@ describe("TableMixin", function() { }); }); - describe("when timeColumn is `null`", function() { - it("returns an empty `discreteTimes`", async function() { + describe("when timeColumn is `null`", function () { + it("returns an empty `discreteTimes`", async function () { expect(item.discreteTimes?.length).toBe(6); item.defaultStyle.time.setTrait(CommonStrata.user, "timeColumn", null); expect(item.discreteTimes).toBe(undefined); }); - it("creates entities for all times", async function() { + it("creates entities for all times", async function () { item.defaultStyle.time.setTrait(CommonStrata.user, "timeColumn", null); await item.loadMapItems(); const mapItem = item.mapItems[0]; @@ -255,8 +259,8 @@ describe("TableMixin", function() { }); }); - describe("when the table has lat/lon columns but no time & id columns", function() { - it("creates one entity per row", async function() { + describe("when the table has lat/lon columns but no time & id columns", function () { + it("creates one entity per row", async function () { runInAction(() => item.setTrait(CommonStrata.user, "csvString", LatLonValCsv) ); @@ -269,7 +273,7 @@ describe("TableMixin", function() { } }); - it("removes duplicate rows when requested", async function() { + it("removes duplicate rows when requested", async function () { runInAction(() => { item.setTrait(CommonStrata.user, "csvString", LatLonValCsvDuplicate); item.setTrait(CommonStrata.user, "removeDuplicateRows", true); @@ -293,7 +297,7 @@ describe("TableMixin", function() { } }); - it("has the correct property names", async function() { + it("has the correct property names", async function () { runInAction(() => item.setTrait(CommonStrata.user, "csvString", LatLonValCsv) ); @@ -305,8 +309,8 @@ describe("TableMixin", function() { }); }); - describe("when the time column has bad datetimes in it", function() { - it("ignores them gracefully", async function() { + describe("when the time column has bad datetimes in it", function () { + it("ignores them gracefully", async function () { runInAction(() => item.setTrait(CommonStrata.user, "csvString", BadDatesCsv) ); @@ -320,24 +324,24 @@ describe("TableMixin", function() { }); }); - describe("when the table has time-series points with intervals", function() { + describe("when the table has time-series points with intervals", function () { let dataSource: CustomDataSource; - beforeEach(async function() { + beforeEach(async function () { item.setTrait(CommonStrata.user, "csvString", ParkingSensorDataCsv); await item.loadMapItems(); dataSource = item.mapItems[0]; expect(dataSource instanceof CustomDataSource).toBe(true); }); - it("creates one entity per id", async function() { + it("creates one entity per id", async function () { expect(dataSource.entities.values.length).toBe(21); }); - it("creates correct intervals", async function() { + it("creates correct intervals", async function () { expect(item.activeTableStyle.timeIntervals?.length).toBe(21); expect(item.disableDateTimeSelector).toBeFalsy(); expect( - item.activeTableStyle.timeIntervals?.map(t => [ + item.activeTableStyle.timeIntervals?.map((t) => [ t?.start.toString(), t?.stop.toString() ]) @@ -366,7 +370,7 @@ describe("TableMixin", function() { ]); }); - it("creates correct intervals if spreadStartTime", async function() { + it("creates correct intervals if spreadStartTime", async function () { runInAction(() => item.setTrait( CommonStrata.user, @@ -381,7 +385,7 @@ describe("TableMixin", function() { expect(item.disableDateTimeSelector).toBeFalsy(); expect(item.activeTableStyle.timeIntervals?.length).toBe(21); expect( - item.activeTableStyle.timeIntervals?.map(t => [ + item.activeTableStyle.timeIntervals?.map((t) => [ t?.start.toString(), t?.stop.toString() ]) @@ -410,7 +414,7 @@ describe("TableMixin", function() { ]); }); - it("creates correct intervals if spreadStartTime and spreadFinishTime", async function() { + it("creates correct intervals if spreadStartTime and spreadFinishTime", async function () { runInAction(() => item.setTrait( CommonStrata.user, @@ -428,7 +432,7 @@ describe("TableMixin", function() { expect(item.activeTableStyle.moreThanOneTimeInterval).toBe(false); }); - it("creates correct intervals if spreadFinishTime", async function() { + it("creates correct intervals if spreadFinishTime", async function () { runInAction(() => item.setTrait( CommonStrata.user, @@ -442,7 +446,7 @@ describe("TableMixin", function() { ); expect(item.activeTableStyle.timeIntervals?.length).toBe(21); expect( - item.activeTableStyle.timeIntervals?.map(t => [ + item.activeTableStyle.timeIntervals?.map((t) => [ t?.start.toString(), t?.stop.toString() ]) @@ -471,11 +475,11 @@ describe("TableMixin", function() { ]); }); - it("creates disable time dimension by default for this dataset", async function() { + it("creates disable time dimension by default for this dataset", async function () { expect(item.timeDisableDimension).toBeDefined(); }); - it("doesn't disable time dimension if `showDisableTimeOption = false`", async function() { + it("doesn't disable time dimension if `showDisableTimeOption = false`", async function () { runInAction(() => item.setTrait(CommonStrata.user, "showDisableTimeOption", false) ); @@ -483,7 +487,7 @@ describe("TableMixin", function() { expect(item.timeDisableDimension).toBeUndefined(); }); - it("doesn't disable time dimension by default for another dataset", async function() { + it("doesn't disable time dimension by default for another dataset", async function () { runInAction(() => { item.setTrait(CommonStrata.user, "csvString", LatLonEnumDateIdCsv); }); @@ -492,7 +496,7 @@ describe("TableMixin", function() { expect(item.timeDisableDimension).toBeUndefined(); }); - it("creates disable time dimension for another dataset if `showDisableTimeOption = true`", async function() { + it("creates disable time dimension for another dataset if `showDisableTimeOption = true`", async function () { runInAction(() => { item.setTrait(CommonStrata.user, "csvString", LatLonEnumDateIdCsv); item.setTrait(CommonStrata.user, "showDisableTimeOption", true); @@ -503,8 +507,8 @@ describe("TableMixin", function() { }); }); - describe("when the table has a few styles", function() { - it("creates all styleDimensions", async function() { + describe("when the table has a few styles", function () { + it("creates all styleDimensions", async function () { runInAction(() => { item.setTrait(CommonStrata.user, "csvString", LatLonEnumDateIdCsv); }); @@ -516,7 +520,7 @@ describe("TableMixin", function() { expect(item.styleDimensions?.options?.[2].name).toBe("Value"); }); - it("creates all styleDimensions - with disable style", async function() { + it("creates all styleDimensions - with disable style", async function () { runInAction(() => { item.setTrait(CommonStrata.user, "csvString", LatLonEnumDateIdCsv); item.setTrait(CommonStrata.user, "showDisableStyleOption", true); @@ -531,7 +535,7 @@ describe("TableMixin", function() { ); }); - it("uses TableColumnTraits for style title", async function() { + it("uses TableColumnTraits for style title", async function () { runInAction(() => { item.setTrait(CommonStrata.user, "csvString", LatLonEnumDateIdCsv); updateModelFromJson(item, CommonStrata.definition, { @@ -545,7 +549,7 @@ describe("TableMixin", function() { expect(item.styleDimensions?.options?.[2].name).toBe("Some Title"); }); - it("uses TableStyleTraits for style title", async function() { + it("uses TableStyleTraits for style title", async function () { runInAction(() => { item.setTrait(CommonStrata.user, "csvString", LatLonEnumDateIdCsv); updateModelFromJson(item, CommonStrata.definition, { @@ -560,7 +564,7 @@ describe("TableMixin", function() { expect(item.styleDimensions?.options?.[2].name).toBe("Some Style Title"); }); - it("loads regionProviderLists on loadMapItems", async function() { + it("loads regionProviderLists on loadMapItems", async function () { item.setTrait(CommonStrata.user, "csvString", LatLonEnumDateIdCsv); await item.loadMetadata(); @@ -572,7 +576,7 @@ describe("TableMixin", function() { expect(item.regionProviderLists?.[0]?.regionProviders.length).toBe(114); }); - it("loads regionProviderLists on loadMapItems - with multiple regionMappingDefinitionsUrl", async function() { + it("loads regionProviderLists on loadMapItems - with multiple regionMappingDefinitionsUrl", async function () { // We add "additionalRegion.json" - which defines two region types // - "SOME_OTHER_REGION" - which is just another region type // - "SOME_OVERRIDDEN_REGION" - which will override "LGA_NAME_2011" in "build/TerriaJS/data/regionMapping.json" @@ -606,7 +610,7 @@ describe("TableMixin", function() { ); }); - it("loads regionProviderLists on loadMapItems - will use regionMappingDefinitionsUrl instead of regionMappingDefinitionsUrls", async function() { + it("loads regionProviderLists on loadMapItems - will use regionMappingDefinitionsUrl instead of regionMappingDefinitionsUrls", async function () { // We add "additionalRegion.json" - which defines two region types // - "SOME_OTHER_REGION" - which is just another region type // - "SOME_OVERRIDDEN_REGION" - which will override "LGA_NAME_2011" in "build/TerriaJS/data/regionMapping.json" @@ -641,8 +645,8 @@ describe("TableMixin", function() { }); }); - describe("creates legend", function() { - it(" - correct decimal places for values [0,100]", async function() { + describe("creates legend", function () { + it(" - correct decimal places for values [0,100]", async function () { item.setTrait("definition", "csvString", LegendDecimalPlacesCsv); item.setTrait("definition", "activeStyle", "0dp"); @@ -650,7 +654,7 @@ describe("TableMixin", function() { await item.loadMapItems(); expect(item.legends[0].items.length).toBe(7); - expect(item.legends[0].items.map(i => i.title)).toEqual([ + expect(item.legends[0].items.map((i) => i.title)).toEqual([ "65", "54", "44", @@ -661,7 +665,7 @@ describe("TableMixin", function() { ]); }); - it(" - correct decimal places for values [0,10]", async function() { + it(" - correct decimal places for values [0,10]", async function () { item.setTrait("definition", "csvString", LegendDecimalPlacesCsv); item.setTrait("definition", "activeStyle", "1dp"); @@ -669,7 +673,7 @@ describe("TableMixin", function() { await item.loadMapItems(); expect(item.legends[0].items.length).toBe(7); - expect(item.legends[0].items.map(i => i.title)).toEqual([ + expect(item.legends[0].items.map((i) => i.title)).toEqual([ "10.0", "8.3", "6.7", @@ -680,7 +684,7 @@ describe("TableMixin", function() { ]); }); - it(" - correct decimal places for values [0,1]", async function() { + it(" - correct decimal places for values [0,1]", async function () { item.setTrait("definition", "csvString", LegendDecimalPlacesCsv); item.setTrait("definition", "activeStyle", "2dp"); @@ -688,7 +692,7 @@ describe("TableMixin", function() { await item.loadMapItems(); expect(item.legends[0].items.length).toBe(7); - expect(item.legends[0].items.map(i => i.title)).toEqual([ + expect(item.legends[0].items.map((i) => i.title)).toEqual([ "0.70", "0.58", "0.47", @@ -699,7 +703,7 @@ describe("TableMixin", function() { ]); }); - it(" - correct decimal places for values [0,0.1]", async function() { + it(" - correct decimal places for values [0,0.1]", async function () { item.setTrait("definition", "csvString", LegendDecimalPlacesCsv); item.setTrait("definition", "activeStyle", "3dp"); @@ -707,7 +711,7 @@ describe("TableMixin", function() { await item.loadMapItems(); expect(item.legends[0].items.length).toBe(7); - expect(item.legends[0].items.map(i => i.title)).toEqual([ + expect(item.legends[0].items.map((i) => i.title)).toEqual([ "0.080", "0.068", "0.057", @@ -719,8 +723,8 @@ describe("TableMixin", function() { }); }); - describe("region mapping - LGA with disambig", function() { - beforeEach(async function() { + describe("region mapping - LGA with disambig", function () { + beforeEach(async function () { item.setTrait(CommonStrata.user, "csvString", LgaWithDisambigCsv); await item.loadMapItems(); @@ -732,11 +736,11 @@ describe("TableMixin", function() { ?.loadRegionIDs(); }); - it("creates imagery parts", async function() { + it("creates imagery parts", async function () { expect(ImageryParts.is(item.mapItems[0])).toBeTruthy(); }); - it("with state", async function() { + it("with state", async function () { updateModelFromJson(item, CommonStrata.user, { columns: [ { @@ -763,7 +767,7 @@ describe("TableMixin", function() { ).toBe(3); }); - it("with lga_name", async function() { + it("with lga_name", async function () { updateModelFromJson(item, CommonStrata.user, { columns: [ { @@ -790,7 +794,7 @@ describe("TableMixin", function() { ).toBe(8); }); - it("matches column name with whitespace", async function() { + it("matches column name with whitespace", async function () { item.setTrait( CommonStrata.user, "csvString", @@ -808,7 +812,7 @@ describe("TableMixin", function() { ); }); - it("shows region shortReportSection", async function() { + it("shows region shortReportSection", async function () { const regionCol = item.activeTableStyle.regionColumn; const regionType = regionCol?.regionType; @@ -820,7 +824,7 @@ describe("TableMixin", function() { ); }); - it("doesn't show region shortReportSection if region is disabled", async function() { + it("doesn't show region shortReportSection if region is disabled", async function () { updateModelFromJson(item, CommonStrata.user, { defaultStyle: { regionColumn: "Something else" @@ -831,8 +835,8 @@ describe("TableMixin", function() { }); }); - describe("applies TableStyles to lat/lon features", function() { - it("bin outline style with points", async function() { + describe("applies TableStyles to lat/lon features", function () { + it("bin outline style with points", async function () { item.setTrait(CommonStrata.user, "csvString", LatLonValCsv); item.setTrait(CommonStrata.user, "styles", [ @@ -952,7 +956,7 @@ describe("TableMixin", function() { }); }); - it("bin color and outline style with markers", async function() { + it("bin color and outline style with markers", async function () { item.setTrait(CommonStrata.user, "csvString", LatLonValCsv); item.setTrait(CommonStrata.user, "styles", [ @@ -1076,7 +1080,7 @@ describe("TableMixin", function() { // Test merging legends expect( - item.legends[0].items.map(item => ({ + item.legends[0].items.map((item) => ({ title: item.title, outlineColor: item.outlineColor, outlineWidth: item.outlineWidth, @@ -1120,7 +1124,7 @@ describe("TableMixin", function() { ]); }); - it("enum outline style with points", async function() { + it("enum outline style with points", async function () { item.setTrait(CommonStrata.user, "csvString", LatLonEnumCsv); item.setTrait(CommonStrata.user, "styles", [ @@ -1236,7 +1240,7 @@ describe("TableMixin", function() { // Test merging legends expect( - item.legends[0].items.map(item => ({ + item.legends[0].items.map((item) => ({ title: item.title, outlineColor: item.outlineColor, outlineWidth: item.outlineWidth, diff --git a/test/ModelMixins/TileErrorHandlerMixinSpec.ts b/test/ModelMixins/TileErrorHandlerMixinSpec.ts index ae3ada3d06d..0f19615cb5f 100644 --- a/test/ModelMixins/TileErrorHandlerMixinSpec.ts +++ b/test/ModelMixins/TileErrorHandlerMixinSpec.ts @@ -58,12 +58,12 @@ class TestCatalogItem extends TileErrorHandlerMixin( } } -describe("TileErrorHandlerMixin", function() { +describe("TileErrorHandlerMixin", function () { let item: TestCatalogItem; let imageryProvider: ImageryProvider; const newError = (statusCode: number | undefined, timesRetried = 0) => { - const httpError = (new RequestErrorEvent(statusCode) as any) as Error; + const httpError = new RequestErrorEvent(statusCode) as any as Error; return new TileProviderError( imageryProvider, "Something broke", @@ -89,7 +89,7 @@ describe("TileErrorHandlerMixin", function() { }); } - beforeEach(function() { + beforeEach(function () { imageryProvider = new WebMapServiceImageryProvider({ url: "/foo", layers: "0" @@ -98,7 +98,7 @@ describe("TileErrorHandlerMixin", function() { item.setTrait(CommonStrata.user, "url", "/foo"); }); - it("gives up silently if the failed tile is outside the extent of the item", async function() { + it("gives up silently if the failed tile is outside the extent of the item", async function () { item.setTrait(CommonStrata.user, "rectangle", { west: 106.9, east: 120.9, @@ -111,8 +111,8 @@ describe("TileErrorHandlerMixin", function() { expect(item.tileFailures).toBe(0); }); - describe("when statusCode is between 400 and 499", function() { - it("gives up silently if statusCode is 403 and treat403AsError is false", async function() { + describe("when statusCode is between 400 and 499", function () { + it("gives up silently if statusCode is 403 and treat403AsError is false", async function () { try { item.tileErrorHandlingOptions.setTrait( CommonStrata.user, @@ -124,7 +124,7 @@ describe("TileErrorHandlerMixin", function() { expect(item.tileFailures).toBe(0); }); - it("gives up silently if statusCode is 404 and treat404AsError is false", async function() { + it("gives up silently if statusCode is 404 and treat404AsError is false", async function () { try { item.tileErrorHandlingOptions.setTrait( CommonStrata.user, @@ -136,7 +136,7 @@ describe("TileErrorHandlerMixin", function() { expect(item.tileFailures).toBe(0); }); - it("fails otherwise", async function() { + it("fails otherwise", async function () { item.tileErrorHandlingOptions.setTrait( CommonStrata.user, "treat403AsError", @@ -158,8 +158,8 @@ describe("TileErrorHandlerMixin", function() { }); }); - describe("when statusCode is between 500 and 599", function() { - it("retries fetching the tile using xhr", async function() { + describe("when statusCode is between 500 and 599", function () { + it("retries fetching the tile using xhr", async function () { try { const error = newError(randomIntBetween(500, 599)); spyOn(Resource, "fetchImage").and.returnValue( @@ -171,10 +171,10 @@ describe("TileErrorHandlerMixin", function() { }); }); - describe("when statusCode is undefined", function() { + describe("when statusCode is undefined", function () { let raiseEvent: jasmine.Spy; - beforeEach(function() { + beforeEach(function () { raiseEvent = spyOn(item.terria, "raiseErrorToUser"); item.tileErrorHandlingOptions.setTrait( CommonStrata.user, @@ -183,7 +183,7 @@ describe("TileErrorHandlerMixin", function() { ); }); - it("gives up silently if ignoreUnknownTileErrors is true", async function() { + it("gives up silently if ignoreUnknownTileErrors is true", async function () { item.tileErrorHandlingOptions.setTrait( CommonStrata.user, "ignoreUnknownTileErrors", @@ -196,7 +196,7 @@ describe("TileErrorHandlerMixin", function() { expect(raiseEvent.calls.count()).toBe(0); }); - it("fails with bad image error if the error defines a target element", async function() { + it("fails with bad image error if the error defines a target element", async function () { try { const tileProviderError = newError(undefined); // @ts-ignore @@ -210,7 +210,7 @@ describe("TileErrorHandlerMixin", function() { ); }); - it("otherwise, it fails with unknown error", async function() { + it("otherwise, it fails with unknown error", async function () { try { await onTileLoadError(item, newError(undefined)); } catch {} @@ -222,8 +222,8 @@ describe("TileErrorHandlerMixin", function() { }); }); - describe("when performing xhr retries", function() { - it("it fails after retrying a maximum of specified number of times", async function() { + describe("when performing xhr retries", function () { + it("it fails after retrying a maximum of specified number of times", async function () { try { const error = newError(randomIntBetween(500, 599)); spyOn(Resource, "fetchImage").and.returnValue( @@ -239,13 +239,13 @@ describe("TileErrorHandlerMixin", function() { expect(item.tileFailures).toBe(1); }); - it("tells the map to reload the tile again if an xhr attempt succeeds", async function() { + it("tells the map to reload the tile again if an xhr attempt succeeds", async function () { spyOn(Resource, "fetchImage").and.returnValue(Promise.resolve()); await onTileLoadError(item, newError(randomIntBetween(500, 599))); expect(item.tileFailures).toBe(0); }); - it("fails if the xhr succeeds but the map fails to load the tile for more than 5 times", async function() { + it("fails if the xhr succeeds but the map fails to load the tile for more than 5 times", async function () { try { spyOn(Resource, "fetchImage").and.returnValue(Promise.resolve()); await onTileLoadError(item, newError(randomIntBetween(500, 599), 0)); @@ -258,7 +258,7 @@ describe("TileErrorHandlerMixin", function() { expect(item.tileFailures).toEqual(1); }); - it("gives up silently if the item is hidden", async function() { + it("gives up silently if the item is hidden", async function () { try { const error = newError(randomIntBetween(500, 599)); spyOn(Resource, "fetchImage").and.returnValue( @@ -272,8 +272,8 @@ describe("TileErrorHandlerMixin", function() { }); }); - describe("when a tile fails more than the threshold number of times", function() { - beforeEach(function() { + describe("when a tile fails more than the threshold number of times", function () { + beforeEach(function () { item.tileErrorHandlingOptions.setTrait( CommonStrata.user, "thresholdBeforeDisablingItem", @@ -281,7 +281,7 @@ describe("TileErrorHandlerMixin", function() { ); }); - it("reports the last error to the user", async function() { + it("reports the last error to the user", async function () { spyOn(item.terria, "raiseErrorToUser"); try { await onTileLoadError(item, newError(undefined)); @@ -293,7 +293,7 @@ describe("TileErrorHandlerMixin", function() { expect(item.terria.raiseErrorToUser).toHaveBeenCalled(); }); - it("disables the catalog item", async function() { + it("disables the catalog item", async function () { expect(item.show).toBe(true); try { await onTileLoadError(item, newError(undefined)); @@ -305,7 +305,7 @@ describe("TileErrorHandlerMixin", function() { }); }); - it("resets tileFailures to 0 when there is an intervening success", async function() { + it("resets tileFailures to 0 when there is an intervening success", async function () { const error = newError(undefined); expect(item.tileFailures).toBe(0); @@ -327,8 +327,8 @@ describe("TileErrorHandlerMixin", function() { expect(item.tileFailures).toBe(1); }); - it("calls `handleTileError` if the item defines it", async function() { - item.handleTileError = promise => promise; + it("calls `handleTileError` if the item defines it", async function () { + item.handleTileError = (promise) => promise; spyOn(item, "handleTileError"); try { await onTileLoadError(item, newError(400)); diff --git a/test/ModelMixins/TimeFilterMixinSpec.ts b/test/ModelMixins/TimeFilterMixinSpec.ts index 8bd7f7439e3..c543ed8c031 100644 --- a/test/ModelMixins/TimeFilterMixinSpec.ts +++ b/test/ModelMixins/TimeFilterMixinSpec.ts @@ -8,11 +8,11 @@ import MappableTraits from "../../lib/Traits/TraitsClasses/MappableTraits"; import mixTraits from "../../lib/Traits/mixTraits"; import TimeFilterTraits from "../../lib/Traits/TraitsClasses/TimeFilterTraits"; -describe("TimeFilterMixin", function() { - describe("canFilterTimeByFeature", function() { +describe("TimeFilterMixin", function () { + describe("canFilterTimeByFeature", function () { it( "returns false if timeFilterPropertyName is not set", - action(function() { + action(function () { const testItem = new TestTimeFilterableItem("test", new Terria()); expect(testItem.canFilterTimeByFeature).toBe(false); }) @@ -20,7 +20,7 @@ describe("TimeFilterMixin", function() { it( "returns true if timeFilterPropertyName is set", - action(function() { + action(function () { const testItem = new TestTimeFilterableItem("test", new Terria()); testItem.setTrait( CommonStrata.user, diff --git a/test/Models/AugmentedVirtualitySpec.js b/test/Models/AugmentedVirtualitySpec.js index 882a109e9e4..f52897bce28 100644 --- a/test/Models/AugmentedVirtualitySpec.js +++ b/test/Models/AugmentedVirtualitySpec.js @@ -11,20 +11,20 @@ import AugmentedVirtuality from "../../lib/Models/AugmentedVirtuality"; var describeIfSupportsWebGL = supportsWebGL() ? describe : xdescribe; -describe("AugmentedVirtuality", function() { +describe("AugmentedVirtuality", function () { let terria; - beforeEach(function() { + beforeEach(function () { terria = new Terria({ baseUrl: "./" }); }); - beforeEach(function() { + beforeEach(function () { jasmine.addMatchers(customMatchers); }); - it("check default values", function() { + it("check default values", function () { var av = new AugmentedVirtuality(terria); expect(av.enabled).toEqual(false); @@ -34,7 +34,7 @@ describe("AugmentedVirtuality", function() { expect(av.hoverLevel).toEqual(2); }); - it("check changing enabled", function() { + it("check changing enabled", function () { var av = new AugmentedVirtuality(terria); // Verify inital state for test sanity. @@ -48,7 +48,7 @@ describe("AugmentedVirtuality", function() { expect(av.enabled).toEqual(false); }); - it("check toggle enabled", function() { + it("check toggle enabled", function () { var av = new AugmentedVirtuality(terria); // Verify inital state for test sanity. @@ -62,7 +62,7 @@ describe("AugmentedVirtuality", function() { expect(av.enabled).toEqual(false); }); - it("check manual align", function() { + it("check manual align", function () { var av = new AugmentedVirtuality(terria); // Set inital state for test sanity. @@ -95,7 +95,7 @@ describe("AugmentedVirtuality", function() { expect(av.manualAlignment).toEqual(false); }); - it("check toggle manual align", function() { + it("check toggle manual align", function () { var av = new AugmentedVirtuality(terria); // Set inital state for test sanity. @@ -112,7 +112,7 @@ describe("AugmentedVirtuality", function() { expect(av.manualAlignment).toEqual(false); }); - it("check updaing fps", function() { + it("check updaing fps", function () { var av = new AugmentedVirtuality(terria); // Set inital state for test sanity. @@ -131,7 +131,7 @@ describe("AugmentedVirtuality", function() { expect(av.maximumUpdatesPerSecond).toEqual(7.5); }); - it("check toggle hover level state change", function() { + it("check toggle hover level state change", function () { var av = new AugmentedVirtuality(terria); // Set inital state for test sanity. @@ -149,7 +149,7 @@ describe("AugmentedVirtuality", function() { expect(av.hoverLevel).toEqual(2); }); - it("check similar radians", function() { + it("check similar radians", function () { expect(similarRadians(0, 0, 0.001)).toBeTruthy(); expect(similarRadians(0, 0.000999, 0.001)).toBeTruthy(); expect(similarRadians(0, 0.001, 0.001)).toBeTruthy(); @@ -177,7 +177,7 @@ describe("AugmentedVirtuality", function() { expect(similarRadians(0, 2 * Math.PI + -0.001001, 0.001)).toBeFalsy(); }); - it("check custom matcher", function() { + it("check custom matcher", function () { // Check when they are the same. expect(bod(0, 0, 0)).closeOrientation(bod(0, 0, 0)); expect(bod(90, 0, 0)).closeOrientation(bod(90, 0, 0)); @@ -218,7 +218,7 @@ describe("AugmentedVirtuality", function() { }).not.closeOrientation({ orientation: { roll: 0, pitch: 0 } }); }); - it("check device to terria orientation", function() { + it("check device to terria orientation", function () { // The test cases were generated using a seemingly working implementation since the test matcher is based on // values rather then using the true orientation matching in the device frame of reference. var av = new AugmentedVirtuality(terria); @@ -564,13 +564,13 @@ describe("AugmentedVirtuality", function() { describeIfSupportsWebGL( "AugmentedVirtuality tests that require WebGL", - function() { + function () { var container; var widget; var cesium; var terria; - beforeEach(function() { + beforeEach(function () { container = document.createElement("div"); document.body.appendChild(container); @@ -582,14 +582,14 @@ describeIfSupportsWebGL( }); }); - afterEach(function() { + afterEach(function () { if (widget && !widget.isDestroyed()) { widget = widget.destroy(); } document.body.removeChild(container); }); - it("check manual align set", function() { + it("check manual align set", function () { cesium = new Cesium(terria, widget); terria.currentViewer = cesium; terria.cesium = cesium; @@ -642,9 +642,9 @@ function bod(roll, pitch, heading) { // the tests can remain the same (this may need to be aware of the frame of reference...which might make this // option less practical). var customMatchers = { - closeOrientation: function(util, customEqualityTesters) { + closeOrientation: function (util, customEqualityTesters) { return { - compare: function(actual, expected) { + compare: function (actual, expected) { var result = {}; result.pass = true; result.message = ""; diff --git a/test/Models/AustralianGazetteerSearchProviderSpec.ts b/test/Models/AustralianGazetteerSearchProviderSpec.ts index 9b89ce3e37b..9304d9158ca 100644 --- a/test/Models/AustralianGazetteerSearchProviderSpec.ts +++ b/test/Models/AustralianGazetteerSearchProviderSpec.ts @@ -10,12 +10,12 @@ configure({ computedRequiresReaction: true }); -describe("GazetteerSearchProvider", function() { +describe("GazetteerSearchProvider", function () { let searchProvider: WebFeatureServiceSearchProvider; - beforeEach(function() { + beforeEach(function () { searchProvider = createAustralianGazetteerSearchProvider(new Terria()); }); - it("queries the web feature service and returns search results", async function() { + it("queries the web feature service and returns search results", async function () { spyOn(searchProvider, "getXml").and.returnValue( Promise.resolve(wfsResponseXml) ); diff --git a/test/Models/BoxDrawingSpec.ts b/test/Models/BoxDrawingSpec.ts index bdfd6501b44..79352affeb1 100644 --- a/test/Models/BoxDrawingSpec.ts +++ b/test/Models/BoxDrawingSpec.ts @@ -8,11 +8,11 @@ import TranslationRotationScale from "terriajs-cesium/Source/Core/TranslationRot import Cartesian3 from "terriajs-cesium/Source/Core/Cartesian3"; import Quaternion from "terriajs-cesium/Source/Core/Quaternion"; -describe("BoxDrawing", function() { +describe("BoxDrawing", function () { let terria: Terria; let cesium: Cesium; - beforeEach(function() { + beforeEach(function () { terria = new Terria({ baseUrl: "./" }); @@ -27,13 +27,13 @@ describe("BoxDrawing", function() { cesium = new Cesium(terriaViewer, container); }); - describe("BoxDrawing creation", function() { - it("can be created from a transformation matrix", function() { + describe("BoxDrawing creation", function () { + it("can be created from a transformation matrix", function () { const boxDrawing = BoxDrawing.fromTransform(cesium, Matrix4.IDENTITY); expect(boxDrawing).toBeDefined(); }); - it("can be created from translation, rotation, scale object", function() { + it("can be created from translation, rotation, scale object", function () { const boxDrawing = BoxDrawing.fromTranslationRotationScale( cesium, new TranslationRotationScale( @@ -46,8 +46,8 @@ describe("BoxDrawing", function() { }); }); - describe("the dataSource", function() { - it("has 6 sides", function() { + describe("the dataSource", function () { + it("has 6 sides", function () { // const box = new BoxDrawing(cesium, Matrix4.IDENTITY, () => {}); // const sides = box.dataSource.entities.values.filter(isSideEntity); // expect(sides.length).toEqual(6); @@ -57,18 +57,18 @@ describe("BoxDrawing", function() { it("has 4 rotation edges"); }); - describe("setTransform", function() { + describe("setTransform", function () { it("updates the box position, orientation and dimensions"); }); - describe("interaction", function() { + describe("interaction", function () { it("stops interactions when show is set to false on the datasource"); it("starts interactions when show is set to true on the datasource"); it("stops interactions when datasource becomes unobserved"); it("starts interactions when datasource becomes observed"); }); - describe("move interaction", function() { + describe("move interaction", function () { it("can move the box up and down by dragging the top side"); it("can move the box sideways by dragging any other side"); it( @@ -76,7 +76,7 @@ describe("BoxDrawing", function() { ); }); - describe("scale interaction", function() { + describe("scale interaction", function () { it("can scale the box along a side axis by dragging a face point"); it("can scale the box proportionately by dragging a corner point"); it( @@ -84,7 +84,7 @@ describe("BoxDrawing", function() { ); }); - describe("rotate interaction", function() { + describe("rotate interaction", function () { it("can rotate the box by dragging an edge"); }); }); diff --git a/test/Models/CameraViewSpec.js b/test/Models/CameraViewSpec.js index a5c32b6f6f3..21beeb30033 100644 --- a/test/Models/CameraViewSpec.js +++ b/test/Models/CameraViewSpec.js @@ -6,13 +6,13 @@ var Cartographic = require("terriajs-cesium/Source/Core/Cartographic").default; var CesiumMath = require("terriajs-cesium/Source/Core/Math").default; var CustomMatchers = require("../Utility/CustomMatchers"); var Ellipsoid = require("terriajs-cesium/Source/Core/Ellipsoid").default; -var HeadingPitchRange = require("terriajs-cesium/Source/Core/HeadingPitchRange") - .default; +var HeadingPitchRange = + require("terriajs-cesium/Source/Core/HeadingPitchRange").default; var Rectangle = require("terriajs-cesium/Source/Core/Rectangle").default; -describe("CameraView", function() { - describe("fromJson", function() { - it("can deserialize rectangle alone", function() { +describe("CameraView", function () { + describe("fromJson", function () { + it("can deserialize rectangle alone", function () { var view = CameraView.fromJson({ west: 45, south: -20, @@ -23,7 +23,7 @@ describe("CameraView", function() { expect(view.rectangle).toEqual(Rectangle.fromDegrees(45, -20, 55, -10)); }); - it("can deserialize rectangle plus position/direction/up", function() { + it("can deserialize rectangle plus position/direction/up", function () { var view = CameraView.fromJson({ west: 45, south: -20, @@ -52,7 +52,7 @@ describe("CameraView", function() { expect(view.up).toEqual(new Cartesian3(0.0, 1.0, 0.1)); }); - it("can deserialize lookAt", function() { + it("can deserialize lookAt", function () { var view = CameraView.fromJson({ lookAt: { targetLongitude: 45, @@ -76,7 +76,7 @@ describe("CameraView", function() { ); }); - it("can deserialize position/heading/pitch/roll", function() { + it("can deserialize position/heading/pitch/roll", function () { var view = CameraView.fromJson({ positionHeadingPitchRoll: { cameraLongitude: 45, @@ -99,9 +99,9 @@ describe("CameraView", function() { }); }); - describe("fromLookAt", function() { - it("throws when targetPosition is not specified", function() { - expect(function() { + describe("fromLookAt", function () { + it("throws when targetPosition is not specified", function () { + expect(function () { return CameraView.fromLookAt( undefined, new HeadingPitchRange( @@ -113,8 +113,8 @@ describe("CameraView", function() { }).toThrow(); }); - it("throws when headingPitchRange is not specified", function() { - expect(function() { + it("throws when headingPitchRange is not specified", function () { + expect(function () { return CameraView.fromLookAt( Cartographic.fromDegrees(45, -20, 100), undefined @@ -122,7 +122,7 @@ describe("CameraView", function() { }).toThrow(); }); - it("can look straight down at a point on the equator", function() { + it("can look straight down at a point on the equator", function () { jasmine.addMatchers(CustomMatchers); var view = CameraView.fromLookAt( @@ -141,9 +141,8 @@ describe("CameraView", function() { ); expect(cartographic.height).toEqualEpsilon(10000 + 100, 1); - var surfaceNormal = Ellipsoid.WGS84.geodeticSurfaceNormalCartographic( - cartographic - ); + var surfaceNormal = + Ellipsoid.WGS84.geodeticSurfaceNormalCartographic(cartographic); expect( Cartesian3.equalsEpsilon( view.direction, @@ -156,7 +155,7 @@ describe("CameraView", function() { ); }); - it("can look north at a point on the equator", function() { + it("can look north at a point on the equator", function () { jasmine.addMatchers(CustomMatchers); var view = CameraView.fromLookAt( @@ -172,16 +171,15 @@ describe("CameraView", function() { expect(cartographic.latitude).toBeLessThan(0); expect(cartographic.height).toBeGreaterThan(100.0); - var surfaceNormal = Ellipsoid.WGS84.geodeticSurfaceNormalCartographic( - cartographic - ); + var surfaceNormal = + Ellipsoid.WGS84.geodeticSurfaceNormalCartographic(cartographic); expect(Cartesian3.equalsEpsilon(view.up, surfaceNormal, 1e-2)).toBe(true); expect( Cartesian3.equalsEpsilon(view.direction, Cartesian3.UNIT_Z, 1e-7) ).toBe(true); }); - it("can look east at a point on the equator", function() { + it("can look east at a point on the equator", function () { jasmine.addMatchers(CustomMatchers); var view = CameraView.fromLookAt( @@ -194,9 +192,10 @@ describe("CameraView", function() { expect(cartographic.latitude).toEqualEpsilon(0, 1e-7); expect(cartographic.height).toBeGreaterThan(100.0); - var targetSurfaceNormal = Ellipsoid.WGS84.geodeticSurfaceNormalCartographic( - Cartographic.fromDegrees(45, 0) - ); + var targetSurfaceNormal = + Ellipsoid.WGS84.geodeticSurfaceNormalCartographic( + Cartographic.fromDegrees(45, 0) + ); expect(Cartesian3.equalsEpsilon(view.up, targetSurfaceNormal, 1e-7)).toBe( true ); @@ -214,15 +213,15 @@ describe("CameraView", function() { }); }); - describe("fromPositionHeadingPitchRoll", function() { - it("throws when cameraPosition is not specified", function() { - expect(function() { + describe("fromPositionHeadingPitchRoll", function () { + it("throws when cameraPosition is not specified", function () { + expect(function () { return CameraView.fromPositionHeadingPitchRoll(undefined, 0, 0, 0); }).toThrow(); }); - it("throws when heading is not specified", function() { - expect(function() { + it("throws when heading is not specified", function () { + expect(function () { return CameraView.fromPositionHeadingPitchRoll( Cartographic.fromDegrees(45, -20, 100), undefined, @@ -232,8 +231,8 @@ describe("CameraView", function() { }).toThrow(); }); - it("throws when pitch is not specified", function() { - expect(function() { + it("throws when pitch is not specified", function () { + expect(function () { return CameraView.fromPositionHeadingPitchRoll( Cartographic.fromDegrees(45, -20, 100), 0, @@ -243,8 +242,8 @@ describe("CameraView", function() { }).toThrow(); }); - it("throws when roll is not specified", function() { - expect(function() { + it("throws when roll is not specified", function () { + expect(function () { return CameraView.fromPositionHeadingPitchRoll( Cartographic.fromDegrees(45, -20, 100), 0, @@ -254,7 +253,7 @@ describe("CameraView", function() { }).toThrow(); }); - it("can look straight down from a point on the equator", function() { + it("can look straight down from a point on the equator", function () { jasmine.addMatchers(CustomMatchers); var view = CameraView.fromPositionHeadingPitchRoll( @@ -275,9 +274,8 @@ describe("CameraView", function() { ); expect(cartographic.height).toEqualEpsilon(100, 1); - var surfaceNormal = Ellipsoid.WGS84.geodeticSurfaceNormalCartographic( - cartographic - ); + var surfaceNormal = + Ellipsoid.WGS84.geodeticSurfaceNormalCartographic(cartographic); expect( Cartesian3.equalsEpsilon( view.direction, @@ -290,7 +288,7 @@ describe("CameraView", function() { ); }); - it("can look north from a point on the equator", function() { + it("can look north from a point on the equator", function () { jasmine.addMatchers(CustomMatchers); var view = CameraView.fromPositionHeadingPitchRoll( @@ -308,16 +306,15 @@ describe("CameraView", function() { expect(cartographic.latitude).toEqualEpsilon(0, 1e-10); expect(cartographic.height).toEqualEpsilon(100.0, 1e-9); - var surfaceNormal = Ellipsoid.WGS84.geodeticSurfaceNormalCartographic( - cartographic - ); + var surfaceNormal = + Ellipsoid.WGS84.geodeticSurfaceNormalCartographic(cartographic); expect(Cartesian3.equalsEpsilon(view.up, surfaceNormal, 1e-7)).toBe(true); expect( Cartesian3.equalsEpsilon(view.direction, Cartesian3.UNIT_Z, 1e-7) ).toBe(true); }); - it("can look east from a point on the equator", function() { + it("can look east from a point on the equator", function () { jasmine.addMatchers(CustomMatchers); var view = CameraView.fromPositionHeadingPitchRoll( @@ -335,9 +332,10 @@ describe("CameraView", function() { expect(cartographic.latitude).toEqualEpsilon(0, 1e-10); expect(cartographic.height).toEqualEpsilon(100.0, 1e-9); - var targetSurfaceNormal = Ellipsoid.WGS84.geodeticSurfaceNormalCartographic( - Cartographic.fromDegrees(45, 0) - ); + var targetSurfaceNormal = + Ellipsoid.WGS84.geodeticSurfaceNormalCartographic( + Cartographic.fromDegrees(45, 0) + ); expect(Cartesian3.equalsEpsilon(view.up, targetSurfaceNormal, 1e-7)).toBe( true ); diff --git a/test/Models/Catalog/CatalogFunctions/YDYRCatalogFunctionJobSpec.ts b/test/Models/Catalog/CatalogFunctions/YDYRCatalogFunctionJobSpec.ts index f4b34bff424..7e1365d0a0b 100644 --- a/test/Models/Catalog/CatalogFunctions/YDYRCatalogFunctionJobSpec.ts +++ b/test/Models/Catalog/CatalogFunctions/YDYRCatalogFunctionJobSpec.ts @@ -24,11 +24,11 @@ configure({ computedRequiresReaction: true }); -describe("YDYRCatalogFunctionJob", function() { +describe("YDYRCatalogFunctionJob", function () { let terria: Terria; let job: YDYRCatalogFunctionJob; - beforeEach(async function() { + beforeEach(async function () { jasmine.Ajax.install(); jasmine.Ajax.stubRequest( @@ -43,7 +43,7 @@ describe("YDYRCatalogFunctionJob", function() { let logCounter = 0; jasmine.Ajax.stubRequest( "http://example.com/api/v1/status/someStatusId" - ).andCallFunction(req => { + ).andCallFunction((req) => { if (logCounter < 1) { req.respondWith({ responseText: `"Some Log ${logCounter}"` }); @@ -83,16 +83,16 @@ describe("YDYRCatalogFunctionJob", function() { job.setTrait(CommonStrata.definition, "jobId", "someStatusId"); }); - afterEach(function() { + afterEach(function () { jasmine.Ajax.uninstall(); }); - it("has a type & typeName", function() { + it("has a type & typeName", function () { expect(YDYRCatalogFunctionJob.type).toBe("ydyr-job"); expect(job.typeName).toBe("YourDataYourRegions Job"); }); - describe("start polling after added to workbench", async function() { + describe("start polling after added to workbench", async function () { let dispose: () => void; beforeEach(() => { terria.workbench.add(job); @@ -105,16 +105,16 @@ describe("YDYRCatalogFunctionJob", function() { dispose(); }); - it("should be in workbench", async function() { + it("should be in workbench", async function () { expect(job.inWorkbench).toBeTruthy(); }); - it("polls twice - and creates 2 log entries", async function() { + it("polls twice - and creates 2 log entries", async function () { // Wait until job finished - await new Promise(resolve => { + await new Promise((resolve) => { reaction( () => job.jobStatus, - status => (status === "finished" ? resolve() : undefined) + (status) => (status === "finished" ? resolve() : undefined) ); }); @@ -126,12 +126,12 @@ describe("YDYRCatalogFunctionJob", function() { expect(job.resultId).toBe("someResultKey"); }); - it("downloads results and creates CSVCatalogItem", async function() { + it("downloads results and creates CSVCatalogItem", async function () { // Wait until job finished downloading results - await new Promise(resolve => { + await new Promise((resolve) => { reaction( () => job.downloadedResults, - downloadedResults => (downloadedResults ? resolve() : undefined) + (downloadedResults) => (downloadedResults ? resolve() : undefined) ); }); diff --git a/test/Models/Catalog/CatalogFunctions/YDYRCatalogFunctionSpec.ts b/test/Models/Catalog/CatalogFunctions/YDYRCatalogFunctionSpec.ts index 8c244756021..99a4b065a34 100644 --- a/test/Models/Catalog/CatalogFunctions/YDYRCatalogFunctionSpec.ts +++ b/test/Models/Catalog/CatalogFunctions/YDYRCatalogFunctionSpec.ts @@ -26,12 +26,12 @@ configure({ const lga11Csv = require("raw-loader!../../../../wwwroot/test/csv/lga_code_2011.csv"); -describe("YDYRCatalogFunction", function() { +describe("YDYRCatalogFunction", function () { let terria: Terria; let csv: CsvCatalogItem; let ydyr: YDYRCatalogFunction; - beforeEach(async function() { + beforeEach(async function () { jasmine.Ajax.install(); jasmine.Ajax.stubRequest( "http://example.com/api/v1/disaggregate.json" @@ -49,7 +49,7 @@ describe("YDYRCatalogFunction", function() { let logCounter = 0; jasmine.Ajax.stubRequest( "http://example.com/api/v1/status/someStatusId" - ).andCallFunction(req => { + ).andCallFunction((req) => { if (logCounter < 1) { req.respondWith({ responseText: `"Some Log ${logCounter}"` }); @@ -102,17 +102,17 @@ describe("YDYRCatalogFunction", function() { }); }); - afterEach(function() { + afterEach(function () { jasmine.Ajax.uninstall(); }); - it("has a type & typeName", function() { + it("has a type & typeName", function () { expect(YDYRCatalogFunction.type).toBe("ydyr"); expect(ydyr.typeName).toBe("YourDataYourRegions"); }); - describe("when loading", async function() { - it("should correctly render functionParameters", function() { + describe("when loading", async function () { + it("should correctly render functionParameters", function () { expect(ydyr.functionParameters.map(({ type }) => type)).toEqual([ "string", "enumeration", @@ -127,7 +127,7 @@ describe("YDYRCatalogFunction", function() { }); it("should set default values", () => { - expect(ydyr.functionParameters.map(p => p.value)).toEqual([ + expect(ydyr.functionParameters.map((p) => p.value)).toEqual([ "http://example.com/api/v1/", csv.uniqueId, csv.activeTableStyle.regionColumn?.name, @@ -141,7 +141,7 @@ describe("YDYRCatalogFunction", function() { }); }); - describe("when submitted", async function() { + describe("when submitted", async function () { let job: YDYRCatalogFunctionJob; let dispose: () => void; beforeEach(async () => { @@ -154,24 +154,24 @@ describe("YDYRCatalogFunction", function() { afterEach(() => { dispose(); }); - it("should correctly set parameters", async function() { + it("should correctly set parameters", async function () { expect(toJS(job.parameters)).toEqual(toJS(ydyr.parameters)); }); - it("should be in workbench", async function() { + it("should be in workbench", async function () { expect(job.inWorkbench).toBeTruthy(); }); - it("calls YDYR api and sets status id", async function() { + it("calls YDYR api and sets status id", async function () { expect(job.jobId).toEqual("someStatusId"); }); - it("polls twice - and creates 2 log entries", async function() { + it("polls twice - and creates 2 log entries", async function () { // Wait until job finished - await new Promise(resolve => { + await new Promise((resolve) => { reaction( () => job.jobStatus, - status => (status === "finished" ? resolve() : undefined) + (status) => (status === "finished" ? resolve() : undefined) ); }); @@ -183,12 +183,12 @@ describe("YDYRCatalogFunction", function() { expect(job.resultId).toBe("someResultKey"); }); - it("downloads results and creates CSVCatalogItem", async function() { + it("downloads results and creates CSVCatalogItem", async function () { // Wait until job finished downloading results - await new Promise(resolve => { + await new Promise((resolve) => { reaction( () => job.downloadedResults, - downloadedResults => (downloadedResults ? resolve() : undefined) + (downloadedResults) => (downloadedResults ? resolve() : undefined) ); }); diff --git a/test/Models/Catalog/CatalogGroupSpec.js b/test/Models/Catalog/CatalogGroupSpec.js index 7ab2e29a410..e8247a635ab 100644 --- a/test/Models/Catalog/CatalogGroupSpec.js +++ b/test/Models/Catalog/CatalogGroupSpec.js @@ -5,10 +5,10 @@ var CatalogItem = require("../../lib/Models/CatalogItem"); var createCatalogMemberFromType = require("../../lib/Models/createCatalogMemberFromType"); var Terria = require("../../../lib/Models/Terria"); -describe("CatalogGroup", function() { +describe("CatalogGroup", function () { var terria; var group; - beforeEach(function() { + beforeEach(function () { terria = new Terria({ baseUrl: "./" }); @@ -18,7 +18,7 @@ describe("CatalogGroup", function() { createCatalogMemberFromType.register("item", CatalogItem); }); - it("sorts on load by default", function(done) { + it("sorts on load by default", function (done) { group .updateFromJson({ type: "group", @@ -35,7 +35,7 @@ describe("CatalogGroup", function() { } ] }) - .then(function() { + .then(function () { expect(group.items.length).toBe(2); expect(group.items[0].name).toBe("A"); expect(group.items[1].name).toBe("B"); @@ -43,7 +43,7 @@ describe("CatalogGroup", function() { }); }); - it("sorts correctly when there is a number at the beginning", function(done) { + it("sorts correctly when there is a number at the beginning", function (done) { group .updateFromJson({ type: "group", @@ -65,7 +65,7 @@ describe("CatalogGroup", function() { } ] }) - .then(function() { + .then(function () { expect(group.items.length).toBe(3); expect(group.items[0].name).toBe("1 Thing"); expect(group.items[1].name).toBe("2 Thing"); @@ -75,7 +75,7 @@ describe("CatalogGroup", function() { .catch(done.fail); }); - it("sorts correctly when there is a number at the end", function(done) { + it("sorts correctly when there is a number at the end", function (done) { group .updateFromJson({ type: "group", @@ -97,7 +97,7 @@ describe("CatalogGroup", function() { } ] }) - .then(function() { + .then(function () { expect(group.items.length).toBe(3); expect(group.items[0].name).toBe("Thing 1"); expect(group.items[1].name).toBe("Thing 2"); @@ -107,7 +107,7 @@ describe("CatalogGroup", function() { .catch(done.fail); }); - it("sorts correctly when nameInCatalog is provided", function(done) { + it("sorts correctly when nameInCatalog is provided", function (done) { group .updateFromJson({ type: "group", @@ -130,7 +130,7 @@ describe("CatalogGroup", function() { } ] }) - .then(function() { + .then(function () { expect(group.items.length).toBe(3); expect(group.items[0].name).toBe("1"); expect(group.items[1].name).toBe("3"); @@ -140,7 +140,7 @@ describe("CatalogGroup", function() { .catch(done.fail); }); - it("sorts items correctly when there is a number in the middle", function(done) { + it("sorts items correctly when there is a number in the middle", function (done) { group .updateFromJson({ type: "group", @@ -162,7 +162,7 @@ describe("CatalogGroup", function() { } ] }) - .then(function() { + .then(function () { expect(group.items.length).toBe(3); expect(group.items[0].name).toBe("Thing 1 Yay"); expect(group.items[1].name).toBe("Thing 2 Yay"); @@ -172,7 +172,7 @@ describe("CatalogGroup", function() { .catch(done.fail); }); - it("sorts numbered items after unnumbered items", function(done) { + it("sorts numbered items after unnumbered items", function (done) { group .updateFromJson({ type: "group", @@ -189,7 +189,7 @@ describe("CatalogGroup", function() { } ] }) - .then(function() { + .then(function () { expect(group.items.length).toBe(2); expect(group.items[0].name).toBe("Thing"); expect(group.items[1].name).toBe("Thing 1"); @@ -198,7 +198,7 @@ describe("CatalogGroup", function() { .catch(done.fail); }); - it("sorts numbers before letters", function(done) { + it("sorts numbers before letters", function (done) { group .updateFromJson({ type: "group", @@ -225,7 +225,7 @@ describe("CatalogGroup", function() { } ] }) - .then(function() { + .then(function () { expect(group.items.length).toBe(4); expect(group.items[0].name).toBe("1"); expect(group.items[1].name).toBe("2"); @@ -236,7 +236,7 @@ describe("CatalogGroup", function() { .catch(done.fail); }); - it("does not sort on load if preserveOrder is true", function(done) { + it("does not sort on load if preserveOrder is true", function (done) { group .updateFromJson({ type: "group", @@ -254,7 +254,7 @@ describe("CatalogGroup", function() { } ] }) - .then(function() { + .then(function () { expect(group.items.length).toBe(2); expect(group.items[0].name).toBe("B"); expect(group.items[1].name).toBe("A"); @@ -262,7 +262,7 @@ describe("CatalogGroup", function() { }); }); - it("puts isPromoted items at the top when sorting", function(done) { + it("puts isPromoted items at the top when sorting", function (done) { group .updateFromJson({ type: "group", @@ -285,7 +285,7 @@ describe("CatalogGroup", function() { } ] }) - .then(function() { + .then(function () { expect(group.items.length).toBe(3); expect(group.items[0].name).toBe("C"); expect(group.items[1].name).toBe("A"); @@ -294,7 +294,7 @@ describe("CatalogGroup", function() { }); }); - it("puts isPromoted items at the top when preserving order", function(done) { + it("puts isPromoted items at the top when preserving order", function (done) { group .updateFromJson({ type: "group", @@ -318,7 +318,7 @@ describe("CatalogGroup", function() { } ] }) - .then(function() { + .then(function () { expect(group.items.length).toBe(3); expect(group.items[0].name).toBe("C"); expect(group.items[1].name).toBe("B"); @@ -327,7 +327,7 @@ describe("CatalogGroup", function() { }); }); - it("returns the names of its parents separated by / when uniqueId is called if no id present", function(done) { + it("returns the names of its parents separated by / when uniqueId is called if no id present", function (done) { group .updateFromJson({ type: "group", @@ -345,7 +345,7 @@ describe("CatalogGroup", function() { } ] }) - .then(function() { + .then(function () { expect(group.items[0].items[0].uniqueId).toBe("A/B/C"); expect(group.items[0].uniqueId).toBe("A/B"); expect(group.uniqueId).toBe("A"); @@ -353,8 +353,8 @@ describe("CatalogGroup", function() { }); }); - describe("when updating items", function() { - it("adds new items when onlyUpdateExistingItems isn't specified", function(done) { + describe("when updating items", function () { + it("adds new items when onlyUpdateExistingItems isn't specified", function (done) { group .updateFromJson({ type: "group", @@ -373,7 +373,7 @@ describe("CatalogGroup", function() { } ] }) - .then(function() { + .then(function () { expect(group.items[0].name).toBe("A"); expect(group.items[1].name).toBe("B"); expect(group.items[2].name).toBe("C"); @@ -381,7 +381,7 @@ describe("CatalogGroup", function() { }); }); - it("updates existing items by id ahead of name", function(done) { + it("updates existing items by id ahead of name", function (done) { group .updateFromJson({ type: "group", @@ -410,7 +410,7 @@ describe("CatalogGroup", function() { ] }) ) - .then(function() { + .then(function () { expect(group.items[0].name).toBe("A"); expect(group.items[1].uniqueId).toBe("BUniqueId"); expect(group.items[1].name).toBe("C"); @@ -419,7 +419,7 @@ describe("CatalogGroup", function() { }); }); - it("updates existing items by name", function(done) { + it("updates existing items by name", function (done) { group .updateFromJson({ type: "group", @@ -450,14 +450,14 @@ describe("CatalogGroup", function() { ] }) ) - .then(function() { + .then(function () { expect(group.items[0].url).toBe("http://test.com/A"); expect(group.items[1].url).toBe("http://test.com/B"); done(); }); }); - it("only updates existing items when onlyUpdateExistingItems === true", function(done) { + it("only updates existing items when onlyUpdateExistingItems === true", function (done) { group .updateFromJson({ type: "group", @@ -489,7 +489,7 @@ describe("CatalogGroup", function() { } ) ) - .then(function() { + .then(function () { expect(group.items[0].url).toBe("http://test.com/A"); expect(group.items.length).toBe(1); done(); @@ -497,7 +497,7 @@ describe("CatalogGroup", function() { }); }); - it("adds new children to the catalog index", function() { + it("adds new children to the catalog index", function () { var item1 = new CatalogItem(terria); item1.id = "blah"; @@ -506,8 +506,8 @@ describe("CatalogGroup", function() { expect(terria.catalog.shareKeyIndex["blah"]).toBe(item1); }); - describe("removes removed children from the catalog index", function() { - it("when child has a specific id", function() { + describe("removes removed children from the catalog index", function () { + it("when child has a specific id", function () { var item1 = new CatalogItem(terria); item1.id = "blah"; @@ -517,7 +517,7 @@ describe("CatalogGroup", function() { expect(terria.catalog.shareKeyIndex["blah"]).toBeUndefined(); }); - it("when child has no id", function() { + it("when child has no id", function () { var item1 = new CatalogItem(terria); item1.name = "blah"; group.name = "foo"; @@ -532,8 +532,8 @@ describe("CatalogGroup", function() { }); }); - describe("for key clashes", function() { - it("inserts items under an altered key if their shareKeys clash with existing keys", function(done) { + describe("for key clashes", function () { + it("inserts items under an altered key if their shareKeys clash with existing keys", function (done) { group .updateFromJson({ type: "group", @@ -549,7 +549,7 @@ describe("CatalogGroup", function() { } ] }) - .then(function() { + .then(function () { var noIdCatalogItem = new CatalogItem(terria); noIdCatalogItem.name = "A"; @@ -611,7 +611,7 @@ describe("CatalogGroup", function() { .then(done); }); - it("alters the id of clashing items", function(done) { + it("alters the id of clashing items", function (done) { group .updateFromJson({ type: "group", @@ -627,7 +627,7 @@ describe("CatalogGroup", function() { } ] }) - .then(function() { + .then(function () { var noIdCatalogItem = new CatalogItem(terria); noIdCatalogItem.name = "A"; @@ -645,28 +645,28 @@ describe("CatalogGroup", function() { }); }); - describe("setting isOpen", function() { - beforeEach(function() { + describe("setting isOpen", function () { + beforeEach(function () { spyOn(terria, "disclaimerListener"); }); - describe("to true when group has a disclaimer", function() { - beforeEach(function() { + describe("to true when group has a disclaimer", function () { + beforeEach(function () { group.initialMessage = {}; group.isOpen = true; }); - it("triggers a disclaimerEvent", function() { + it("triggers a disclaimerEvent", function () { expect(terria.disclaimerListener.calls.argsFor(0)[0]).toBe(group); }); }); - describe("to true when group has no disclaimer", function() { - beforeEach(function() { + describe("to true when group has no disclaimer", function () { + beforeEach(function () { group.isOpen = true; }); - it("triggers no disclaimerEvent", function() { + it("triggers no disclaimerEvent", function () { expect(terria.disclaimerListener).not.toHaveBeenCalled(); }); }); diff --git a/test/Models/Catalog/CatalogGroupSpec.ts b/test/Models/Catalog/CatalogGroupSpec.ts index 146b9eda156..485c93e0948 100644 --- a/test/Models/Catalog/CatalogGroupSpec.ts +++ b/test/Models/Catalog/CatalogGroupSpec.ts @@ -12,10 +12,10 @@ import SplitItemReference from "../../../lib/Models/Catalog/CatalogReferences/Sp import createGuid from "terriajs-cesium/Source/Core/createGuid"; import { runInAction } from "mobx"; -describe("CatalogGroup", function() { +describe("CatalogGroup", function () { let terria: Terria, json: any, catalogGroup: CatalogGroup; - beforeEach(function() { + beforeEach(function () { terria = new Terria(); json = { type: "group", @@ -48,7 +48,7 @@ describe("CatalogGroup", function() { ); }); - it("re-orders members correctly", function() { + it("re-orders members correctly", function () { expect(catalogGroup instanceof CatalogGroup).toBe(true); const item = terria.getModelById(CatalogGroup, "mama"); @@ -71,7 +71,7 @@ describe("CatalogGroup", function() { expect(item.members).toEqual(["child1", "child3", "child2"]); }); - it("throws when moving to non existent indices", function() { + it("throws when moving to non existent indices", function () { expect(catalogGroup instanceof CatalogGroup).toBe(true); const item = terria.getModelById(CatalogGroup, "mama"); @@ -89,7 +89,7 @@ describe("CatalogGroup", function() { }).toThrowError("Invalid 'newIndex' target: 3"); }); - it("loads valid items and ignores broken items", function() { + it("loads valid items and ignores broken items", function () { const groupWithBrokenItem = [ { type: "geojson", @@ -170,7 +170,7 @@ describe("CatalogGroup", function() { } }); - it("removes excluded items/groups from memberModels", function() { + it("removes excluded items/groups from memberModels", function () { json = { type: "group", id: "grandmama", @@ -228,14 +228,14 @@ describe("CatalogGroup", function() { const parent1 = terria.getModelById(CatalogGroup, "parent1"); expect(item).toBeDefined(); expect(item.type).toBe("group"); - expect(item.memberModels.map(member => member.uniqueId)).toEqual([ + expect(item.memberModels.map((member) => member.uniqueId)).toEqual([ "parent1", "parent2" ]); expect(parent1).toBeDefined(); expect(parent1.type).toBe("group"); - expect(parent1.memberModels.map(member => member.uniqueId)).toEqual([ + expect(parent1.memberModels.map((member) => member.uniqueId)).toEqual([ "grandchild2", "grandchild3" ]); @@ -248,7 +248,7 @@ describe("CatalogGroup", function() { ]); }); - it("sortMembersBy", function() { + it("sortMembersBy", function () { const item = new CatalogGroup("what", terria); item.addMembersFromJson(CommonStrata.definition, [ @@ -285,7 +285,7 @@ describe("CatalogGroup", function() { { type: "terria-reference", name: "A reference" } ]); - expect(item.memberModels.map(member => (member as any).name)).toEqual([ + expect(item.memberModels.map((member) => (member as any).name)).toEqual([ "1", "aCC", "10", @@ -297,7 +297,7 @@ describe("CatalogGroup", function() { item.setTrait(CommonStrata.user, "sortMembersBy", "name"); - expect(item.memberModels.map(member => (member as any).name)).toEqual([ + expect(item.memberModels.map((member) => (member as any).name)).toEqual([ "1", "2", "10", @@ -309,7 +309,7 @@ describe("CatalogGroup", function() { item.setTrait(CommonStrata.user, "sortMembersBy", "description"); - expect(item.memberModels.map(member => (member as any).name)).toEqual([ + expect(item.memberModels.map((member) => (member as any).name)).toEqual([ "AC", "ab", "2", @@ -367,7 +367,7 @@ describe("CatalogGroup", function() { ).throwIfUndefined(); }); - it("correctly applies traits", async function() { + it("correctly applies traits", async function () { const item = terria.getModelById(CatalogGroup, "grandmama"); await item.loadMembers(); @@ -397,7 +397,7 @@ describe("CatalogGroup", function() { expect(wmsItem.url).toBe("some WMS url"); }); - it("supports splitting items with itemProperties", async function() { + it("supports splitting items with itemProperties", async function () { const item = terria.getModelById(CatalogGroup, "grandmama"); await item.loadMembers(); diff --git a/test/Models/Catalog/CatalogGroups/OpenDataSoftCatalogGroupSpec.ts b/test/Models/Catalog/CatalogGroups/OpenDataSoftCatalogGroupSpec.ts index b2127761400..197f90825bf 100644 --- a/test/Models/Catalog/CatalogGroups/OpenDataSoftCatalogGroupSpec.ts +++ b/test/Models/Catalog/CatalogGroups/OpenDataSoftCatalogGroupSpec.ts @@ -13,11 +13,11 @@ const datasets = JSON.stringify( require("../../../../wwwroot/test/ods/datasets.json") ); -describe("OpenDataSoftCatalogGroup", function() { +describe("OpenDataSoftCatalogGroup", function () { let terria: Terria; let odsGroup: OpenDataSoftCatalogGroup; - beforeEach(function() { + beforeEach(function () { fetchMock.mock("https://example.com/api/v2/catalog/facets/", { body: facets }); @@ -31,22 +31,22 @@ describe("OpenDataSoftCatalogGroup", function() { odsGroup = new OpenDataSoftCatalogGroup("test", terria); }); - afterEach(function() { + afterEach(function () { fetchMock.restore(); }); - it("has a type", function() { + it("has a type", function () { expect(odsGroup.type).toBe("opendatasoft-group"); }); - describe("loads facets", function() { - beforeEach(async function() { + describe("loads facets", function () { + beforeEach(async function () { runInAction(() => { odsGroup.setTrait("definition", "url", "https://example.com"); }); }); - it("loadsNestedMembers", async function() { + it("loadsNestedMembers", async function () { await odsGroup.loadMembers(); const facets = odsGroup.memberModels; expect(facets.length).toEqual(6); diff --git a/test/Models/Catalog/CatalogGroups/SocrataCatalogGroupSpec.ts b/test/Models/Catalog/CatalogGroups/SocrataCatalogGroupSpec.ts index d9d0d6c4671..8338e21751a 100644 --- a/test/Models/Catalog/CatalogGroups/SocrataCatalogGroupSpec.ts +++ b/test/Models/Catalog/CatalogGroups/SocrataCatalogGroupSpec.ts @@ -12,11 +12,11 @@ const search = JSON.stringify( require("../../../../wwwroot/test/Socrata/search.json") ); -describe("SocrataCatalogGroup", function() { +describe("SocrataCatalogGroup", function () { let terria: Terria; let socrataGroup: SocrataCatalogGroup; - beforeEach(function() { + beforeEach(function () { jasmine.Ajax.install(); jasmine.Ajax.stubRequest( "http://example.com/api/catalog/v1/domains/example.com/facets?only=dataset%2Cmap" @@ -36,15 +36,15 @@ describe("SocrataCatalogGroup", function() { }); }); - afterEach(function() { + afterEach(function () { jasmine.Ajax.uninstall(); }); - it("has a type", function() { + it("has a type", function () { expect(socrataGroup.type).toBe("socrata-group"); }); - it("loads members", async function() { + it("loads members", async function () { await socrataGroup.loadMembers(); const facets = socrataGroup.memberModels; expect(facets.length).toEqual(2); diff --git a/test/Models/Catalog/CatalogGroups/ThreddsCatalogGroupSpec.ts b/test/Models/Catalog/CatalogGroups/ThreddsCatalogGroupSpec.ts index 110513df5a7..def4cc0aa8e 100644 --- a/test/Models/Catalog/CatalogGroups/ThreddsCatalogGroupSpec.ts +++ b/test/Models/Catalog/CatalogGroups/ThreddsCatalogGroupSpec.ts @@ -12,12 +12,12 @@ configure({ computedRequiresReaction: true }); -describe("ThreddsCatalogGroup", function() { +describe("ThreddsCatalogGroup", function () { let terria: Terria; let threddsCatalogGroup: ThreddsCatalogGroup; let threddsStratum: ThreddsStratum; - beforeEach(async function() { + beforeEach(async function () { terria = new Terria({ baseUrl: "./" }); @@ -31,14 +31,14 @@ describe("ThreddsCatalogGroup", function() { ); }); - it("has a type and typeName", function() { + it("has a type and typeName", function () { expect(threddsCatalogGroup.type).toBe("thredds-group"); expect(threddsCatalogGroup.typeName).toBe( i18next.t("models.thredds.nameGroup") ); }); - it("properly creates members ", async function() { + it("properly creates members ", async function () { expect(threddsCatalogGroup.members).toBeDefined(); expect(threddsCatalogGroup.members.length).toBe(3); let member0 = threddsCatalogGroup.memberModels[0]; diff --git a/test/Models/Catalog/CatalogItemSpec.js b/test/Models/Catalog/CatalogItemSpec.js index a794c820c08..6ceba6da21e 100644 --- a/test/Models/Catalog/CatalogItemSpec.js +++ b/test/Models/Catalog/CatalogItemSpec.js @@ -5,16 +5,16 @@ var Rectangle = require("terriajs-cesium/Source/Core/Rectangle").default; var CatalogItem = require("../../lib/Models/CatalogItem"); var CatalogGroup = require("../../lib/Models/CatalogGroup"); var Catalog = require("../../lib/Models/Catalog"); -var DataSourceClock = require("terriajs-cesium/Source/DataSources/DataSourceClock") - .default; +var DataSourceClock = + require("terriajs-cesium/Source/DataSources/DataSourceClock").default; var JulianDate = require("terriajs-cesium/Source/Core/JulianDate").default; var Terria = require("../../../lib/Models/Terria"); var createCatalogMemberFromType = require("../../../lib/Models/Catalog/createCatalogMemberFromType"); -describe("CatalogItem", function() { +describe("CatalogItem", function () { var terria; var item; - beforeEach(function() { + beforeEach(function () { terria = new Terria({ baseUrl: "./" }); @@ -23,7 +23,7 @@ describe("CatalogItem", function() { createCatalogMemberFromType.register("item", CatalogItem); }); - it("uses the url as the direct dataUrl", function() { + it("uses the url as the direct dataUrl", function () { item.url = "http://foo.bar"; expect(item.dataUrlType).toBe("direct"); @@ -34,7 +34,7 @@ describe("CatalogItem", function() { expect(item.dataUrl).toBe("http://something.else"); }); - it("explicit dataUrl and dataUrlType overrides using url", function() { + it("explicit dataUrl and dataUrlType overrides using url", function () { item.url = "http://foo.bar"; item.dataUrl = "http://something.else"; item.dataUrlType = "wfs"; @@ -48,14 +48,14 @@ describe("CatalogItem", function() { expect(item.dataUrlType).toBe("wfs"); }); - it("can zoom to only if rectangle is defined", function() { + it("can zoom to only if rectangle is defined", function () { expect(item.disableZoomTo).toBeTruthy(); // When a rectangle is defined, it can be zoomed-to. item.rectangle = Rectangle.fromDegrees(1, 2, 3, 4); expect(item.disableZoomTo).toBeFalsy(); }); - it("keeps its .clock.currentTime and .currentTime in sync with terria.clock.currentTime when .useOwnClock is false", function() { + it("keeps its .clock.currentTime and .currentTime in sync with terria.clock.currentTime when .useOwnClock is false", function () { item.useOwnClock = false; item.clock = new DataSourceClock(); item.clock.currentTime = JulianDate.fromIso8601("2019-07-03"); @@ -91,7 +91,7 @@ describe("CatalogItem", function() { ); }); - it("does not change .clock.currentTime or .currentTime when terria.clock is updated when .useOwnClock is true", function() { + it("does not change .clock.currentTime or .currentTime when terria.clock is updated when .useOwnClock is true", function () { item.useOwnClock = true; item.clock = new DataSourceClock(); item.clock.currentTime = JulianDate.fromIso8601("2019-07-03"); @@ -127,7 +127,7 @@ describe("CatalogItem", function() { ); }); - it("correctly updates .clock.currentTime and .currentTime when .useOwnClock true -> false", function() { + it("correctly updates .clock.currentTime and .currentTime when .useOwnClock true -> false", function () { item.useOwnClock = true; item.clock = new DataSourceClock(); item.clock.currentTime = JulianDate.fromIso8601("2019-07-03"); @@ -153,7 +153,7 @@ describe("CatalogItem", function() { ); }); - it("correctly updates .clock.currentTime and .currentTime when .useOwnClock false -> true", function() { + it("correctly updates .clock.currentTime and .currentTime when .useOwnClock false -> true", function () { item.useOwnClock = false; item.clock = new DataSourceClock(); item.clock.currentTime = JulianDate.fromIso8601("2019-07-03"); @@ -182,7 +182,7 @@ describe("CatalogItem", function() { ); }); - it("setting .currentTime correctly updates .clock.currentTime, .currentTime and terria.clock.currentTime when .useOwnClock is true", function() { + it("setting .currentTime correctly updates .clock.currentTime, .currentTime and terria.clock.currentTime when .useOwnClock is true", function () { item.useOwnClock = true; item.clock = new DataSourceClock(); item.clock.currentTime = JulianDate.fromIso8601("2019-07-03"); @@ -209,7 +209,7 @@ describe("CatalogItem", function() { ); }); - it("setting .currentTime correctly updates .clock.currentTime, .currentTime and terria.clock.currentTime when .useOwnClock is false", function() { + it("setting .currentTime correctly updates .clock.currentTime, .currentTime and terria.clock.currentTime when .useOwnClock is false", function () { item.useOwnClock = false; item.clock = new DataSourceClock(); item.clock.currentTime = JulianDate.fromIso8601("2019-07-03"); @@ -238,14 +238,14 @@ describe("CatalogItem", function() { ); }); - describe("time series data: ", function() { - beforeEach(function() { + describe("time series data: ", function () { + beforeEach(function () { spyOn(terria.timelineStack, "addToTop"); spyOn(terria.timelineStack, "remove"); }); - describe("when item has clock", function() { - beforeEach(function() { + describe("when item has clock", function () { + beforeEach(function () { item.clock = { getValue: jasmine.createSpy("getValue"), definitionChanged: { @@ -254,19 +254,19 @@ describe("CatalogItem", function() { }; }); - it("item should be added to top of timelineStack when enabled", function(done) { + it("item should be added to top of timelineStack when enabled", function (done) { item.isEnabled = true; - item._loadForEnablePromise.then(function() { + item._loadForEnablePromise.then(function () { expect(terria.timelineStack.addToTop).toHaveBeenCalledWith(item); done(); }); }); - it("should be removed from timelineStack when disabled", function(done) { + it("should be removed from timelineStack when disabled", function (done) { item.isEnabled = true; - item._loadForEnablePromise.then(function() { + item._loadForEnablePromise.then(function () { item.isEnabled = false; expect(terria.timelineStack.removeLayer).toHaveBeenCalledWith(item); done(); @@ -274,11 +274,11 @@ describe("CatalogItem", function() { }); }); - describe("when item has no clock", function() { - it("should not call timelineStack", function(done) { + describe("when item has no clock", function () { + it("should not call timelineStack", function (done) { item.isEnabled = true; - item._loadForEnablePromise.then(function() { + item._loadForEnablePromise.then(function () { expect(terria.timelineStack.addToTop).not.toHaveBeenCalled(); done(); }); @@ -286,10 +286,10 @@ describe("CatalogItem", function() { }); }); - describe("ids", function() { + describe("ids", function () { var catalog; - beforeEach(function(done) { + beforeEach(function (done) { catalog = new Catalog(terria); catalog @@ -324,39 +324,39 @@ describe("CatalogItem", function() { .then(done); }); - describe("uniqueId", function() { - it("should return path if no id is specified", function() { + describe("uniqueId", function () { + it("should return path if no id is specified", function () { expect(catalog.group.items[0].items[0].uniqueId).toBe( "Root Group/Group/A" ); }); - it("should return id field if one is specified", function() { + it("should return id field if one is specified", function () { expect(catalog.group.items[0].items[1].uniqueId).toBe("thisIsAnId"); }); }); - describe("allShareKeys", function() { - it("should return just the path if no id or shareKeys are specified", function() { + describe("allShareKeys", function () { + it("should return just the path if no id or shareKeys are specified", function () { expect(catalog.group.items[0].items[0].allShareKeys).toEqual([ "Root Group/Group/A" ]); }); - it("should return just the id if id but no shareKeys are specified", function() { + it("should return just the id if id but no shareKeys are specified", function () { expect(catalog.group.items[0].items[1].allShareKeys).toEqual([ "thisIsAnId" ]); }); - it("should return the path and shareKeys if no id specified", function() { + it("should return the path and shareKeys if no id specified", function () { expect(catalog.group.items[0].items[2].allShareKeys).toEqual([ "Root Group/Group/C", "Another/Path" ]); }); - it("should return the id and shareKeys if id specified", function() { + it("should return the id and shareKeys if id specified", function () { expect(catalog.group.items[0].items[3].allShareKeys).toEqual([ "thisIsAnotherId", "This/Is/A/Path", @@ -366,30 +366,30 @@ describe("CatalogItem", function() { }); }); - describe("setting isEnabled", function() { - beforeEach(function() { + describe("setting isEnabled", function () { + beforeEach(function () { item.nowViewingCatalogItem = {}; spyOn(terria, "disclaimerListener"); }); - describe("to true when item has a disclaimer", function() { - beforeEach(function() { + describe("to true when item has a disclaimer", function () { + beforeEach(function () { item.initialMessage = {}; item.isEnabled = true; }); - it("triggers a disclaimerEvent", function() { + it("triggers a disclaimerEvent", function () { expect(terria.disclaimerListener.calls.argsFor(0)[0]).toBe(item); }); - it("doesn't immediately finish enabling the view", function() { + it("doesn't immediately finish enabling the view", function () { expect(item.nowViewingCatalogItem.isEnabled).not.toBe(true); }); - it("finishes enabling the view after the callback passed to disclaimerEvent is executed", function(done) { + it("finishes enabling the view after the callback passed to disclaimerEvent is executed", function (done) { terria.disclaimerListener.calls.argsFor(0)[1](); item._loadForEnablePromise - .then(function() { + .then(function () { expect(item.nowViewingCatalogItem.isEnabled).toBe(true); }) .then(done) @@ -397,18 +397,18 @@ describe("CatalogItem", function() { }); }); - describe("to true when item has no disclaimer", function() { - beforeEach(function() { + describe("to true when item has no disclaimer", function () { + beforeEach(function () { item.isEnabled = true; }); - it("triggers no disclaimerEvent", function() { + it("triggers no disclaimerEvent", function () { expect(terria.disclaimerListener).not.toHaveBeenCalled(); }); - it("finishes enabling the view", function(done) { + it("finishes enabling the view", function (done) { item._loadForEnablePromise - .then(function() { + .then(function () { expect(item.nowViewingCatalogItem.isEnabled).toBe(true); }) .then(done) diff --git a/test/Models/Catalog/CatalogItems/ApiTableCatalogtemSpec.ts b/test/Models/Catalog/CatalogItems/ApiTableCatalogtemSpec.ts index 43414ea1f94..dc3a3ac3620 100644 --- a/test/Models/Catalog/CatalogItems/ApiTableCatalogtemSpec.ts +++ b/test/Models/Catalog/CatalogItems/ApiTableCatalogtemSpec.ts @@ -16,21 +16,21 @@ const valueApiResponse = JSON.stringify( require("../../../../wwwroot/test/JSON-api/value_api_response.json") ); -describe("ApiTableCatalogItem", function() { +describe("ApiTableCatalogItem", function () { let terria: Terria; let apiCatalogItem: ApiTableCatalogItem; - beforeEach(function() { + beforeEach(function () { terria = new Terria(); apiCatalogItem = new ApiTableCatalogItem("test", terria); jasmine.Ajax.install(); }); - afterEach(function() { + afterEach(function () { jasmine.Ajax.uninstall(); }); - it("creates a table from api calls", async function() { + it("creates a table from api calls", async function () { const valueApiIdx = 0; const positionApiIdx = 1; runInAction(() => { diff --git a/test/Models/Catalog/CatalogItems/AssImpCatalogItemSpec.ts b/test/Models/Catalog/CatalogItems/AssImpCatalogItemSpec.ts index e3977b54201..f082d5dcdfe 100644 --- a/test/Models/Catalog/CatalogItems/AssImpCatalogItemSpec.ts +++ b/test/Models/Catalog/CatalogItems/AssImpCatalogItemSpec.ts @@ -6,11 +6,11 @@ import updateModelFromJson from "../../../../lib/Models/Definition/updateModelFr import Terria from "../../../../lib/Models/Terria"; import { GlTf } from "../../../../lib/Models/Catalog/Gltf/GLTF"; -describe("AssImpCatalogItem", function() { +describe("AssImpCatalogItem", function () { let model: AssImpCatalogItem; const terria = new Terria(); - beforeEach(function() { + beforeEach(function () { model = new AssImpCatalogItem("test", terria); updateModelFromJson(model, CommonStrata.override, { urls: [ @@ -21,11 +21,11 @@ describe("AssImpCatalogItem", function() { }); }); - it("is Mappable", function() { + it("is Mappable", function () { expect(MappableMixin.isMixedInto(model)).toBeTruthy(); }); - it("creates a DataSource with a model", async function() { + it("creates a DataSource with a model", async function () { await model.loadMapItems(); expect(model.mapItems.length).toBe(1); expect(model.mapItems[0].entities.values.length).toBe(1); @@ -33,7 +33,7 @@ describe("AssImpCatalogItem", function() { expect(model.mapItems[0].entities.values[0].model?.uri).toBeDefined(); }); - it("applies baseUrl", async function() { + it("applies baseUrl", async function () { await model.loadMapItems(); const gltfUri = model.mapItems[0].entities.values[0].model?.uri; @@ -51,7 +51,7 @@ describe("AssImpCatalogItem", function() { expect(gltfJson.images?.[0].uri).toBe("some-base-url/cube_texture.png"); }); - it("supports zip file", async function() { + it("supports zip file", async function () { model.setTrait(CommonStrata.override, "urls", ["test/AssImp/zip-test.zip"]); await model.loadMapItems(); @@ -70,12 +70,12 @@ describe("AssImpCatalogItem", function() { expect(gltfJson.images?.[0].uri?.startsWith("blob:")).toBeTruthy(); }); - describe("hasLocalData", function() { - it("should be false by default", function() { + describe("hasLocalData", function () { + it("should be false by default", function () { expect(model.hasLocalData).toBeFalsy(); }); - it("should be true if the catalog item has local file data", function() { + it("should be true if the catalog item has local file data", function () { model.setFileInput(new Blob()); expect(model.hasLocalData).toBeTruthy(); }); diff --git a/test/Models/Catalog/CatalogItems/CartoMapCatalogItemSpec.ts b/test/Models/Catalog/CatalogItems/CartoMapCatalogItemSpec.ts index 951e48a6920..ab8ffe816e7 100644 --- a/test/Models/Catalog/CatalogItems/CartoMapCatalogItemSpec.ts +++ b/test/Models/Catalog/CatalogItems/CartoMapCatalogItemSpec.ts @@ -12,19 +12,19 @@ configure({ computedRequiresReaction: true }); -describe("CartoMapCatalogItem", function() { +describe("CartoMapCatalogItem", function () { let item: CartoMapCatalogItem; - beforeEach(function() { + beforeEach(function () { item = new CartoMapCatalogItem("test", new Terria()); }); - it("has a type", function() { + it("has a type", function () { expect(CartoMapCatalogItem.type).toBe("carto"); }); - describe("when tileUrl has been set", function() { - beforeEach(function() { + describe("when tileUrl has been set", function () { + beforeEach(function () { const tileUrl = "abc"; item.strata.set( CartoLoadableStratum.stratumName, @@ -32,7 +32,7 @@ describe("CartoMapCatalogItem", function() { ); }); - it("should create an imageryProvider with correct properties", function() { + it("should create an imageryProvider with correct properties", function () { const stratum = item.strata.get("cartoLoadable"); expect( @@ -56,8 +56,8 @@ describe("CartoMapCatalogItem", function() { } }); - describe("mapItem", function() { - it("has the correct `alpha` value", function() { + describe("mapItem", function () { + it("has the correct `alpha` value", function () { if (!ImageryParts.is(item.mapItems[0])) throw new Error("Expected MapItem to be an ImageryParts"); runInAction(() => item.setTrait("definition", "opacity", 0.42)); @@ -66,7 +66,7 @@ describe("CartoMapCatalogItem", function() { expect(item.mapItems[0].alpha).toBe(0.9); }); - it("has the correct `show` value", function() { + it("has the correct `show` value", function () { if (!ImageryParts.is(item.mapItems[0])) throw new Error("Expected MapItem to be an ImageryParts"); runInAction(() => item.setTrait("definition", "show", false)); @@ -75,7 +75,7 @@ describe("CartoMapCatalogItem", function() { expect(item.mapItems[0].show).toBe(true); }); - it("has the correct `clippingRectangle` value", function() { + it("has the correct `clippingRectangle` value", function () { const rectangleDegrees = { west: 10, south: -15, diff --git a/test/Models/Catalog/CatalogItems/Cesium3DTilesCatalogItemSpec.ts b/test/Models/Catalog/CatalogItems/Cesium3DTilesCatalogItemSpec.ts index 551cc75aa63..e4f8683a3c1 100644 --- a/test/Models/Catalog/CatalogItems/Cesium3DTilesCatalogItemSpec.ts +++ b/test/Models/Catalog/CatalogItems/Cesium3DTilesCatalogItemSpec.ts @@ -24,37 +24,37 @@ import { FilterTraits } from "../../../../lib/Traits/TraitsClasses/Cesium3dTilesTraits"; -describe("Cesium3DTilesCatalogItemSpec", function() { +describe("Cesium3DTilesCatalogItemSpec", function () { let item: Cesium3DTilesCatalogItem; const testUrl = "/test/Cesium3DTiles/tileset.json"; - beforeEach(function() { + beforeEach(function () { item = new Cesium3DTilesCatalogItem("test", new Terria()); runInAction(() => { item.setTrait("definition", "url", testUrl); }); }); - it("should have a type and a typeName", function() { + it("should have a type and a typeName", function () { expect(Cesium3DTilesCatalogItem.type).toBe("3d-tiles"); expect(item.type).toBe("3d-tiles"); expect(item.typeName).toBe(i18next.t("models.cesiumTerrain.name3D")); }); - it("supports zooming", function() { + it("supports zooming", function () { expect(item.disableZoomTo).toBeFalsy(); }); - it("supports show info", function() { + it("supports show info", function () { expect(item.disableAboutData).toBeFalsy(); }); - it("is mappable", function() { + it("is mappable", function () { expect(item.isMappable).toBeTruthy(); }); - describe("showExpressionFromFilters", function() { - it("correctly converts filters to show expression", function() { + describe("showExpressionFromFilters", function () { + it("correctly converts filters to show expression", function () { runInAction(() => item.setTrait("definition", "filters", [ createStratumLevelFilter(-2, 11, -1, 10) @@ -66,8 +66,8 @@ describe("Cesium3DTilesCatalogItemSpec", function() { ); }); - describe("when minimumShown and maximumShown are outside the value range", function() { - it("should be undefined", function() { + describe("when minimumShown and maximumShown are outside the value range", function () { + it("should be undefined", function () { runInAction(() => item.setTrait("definition", "filters", [ createStratumLevelFilter(-2, 11, -2, 11) @@ -79,9 +79,9 @@ describe("Cesium3DTilesCatalogItemSpec", function() { }); }); - describe("cesiumTileStyle", function() { + describe("cesiumTileStyle", function () { let style: any; - beforeEach(async function() { + beforeEach(async function () { runInAction(() => item.setTrait("definition", "style", { color: "vec4(${Height})", @@ -95,16 +95,16 @@ describe("Cesium3DTilesCatalogItemSpec", function() { style = item.cesiumTileStyle; }); - it("is a Cesium3DTileStyle", function() { + it("is a Cesium3DTileStyle", function () { expect(style instanceof Cesium3DTileStyle).toBeTruthy(); }); - it("creates the style correctly", function() { + it("creates the style correctly", function () { expect(style.show._expression).toBe("${Height} > 30"); expect(style.color._expression).toBe("vec4(${Height})"); }); - it("reflects changes to the catalog item's opacity in its style", async function() { + it("reflects changes to the catalog item's opacity in its style", async function () { item.setTrait("definition", "style", { color: "#ff0000" }); @@ -117,8 +117,8 @@ describe("Cesium3DTilesCatalogItemSpec", function() { expect(style.color._expression).toBe("color('#ff0000', ${opacity})"); }); - describe("when filters are specified", function() { - it("adds the filters to the style", async function() { + describe("when filters are specified", function () { + it("adds the filters to the style", async function () { runInAction(() => item.setTrait("definition", "filters", [ createStratumLevelFilter(-2, 11, 5, 8) @@ -133,9 +133,9 @@ describe("Cesium3DTilesCatalogItemSpec", function() { }); }); - describe("when loading", function() { - describe("if ionAssetId is provided", function() { - it("loads the IonResource", async function() { + describe("when loading", function () { + describe("if ionAssetId is provided", function () { + it("loads the IonResource", async function () { runInAction(() => { item.setTrait("definition", "ionAssetId", 4242); item.setTrait("definition", "ionAccessToken", "fakeToken"); @@ -152,7 +152,7 @@ describe("Cesium3DTilesCatalogItemSpec", function() { }); }); - xit("sets the extra options", async function() { + xit("sets the extra options", async function () { runInAction(() => { item.setTrait( "definition", @@ -168,9 +168,9 @@ describe("Cesium3DTilesCatalogItemSpec", function() { }); }); - describe("after loading", function() { + describe("after loading", function () { let dispose: () => void; - beforeEach(async function() { + beforeEach(async function () { try { await item.loadMapItems(); } catch {} @@ -181,33 +181,33 @@ describe("Cesium3DTilesCatalogItemSpec", function() { ); }); - afterEach(function() { + afterEach(function () { dispose(); }); - describe("mapItems", function() { - it("has exactly 1 mapItem", function() { + describe("mapItems", function () { + it("has exactly 1 mapItem", function () { expect(item.mapItems.length).toBe(1); }); - describe("the mapItem", function() { - it("should be a Cesium3DTileset", function() { + describe("the mapItem", function () { + it("should be a Cesium3DTileset", function () { expect(item.mapItems[0] instanceof Cesium3DTileset).toBeTruthy(); }); - describe("the tileset", function() { - it("sets `show`", function() { + describe("the tileset", function () { + it("sets `show`", function () { runInAction(() => item.setTrait("definition", "show", false)); expect(item.mapItems[0].show).toBe(false); }); - it("sets the shadow mode", function() { + it("sets the shadow mode", function () { runInAction(() => item.setTrait("definition", "shadows", "CAST")); const tileset = item.mapItems[0] as Cesium3DTileset; expect(tileset.shadows).toBe(ShadowMode.CAST_ONLY); }); - it("sets the color blend mode", function() { + it("sets the color blend mode", function () { runInAction(() => { item.setTrait("definition", "colorBlendMode", "REPLACE"); const tileset = item.mapItems[0] as Cesium3DTileset; @@ -217,7 +217,7 @@ describe("Cesium3DTilesCatalogItemSpec", function() { }); }); - it("sets the color blend amount", function() { + it("sets the color blend amount", function () { runInAction(() => { item.setTrait("user", "colorBlendAmount", 0.42); const tileset = item.mapItems[0] as Cesium3DTileset; @@ -225,13 +225,13 @@ describe("Cesium3DTilesCatalogItemSpec", function() { }); }); - it("sets the shadow mode", function() { + it("sets the shadow mode", function () { runInAction(() => item.setTrait("definition", "shadows", "CAST")); const tileset = item.mapItems[0] as Cesium3DTileset; expect(tileset.shadows).toBe(ShadowMode.CAST_ONLY); }); - it("sets the style", function() { + it("sets the style", function () { runInAction(() => item.setTrait("definition", "style", { show: "${ZipCode} === '19341'" @@ -255,14 +255,14 @@ describe("Cesium3DTilesCatalogItemSpec", function() { // }); // }); - it("sets the rootTransform to IDENTITY", function() { + it("sets the rootTransform to IDENTITY", function () { const tileset = item.mapItems[0] as Cesium3DTileset; expect( Matrix4.equals(tileset.root.transform, Matrix4.IDENTITY) ).toBeTruthy(); }); - it("computes a new model matrix from the given transformations", async function() { + it("computes a new model matrix from the given transformations", async function () { item.setTrait( CommonStrata.user, "rotation", @@ -310,7 +310,7 @@ describe("Cesium3DTilesCatalogItemSpec", function() { }); }); - it("correctly builds `Feature` from picked Cesium3DTileFeature", function() { + it("correctly builds `Feature` from picked Cesium3DTileFeature", function () { const picked = new Cesium3DTileFeature(); spyOn(picked, "getPropertyNames").and.returnValue([]); const feature = item.buildFeatureFromPickResult(Cartesian2.ZERO, picked); @@ -320,7 +320,7 @@ describe("Cesium3DTilesCatalogItemSpec", function() { } }); - it("can change the visibility of a feature", function() { + it("can change the visibility of a feature", function () { const feature = new Cesium3DTileFeature(); spyOn(feature, "getProperty").and.callFake((prop: string) => { const props: any = { doorNumber: 10, color: "red" }; diff --git a/test/Models/Catalog/CatalogItems/CesiumTerrainCatalogItemSpec.js b/test/Models/Catalog/CatalogItems/CesiumTerrainCatalogItemSpec.js index 5186000d865..818d28a8643 100644 --- a/test/Models/Catalog/CatalogItems/CesiumTerrainCatalogItemSpec.js +++ b/test/Models/Catalog/CatalogItems/CesiumTerrainCatalogItemSpec.js @@ -1,29 +1,29 @@ "use strict"; var CesiumTerrainCatalogItem = require("../../../../lib/Models/Catalog/CatalogItems/CesiumTerrainCatalogItem"); -var CesiumTerrainProvider = require("terriajs-cesium/Source/Core/CesiumTerrainProvider") - .default; +var CesiumTerrainProvider = + require("terriajs-cesium/Source/Core/CesiumTerrainProvider").default; var loadWithXhr = require("../../../../lib/Core/loadWithXhr"); var Terria = require("../../../../lib/Models/Terria"); -describe("CesiumTerrainCatalogItem", function() { +describe("CesiumTerrainCatalogItem", function () { var terria; var item; - beforeEach(function() { + beforeEach(function () { terria = new Terria({ baseUrl: "./" }); item = new CesiumTerrainCatalogItem(terria); }); - it("has correct type", function() { + it("has correct type", function () { expect(item.type).toBe("cesium-terrain"); expect(item.typeName).toContain("Cesium"); }); - it("creates imagery provider with correct URL", function(done) { - spyOn(loadWithXhr, "load").and.callFake(function( + it("creates imagery provider with correct URL", function (done) { + spyOn(loadWithXhr, "load").and.callFake(function ( url, responseType, method, @@ -50,7 +50,7 @@ describe("CesiumTerrainCatalogItem", function() { var terrainProvider = item._createTerrainProvider(); expect(terrainProvider instanceof CesiumTerrainProvider).toBe(true); terrainProvider.readyPromise - .then(function() { + .then(function () { expect(loadWithXhr.load.calls.any()).toBe(true); }) .then(done); diff --git a/test/Models/Catalog/CatalogItems/CesiumTerrainCatalogItemSpec.ts b/test/Models/Catalog/CatalogItems/CesiumTerrainCatalogItemSpec.ts index 3e51d9d6101..6593af18ced 100644 --- a/test/Models/Catalog/CatalogItems/CesiumTerrainCatalogItemSpec.ts +++ b/test/Models/Catalog/CatalogItems/CesiumTerrainCatalogItemSpec.ts @@ -4,7 +4,7 @@ import CommonStrata from "../../../../lib/Models/Definition/CommonStrata"; import CesiumTerrainProvider from "terriajs-cesium/Source/Core/CesiumTerrainProvider"; import { runInAction } from "mobx"; -describe("CesiumTerrainCatalogItem", function() { +describe("CesiumTerrainCatalogItem", function () { let terria: Terria; let item: CesiumTerrainCatalogItem; @@ -16,18 +16,18 @@ describe("CesiumTerrainCatalogItem", function() { tiles: ["{z}/{x}/{y}.terrain?v={version}"] }; - beforeEach(function() { + beforeEach(function () { terria = new Terria(); item = new CesiumTerrainCatalogItem(undefined, terria); jasmine.Ajax.install(); }); - afterEach(function() { + afterEach(function () { jasmine.Ajax.uninstall(); }); - describe("loading", function() { - it("rejects with an error when there is a network error", async function() { + describe("loading", function () { + it("rejects with an error when there is a network error", async function () { jasmine.Ajax.stubRequest(/no-such-server/).andReturn({ status: undefined }); @@ -38,7 +38,7 @@ describe("CesiumTerrainCatalogItem", function() { ); }); - it("can load terrain from a URL", async function() { + it("can load terrain from a URL", async function () { jasmine.Ajax.stubRequest(/foo/).andReturn({ status: 200, responseJSON: validResponse @@ -52,7 +52,7 @@ describe("CesiumTerrainCatalogItem", function() { }); }); - it("can load terrain from `ionAssetId`", async function() { + it("can load terrain from `ionAssetId`", async function () { // Stub request from IonResource jasmine.Ajax.stubRequest(/424242/).andReturn({ status: 200, @@ -77,8 +77,8 @@ describe("CesiumTerrainCatalogItem", function() { }); }); - describe("mapItems", function() { - it("should be empty when `show` is false", async function() { + describe("mapItems", function () { + it("should be empty when `show` is false", async function () { jasmine.Ajax.stubRequest(/foo/).andReturn({ status: 200, responseJSON: validResponse diff --git a/test/Models/Catalog/CatalogItems/CompositeCatalogItemSpec.ts b/test/Models/Catalog/CatalogItems/CompositeCatalogItemSpec.ts index e03b0b74dbe..864320395bd 100644 --- a/test/Models/Catalog/CatalogItems/CompositeCatalogItemSpec.ts +++ b/test/Models/Catalog/CatalogItems/CompositeCatalogItemSpec.ts @@ -7,18 +7,18 @@ import Terria from "../../../../lib/Models/Terria"; import CommonStrata from "../../../../lib/Models/Definition/CommonStrata"; import { runInAction } from "mobx"; -describe("CompositeCatalogItem", function() { +describe("CompositeCatalogItem", function () { let terria: Terria; let composite: CompositeCatalogItem; - beforeEach(function() { + beforeEach(function () { terria = new Terria({ baseUrl: "./" }); composite = new CompositeCatalogItem("test", terria); }); - it("loads map items after members are added", function(done) { + it("loads map items after members are added", function (done) { const item1 = new GeoJsonCatalogItem("item1", terria); const item2 = new WebMapServiceCatalogItem("item2", terria); const item3 = new WebMapServiceCatalogItem("item3", terria); @@ -57,7 +57,7 @@ describe("CompositeCatalogItem", function() { }); }); - it("updates from json, preserving order", function() { + it("updates from json, preserving order", function () { const json = { members: [ { @@ -82,7 +82,7 @@ describe("CompositeCatalogItem", function() { ); }); - it("syncs visibility to its members", function() { + it("syncs visibility to its members", function () { const item1 = new GeoJsonCatalogItem("item1", terria); const item2 = new WebMapServiceCatalogItem("item2", terria); diff --git a/test/Models/Catalog/CatalogItems/CsvCatalogItemSpec.js b/test/Models/Catalog/CatalogItems/CsvCatalogItemSpec.js index b81833630ba..4d824bfa70c 100644 --- a/test/Models/Catalog/CatalogItems/CsvCatalogItemSpec.js +++ b/test/Models/Catalog/CatalogItems/CsvCatalogItemSpec.js @@ -34,37 +34,37 @@ function featureColor(csvItem, i) { return csvItem.dataSource.entities.values[i]._point._color._value; } -describe("CsvCatalogItem with lat and lon", function() { +describe("CsvCatalogItem with lat and lon", function () { var terria; var csvItem; - beforeEach(function() { + beforeEach(function () { terria = new Terria({ baseUrl: "./" }); csvItem = new CsvCatalogItem(terria); }); - it("has sensible type and typeName", function() { + it("has sensible type and typeName", function () { expect(csvItem.type).toBe("csv"); expect(csvItem.typeName).toBe("Comma-Separated Values (CSV)"); }); - it("throws if constructed without a Terria instance", function() { - expect(function() { + it("throws if constructed without a Terria instance", function () { + expect(function () { var viewModel = new CsvCatalogItem(); // eslint-disable-line no-unused-vars }).toThrow(); }); - it("can be constructed", function() { + it("can be constructed", function () { expect(csvItem).toBeDefined(); }); - it("is derived from CatalogItem", function() { + it("is derived from CatalogItem", function () { expect(csvItem instanceof CatalogItem).toBe(true); }); - it("can update from json", function() { + it("can update from json", function () { var dataStr = "col1, col2\ntest, 0"; csvItem.updateFromJson({ name: "Name", @@ -86,7 +86,7 @@ describe("CsvCatalogItem with lat and lon", function() { expect(csvItem.dataSourceUrl).toBe("none"); }); - it("uses reasonable defaults for updateFromJson", function() { + it("uses reasonable defaults for updateFromJson", function () { csvItem.updateFromJson({}); expect(csvItem.name).toBe("Unnamed Item"); @@ -99,7 +99,7 @@ describe("CsvCatalogItem with lat and lon", function() { expect(csvItem.dataCustodian).toBeUndefined(); }); - it("can be round-tripped with serializeToJson and updateFromJson", function() { + it("can be round-tripped with serializeToJson and updateFromJson", function () { var dataStr = "col1, col2\ntest, 0"; csvItem.updateFromJson({ name: "Name", @@ -131,11 +131,11 @@ describe("CsvCatalogItem with lat and lon", function() { expect(reconstructed.dataUrlType).toEqual(csvItem.dataUrlType); }); - it("is correctly loading csv data from a file", function(done) { + it("is correctly loading csv data from a file", function (done) { csvItem.url = "test/csv/minimal.csv"; csvItem .load() - .then(function() { + .then(function () { expect(csvItem.dataSource).toBeDefined(); expect(csvItem.dataSource.tableStructure).toBeDefined(); expect(csvItem.dataSource.tableStructure.columns.length).toEqual(5); @@ -144,11 +144,11 @@ describe("CsvCatalogItem with lat and lon", function() { .then(done); }); - it("is able to generate a Legend", function(done) { + it("is able to generate a Legend", function (done) { csvItem.url = "test/csv/minimal.csv"; csvItem .load() - .then(function() { + .then(function () { expect(csvItem.legendUrl).toBeDefined(); expect(csvItem.legendUrl.mimeType).toBeDefined(); expect(csvItem.legendUrl.url).toBeDefined(); @@ -157,11 +157,11 @@ describe("CsvCatalogItem with lat and lon", function() { .then(done); }); - it('identifies "lat" and "lon" fields', function(done) { + it('identifies "lat" and "lon" fields', function (done) { csvItem.updateFromJson({ data: "lat,lon,value\n-37,145,10" }); csvItem .load() - .then(function() { + .then(function () { expect(csvItem.dataSource.tableStructure.hasLatitudeAndLongitude).toBe( true ); @@ -170,11 +170,11 @@ describe("CsvCatalogItem with lat and lon", function() { .then(done); }); - it('identifies "latitude" and "longitude" fields', function(done) { + it('identifies "latitude" and "longitude" fields', function (done) { csvItem.updateFromJson({ data: "latitude,longitude,value\n-37,145,10" }); csvItem .load() - .then(function() { + .then(function () { expect(csvItem.dataSource.tableStructure.hasLatitudeAndLongitude).toBe( true ); @@ -183,13 +183,13 @@ describe("CsvCatalogItem with lat and lon", function() { .then(done); }); - it('does not mistakenly identify "latvian" and "lone_person" fields', function(done) { + it('does not mistakenly identify "latvian" and "lone_person" fields', function (done) { csvItem.updateFromJson({ data: "latvian,lone_person,lat,lon,value\n-37,145,-37,145,10" }); csvItem .load() - .then(function() { + .then(function () { expect( csvItem.dataSource.tableStructure.columnsByType[VarType.LON][0].name ).toEqual("lon"); @@ -201,11 +201,11 @@ describe("CsvCatalogItem with lat and lon", function() { .then(done); }); - it("handles one line with enum", function(done) { + it("handles one line with enum", function (done) { csvItem.updateFromJson({ data: "lat,lon,org\n-37,145,test" }); csvItem .load() - .then(function() { + .then(function () { expect(csvItem.dataSource.tableStructure.hasLatitudeAndLongitude).toBe( true ); @@ -215,13 +215,13 @@ describe("CsvCatalogItem with lat and lon", function() { .then(done); }); - it("handles numeric fields containing (quoted) thousands commas", function(done) { + it("handles numeric fields containing (quoted) thousands commas", function (done) { csvItem.updateFromJson({ data: 'lat,lon,value\n-37,145,"1,000"\n-38,145,"234,567.89"' }); csvItem .load() - .then(function() { + .then(function () { var tableStructure = csvItem.dataSource.tableStructure; expect(tableStructure.hasLatitudeAndLongitude).toBe(true); expect(tableStructure.columns[2].values[0]).toEqual(1000); @@ -231,11 +231,11 @@ describe("CsvCatalogItem with lat and lon", function() { .then(done); }); - it("handles missing lines", function(done) { + it("handles missing lines", function (done) { csvItem.url = "test/csv/blank_line.csv"; csvItem .load() - .then(function() { + .then(function () { var tableStructure = csvItem.dataSource.tableStructure; var latColumn = tableStructure.columnsByType[VarType.LAT][0]; var lonColumn = tableStructure.columnsByType[VarType.LON][0]; @@ -248,11 +248,11 @@ describe("CsvCatalogItem with lat and lon", function() { .then(done); }); - it("handles enum fields", function(done) { + it("handles enum fields", function (done) { csvItem.url = "test/csv/lat_lon_enum.csv"; csvItem .load() - .then(function() { + .then(function () { expect(csvItem.dataSource.tableStructure.activeItems[0].name).toBe( "enum" ); @@ -261,14 +261,14 @@ describe("CsvCatalogItem with lat and lon", function() { .then(done); }); - it("sets active variable to dataVariable if provided", function(done) { + it("sets active variable to dataVariable if provided", function (done) { csvItem.url = "test/csv/lat_lon_enum_val.csv"; csvItem._tableStyle = new TableStyle({ dataVariable: "val" }); csvItem .load() - .then(function() { + .then(function () { expect(csvItem.dataSource.tableStructure.activeItems[0].name).toBe( "val" ); @@ -277,25 +277,25 @@ describe("CsvCatalogItem with lat and lon", function() { .then(done); }); - it("does not set an active variable to dataVariable if null", function(done) { + it("does not set an active variable to dataVariable if null", function (done) { csvItem.url = "test/csv/lat_lon_enum_val.csv"; csvItem._tableStyle = new TableStyle({ dataVariable: null }); csvItem .load() - .then(function() { + .then(function () { expect(csvItem.dataSource.tableStructure.activeItems.length).toEqual(0); }) .catch(fail) .then(done); }); - it("colors enum fields the same (only) when the value is the same", function(done) { + it("colors enum fields the same (only) when the value is the same", function (done) { csvItem.url = "test/csv/lat_lon_enum.csv"; csvItem .load() - .then(function() { + .then(function () { expect(featureColor(csvItem, 0)).not.toEqual(featureColor(csvItem, 1)); expect(featureColor(csvItem, 0)).not.toEqual(featureColor(csvItem, 2)); expect(featureColor(csvItem, 0)).not.toEqual(featureColor(csvItem, 3)); @@ -306,11 +306,11 @@ describe("CsvCatalogItem with lat and lon", function() { .then(done); }); - it("handles no data variable", function(done) { + it("handles no data variable", function (done) { csvItem.url = "test/csv/lat_lon_novals.csv"; csvItem .load() - .then(function() { + .then(function () { expect(csvItem.dataSource.tableStructure.activeItems.length).toEqual(0); expect(csvItem.dataSource.tableStructure.columns.length).toEqual(2); expect( @@ -321,11 +321,11 @@ describe("CsvCatalogItem with lat and lon", function() { .then(done); }); - it("supports dates", function(done) { + it("supports dates", function (done) { csvItem.url = "test/csv/lat_long_enum_moving_date.csv"; csvItem .load() - .then(function() { + .then(function () { var source = csvItem.dataSource; expect(source.tableStructure.activeTimeColumn.name).toEqual("date"); expect(source.tableStructure.columns[0].values.length).toEqual(13); @@ -360,7 +360,7 @@ describe("CsvCatalogItem with lat and lon", function() { .then(done); }); - it("supports dates and very long displayDuration", function(done) { + it("supports dates and very long displayDuration", function (done) { var sevenDaysInMinutes = 60 * 24 * 7; csvItem.url = "test/csv/lat_long_enum_moving_date.csv"; csvItem._tableStyle = new TableStyle({ @@ -368,7 +368,7 @@ describe("CsvCatalogItem with lat and lon", function() { }); csvItem .load() - .then(function() { + .then(function () { // Now, the features' availabilities should persist for 7 days, not just under 1 day. var features = csvItem.dataSource.entities.values; var featureDates = features.map(getPropertiesDate); @@ -389,13 +389,13 @@ describe("CsvCatalogItem with lat and lon", function() { .then(done); }); - it("supports dates sorted randomly", function(done) { + it("supports dates sorted randomly", function (done) { // Now that we use availability to establish when entities exist, this is not much of a test. // Could delete, or change it to test something more useful. csvItem.url = "test/csv/lat_lon_enum_moving_date_unsorted.csv"; csvItem .load() - .then(function() { + .then(function () { var source = csvItem.dataSource; expect(source.tableStructure.columns[0].values.length).toEqual(13); expect( @@ -427,14 +427,14 @@ describe("CsvCatalogItem with lat and lon", function() { .then(done); }); - it("supports moving-point csvs with id column by default", function(done) { + it("supports moving-point csvs with id column by default", function (done) { csvItem.url = "test/csv/lat_lon_enum_date_id.csv"; csvItem .load() - .then(function() { + .then(function () { var features = csvItem.dataSource.entities.values; expect(features.length).toEqual(4); // There are 4 features A, B, C and D; does not equal the 13 rows in the file. - var featureA = features.filter(function(feature) { + var featureA = features.filter(function (feature) { return feature.name === "feature A"; })[0]; // FeatureA has rows for 1,2,4,5,6th of August. But it should still be available on the 3rd. @@ -475,12 +475,12 @@ describe("CsvCatalogItem with lat and lon", function() { .then(done); }); - it("supports overriding moving-point csvs with id column using null", function(done) { + it("supports overriding moving-point csvs with id column using null", function (done) { csvItem.url = "test/csv/lat_lon_enum_date_id.csv"; csvItem.idColumns = null; csvItem .load() - .then(function() { + .then(function () { var features = csvItem.dataSource.entities.values; expect(features.length).toEqual(13); // There are 13 rows in the file. }) @@ -488,12 +488,12 @@ describe("CsvCatalogItem with lat and lon", function() { .then(done); }); - it("supports overriding moving-point csvs with id column using []", function(done) { + it("supports overriding moving-point csvs with id column using []", function (done) { csvItem.url = "test/csv/lat_lon_enum_date_id.csv"; csvItem.idColumns = []; csvItem .load() - .then(function() { + .then(function () { var features = csvItem.dataSource.entities.values; expect(features.length).toEqual(13); // There are 13 rows in the file. }) @@ -501,12 +501,12 @@ describe("CsvCatalogItem with lat and lon", function() { .then(done); }); - it("ignores dates if tableStyle.timeColumn is null", function(done) { + it("ignores dates if tableStyle.timeColumn is null", function (done) { csvItem.url = "test/csv/lat_long_enum_moving_date.csv"; csvItem._tableStyle = new TableStyle({ timeColumn: null }); csvItem .load() - .then(function() { + .then(function () { var source = csvItem.dataSource; expect(source.tableStructure.activeTimeColumn).toBeUndefined(); expect(csvItem.clock).toBeUndefined(); @@ -516,14 +516,14 @@ describe("CsvCatalogItem with lat and lon", function() { .then(done); }); - it("ignores dates if tableStyle.timeColumn is set to null from json", function(done) { + it("ignores dates if tableStyle.timeColumn is set to null from json", function (done) { // The test above did not pick up a problem in updateFromJson when the meaning of Cesium's defined was changed to also mean notNull (Cesium 1.19). csvItem.url = "test/csv/lat_long_enum_moving_date.csv"; csvItem._tableStyle = new TableStyle(); csvItem._tableStyle.updateFromJson({ timeColumn: null }); csvItem .load() - .then(function() { + .then(function () { var source = csvItem.dataSource; expect(source.tableStructure.activeTimeColumn).toBeUndefined(); expect(csvItem.clock).toBeUndefined(); @@ -533,12 +533,12 @@ describe("CsvCatalogItem with lat and lon", function() { .then(done); }); - it("uses a second date column with tableStyle.timeColumn name", function(done) { + it("uses a second date column with tableStyle.timeColumn name", function (done) { csvItem.url = "test/csv/lat_lon_enum_date_year.csv"; csvItem._tableStyle = new TableStyle({ timeColumn: "year" }); csvItem .load() - .then(function() { + .then(function () { var source = csvItem.dataSource; expect(source.tableStructure.activeTimeColumn.name).toEqual("year"); }) @@ -546,12 +546,12 @@ describe("CsvCatalogItem with lat and lon", function() { .then(done); }); - it("uses a second date column with tableStyle.timeColumn index", function(done) { + it("uses a second date column with tableStyle.timeColumn index", function (done) { csvItem.url = "test/csv/lat_lon_enum_date_year.csv"; csvItem._tableStyle = new TableStyle({ timeColumn: 4 }); csvItem .load() - .then(function() { + .then(function () { var source = csvItem.dataSource; expect(source.tableStructure.activeTimeColumn.name).toEqual("year"); }) @@ -559,12 +559,12 @@ describe("CsvCatalogItem with lat and lon", function() { .then(done); }); - it("returns valid values for intervals", function(done) { + it("returns valid values for intervals", function (done) { csvItem.url = "test/csv/lat_long_enum_moving_date.csv"; csvItem._tableStyle = new TableStyle({ displayDuration: 60 }); csvItem .load() - .then(function() { + .then(function () { var intervals = csvItem.intervals; expect(intervals.length).toBe(6); // 13 rows over 6 days @@ -586,11 +586,11 @@ describe("CsvCatalogItem with lat and lon", function() { .then(done); }); - it("has the right values in descriptions for feature picking", function(done) { + it("has the right values in descriptions for feature picking", function (done) { csvItem.url = "test/csv/lat_lon_enum.csv"; csvItem .load() - .then(function() { + .then(function () { function desc(i) { return csvItem.dataSource.entities.values[i].description._value; } @@ -601,11 +601,11 @@ describe("CsvCatalogItem with lat and lon", function() { .then(done); }); - it("has a blank in the description table for a missing number", function(done) { + it("has a blank in the description table for a missing number", function (done) { csvItem.url = "test/csv/missingNumberFormatting.csv"; return csvItem .load() - .then(function() { + .then(function () { var entities = csvItem.dataSource.entities.values; expect(entities.length).toBe(2); expect(entities[0].description.getValue()).toMatch( @@ -619,13 +619,13 @@ describe("CsvCatalogItem with lat and lon", function() { .then(done); }); - it("scales points to a size ratio of 300% if scaleByValue true and respects scale value", function(done) { + it("scales points to a size ratio of 300% if scaleByValue true and respects scale value", function (done) { csvItem.url = "test/csv/lat_lon_val.csv"; csvItem._tableStyle = new TableStyle({ scale: 5, scaleByValue: true }); return csvItem .load() - .then(function() { - var pixelSizes = csvItem.dataSource.entities.values.map(function(e) { + .then(function () { + var pixelSizes = csvItem.dataSource.entities.values.map(function (e) { return e.point._pixelSize._value; }); csvItem._minPix = Math.min.apply(null, pixelSizes); @@ -633,7 +633,7 @@ describe("CsvCatalogItem with lat and lon", function() { // we don't want to be too prescriptive, but by default the largest object should be 150% normal, smallest is 50%, so 3x difference. expect(csvItem._maxPix).toEqual(csvItem._minPix * 3); }) - .then(function() { + .then(function () { var csvItem2 = new CsvCatalogItem(terria); csvItem2._tableStyle = new TableStyle({ scale: 10, @@ -642,8 +642,8 @@ describe("CsvCatalogItem with lat and lon", function() { csvItem2.url = "test/csv/lat_lon_val.csv"; return csvItem2.load().yield(csvItem2); }) - .then(function(csvItem2) { - var pixelSizes = csvItem2.dataSource.entities.values.map(function(e) { + .then(function (csvItem2) { + var pixelSizes = csvItem2.dataSource.entities.values.map(function (e) { return e.point._pixelSize._value; }); var minPix = Math.min.apply(null, pixelSizes); @@ -656,11 +656,11 @@ describe("CsvCatalogItem with lat and lon", function() { .then(done); }); - it("does not make a feature if it is missing longitude", function(done) { + it("does not make a feature if it is missing longitude", function (done) { csvItem.url = "test/csv/lat_lon-missing_val.csv"; return csvItem .load() - .then(function() { + .then(function () { expect(csvItem.tableStructure.columns[0].values.length).toEqual(5); expect(csvItem.dataSource.entities.values.length).toEqual(4); // one line is missing longitude. }) @@ -668,23 +668,23 @@ describe("CsvCatalogItem with lat and lon", function() { .then(done); }); - it("makes features even if no value column", function(done) { + it("makes features even if no value column", function (done) { csvItem.url = "test/csv/lat_lon.csv"; return csvItem .load() - .then(function() { + .then(function () { expect(csvItem.dataSource.entities.values.length).toBeGreaterThan(1); }) .catch(fail) .then(done); }); - it("supports replaceWithNullValues", function(done) { + it("supports replaceWithNullValues", function (done) { csvItem.url = "test/csv/lat_lon_badvalue.csv"; csvItem._tableStyle = new TableStyle({ replaceWithNullValues: ["bad"] }); csvItem .load() - .then(function() { + .then(function () { var valueColumn = csvItem.tableStructure.columns[2]; expect(valueColumn.values[0]).toEqual(5); expect(valueColumn.values[1]).toEqual(null); @@ -694,12 +694,12 @@ describe("CsvCatalogItem with lat and lon", function() { .then(done); }); - it("supports replaceWithZeroValues", function(done) { + it("supports replaceWithZeroValues", function (done) { csvItem.url = "test/csv/lat_lon_badvalue.csv"; csvItem._tableStyle = new TableStyle({ replaceWithZeroValues: ["bad"] }); csvItem .load() - .then(function() { + .then(function () { var valueColumn = csvItem.tableStructure.columns[2]; expect(valueColumn.values[0]).toEqual(5); expect(valueColumn.values[1]).toEqual(0); @@ -709,11 +709,11 @@ describe("CsvCatalogItem with lat and lon", function() { .then(done); }); - it("defaults to blanks in numeric columns being null", function(done) { + it("defaults to blanks in numeric columns being null", function (done) { csvItem.url = "test/csv/lat_lon_blankvalue.csv"; csvItem .load() - .then(function() { + .then(function () { var valueColumn = csvItem.tableStructure.columns[2]; expect(valueColumn.values[0]).toEqual(5); expect(valueColumn.values[1]).toEqual(null); @@ -723,19 +723,19 @@ describe("CsvCatalogItem with lat and lon", function() { .then(done); }); - it("does not color null the same as zero", function(done) { + it("does not color null the same as zero", function (done) { csvItem.url = "test/csv/lat_lon_badvalue.csv"; csvItem._tableStyle = new TableStyle({ replaceWithNullValues: ["bad"] }); csvItem .load() - .then(function() { + .then(function () { expect(featureColor(csvItem, 1)).not.toEqual(featureColor(csvItem, 2)); }) .catch(fail) .then(done); }); - it("supports nullColor", function(done) { + it("supports nullColor", function (done) { csvItem.url = "test/csv/lat_lon_badvalue.csv"; csvItem._tableStyle = new TableStyle({ replaceWithNullValues: ["bad"], @@ -744,7 +744,7 @@ describe("CsvCatalogItem with lat and lon", function() { var nullColor = new Color(160 / 255, 176 / 255, 192 / 255, 1); csvItem .load() - .then(function() { + .then(function () { expect(featureColor(csvItem, 1)).toEqual(nullColor); // This next expectation checks that zeros and null values are differently colored, and that // null values do not lead to coloring getting out of sync with values. @@ -754,7 +754,7 @@ describe("CsvCatalogItem with lat and lon", function() { .then(done); }); - it("when no column selected, colors with non-null color", function(done) { + it("when no column selected, colors with non-null color", function (done) { csvItem.url = "test/csv/lat_lon_enum_val.csv"; csvItem._tableStyle = new TableStyle({ dataVariable: null, @@ -763,19 +763,19 @@ describe("CsvCatalogItem with lat and lon", function() { var nullColor = new Color(0, 0, 0, 1); csvItem .load() - .then(function() { + .then(function () { expect(featureColor(csvItem, 1)).not.toEqual(nullColor); }) .catch(fail) .then(done); }); - it('replaces enum tail with "X other values" in the legend', function(done) { + it('replaces enum tail with "X other values" in the legend', function (done) { csvItem.url = "test/csv/lat_lon_enum_lots.csv"; csvItem._tableStyle = new TableStyle({ colorBins: 9 }); csvItem .load() - .then(function() { + .then(function () { expect(csvItem.legendUrl).toBeDefined(); var url = csvItem.legendUrl.url; expect(url).toContain("2 other values"); @@ -786,12 +786,12 @@ describe("CsvCatalogItem with lat and lon", function() { .then(done); }); - it('does not replace enum tail with "other values" if it fits', function(done) { + it('does not replace enum tail with "other values" if it fits', function (done) { csvItem.url = "test/csv/lat_lon_enum_lots2.csv"; csvItem._tableStyle = new TableStyle({ colorBins: 9 }); csvItem .load() - .then(function() { + .then(function () { expect(csvItem.legendUrl).toBeDefined(); expect(csvItem.legendUrl.url).not.toContain("other values"); expect(csvItem.legendUrl.url).toContain("turtles"); @@ -800,12 +800,12 @@ describe("CsvCatalogItem with lat and lon", function() { .then(done); }); - it("honors colorBins property when it is less than the number of colors in the palette", function(done) { + it("honors colorBins property when it is less than the number of colors in the palette", function (done) { csvItem.url = "test/csv/lat_lon_enum_lots.csv"; csvItem._tableStyle = new TableStyle({ colorBins: 3 }); csvItem .load() - .then(function() { + .then(function () { expect(csvItem.legendUrl).toBeDefined(); var url = csvItem.legendUrl.url; expect(url).toContain("8 other values"); @@ -816,7 +816,7 @@ describe("CsvCatalogItem with lat and lon", function() { .then(done); }); - it('displays a "XX values" legend when colorBinMethod=cycle and there are more unique values than color bins', function(done) { + it('displays a "XX values" legend when colorBinMethod=cycle and there are more unique values than color bins', function (done) { csvItem.url = "test/csv/lat_lon_enum_lots.csv"; csvItem._tableStyle = new TableStyle({ colorBins: 9, @@ -824,7 +824,7 @@ describe("CsvCatalogItem with lat and lon", function() { }); csvItem .load() - .then(function() { + .then(function () { expect(csvItem.legendUrl).toBeDefined(); var url = csvItem.legendUrl.url; expect(url).toContain("10 values"); @@ -834,7 +834,7 @@ describe("CsvCatalogItem with lat and lon", function() { .then(done); }); - it("displays a normal legend when colorBinMethod=cycle but there are less unique values than color bins", function(done) { + it("displays a normal legend when colorBinMethod=cycle but there are less unique values than color bins", function (done) { csvItem.url = "test/csv/lat_lon_enum_lots.csv"; csvItem._tableStyle = new TableStyle({ colorBins: 15, @@ -842,7 +842,7 @@ describe("CsvCatalogItem with lat and lon", function() { }); csvItem .load() - .then(function() { + .then(function () { expect(csvItem.legendUrl).toBeDefined(); var url = csvItem.legendUrl.url; expect(url).not.toContain("values"); @@ -852,8 +852,8 @@ describe("CsvCatalogItem with lat and lon", function() { .then(done); }); - describe("and per-column tableStyle", function() { - it("scales by value", function(done) { + describe("and per-column tableStyle", function () { + it("scales by value", function (done) { csvItem.url = "test/csv/lat_lon_val.csv"; csvItem._tableStyle = new TableStyle({ columns: { @@ -866,8 +866,8 @@ describe("CsvCatalogItem with lat and lon", function() { }); return csvItem .load() - .then(function() { - var pixelSizes = csvItem.dataSource.entities.values.map(function(e) { + .then(function () { + var pixelSizes = csvItem.dataSource.entities.values.map(function (e) { return e.point._pixelSize._value; }); csvItem._minPix = Math.min.apply(null, pixelSizes); @@ -875,7 +875,7 @@ describe("CsvCatalogItem with lat and lon", function() { // we don't want to be too prescriptive, but by default the largest object should be 150% normal, smallest is 50%, so 3x difference. expect(csvItem._maxPix).toEqual(csvItem._minPix * 3); }) - .then(function() { + .then(function () { var csvItem2 = new CsvCatalogItem(terria); csvItem2._tableStyle = new TableStyle({ scale: 10, @@ -884,8 +884,10 @@ describe("CsvCatalogItem with lat and lon", function() { csvItem2.url = "test/csv/lat_lon_val.csv"; return csvItem2.load().yield(csvItem2); }) - .then(function(csvItem2) { - var pixelSizes = csvItem2.dataSource.entities.values.map(function(e) { + .then(function (csvItem2) { + var pixelSizes = csvItem2.dataSource.entities.values.map(function ( + e + ) { return e.point._pixelSize._value; }); var minPix = Math.min.apply(null, pixelSizes); @@ -898,7 +900,7 @@ describe("CsvCatalogItem with lat and lon", function() { .then(done); }); - it("uses correct defaults", function(done) { + it("uses correct defaults", function (done) { // nullColor is passed through to the columns as well, if not overridden explicitly. csvItem.url = "test/csv/lat_lon_badvalue.csv"; csvItem._tableStyle = new TableStyle({ @@ -912,14 +914,14 @@ describe("CsvCatalogItem with lat and lon", function() { var nullColor = new Color(160 / 255, 176 / 255, 192 / 255, 1); csvItem .load() - .then(function() { + .then(function () { expect(featureColor(csvItem, 1)).toEqual(nullColor); }) .catch(fail) .then(done); }); - it("supports name and nullColor with column ref by name", function(done) { + it("supports name and nullColor with column ref by name", function (done) { csvItem.url = "test/csv/lat_lon_badvalue.csv"; csvItem._tableStyle = new TableStyle({ nullColor: "#123456", @@ -934,7 +936,7 @@ describe("CsvCatalogItem with lat and lon", function() { var nullColor = new Color(160 / 255, 176 / 255, 192 / 255, 1); csvItem .load() - .then(function() { + .then(function () { expect(csvItem.tableStructure.columns[2].name).toEqual("Temperature"); expect(featureColor(csvItem, 1)).toEqual(nullColor); }) @@ -942,7 +944,7 @@ describe("CsvCatalogItem with lat and lon", function() { .then(done); }); - it("supports nullColor with column ref by number", function(done) { + it("supports nullColor with column ref by number", function (done) { csvItem.url = "test/csv/lat_lon_badvalue.csv"; csvItem._tableStyle = new TableStyle({ columns: { @@ -955,14 +957,14 @@ describe("CsvCatalogItem with lat and lon", function() { var nullColor = new Color(160 / 255, 176 / 255, 192 / 255, 1); csvItem .load() - .then(function() { + .then(function () { expect(featureColor(csvItem, 1)).toEqual(nullColor); }) .catch(fail) .then(done); }); - it("supports type", function(done) { + it("supports type", function (done) { csvItem.url = "test/csv/lat_lon_badvalue.csv"; csvItem._tableStyle = new TableStyle({ columns: { @@ -974,7 +976,7 @@ describe("CsvCatalogItem with lat and lon", function() { }); csvItem .load() - .then(function() { + .then(function () { expect(csvItem.tableStructure.columns[2].type).toEqual(VarType.ENUM); }) .catch(fail) @@ -993,10 +995,10 @@ function getId(obj) { return obj.id; } -describe("CsvCatalogItem with region mapping", function() { +describe("CsvCatalogItem with region mapping", function () { var terria; var csvItem; - beforeEach(function() { + beforeEach(function () { terria = new Terria({ baseUrl: "./" }); @@ -1018,33 +1020,33 @@ describe("CsvCatalogItem with region mapping", function() { // ]).then(done).catch(done.fail); }); - it("does not think a lat-lon csv has regions", function(done) { + it("does not think a lat-lon csv has regions", function (done) { csvItem.url = "test/csv/lat_long_enum_moving_date.csv"; csvItem .load() - .then(function() { + .then(function () { expect(csvItem.regionMapping).toBeUndefined(); }) .catch(fail) .then(done); }); - it("does not use region mapping when regions present with lat and lon", function(done) { + it("does not use region mapping when regions present with lat and lon", function (done) { csvItem.url = "test/csv/lat_lon_enum_postcode.csv"; csvItem .load() - .then(function() { + .then(function () { expect(csvItem.regionMapping).toBeUndefined(); }) .catch(fail) .then(done); }); - it("detects LGAs by code", function(done) { + it("detects LGAs by code", function (done) { csvItem.updateFromJson({ data: "lga_code,value\n31000,1" }); csvItem .load() - .then(function() { + .then(function () { var regionDetails = csvItem.regionMapping.regionDetails; expect(regionDetails).toBeDefined(); var regionDetail = regionDetails[0]; @@ -1056,18 +1058,17 @@ describe("CsvCatalogItem with region mapping", function() { .then(done); }); - it("matches LGAs by code", function(done) { + it("matches LGAs by code", function (done) { csvItem.updateFromJson({ data: "lga_code,value\n31000,1" }); csvItem .load() - .then(function() { + .then(function () { csvItem.isEnabled = true; // The recolorFunction call is only made once the layer is enabled. var regionDetails = csvItem.regionMapping.regionDetails; expect(regionDetails).toBeDefined(); var regionDetail = regionDetails[0]; - var recolorFunction = ImageryProviderHooks.addRecolorFunc.calls.argsFor( - 0 - )[1]; + var recolorFunction = + ImageryProviderHooks.addRecolorFunc.calls.argsFor(0)[1]; var indexOfThisRegion = regionDetail.regionProvider.regions .map(getId) .indexOf(31000); @@ -1078,32 +1079,27 @@ describe("CsvCatalogItem with region mapping", function() { .then(done); }); - it("matches LGAs by names in various formats", function(done) { + it("matches LGAs by names in various formats", function (done) { // City of Melbourne is not actually a region, but melbourne is. Same with Sydney (S) and sydney. But test they work anyway. csvItem.updateFromJson({ - data: - "lga_name,value\nCity of Melbourne,1\nGreater Geelong,2\nSydney (S),3" + data: "lga_name,value\nCity of Melbourne,1\nGreater Geelong,2\nSydney (S),3" }); csvItem .load() - .then(function() { + .then(function () { csvItem.isEnabled = true; var regionDetails = csvItem.regionMapping.regionDetails; expect(regionDetails).toBeDefined(); var regionDetail = regionDetails[0]; - var recolorFunction = ImageryProviderHooks.addRecolorFunc.calls.argsFor( - 0 - )[1]; + var recolorFunction = + ImageryProviderHooks.addRecolorFunc.calls.argsFor(0)[1]; var regionNames = regionDetail.regionProvider.regions.map(getId); expect(recolorFunction(regionNames.indexOf("bogan"))).not.toBeDefined(); // Test that we didn't try to recolor other regions. expect( recolorFunction(regionNames.indexOf("melbourne"))[0] ).toBeDefined(); // Test that at least one rgba component is defined. expect(recolorFunction(regionNames.indexOf("melbourne"))).not.toEqual([ - 0, - 0, - 0, - 0 + 0, 0, 0, 0 ]); // And that the color is not all zeros. expect( recolorFunction(regionNames.indexOf("greater geelong"))[0] @@ -1113,17 +1109,14 @@ describe("CsvCatalogItem with region mapping", function() { ).not.toEqual([0, 0, 0, 0]); // And that the color is not all zeros. expect(recolorFunction(regionNames.indexOf("sydney"))[0]).toBeDefined(); // Test that at least one rgba component is defined. expect(recolorFunction(regionNames.indexOf("sydney"))).not.toEqual([ - 0, - 0, - 0, - 0 + 0, 0, 0, 0 ]); // And that the color is not all zeros. }) .catch(fail) .then(done); }); - it("matches mapped region column names", function(done) { + it("matches mapped region column names", function (done) { csvItem.updateFromJson({ data: "nothing,value\n31000,1", tableStyle: { @@ -1136,14 +1129,14 @@ describe("CsvCatalogItem with region mapping", function() { }); csvItem .load() - .then(function() { + .then(function () { expect(csvItem.regionMapping.regionDetails).toBeDefined(); }) .catch(fail) .then(done); }); - it("does not match original name of mapped region column names", function(done) { + it("does not match original name of mapped region column names", function (done) { csvItem.updateFromJson({ data: "lga_code,value\n31000,1", tableStyle: { @@ -1156,7 +1149,7 @@ describe("CsvCatalogItem with region mapping", function() { }); csvItem .load() - .then(function() { + .then(function () { expect(csvItem.regionMapping).not.toBeDefined(); }) .catch(fail) @@ -1164,13 +1157,13 @@ describe("CsvCatalogItem with region mapping", function() { }); // TODO: What is this testing? - xit("matches numeric state IDs with regexes", function(done) { + xit("matches numeric state IDs with regexes", function (done) { csvItem.updateFromJson({ data: "state,value\n3,30\n4,40\n5,50,\n8,80\n9,90" }); csvItem .load() - .then(function() { + .then(function () { csvItem.isEnabled = true; var regionDetails = csvItem.regionMapping.regionDetails; expect(regionDetails).toBeDefined(); @@ -1180,7 +1173,7 @@ describe("CsvCatalogItem with region mapping", function() { // expect(csvItem.dataSource.dataset.variables.state.regionCodes).toEqual(["queensland", "south australia", "western australia", "other territories"]); // Possibly something like this? However, this fails - it includes tasmania and not queensland. var names = csvItem.dataSource.tableStructure.columns[0].values.map( - function(id) { + function (id) { return regionNames[id]; } ); @@ -1208,28 +1201,24 @@ describe("CsvCatalogItem with region mapping", function() { // }).catch(fail).then(done); // }); - it("respects tableStyle color ramping for regions", function(done) { + it("respects tableStyle color ramping for regions", function (done) { csvItem.updateFromJson({ data: "lga_name,value\nmelbourne,0\ngreater geelong,5\nsydney,10", tableStyle: greenTableStyle }); csvItem .load() - .then(function() { + .then(function () { csvItem.isEnabled = true; var regionDetails = csvItem.regionMapping.regionDetails; expect(regionDetails).toBeDefined(); var regionDetail = regionDetails[0]; - var recolorFunction = ImageryProviderHooks.addRecolorFunc.calls.argsFor( - 0 - )[1]; + var recolorFunction = + ImageryProviderHooks.addRecolorFunc.calls.argsFor(0)[1]; var regionNames = regionDetail.regionProvider.regions.map(getId); // Require the green value to range from 64 to 255, but do not require a linear mapping. expect(recolorFunction(regionNames.indexOf("melbourne"))).toEqual([ - 0, - 64, - 0, - 255 + 0, 64, 0, 255 ]); expect( recolorFunction(regionNames.indexOf("greater geelong"))[1] @@ -1238,10 +1227,7 @@ describe("CsvCatalogItem with region mapping", function() { recolorFunction(regionNames.indexOf("greater geelong"))[1] ).toBeLessThan(255); expect(recolorFunction(regionNames.indexOf("sydney"))).toEqual([ - 0, - 255, - 0, - 255 + 0, 255, 0, 255 ]); expect(csvItem.legendUrl).toBeDefined(); }) @@ -1249,7 +1235,7 @@ describe("CsvCatalogItem with region mapping", function() { .then(done); }); - it("uses the requested region mapping column, not just the first one", function(done) { + it("uses the requested region mapping column, not just the first one", function (done) { // The column names in postcode_lga_val_enum.csv are: lga_name, val1, enum, postcode. var revisedGreenTableStyle = clone(greenTableStyle); revisedGreenTableStyle.regionType = "poa"; @@ -1260,7 +1246,7 @@ describe("CsvCatalogItem with region mapping", function() { }); csvItem .load() - .then(function() { + .then(function () { var regionDetails = csvItem.regionMapping.regionDetails; expect(regionDetails).toBeDefined(); expect( @@ -1271,11 +1257,11 @@ describe("CsvCatalogItem with region mapping", function() { .then(done); }); - it("can default to an enum field", function(done) { + it("can default to an enum field", function (done) { csvItem.url = "test/csv/postcode_enum.csv"; csvItem .load() - .then(function() { + .then(function () { var regionDetails = csvItem.regionMapping.regionDetails; expect(regionDetails).toBeDefined(); expect(csvItem.tableStructure.activeItems[0].name).toBe("enum"); @@ -1285,11 +1271,11 @@ describe("CsvCatalogItem with region mapping", function() { .then(done); }); - it("handles one line with enum", function(done) { + it("handles one line with enum", function (done) { csvItem.updateFromJson({ data: "state,org\nNSW,test" }); csvItem .load() - .then(function() { + .then(function () { var regionDetails = csvItem.regionMapping.regionDetails; expect(regionDetails).toBeDefined(); expect(csvItem.legendUrl).toBeDefined(); @@ -1298,11 +1284,11 @@ describe("CsvCatalogItem with region mapping", function() { .then(done); }); - it("handles no data variable", function(done) { + it("handles no data variable", function (done) { csvItem.url = "test/csv/postcode_novals.csv"; csvItem .load() - .then(function() { + .then(function () { var regionDetails = csvItem.regionMapping.regionDetails; expect(regionDetails).toBeDefined(); expect(csvItem.tableStructure.activeItems.length).toEqual(0); @@ -1316,11 +1302,11 @@ describe("CsvCatalogItem with region mapping", function() { .then(done); }); - it("chooses the leftmost data column when none specified", function(done) { + it("chooses the leftmost data column when none specified", function (done) { csvItem.url = "test/csv/val_enum_postcode.csv"; csvItem .load() - .then(function() { + .then(function () { var regionDetails = csvItem.regionMapping.regionDetails; expect(regionDetails).toBeDefined(); expect(csvItem.tableStructure.activeItems[0].name).toEqual("val1"); @@ -1329,14 +1315,14 @@ describe("CsvCatalogItem with region mapping", function() { .then(done); }); - it("handles LGA names with states for disambiguation", function(done) { + it("handles LGA names with states for disambiguation", function (done) { csvItem.updateFromJson({ url: "test/csv/lga_state_disambig.csv", tableStyle: new TableStyle({ dataVariable: "StateCapital" }) }); csvItem .load() - .then(function() { + .then(function () { var regionDetails = csvItem.regionMapping.regionDetails; expect(regionDetails).toBeDefined(); var regionDetail = regionDetails[0]; @@ -1347,13 +1333,13 @@ describe("CsvCatalogItem with region mapping", function() { .then(done); }); - it("supports region-mapped files with dates", function(done) { + it("supports region-mapped files with dates", function (done) { csvItem.updateFromJson({ url: "test/csv/postcode_date_value.csv" }); csvItem .load() - .then(function() { + .then(function () { var regionMapping = csvItem.regionMapping; var j = JulianDate.fromIso8601; regionMapping._catalogItem.clock.currentTime = j("2015-08-08"); @@ -1370,9 +1356,8 @@ describe("CsvCatalogItem with region mapping", function() { ).toEqual(j("2015-08-07")); // Test that the right regions have been colored (since the datasource doesn't expose the entities). // On 2015-08-08, only postcodes 3121 and 3122 have values. On neighboring dates, so do 3123 and 3124. - var recolorFunction = ImageryProviderHooks.addRecolorFunc.calls.argsFor( - 0 - )[1]; + var recolorFunction = + ImageryProviderHooks.addRecolorFunc.calls.argsFor(0)[1]; var regionNames = regionDetail.regionProvider.regions.map(getId); expect(recolorFunction(regionNames.indexOf("3121"))).toBeDefined(); @@ -1385,13 +1370,13 @@ describe("CsvCatalogItem with region mapping", function() { .then(done); }); - it("supports region-mapped files with missing dates", function(done) { + it("supports region-mapped files with missing dates", function (done) { csvItem.updateFromJson({ url: "test/csv/postcode_date_value_missing_date.csv" }); csvItem .load() - .then(function() { + .then(function () { var regionMapping = csvItem.regionMapping; var j = JulianDate.fromIso8601; regionMapping._catalogItem.clock.currentTime = j("2015-08-08"); @@ -1408,9 +1393,8 @@ describe("CsvCatalogItem with region mapping", function() { ).toEqual(j("2015-08-07")); // Test that the right regions have been colored (since the datasource doesn't expose the entities). // On 2015-08-08, only postcodes 3121 and 3122 have values. On neighboring dates, so do 3123 and 3124. - var recolorFunction = ImageryProviderHooks.addRecolorFunc.calls.argsFor( - 0 - )[1]; + var recolorFunction = + ImageryProviderHooks.addRecolorFunc.calls.argsFor(0)[1]; var regionNames = regionDetail.regionProvider.regions.map(getId); expect(recolorFunction(regionNames.indexOf("3121"))).toBeDefined(); @@ -1423,14 +1407,14 @@ describe("CsvCatalogItem with region mapping", function() { .then(done); }); - it("supports region-mapped files with displayDuration and dates", function(done) { + it("supports region-mapped files with displayDuration and dates", function (done) { csvItem.updateFromJson({ url: "test/csv/postcode_date_value.csv", tableStyle: new TableStyle({ displayDuration: 60 * 6 }) // 6 hours }); csvItem .load() - .then(function() { + .then(function () { var regionMapping = csvItem.regionMapping; var j = JulianDate.fromIso8601; var nineOclock = j("2015-08-08"); // midnight local time @@ -1448,9 +1432,8 @@ describe("CsvCatalogItem with region mapping", function() { csvItem.tableStructure.columnsByType[VarType.TIME][0].julianDates[0] ).toEqual(j("2015-08-07")); // Test that no regions have been colored, since at 9am we are more than 6 hours past the start date of any row. - var recolorFunction = ImageryProviderHooks.addRecolorFunc.calls.argsFor( - 0 - )[1]; + var recolorFunction = + ImageryProviderHooks.addRecolorFunc.calls.argsFor(0)[1]; var regionNames = regionDetail.regionProvider.regions.map(getId); expect(recolorFunction(regionNames.indexOf("3121"))).not.toBeDefined(); @@ -1462,12 +1445,12 @@ describe("CsvCatalogItem with region mapping", function() { .then(done); }); - it('replaces enum tail with "X other values" in the legend', function(done) { + it('replaces enum tail with "X other values" in the legend', function (done) { csvItem.url = "test/csv/postcode_enum_lots.csv"; csvItem._tableStyle = new TableStyle({ colorBins: 9 }); csvItem .load() - .then(function() { + .then(function () { expect(csvItem.legendUrl).toBeDefined(); var url = csvItem.legendUrl.url; expect(url).toContain("2 other values"); @@ -1478,12 +1461,12 @@ describe("CsvCatalogItem with region mapping", function() { .then(done); }); - it("honors colorBins property when it is less than the number of colors in the palette", function(done) { + it("honors colorBins property when it is less than the number of colors in the palette", function (done) { csvItem.url = "test/csv/postcode_enum_lots.csv"; csvItem._tableStyle = new TableStyle({ colorBins: 3 }); csvItem .load() - .then(function() { + .then(function () { expect(csvItem.legendUrl).toBeDefined(); var url = csvItem.legendUrl.url; expect(url).toContain("8 other values"); @@ -1494,7 +1477,7 @@ describe("CsvCatalogItem with region mapping", function() { .then(done); }); - it('displays a "XX values" legend when colorBinMethod=cycle and there are more unique values than color bins', function(done) { + it('displays a "XX values" legend when colorBinMethod=cycle and there are more unique values than color bins', function (done) { csvItem.url = "test/csv/postcode_enum_lots.csv"; csvItem._tableStyle = new TableStyle({ colorBins: 9, @@ -1502,7 +1485,7 @@ describe("CsvCatalogItem with region mapping", function() { }); csvItem .load() - .then(function() { + .then(function () { expect(csvItem.legendUrl).toBeDefined(); var url = csvItem.legendUrl.url; expect(url).toContain("10 values"); @@ -1512,7 +1495,7 @@ describe("CsvCatalogItem with region mapping", function() { .then(done); }); - it("displays a normal legend when colorBinMethod=cycle but there are less unique values than color bins", function(done) { + it("displays a normal legend when colorBinMethod=cycle but there are less unique values than color bins", function (done) { csvItem.url = "test/csv/postcode_enum_lots.csv"; csvItem._tableStyle = new TableStyle({ colorBins: 15, @@ -1520,7 +1503,7 @@ describe("CsvCatalogItem with region mapping", function() { }); csvItem .load() - .then(function() { + .then(function () { expect(csvItem.legendUrl).toBeDefined(); var url = csvItem.legendUrl.url; expect(url).not.toContain("values"); @@ -1530,11 +1513,11 @@ describe("CsvCatalogItem with region mapping", function() { .then(done); }); - it("is less than 2000 characters when serialised to JSON then URLEncoded", function(done) { + it("is less than 2000 characters when serialised to JSON then URLEncoded", function (done) { csvItem.url = "test/csv/postcode_enum.csv"; csvItem .load() - .then(function() { + .then(function () { var url = encodeURIComponent(JSON.stringify(csvItem.serializeToJson())); expect(url.length).toBeLessThan(2000); }) @@ -1561,7 +1544,7 @@ describe("CsvCatalogItem with region mapping", function() { // }); //}); - describe("and feature picking", function() { + describe("and feature picking", function () { var postcode3124 = { type: "FeatureCollection", features: [ @@ -1589,14 +1572,14 @@ describe("CsvCatalogItem with region mapping", function() { } }; - it("works", function(done) { + it("works", function (done) { var csvFile = "test/csv/postcode_val_enum.csv"; loadAndStubTextResources(done, [ csvFile, terria.configParameters.regionMappingDefinitionsUrl, "data/regionids/region_map-FID_POA_2011_AUST_POA_CODE.json" - ]).then(function(resources) { + ]).then(function (resources) { jasmine.Ajax.stubRequest( "http://regionmap-dev.nationalmap.nicta.com.au/region_map/ows?transparent=true&format=image%2Fpng&exceptions=application%2Fvnd.ogc.se_xml&styles=&tiled=true&service=WMS&version=1.1.1&request=GetFeatureInfo&layers=region_map%3AFID_POA_2011_AUST&srs=EPSG%3A3857&bbox=16143500.373829227%2C-4559315.8631541915%2C16153284.31344973%2C-4549531.923533689&width=256&height=256&query_layers=region_map%3AFID_POA_2011_AUST&x=217&y=199&info_format=application%2Fjson" ).andReturn({ @@ -1606,15 +1589,14 @@ describe("CsvCatalogItem with region mapping", function() { csvItem.url = csvFile; csvItem .load() - .then(function() { + .then(function () { csvItem.isEnabled = true; // Required to create an imagery layer. var regionDetails = csvItem.regionMapping.regionDetails; expect(regionDetails).toBeDefined(); // We are spying on calls to ImageryLayerCatalogItem.enableLayer; the argument[1] is the regionImageryProvider. // This unfortunately makes the test depend on an implementation detail. - var regionImageryProvider = ImageryLayerCatalogItem.enableLayer.calls.argsFor( - 0 - )[1]; + var regionImageryProvider = + ImageryLayerCatalogItem.enableLayer.calls.argsFor(0)[1]; expect(regionImageryProvider).toBeDefined(); return regionImageryProvider.pickFeatures( 3698, @@ -1624,7 +1606,7 @@ describe("CsvCatalogItem with region mapping", function() { -0.6604719122857645 ); }) - .then(function(r) { + .then(function (r) { expect(r[0].name).toEqual("3124"); var description = r[0].description; //.getValue(terria.clock.currentTime); expect(description).toContain("42.42"); @@ -1635,7 +1617,7 @@ describe("CsvCatalogItem with region mapping", function() { }); }); - it("works with fuzzy matching", function(done) { + it("works with fuzzy matching", function (done) { var csvFile = "test/csv/lga_fuzzy_val.csv"; loadAndStubTextResources(done, [ @@ -1643,7 +1625,7 @@ describe("CsvCatalogItem with region mapping", function() { terria.configParameters.regionMappingDefinitionsUrl, "data/regionids/region_map-FID_LGA_2011_AUST_LGA_NAME11.json", "data/regionids/region_map-FID_LGA_2011_AUST_STE_NAME11.json" - ]).then(function(resources) { + ]).then(function (resources) { jasmine.Ajax.stubRequest( "http://regionmap-dev.nationalmap.nicta.com.au/region_map/ows?transparent=true&format=image%2Fpng&exceptions=application%2Fvnd.ogc.se_xml&styles=&tiled=true&service=WMS&version=1.1.1&request=GetFeatureInfo&layers=region_map%3AFID_LGA_2011_AUST&srs=EPSG%3A3857&bbox=16143500.373829227%2C-4559315.8631541915%2C16153284.31344973%2C-4549531.923533689&width=256&height=256&query_layers=region_map%3AFID_LGA_2011_AUST&x=217&y=199&info_format=application%2Fjson" ).andReturn({ @@ -1680,15 +1662,14 @@ describe("CsvCatalogItem with region mapping", function() { csvItem.url = csvFile; csvItem .load() - .then(function() { + .then(function () { csvItem.isEnabled = true; // Required to create an imagery layer. var regionDetails = csvItem.regionMapping.regionDetails; expect(regionDetails).toBeDefined(); // We are spying on calls to ImageryLayerCatalogItem.enableLayer; the argument[1] is the regionImageryProvider. // This unfortunately makes the test depend on an implementation detail. - var regionImageryProvider = ImageryLayerCatalogItem.enableLayer.calls.argsFor( - 0 - )[1]; + var regionImageryProvider = + ImageryLayerCatalogItem.enableLayer.calls.argsFor(0)[1]; expect(regionImageryProvider).toBeDefined(); return regionImageryProvider.pickFeatures( 3698, @@ -1698,7 +1679,7 @@ describe("CsvCatalogItem with region mapping", function() { -0.6604719122857645 ); }) - .then(function(r) { + .then(function (r) { expect(r[0].name).toEqual("Boroondara (C)"); var description = r[0].description; //.getValue(terria.clock.currentTime); expect(description).toContain("42.42"); @@ -1709,7 +1690,7 @@ describe("CsvCatalogItem with region mapping", function() { }); }); - it("works with disambiguated LGA names like Wellington, VIC", function(done) { + it("works with disambiguated LGA names like Wellington, VIC", function (done) { var csvFile = "test/csv/lga_state_disambig.csv"; loadAndStubTextResources(done, [ csvFile, @@ -1717,7 +1698,7 @@ describe("CsvCatalogItem with region mapping", function() { "data/regionids/region_map-FID_LGA_2011_AUST_LGA_NAME11.json", "data/regionids/region_map-FID_LGA_2011_AUST_STE_NAME11.json", "data/regionids/region_map-FID_STE_2011_AUST_STE_NAME11.json" - ]).then(function(resources) { + ]).then(function (resources) { jasmine.Ajax.stubRequest( "http://regionmap-dev.nationalmap.nicta.com.au/region_map/ows?transparent=true&format=image%2Fpng&exceptions=application%2Fvnd.ogc.se_xml&styles=&tiled=true&service=WMS&version=1.1.1&request=GetFeatureInfo&layers=region_map%3AFID_LGA_2011_AUST&bbox=16437018.562444303%2C-3913575.8482010253%2C16593561.59637234%2C-3757032.814272985&width=256&height=256&srs=EPSG%3A3857&query_layers=region_map%3AFID_LGA_2011_AUST&x=249&y=135&info_format=application%2Fjson" ).andReturn({ @@ -1788,15 +1769,14 @@ describe("CsvCatalogItem with region mapping", function() { csvItem.url = csvFile; csvItem .load() - .then(function() { + .then(function () { csvItem.isEnabled = true; // Required to create an imagery provider. var regionDetails = csvItem.regionMapping.regionDetails; expect(regionDetails).toBeDefined(); // We are spying on calls to ImageryLayerCatalogItem.enableLayer; the second argument is the regionImageryProvider. // This unfortunately makes the test depend on an implementation detail. - var regionImageryProvider = ImageryLayerCatalogItem.enableLayer.calls.argsFor( - 0 - )[1]; + var regionImageryProvider = + ImageryLayerCatalogItem.enableLayer.calls.argsFor(0)[1]; expect(regionImageryProvider).toBeDefined(); return regionImageryProvider.pickFeatures( 464, @@ -1806,16 +1786,15 @@ describe("CsvCatalogItem with region mapping", function() { -0.6605448031188106 ); }) - .then(function(r) { + .then(function (r) { expect(r[0].name).toEqual("Wellington (S)"); var description = r[0].description; //.getValue(terria.clock.currentTime); expect(description).toContain("Wellington"); // leaving it open whether it should show server-side ID or provided value expect(description).toContain("Melbourne"); }) - .then(function() { - var regionImageryProvider = ImageryLayerCatalogItem.enableLayer.calls.argsFor( - 0 - )[1]; + .then(function () { + var regionImageryProvider = + ImageryLayerCatalogItem.enableLayer.calls.argsFor(0)[1]; return regionImageryProvider.pickFeatures( 233, 152, @@ -1824,7 +1803,7 @@ describe("CsvCatalogItem with region mapping", function() { -0.5686381345023742 ); }) - .then(function(r) { + .then(function (r) { expect(r[0].name).toEqual("Wellington (A)"); var description = r[0].description; //.getValue(terria.clock.currentTime); expect(description).toContain("Wellington"); @@ -1835,14 +1814,14 @@ describe("CsvCatalogItem with region mapping", function() { }); }); - it("time-varying features update with time", function(done) { + it("time-varying features update with time", function (done) { var csvFile = "test/csv/postcode_val_enum_time.csv"; loadAndStubTextResources(done, [ csvFile, terria.configParameters.regionMappingDefinitionsUrl, "data/regionids/region_map-FID_POA_2011_AUST_POA_CODE.json" - ]).then(function(resources) { + ]).then(function (resources) { jasmine.Ajax.stubRequest( "http://regionmap-dev.nationalmap.nicta.com.au/region_map/ows?transparent=true&format=image%2Fpng&exceptions=application%2Fvnd.ogc.se_xml&styles=&tiled=true&service=WMS&version=1.1.1&request=GetFeatureInfo&layers=region_map%3AFID_POA_2011_AUST&srs=EPSG%3A3857&bbox=16143500.373829227%2C-4559315.8631541915%2C16153284.31344973%2C-4549531.923533689&width=256&height=256&query_layers=region_map%3AFID_POA_2011_AUST&x=217&y=199&info_format=application%2Fjson" ).andReturn({ @@ -1852,15 +1831,14 @@ describe("CsvCatalogItem with region mapping", function() { csvItem.url = csvFile; csvItem .load() - .then(function() { + .then(function () { csvItem.isEnabled = true; // Required to create an imagery layer. var regionDetails = csvItem.regionMapping.regionDetails; expect(regionDetails).toBeDefined(); // We are spying on calls to ImageryLayerCatalogItem.enableLayer; the argument[1] is the regionImageryProvider. // This unfortunately makes the test depend on an implementation detail. - var regionImageryProvider = ImageryLayerCatalogItem.enableLayer.calls.argsFor( - 0 - )[1]; + var regionImageryProvider = + ImageryLayerCatalogItem.enableLayer.calls.argsFor(0)[1]; expect(regionImageryProvider).toBeDefined(); return regionImageryProvider.pickFeatures( 3698, @@ -1870,7 +1848,7 @@ describe("CsvCatalogItem with region mapping", function() { -0.6604719122857645 ); }) - .then(function(r) { + .then(function (r) { expect(r[0].name).toEqual("3124"); var description = r[0].description.getValue( JulianDate.fromIso8601("2016-01-01T15:00:00Z") @@ -1901,10 +1879,10 @@ describe("CsvCatalogItem with region mapping", function() { }); }); -describe("CsvCatalogItem with no geo using default bundled regionMapping", function() { +describe("CsvCatalogItem with no geo using default bundled regionMapping", function () { var terria; var csvItem; - beforeEach(function() { + beforeEach(function () { terria = new Terria({ baseUrl: "./" }); @@ -1914,11 +1892,11 @@ describe("CsvCatalogItem with no geo using default bundled regionMapping", funct csvItem = new CsvCatalogItem(terria); }); - it("is not mappable", function(done) { + it("is not mappable", function (done) { csvItem.url = "test/csv_nongeo/xy.csv"; csvItem .load() - .then(function() { + .then(function () { expect(csvItem.isMappable).toEqual(false); expect(csvItem.regionMapping).toBeUndefined(); expect(csvItem.tableStructure.name).toBe(""); @@ -1929,7 +1907,7 @@ describe("CsvCatalogItem with no geo using default bundled regionMapping", funct .then(done); }); - it("does not automatically enable a column if a table style is loaded in without a dataVariable", function(done) { + it("does not automatically enable a column if a table style is loaded in without a dataVariable", function (done) { csvItem.url = "test/csv_nongeo/xy.csv"; csvItem .updateFromJson({ @@ -1937,17 +1915,17 @@ describe("CsvCatalogItem with no geo using default bundled regionMapping", funct dataVariable: "y" } }) - .then(function() { + .then(function () { return csvItem.load(); }) - .then(function() { + .then(function () { expect(csvItem.tableStructure.activeItems.length).toEqual(1); expect(csvItem.tableStructure.items.length).toEqual(2); expect(csvItem.tableStructure.activeItems[0].name).toEqual("y"); expect(csvItem.tableStructure.name).toBe(""); expect(csvItem.tableStructure.allowMultiple).toBe(true); }) - .then(function() { + .then(function () { csvItem.updateFromJson({ tableStyle: { allVariablesUnactive: true, @@ -1955,7 +1933,7 @@ describe("CsvCatalogItem with no geo using default bundled regionMapping", funct } }); }) - .then(function() { + .then(function () { expect(csvItem.isMappable).toEqual(false); expect(csvItem.tableStructure.items.length).toEqual(2); expect(csvItem.tableStructure.activeItems.length).toEqual(0); @@ -1964,29 +1942,29 @@ describe("CsvCatalogItem with no geo using default bundled regionMapping", funct .then(done); }); - it("does not automatically enable a column if a table style is loaded in with columns all unactive", function(done) { + it("does not automatically enable a column if a table style is loaded in with columns all unactive", function (done) { csvItem.url = "test/csv_nongeo/xy.csv"; csvItem .updateFromJson({ tableStyle: { allVariablesUnactive: true, columns: { - "0": { + 0: { active: false }, - "1": { + 1: { active: false }, - "2": { + 2: { active: false } } } }) - .then(function() { + .then(function () { return csvItem.load(); }) - .then(function() { + .then(function () { expect(csvItem.tableStructure.activeItems.length).toEqual(0); expect(csvItem.tableStructure.items.length).toEqual(2); expect(csvItem.tableStructure.name).toBe(""); @@ -1995,11 +1973,11 @@ describe("CsvCatalogItem with no geo using default bundled regionMapping", funct .then(done); }); - it("interprets height column as non-geo", function(done) { + it("interprets height column as non-geo", function (done) { csvItem.url = "test/csv_nongeo/x_height.csv"; csvItem .load() - .then(function() { + .then(function () { expect(csvItem.isMappable).toBe(false); expect( csvItem.tableStructure.columnsByType[VarType.ALT].length @@ -2011,20 +1989,20 @@ describe("CsvCatalogItem with no geo using default bundled regionMapping", funct }); }); -describe("CsvCatalogItem & chart sharing", function() { +describe("CsvCatalogItem & chart sharing", function () { var terria; var csvItem; var columns; - beforeEach(function() { + beforeEach(function () { terria = new Terria({ baseUrl: "./" }); csvItem = new CsvCatalogItem(terria); }); - describe("disableIncompatibleTableColumn interaction", function() { - describe("should not disable other charted columns if there are no active columns in use", function() { - it("activates time series columns when loading the time series last", function(done) { + describe("disableIncompatibleTableColumn interaction", function () { + describe("should not disable other charted columns if there are no active columns in use", function () { + it("activates time series columns when loading the time series last", function (done) { const xyCsv = new CsvCatalogItem(terria); const timeSeriesCsv = new CsvCatalogItem(terria); xyCsv @@ -2035,7 +2013,7 @@ describe("CsvCatalogItem & chart sharing", function() { isShown: true }) .then(xyCsv.load.bind(xyCsv)) - .then(function() { + .then(function () { timeSeriesCsv.updateFromJson({ type: "csv", url: "test/csv_nongeo/time_series.csv", @@ -2044,7 +2022,7 @@ describe("CsvCatalogItem & chart sharing", function() { }); }) .then(timeSeriesCsv.load.bind(timeSeriesCsv)) - .then(function() { + .then(function () { expect(timeSeriesCsv.tableStructure.allowMultiple).toBe(true); expect(xyCsv.tableStructure.allowMultiple).toBe(true); expect(terria.catalog.chartableItems.length).toBe(2); @@ -2054,7 +2032,7 @@ describe("CsvCatalogItem & chart sharing", function() { done(); }); }); - it("activates scalar columns when loading the time series first", function(done) { + it("activates scalar columns when loading the time series first", function (done) { const xyCsv = new CsvCatalogItem(terria); const timeSeriesCsv = new CsvCatalogItem(terria); timeSeriesCsv @@ -2065,7 +2043,7 @@ describe("CsvCatalogItem & chart sharing", function() { isShown: true }) .then(timeSeriesCsv.load.bind(timeSeriesCsv)) - .then(function() { + .then(function () { xyCsv.updateFromJson({ type: "csv", url: "test/csv_nongeo/xy.csv", @@ -2074,7 +2052,7 @@ describe("CsvCatalogItem & chart sharing", function() { }); }) .then(xyCsv.load.bind(xyCsv)) - .then(function() { + .then(function () { expect(timeSeriesCsv.tableStructure.allowMultiple).toBe(true); expect(xyCsv.tableStructure.allowMultiple).toBe(true); expect(terria.catalog.chartableItems.length).toBe(2); @@ -2096,13 +2074,13 @@ describe("CsvCatalogItem & chart sharing", function() { timeSeriesCsv.updateFromJson({ tableStyle: { columns: { - "0": { + 0: { active: false }, - "1": { + 1: { active: true }, - "2": { + 2: { active: true } } @@ -2121,8 +2099,8 @@ describe("CsvCatalogItem & chart sharing", function() { }); }); // Catalog items get shown and hidden through traversing stories, ensure they're initialised correctly - describe("should not read an out of date state of tableStructure.activeItems when show is toggled", function() { - it("with time series csvs", function(done) { + describe("should not read an out of date state of tableStructure.activeItems when show is toggled", function () { + it("with time series csvs", function (done) { const timeSeriesCsv = new CsvCatalogItem(terria); timeSeriesCsv .updateFromJson({ @@ -2132,7 +2110,7 @@ describe("CsvCatalogItem & chart sharing", function() { isShown: true }) .then(timeSeriesCsv.load.bind(timeSeriesCsv)) - .then(function() { + .then(function () { expect( timeSeriesCsv.tableStyle.allVariablesUnactive ).toBeUndefined(); @@ -2145,7 +2123,7 @@ describe("CsvCatalogItem & chart sharing", function() { done(); }); }); - it("with scalar csvs", function(done) { + it("with scalar csvs", function (done) { const xyCsv = new CsvCatalogItem(terria); xyCsv .updateFromJson({ @@ -2155,7 +2133,7 @@ describe("CsvCatalogItem & chart sharing", function() { isShown: true }) .then(xyCsv.load.bind(xyCsv)) - .then(function() { + .then(function () { expect(xyCsv.tableStyle.allVariablesUnactive).toBeUndefined(); expect(xyCsv.tableStructure.items[1].isActive).toBe(true); xyCsv.tableStyle.allVariablesUnactive = true; @@ -2168,8 +2146,8 @@ describe("CsvCatalogItem & chart sharing", function() { }); }); }); - describe("serialization around tableStyle & tableStructures for geo csvs", function() { - it("does not generate columns when allowMultiple is false", function(done) { + describe("serialization around tableStyle & tableStructures for geo csvs", function () { + it("does not generate columns when allowMultiple is false", function (done) { csvItem .updateFromJson({ type: "csv", @@ -2179,7 +2157,7 @@ describe("CsvCatalogItem & chart sharing", function() { isvForCharting: false }) .then(csvItem.load.bind(csvItem)) - .then(function() { + .then(function () { expect(csvItem.tableStructure.allowMultiple).toBe(false); expect(csvItem.isMappable).toBe(true); var json = csvItem.serializeToJson(); @@ -2188,7 +2166,7 @@ describe("CsvCatalogItem & chart sharing", function() { .then(done) .catch(done.fail); }); - it("toggles the selected dataVariable in tablestructure from updateFromJson (e.g. story-transitions)", function(done) { + it("toggles the selected dataVariable in tablestructure from updateFromJson (e.g. story-transitions)", function (done) { csvItem .updateFromJson({ type: "csv", @@ -2198,19 +2176,19 @@ describe("CsvCatalogItem & chart sharing", function() { isCsvForCharting: false }) .then(csvItem.load.bind(csvItem)) - .then(function() { + .then(function () { expect(csvItem.isMappable).toEqual(true); expect(csvItem.concepts[0].activeItems.length).toEqual(1); expect(csvItem.concepts[0].activeItems[0].name).toEqual("value"); }) - .then(function() { + .then(function () { csvItem.updateFromJson({ tableStyle: { dataVariable: "name" } }); }) - .then(function() { + .then(function () { expect(csvItem.isMappable).toEqual(true); expect(csvItem.concepts[0].activeItems.length).toEqual(1); expect(csvItem.concepts[0].activeItems[0].name).toEqual("name"); @@ -2219,16 +2197,16 @@ describe("CsvCatalogItem & chart sharing", function() { .catch(done.fail); }); }); - describe("serialization around tableStyle & tableStructures for non-geo time series csvs", function() { - it("can be round-tripped with serializeToJson and updateFromJson", function() { + describe("serialization around tableStyle & tableStructures for non-geo time series csvs", function () { + it("can be round-tripped with serializeToJson and updateFromJson", function () { columns = { - "0": { + 0: { active: false }, - "1": { + 1: { active: false }, - "2": { + 2: { active: false } }; @@ -2264,15 +2242,15 @@ describe("CsvCatalogItem & chart sharing", function() { columns[2].active ); }); - it("serializes the dataurl for sharing if url does not exist", function() { + it("serializes the dataurl for sharing if url does not exist", function () { columns = { - "0": { + 0: { active: false }, - "1": { + 1: { active: false }, - "2": { + 2: { active: false } }; @@ -2311,15 +2289,15 @@ describe("CsvCatalogItem & chart sharing", function() { columns[2].active ); }); - it("generates columns on a table style on serialization for chartable items, when a CsvCatalogItem is created without them", function(done) { + it("generates columns on a table style on serialization for chartable items, when a CsvCatalogItem is created without them", function (done) { columns = { - "0": { + 0: { active: false }, - "1": { + 1: { active: false }, - "2": { + 2: { active: true } }; @@ -2336,7 +2314,7 @@ describe("CsvCatalogItem & chart sharing", function() { csvItem .load() - .then(function() { + .then(function () { // loaded in with 1 active item, expect(csvItem.isMappable).toBe(false); expect(csvItem.concepts[0].allowMultiple).toEqual(true); @@ -2393,15 +2371,15 @@ describe("CsvCatalogItem & chart sharing", function() { .catch(done.fail); }); - it("initialises and shares the correct 'no variables selected' state", function(done) { + it("initialises and shares the correct 'no variables selected' state", function (done) { columns = { - "0": { + 0: { active: false }, - "1": { + 1: { active: false }, - "2": { + 2: { active: false } }; @@ -2417,13 +2395,13 @@ describe("CsvCatalogItem & chart sharing", function() { columns: columns } }) - .then(function() { + .then(function () { expect(csvItem.tableStyle.columns[0].active).toBe(columns[0].active); expect(csvItem.tableStyle.columns[1].active).toBe(columns[1].active); expect(csvItem.tableStyle.columns[2].active).toBe(columns[2].active); }) .then(csvItem.load.bind(csvItem)) - .then(function() { + .then(function () { const tableStructure = csvItem.concepts[0]; expect(tableStructure.items[0].isActive).toBe(false); expect(tableStructure.items[1].isActive).toBe(true); @@ -2441,7 +2419,7 @@ describe("CsvCatalogItem & chart sharing", function() { expect(tableStructure.items[2].isActive).toBe(false); expect(tableStructure.activeItems.length).toBe(0); }) - .then(function() { + .then(function () { const serialized = csvItem.serializeToJson(); expect(serialized.tableStyle.allVariablesUnactive).toBe(true); expect(serialized.tableStyle.columns[0].active).toBe(false); @@ -2451,15 +2429,15 @@ describe("CsvCatalogItem & chart sharing", function() { .then(done) .catch(done.fail); }); - it("initialises the correct 'second variable is selected' state & shares newly toggled state", function(done) { + it("initialises the correct 'second variable is selected' state & shares newly toggled state", function (done) { columns = { - "0": { + 0: { active: false }, - "1": { + 1: { active: false }, - "2": { + 2: { active: true } }; @@ -2475,13 +2453,13 @@ describe("CsvCatalogItem & chart sharing", function() { columns: columns } }) - .then(function() { + .then(function () { expect(csvItem.tableStyle.columns[0].active).toBe(columns[0].active); expect(csvItem.tableStyle.columns[1].active).toBe(columns[1].active); expect(csvItem.tableStyle.columns[2].active).toBe(columns[2].active); }) .then(csvItem.load.bind(csvItem)) - .then(function() { + .then(function () { // because we load in non-geospatial data, and there are activeItems // ensureActiveColumnForNonSpatial() shouldn't change active columns const tableStructure = csvItem.concepts[0]; @@ -2517,10 +2495,10 @@ describe("CsvCatalogItem & chart sharing", function() { .catch(done.fail); }); }); - describe("load behaviour around SensorObservationServiceCatalogItem generated csvs", function() { + describe("load behaviour around SensorObservationServiceCatalogItem generated csvs", function () { var sosItem; var tableStructure; - beforeEach(function() { + beforeEach(function () { terria = new Terria({ baseUrl: "./" }); @@ -2530,7 +2508,7 @@ describe("CsvCatalogItem & chart sharing", function() { sosItem.id = "SosItem"; terria.catalog.group.add(sosItem); }); - it("attempts a load when `data` property is not undefined", function(done) { + it("attempts a load when `data` property is not undefined", function (done) { csvItem .updateFromJson({ type: "csv", @@ -2552,17 +2530,17 @@ describe("CsvCatalogItem & chart sharing", function() { columns: {} } }) - .then(function() { + .then(function () { csvItem.data = Promise.resolve(tableStructure); }) .then(csvItem.load.bind(csvItem)) - .then(function() { + .then(function () { expect(csvItem.tableStructure).toEqual(tableStructure); }) .then(done) .catch(done.fail); }); - it("does not load when we haven't defined how to load it via the csv's `data` property", function(done) { + it("does not load when we haven't defined how to load it via the csv's `data` property", function (done) { csvItem .updateFromJson({ type: "csv", @@ -2576,7 +2554,7 @@ describe("CsvCatalogItem & chart sharing", function() { } }) .then(csvItem.load.bind(csvItem)) - .then(function() { + .then(function () { expect(csvItem.tableStructure).toBeUndefined(); }) .then(done) diff --git a/test/Models/Catalog/CatalogItems/CsvCatalogItemTsSpec.ts b/test/Models/Catalog/CatalogItems/CsvCatalogItemTsSpec.ts index 1f05618479f..0c20c3e8f4f 100644 --- a/test/Models/Catalog/CatalogItems/CsvCatalogItemTsSpec.ts +++ b/test/Models/Catalog/CatalogItems/CsvCatalogItemTsSpec.ts @@ -7,11 +7,11 @@ const regionMapping = JSON.stringify( require("../../../../wwwroot/data/regionMapping.json") ); -describe("CsvCatalogItem", function() { +describe("CsvCatalogItem", function () { let terria: Terria; let csv: CsvCatalogItem; - beforeEach(function() { + beforeEach(function () { terria = new Terria(); csv = new CsvCatalogItem("test", terria, undefined); jasmine.Ajax.install(); @@ -20,11 +20,11 @@ describe("CsvCatalogItem", function() { ).andReturn({ responseText: regionMapping }); }); - afterEach(function() { + afterEach(function () { jasmine.Ajax.uninstall(); }); - it("filters out duplicate discrete times", async function() { + it("filters out duplicate discrete times", async function () { runInAction(() => { csv.setTrait("definition", "url", "test/csv/lat_lon_date_value.csv"); }); diff --git a/test/Models/Catalog/CatalogItems/CzmlCatalogItemSpec.ts b/test/Models/Catalog/CatalogItems/CzmlCatalogItemSpec.ts index 4177946bc62..f6e4e61ff09 100644 --- a/test/Models/Catalog/CatalogItems/CzmlCatalogItemSpec.ts +++ b/test/Models/Catalog/CatalogItems/CzmlCatalogItemSpec.ts @@ -7,25 +7,25 @@ import CommonStrata from "../../../../lib/Models/Definition/CommonStrata"; import CzmlCatalogItem from "../../../../lib/Models/Catalog/CatalogItems/CzmlCatalogItem"; import Terria from "../../../../lib/Models/Terria"; -describe("CzmlCatalogItem", function() { +describe("CzmlCatalogItem", function () { let terria: Terria; let czml: CzmlCatalogItem; - beforeEach(function() { + beforeEach(function () { terria = new Terria({ baseUrl: "./" }); czml = new CzmlCatalogItem("test", terria); }); - describe("loading a very simple CZML file", function() { - it("works by URL", async function() { + describe("loading a very simple CZML file", function () { + it("works by URL", async function () { czml.setTrait(CommonStrata.user, "url", "test/CZML/verysimple.czml"); await czml.loadMapItems(); expect(czml.mapItems[0].entities.values.length).toBeGreaterThan(0); }); - it("proxies URLs", async function() { + it("proxies URLs", async function () { czml.setTrait(CommonStrata.user, "url", "https://someexternalurl/"); czml.setTrait(CommonStrata.user, "forceProxy", true); const load = spyOn(CzmlDataSource, "load"); @@ -35,21 +35,21 @@ describe("CzmlCatalogItem", function() { ); }); - it("works by string", async function() { + it("works by string", async function () { const czmlString = await loadText("test/CZML/verysimple.czml"); czml.setTrait(CommonStrata.user, "czmlString", czmlString); await czml.loadMapItems(); expect(czml.mapItems[0].entities.values.length).toBeGreaterThan(0); }); - it("works by json object", async function() { + it("works by json object", async function () { const czmlJson = await loadJson("test/CZML/verysimple.czml"); czml.setTrait(CommonStrata.user, "czmlData", czmlJson); await czml.loadMapItems(); expect(czml.mapItems[0].entities.values.length).toBeGreaterThan(0); }); - it("works by blob", async function() { + it("works by blob", async function () { const blob = (await loadBlob("test/CZML/verysimple.czml")) as File; czml.setFileInput(blob); await czml.loadMapItems(); @@ -57,21 +57,21 @@ describe("CzmlCatalogItem", function() { }); }); - describe("loading a CZML file with a moving vehicle", function() { - it("works by URL", async function() { + describe("loading a CZML file with a moving vehicle", function () { + it("works by URL", async function () { czml.setTrait(CommonStrata.user, "url", "test/CZML/Vehicle.czml"); await czml.loadMapItems(); expect(czml.mapItems[0].entities.values.length).toBeGreaterThan(0); }); - it("works by string", async function() { + it("works by string", async function () { const czmlString = await loadText("test/CZML/Vehicle.czml"); czml.setTrait(CommonStrata.user, "czmlString", czmlString); await czml.loadMapItems(); expect(czml.mapItems[0].entities.values.length).toBeGreaterThan(0); }); - it("works by blob", async function() { + it("works by blob", async function () { const blob = (await loadBlob("test/CZML/Vehicle.czml")) as File; czml.setFileInput(blob); await czml.loadMapItems(); @@ -79,44 +79,44 @@ describe("CzmlCatalogItem", function() { }); }); - it("can load a CZML file with multiple moving and static objects", async function() { + it("can load a CZML file with multiple moving and static objects", async function () { czml.setTrait(CommonStrata.user, "url", "test/CZML/simple.czml"); await czml.loadMapItems(); expect(czml.mapItems[0].entities.values.length).toBeGreaterThan(0); }); - describe("Time varying traits", function() { - beforeEach(async function() { + describe("Time varying traits", function () { + beforeEach(async function () { czml.setTrait(CommonStrata.user, "url", "test/CZML/Vehicle.czml"); await czml.loadMapItems(); }); - it("sets currentTime", function() { + it("sets currentTime", function () { expect(czml.currentTime).toBe("2012-08-04T16:00:00Z"); }); - it("sets startTime", function() { + it("sets startTime", function () { expect(czml.startTime).toBe("2012-08-04T16:00:00Z"); }); - it("sets stopTime", function() { + it("sets stopTime", function () { expect(czml.stopTime).toBe("2012-08-04T17:04:54.996219574019051Z"); }); - it("sets multiplier", function() { + it("sets multiplier", function () { expect(czml.multiplier).toBe(32); }); }); - describe("error handling", function() { - it("fails gracefully when the data at a URL is not JSON", async function() { + describe("error handling", function () { + it("fails gracefully when the data at a URL is not JSON", async function () { czml.setTrait(CommonStrata.user, "url", "test/KML/vic_police.kml"); let error = (await czml.loadMapItems()).error; expect(error instanceof TerriaError).toBe(true); }); - it("fails gracefully when the provided string is not JSON", async function() { + it("fails gracefully when the provided string is not JSON", async function () { const invalidCzmlString = await loadText("test/KML/vic_police.kml"); czml.setTrait(CommonStrata.user, "czmlString", invalidCzmlString); let error = (await czml.loadMapItems()).error; @@ -124,7 +124,7 @@ describe("CzmlCatalogItem", function() { expect(error instanceof TerriaError).toBe(true); }); - it("fails gracefully when the provided blob is not JSON", async function() { + it("fails gracefully when the provided blob is not JSON", async function () { const invalidBlob = (await loadBlob("test/KML/vic_police.kml")) as File; czml.setFileInput(invalidBlob); let error = (await czml.loadMapItems()).error; @@ -133,8 +133,8 @@ describe("CzmlCatalogItem", function() { }); }); - describe("auto refreshing", async function() { - it("reloads the datasource when refreshed", async function() { + describe("auto refreshing", async function () { + it("reloads the datasource when refreshed", async function () { czml.setTrait(CommonStrata.user, "url", "test/CZML/Vehicle.czml"); await czml.loadMapItems(); const [dataSource] = czml.mapItems as [CzmlDataSource]; diff --git a/test/Models/Catalog/CatalogItems/GeoJsonCatalogItemSpec.ts b/test/Models/Catalog/CatalogItems/GeoJsonCatalogItemSpec.ts index f19a34e29bc..90c50f91451 100644 --- a/test/Models/Catalog/CatalogItems/GeoJsonCatalogItemSpec.ts +++ b/test/Models/Catalog/CatalogItems/GeoJsonCatalogItemSpec.ts @@ -29,11 +29,11 @@ import Feature from "../../../../lib/Models/Feature"; import Terria from "../../../../lib/Models/Terria"; describe("GeoJsonCatalogItemSpec", () => { - describe("- with cesium primitives", function() { + describe("- with cesium primitives", function () { let terria: Terria; let geojson: GeoJsonCatalogItem; - beforeEach(function() { + beforeEach(function () { terria = new Terria({ baseUrl: "./" }); @@ -41,7 +41,7 @@ describe("GeoJsonCatalogItemSpec", () => { geojson.setTrait(CommonStrata.user, "forceCesiumPrimitives", true); }); - describe("GeoJsonCatalogItem", function() { + describe("GeoJsonCatalogItem", function () { it("handles features with null geom", async () => { geojson.setTrait(CommonStrata.user, "geoJsonData", { type: "FeatureCollection", @@ -81,7 +81,7 @@ describe("GeoJsonCatalogItemSpec", () => { expect(geojson.readyData?.features.length).toBe(1); }); - it("reloads when the URL is changed", async function() { + it("reloads when the URL is changed", async function () { geojson.setTrait( CommonStrata.user, "url", @@ -122,8 +122,8 @@ describe("GeoJsonCatalogItemSpec", () => { }); }); - describe("loading in EPSG:28356", function() { - it("works by URL", async function() { + describe("loading in EPSG:28356", function () { + it("works by URL", async function () { geojson.setTrait( CommonStrata.user, "url", @@ -139,7 +139,7 @@ describe("GeoJsonCatalogItemSpec", () => { ).toBeDefined(); }); - it("works by string", async function() { + it("works by string", async function () { const geojsonString = await loadText("test/GeoJSON/bike_racks.geojson"); geojson.setTrait(CommonStrata.user, "geoJsonString", geojsonString); await geojson.loadMapItems(); @@ -152,7 +152,7 @@ describe("GeoJsonCatalogItemSpec", () => { ).toBeDefined(); }); - it("works by data object", async function() { + it("works by data object", async function () { const geojsonObject = await loadJson("test/GeoJSON/bike_racks.geojson"); geojson.setTrait(CommonStrata.user, "geoJsonData", geojsonObject); await geojson.loadMapItems(); @@ -165,7 +165,7 @@ describe("GeoJsonCatalogItemSpec", () => { ).toBeDefined(); }); - it("works with zip", async function() { + it("works with zip", async function () { geojson.setTrait( CommonStrata.user, "url", @@ -211,8 +211,8 @@ describe("GeoJsonCatalogItemSpec", () => { }); */ }); - describe("loading in CRS:84", function() { - it("works by URL", async function() { + describe("loading in CRS:84", function () { + it("works by URL", async function () { geojson.setTrait( CommonStrata.user, "url", @@ -228,7 +228,7 @@ describe("GeoJsonCatalogItemSpec", () => { ).toBeDefined(); }); - it("works by string", async function() { + it("works by string", async function () { const geojsonString = await loadText("test/GeoJSON/cemeteries.geojson"); geojson.setTrait(CommonStrata.user, "geoJsonString", geojsonString); await geojson.loadMapItems(); @@ -241,7 +241,7 @@ describe("GeoJsonCatalogItemSpec", () => { ).toBeDefined(); }); - it("works by blob", async function() { + it("works by blob", async function () { const blob = await loadJson("test/GeoJSON/cemeteries.geojson"); geojson.setTrait(CommonStrata.user, "geoJsonData", blob); await geojson.loadMapItems(); @@ -254,7 +254,7 @@ describe("GeoJsonCatalogItemSpec", () => { ).toBeDefined(); }); - it("works with zip", async function() { + it("works with zip", async function () { geojson.setTrait( CommonStrata.user, "url", @@ -271,8 +271,8 @@ describe("GeoJsonCatalogItemSpec", () => { }); }); - describe("loading without specified CRS (assumes EPSG:4326)", function() { - it("works by URL", async function() { + describe("loading without specified CRS (assumes EPSG:4326)", function () { + it("works by URL", async function () { geojson.setTrait(CommonStrata.user, "url", "test/GeoJSON/gme.geojson"); await geojson.loadMapItems(); expect(geojson.mapItems.length).toEqual(1); @@ -284,7 +284,7 @@ describe("GeoJsonCatalogItemSpec", () => { ).toBeDefined(); }); - it("works by string", async function() { + it("works by string", async function () { const geojsonString = await loadText("test/GeoJSON/gme.geojson"); geojson.setTrait(CommonStrata.user, "geoJsonString", geojsonString); await geojson.loadMapItems(); @@ -297,7 +297,7 @@ describe("GeoJsonCatalogItemSpec", () => { ).toBeDefined(); }); - it("works by blob", async function() { + it("works by blob", async function () { const blob = await loadJson("test/GeoJSON/gme.geojson"); geojson.setTrait(CommonStrata.user, "geoJsonData", blob); await geojson.loadMapItems(); @@ -310,7 +310,7 @@ describe("GeoJsonCatalogItemSpec", () => { ).toBeDefined(); }); - it("works with zip", async function() { + it("works with zip", async function () { geojson.setTrait( CommonStrata.user, "url", @@ -359,7 +359,7 @@ describe("GeoJsonCatalogItemSpec", () => { // }); // }); - describe("error handling", function() { + describe("error handling", function () { it("fails gracefully when the data at a URL is not JSON", async () => { geojson.setTrait(CommonStrata.user, "url", "test/KML/vic_police.kml"); @@ -551,8 +551,8 @@ describe("GeoJsonCatalogItemSpec", () => { }); }); - describe("Per features styling", function() { - it("Applies styles to features according to their properties, respecting string case", async function() { + describe("Per features styling", function () { + it("Applies styles to features according to their properties, respecting string case", async function () { const name = "PETER FAGANS GRAVE"; const fill = "#0000ff"; runInAction(() => { @@ -573,9 +573,10 @@ describe("GeoJsonCatalogItemSpec", () => { }); await geojson.loadMapItems(); - const entity = (geojson - .mapItems[0] as GeoJsonDataSource).entities.values.find( - e => e.properties?.getValue(JulianDate.now()).NAME === name + const entity = ( + geojson.mapItems[0] as GeoJsonDataSource + ).entities.values.find( + (e) => e.properties?.getValue(JulianDate.now()).NAME === name ); expect(entity).toBeDefined(); expect(entity?.properties?.getValue(JulianDate.now())?.fill).toEqual( @@ -585,11 +586,11 @@ describe("GeoJsonCatalogItemSpec", () => { }); }); - describe("- with CZML template", function() { + describe("- with CZML template", function () { let terria: Terria; let geojson: GeoJsonCatalogItem; - beforeEach(function() { + beforeEach(function () { terria = new Terria({ baseUrl: "./" }); @@ -686,11 +687,11 @@ describe("GeoJsonCatalogItemSpec", () => { }); }); - describe("- tablestyling - with geojson-vt and protomaps", function() { + describe("- tablestyling - with geojson-vt and protomaps", function () { let terria: Terria; let geojson: GeoJsonCatalogItem; - beforeEach(async function() { + beforeEach(async function () { terria = new Terria({ baseUrl: "./" }); @@ -826,7 +827,7 @@ describe("GeoJsonCatalogItemSpec", () => { ).toBeTruthy(); expect(geojson.legends.length).toBe(1); - expect(geojson.legends[0].items.map(i => i.color)).toEqual([ + expect(geojson.legends[0].items.map((i) => i.color)).toEqual([ "rgb(103,0,13)", "rgb(176,18,24)", "rgb(226,48,40)", @@ -865,7 +866,7 @@ describe("GeoJsonCatalogItemSpec", () => { expect(geojson.legends.length).toBe(1); expect(geojson.legends[0].items.length).toBe(1); - expect(geojson.legends[0].items.map(i => i.color)).toEqual([ + expect(geojson.legends[0].items.map((i) => i.color)).toEqual([ "rgb(102,194,165)" ]); @@ -883,7 +884,7 @@ describe("GeoJsonCatalogItemSpec", () => { expect(geojson.legends[0].url).toBe("some-url"); }); - it("correctly builds `Feature` from picked Entity", function() { + it("correctly builds `Feature` from picked Entity", function () { const picked = new Entity(); const feature = geojson.buildFeatureFromPickResult( Cartesian2.ZERO, @@ -900,7 +901,7 @@ describe("GeoJsonCatalogItemSpec", () => { let terria: Terria; let geojson: GeoJsonCatalogItem; - beforeEach(async function() { + beforeEach(async function () { terria = new Terria({ baseUrl: "./" }); @@ -939,7 +940,7 @@ describe("GeoJsonCatalogItemSpec", () => { let terria: Terria; let geojson: GeoJsonCatalogItem; - beforeEach(async function() { + beforeEach(async function () { terria = new Terria({ baseUrl: "./" }); @@ -965,18 +966,18 @@ describe("GeoJsonCatalogItemSpec", () => { }); }); - describe("geojson can be split", function() { + describe("geojson can be split", function () { let terria: Terria; let geojson: GeoJsonCatalogItem; - beforeEach(async function() { + beforeEach(async function () { terria = new Terria({ baseUrl: "./" }); geojson = new GeoJsonCatalogItem("test-geojson", terria); }); - it("protomaps-mvt", async function() { + it("protomaps-mvt", async function () { terria.addModel(geojson); const geojsonString = await loadText("test/GeoJSON/cemeteries.geojson"); geojson.setTrait(CommonStrata.user, "geoJsonString", geojsonString); @@ -1001,18 +1002,18 @@ describe("GeoJsonCatalogItemSpec", () => { }); }); - describe("geojson handles reprojection", function() { + describe("geojson handles reprojection", function () { let terria: Terria; let geojson: GeoJsonCatalogItem; - beforeEach(async function() { + beforeEach(async function () { terria = new Terria({ baseUrl: "./" }); geojson = new GeoJsonCatalogItem("test-geojson", terria); }); - it("feature collection", async function() { + it("feature collection", async function () { geojson.setTrait( CommonStrata.user, "geoJsonString", @@ -1099,7 +1100,7 @@ describe("GeoJsonCatalogItemSpec", () => { } as any); }); - it("feature", async function() { + it("feature", async function () { geojson.setTrait( CommonStrata.user, "geoJsonString", @@ -1172,18 +1173,18 @@ describe("GeoJsonCatalogItemSpec", () => { }); }); - describe("pick features", function() { + describe("pick features", function () { let terria: Terria; let geojson: GeoJsonCatalogItem; - beforeEach(async function() { + beforeEach(async function () { terria = new Terria({ baseUrl: "./" }); geojson = new GeoJsonCatalogItem("test-geojson", terria); }); - it("ProtomapsImageryProvider.createHighlightImageryProvider", async function() { + it("ProtomapsImageryProvider.createHighlightImageryProvider", async function () { geojson.setTrait( CommonStrata.definition, "geoJsonString", @@ -1195,9 +1196,10 @@ describe("GeoJsonCatalogItemSpec", () => { const imagery = geojson.mapItems[0]; if ("imageryProvider" in imagery) { - const highlight = imagery.imageryProvider.createHighlightImageryProvider( - new Feature({ properties: { [FEATURE_ID_PROP]: "0" } }) - ); + const highlight = + imagery.imageryProvider.createHighlightImageryProvider( + new Feature({ properties: { [FEATURE_ID_PROP]: "0" } }) + ); expect(highlight).toBeDefined(); expect(highlight?.paintRules[0].dataLayer).toBe( diff --git a/test/Models/Catalog/CatalogItems/GeoRssCatalogItemSpec.ts b/test/Models/Catalog/CatalogItems/GeoRssCatalogItemSpec.ts index 0d70cdaf186..6d355742030 100644 --- a/test/Models/Catalog/CatalogItems/GeoRssCatalogItemSpec.ts +++ b/test/Models/Catalog/CatalogItems/GeoRssCatalogItemSpec.ts @@ -5,31 +5,31 @@ import GeoRssCatalogItem from "../../../../lib/Models/Catalog/CatalogItems/GeoRs import CommonStrata from "../../../../lib/Models/Definition/CommonStrata"; import Terria from "../../../../lib/Models/Terria"; -describe("GeoRssCatalogItem", function() { +describe("GeoRssCatalogItem", function () { let terria: Terria; let item: GeoRssCatalogItem; - beforeEach(function() { + beforeEach(function () { terria = new Terria(); item = new GeoRssCatalogItem("test", terria); }); - it("has a type and typeName", function() { + it("has a type and typeName", function () { expect(item.type).toBe("georss"); expect(item.typeName).toBe(i18next.t("models.georss.name")); }); - it("supports zooming to extent", async function() { + it("supports zooming to extent", async function () { item.setTrait(CommonStrata.definition, "url", "test/GeoRSS/rss2/rss2.xml"); await item.loadMapItems(); expect(item.disableZoomTo).toBeFalsy(); }); - it("supports show info", function() { + it("supports show info", function () { expect(item.disableAboutData).toBeFalsy(); }); - describe("georss 2.0", function() { - it("properly loads rss2 file", async function() { + describe("georss 2.0", function () { + it("properly loads rss2 file", async function () { runInAction(() => { item.setTrait( CommonStrata.definition, @@ -48,7 +48,7 @@ describe("GeoRssCatalogItem", function() { expect(item.readyData?.features.length).toEqual(3); }); - it("load combined geometry rss", async function() { + it("load combined geometry rss", async function () { runInAction(() => { item.setTrait( CommonStrata.definition, @@ -66,7 +66,7 @@ describe("GeoRssCatalogItem", function() { expect(item.readyData?.features.length).toEqual(8); }); - it("properly handles entry with no geometry", async function() { + it("properly handles entry with no geometry", async function () { runInAction(() => { item.setTrait( CommonStrata.definition, @@ -85,8 +85,8 @@ describe("GeoRssCatalogItem", function() { }); }); - describe("atom feed", function() { - it("properly loads atom feed response file", async function() { + describe("atom feed", function () { + it("properly loads atom feed response file", async function () { runInAction(() => { item.setTrait( CommonStrata.definition, @@ -106,7 +106,7 @@ describe("GeoRssCatalogItem", function() { expect(item.readyData?.features.length).toEqual(3); }); - it("load combined geometry atom feed", async function() { + it("load combined geometry atom feed", async function () { runInAction(() => { item.setTrait( CommonStrata.definition, @@ -124,7 +124,7 @@ describe("GeoRssCatalogItem", function() { expect(item.readyData?.features.length).toEqual(8); }); - it("properly handles entry with no geometry", async function() { + it("properly handles entry with no geometry", async function () { runInAction(() => { item.setTrait( CommonStrata.definition, @@ -143,7 +143,7 @@ describe("GeoRssCatalogItem", function() { }); }); - it("name is defined from title element", async function() { + it("name is defined from title element", async function () { runInAction(() => { item.setTrait( CommonStrata.definition, @@ -155,7 +155,7 @@ describe("GeoRssCatalogItem", function() { expect(item.name).toEqual("GeoRSS feed sample"); }); - it("name is defined", async function() { + it("name is defined", async function () { runInAction(() => { item.setTrait( CommonStrata.definition, diff --git a/test/Models/Catalog/CatalogItems/GltfCatalogItemSpec.ts b/test/Models/Catalog/CatalogItems/GltfCatalogItemSpec.ts index 0d15fd6bd10..ce22f2a9884 100644 --- a/test/Models/Catalog/CatalogItems/GltfCatalogItemSpec.ts +++ b/test/Models/Catalog/CatalogItems/GltfCatalogItemSpec.ts @@ -10,19 +10,19 @@ import Terria from "../../../../lib/Models/Terria"; import HeadingPitchRollTraits from "../../../../lib/Traits/TraitsClasses/HeadingPitchRollTraits"; import LatLonHeightTraits from "../../../../lib/Traits/TraitsClasses/LatLonHeightTraits"; -describe("GltfCatalogItem", function() { +describe("GltfCatalogItem", function () { let gltf: GltfCatalogItem; - beforeEach(function() { + beforeEach(function () { gltf = new GltfCatalogItem("test", new Terria()); gltf.setTrait("definition", "url", "test/gltf/Cesium_Air.glb"); }); - it("is Mappable", function() { + it("is Mappable", function () { expect(MappableMixin.isMixedInto(gltf)).toBeTruthy(); }); - it("creates a DataSource with a model", async function() { + it("creates a DataSource with a model", async function () { await gltf.loadMapItems(); expect(gltf.mapItems.length).toBe(1); expect(gltf.mapItems[0].entities.values.length).toBe(1); @@ -30,9 +30,9 @@ describe("GltfCatalogItem", function() { expect(gltf.mapItems[0].entities.values[0].model).toBeDefined(); }); - describe("orientation", function() { - describe("when no rotation is defined", function() { - it("defaults to zero rotation", async function() { + describe("orientation", function () { + describe("when no rotation is defined", function () { + it("defaults to zero rotation", async function () { gltf.setTrait( CommonStrata.user, "origin", @@ -57,8 +57,8 @@ describe("GltfCatalogItem", function() { }); }); - describe("when rotation is defined", function() { - it("correctly sets the orientation", async function() { + describe("when rotation is defined", function () { + it("correctly sets the orientation", async function () { gltf.setTrait( CommonStrata.user, "rotation", @@ -93,12 +93,12 @@ describe("GltfCatalogItem", function() { }); }); - describe("hasLocalData", function() { - it("should be false by default", function() { + describe("hasLocalData", function () { + it("should be false by default", function () { expect(gltf.hasLocalData).toBeFalsy(); }); - it("should be true if the catalog item has local file data", function() { + it("should be true if the catalog item has local file data", function () { gltf.setFileInput(new Blob()); expect(gltf.hasLocalData).toBeTruthy(); }); diff --git a/test/Models/Catalog/CatalogItems/GpxCatalogItemSpec.ts b/test/Models/Catalog/CatalogItems/GpxCatalogItemSpec.ts index 05e0f44019a..803c3247eb6 100644 --- a/test/Models/Catalog/CatalogItems/GpxCatalogItemSpec.ts +++ b/test/Models/Catalog/CatalogItems/GpxCatalogItemSpec.ts @@ -5,27 +5,27 @@ import GpxCatalogItem from "../../../../lib/Models/Catalog/CatalogItems/GpxCatal import CommonStrata from "../../../../lib/Models/Definition/CommonStrata"; import Terria from "../../../../lib/Models/Terria"; -describe("GpxCatalogItem", function() { +describe("GpxCatalogItem", function () { let terria; let item: GpxCatalogItem; - beforeEach(function() { + beforeEach(function () { terria = new Terria(); item = new GpxCatalogItem("test", terria); }); - it("has type and type name", function() { + it("has type and type name", function () { expect(item.type).toBe("gpx"); expect(item.typeName).toBe(i18next.t("models.gpx.name")); }); - it("supports zooming to extent", async function() { + it("supports zooming to extent", async function () { item.setTrait(CommonStrata.definition, "url", "test/gpx/example.gpx"); await item.loadMapItems(); expect(item.disableZoomTo).toBeFalsy(); }); - it("supports show info", async function() { + it("supports show info", async function () { item.setTrait(CommonStrata.definition, "url", "test/gpx/example.gpx"); await item.loadMapItems(); expect(item.disableAboutData).toBeFalsy(); diff --git a/test/Models/Catalog/CatalogItems/ImageryLayerCatalogItemSpec.js b/test/Models/Catalog/CatalogItems/ImageryLayerCatalogItemSpec.js index 60257888238..fe1064b4069 100644 --- a/test/Models/Catalog/CatalogItems/ImageryLayerCatalogItemSpec.js +++ b/test/Models/Catalog/CatalogItems/ImageryLayerCatalogItemSpec.js @@ -1,32 +1,32 @@ "use strict"; const CesiumEvent = require("terriajs-cesium/Source/Core/Event").default; -const ImageryLayer = require("terriajs-cesium/Source/Scene/ImageryLayer") - .default; -const ImageryProvider = require("terriajs-cesium/Source/Scene/ImageryProvider") - .default; -const ImageryState = require("terriajs-cesium/Source/Scene/ImageryState") - .default; +const ImageryLayer = + require("terriajs-cesium/Source/Scene/ImageryLayer").default; +const ImageryProvider = + require("terriajs-cesium/Source/Scene/ImageryProvider").default; +const ImageryState = + require("terriajs-cesium/Source/Scene/ImageryState").default; const JulianDate = require("terriajs-cesium/Source/Core/JulianDate").default; const pollToPromise = require("../../lib/Core/pollToPromise"); -const RequestErrorEvent = require("terriajs-cesium/Source/Core/RequestErrorEvent") - .default; +const RequestErrorEvent = + require("terriajs-cesium/Source/Core/RequestErrorEvent").default; const Resource = require("terriajs-cesium/Source/Core/Resource").default; const runLater = require("../../../../lib/Core/runLater"); -const TimeIntervalCollection = require("terriajs-cesium/Source/Core/TimeIntervalCollection") - .default; -const TimeInterval = require("terriajs-cesium/Source/Core/TimeInterval") - .default; +const TimeIntervalCollection = + require("terriajs-cesium/Source/Core/TimeIntervalCollection").default; +const TimeInterval = + require("terriajs-cesium/Source/Core/TimeInterval").default; const Terria = require("../../../../lib/Models/Terria"); const ImageryLayerCatalogItem = require("../../lib/Models/ImageryLayerCatalogItem"); -describe("ImageryLayerCatalogItem", function() { - describe("Time slider initial time as specified by initialTimeSource ", function() { +describe("ImageryLayerCatalogItem", function () { + describe("Time slider initial time as specified by initialTimeSource ", function () { var terria; var catalogItem; - beforeEach(function() { + beforeEach(function () { terria = new Terria({ baseUrl: "./" }); @@ -34,7 +34,7 @@ describe("ImageryLayerCatalogItem", function() { }); // Future developers take note: some of these tests will stop working in August 3015. - it('should be start if "start" set', function() { + it('should be start if "start" set', function () { catalogItem.initialTimeSource = "start"; catalogItem.intervals = new TimeIntervalCollection([ new TimeInterval({ @@ -48,7 +48,7 @@ describe("ImageryLayerCatalogItem", function() { expect(currentTime).toBe("2013-08-07"); }); - it('should be current time if "present" set', function() { + it('should be current time if "present" set', function () { catalogItem.initialTimeSource = "present"; catalogItem.intervals = new TimeIntervalCollection([ new TimeInterval({ @@ -64,7 +64,7 @@ describe("ImageryLayerCatalogItem", function() { expect(currentTime).toBe(dateNow); }); - it('should be last time if "end" set', function() { + it('should be last time if "end" set', function () { catalogItem.initialTimeSource = "end"; catalogItem.intervals = new TimeIntervalCollection([ new TimeInterval({ @@ -78,7 +78,7 @@ describe("ImageryLayerCatalogItem", function() { expect(currentTime).toBe("2015-08-09"); }); - it("should be set to date specified if date is specified", function() { + it("should be set to date specified if date is specified", function () { catalogItem.initialTimeSource = "2015-08-08T00:00:00.00Z"; catalogItem.intervals = new TimeIntervalCollection([ new TimeInterval({ @@ -92,7 +92,7 @@ describe("ImageryLayerCatalogItem", function() { expect(currentTime).toBe("2015-08-08"); }); - it("should be set to start if date specified is before time range, with two intervals", function() { + it("should be set to start if date specified is before time range, with two intervals", function () { catalogItem.initialTimeSource = "2012-01-01T12:00:00Z"; catalogItem.intervals = new TimeIntervalCollection([ new TimeInterval({ @@ -110,10 +110,10 @@ describe("ImageryLayerCatalogItem", function() { expect(currentTime).toBe("2013-08-01"); }); - it("should throw if a rubbish string is specified", function() { + it("should throw if a rubbish string is specified", function () { catalogItem.initialTimeSource = "2015z08-08"; - expect(function() { + expect(function () { catalogItem.intervals = new TimeIntervalCollection([ new TimeInterval({ start: JulianDate.fromIso8601("2013-08-07T00:00:00.00Z"), @@ -124,7 +124,7 @@ describe("ImageryLayerCatalogItem", function() { }); }); - describe("tile error handling", function() { + describe("tile error handling", function () { const image = document.createElement("img"); image.src = "images/blank.png"; @@ -135,7 +135,7 @@ describe("ImageryLayerCatalogItem", function() { let imagery; let imageryLayer; - beforeEach(function() { + beforeEach(function () { terria = { error: new CesiumEvent() }; @@ -144,20 +144,20 @@ describe("ImageryLayerCatalogItem", function() { tileErrorThresholdBeforeDisabling: 5 }; imageryProvider = { - requestImage: function(x, y, level) { + requestImage: function (x, y, level) { return ImageryProvider.loadImage(this, "images/blank.png"); }, errorEvent: new CesiumEvent() }; globeOrMap = { terria: terria, - addImageryProvider: function(options) { + addImageryProvider: function (options) { options.imageryProvider.errorEvent.addEventListener( options.onLoadError ); return new ImageryLayer(options.imageryProvider); }, - isImageryLayerShown: function() { + isImageryLayerShown: function () { return true; } }; @@ -179,7 +179,7 @@ describe("ImageryLayerCatalogItem", function() { }); function failLoad(statusCode, times) { - return spyOn(Resource.prototype, "fetchImage").and.callFake(function( + return spyOn(Resource.prototype, "fetchImage").and.callFake(function ( options ) { if (times > 0) { @@ -195,46 +195,46 @@ describe("ImageryLayerCatalogItem", function() { }); } - it("ignores errors in disabled layers", function(done) { + it("ignores errors in disabled layers", function (done) { spyOn(globeOrMap, "isImageryLayerShown").and.returnValue(false); const fetchImage = failLoad(503, 10); imageryLayer._requestImagery(imagery); - pollToPromise(function() { + pollToPromise(function () { return imagery.state === ImageryState.FAILED; }) - .then(function() { + .then(function () { expect(fetchImage.calls.count()).toEqual(1); }) .then(done) .catch(done.fail); }); - it("retries images that fail with a 503 error", function(done) { + it("retries images that fail with a 503 error", function (done) { const fetchImage = failLoad(503, 2); imageryLayer._requestImagery(imagery); - pollToPromise(function() { + pollToPromise(function () { return imagery.state === ImageryState.RECEIVED; }) - .then(function() { + .then(function () { expect(fetchImage.calls.count()).toEqual(4); }) .then(done) .catch(done.fail); }); - it("eventually gives up on a tile that only succeeds when loaded via blob", function(done) { + it("eventually gives up on a tile that only succeeds when loaded via blob", function (done) { const fetchImage = spyOn(Resource.prototype, "fetchImage").and.callFake( - function(options) { + function (options) { if (options.preferBlob) { - return runLater(function() { + return runLater(function () { return image; }); } else { - return runLater(function() { + return runLater(function () { return Promise.reject(image); }); } @@ -243,17 +243,17 @@ describe("ImageryLayerCatalogItem", function() { imageryLayer._requestImagery(imagery); - pollToPromise(function() { + pollToPromise(function () { return imagery.state === ImageryState.FAILED; }) - .then(function() { + .then(function () { expect(fetchImage.calls.count()).toBeGreaterThan(5); }) .then(done) .catch(done.fail); }); - it("ignores any number of 404 errors if treat404AsError is false", function(done) { + it("ignores any number of 404 errors if treat404AsError is false", function (done) { const fetchImage = failLoad(404, 100); catalogItem.treat404AsError = false; @@ -267,21 +267,21 @@ describe("ImageryLayerCatalogItem", function() { imageryLayer._requestImagery(tiles[i]); } - pollToPromise(function() { + pollToPromise(function () { let result = true; for (let i = 0; i < tiles.length; ++i) { result = result && tiles[i].state === ImageryState.FAILED; } return result; }) - .then(function() { + .then(function () { expect(fetchImage.calls.count()).toEqual(tiles.length * 2); }) .then(done) .catch(done.fail); }); - it("ignores any number of 403 errors if treat403AsError is false", function(done) { + it("ignores any number of 403 errors if treat403AsError is false", function (done) { const fetchImage = failLoad(403, 100); catalogItem.treat403AsError = false; @@ -295,21 +295,21 @@ describe("ImageryLayerCatalogItem", function() { imageryLayer._requestImagery(tiles[i]); } - pollToPromise(function() { + pollToPromise(function () { let result = true; for (let i = 0; i < tiles.length; ++i) { result = result && tiles[i].state === ImageryState.FAILED; } return result; }) - .then(function() { + .then(function () { expect(fetchImage.calls.count()).toEqual(tiles.length * 2); }) .then(done) .catch(done.fail); }); - it("doesn't disable the layer after only five 404s if treat404AsError is true", function(done) { + it("doesn't disable the layer after only five 404s if treat404AsError is true", function (done) { const fetchImage = failLoad(404, 100); catalogItem.treat404AsError = true; catalogItem.isShown = true; @@ -324,14 +324,14 @@ describe("ImageryLayerCatalogItem", function() { imageryLayer._requestImagery(tiles[i]); } - pollToPromise(function() { + pollToPromise(function () { let result = true; for (let i = 0; i < tiles.length; ++i) { result = result && tiles[i].state === ImageryState.FAILED; } return result; }) - .then(function() { + .then(function () { expect(fetchImage.calls.count()).toEqual(tiles.length * 2); expect(catalogItem.isShown).toBe(true); }) @@ -339,7 +339,7 @@ describe("ImageryLayerCatalogItem", function() { .catch(done.fail); }); - it("disables the layer after six 404s if treat404AsError is true", function(done) { + it("disables the layer after six 404s if treat404AsError is true", function (done) { const fetchImage = failLoad(404, 100); catalogItem.treat404AsError = true; catalogItem.isShown = true; @@ -354,14 +354,14 @@ describe("ImageryLayerCatalogItem", function() { imageryLayer._requestImagery(tiles[i]); } - pollToPromise(function() { + pollToPromise(function () { let result = true; for (let i = 0; i < tiles.length; ++i) { result = result && tiles[i].state === ImageryState.FAILED; } return result; }) - .then(function() { + .then(function () { expect(fetchImage.calls.count()).toEqual(tiles.length * 2); expect(catalogItem.isShown).toBe(false); }) diff --git a/test/Models/Catalog/CatalogItems/IonImageryCatalogItemSpec.ts b/test/Models/Catalog/CatalogItems/IonImageryCatalogItemSpec.ts index fd0c7c8b900..e909ffa11de 100644 --- a/test/Models/Catalog/CatalogItems/IonImageryCatalogItemSpec.ts +++ b/test/Models/Catalog/CatalogItems/IonImageryCatalogItemSpec.ts @@ -4,15 +4,15 @@ import { ImageryParts } from "../../../../lib/ModelMixins/MappableMixin"; import IonImageryCatalogItem from "../../../../lib/Models/Catalog/CatalogItems/IonImageryCatalogItem"; import Terria from "../../../../lib/Models/Terria"; -describe("IonImageryCatalogItem", function() { +describe("IonImageryCatalogItem", function () { let item = new IonImageryCatalogItem("test", new Terria()); - it("has a type", function() { + it("has a type", function () { expect(IonImageryCatalogItem.type).toBe("ion-imagery"); }); - describe("the mapItem", function() { - beforeEach(function() { + describe("the mapItem", function () { + beforeEach(function () { runInAction(() => { item.setTrait("definition", "ionAssetId", 12345); item.setTrait("definition", "ionAccessToken", "fakeAccessToken"); @@ -20,7 +20,7 @@ describe("IonImageryCatalogItem", function() { }); }); - it("correctly sets the `alpha` value", function() { + it("correctly sets the `alpha` value", function () { if (!ImageryParts.is(item.mapItems[0])) throw new Error("Expected MapItem to be an ImageryParts"); @@ -28,7 +28,7 @@ describe("IonImageryCatalogItem", function() { expect(item.mapItems[0].alpha).toBe(0.42); }); - it("correctly sets `show`", function() { + it("correctly sets `show`", function () { if (!ImageryParts.is(item.mapItems[0])) throw new Error("Expected MapItem to be an ImageryParts"); @@ -39,8 +39,8 @@ describe("IonImageryCatalogItem", function() { }); }); - describe("imageryProvider", function() { - it("should be a UrlTemplateImageryProvider", function() { + describe("imageryProvider", function () { + it("should be a UrlTemplateImageryProvider", function () { if (!ImageryParts.is(item.mapItems[0])) throw new Error("Expected MapItem to be an ImageryParts"); let imageryProvider = item.mapItems[0].imageryProvider; diff --git a/test/Models/Catalog/CatalogItems/KmlCatalogItemSpec.js b/test/Models/Catalog/CatalogItems/KmlCatalogItemSpec.js index 8fb1c28ff94..75add1f0c4c 100644 --- a/test/Models/Catalog/CatalogItems/KmlCatalogItemSpec.js +++ b/test/Models/Catalog/CatalogItems/KmlCatalogItemSpec.js @@ -11,34 +11,34 @@ var loadXML = require("../../../../lib/Core/loadXML"); // KML requires support for Blob. See https://github.com/TerriaJS/terriajs/issues/508 var describeIfSupported = typeof Blob !== "undefined" ? describe : xdescribe; -describeIfSupported("KmlCatalogItem", function() { +describeIfSupported("KmlCatalogItem", function () { var terria; var kml; - beforeEach(function() { + beforeEach(function () { terria = new Terria({ baseUrl: "./" }); kml = new KmlCatalogItem(terria); }); - it("can load a KML file by URL", function(done) { + it("can load a KML file by URL", function (done) { kml.url = "test/KML/vic_police.kml"; kml .load() - .then(function() { + .then(function () { expect(kml.dataSource.entities.values.length).toBeGreaterThan(0); }) .then(done) .catch(done.fail); }); - it("use provided dataUrl", function(done) { + it("use provided dataUrl", function (done) { kml.url = "test/KML/vic_police.kml"; kml.dataUrl = "test/test.html"; kml .load() - .then(function() { + .then(function () { expect(kml.dataSource.entities.values.length).toBeGreaterThan(0); expect(kml.dataUrl).toBe("test/test.html"); }) @@ -46,7 +46,7 @@ describeIfSupported("KmlCatalogItem", function() { .catch(done.fail); }); - it("have default dataUrl and dataUrlType", function() { + it("have default dataUrl and dataUrlType", function () { kml.updateFromJson({ url: "test/KML/vic_police.kml" }); @@ -54,13 +54,13 @@ describeIfSupported("KmlCatalogItem", function() { expect(kml.dataUrlType).toBe("direct"); }); - it("can load a KML file by provided XML data", function(done) { - loadXML("test/KML/vic_police.kml").then(function(xml) { + it("can load a KML file by provided XML data", function (done) { + loadXML("test/KML/vic_police.kml").then(function (xml) { kml.data = xml; kml.dataSourceUrl = "anything.kml"; kml .load() - .then(function() { + .then(function () { expect(kml.dataSource.entities.values.length).toBeGreaterThan(0); }) .then(done) @@ -68,13 +68,13 @@ describeIfSupported("KmlCatalogItem", function() { }); }); - it("can load a KML file by provided Blob", function(done) { - loadBlob("test/KML/vic_police.kml").then(function(blob) { + it("can load a KML file by provided Blob", function (done) { + loadBlob("test/KML/vic_police.kml").then(function (blob) { kml.data = blob; kml.dataSourceUrl = "anything.kml"; kml .load() - .then(function() { + .then(function () { expect(kml.dataSource.entities.values.length).toBeGreaterThan(0); }) .then(done) @@ -82,13 +82,13 @@ describeIfSupported("KmlCatalogItem", function() { }); }); - it("can load a KML file by provided string", function(done) { - loadText("test/KML/vic_police.kml").then(function(s) { + it("can load a KML file by provided string", function (done) { + loadText("test/KML/vic_police.kml").then(function (s) { kml.data = s; kml.dataSourceUrl = "anything.kml"; kml .load() - .then(function() { + .then(function () { expect(kml.dataSource.entities.values.length).toBeGreaterThan(0); }) .then(done) @@ -96,24 +96,24 @@ describeIfSupported("KmlCatalogItem", function() { }); }); - it("can load a KMZ file by URL", function(done) { + it("can load a KMZ file by URL", function (done) { kml.url = require("file-loader!../../../../wwwroot/test/KML/vic_police.kmz"); kml .load() - .then(function() { + .then(function () { expect(kml.dataSource.entities.values.length).toBeGreaterThan(0); }) .then(done) .catch(done.fail); }); - it("can load a KMZ file by provided Blob", function(done) { - loadBlob("test/KML/vic_police.kmz").then(function(blob) { + it("can load a KMZ file by provided Blob", function (done) { + loadBlob("test/KML/vic_police.kmz").then(function (blob) { kml.data = blob; kml.dataSourceUrl = "anything.kmz"; kml .load() - .then(function() { + .then(function () { expect(kml.dataSource.entities.values.length).toBeGreaterThan(0); }) .then(done) @@ -121,48 +121,48 @@ describeIfSupported("KmlCatalogItem", function() { }); }); - describe("error handling", function() { - it("fails gracefully when the data at a URL is not XML", function(done) { + describe("error handling", function () { + it("fails gracefully when the data at a URL is not XML", function (done) { kml.url = "test/CZML/simple.czml"; kml .load() - .then(function() { + .then(function () { done.fail("Load should not succeed."); }) - .catch(function(e) { + .catch(function (e) { expect(e instanceof TerriaError).toBe(true); done(); }); }); - it("fails gracefully when the provided string is not XML", function(done) { - loadText("test/CZML/simple.czml").then(function(s) { + it("fails gracefully when the provided string is not XML", function (done) { + loadText("test/CZML/simple.czml").then(function (s) { kml.data = s; kml.dataSourceUrl = "anything.czml"; kml .load() - .then(function() { + .then(function () { done.fail("Load should not succeed."); }) - .catch(function(e) { + .catch(function (e) { expect(e instanceof TerriaError).toBe(true); done(); }); }); }); - it("fails gracefully when the provided blob is not XML", function(done) { - loadBlob("test/CZML/simple.czml").then(function(blob) { + it("fails gracefully when the provided blob is not XML", function (done) { + loadBlob("test/CZML/simple.czml").then(function (blob) { kml.data = blob; kml.dataSourceUrl = "anything.czml"; kml .load() - .then(function() { + .then(function () { done.fail("Load should not succeed."); }) - .catch(function(e) { + .catch(function (e) { expect(e instanceof TerriaError).toBe(true); done(); }); diff --git a/test/Models/Catalog/CatalogItems/MapboxVectorTileCatalogItemSpec.ts b/test/Models/Catalog/CatalogItems/MapboxVectorTileCatalogItemSpec.ts index 4b47f311328..d23abc796ec 100644 --- a/test/Models/Catalog/CatalogItems/MapboxVectorTileCatalogItemSpec.ts +++ b/test/Models/Catalog/CatalogItems/MapboxVectorTileCatalogItemSpec.ts @@ -6,22 +6,22 @@ import MapboxVectorTileCatalogItem from "../../../../lib/Models/Catalog/CatalogI import CommonStrata from "../../../../lib/Models/Definition/CommonStrata"; import Terria from "../../../../lib/Models/Terria"; -describe("MapboxVectorTileCatalogItem", function() { +describe("MapboxVectorTileCatalogItem", function () { let mvt: MapboxVectorTileCatalogItem; - beforeEach(function() { + beforeEach(function () { mvt = new MapboxVectorTileCatalogItem("test", new Terria()); }); - it("has a type", function() { + it("has a type", function () { expect(MapboxVectorTileCatalogItem.type).toBe("mvt"); expect(mvt.type).toBe("mvt"); }); - describe("imageryProvider", function() { + describe("imageryProvider", function () { let imageryProvider: ProtomapsImageryProvider; - beforeEach(async function() { + beforeEach(async function () { mvt.setTrait(CommonStrata.user, "url", "http://test"); mvt.setTrait(CommonStrata.user, "layer", "test-layer"); await mvt.loadMapItems(); @@ -32,15 +32,15 @@ describe("MapboxVectorTileCatalogItem", function() { .imageryProvider as ProtomapsImageryProvider; }); - it("is an instance of ProtomapsImageryProvider", function() { + it("is an instance of ProtomapsImageryProvider", function () { expect(imageryProvider instanceof ProtomapsImageryProvider).toBeTruthy(); }); }); - describe("legends", function() { + describe("legends", function () { it( "constructs a default legend from the definition", - action(async function() { + action(async function () { mvt.setTrait(CommonStrata.user, "fillColor", "red"); mvt.setTrait(CommonStrata.user, "lineColor", "yellow"); mvt.setTrait(CommonStrata.user, "name", "Test"); @@ -53,10 +53,10 @@ describe("MapboxVectorTileCatalogItem", function() { ); }); - describe("paint rules", function() { + describe("paint rules", function () { it( "creates paint rules from simple styles", - action(async function() { + action(async function () { mvt.setTrait(CommonStrata.user, "fillColor", "red"); mvt.setTrait(CommonStrata.user, "lineColor", "yellow"); mvt.setTrait(CommonStrata.user, "layer", "Test"); diff --git a/test/Models/Catalog/CatalogItems/OpenDataSoftCatalogItemSpec.ts b/test/Models/Catalog/CatalogItems/OpenDataSoftCatalogItemSpec.ts index 60fdec882da..67ddb96e8e7 100644 --- a/test/Models/Catalog/CatalogItems/OpenDataSoftCatalogItemSpec.ts +++ b/test/Models/Catalog/CatalogItems/OpenDataSoftCatalogItemSpec.ts @@ -19,11 +19,11 @@ const regionMapping = JSON.stringify( require("../../../../wwwroot/data/regionMapping.json") ); -describe("OpenDataSoftCatalogItem", function() { +describe("OpenDataSoftCatalogItem", function () { let terria: Terria; let odsItem: OpenDataSoftCatalogItem; - beforeEach(function() { + beforeEach(function () { fetchMock.mock( "https://example.com/api/v2/catalog/datasets/weather-stations/", { body: dataset } @@ -49,24 +49,24 @@ describe("OpenDataSoftCatalogItem", function() { odsItem = new OpenDataSoftCatalogItem("test", terria, undefined); }); - afterEach(function() { + afterEach(function () { jasmine.Ajax.uninstall(); fetchMock.restore(); }); - it("has a type", function() { + it("has a type", function () { expect(odsItem.type).toBe("opendatasoft-item"); }); - describe("loads dataset", function() { - beforeEach(async function() { + describe("loads dataset", function () { + beforeEach(async function () { runInAction(() => { odsItem.setTrait("definition", "url", "https://example.com"); odsItem.setTrait("definition", "datasetId", "weather-stations"); }); }); - it("load map items", async function() { + it("load map items", async function () { await odsItem.loadMapItems(); expect(odsItem.name).toBe("Environmental sensors"); diff --git a/test/Models/Catalog/CatalogItems/OpenStreetMapCatalogItemSpec.ts b/test/Models/Catalog/CatalogItems/OpenStreetMapCatalogItemSpec.ts index 5280e61f12e..18b6e449678 100644 --- a/test/Models/Catalog/CatalogItems/OpenStreetMapCatalogItemSpec.ts +++ b/test/Models/Catalog/CatalogItems/OpenStreetMapCatalogItemSpec.ts @@ -10,25 +10,25 @@ configure({ computedRequiresReaction: true }); -describe("OpenStreetMapCatalogItem", function() { +describe("OpenStreetMapCatalogItem", function () { const testUrl = "https://example.com/ooo/"; let item: OpenStreetMapCatalogItem; - beforeEach(function() { + beforeEach(function () { item = new OpenStreetMapCatalogItem("test", new Terria()); }); - it("has a type", function() { + it("has a type", function () { expect(OpenStreetMapCatalogItem.type).toBe("open-street-map"); }); - describe("templateUrl", function() { - it("has placeholders for tile coordinates", function() { + describe("templateUrl", function () { + it("has placeholders for tile coordinates", function () { runInAction(() => item.setTrait("definition", "url", testUrl)); expect(item.templateUrl).toBe("https://example.com/ooo/{z}/{x}/{y}.png"); }); - it("has placeholder for subdomains", function() { + it("has placeholder for subdomains", function () { runInAction(() => { item.setTrait("definition", "url", testUrl); item.setTrait("definition", "subdomains", ["a", "b"]); @@ -40,27 +40,27 @@ describe("OpenStreetMapCatalogItem", function() { }); }); - describe("after loading", function() { - beforeEach(async function() { + describe("after loading", function () { + beforeEach(async function () { runInAction(() => { item.setTrait("definition", "url", testUrl); }); return item.loadMapItems(); }); - it("returns exactly 1 mapItem", function() { + it("returns exactly 1 mapItem", function () { expect(item.mapItems.length).toBe(1); }); - describe("the mapItem", function() { - it("correctly sets the `alpha` value", function() { + describe("the mapItem", function () { + it("correctly sets the `alpha` value", function () { if (!ImageryParts.is(item.mapItems[0])) throw new Error("Expected MapItem to be an ImageryParts"); runInAction(() => item.setTrait("definition", "opacity", 0.42)); expect(item.mapItems[0].alpha).toBe(0.42); }); - it("correctly sets `show`", function() { + it("correctly sets `show`", function () { if (!ImageryParts.is(item.mapItems[0])) throw new Error("Expected MapItem to be an ImageryParts"); runInAction(() => item.setTrait("definition", "show", false)); @@ -69,7 +69,7 @@ describe("OpenStreetMapCatalogItem", function() { expect(item.mapItems[0].show).toBe(true); }); - it("correctly sets the `clippingRectangle` value", function() { + it("correctly sets the `clippingRectangle` value", function () { item.setTrait("definition", "rectangle", { west: 0, south: -30, @@ -106,8 +106,8 @@ describe("OpenStreetMapCatalogItem", function() { expect(item.mapItems[0].clippingRectangle).toBe(undefined); }); - describe("imageryProvider", function() { - it("should be a UrlTemplateImageryProvider", function() { + describe("imageryProvider", function () { + it("should be a UrlTemplateImageryProvider", function () { if (!ImageryParts.is(item.mapItems[0])) throw new Error("Expected MapItem to be an ImageryParts"); @@ -117,7 +117,7 @@ describe("OpenStreetMapCatalogItem", function() { ).toBeTruthy(); }); - it("has the correct properties", function() { + it("has the correct properties", function () { runInAction(() => { item.setTrait("definition", "attribution", "foo bar baz"); item.setTrait("definition", "subdomains", ["a"]); diff --git a/test/Models/Catalog/CatalogItems/SenapsCatalogItemSpec.ts b/test/Models/Catalog/CatalogItems/SenapsCatalogItemSpec.ts index e1ff9e39c01..0cf16392456 100644 --- a/test/Models/Catalog/CatalogItems/SenapsCatalogItemSpec.ts +++ b/test/Models/Catalog/CatalogItems/SenapsCatalogItemSpec.ts @@ -15,7 +15,7 @@ interface ExtendedLoadWithXhr { const loadWithXhr: ExtendedLoadWithXhr = _loadWithXhr; -describe("SenapsLocationsCatalogItem", function() { +describe("SenapsLocationsCatalogItem", function () { let terria: Terria; let item: SenapsLocationsCatalogItem; let geoJsonItem: any; @@ -59,7 +59,7 @@ describe("SenapsLocationsCatalogItem", function() { return expectedFeatureInfoTemplate; } - beforeEach(function() { + beforeEach(function () { terria = new Terria({ baseUrl: "./" }); @@ -67,7 +67,7 @@ describe("SenapsLocationsCatalogItem", function() { item.setTrait("definition", "url", senapsCatalogItemUrl); const realLoadWithXhr = loadWithXhr.load; - spyOn(loadWithXhr, "load").and.callFake(function(...args: any[]) { + spyOn(loadWithXhr, "load").and.callFake(function (...args: any[]) { let url = args[0]; // if we have a ?id= then we've passed in a filter if (url.match(/locations\?id/g)) @@ -83,27 +83,27 @@ describe("SenapsLocationsCatalogItem", function() { }); }); - it("- has a type and typename", function() { + it("- has a type and typename", function () { expect(item.type).toBe("senaps-locations"); expect(item.typeName).toBe(i18next.t("models.senaps.name")); }); - it("- supports zooming to extent", function() { + it("- supports zooming to extent", function () { expect(item.disableZoomTo).toBeFalsy(); }); - it("- supports show info", function() { + it("- supports show info", function () { expect(item.disableAboutData).toBeFalsy(); }); - describe("Can not get any items without base url", async function() { - beforeEach(async function() { + describe("Can not get any items without base url", async function () { + beforeEach(async function () { runInAction(() => { item = new SenapsLocationsCatalogItem("test", new Terria()); }); }); - it("- fail to construct locations url", async function() { + it("- fail to construct locations url", async function () { async function foundError() { let errorMessage: string = ""; try { @@ -117,7 +117,7 @@ describe("SenapsLocationsCatalogItem", function() { expect(await foundError()).toBe(true); }); - it("- fail to construct streams url", async function() { + it("- fail to construct streams url", async function () { async function foundError() { let errorMessage: string = ""; try { @@ -132,31 +132,31 @@ describe("SenapsLocationsCatalogItem", function() { }); }); - describe("Can get all items via implicitly specified proxy", async function() { - beforeEach(async function() { + describe("Can get all items via implicitly specified proxy", async function () { + beforeEach(async function () { runInAction(() => { item = new SenapsLocationsCatalogItem("test", new Terria()); item.setTrait("definition", "url", altProxiedBaseUrl); }); await item.loadMapItems(); geoJsonItem = item.geoJsonItem; - geoJsonData = (geoJsonItem.geoJsonData as any) as SenapsFeatureCollection; + geoJsonData = geoJsonItem.geoJsonData as any as SenapsFeatureCollection; feature = geoJsonData.features[0]; }); - it("- constructs correct locations url", function() { + it("- constructs correct locations url", function () { expect(item._constructLocationsUrl()).toBe( `${altProxiedBaseUrl}/locations?count=1000&expand=true` ); }); - it("- constructs correct streams url", function() { + it("- constructs correct streams url", function () { expect(item._constructStreamsUrl("123")).toBe( `${altProxiedBaseUrl}/streams?locationid=123` ); }); - it("- creates correct feature info template", function() { + it("- creates correct feature info template", function () { const actualFeatureInfoTemplate: string = item.featureInfoTemplate.template?.split(" ").join("") || ""; expect(actualFeatureInfoTemplate).toBe( @@ -164,13 +164,13 @@ describe("SenapsLocationsCatalogItem", function() { ); }); - it("- has the right number of features", function() { + it("- has the right number of features", function () { expect(item.geoJsonItem).toBeDefined(); expect(geoJsonData).toBeDefined(); expect(geoJsonData.features.length).toEqual(2); }); - it("- has a feature with the right properties", function() { + it("- has a feature with the right properties", function () { expect(feature.geometry.coordinates).toEqual([148.699683, -34.470083]); expect(feature.properties).toBeDefined(); expect(feature.properties.id).toBe("boorowa.temprh.site5a"); @@ -183,31 +183,31 @@ describe("SenapsLocationsCatalogItem", function() { }); }); - describe("Can get all items via default proxy", async function() { - beforeEach(async function() { + describe("Can get all items via default proxy", async function () { + beforeEach(async function () { runInAction(() => { item = new SenapsLocationsCatalogItem("test", new Terria()); item.setTrait("definition", "url", senapsCatalogItemUrl); }); await item.loadMapItems(); geoJsonItem = item.geoJsonItem; - geoJsonData = (geoJsonItem.geoJsonData as any) as SenapsFeatureCollection; + geoJsonData = geoJsonItem.geoJsonData as any as SenapsFeatureCollection; feature = geoJsonData.features[0]; }); - it("- constructs correct locations url", function() { + it("- constructs correct locations url", function () { expect(item._constructLocationsUrl()).toBe( `${senapsCatalogItemUrl}/locations?count=1000&expand=true` ); }); - it("- constructs correct streams url", function() { + it("- constructs correct streams url", function () { expect(item._constructStreamsUrl("123")).toBe( `${senapsCatalogItemUrl}/streams?locationid=123` ); }); - it("- creates correct feature info template", function() { + it("- creates correct feature info template", function () { const actualFeatureInfoTemplate: string = item.featureInfoTemplate.template?.split(" ").join("") || ""; expect(actualFeatureInfoTemplate).toBe( @@ -215,13 +215,13 @@ describe("SenapsLocationsCatalogItem", function() { ); }); - it("- has the right number of features", function() { + it("- has the right number of features", function () { expect(item.geoJsonItem).toBeDefined(); expect(geoJsonData).toBeDefined(); expect(geoJsonData.features.length).toEqual(2); }); - it("- has a feature with the right properties", function() { + it("- has a feature with the right properties", function () { expect(feature.geometry.coordinates).toEqual([148.699683, -34.470083]); expect(feature.properties).toBeDefined(); expect(feature.properties.id).toBe("boorowa.temprh.site5a"); @@ -234,8 +234,8 @@ describe("SenapsLocationsCatalogItem", function() { }); }); - describe("Can get filtered items via default proxy", async function() { - beforeEach(async function() { + describe("Can get filtered items via default proxy", async function () { + beforeEach(async function () { runInAction(() => { item = new SenapsLocationsCatalogItem("test", new Terria()); item.setTrait("definition", "locationIdFilter", "boor"); @@ -244,23 +244,23 @@ describe("SenapsLocationsCatalogItem", function() { }); await item.loadMapItems(); geoJsonItem = item.geoJsonItem; - geoJsonData = (geoJsonItem.geoJsonData as any) as SenapsFeatureCollection; + geoJsonData = geoJsonItem.geoJsonData as any as SenapsFeatureCollection; feature = geoJsonData.features[0]; }); - it("- constructs correct locations url", function() { + it("- constructs correct locations url", function () { expect(item._constructLocationsUrl()).toBe( `${senapsCatalogItemUrl}/locations?id=boor&count=1000&expand=true` ); }); - it("- constructs correct streams url", function() { + it("- constructs correct streams url", function () { expect(item._constructStreamsUrl("123")).toBe( `${senapsCatalogItemUrl}/streams?id=temp&locationid=123` ); }); - it("- creates correct feature info template", function() { + it("- creates correct feature info template", function () { const actualFeatureInfoTemplate: string = item.featureInfoTemplate.template?.split(" ").join("") || ""; expect(actualFeatureInfoTemplate).toBe( @@ -268,19 +268,19 @@ describe("SenapsLocationsCatalogItem", function() { ); }); - it("- only retrieves matching features", async function() { + it("- only retrieves matching features", async function () { expect(item.geoJsonItem).toBeDefined(); expect(geoJsonData.type).toEqual("FeatureCollection"); expect(geoJsonData.features.length).toEqual(1); }); - it("- only retrieves matching streams", async function() { + it("- only retrieves matching streams", async function () { expect(feature.properties.streamIds.length).toEqual(1); }); }); - describe("Can get filtered items via implicitly specified alternative proxy", async function() { - beforeEach(async function() { + describe("Can get filtered items via implicitly specified alternative proxy", async function () { + beforeEach(async function () { runInAction(() => { item = new SenapsLocationsCatalogItem("test", new Terria()); item.setTrait("definition", "locationIdFilter", "boor"); @@ -289,23 +289,23 @@ describe("SenapsLocationsCatalogItem", function() { }); await item.loadMapItems(); geoJsonItem = item.geoJsonItem; - geoJsonData = (geoJsonItem.geoJsonData as any) as SenapsFeatureCollection; + geoJsonData = geoJsonItem.geoJsonData as any as SenapsFeatureCollection; feature = geoJsonData.features[0]; }); - it("- constructs correct locations url", function() { + it("- constructs correct locations url", function () { expect(item._constructLocationsUrl()).toBe( `${altProxiedBaseUrl}/locations?id=boor&count=1000&expand=true` ); }); - it("- constructs correct streams url", function() { + it("- constructs correct streams url", function () { expect(item._constructStreamsUrl("123")).toBe( `${altProxiedBaseUrl}/streams?id=temp&locationid=123` ); }); - it("- creates correct feature info template", function() { + it("- creates correct feature info template", function () { const actualFeatureInfoTemplate: string = item.featureInfoTemplate.template?.split(" ").join("") || ""; expect(actualFeatureInfoTemplate).toBe( @@ -313,13 +313,13 @@ describe("SenapsLocationsCatalogItem", function() { ); }); - it("- only retrieves matching features", async function() { + it("- only retrieves matching features", async function () { expect(item.geoJsonItem).toBeDefined(); expect(geoJsonData.type).toEqual("FeatureCollection"); expect(geoJsonData.features.length).toEqual(1); }); - it("- only retrieves matching streams", async function() { + it("- only retrieves matching streams", async function () { expect(feature.properties.streamIds.length).toEqual(1); }); }); diff --git a/test/Models/Catalog/CatalogItems/SensorObservationServiceCatalogItemSpec.ts b/test/Models/Catalog/CatalogItems/SensorObservationServiceCatalogItemSpec.ts index 3fd9b04a32c..bf224ebdeff 100644 --- a/test/Models/Catalog/CatalogItems/SensorObservationServiceCatalogItemSpec.ts +++ b/test/Models/Catalog/CatalogItems/SensorObservationServiceCatalogItemSpec.ts @@ -15,15 +15,15 @@ const regionMapping = JSON.stringify( require("../../../../wwwroot/data/regionMapping.json") ); -describe("SensorObservationServiceCatalogItem", function() { +describe("SensorObservationServiceCatalogItem", function () { let item: SensorObservationServiceCatalogItem; - beforeEach(function() { + beforeEach(function () { jasmine.Ajax.install(); jasmine.Ajax.addCustomParamParser({ // @ts-ignore - test: xhr => /^application\/soap\+xml/.test(xhr.contentType()), - parse: paramString => paramString + test: (xhr) => /^application\/soap\+xml/.test(xhr.contentType()), + parse: (paramString) => paramString }); jasmine.Ajax.stubRequest( "build/TerriaJS/data/regionMapping.json" @@ -60,12 +60,12 @@ describe("SensorObservationServiceCatalogItem", function() { ); }); - afterEach(function() { + afterEach(function () { jasmine.Ajax.uninstall(); }); - describe("when constructed", function() { - it("correctly sets the sourceReference", function() { + describe("when constructed", function () { + it("correctly sets the sourceReference", function () { const terria = new Terria(); const sourceItem = new SimpleCatalogItem(undefined, terria); const sosItem = new SensorObservationServiceCatalogItem( @@ -76,7 +76,7 @@ describe("SensorObservationServiceCatalogItem", function() { expect(sosItem.sourceReference).toBe(sourceItem); }); - it("correctly initializes the automatic stratum", function() { + it("correctly initializes the automatic stratum", function () { const terria = new Terria(); const sourceItem = new SimpleCatalogItem(undefined, terria); const sosItem = new SensorObservationServiceCatalogItem( @@ -90,16 +90,16 @@ describe("SensorObservationServiceCatalogItem", function() { }); }); - describe("features table", function() { - beforeEach(function() { + describe("features table", function () { + beforeEach(function () { jasmine.Ajax.stubRequest( "https://sos.example.com/", /\ item.loadMapItems()); const req = jasmine.Ajax.requests.mostRecent(); @@ -129,7 +129,7 @@ describe("SensorObservationServiceCatalogItem", function() { }); }); - it("throws an error if features is empty", async function() { + it("throws an error if features is empty", async function () { jasmine.Ajax.stubRequest( "https://sos.example.com/", /\ c.name)).toEqual([ + expect(item.tableColumns.map((c) => c.name)).toEqual([ "identifier", "lat", "lon", @@ -153,7 +153,7 @@ describe("SensorObservationServiceCatalogItem", function() { ]); }); - it("populates the column values correctly", async function() { + it("populates the column values correctly", async function () { await item.loadMapItems(); const values: any = { identifier: [ @@ -173,15 +173,15 @@ describe("SensorObservationServiceCatalogItem", function() { }; item.tableColumns .slice(0, -1) - .forEach(col => expect(col.values).toEqual(values[col.name])); + .forEach((col) => expect(col.values).toEqual(values[col.name])); // just test that the chart columns have chart component defined item.tableColumns .slice(-1)[0] - .values.forEach(value => expect(value).toContain(" expect(value).toContain(" s.name)).toEqual([ + expect(item.selectableDimensions.map((s) => s.name)).toEqual([ "Frequency", "Observation Type" ]); }); - it("shows all options for the procedure selector", async function() { + it("shows all options for the procedure selector", async function () { await item.loadMapItems(); const procedureSelector = item.selectableDimensions.find( - s => s.name === "Frequency" + (s) => s.name === "Frequency" ); expect(procedureSelector && isEnum(procedureSelector)).toBeTruthy(); @@ -231,8 +231,8 @@ describe("SensorObservationServiceCatalogItem", function() { }); }); - describe("observations table", function() { - beforeEach(function() { + describe("observations table", function () { + beforeEach(function () { jasmine.Ajax.stubRequest( "https://sos.example.com/", /\ item.loadMapItems()); const req = jasmine.Ajax.requests.mostRecent(); expect(req.url).toBe("https://sos.example.com/"); @@ -276,7 +276,7 @@ describe("SensorObservationServiceCatalogItem", function() { ); }); - it("sets the procedure based on active style", async function() { + it("sets the procedure based on active style", async function () { item.setTrait(CommonStrata.user, "activeStyle", "Daily Mean"); await item.loadMapItems(); @@ -299,13 +299,13 @@ describe("SensorObservationServiceCatalogItem", function() { }); }); - describe("when loaded", function() { - beforeEach(async function() { + describe("when loaded", function () { + beforeEach(async function () { await runInAction(() => item.loadMapItems()); }); - it("defines all feature columns", function() { - expect(item.tableColumns.map(c => c.name)).toEqual([ + it("defines all feature columns", function () { + expect(item.tableColumns.map((c) => c.name)).toEqual([ "date", "values", "observations", @@ -315,7 +315,7 @@ describe("SensorObservationServiceCatalogItem", function() { ]); }); - it("sets populates the column values correctly", function() { + it("sets populates the column values correctly", function () { const dates = [ "2016-08-09T02:00:00.000+10:00", "2016-08-10T02:00:00.000+10:00", diff --git a/test/Models/Catalog/CatalogItems/ShapefileCatalogItemSpec.ts b/test/Models/Catalog/CatalogItems/ShapefileCatalogItemSpec.ts index 4e3c1a7527a..03a5a0c1de0 100644 --- a/test/Models/Catalog/CatalogItems/ShapefileCatalogItemSpec.ts +++ b/test/Models/Catalog/CatalogItems/ShapefileCatalogItemSpec.ts @@ -3,11 +3,11 @@ import ShapefileCatalogItem from "../../../../lib/Models/Catalog/CatalogItems/Sh import Terria from "../../../../lib/Models/Terria"; import GeoJsonDataSource from "terriajs-cesium/Source/DataSources/GeoJsonDataSource"; -describe("ShapefileCatalogItem", function() { +describe("ShapefileCatalogItem", function () { let terria: Terria; let shapefile: ShapefileCatalogItem; - beforeEach(function() { + beforeEach(function () { terria = new Terria({ baseUrl: "./" }); @@ -15,7 +15,7 @@ describe("ShapefileCatalogItem", function() { shapefile.setTrait(CommonStrata.user, "forceCesiumPrimitives", true); }); - it("works by URL in EPSG:28356", async function() { + it("works by URL in EPSG:28356", async function () { shapefile.setTrait( CommonStrata.user, "url", @@ -31,7 +31,7 @@ describe("ShapefileCatalogItem", function() { ).toBeDefined(); }); - it("works by URL in CRS:84", async function() { + it("works by URL in CRS:84", async function () { shapefile.setTrait( CommonStrata.user, "url", diff --git a/test/Models/Catalog/CatalogItems/SocrataMapViewCatalogItemSpec.ts b/test/Models/Catalog/CatalogItems/SocrataMapViewCatalogItemSpec.ts index fd2bc004e17..5682fa5f83e 100644 --- a/test/Models/Catalog/CatalogItems/SocrataMapViewCatalogItemSpec.ts +++ b/test/Models/Catalog/CatalogItems/SocrataMapViewCatalogItemSpec.ts @@ -6,11 +6,11 @@ const view = JSON.stringify( require("../../../../wwwroot/test/Socrata/view.json") ); -describe("SocrataMapViewCatalogItem", function() { +describe("SocrataMapViewCatalogItem", function () { let terria: Terria; let socrataItem: SocrataMapViewCatalogItem; - beforeEach(function() { + beforeEach(function () { jasmine.Ajax.install(); jasmine.Ajax.stubRequest("http://example.com/views/y79a-us3f").andReturn({ responseText: view @@ -25,15 +25,15 @@ describe("SocrataMapViewCatalogItem", function() { }); }); - afterEach(function() { + afterEach(function () { jasmine.Ajax.uninstall(); }); - it("has a type", function() { + it("has a type", function () { expect(socrataItem.type).toBe("socrata-map-item"); }); - it("loads view metadata", async function() { + it("loads view metadata", async function () { await socrataItem.loadMetadata(); expect(socrataItem.geojsonUrl).toBe( diff --git a/test/Models/Catalog/CatalogItems/TerrainCatalogItemSpec.js b/test/Models/Catalog/CatalogItems/TerrainCatalogItemSpec.js index ce0240bb853..6bad9f03f2d 100644 --- a/test/Models/Catalog/CatalogItems/TerrainCatalogItemSpec.js +++ b/test/Models/Catalog/CatalogItems/TerrainCatalogItemSpec.js @@ -4,18 +4,18 @@ var CompositeCatalogItem = require("../../lib/Models/Catalog/CatalogItems/Compos var TerrainCatalogItem = require("../../lib/Models/TerrainCatalogItem"); var Terria = require("../../lib/Models/Terria"); -describe("TerrainCatalogItem", function() { +describe("TerrainCatalogItem", function () { var terria; var item; - beforeEach(function() { + beforeEach(function () { terria = new Terria({ baseUrl: "./" }); item = new TerrainCatalogItem(terria); }); - it("sets terrainProvider on Cesium scene when enabled", function(done) { + it("sets terrainProvider on Cesium scene when enabled", function (done) { var fakeTerrainProvider = {}; spyOn(item, "_createTerrainProvider").and.returnValue(fakeTerrainProvider); @@ -29,14 +29,14 @@ describe("TerrainCatalogItem", function() { item .load() - .then(function() { + .then(function () { expect(terria.cesium.scene.terrainProvider).toBe(fakeTerrainProvider); }) .then(done) .catch(done.fail); }); - it("restores previous terrainProvider when disabled", function(done) { + it("restores previous terrainProvider when disabled", function (done) { var fakeTerrainProvider = {}; spyOn(item, "_createTerrainProvider").and.returnValue(fakeTerrainProvider); @@ -51,7 +51,7 @@ describe("TerrainCatalogItem", function() { item .load() - .then(function() { + .then(function () { expect(terria.cesium.scene.terrainProvider).toBe(fakeTerrainProvider); item.isEnabled = false; @@ -63,7 +63,7 @@ describe("TerrainCatalogItem", function() { .catch(done.fail); }); - it("hides other terrainProvider catalog items when enabled", function(done) { + it("hides other terrainProvider catalog items when enabled", function (done) { terria.cesium = { scene: { terrainProvider: undefined @@ -76,11 +76,11 @@ describe("TerrainCatalogItem", function() { enabledItem .load() - .then(function() { + .then(function () { spyOn(item, "_createTerrainProvider").and.returnValue({}); item.isEnabled = true; - return item.load().then(function() { + return item.load().then(function () { expect(enabledItem.isShown).toBe(false); }); }) @@ -88,7 +88,7 @@ describe("TerrainCatalogItem", function() { .catch(done.fail); }); - it("hides CompositeCatalogItem containing terrain when enabled", function(done) { + it("hides CompositeCatalogItem containing terrain when enabled", function (done) { terria.cesium = { scene: { terrainProvider: undefined @@ -104,11 +104,11 @@ describe("TerrainCatalogItem", function() { composite .load() - .then(function() { + .then(function () { spyOn(item, "_createTerrainProvider").and.returnValue({}); item.isEnabled = true; - return item.load().then(function() { + return item.load().then(function () { expect(composite.isShown).toBe(false); }); }) @@ -116,7 +116,7 @@ describe("TerrainCatalogItem", function() { .catch(done.fail); }); - it("throws when shown in 2D", function(done) { + it("throws when shown in 2D", function (done) { terria.leaflet = {}; spyOn(item, "_createTerrainProvider").and.returnValue({}); spyOn(terria.error, "raiseEvent"); @@ -125,7 +125,7 @@ describe("TerrainCatalogItem", function() { item .load() - .then(function() { + .then(function () { expect(terria.raiseErrorToUser).toHaveBeenCalled(); expect(item.isShown).toBe(false); item.isShown = true; diff --git a/test/Models/Catalog/CatalogItems/UrlTemplateImageryCatalogItemSpec.ts b/test/Models/Catalog/CatalogItems/UrlTemplateImageryCatalogItemSpec.ts index 480f2a997a3..3f689061f01 100644 --- a/test/Models/Catalog/CatalogItems/UrlTemplateImageryCatalogItemSpec.ts +++ b/test/Models/Catalog/CatalogItems/UrlTemplateImageryCatalogItemSpec.ts @@ -10,22 +10,22 @@ configure({ computedRequiresReaction: true }); -describe("UrlTemplateImageryCatalogItem", function() { +describe("UrlTemplateImageryCatalogItem", function () { let item: UrlTemplateImageryCatalogItem; - beforeEach(function() { + beforeEach(function () { item = new UrlTemplateImageryCatalogItem("test", new Terria()); runInAction(() => item.setTrait("definition", "url", "some-url")); }); - it("has a type", function() { + it("has a type", function () { expect(UrlTemplateImageryCatalogItem.type).toBe( UrlTemplateImageryCatalogItem.type ); }); - describe("when url has been set", function() { - it("should create an imageryProvider with correct properties", function() { + describe("when url has been set", function () { + it("should create an imageryProvider with correct properties", function () { expect( item.imageryProvider instanceof UrlTemplateImageryProvider ).toBeTruthy(); @@ -67,8 +67,8 @@ describe("UrlTemplateImageryCatalogItem", function() { } }); - describe("mapItem", function() { - it("has the correct `alpha` value", function() { + describe("mapItem", function () { + it("has the correct `alpha` value", function () { if (!ImageryParts.is(item.mapItems[0])) throw new Error("Expected MapItem to be an ImageryParts"); runInAction(() => item.setTrait("definition", "opacity", 0.42)); @@ -77,7 +77,7 @@ describe("UrlTemplateImageryCatalogItem", function() { expect(item.mapItems[0].alpha).toBe(0.9); }); - it("has the correct `show` value", function() { + it("has the correct `show` value", function () { if (!ImageryParts.is(item.mapItems[0])) throw new Error("Expected MapItem to be an ImageryParts"); runInAction(() => item.setTrait("definition", "show", false)); @@ -86,7 +86,7 @@ describe("UrlTemplateImageryCatalogItem", function() { expect(item.mapItems[0].show).toBe(true); }); - it("has the correct `clippingRectangle` value", function() { + it("has the correct `clippingRectangle` value", function () { const rectangleDegrees = { west: 10, south: -15, diff --git a/test/Models/Catalog/CatalogMemberSpec.js b/test/Models/Catalog/CatalogMemberSpec.js index 6be9a999232..048369c64cb 100644 --- a/test/Models/Catalog/CatalogMemberSpec.js +++ b/test/Models/Catalog/CatalogMemberSpec.js @@ -3,48 +3,45 @@ var CatalogMember = require("../../lib/Models/CatalogMember"); var Terria = require("../../../lib/Models/Terria"); -describe("CatalogMember", function() { +describe("CatalogMember", function () { var terria; var member; - beforeEach(function() { + beforeEach(function () { terria = new Terria({ baseUrl: "./" }); member = new CatalogMember(terria); }); - describe("triggering load()", function() { - beforeEach(function() { + describe("triggering load()", function () { + beforeEach(function () { spyOn(terria, "disclaimerListener"); - member._load = function() { + member._load = function () { return Promise.resolve(); // make the implementation-specific _load method return instantly, it's not on trial here. }; }); - it("alters isLoading", function(done) { + it("alters isLoading", function (done) { member .load() - .then(function() { + .then(function () { expect(member.isLoading).toBe(false); done(); }) .catch(done.fail); }); - it("returns a promise that allows otherwise to be chained", function(done) { - member._load = function() { + it("returns a promise that allows otherwise to be chained", function (done) { + member._load = function () { return Promise.reject(); }; expect(true).toBe(true); // stop it whinging about no expectations. - member - .load() - .then(done.fail) - .catch(done); + member.load().then(done.fail).catch(done); }); - it("returns the same promise for subsequent calls", function() { + it("returns the same promise for subsequent calls", function () { var promise1 = member.load(); var promise2 = member.load(); @@ -52,10 +49,10 @@ describe("CatalogMember", function() { }); }); - describe("infoWithoutSources", function() { + describe("infoWithoutSources", function () { var info; - beforeEach(function() { + beforeEach(function () { info = [ { name: "Info1" @@ -68,44 +65,44 @@ describe("CatalogMember", function() { member.info = info.slice(); }); - it("filters out info items that have been marked as having source info in them", function() { + it("filters out info items that have been marked as having source info in them", function () { member._sourceInfoItemNames = ["Info1"]; expect(member.infoWithoutSources).toEqual([info[1]]); }); - it("returns the same as member.info if no source info items exist", function() { + it("returns the same as member.info if no source info items exist", function () { expect(member.infoWithoutSources).toEqual(info); }); }); - describe("using path()", function() { - describe("without a parent", function() { - it("shows default unnamed name", function() { + describe("using path()", function () { + describe("without a parent", function () { + it("shows default unnamed name", function () { expect(member.path).toBe("Unnamed Item"); }); - it("shows its own name", function() { + it("shows its own name", function () { member .updateFromJson({ name: "cybertruck" }) - .then(function() { + .then(function () { expect(member.path).toBe("cybertruck"); }); }); }); - describe("with a parent", function() { - it("shows its own name appended to unnamed parent", function() { + describe("with a parent", function () { + it("shows its own name appended to unnamed parent", function () { const parent = new CatalogMember(terria); member.parent = parent; member .updateFromJson({ name: "cybertruck" }) - .then(function() { + .then(function () { expect(member.path).toBe("Unnamed Item/cybertruck"); }); }); - it("shows its own name appended to parent", function() { + it("shows its own name appended to parent", function () { const parent = new CatalogMember(terria); parent.name = "Parent"; member.parent = parent; @@ -113,15 +110,15 @@ describe("CatalogMember", function() { .updateFromJson({ name: "cybertruck" }) - .then(function() { + .then(function () { expect(member.path).toBe("Parent/cybertruck"); }); }); }); }); - describe("updateFromJson", function() { - it("merges the info property", function(done) { + describe("updateFromJson", function () { + it("merges the info property", function (done) { member .updateFromJson({ info: [ @@ -135,7 +132,7 @@ describe("CatalogMember", function() { } ] }) - .then(function() { + .then(function () { expect(member.info[0].name).toBe("Test"); expect(member.info[0].content).toBe("test!!"); expect(member.info[1].name).toBe("Another Field"); @@ -150,7 +147,7 @@ describe("CatalogMember", function() { ] }); }) - .then(function() { + .then(function () { expect(member.info[0].name).toBe("Test"); expect(member.info[0].content).toBe("New Value!"); expect(member.info[1].name).toBe("Another Field"); diff --git a/test/Models/Catalog/CatalogReferences/SplitItemReferenceSpec.ts b/test/Models/Catalog/CatalogReferences/SplitItemReferenceSpec.ts index 11ed587dfda..302b2c76f09 100644 --- a/test/Models/Catalog/CatalogReferences/SplitItemReferenceSpec.ts +++ b/test/Models/Catalog/CatalogReferences/SplitItemReferenceSpec.ts @@ -5,8 +5,8 @@ import SplitItemReference from "../../../../lib/Models/Catalog/CatalogReferences import Terria from "../../../../lib/Models/Terria"; import WebMapServiceCatalogItem from "../../../../lib/Models/Catalog/Ows/WebMapServiceCatalogItem"; -describe("SplitItemReference", function() { - it("can dereference the source item", async function() { +describe("SplitItemReference", function () { + it("can dereference the source item", async function () { const terria = new Terria(); const splitRef = new SplitItemReference(createGuid(), terria); const sourceItem = new WebMapServiceCatalogItem(createGuid(), terria); diff --git a/test/Models/Catalog/CatalogReferences/TerriaReferenceSpec.ts b/test/Models/Catalog/CatalogReferences/TerriaReferenceSpec.ts index c63e5d5ecba..cf7279aa8cf 100644 --- a/test/Models/Catalog/CatalogReferences/TerriaReferenceSpec.ts +++ b/test/Models/Catalog/CatalogReferences/TerriaReferenceSpec.ts @@ -7,8 +7,8 @@ import hasTraits from "../../../../lib/Models/Definition/hasTraits"; import Terria from "../../../../lib/Models/Terria"; import CatalogMemberTraits from "../../../../lib/Traits/TraitsClasses/CatalogMemberTraits"; -describe("TerriaReference", function() { - it("can load a full terria catalog", async function() { +describe("TerriaReference", function () { + it("can load a full terria catalog", async function () { const ref = new TerriaReference("test", new Terria()); ref.setTrait(CommonStrata.user, "url", "test/init/wms-v8.json"); ref.setTrait(CommonStrata.user, "isGroup", true); @@ -21,7 +21,7 @@ describe("TerriaReference", function() { } }); - it("can load a group inside the catalog", async function() { + it("can load a group inside the catalog", async function () { const ref = new TerriaReference("test", new Terria()); ref.setTrait(CommonStrata.user, "url", "test/init/wms-v8.json"); ref.setTrait(CommonStrata.user, "isGroup", true); @@ -36,7 +36,7 @@ describe("TerriaReference", function() { } }); - it("can load an item inside the catalog", async function() { + it("can load an item inside the catalog", async function () { const ref = new TerriaReference("test", new Terria()); ref.setTrait(CommonStrata.user, "url", "test/init/wms-v8.json"); ref.setTrait(CommonStrata.user, "path", ["MLzS8W", "fCUx4Y"]); @@ -46,7 +46,7 @@ describe("TerriaReference", function() { expect(target instanceof WebMapServiceCatalogItem).toBe(true); }); - it("supports itemProperties, itemPropertiesByType and itemPropertiesByIds", async function() { + it("supports itemProperties, itemPropertiesByType and itemPropertiesByIds", async function () { const ref = new TerriaReference("test", new Terria()); ref.setTrait(CommonStrata.user, "url", "test/init/wms-v8.json"); ref.setTrait(CommonStrata.user, "itemProperties", { @@ -84,7 +84,7 @@ describe("TerriaReference", function() { expect(wmsItem1.url).toBe("some url"); const wmsItem2 = nestedGroup.memberModels.find( - m => m.uniqueId === "Chuj4y" + (m) => m.uniqueId === "Chuj4y" ) as WebMapServiceCatalogItem; expect(wmsItem2.name).toBe("some WMS name (byID)"); @@ -93,7 +93,7 @@ describe("TerriaReference", function() { await target.loadMembers(); }); - it("the target item should use the name of the terria reference item", async function() { + it("the target item should use the name of the terria reference item", async function () { const ref = new TerriaReference("test", new Terria()); ref.setTrait(CommonStrata.user, "url", "test/init/wms-v8.json"); ref.setTrait(CommonStrata.user, "isGroup", true); diff --git a/test/Models/Catalog/CatalogSpec.js b/test/Models/Catalog/CatalogSpec.js index 7d7ec47aad6..d2fcb43d8eb 100644 --- a/test/Models/Catalog/CatalogSpec.js +++ b/test/Models/Catalog/CatalogSpec.js @@ -2,8 +2,8 @@ var Terria = require("../../../lib/Models/Terria"); var loadJson = require("../../../lib/Core/loadJson").default; -var CHART_DATA_CATEGORY_NAME = require("../../../lib/Core/addedForCharts") - .CHART_DATA_CATEGORY_NAME; +var CHART_DATA_CATEGORY_NAME = + require("../../../lib/Core/addedForCharts").CHART_DATA_CATEGORY_NAME; var Catalog = require("../../lib/Models/Catalog"); var CatalogItem = require("../../lib/Models/CatalogItem"); @@ -13,11 +13,11 @@ var GeoJsonCatalogItem = require("../../../lib/Models/Catalog/CatalogItems/GeoJs var ImageryLayerCatalogItem = require("../../lib/Models/ImageryLayerCatalogItem"); var WebMapServiceCatalogItem = require("../../../lib/Models/Catalog/Ows/WebMapServiceCatalogItem"); -describe("Catalog", function() { +describe("Catalog", function () { var terria; var catalog; - beforeEach(function() { + beforeEach(function () { terria = new Terria({ baseUrl: "./" }); @@ -31,15 +31,15 @@ describe("Catalog", function() { catalog = terria.catalog; }); - it("can register group and geojson, and update from json", function(done) { + it("can register group and geojson, and update from json", function (done) { createCatalogMemberFromType.register("geojson", GeoJsonCatalogItem); loadJson("test/init/geojson-with-template.json") - .then(function(json) { + .then(function (json) { var catalog = new Catalog(terria); catalog .updateFromJson(json.catalog) - .then(function() { + .then(function () { expect(catalog.group.constructor).toEqual(CatalogGroup); expect(catalog.group.items[0].constructor).toEqual(CatalogGroup); expect(catalog.group.items[0].items[0].constructor).toEqual( @@ -52,8 +52,8 @@ describe("Catalog", function() { .catch(done.fail); }); - describe("chartDataGroup", function() { - it("returns the group used for chart data when retrieved via chartDataGroup", function() { + describe("chartDataGroup", function () { + it("returns the group used for chart data when retrieved via chartDataGroup", function () { const group = catalog.chartDataGroup; expect(group.name).toBe(CHART_DATA_CATEGORY_NAME); expect(group.type).toBe("group"); @@ -62,8 +62,8 @@ describe("Catalog", function() { }); }); - describe("updateByShareKeys", function() { - it("works when resolving by id", function(done) { + describe("updateByShareKeys", function () { + it("works when resolving by id", function (done) { catalog .updateFromJson([ { @@ -83,14 +83,14 @@ describe("Catalog", function() { type: "group" } ]) - .then(function() { + .then(function () { expect(catalog.group.items[0].items[0].isEnabled).toBe(false); expect(catalog.group.items[0].isOpen).toBeFalsy(); expect(catalog.group.isOpen).toBeFalsy(); return catalog.updateByShareKeys({ C: {} }); }) - .then(function() { + .then(function () { expect(catalog.group.items[0].items[0].isEnabled).toBe(true); expect(catalog.group.items[0].isOpen).toBeTruthy(); expect(catalog.group.isOpen).toBeTruthy(); @@ -99,7 +99,7 @@ describe("Catalog", function() { .catch(fail); }); - it("works when resolving by shareKeys", function(done) { + it("works when resolving by shareKeys", function (done) { catalog .updateFromJson([ { @@ -120,14 +120,14 @@ describe("Catalog", function() { type: "group" } ]) - .then(function() { + .then(function () { expect(catalog.group.items[0].items[0].isEnabled).toBe(false); expect(catalog.group.items[0].isOpen).toBeFalsy(); expect(catalog.group.isOpen).toBeFalsy(); return catalog.updateByShareKeys({ C: {} }); }) - .then(function() { + .then(function () { expect(catalog.group.items[0].items[0].isEnabled).toBe(true); expect(catalog.group.items[0].isOpen).toBeTruthy(); expect(catalog.group.isOpen).toBeTruthy(); @@ -136,7 +136,7 @@ describe("Catalog", function() { .catch(fail); }); - it("opens parent groups", function(done) { + it("opens parent groups", function (done) { catalog .updateFromJson([ { @@ -155,10 +155,10 @@ describe("Catalog", function() { type: "group" } ]) - .then(function() { + .then(function () { return catalog.updateByShareKeys({ C: {} }); }) - .then(function() { + .then(function () { expect(catalog.group.items[0].isOpen).toBe(true); expect(catalog.group.isOpen).toBe(true); done(); @@ -166,7 +166,7 @@ describe("Catalog", function() { .catch(fail); }); - it("works for multiple share keys", function(done) { + it("works for multiple share keys", function (done) { catalog .updateFromJson([ { @@ -192,10 +192,10 @@ describe("Catalog", function() { ] } ]) - .then(function() { + .then(function () { return catalog.updateByShareKeys({ C: {}, D: {} }); }) - .then(function() { + .then(function () { expect(catalog.group.items[0].items[0].isEnabled).toBe(true); expect(catalog.group.items[1].items[0].isEnabled).toBe(true); done(); @@ -203,7 +203,7 @@ describe("Catalog", function() { .catch(fail); }); - it("only enabled a catalog member after all those before it have finished loading", function(done) { + it("only enabled a catalog member after all those before it have finished loading", function (done) { catalog .updateFromJson([ { @@ -211,7 +211,7 @@ describe("Catalog", function() { type: "group" } ]) - .then(function() { + .then(function () { expect(catalog.group.items[0].items.length).toBe(0); spyOn(catalog.group.items[0], "load").and.returnValue( @@ -228,14 +228,14 @@ describe("Catalog", function() { return catalog.updateByShareKeys({ "Root Group/A": {}, C: {} }); }) - .then(function() { + .then(function () { expect(catalog.group.items[0].items[0].isEnabled).toBe(true); done(); }) .catch(fail); }); - it("updates associated shared data like opacity", function(done) { + it("updates associated shared data like opacity", function (done) { catalog .updateFromJson([ { @@ -243,7 +243,7 @@ describe("Catalog", function() { type: "imageryLayerCatalogItem" } ]) - .then(function() { + .then(function () { expect(catalog.group.items[0].opacity).not.toBe(0.3); return catalog.updateByShareKeys({ @@ -252,7 +252,7 @@ describe("Catalog", function() { } }); }) - .then(function() { + .then(function () { expect(catalog.group.items[0].opacity).toBe(0.3); done(); }) @@ -260,8 +260,8 @@ describe("Catalog", function() { }); }); - describe("serializeToJson", function() { - beforeEach(function(done) { + describe("serializeToJson", function () { + beforeEach(function (done) { catalog .updateFromJson([ { @@ -290,7 +290,7 @@ describe("Catalog", function() { .then(done); }); - it("serializes the catalog recursively", function() { + it("serializes the catalog recursively", function () { var serialized = catalog.serializeToJson(); expect(serialized.length).toBe(2); @@ -299,21 +299,21 @@ describe("Catalog", function() { expect(serialized[1].items[0].name).toBe("D"); }); - it("can round-trip a basic catalog", function(done) { + it("can round-trip a basic catalog", function (done) { var serialized = catalog.serializeToJson(); var newCatalog = new Catalog(terria); newCatalog .updateFromJson(serialized) - .then(function() { + .then(function () { expect(newCatalog.items).toEqual(catalog.items); done(); }) .catch(fail); }); - it("ignores properties filtered out by propertyFilter", function() { + it("ignores properties filtered out by propertyFilter", function () { var serialized = catalog.serializeToJson({ - propertyFilter: function(property, item) { + propertyFilter: function (property, item) { return property !== "name"; } }); @@ -322,9 +322,9 @@ describe("Catalog", function() { expect(serialized[0].id).toBe("Root Group/A"); }); - it("ignores items filtered out by itemFilter", function() { + it("ignores items filtered out by itemFilter", function () { var serialized = catalog.serializeToJson({ - itemFilter: function(item) { + itemFilter: function (item) { return item.name !== "C"; } }); diff --git a/test/Models/Catalog/Ckan/CkanCatalogGroupSpec.ts b/test/Models/Catalog/Ckan/CkanCatalogGroupSpec.ts index 9d51766bc6d..6c4bc0de4d3 100644 --- a/test/Models/Catalog/Ckan/CkanCatalogGroupSpec.ts +++ b/test/Models/Catalog/Ckan/CkanCatalogGroupSpec.ts @@ -26,13 +26,13 @@ interface ExtendedLoadWithXhr { const loadWithXhr: ExtendedLoadWithXhr = _loadWithXhr; -describe("CkanCatalogGroup", function() { +describe("CkanCatalogGroup", function () { const ckanServerUrl = "http://data.gov.au"; let terria: Terria; let ckanCatalogGroup: CkanCatalogGroup; let ckanServerStratum: CkanServerStratum; - beforeEach(async function() { + beforeEach(async function () { terria = new Terria({ baseUrl: "./" }); @@ -40,19 +40,19 @@ describe("CkanCatalogGroup", function() { const realLoadWithXhr = loadWithXhr.load; // We replace calls to real servers with pre-captured JSON files so our testing is isolated, but reflects real data. - spyOn(loadWithXhr, "load").and.callFake(function(...args: any[]) { + spyOn(loadWithXhr, "load").and.callFake(function (...args: any[]) { args[0] = "test/CKAN/search-result.json"; return realLoadWithXhr(...args); }); }); - it("has a type and typeName", function() { + it("has a type and typeName", function () { expect(ckanCatalogGroup.type).toBe("ckan-group"); expect(ckanCatalogGroup.typeName).toBe(i18next.t("models.ckan.nameServer")); }); - it("add filter query correctly", function() { + it("add filter query correctly", function () { const filterQueries: (JsonObject | string)[] = [ "fq=+(res_format%3Awms%20OR%20res_format%3AWMS)", "fq=(res_format:wms OR res_format:WMS)", @@ -78,8 +78,8 @@ describe("CkanCatalogGroup", function() { }); }); - describe("after loading metadata - default settings - ", function() { - beforeEach(async function() { + describe("after loading metadata - default settings - ", function () { + beforeEach(async function () { runInAction(() => { ckanCatalogGroup.setTrait( "definition", @@ -93,7 +93,7 @@ describe("CkanCatalogGroup", function() { ); }); - it("properly creates members", function() { + it("properly creates members", function () { expect(ckanCatalogGroup.members).toBeDefined(); expect(ckanCatalogGroup.members.length).toBe(2); let member0 = ckanCatalogGroup.memberModels[0]; @@ -102,7 +102,7 @@ describe("CkanCatalogGroup", function() { expect(member1.name).toBe("Murray-Darling Basin Authority"); }); - it("properly creates groups", function() { + it("properly creates groups", function () { if (ckanServerStratum !== undefined) { if (ckanServerStratum.groups) { // 3 groups because we add an Ungrouped Group @@ -129,8 +129,8 @@ describe("CkanCatalogGroup", function() { }); }); - describe("after loading metadata - change some settings - ", function() { - beforeEach(async function() { + describe("after loading metadata - change some settings - ", function () { + beforeEach(async function () { runInAction(() => { ckanCatalogGroup.setTrait( "definition", @@ -152,7 +152,7 @@ describe("CkanCatalogGroup", function() { ); }); - it("properly creates members", function() { + it("properly creates members", function () { expect(ckanCatalogGroup.members).toBeDefined(); expect(ckanCatalogGroup.members.length).toBe(3); let member1 = ckanCatalogGroup.memberModels[0]; @@ -167,14 +167,14 @@ describe("CkanCatalogGroup", function() { expect(member3.name).toBe("Blah"); }); - it("Geography group has been filtered from the groups", function() { + it("Geography group has been filtered from the groups", function () { if (ckanServerStratum.groups && ckanServerStratum.filteredGroups) { expect(ckanServerStratum.groups.length).toBe(4); expect(ckanServerStratum.filteredGroups.length).toBe(3); } }); - it("itemProperties get added", async function() { + it("itemProperties get added", async function () { const m = terria.getModelById( CkanItemReference, ckanCatalogGroup.uniqueId + @@ -191,8 +191,8 @@ describe("CkanCatalogGroup", function() { } }); }); - describe("with item naming using", function() { - beforeEach(async function() { + describe("with item naming using", function () { + beforeEach(async function () { runInAction(() => { ckanCatalogGroup.setTrait( "definition", @@ -202,7 +202,7 @@ describe("CkanCatalogGroup", function() { }); }); - it("useDatasetNameAndFormatWhereMultipleResources (the default)", async function() { + it("useDatasetNameAndFormatWhereMultipleResources (the default)", async function () { await ckanCatalogGroup.loadMembers(); ckanServerStratum = ( ckanCatalogGroup.strata.get(CkanServerStratum.stratumName) @@ -224,7 +224,7 @@ describe("CkanCatalogGroup", function() { ); }); - it("useCombinationNameWhereMultipleResources", async function() { + it("useCombinationNameWhereMultipleResources", async function () { runInAction(() => { ckanCatalogGroup.setTrait( "definition", @@ -261,7 +261,7 @@ describe("CkanCatalogGroup", function() { ); }); - it("useResourceName", async function() { + it("useResourceName", async function () { runInAction(() => { ckanCatalogGroup.setTrait("definition", "useResourceName", true); }); @@ -285,8 +285,8 @@ describe("CkanCatalogGroup", function() { }); }); - describe("filters resources according to supportedResourceFormats", function() { - beforeEach(async function() { + describe("filters resources according to supportedResourceFormats", function () { + beforeEach(async function () { runInAction(() => { ckanCatalogGroup.setTrait( "definition", @@ -296,7 +296,7 @@ describe("CkanCatalogGroup", function() { }); }); - it("urlRegex", async function() { + it("urlRegex", async function () { updateModelFromJson(ckanCatalogGroup, CommonStrata.definition, { supportedResourceFormats: [ { @@ -330,7 +330,7 @@ describe("CkanCatalogGroup", function() { ); }); - it("onlyUseIfSoleResource - with multiple resources", async function() { + it("onlyUseIfSoleResource - with multiple resources", async function () { updateModelFromJson(ckanCatalogGroup, CommonStrata.definition, { supportedResourceFormats: [ { @@ -364,7 +364,7 @@ describe("CkanCatalogGroup", function() { ); }); - it("onlyUseIfSoleResource - with single resources", async function() { + it("onlyUseIfSoleResource - with single resources", async function () { updateModelFromJson(ckanCatalogGroup, CommonStrata.definition, { supportedResourceFormats: [ { @@ -405,7 +405,7 @@ describe("CkanCatalogGroup", function() { expect(items[1]._supportedFormat?.id).toBe("Kml"); }); - it("maxFileSize", async function() { + it("maxFileSize", async function () { updateModelFromJson(ckanCatalogGroup, CommonStrata.definition, { supportedResourceFormats: [ { @@ -436,7 +436,7 @@ describe("CkanCatalogGroup", function() { ); }); - it("removeDuplicates", async function() { + it("removeDuplicates", async function () { updateModelFromJson(ckanCatalogGroup, CommonStrata.definition, { supportedResourceFormats: [ { @@ -470,7 +470,7 @@ describe("CkanCatalogGroup", function() { ); }); - it("useSingleResource", async function() { + it("useSingleResource", async function () { updateModelFromJson(ckanCatalogGroup, CommonStrata.definition, { useSingleResource: true }); @@ -502,7 +502,7 @@ describe("CkanCatalogGroup", function() { }); describe("allowEntireWmsServers", () => { - beforeEach(async function() { + beforeEach(async function () { runInAction(() => { ckanCatalogGroup.setTrait( "definition", @@ -529,7 +529,7 @@ describe("CkanCatalogGroup", function() { }); }); - it("allowEntireWmsServers = true", async function() { + it("allowEntireWmsServers = true", async function () { updateModelFromJson(ckanCatalogGroup, CommonStrata.definition, { allowEntireWmsServers: true }); @@ -556,7 +556,7 @@ describe("CkanCatalogGroup", function() { expect(items[1].target instanceof WebMapServiceCatalogGroup).toBeTruthy(); }); - it("allowEntireWmsServers = false", async function() { + it("allowEntireWmsServers = false", async function () { updateModelFromJson(ckanCatalogGroup, CommonStrata.definition, { allowEntireWmsServers: false }); diff --git a/test/Models/Catalog/Ckan/CkanItemReferenceSpec.ts b/test/Models/Catalog/Ckan/CkanItemReferenceSpec.ts index 0cbe4a57e3d..026a1a5d604 100644 --- a/test/Models/Catalog/Ckan/CkanItemReferenceSpec.ts +++ b/test/Models/Catalog/Ckan/CkanItemReferenceSpec.ts @@ -12,13 +12,13 @@ const taxationStatisticsWmsResource = require("../../../../wwwroot/test/CKAN/tax const vicWmsLayerResource = require("../../../../wwwroot/test/CKAN/vic-wms-layer-resource.json"); const wmsNoLayerResource = require("../../../../wwwroot/test/CKAN/wms-no-layer-resource.json"); -describe("CkanItemReference", function() { +describe("CkanItemReference", function () { let terria: Terria; let ckanItemReference: CkanItemReference; let ckanDatasetStratum: CkanDatasetStratum; let ckanItemTarget: any; - beforeEach(async function() { + beforeEach(async function () { terria = new Terria({ baseUrl: "./" }); @@ -26,7 +26,7 @@ describe("CkanItemReference", function() { jasmine.Ajax.install(); // Fail and log requests by default. - jasmine.Ajax.stubRequest(/.*/).andCallFunction(request => { + jasmine.Ajax.stubRequest(/.*/).andCallFunction((request) => { console.dir(request); request.respondWith({ status: 404 }); }); @@ -54,17 +54,17 @@ describe("CkanItemReference", function() { }); }); - afterEach(function() { + afterEach(function () { jasmine.Ajax.uninstall(); }); - it("has a type and typeName", function() { + it("has a type and typeName", function () { expect(ckanItemReference.type).toBe("ckan-item"); expect(ckanItemReference.typeName).toBe(i18next.t("models.ckan.name")); }); - describe("Can load an item by datasetId - ", function() { - beforeEach(async function() { + describe("Can load an item by datasetId - ", function () { + beforeEach(async function () { runInAction(() => { ckanItemReference.setTrait("definition", "url", "https://example.com"); ckanItemReference.setTrait("definition", "name", "Taxation Statistics"); @@ -81,7 +81,7 @@ describe("CkanItemReference", function() { ckanItemTarget = ckanItemReference.target; }); - it("properly creates item", function() { + it("properly creates item", function () { // when creating a single item directly name is retained from the definition stratum expect(ckanItemTarget.name).toBe("Taxation Statistics"); @@ -146,15 +146,15 @@ describe("CkanItemReference", function() { }); }); - describe("Can load an item by resourceId - ", function() { - beforeEach(async function() { + describe("Can load an item by resourceId - ", function () { + beforeEach(async function () { runInAction(() => { ckanItemReference.setTrait("definition", "url", "https://example.com"); ckanItemReference.setTrait("definition", "name", "Taxation Statistics"); }); }); - it("properly creates item", async function() { + it("properly creates item", async function () { ckanItemReference.setTrait( "definition", "resourceId", @@ -184,7 +184,7 @@ describe("CkanItemReference", function() { ); }); - it("creates WMS group instead of WMS item if no LAYERS", async function() { + it("creates WMS group instead of WMS item if no LAYERS", async function () { ckanItemReference.setTrait( "definition", "resourceId", @@ -213,8 +213,8 @@ describe("CkanItemReference", function() { }); }); - describe("Can load a different item by resourceId - ", function() { - beforeEach(async function() { + describe("Can load a different item by resourceId - ", function () { + beforeEach(async function () { runInAction(() => { ckanItemReference.setTrait("definition", "url", "https://example.com"); ckanItemReference.setTrait( @@ -234,7 +234,7 @@ describe("CkanItemReference", function() { ); ckanItemTarget = ckanItemReference.target; }); - it("uses LAYERS from url query string for WMS item", function() { + it("uses LAYERS from url query string for WMS item", function () { expect(ckanItemReference._ckanResource).toBeDefined(); expect(ckanItemReference._ckanDataset).toBe(undefined); expect(ckanItemReference._ckanCatalogGroup).toBe(undefined); @@ -259,8 +259,8 @@ describe("CkanItemReference", function() { }); }); - describe("Rejected if there is no datasetId or resourceId - ", function() { - beforeEach(async function() { + describe("Rejected if there is no datasetId or resourceId - ", function () { + beforeEach(async function () { runInAction(() => { ckanItemReference.setTrait("definition", "url", "https://example.com"); ckanItemReference.setTrait("definition", "name", "Taxation Statistics"); @@ -268,7 +268,7 @@ describe("CkanItemReference", function() { await ckanItemReference.loadReference(); }); - it("No target can be created", function() { + it("No target can be created", function () { expect(ckanItemReference.target).toBe(undefined); }); }); diff --git a/test/Models/Catalog/Gtfs/GtfsCatalogItemSpec.ts b/test/Models/Catalog/Gtfs/GtfsCatalogItemSpec.ts index fe85bb254a2..e86e89bfed0 100644 --- a/test/Models/Catalog/Gtfs/GtfsCatalogItemSpec.ts +++ b/test/Models/Catalog/Gtfs/GtfsCatalogItemSpec.ts @@ -5,10 +5,10 @@ import CommonStrata from "../../../../lib/Models/Definition/CommonStrata"; import updateModelFromJson from "../../../../lib/Models/Definition/updateModelFromJson"; import Terria from "../../../../lib/Models/Terria"; -describe("GtfsCatalogItem", function() { +describe("GtfsCatalogItem", function () { let item: GtfsCatalogItem; - beforeEach(function() { + beforeEach(function () { item = new GtfsCatalogItem("test", new Terria({ baseUrl: "./" })); item.setTrait( CommonStrata.definition, @@ -17,11 +17,11 @@ describe("GtfsCatalogItem", function() { ); }); - it("is Mappable", function() { + it("is Mappable", function () { expect(MappableMixin.isMixedInto(item)).toBeTruthy(); }); - it("creates a DataSource with points", async function() { + it("creates a DataSource with points", async function () { await item.loadMapItems(); expect(item.mapItems.length).toBe(1); expect(item.mapItems[0].entities.values.length).toBe(123); @@ -31,7 +31,7 @@ describe("GtfsCatalogItem", function() { expect(item.mapItems[0].entities.values[0].polygon).toBeUndefined(); }); - it("creates a DataSource with billboards when an image is given", async function() { + it("creates a DataSource with billboards when an image is given", async function () { item.setTrait(CommonStrata.definition, "image", "test/gtfs/bus.png"); await item.loadMapItems(); expect(item.mapItems.length).toBe(1); @@ -42,7 +42,7 @@ describe("GtfsCatalogItem", function() { expect(item.mapItems[0].entities.values[0].polygon).toBeUndefined(); }); - it("creates a DataSource with billboards and models when an image and a model is given", async function() { + it("creates a DataSource with billboards and models when an image and a model is given", async function () { item.setTrait(CommonStrata.definition, "image", "test/gtfs/bus.png"); updateModelFromJson(item, CommonStrata.definition, { model: { url: "models/prism-train.glb" } @@ -56,7 +56,7 @@ describe("GtfsCatalogItem", function() { expect(item.mapItems[0].entities.values[0].polygon).toBeUndefined(); }); - it("creates a Datasource with multiple models coloured by attribute when model.colorModelsByProperty is used", async function() { + it("creates a Datasource with multiple models coloured by attribute when model.colorModelsByProperty is used", async function () { updateModelFromJson(item, CommonStrata.definition, { model: { url: "models/prism-train.glb", diff --git a/test/Models/Catalog/Ows/CswCatalogGroupSpec.ts b/test/Models/Catalog/Ows/CswCatalogGroupSpec.ts index 2375879c2d7..ae4910984c2 100644 --- a/test/Models/Catalog/Ows/CswCatalogGroupSpec.ts +++ b/test/Models/Catalog/Ows/CswCatalogGroupSpec.ts @@ -10,10 +10,10 @@ import CommonStrata from "../../../../lib/Models/Definition/CommonStrata"; import CatalogGroup from "../../../../lib/Models/Catalog/CatalogGroup"; import WebMapServiceCatalogItem from "../../../../lib/Models/Catalog/Ows/WebMapServiceCatalogItem"; -describe("CswCatalogGroup", function() { +describe("CswCatalogGroup", function () { let terria: Terria; let group: CswCatalogGroup; - beforeEach(async function() { + beforeEach(async function () { terria = new Terria({ baseUrl: "./" }); @@ -53,7 +53,7 @@ describe("CswCatalogGroup", function() { let page = 0; jasmine.Ajax.stubRequest( "http://oa-gis.csiro.au/geonetwork/srv/eng/csw" - ).andCallFunction(req => { + ).andCallFunction((req) => { req.respondWith({ contentType: "text/xml", responseText: getRecords[page] @@ -62,11 +62,11 @@ describe("CswCatalogGroup", function() { }); }); - afterEach(function() { + afterEach(function () { jasmine.Ajax.uninstall(); }); - it("loads domain and creates members", async function() { + it("loads domain and creates members", async function () { await group.loadMembers(); expect(group.memberModels.length).toBe(3); @@ -88,7 +88,7 @@ describe("CswCatalogGroup", function() { expect(wmsLayer.name).toBe("National Tidal Model Outline"); }); - it("loads records without domainspec", async function() { + it("loads records without domainspec", async function () { const group2 = new CswCatalogGroup("test2", terria); updateModelFromJson(group2, CommonStrata.override, { @@ -112,7 +112,7 @@ describe("CswCatalogGroup", function() { expect(group2.memberModels[1].type).toBe(WebMapServiceCatalogItem.type); }); - it("loads flattened catalog", async function() { + it("loads flattened catalog", async function () { group.setTrait(CommonStrata.override, "flatten", true); await group.loadMembers(); @@ -129,12 +129,12 @@ describe("CswCatalogGroup", function() { expect(group.memberModels[1].type).toBe(WebMapServiceCatalogItem.type); }); - it("creates correct WMS layer form record (without loading GetCapabilities)", async function() { + it("creates correct WMS layer form record (without loading GetCapabilities)", async function () { await group.loadMembers(); - const wmsLayer = ((group.memberModels[1] as CatalogGroup) - .memberModels[0] as CatalogGroup) - .memberModels[0] as WebMapServiceCatalogItem; + const wmsLayer = ( + (group.memberModels[1] as CatalogGroup).memberModels[0] as CatalogGroup + ).memberModels[0] as WebMapServiceCatalogItem; expect(wmsLayer.name).toBe("National Tidal Model Outline"); expect(wmsLayer.type).toBe(WebMapServiceCatalogItem.type); @@ -159,7 +159,7 @@ describe("CswCatalogGroup", function() { expect(wmsLayer.legends.length).toBe(0); }); - it("honors itemProperties", async function() { + it("honors itemProperties", async function () { updateModelFromJson(group, CommonStrata.override, { itemProperties: { shortReport: "test" diff --git a/test/Models/Catalog/Ows/WebFeatureServiceCatalogGroupSpec.ts b/test/Models/Catalog/Ows/WebFeatureServiceCatalogGroupSpec.ts index 91d833e6967..f4f6e56bd5e 100644 --- a/test/Models/Catalog/Ows/WebFeatureServiceCatalogGroupSpec.ts +++ b/test/Models/Catalog/Ows/WebFeatureServiceCatalogGroupSpec.ts @@ -4,20 +4,20 @@ import CatalogMemberMixin from "../../../../lib/ModelMixins/CatalogMemberMixin"; import Terria from "../../../../lib/Models/Terria"; import WebFeatureServiceCatalogGroup from "../../../../lib/Models/Catalog/Ows/WebFeatureServiceCatalogGroup"; -describe("WebFeatureServiceCatalogGroup", function() { +describe("WebFeatureServiceCatalogGroup", function () { let terria: Terria; let wfs: WebFeatureServiceCatalogGroup; - beforeEach(function() { + beforeEach(function () { terria = new Terria(); wfs = new WebFeatureServiceCatalogGroup("test", terria); }); - it("has a type", function() { + it("has a type", function () { expect(wfs.type).toBe("wfs-group"); }); - it("derives getCapabilitiesUrl from url if getCapabilitiesUrl is not specified", function() { + it("derives getCapabilitiesUrl from url if getCapabilitiesUrl is not specified", function () { wfs.setTrait("definition", "url", "http://www.example.com"); expect(wfs.getCapabilitiesUrl).toBeDefined(); expect(wfs.url).toBeDefined(); @@ -27,19 +27,19 @@ describe("WebFeatureServiceCatalogGroup", function() { ).toBe(true); }); - describe("after loading capabilities", function() { - beforeEach(async function() { + describe("after loading capabilities", function () { + beforeEach(async function () { runInAction(() => { wfs.setTrait("definition", "url", "test/WFS/getCapabilities.xml"); }); }); - it("defines name", async function() { + it("defines name", async function () { await wfs.loadMetadata(); expect(wfs.name).toBe("Geoscience Australia Marine Data"); }); - it("doesn't override user set name", async function() { + it("doesn't override user set name", async function () { const userDefinedName = "user defined name"; runInAction(() => { wfs.setTrait("definition", "name", userDefinedName); @@ -48,7 +48,7 @@ describe("WebFeatureServiceCatalogGroup", function() { expect(wfs.name).toBe(userDefinedName); }); - it("defines info", async function() { + it("defines info", async function () { await wfs.loadMetadata(); const abstract = i18next.t( "models.webFeatureServiceCatalogGroup.abstract" @@ -69,15 +69,15 @@ describe("WebFeatureServiceCatalogGroup", function() { }); }); - describe("loadNestedMembers", function() { - beforeEach(async function() { + describe("loadNestedMembers", function () { + beforeEach(async function () { runInAction(() => { wfs.setTrait("definition", "url", "test/WFS/getCapabilities.xml"); }); await wfs.loadMembers(); }); - it("loads", async function() { + it("loads", async function () { expect(wfs.members.length).toEqual(6); expect(wfs.memberModels.length).toEqual(6); diff --git a/test/Models/Catalog/Ows/WebFeatureServiceCatalogItemSpec.ts b/test/Models/Catalog/Ows/WebFeatureServiceCatalogItemSpec.ts index 40d97149954..2a32e5612dd 100644 --- a/test/Models/Catalog/Ows/WebFeatureServiceCatalogItemSpec.ts +++ b/test/Models/Catalog/Ows/WebFeatureServiceCatalogItemSpec.ts @@ -3,8 +3,8 @@ import { autorun, runInAction } from "mobx"; import Terria from "../../../../lib/Models/Terria"; import WebFeatureServiceCatalogItem from "../../../../lib/Models/Catalog/Ows/WebFeatureServiceCatalogItem"; -describe("WebFeatureServiceCatalogItem", function() { - it("derives getCapabilitiesUrl from url if getCapabilitiesUrl is not specified", function() { +describe("WebFeatureServiceCatalogItem", function () { + it("derives getCapabilitiesUrl from url if getCapabilitiesUrl is not specified", function () { const terria = new Terria(); const wfs = new WebFeatureServiceCatalogItem("test", terria); wfs.setTrait("definition", "url", "foo.bar.baz"); @@ -16,7 +16,7 @@ describe("WebFeatureServiceCatalogItem", function() { ).toBe(true); }); - it("loads", function() { + it("loads", function () { expect().nothing(); const terria = new Terria(); const wfs = new WebFeatureServiceCatalogItem("test", terria); @@ -31,7 +31,7 @@ describe("WebFeatureServiceCatalogItem", function() { return wfs.loadMetadata(); }); - it("updates description from a GetCapabilities", async function() { + it("updates description from a GetCapabilities", async function () { let wfs: WebFeatureServiceCatalogItem; const terria = new Terria(); wfs = new WebFeatureServiceCatalogItem("test", terria); @@ -47,7 +47,7 @@ describe("WebFeatureServiceCatalogItem", function() { const cleanup = autorun(() => { if (wfs.info !== undefined) { const descSection = wfs.info.find( - section => + (section) => section.name === i18next.t("models.webFeatureServiceCatalogItem.abstract") ); diff --git a/test/Models/Catalog/Ows/WebMapServiceCatalogGroupSpec.ts b/test/Models/Catalog/Ows/WebMapServiceCatalogGroupSpec.ts index 716a2e1aba3..2c3b3ebb7be 100644 --- a/test/Models/Catalog/Ows/WebMapServiceCatalogGroupSpec.ts +++ b/test/Models/Catalog/Ows/WebMapServiceCatalogGroupSpec.ts @@ -10,20 +10,20 @@ import ExportWebCoverageServiceTraits, { WebCoverageServiceParameterTraits } from "../../../../lib/Traits/TraitsClasses/ExportWebCoverageServiceTraits"; -describe("WebMapServiceCatalogGroup", function() { +describe("WebMapServiceCatalogGroup", function () { let terria: Terria; let wms: WebMapServiceCatalogGroup; - beforeEach(function() { + beforeEach(function () { terria = new Terria(); wms = new WebMapServiceCatalogGroup("test", terria); }); - it("has a type", function() { + it("has a type", function () { expect(wms.type).toBe("wms-group"); }); - it("derives getCapabilitiesUrl from url if getCapabilitiesUrl is not specified", function() { + it("derives getCapabilitiesUrl from url if getCapabilitiesUrl is not specified", function () { wms.setTrait("definition", "url", "http://www.example.com"); expect(wms.getCapabilitiesUrl).toBeDefined(); expect(wms.url).toBeDefined(); @@ -33,19 +33,19 @@ describe("WebMapServiceCatalogGroup", function() { ).toBe(true); }); - describe("after loading capabilities", function() { - beforeEach(async function() { + describe("after loading capabilities", function () { + beforeEach(async function () { runInAction(() => { wms.setTrait("definition", "url", "test/WMS/single_metadata_url.xml"); }); }); - it("defines name", async function() { + it("defines name", async function () { await wms.loadMetadata(); expect(wms.name).toBe("wms Server"); }); - it("doesn't override user set name", async function() { + it("doesn't override user set name", async function () { const userDefinedName = "user defined name"; runInAction(() => { wms.setTrait("definition", "name", userDefinedName); @@ -54,7 +54,7 @@ describe("WebMapServiceCatalogGroup", function() { expect(wms.name).toBe(userDefinedName); }); - it("defines info", async function() { + it("defines info", async function () { await wms.loadMetadata(); const abstract = i18next.t("models.webMapServiceCatalogGroup.abstract"); const accessConstraints = i18next.t( @@ -76,8 +76,8 @@ describe("WebMapServiceCatalogGroup", function() { }); }); - describe("loadMembers", function() { - beforeEach(async function() { + describe("loadMembers", function () { + beforeEach(async function () { runInAction(() => { wms.setTrait("definition", "url", "test/WMS/single_metadata_url.xml"); wms.setTrait("definition", "itemProperties", { @@ -89,19 +89,19 @@ describe("WebMapServiceCatalogGroup", function() { await wms.loadMembers(); }); - it("loads", async function() { + it("loads", async function () { expect(wms.members.length).toEqual(1); expect(wms.memberModels.length).toEqual(1); }); - it("item properties are passed down", async function() { + it("item properties are passed down", async function () { const member: any = wms.memberModels[0]; expect(member.parameters.foo).toEqual("baa"); }); }); - describe("loadMembersWithSharekeys", function() { - beforeEach(async function() { + describe("loadMembersWithSharekeys", function () { + beforeEach(async function () { runInAction(() => { terria.addShareKey(wms.uniqueId!, "some-share-key"); wms.setTrait("definition", "url", "test/WMS/single_metadata_url.xml"); @@ -109,7 +109,7 @@ describe("WebMapServiceCatalogGroup", function() { await wms.loadMembers(); }); - it("addsShareKeys", async function() { + it("addsShareKeys", async function () { expect(wms.members.length).toEqual(1); expect(wms.memberModels.length).toEqual(1); const wmsItem = wms.memberModels[0] as WebMapServiceCatalogItem; @@ -124,15 +124,15 @@ describe("WebMapServiceCatalogGroup", function() { }); }); - describe("loadNestedMembers", function() { - beforeEach(async function() { + describe("loadNestedMembers", function () { + beforeEach(async function () { runInAction(() => { wms.setTrait("definition", "url", "test/WMS/wms_nested_groups.xml"); }); await wms.loadMembers(); }); - it("loads", async function() { + it("loads", async function () { expect(wms.members.length).toEqual(3); expect(wms.memberModels.length).toEqual(3); @@ -156,8 +156,8 @@ describe("WebMapServiceCatalogGroup", function() { }); }); - describe("perLayerLinkedWcs", function() { - beforeEach(async function() { + describe("perLayerLinkedWcs", function () { + beforeEach(async function () { runInAction(() => { wms.setTrait("definition", "url", "test/WMS/wms_nested_groups.xml"); wms.setTrait( @@ -175,7 +175,7 @@ describe("WebMapServiceCatalogGroup", function() { await wms.loadMembers(); }); - it("sets traits correctly", async function() { + it("sets traits correctly", async function () { const wmsItem = (wms.memberModels[0] as WebMapServiceCatalogGroup) .memberModels[0] as WebMapServiceCatalogItem; diff --git a/test/Models/Catalog/Ows/WebMapServiceCatalogItemSpec.ts b/test/Models/Catalog/Ows/WebMapServiceCatalogItemSpec.ts index 313f04106f4..10a81afc216 100644 --- a/test/Models/Catalog/Ows/WebMapServiceCatalogItemSpec.ts +++ b/test/Models/Catalog/Ows/WebMapServiceCatalogItemSpec.ts @@ -8,8 +8,8 @@ import WebMapServiceCatalogItem from "../../../../lib/Models/Catalog/Ows/WebMapS import CommonStrata from "../../../../lib/Models/Definition/CommonStrata"; import Terria from "../../../../lib/Models/Terria"; -describe("WebMapServiceCatalogItem", function() { - it("derives getCapabilitiesUrl from url if getCapabilitiesUrl is not specified", function() { +describe("WebMapServiceCatalogItem", function () { + it("derives getCapabilitiesUrl from url if getCapabilitiesUrl is not specified", function () { const terria = new Terria(); const wms = new WebMapServiceCatalogItem("test", terria); wms.setTrait("definition", "url", "foo.bar.baz"); @@ -23,7 +23,7 @@ describe("WebMapServiceCatalogItem", function() { expect(wms.useWmsVersion130).toBeTruthy(); }); - it("derives getCapabilitiesUrl from url - for WMS 1.1.1", function() { + it("derives getCapabilitiesUrl from url - for WMS 1.1.1", function () { const terria = new Terria(); const wms = new WebMapServiceCatalogItem("test", terria); wms.setTrait( @@ -37,7 +37,7 @@ describe("WebMapServiceCatalogItem", function() { expect(wms.useWmsVersion130).toBeFalsy(); }); - it("loads", function() { + it("loads", function () { expect().nothing(); const terria = new Terria(); const wms = new WebMapServiceCatalogItem("test", terria); @@ -48,7 +48,7 @@ describe("WebMapServiceCatalogItem", function() { return wms.loadMapItems(); }); - it("loads - for WMS 1.1.1", function() { + it("loads - for WMS 1.1.1", function () { expect().nothing(); const terria = new Terria(); const wms = new WebMapServiceCatalogItem("test", terria); @@ -60,7 +60,7 @@ describe("WebMapServiceCatalogItem", function() { }); describe("selects correct tilingScheme", () => { - it("uses 4326 is no 3857", async function() { + it("uses 4326 is no 3857", async function () { const terria = new Terria(); const wms = new WebMapServiceCatalogItem("test", terria); runInAction(() => { @@ -73,7 +73,7 @@ describe("WebMapServiceCatalogItem", function() { expect(wms.tilingScheme instanceof GeographicTilingScheme).toBeTruthy(); }); - it("uses 3857 over 4326", async function() { + it("uses 3857 over 4326", async function () { const terria = new Terria(); const wms = new WebMapServiceCatalogItem("test", terria); runInAction(() => { @@ -87,7 +87,7 @@ describe("WebMapServiceCatalogItem", function() { }); }); - it("updates description from a GetCapabilities", async function() { + it("updates description from a GetCapabilities", async function () { let wms: WebMapServiceCatalogItem; const terria = new Terria(); wms = new WebMapServiceCatalogItem("test", terria); @@ -99,7 +99,7 @@ describe("WebMapServiceCatalogItem", function() { const cleanup = autorun(() => { if (wms.info !== undefined) { const descSection = wms.info.find( - section => section.name === "Web Map Service Layer Description" + (section) => section.name === "Web Map Service Layer Description" ); if ( descSection !== undefined && @@ -118,7 +118,7 @@ describe("WebMapServiceCatalogItem", function() { } }); - it("correctly constructs ImageryProvider", async function() { + it("correctly constructs ImageryProvider", async function () { let wms: WebMapServiceCatalogItem; const terria = new Terria(); wms = new WebMapServiceCatalogItem("test", terria); @@ -142,8 +142,9 @@ describe("WebMapServiceCatalogItem", function() { "test/WMS/single_metadata_url.xml" ); - const tileProviderResource: Resource = (mapItems[0] - .imageryProvider as any)._tileProvider._resource; + const tileProviderResource: Resource = ( + mapItems[0].imageryProvider as any + )._tileProvider._resource; expect(tileProviderResource.queryParameters.version).toBe("1.3.0"); expect(tileProviderResource.queryParameters.crs).toBe("EPSG:3857"); @@ -153,8 +154,9 @@ describe("WebMapServiceCatalogItem", function() { expect(tileProviderResource.queryParameters.transparent).toBeTruthy(); expect(tileProviderResource.queryParameters.format).toBe("image/png"); - const getFeatureInfoResource: Resource = (mapItems[0] - .imageryProvider as any)._pickFeaturesResource; + const getFeatureInfoResource: Resource = ( + mapItems[0].imageryProvider as any + )._pickFeaturesResource; expect(getFeatureInfoResource.queryParameters.version).toBe("1.3.0"); expect(getFeatureInfoResource.queryParameters.crs).toBe("EPSG:3857"); @@ -175,7 +177,7 @@ describe("WebMapServiceCatalogItem", function() { } }); - it("correctly constructs ImageryProvider - for WMS 1.1.1", async function() { + it("correctly constructs ImageryProvider - for WMS 1.1.1", async function () { expect().nothing(); const terria = new Terria(); const wms = new WebMapServiceCatalogItem("test", terria); @@ -198,8 +200,9 @@ describe("WebMapServiceCatalogItem", function() { if (mapItems[0].imageryProvider instanceof WebMapServiceImageryProvider) { expect(mapItems[0].imageryProvider.url).toBe("test/WMS/wms_1_1_1.xml"); - const tileProviderResource: Resource = (mapItems[0] - .imageryProvider as any)._tileProvider._resource; + const tileProviderResource: Resource = ( + mapItems[0].imageryProvider as any + )._tileProvider._resource; expect(tileProviderResource.queryParameters.version).toBe("1.1.1"); expect(tileProviderResource.queryParameters.srs).toBe("EPSG:4326"); @@ -212,8 +215,9 @@ describe("WebMapServiceCatalogItem", function() { expect(tileProviderResource.queryParameters.tiled).toBeTruthy(); expect(tileProviderResource.queryParameters.transparent).toBeTruthy(); - const getFeatureInfoResource: Resource = (mapItems[0] - .imageryProvider as any)._pickFeaturesResource; + const getFeatureInfoResource: Resource = ( + mapItems[0].imageryProvider as any + )._pickFeaturesResource; expect(getFeatureInfoResource.queryParameters.version).toBe("1.1.1"); expect(getFeatureInfoResource.queryParameters.srs).toBe("EPSG:4326"); @@ -237,7 +241,7 @@ describe("WebMapServiceCatalogItem", function() { } }); - it("supports parameters in GetMap and GetFeatureInfo requests", async function() { + it("supports parameters in GetMap and GetFeatureInfo requests", async function () { let wms: WebMapServiceCatalogItem; const terria = new Terria(); wms = new WebMapServiceCatalogItem("test", terria); @@ -269,8 +273,9 @@ describe("WebMapServiceCatalogItem", function() { "test/WMS/single_metadata_url.xml" ); - const tileProviderResource: Resource = (mapItems[0] - .imageryProvider as any)._tileProvider._resource; + const tileProviderResource: Resource = ( + mapItems[0].imageryProvider as any + )._tileProvider._resource; expect(tileProviderResource.queryParameters.version).toBe("1.3.0"); expect(tileProviderResource.queryParameters.crs).toBe("EPSG:3857"); @@ -282,8 +287,9 @@ describe("WebMapServiceCatalogItem", function() { expect(tileProviderResource.queryParameters.some).toBe("thing"); expect(tileProviderResource.queryParameters.another).toBe("value"); - const getFeatureInfoResource: Resource = (mapItems[0] - .imageryProvider as any)._pickFeaturesResource; + const getFeatureInfoResource: Resource = ( + mapItems[0].imageryProvider as any + )._pickFeaturesResource; expect(getFeatureInfoResource.queryParameters.version).toBe("1.3.0"); expect(getFeatureInfoResource.queryParameters.crs).toBe("EPSG:3857"); @@ -306,7 +312,7 @@ describe("WebMapServiceCatalogItem", function() { } }); - it("constructs correct ImageryProvider when layers trait provided Title", async function() { + it("constructs correct ImageryProvider when layers trait provided Title", async function () { let wms: WebMapServiceCatalogItem; const terria = new Terria(); wms = new WebMapServiceCatalogItem("test", terria); @@ -369,7 +375,7 @@ describe("WebMapServiceCatalogItem", function() { }); }); - it("uses tileWidth and tileHeight", async function() { + it("uses tileWidth and tileHeight", async function () { let wms: WebMapServiceCatalogItem; const terria = new Terria(); wms = new WebMapServiceCatalogItem("test", terria); @@ -397,7 +403,7 @@ describe("WebMapServiceCatalogItem", function() { } }); - it("uses query parameters from URL - no parameters", async function() { + it("uses query parameters from URL - no parameters", async function () { let wms: WebMapServiceCatalogItem; const terria = new Terria(); wms = new WebMapServiceCatalogItem("test", terria); @@ -415,7 +421,7 @@ describe("WebMapServiceCatalogItem", function() { expect(wms.crs).toBe("EPSG:3857"); }); - it("uses query parameters from URL - with parameters", async function() { + it("uses query parameters from URL - with parameters", async function () { let wms: WebMapServiceCatalogItem; const terria = new Terria(); wms = new WebMapServiceCatalogItem("test", terria); @@ -437,7 +443,7 @@ describe("WebMapServiceCatalogItem", function() { expect(wms.crs).toBe("EPSG:4326"); }); - it("invalid/valid layers", async function() { + it("invalid/valid layers", async function () { let wms: WebMapServiceCatalogItem; const terria = new Terria(); wms = new WebMapServiceCatalogItem("test", terria); @@ -452,7 +458,7 @@ describe("WebMapServiceCatalogItem", function() { expect(wms.validLayers).toEqual(["single_period"]); }); - it("uses GetFeatureInfo from GetCapabilities", async function() { + it("uses GetFeatureInfo from GetCapabilities", async function () { expect().nothing(); const terria = new Terria(); const wms = new WebMapServiceCatalogItem("test", terria); @@ -466,7 +472,7 @@ describe("WebMapServiceCatalogItem", function() { expect(wms.getFeatureInfoFormat.format).toBe("application/json"); }); - it("uses GetFeatureInfo from GetCapabilities - WMS 1.1.1", async function() { + it("uses GetFeatureInfo from GetCapabilities - WMS 1.1.1", async function () { expect().nothing(); const terria = new Terria(); const wms = new WebMapServiceCatalogItem("test", terria); @@ -481,7 +487,7 @@ describe("WebMapServiceCatalogItem", function() { expect(wms.getFeatureInfoFormat.format).toBe("application/vnd.ogc.gml"); }); - it("uses default time", function(done) { + it("uses default time", function (done) { const terria = new Terria(); const wmsItem = new WebMapServiceCatalogItem("some-layer", terria); runInAction(() => { @@ -496,14 +502,14 @@ describe("WebMapServiceCatalogItem", function() { wmsItem .loadMetadata() - .then(function() { + .then(function () { expect(wmsItem.currentTime).toBe("2016-09-24T00:00:00.000Z"); }) .then(done) .catch(done.fail); }); - it("uses default time=current", async function() { + it("uses default time=current", async function () { const terria = new Terria(); const wmsItem = new WebMapServiceCatalogItem("some-layer", terria); runInAction(() => { @@ -524,7 +530,7 @@ describe("WebMapServiceCatalogItem", function() { ); }); - it("dimensions and styles for a 'real' WMS layer", function(done) { + it("dimensions and styles for a 'real' WMS layer", function (done) { const terria = new Terria(); const wmsItem = new WebMapServiceCatalogItem("some-layer", terria); runInAction(() => { @@ -548,7 +554,7 @@ describe("WebMapServiceCatalogItem", function() { wmsItem .loadMetadata() - .then(function() { + .then(function () { expect(wmsItem.styleSelectableDimensions.length).toBe(2); // Check Styles and dimensions @@ -602,7 +608,7 @@ describe("WebMapServiceCatalogItem", function() { .catch(done.fail); }); - it("fetches default legend - if supportsGetLegendRequest is false", function(done) { + it("fetches default legend - if supportsGetLegendRequest is false", function (done) { const terria = new Terria(); const wmsItem = new WebMapServiceCatalogItem("some-layer", terria); runInAction(() => { @@ -617,7 +623,7 @@ describe("WebMapServiceCatalogItem", function() { wmsItem .loadMetadata() - .then(function() { + .then(function () { expect(wmsItem.legends.length).toBe(1); expect(wmsItem.legends[0].url).toBe( "http://geoport-dev.whoi.edu/thredds/wms/coawst_4/use/fmrc/coawst_4_use_best.ncd?REQUEST=GetLegendGraphic&LAYER=v&PALETTE=rainbow" @@ -666,7 +672,7 @@ describe("WebMapServiceCatalogItem", function() { ); }); - it("fetches geoserver legend", function(done) { + it("fetches geoserver legend", function (done) { const terria = new Terria(); const wmsItem = new WebMapServiceCatalogItem("some-layer", terria); runInAction(() => { @@ -682,7 +688,7 @@ describe("WebMapServiceCatalogItem", function() { wmsItem .loadMetadata() - .then(function() { + .then(function () { expect(wmsItem.legends.length).toBe(1); // Match for fontColour = 0xffffff || 0xfff @@ -697,7 +703,7 @@ describe("WebMapServiceCatalogItem", function() { .catch(done.fail); }); - it("fetches GetLegendGraphic", function(done) { + it("fetches GetLegendGraphic", function (done) { const terria = new Terria(); const wmsItem = new WebMapServiceCatalogItem("some-layer", terria); runInAction(() => { @@ -718,7 +724,7 @@ describe("WebMapServiceCatalogItem", function() { wmsItem .loadMetadata() - .then(function() { + .then(function () { expect(wmsItem.legends.length).toBe(1); expect(wmsItem.legends[0].url).toBe( "http://example.com/?service=WMS&version=1.3.0&request=GetLegendGraphic&format=image%2Fpng&sld_version=1.1.0&layer=A&style=no-legend" @@ -728,7 +734,7 @@ describe("WebMapServiceCatalogItem", function() { .catch(done.fail); }); - it("fetches legend with colourScaleRange", function(done) { + it("fetches legend with colourScaleRange", function (done) { const terria = new Terria(); const wmsItem = new WebMapServiceCatalogItem("some-layer", terria); runInAction(() => { @@ -754,7 +760,7 @@ describe("WebMapServiceCatalogItem", function() { wmsItem .loadMetadata() - .then(function() { + .then(function () { expect(wmsItem.isThredds).toBeTruthy(); expect(wmsItem.legends.length).toBe(1); expect(wmsItem.legends[0].url).toBe( @@ -765,7 +771,7 @@ describe("WebMapServiceCatalogItem", function() { .catch(done.fail); }); - it("`selectableDimensions` is empty if `disableDimensionSelectors` is true", function(done) { + it("`selectableDimensions` is empty if `disableDimensionSelectors` is true", function (done) { const terria = new Terria(); const wmsItem = new WebMapServiceCatalogItem("some-layer", terria); runInAction(() => { @@ -791,7 +797,7 @@ describe("WebMapServiceCatalogItem", function() { wmsItem .loadMetadata() - .then(function() { + .then(function () { expect(wmsItem.selectableDimensions.length).toBe(0); }) .then(done) @@ -824,7 +830,7 @@ describe("WebMapServiceCatalogItem", function() { .imageryProvider as WebMapServiceImageryProvider; }); - it("should be an WebMapServiceImageryProvider", function() { + it("should be an WebMapServiceImageryProvider", function () { expect( imageryProvider instanceof WebMapServiceImageryProvider ).toBeTruthy(); diff --git a/test/Models/Catalog/Ows/WebMapTileServiceCatalogGroupSpec.ts b/test/Models/Catalog/Ows/WebMapTileServiceCatalogGroupSpec.ts index 0fcde442a5f..6832dc090b7 100644 --- a/test/Models/Catalog/Ows/WebMapTileServiceCatalogGroupSpec.ts +++ b/test/Models/Catalog/Ows/WebMapTileServiceCatalogGroupSpec.ts @@ -3,19 +3,19 @@ import Terria from "../../../../lib/Models/Terria"; import { runInAction } from "mobx"; import i18next from "i18next"; -describe("WebMapTileServiceCatalogGroup", function() { +describe("WebMapTileServiceCatalogGroup", function () { let terria: Terria; let wmts: WebMapTileServiceCatalogGroup; - beforeEach(function() { + beforeEach(function () { terria = new Terria(); wmts = new WebMapTileServiceCatalogGroup("test", terria); }); - it("has a type", function() { + it("has a type", function () { expect(wmts.type).toBe("wmts-group"); }); - it("derives getCapabilitiesUrl from url if getCapabilitiesUrl is not specifiied", function() { + it("derives getCapabilitiesUrl from url if getCapabilitiesUrl is not specifiied", function () { wmts.setTrait("definition", "url", "http://www.example.com"); expect(wmts.url).toBeDefined(); expect( @@ -24,19 +24,19 @@ describe("WebMapTileServiceCatalogGroup", function() { ).toBeTruthy(); }); - describe("after loading capabilities", function() { - beforeEach(async function() { + describe("after loading capabilities", function () { + beforeEach(async function () { runInAction(() => { wmts.setTrait("definition", "url", "test/WMTS/with_tilematrix.xml"); }); }); - it("defines name", async function() { + it("defines name", async function () { await wmts.loadMetadata(); expect(wmts.name).toBe("Test WMTS"); }); - it("doesn't override user set name", async function() { + it("doesn't override user set name", async function () { const userDefinedName = "user defined name"; runInAction(() => { wmts.setTrait("definition", "name", userDefinedName); @@ -45,7 +45,7 @@ describe("WebMapTileServiceCatalogGroup", function() { expect(wmts.name).toBe(userDefinedName); }); - it("defines info", async function() { + it("defines info", async function () { await wmts.loadMetadata(); const abstract = i18next.t( "models.webMapTileServiceCatalogGroup.abstract" @@ -68,15 +68,15 @@ describe("WebMapTileServiceCatalogGroup", function() { }); }); - describe("load members", function() { - beforeEach(async function() { + describe("load members", function () { + beforeEach(async function () { runInAction(() => { wmts.setTrait("definition", "url", "test/WMTS/with_tilematrix.xml"); }); await wmts.loadMembers(); }); - it("loads", async function() { + it("loads", async function () { expect(wmts.members.length).toEqual(3); expect(wmts.memberModels.length).toEqual(3); }); diff --git a/test/Models/Catalog/Ows/WebMapTileServiceCatalogItemSpec.ts b/test/Models/Catalog/Ows/WebMapTileServiceCatalogItemSpec.ts index 23484dae090..ea8b65a98ed 100644 --- a/test/Models/Catalog/Ows/WebMapTileServiceCatalogItemSpec.ts +++ b/test/Models/Catalog/Ows/WebMapTileServiceCatalogItemSpec.ts @@ -3,19 +3,19 @@ import { autorun, runInAction } from "mobx"; import WebMapTileServiceCatalogItem from "../../../../lib/Models/Catalog/Ows/WebMapTileServiceCatalogItem"; import Terria from "../../../../lib/Models/Terria"; -describe("WebMapTileServiceCatalogItem", function() { +describe("WebMapTileServiceCatalogItem", function () { let terria: Terria; let wmts: WebMapTileServiceCatalogItem; - beforeEach(function() { + beforeEach(function () { terria = new Terria(); wmts = new WebMapTileServiceCatalogItem("test", terria); }); - it("has a type", function() { + it("has a type", function () { expect(wmts.type).toBe("wmts"); }); - it("derives getCapabilitiesUrl from url if getCapabilitiesUrl is not specifiied", function() { + it("derives getCapabilitiesUrl from url if getCapabilitiesUrl is not specifiied", function () { wmts.setTrait("definition", "url", "http://www.example.com"); expect(wmts.url).toBeDefined(); expect( @@ -24,7 +24,7 @@ describe("WebMapTileServiceCatalogItem", function() { ).toBeTruthy(); }); - it("updates description from a GetCapabilities", async function() { + it("updates description from a GetCapabilities", async function () { runInAction(() => { wmts.setTrait("definition", "url", "test/WMTS/with_tilematrix.xml"); wmts.setTrait("definition", "layer", "Some_Layer1"); @@ -34,7 +34,7 @@ describe("WebMapTileServiceCatalogItem", function() { const cleanup = autorun(() => { if (wmts.info !== undefined) { const descSection = wmts.info.find( - section => + (section) => section.name === i18next.t("models.webMapTileServiceCatalogItem.dataDescription") ); @@ -121,7 +121,7 @@ describe("WebMapTileServiceCatalogItem", function() { // } // }); - it("calculates correct tileMatrixSet", async function() { + it("calculates correct tileMatrixSet", async function () { runInAction(() => { wmts.setTrait("definition", "url", "test/WMTS/with_tilematrix.xml"); wmts.setTrait("definition", "layer", "Some_Layer1"); @@ -137,7 +137,7 @@ describe("WebMapTileServiceCatalogItem", function() { expect(wmts.tileMatrixSet!.tileHeight).toEqual(256); }); - it("non existing tile matrix set", async function() { + it("non existing tile matrix set", async function () { runInAction(() => { wmts.setTrait("definition", "url", "test/WMTS/with_tilematrix.xml"); wmts.setTrait("definition", "layer", "Layer_With_Bad_Tilematrixset"); diff --git a/test/Models/Catalog/Ows/WebProcessingServiceCatalogFunctionSpec.ts b/test/Models/Catalog/Ows/WebProcessingServiceCatalogFunctionSpec.ts index 9a0fa5afbdf..6e3a2c8a88c 100644 --- a/test/Models/Catalog/Ows/WebProcessingServiceCatalogFunctionSpec.ts +++ b/test/Models/Catalog/Ows/WebProcessingServiceCatalogFunctionSpec.ts @@ -36,10 +36,10 @@ const failedExecuteResponseXml = require("raw-loader!../../../../wwwroot/test/WP const pendingExecuteResponseXml = require("raw-loader!../../../../wwwroot/test/WPS/PendingExecuteResponse.xml"); -describe("WebProcessingServiceCatalogFunction", function() { +describe("WebProcessingServiceCatalogFunction", function () { let wps: WebProcessingServiceCatalogFunction; - beforeEach(function() { + beforeEach(function () { const terria = initTerria(); wps = new WebProcessingServiceCatalogFunction("test", terria); runInAction(() => { @@ -64,17 +64,17 @@ describe("WebProcessingServiceCatalogFunction", function() { ).andReturn({ responseText: regionMapping }); }); - afterEach(function() { + afterEach(function () { jasmine.Ajax.uninstall(); }); - it("has a type & typeName", function() { + it("has a type & typeName", function () { expect(WebProcessingServiceCatalogFunction.type).toBe("wps"); expect(wps.typeName).toBe("Web Processing Service (WPS)"); }); - describe("when loading", function() { - it("should correctly query the DescribeProcess endpoint", async function() { + describe("when loading", function () { + it("should correctly query the DescribeProcess endpoint", async function () { await wps.loadMetadata(); expect(wps.functionParameters.length).toBe(2); expect(wps.functionParameters.map(({ type }) => type)).toEqual([ @@ -84,12 +84,12 @@ describe("WebProcessingServiceCatalogFunction", function() { }); }); - describe("when invoked", function() { + describe("when invoked", function () { let dispose: () => void; let disposeMapItems: () => void; let job: WebProcessingServiceCatalogFunctionJob; - beforeEach(async function() { + beforeEach(async function () { dispose = reaction( () => wps.parameters, () => {} @@ -97,7 +97,7 @@ describe("WebProcessingServiceCatalogFunction", function() { await wps.loadMetadata(); runInAction(() => { const param = ( - wps.functionParameters.find(p => p.type === "geojson") + wps.functionParameters.find((p) => p.type === "geojson") ); param.subtype = GeoJsonParameter.PointType; param.setValue(CommonStrata.user, { @@ -114,18 +114,18 @@ describe("WebProcessingServiceCatalogFunction", function() { ); }); - afterEach(function() { + afterEach(function () { dispose(); disposeMapItems(); }); - it("makes a POST request to the Execute endpoint", async function() { + it("makes a POST request to the Execute endpoint", async function () { expect(job.identifier).toBe("someId"); // expect(job.).toMatch(/geometry=/); expect(job.jobStatus).toBe("finished"); }); - it("makes a GET request to the Execute endpoint when `executeWithHttpGet` is true", async function() { + it("makes a GET request to the Execute endpoint when `executeWithHttpGet` is true", async function () { runInAction(() => wps.setTrait("definition", "executeWithHttpGet", true)); expect(job.identifier).toBe("someId"); @@ -134,14 +134,14 @@ describe("WebProcessingServiceCatalogFunction", function() { expect(job.jobStatus).toBe("finished"); }); - it("adds a ResultPendingCatalogItem to the workbench", async function() { + it("adds a ResultPendingCatalogItem to the workbench", async function () { expect(job.inWorkbench).toBeTruthy(); }); }); - describe("on success", function() { + describe("on success", function () { let job: WebProcessingServiceCatalogFunctionJob; - beforeEach(async function() { + beforeEach(async function () { let dispose: any; job = (await wps.submitJob()) as WebProcessingServiceCatalogFunctionJob; @@ -158,11 +158,11 @@ describe("WebProcessingServiceCatalogFunction", function() { dispose(); }); - it("adds a WebProcessingServiceCatalogFunctionJob to workbench", async function() { + it("adds a WebProcessingServiceCatalogFunctionJob to workbench", async function () { expect(job.inWorkbench).toBeTruthy(); }); - it("adds result to workbench", async function() { + it("adds result to workbench", async function () { expect(job.results.length).toBe(2); expect(MappableMixin.isMixedInto(job.results[0])).toBeTruthy(); expect(MappableMixin.isMixedInto(job.results[1])).toBeTruthy(); @@ -170,27 +170,27 @@ describe("WebProcessingServiceCatalogFunction", function() { expect(job.results[1].inWorkbench).toBeTruthy(); }); - it("adds a new catalog member for the output", async function() { + it("adds a new catalog member for the output", async function () { expect(job.results[0].type).toBe(CsvCatalogItem.type); }); - it("adds a short report", async function() { + it("adds a short report", async function () { expect(job.shortReportSections[0].content).toBe( "Chart Vegetation Cover generated." ); }); - it("returns mapItems", async function() { + it("returns mapItems", async function () { expect(job.mapItems.length).toBe(1); expect(job.mapItems[0]).toEqual(jasmine.any(GeoJsonDataSource)); }); - it("defines a rectangle", async function() { + it("defines a rectangle", async function () { expect(job.rectangle).toBeDefined(); }); }); - describe("otherwise if `statusLocation` is set", function() { - it("polls the statusLocation for the result", async function() { + describe("otherwise if `statusLocation` is set", function () { + it("polls the statusLocation for the result", async function () { jasmine.Ajax.stubRequest( "http://example.com/wps?service=WPS&request=Execute&version=1.0.0" ).andReturn({ responseText: pendingExecuteResponseXml }); @@ -228,7 +228,7 @@ describe("WebProcessingServiceCatalogFunction", function() { dispose2(); }); - it("stops polling if pendingItem is removed from the workbench", async function() { + it("stops polling if pendingItem is removed from the workbench", async function () { spyOn(wps.terria.workbench, "add").and.returnValue( Promise.resolve(Result.none()) ); // do nothing @@ -243,10 +243,10 @@ describe("WebProcessingServiceCatalogFunction", function() { }); }); - describe("on failure", function() { + describe("on failure", function () { let dispose: () => void; - beforeEach(async function() { + beforeEach(async function () { dispose = reaction( () => wps.parameters, () => {} @@ -254,7 +254,7 @@ describe("WebProcessingServiceCatalogFunction", function() { await wps.loadMetadata(); runInAction(() => { const param = ( - wps.functionParameters.find(p => p.type === "geojson") + wps.functionParameters.find((p) => p.type === "geojson") ); param.subtype = GeoJsonParameter.PointType; param.setValue(CommonStrata.user, { @@ -265,11 +265,11 @@ describe("WebProcessingServiceCatalogFunction", function() { }); }); - afterEach(function() { + afterEach(function () { dispose(); }); - it("marks the ResultPendingCatalogItem as failed - for polling results", async function() { + it("marks the ResultPendingCatalogItem as failed - for polling results", async function () { jasmine.Ajax.stubRequest( "http://example.com/wps?service=WPS&request=Execute&version=1.0.0" ).andReturn({ responseText: pendingExecuteResponseXml }); @@ -278,7 +278,8 @@ describe("WebProcessingServiceCatalogFunction", function() { "http://example.com/ows?check_status/123" ).andReturn({ responseText: failedExecuteResponseXml }); - const job = (await wps.submitJob()) as WebProcessingServiceCatalogFunctionJob; + const job = + (await wps.submitJob()) as WebProcessingServiceCatalogFunctionJob; const dispose1 = reaction( () => job.mapItems, @@ -308,7 +309,7 @@ describe("WebProcessingServiceCatalogFunction", function() { dispose2(); }); - it("marks the ResultPendingCatalogItem as failed", async function() { + it("marks the ResultPendingCatalogItem as failed", async function () { jasmine.Ajax.stubRequest( "http://example.com/wps?service=WPS&request=Execute&version=1.0.0" ).andReturn({ responseText: failedExecuteResponseXml }); @@ -326,8 +327,8 @@ describe("WebProcessingServiceCatalogFunction", function() { }); }); - describe("convertInputToParameter", function() { - it("works for a simple input", function() { + describe("convertInputToParameter", function () { + it("works for a simple input", function () { const parameter = wps.convertInputToParameter(wps, { Identifier: "geometry_id", Title: "Geometry ID", @@ -344,7 +345,7 @@ describe("WebProcessingServiceCatalogFunction", function() { } }); - it("converts LiteralData input with `AllowedValues` to EnumerationParameter", function() { + it("converts LiteralData input with `AllowedValues` to EnumerationParameter", function () { const parameter = wps.convertInputToParameter(wps, { Identifier: "geometry_id", LiteralData: { AllowedValues: { Value: ["Point", "Polygon"] } } @@ -359,7 +360,7 @@ describe("WebProcessingServiceCatalogFunction", function() { } }); - it("converts LiteralData input with `AllowedValue` to EnumerationParameter", function() { + it("converts LiteralData input with `AllowedValue` to EnumerationParameter", function () { const parameter = wps.convertInputToParameter(wps, { Identifier: "geometry_id", LiteralData: { AllowedValue: { Value: "Point" } } @@ -371,7 +372,7 @@ describe("WebProcessingServiceCatalogFunction", function() { } }); - it("converts LiteralData input with `AnyValue` to StringParameter", function() { + it("converts LiteralData input with `AnyValue` to StringParameter", function () { const parameter = wps.convertInputToParameter(wps, { Identifier: "geometry_id", LiteralData: { AnyValue: {} } @@ -379,7 +380,7 @@ describe("WebProcessingServiceCatalogFunction", function() { expect(parameter).toEqual(jasmine.any(StringParameter)); }); - it("converts ComplexData input with datetime schema to DateTimeParameter", function() { + it("converts ComplexData input with datetime schema to DateTimeParameter", function () { const parameter = wps.convertInputToParameter(wps, { Identifier: "geometry", ComplexData: { @@ -391,7 +392,7 @@ describe("WebProcessingServiceCatalogFunction", function() { expect(parameter).toEqual(jasmine.any(DateTimeParameter)); }); - it("converts ComplexData input with point schema to PointParameter", function() { + it("converts ComplexData input with point schema to PointParameter", function () { const parameter = wps.convertInputToParameter(wps, { Identifier: "geometry", ComplexData: { @@ -403,7 +404,7 @@ describe("WebProcessingServiceCatalogFunction", function() { expect(parameter).toEqual(jasmine.any(PointParameter)); }); - it("converts ComplexData input with line schema to LineParameter", function() { + it("converts ComplexData input with line schema to LineParameter", function () { const parameter = wps.convertInputToParameter(wps, { Identifier: "geometry", ComplexData: { @@ -417,7 +418,7 @@ describe("WebProcessingServiceCatalogFunction", function() { expect(parameter).toEqual(jasmine.any(LineParameter)); }); - it("converts ComplexData input with polygon schema to PolygonParameter", function() { + it("converts ComplexData input with polygon schema to PolygonParameter", function () { const parameter = wps.convertInputToParameter(wps, { Identifier: "geometry", ComplexData: { @@ -429,7 +430,7 @@ describe("WebProcessingServiceCatalogFunction", function() { expect(parameter).toEqual(jasmine.any(PolygonParameter)); }); - it("converts ComplexData input with GeoJson schema to GeoJsonParameter", function() { + it("converts ComplexData input with GeoJson schema to GeoJsonParameter", function () { const parameter = wps.convertInputToParameter(wps, { Identifier: "geometry", ComplexData: { @@ -441,7 +442,7 @@ describe("WebProcessingServiceCatalogFunction", function() { expect(parameter).toEqual(jasmine.any(GeoJsonParameter)); }); - it("converts input with BoundingBoxData to RectangleParameter", function() { + it("converts input with BoundingBoxData to RectangleParameter", function () { const parameter = wps.convertInputToParameter(wps, { Identifier: "geometry", BoundingBoxData: { @@ -452,7 +453,7 @@ describe("WebProcessingServiceCatalogFunction", function() { }); }); - it("can convert a parameter to data input", async function() { + it("can convert a parameter to data input", async function () { const parameter = new PointParameter(wps, { id: "foo" }); diff --git a/test/Models/Catalog/Ows/WebProcessingServiceCatalogGroupSpec.ts b/test/Models/Catalog/Ows/WebProcessingServiceCatalogGroupSpec.ts index 853cd83a59e..0cadba41c93 100644 --- a/test/Models/Catalog/Ows/WebProcessingServiceCatalogGroupSpec.ts +++ b/test/Models/Catalog/Ows/WebProcessingServiceCatalogGroupSpec.ts @@ -7,11 +7,11 @@ import "../../../SpecMain"; const GetCapabilitiesXml = require("raw-loader!../../../../wwwroot/test/WPS/GetCapabilities.xml"); -describe("WebProcessingServiceCatalogGroup", function() { +describe("WebProcessingServiceCatalogGroup", function () { let terria: Terria; let wpsGroup: WebProcessingServiceCatalogGroup; - beforeEach(function() { + beforeEach(function () { terria = new Terria(); wpsGroup = new WebProcessingServiceCatalogGroup("test", terria); }); @@ -20,19 +20,19 @@ describe("WebProcessingServiceCatalogGroup", function() { jasmine.Ajax.install(); }); - afterEach(function() { + afterEach(function () { jasmine.Ajax.uninstall(); }); - it("should have a type and typeName", function() { + it("should have a type and typeName", function () { expect(wpsGroup.type).toBe("wps-getCapabilities"); expect(wpsGroup.typeName).toBe( i18next.t("models.webProcessingServiceCatalogGroup.typeName") ); }); - describe("loadMembers", async function() { - it("fetches the getCapabilities XML", async function() { + describe("loadMembers", async function () { + it("fetches the getCapabilities XML", async function () { wpsGroup.setTrait(CommonStrata.user, "url", "http://test/wps"); jasmine.Ajax.stubRequest( "http://test/wps?service=WPS&request=GetCapabilities&version=1.0.0" @@ -50,7 +50,7 @@ describe("WebProcessingServiceCatalogGroup", function() { expect(request.method).toEqual("GET"); }); - it("proxies the request when proxy is enabled", async function() { + it("proxies the request when proxy is enabled", async function () { wpsGroup.setTrait(CommonStrata.user, "url", "http://test/wps"); wpsGroup.setTrait(CommonStrata.user, "forceProxy", true); jasmine.Ajax.stubRequest( @@ -65,7 +65,7 @@ describe("WebProcessingServiceCatalogGroup", function() { ); }); - it("throws a TerriaError if no URL is defined", async function() { + it("throws a TerriaError if no URL is defined", async function () { wpsGroup.setTrait(CommonStrata.user, "url", undefined); let error = (await wpsGroup.loadMembers()).error; @@ -73,8 +73,8 @@ describe("WebProcessingServiceCatalogGroup", function() { }); }); - describe("after loading metadata", function() { - beforeEach(async function() { + describe("after loading metadata", function () { + beforeEach(async function () { jasmine.Ajax.stubRequest( "http://test/wps?service=WPS&request=GetCapabilities&version=1.0.0" ).andReturn({ @@ -84,11 +84,11 @@ describe("WebProcessingServiceCatalogGroup", function() { await wpsGroup.loadMetadata(); }); - it("has a name", function() { + it("has a name", function () { expect(wpsGroup.name).toEqual("AWAVEA WPS service"); }); - it("populates info", function() { + it("populates info", function () { expect( wpsGroup.info.map(({ name, content }) => ({ name, @@ -105,8 +105,8 @@ describe("WebProcessingServiceCatalogGroup", function() { }); }); - describe("after loading members", function() { - beforeEach(async function() { + describe("after loading members", function () { + beforeEach(async function () { jasmine.Ajax.stubRequest( "http://test/wps?service=WPS&request=GetCapabilities&version=1.0.0" ).andReturn({ @@ -116,37 +116,37 @@ describe("WebProcessingServiceCatalogGroup", function() { await wpsGroup.loadMembers(); }); - it("creates a member for every process", async function() { + it("creates a member for every process", async function () { expect(wpsGroup.members.length).toEqual(12); }); - describe("member", function() { + describe("member", function () { let member: WebProcessingServiceCatalogFunction; - beforeEach(function() { + beforeEach(function () { member = wpsGroup .memberModels[0] as WebProcessingServiceCatalogFunction; }); - it("has a url", function() { + it("has a url", function () { expect(member.url).toBe("http://test/wps"); }); - it("has an identifier", function() { + it("has an identifier", function () { expect(member.identifier).toBe("monthly-variations"); }); - it("has a name", function() { + it("has a name", function () { expect(member.name).toBe("Wave: Monthly Mean [hs,t0m1]"); }); - it("has a description", function() { + it("has a description", function () { expect(member.description).toMatch( /This process operates on the variables Mean Wave Direction/ ); }); - it("inherits itemProperties from parent", async function() { + it("inherits itemProperties from parent", async function () { wpsGroup.setTrait(CommonStrata.user, "itemProperties", { parameters: { test: "123" } }); diff --git a/test/Models/Catalog/Ows/WebProcessingServiceCatalogJobSpec.ts b/test/Models/Catalog/Ows/WebProcessingServiceCatalogJobSpec.ts index 3a142174e97..314fa382055 100644 --- a/test/Models/Catalog/Ows/WebProcessingServiceCatalogJobSpec.ts +++ b/test/Models/Catalog/Ows/WebProcessingServiceCatalogJobSpec.ts @@ -16,10 +16,10 @@ configure({ computedRequiresReaction: true }); -describe("WebProcessingServiceCatalogFunctionJob", function() { +describe("WebProcessingServiceCatalogFunctionJob", function () { let item: WebProcessingServiceCatalogFunctionJob; - beforeEach(function() { + beforeEach(function () { const terria = initTerria(); item = new WebProcessingServiceCatalogFunctionJob("test", terria); runInAction(() => { @@ -45,21 +45,21 @@ describe("WebProcessingServiceCatalogFunctionJob", function() { ).andReturn({ responseText: regionMapping }); }); - afterEach(function() { + afterEach(function () { jasmine.Ajax.uninstall(); }); - it("has a type & typeName", function() { + it("has a type & typeName", function () { expect(WebProcessingServiceCatalogFunctionJob.type).toBe("wps-result"); expect(item.typeName).toBe( i18next.t("models.webProcessingService.wpsResult") ); }); - describe("after loading metadata", function() { - it("correctly defines `Inputs` in info", async function() { + describe("after loading metadata", function () { + it("correctly defines `Inputs` in info", async function () { await item.loadMetadata(); - const inputSection = item.info.find(info => info.name == "Inputs"); + const inputSection = item.info.find((info) => info.name == "Inputs"); expect(inputSection).toBeDefined(); if (isDefined(inputSection)) { expect(inputSection.content).toMatch(/point/); @@ -67,13 +67,13 @@ describe("WebProcessingServiceCatalogFunctionJob", function() { } }); - it("sets the featureInfoTemplate", async function() { + it("sets the featureInfoTemplate", async function () { await item.loadMetadata(); expect(item.featureInfoTemplate.template).toBeDefined(); }); - describe("shortReportSections", function() { - it("adds a shortReport for LiteralData output", async function() { + describe("shortReportSections", function () { + it("adds a shortReport for LiteralData output", async function () { item.setTrait(CommonStrata.user, "wpsResponse", { ProcessOutputs: { Output: { Title: "Sum", Data: { LiteralData: "4242" } } @@ -81,7 +81,7 @@ describe("WebProcessingServiceCatalogFunctionJob", function() { }); await item.loadMetadata(); const shortReport = item.shortReportSections.find( - r => r.name === "Sum" + (r) => r.name === "Sum" ); expect(shortReport).toBeDefined(); if (isDefined(shortReport)) { diff --git a/test/Models/Catalog/SdmxJson/SdmxJsonCatalogGroupSpec.ts b/test/Models/Catalog/SdmxJson/SdmxJsonCatalogGroupSpec.ts index 039c3ac20b7..75424444832 100644 --- a/test/Models/Catalog/SdmxJson/SdmxJsonCatalogGroupSpec.ts +++ b/test/Models/Catalog/SdmxJson/SdmxJsonCatalogGroupSpec.ts @@ -20,11 +20,11 @@ const dataflowRegion = JSON.stringify( require("../../../../wwwroot/test/SDMX-JSON/dataflow-region.json") ); -describe("SdmxCatalogGroup", function() { +describe("SdmxCatalogGroup", function () { let terria: Terria; let sdmxGroup: SdmxCatalogGroup; - beforeEach(function() { + beforeEach(function () { jasmine.Ajax.install(); jasmine.Ajax.stubRequest("http://www.example.com/agencyscheme/").andReturn({ responseText: agencyScheme @@ -45,22 +45,22 @@ describe("SdmxCatalogGroup", function() { sdmxGroup = new SdmxCatalogGroup("test", terria); }); - afterEach(function() { + afterEach(function () { jasmine.Ajax.uninstall(); }); - it("has a type", function() { + it("has a type", function () { expect(sdmxGroup.type).toBe("sdmx-group"); }); - describe("after loading agency + category schemes", function() { - beforeEach(async function() { + describe("after loading agency + category schemes", function () { + beforeEach(async function () { runInAction(() => { sdmxGroup.setTrait("definition", "url", "http://www.example.com"); }); }); - it("loadsNestedMembers", async function() { + it("loadsNestedMembers", async function () { await sdmxGroup.loadMembers(); const agency = sdmxGroup.memberModels; expect(agency.length).toEqual(2); @@ -78,7 +78,7 @@ describe("SdmxCatalogGroup", function() { expect(dataflowRegion.name).toBe("Inflation rates"); }); - it("loadsDataflow-timeseries", async function() { + it("loadsDataflow-timeseries", async function () { await sdmxGroup.loadMembers(); const agency = sdmxGroup.memberModels; const categoryScheme = agency[0] as CatalogGroup; @@ -91,13 +91,13 @@ describe("SdmxCatalogGroup", function() { "Nominal prices in USD for selected key international commodity prices relevant to Pacific Island Countries and Territories, extracted from World bank Commodity Prices (« pink sheets ») and from FAO GLOBEFISH European Fish Price Report." ); expect( - dataflowNoRegion.columns.filter(col => col.type === "region").length + dataflowNoRegion.columns.filter((col) => col.type === "region").length ).toBe(0); expect( - dataflowNoRegion.columns.filter(col => col.type === "time").length + dataflowNoRegion.columns.filter((col) => col.type === "time").length ).toBe(1); expect( - dataflowNoRegion.columns.filter(col => col.type === "time")[0]?.name + dataflowNoRegion.columns.filter((col) => col.type === "time")[0]?.name ).toBe("TIME_PERIOD"); expect(dataflowNoRegion.activeStyle).toBe("OBS_VALUE"); @@ -111,7 +111,7 @@ describe("SdmxCatalogGroup", function() { expect(dataflowNoRegion.columns[0].name).toBe("OBS_VALUE"); }); - it("loadsDataflow-region", async function() { + it("loadsDataflow-region", async function () { await sdmxGroup.loadMembers(); const agency = sdmxGroup.memberModels; const categoryScheme = agency[0] as CatalogGroup; @@ -125,13 +125,13 @@ describe("SdmxCatalogGroup", function() { ); // No concept override - so expect 0 region dimensions expect( - dataflowRegion.columns.filter(col => col.type === "region").length + dataflowRegion.columns.filter((col) => col.type === "region").length ).toBe(0); expect( - dataflowRegion.columns.filter(col => col.type === "time").length + dataflowRegion.columns.filter((col) => col.type === "time").length ).toBe(1); expect( - dataflowRegion.columns.filter(col => col.type === "time")[0]?.name + dataflowRegion.columns.filter((col) => col.type === "time")[0]?.name ).toBe("TIME_PERIOD"); expect(dataflowRegion.activeStyle).toBe("OBS_VALUE"); diff --git a/test/Models/Catalog/SdmxJson/SdmxJsonCatalogItemSpec.ts b/test/Models/Catalog/SdmxJson/SdmxJsonCatalogItemSpec.ts index 40d1a415f73..d27b47aea4a 100644 --- a/test/Models/Catalog/SdmxJson/SdmxJsonCatalogItemSpec.ts +++ b/test/Models/Catalog/SdmxJson/SdmxJsonCatalogItemSpec.ts @@ -34,11 +34,11 @@ const dataflowRegionTime = JSON.stringify( require("../../../../wwwroot/test/SDMX-JSON/dataflow-region-time.json") ); -describe("SdmxJsonCatalogItem", function() { +describe("SdmxJsonCatalogItem", function () { let terria: Terria; let sdmxItem: SdmxJsonCatalogItem; - beforeEach(async function() { + beforeEach(async function () { jasmine.Ajax.install(); jasmine.Ajax.stubRequest( @@ -84,15 +84,15 @@ describe("SdmxJsonCatalogItem", function() { await sdmxItem.loadRegionProviderList(); }); - afterEach(function() { + afterEach(function () { jasmine.Ajax.uninstall(); }); - it("has a type", function() { + it("has a type", function () { expect(sdmxItem.type).toBe("sdmx-json"); }); - it("loadsDataflow-timeseries", async function() { + it("loadsDataflow-timeseries", async function () { runInAction(() => { sdmxItem.setTrait("definition", "agencyId", "SPC"); sdmxItem.setTrait("definition", "dataflowId", "DF_COMMODITY_PRICES"); @@ -105,11 +105,13 @@ describe("SdmxJsonCatalogItem", function() { "Nominal prices in USD for selected key international commodity prices relevant to Pacific Island Countries and Territories, extracted from World bank Commodity Prices (« pink sheets ») and from FAO GLOBEFISH European Fish Price Report." ); - expect(sdmxItem.columns.filter(col => col.type === "region").length).toBe( + expect(sdmxItem.columns.filter((col) => col.type === "region").length).toBe( 0 ); - expect(sdmxItem.columns.filter(col => col.type === "time").length).toBe(1); - expect(sdmxItem.columns.filter(col => col.type === "time")[0]?.name).toBe( + expect(sdmxItem.columns.filter((col) => col.type === "time").length).toBe( + 1 + ); + expect(sdmxItem.columns.filter((col) => col.type === "time")[0]?.name).toBe( "TIME_PERIOD" ); expect(sdmxItem.activeStyle).toBe("OBS_VALUE"); @@ -123,7 +125,7 @@ describe("SdmxJsonCatalogItem", function() { expect(sdmxItem.columns.length).toBe(8); expect(sdmxItem.columns[0].name).toBe("OBS_VALUE"); - expect(sdmxItem.columns.map(col => col.type)).toEqual([ + expect(sdmxItem.columns.map((col) => col.type)).toEqual([ "scalar", "hidden", "hidden", @@ -135,14 +137,13 @@ describe("SdmxJsonCatalogItem", function() { ]); }); - it("loadsDataflow-region-conceptoverride", async function() { + it("loadsDataflow-region-conceptoverride", async function () { runInAction(() => { sdmxItem.setTrait("definition", "agencyId", "SPC"); sdmxItem.setTrait("definition", "dataflowId", "DF_CPI"); sdmxItem.setTrait("definition", "modelOverrides", [ createStratumInstance(ModelOverrideTraits, { - id: - "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=SPC:CS_COMMON(2.0).GEO_PICT", + id: "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=SPC:CS_COMMON(2.0).GEO_PICT", type: "region", regionType: "CNT2" }) @@ -160,22 +161,25 @@ describe("SdmxJsonCatalogItem", function() { "Inflation rates for the Pacific island countries and territories per year." ); - expect(sdmxItem.columns.filter(col => col.type === "region").length).toBe( + expect(sdmxItem.columns.filter((col) => col.type === "region").length).toBe( 1 ); - expect(sdmxItem.columns.filter(col => col.type === "region")[0].name).toBe( - "GEO_PICT" - ); + expect( + sdmxItem.columns.filter((col) => col.type === "region")[0].name + ).toBe("GEO_PICT"); expect(sdmxItem.activeTableStyle.regionColumn).toBeDefined(); expect(sdmxItem.activeTableStyle.regionColumn?.regionType).toBeTruthy( "CNT2" ); expect( - sdmxItem.selectableDimensions.find(dim => dim.id === "GEO_PICT")?.disable + sdmxItem.selectableDimensions.find((dim) => dim.id === "GEO_PICT") + ?.disable ).toBeTruthy(); - expect(sdmxItem.columns.filter(col => col.type === "time").length).toBe(1); - expect(sdmxItem.columns.filter(col => col.type === "time")[0]?.name).toBe( + expect(sdmxItem.columns.filter((col) => col.type === "time").length).toBe( + 1 + ); + expect(sdmxItem.columns.filter((col) => col.type === "time")[0]?.name).toBe( "TIME_PERIOD" ); expect(sdmxItem.activeStyle).toBe("OBS_VALUE"); @@ -192,14 +196,13 @@ describe("SdmxJsonCatalogItem", function() { expect(sdmxItem.columns[0].name).toBe("OBS_VALUE"); }); - it("loadsDataflow-region-metadataUrls", async function() { + it("loadsDataflow-region-metadataUrls", async function () { runInAction(() => { sdmxItem.setTrait("definition", "agencyId", "SPC"); sdmxItem.setTrait("definition", "dataflowId", "DF_CPI"); sdmxItem.setTrait("definition", "modelOverrides", [ createStratumInstance(ModelOverrideTraits, { - id: - "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=SPC:CS_COMMON(2.0).GEO_PICT", + id: "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=SPC:CS_COMMON(2.0).GEO_PICT", type: "region", regionType: "CNT2" }) @@ -218,14 +221,13 @@ describe("SdmxJsonCatalogItem", function() { ); }); - it("uses SDMX common concepts", async function() { + it("uses SDMX common concepts", async function () { runInAction(() => { sdmxItem.setTrait("definition", "agencyId", "ABS"); sdmxItem.setTrait("definition", "dataflowId", "RT"); sdmxItem.setTrait("definition", "modelOverrides", [ createStratumInstance(ModelOverrideTraits, { - id: - "urn:sdmx:org.sdmx.infomodel.codelist.Codelist=ABS:CL_STATE(1.0.0)", + id: "urn:sdmx:org.sdmx.infomodel.codelist.Codelist=ABS:CL_STATE(1.0.0)", type: "region", regionType: "STE_2016" }) @@ -240,19 +242,19 @@ describe("SdmxJsonCatalogItem", function() { expect(sdmxItem.mapItems.length).toBe(1); - expect(sdmxItem.columns.filter(col => col.type === "region").length).toBe( + expect(sdmxItem.columns.filter((col) => col.type === "region").length).toBe( 1 ); - expect(sdmxItem.columns.filter(col => col.type === "region")[0].name).toBe( - "REGION" - ); + expect( + sdmxItem.columns.filter((col) => col.type === "region")[0].name + ).toBe("REGION"); expect(sdmxItem.activeTableStyle.regionColumn).toBeDefined(); expect(sdmxItem.activeTableStyle.regionColumn?.regionType).toBeTruthy( "STE_2016" ); expect(sdmxItem.activeStyle).toBe("OBS_VALUE"); - const primaryCol = sdmxItem.columns.find(col => col.name === "OBS_VALUE"); + const primaryCol = sdmxItem.columns.find((col) => col.name === "OBS_VALUE"); expect(primaryCol).toBeDefined(); expect(primaryCol?.transformation.expression).toBe("x*(10^UNIT_MULT)"); @@ -262,7 +264,7 @@ describe("SdmxJsonCatalogItem", function() { ); }); - it("handles single region gracefully", async function() { + it("handles single region gracefully", async function () { jasmine.Ajax.stubRequest( "http://www.example.com/data/RT/M1.20.10..M" ).andReturn({ responseText: dataflowSingleRegionTimeData }); @@ -272,8 +274,7 @@ describe("SdmxJsonCatalogItem", function() { sdmxItem.setTrait("definition", "dataflowId", "RT"); sdmxItem.setTrait("definition", "modelOverrides", [ createStratumInstance(ModelOverrideTraits, { - id: - "urn:sdmx:org.sdmx.infomodel.codelist.Codelist=ABS:CL_STATE(1.0.0)", + id: "urn:sdmx:org.sdmx.infomodel.codelist.Codelist=ABS:CL_STATE(1.0.0)", type: "region", regionType: "STE_2016" }) @@ -291,7 +292,7 @@ describe("SdmxJsonCatalogItem", function() { expect(sdmxItem.activeTableStyle.regionColumn).toBeUndefined(); const regionCol = sdmxItem.tableColumns.filter( - col => col.type === TableColumnType.region + (col) => col.type === TableColumnType.region )[0]; expect(regionCol).toBeDefined(); diff --git a/test/Models/Catalog/createCombinedModelSpec.ts b/test/Models/Catalog/createCombinedModelSpec.ts index e1ac103ad74..b196316db4b 100644 --- a/test/Models/Catalog/createCombinedModelSpec.ts +++ b/test/Models/Catalog/createCombinedModelSpec.ts @@ -6,17 +6,17 @@ import TraitsForTesting from "../../Types/TraitsForTesting"; const ModelClass = CreateModel(TraitsForTesting); -describe("createCombinedModel", function() { +describe("createCombinedModel", function () { let top = new ModelClass(undefined, new Terria()); let bottom = new ModelClass(undefined, new Terria()); - beforeEach(function() { + beforeEach(function () { top = new ModelClass(undefined, new Terria()); bottom = new ModelClass(undefined, new Terria()); }); - describe("primitive traits", function() { - it("includes properties from both models", function() { + describe("primitive traits", function () { + it("includes properties from both models", function () { runInAction(() => { top.setTrait("definition", "withoutDefault", 10); bottom.setTrait("definition", "someBool", false); @@ -27,7 +27,7 @@ describe("createCombinedModel", function() { expect(combined.someBool).toBe(false); }); - it("overrides bottom with top", function() { + it("overrides bottom with top", function () { runInAction(() => { top.setTrait("definition", "withoutDefault", 10); bottom.setTrait("definition", "withoutDefault", 20); @@ -37,7 +37,7 @@ describe("createCombinedModel", function() { expect(combined.withoutDefault).toBe(10); }); - it("does not override bottom with top's defaults", function() { + it("does not override bottom with top's defaults", function () { runInAction(() => { bottom.setTrait("definition", "withDefault", 100); }); @@ -46,14 +46,14 @@ describe("createCombinedModel", function() { expect(combined.withDefault).toBe(100); }); - it("has default if neither top nor bottom have a value", function() { + it("has default if neither top nor bottom have a value", function () { const combined = createCombinedModel(top, bottom); expect(combined.withDefault).toBe(10); }); }); - describe("object traits", function() { - it("combines nested objects", function() { + describe("object traits", function () { + it("combines nested objects", function () { runInAction(() => { top.nestedWithoutDefault.setTrait("definition", "withoutDefault", 100); bottom.nestedWithoutDefault.setTrait("definition", "withDefault", 99); @@ -64,7 +64,7 @@ describe("createCombinedModel", function() { expect(combined.nestedWithoutDefault.withDefault).toBe(99); }); - it("overrides bottom with top in nested objects", function() { + it("overrides bottom with top in nested objects", function () { runInAction(() => { top.nestedWithoutDefault.setTrait("definition", "withoutDefault", 100); bottom.nestedWithoutDefault.setTrait( @@ -78,7 +78,7 @@ describe("createCombinedModel", function() { expect(combined.nestedWithoutDefault.withoutDefault).toBe(100); }); - it("does not override bottom with top's defaults in nested objects", function() { + it("does not override bottom with top's defaults in nested objects", function () { runInAction(() => { bottom.nestedWithoutDefault.setTrait("definition", "withDefault", 100); }); @@ -87,14 +87,14 @@ describe("createCombinedModel", function() { expect(combined.nestedWithoutDefault.withDefault).toBe(100); }); - it("has default in nested object if neither top nor bottom have a value", function() { + it("has default in nested object if neither top nor bottom have a value", function () { const combined = createCombinedModel(top, bottom); expect(combined.nestedWithoutDefault.withDefault).toBe(10); }); }); - describe("object array traits", function() { - it("combines different objects in nested arrays", function() { + describe("object array traits", function () { + it("combines different objects in nested arrays", function () { runInAction(() => { top .addObject("definition", "nestedArrayWithoutDefault", "1")! @@ -110,7 +110,7 @@ describe("createCombinedModel", function() { expect(combined.nestedArrayWithoutDefault[1].withoutDefault).toBe(100); }); - it("combines different objects with the same ID", function() { + it("combines different objects with the same ID", function () { runInAction(() => { top .addObject("definition", "nestedArrayWithoutDefault", "1")! @@ -126,7 +126,7 @@ describe("createCombinedModel", function() { expect(combined.nestedArrayWithoutDefault[0].another).toBe("test"); }); - it("overrides bottom with top in nested objects", function() { + it("overrides bottom with top in nested objects", function () { runInAction(() => { top .addObject("definition", "nestedArrayWithoutDefault", "1")! @@ -140,7 +140,7 @@ describe("createCombinedModel", function() { expect(combined.nestedArrayWithoutDefault[0].withoutDefault).toBe(100); }); - it("does not override bottom with top's defaults in nested objects", function() { + it("does not override bottom with top's defaults in nested objects", function () { runInAction(() => { top.addObject("definition", "nestedArrayWithoutDefault", "1"); bottom @@ -154,7 +154,7 @@ describe("createCombinedModel", function() { ); }); - it("has default in nested object if neither top nor bottom have a value", function() { + it("has default in nested object if neither top nor bottom have a value", function () { runInAction(() => { top.addObject("definition", "nestedArrayWithoutDefault", "1"); bottom.addObject("definition", "nestedArrayWithoutDefault", "1"); @@ -164,7 +164,7 @@ describe("createCombinedModel", function() { expect(combined.nestedWithoutDefault.anotherWithDefault).toBe("default"); }); - it("handles addObject if idProperty = index", function() { + it("handles addObject if idProperty = index", function () { runInAction(() => { top .addObject("definition", "nestedArrayWithoutIdProperty") diff --git a/test/Models/Catalog/createUrlReferenceFromUrlSpec.ts b/test/Models/Catalog/createUrlReferenceFromUrlSpec.ts index 9aa4874ff45..f22aa59321f 100644 --- a/test/Models/Catalog/createUrlReferenceFromUrlSpec.ts +++ b/test/Models/Catalog/createUrlReferenceFromUrlSpec.ts @@ -22,17 +22,17 @@ const Water_Network = { ) }; -describe("createUrlReferenceFromUrl", function() { +describe("createUrlReferenceFromUrl", function () { let terria: Terria; let viewState: ViewState; - beforeEach(function() { + beforeEach(function () { terria = new Terria({ baseUrl: "./" }); }); - it("should create an item of the first registered type (WMSGroup)", async function() { + it("should create an item of the first registered type (WMSGroup)", async function () { const url = "test/WMS/single_metadata_url.xml"; const item = await createUrlReferenceFromUrl(url, terria, true); expect(item).toBeDefined(); @@ -45,7 +45,7 @@ describe("createUrlReferenceFromUrl", function() { } }); - it("should create an item of the second registered type (GeoJSON)", async function() { + it("should create an item of the second registered type (GeoJSON)", async function () { const url = "test/geoJSON/bike_racks.geojson"; const item = await createUrlReferenceFromUrl(url, terria, true); @@ -58,7 +58,7 @@ describe("createUrlReferenceFromUrl", function() { } }); - it("should create an catalog item (CSVCatalogItem) from Url without specifying a dataType", async function() { + it("should create an catalog item (CSVCatalogItem) from Url without specifying a dataType", async function () { const url = "test/csv/lat_lon_val.csv"; const item = await createCatalogItemFromFileOrUrl(terria, viewState, url); @@ -68,7 +68,7 @@ describe("createUrlReferenceFromUrl", function() { } }); - it("should create an catalog item (CSVCatalogItem) from File (csv) without specifying a dataType", async function() { + it("should create an catalog item (CSVCatalogItem) from File (csv) without specifying a dataType", async function () { const fileUrl = "test/csv/lat_lon_val.csv"; const blob = await loadBlob(fileUrl); @@ -83,7 +83,7 @@ describe("createUrlReferenceFromUrl", function() { } }); - it("should create an item that has the USER_ADDED_CATEGORY_ID in its knownContainerUniqueIds", async function() { + it("should create an item that has the USER_ADDED_CATEGORY_ID in its knownContainerUniqueIds", async function () { const url = "test/csv/lat_lon_val.csv"; const item = await createUrlReferenceFromUrl(url, terria, true); expect(item).toBeDefined(); @@ -92,12 +92,12 @@ describe("createUrlReferenceFromUrl", function() { } }); - describe("with a FeatureServer URL", function() { + describe("with a FeatureServer URL", function () { const featureServerUrl = "http://example.com/arcgis/rest/services/Water_Network/FeatureServer/2"; let reference: UrlReference; - beforeEach(async function() { + beforeEach(async function () { jasmine.Ajax.install(); // Fail all requests by default. jasmine.Ajax.stubRequest(/.*/).andError({}); @@ -120,16 +120,16 @@ describe("createUrlReferenceFromUrl", function() { reference = tempReference; }); - afterEach(function() { + afterEach(function () { jasmine.Ajax.uninstall(); }); - it("has a name and url on the reference", function() { + it("has a name and url on the reference", function () { expect(reference.name).toBe(featureServerUrl); expect(reference.url).toBe(featureServerUrl); }); - it("resolves to an ArcGisFeatureServerCatalogItem which can load map items", async function() { + it("resolves to an ArcGisFeatureServerCatalogItem which can load map items", async function () { expect(reference.target).toBeDefined(); if (isDefined(reference.target)) { expect( diff --git a/test/Models/Catalog/esri/ArcGisCatalogGroupSpec.ts b/test/Models/Catalog/esri/ArcGisCatalogGroupSpec.ts index 90f5d4377ac..d724d987b1f 100644 --- a/test/Models/Catalog/esri/ArcGisCatalogGroupSpec.ts +++ b/test/Models/Catalog/esri/ArcGisCatalogGroupSpec.ts @@ -25,7 +25,7 @@ interface ExtendedLoadWithXhr { const loadWithXhr: ExtendedLoadWithXhr = _loadWithXhr; -describe("ArcGisCatalogGroup", function() { +describe("ArcGisCatalogGroup", function () { const arcgisServerUrl = "http://example.com/arcgis/rest/services/"; const arcgisMapServerUrl = "http://example.com/arcgis/rest/services/Redlands_Emergency_Vehicles/MapServer"; @@ -34,7 +34,7 @@ describe("ArcGisCatalogGroup", function() { let terria: Terria; let group: ArcGisCatalogGroup; - beforeEach(function() { + beforeEach(function () { terria = new Terria({ baseUrl: "./" }); @@ -42,7 +42,7 @@ describe("ArcGisCatalogGroup", function() { const realLoadWithXhr = loadWithXhr.load; // We replace calls to real servers with pre-captured JSON files so our testing is isolated, but reflects real data. - spyOn(loadWithXhr, "load").and.callFake(function(...args: any[]) { + spyOn(loadWithXhr, "load").and.callFake(function (...args: any[]) { let url = args[0]; if (url.match("Redlands_Emergency_Vehicles/MapServer")) { url = url.replace(/^.*\/MapServer/, "MapServer"); @@ -88,13 +88,13 @@ describe("ArcGisCatalogGroup", function() { }); }); - it("has a type and typeName", function() { + it("has a type and typeName", function () { expect(group.type).toBe("esri-group"); expect(group.typeName).toBe(i18next.t("models.arcGisService.name")); }); - describe("loadMembers", function() { - it("properly creates members", async function() { + describe("loadMembers", function () { + it("properly creates members", async function () { runInAction(() => { group.setTrait(CommonStrata.definition, "url", arcgisServerUrl); }); @@ -192,14 +192,14 @@ describe("ArcGisCatalogGroup", function() { }); }); - describe("loading mapserver", function() { - beforeEach(async function() { + describe("loading mapserver", function () { + beforeEach(async function () { runInAction(() => { group.setTrait("definition", "url", arcgisMapServerUrl); }); await group.loadMetadata(); }); - it("proper init", function() { + it("proper init", function () { const arcgisServerStratum = ( group.strata.get(MapServerStratum.stratumName) ); @@ -208,14 +208,14 @@ describe("ArcGisCatalogGroup", function() { }); }); - describe("loading featureServer of mapServer", function() { - beforeEach(async function() { + describe("loading featureServer of mapServer", function () { + beforeEach(async function () { runInAction(() => { group.setTrait("definition", "url", arcgisFeatureServerUrl); }); await group.loadMetadata(); }); - it("proper init", function() { + it("proper init", function () { const arcgisServerStratum = ( group.strata.get(FeatureServerStratum.stratumName) ); diff --git a/test/Models/Catalog/esri/ArcGisFeatureServerCatalogGroupSpec.ts b/test/Models/Catalog/esri/ArcGisFeatureServerCatalogGroupSpec.ts index 03e19a79ab5..e6fb5931e7c 100644 --- a/test/Models/Catalog/esri/ArcGisFeatureServerCatalogGroupSpec.ts +++ b/test/Models/Catalog/esri/ArcGisFeatureServerCatalogGroupSpec.ts @@ -18,13 +18,13 @@ interface ExtendedLoadWithXhr { const loadWithXhr: ExtendedLoadWithXhr = _loadWithXhr; -describe("ArcGisFeatureServerCatalogGroup", function() { +describe("ArcGisFeatureServerCatalogGroup", function () { const featureServerUrl = "http://example.com/arcgis/rest/services/Redlands_Emergency_Vehicles/FeatureServer"; let terria: Terria; let group: ArcGisFeatureServerCatalogGroup; - beforeEach(function() { + beforeEach(function () { terria = new Terria({ baseUrl: "./" }); @@ -32,7 +32,7 @@ describe("ArcGisFeatureServerCatalogGroup", function() { const realLoadWithXhr = loadWithXhr.load; // We replace calls to real servers with pre-captured JSON files so our testing is isolated, but reflects real data. - spyOn(loadWithXhr, "load").and.callFake(function(...args: any[]) { + spyOn(loadWithXhr, "load").and.callFake(function (...args: any[]) { let url = args[0]; if (url.match("Redlands_Emergency_Vehicles/FeatureServer")) { url = url.replace(/^.*\/FeatureServer/, "FeatureServer"); @@ -44,22 +44,22 @@ describe("ArcGisFeatureServerCatalogGroup", function() { }); }); - it("has a type and typeName", function() { + it("has a type and typeName", function () { expect(group.type).toBe("esri-featureServer-group"); expect(group.typeName).toBe( i18next.t("models.arcGisFeatureServerCatalogGroup.name") ); }); - describe("after loading metadata", function() { - beforeEach(async function() { + describe("after loading metadata", function () { + beforeEach(async function () { runInAction(() => { group.setTrait("definition", "url", featureServerUrl); }); await group.loadMetadata(); }); - it("defines info", function() { + it("defines info", function () { const serviceDescription = i18next.t( "models.arcGisFeatureServerCatalogGroup.serviceDescription" ); @@ -83,8 +83,8 @@ describe("ArcGisFeatureServerCatalogGroup", function() { }); }); - describe("loadMembers", function() { - it("properly creates members", async function() { + describe("loadMembers", function () { + it("properly creates members", async function () { runInAction(() => { group.setTrait(CommonStrata.definition, "url", featureServerUrl); }); diff --git a/test/Models/Catalog/esri/ArcGisFeatureServerCatalogItemSpec.ts b/test/Models/Catalog/esri/ArcGisFeatureServerCatalogItemSpec.ts index 426a0a79718..5774a7f4d6c 100644 --- a/test/Models/Catalog/esri/ArcGisFeatureServerCatalogItemSpec.ts +++ b/test/Models/Catalog/esri/ArcGisFeatureServerCatalogItemSpec.ts @@ -21,7 +21,7 @@ interface ExtendedLoadWithXhr { const loadWithXhr: ExtendedLoadWithXhr = _loadWithXhr; -describe("ArcGisFeatureServerCatalogItem", function() { +describe("ArcGisFeatureServerCatalogItem", function () { const featureServerUrl = "http://example.com/arcgis/rest/services/Water_Network/FeatureServer/2"; @@ -39,7 +39,7 @@ describe("ArcGisFeatureServerCatalogItem", function() { let xhrSpy: jasmine.Spy; - beforeEach(function() { + beforeEach(function () { terria = new Terria({ baseUrl: "./" }); @@ -87,26 +87,26 @@ describe("ArcGisFeatureServerCatalogItem", function() { }); }); - it("has a type and typeName", function() { + it("has a type and typeName", function () { expect(item.type).toBe("esri-featureServer"); expect(item.typeName).toBe( i18next.t("models.arcGisFeatureServerCatalogItem.name") ); }); - it("supports show info", function() { + it("supports show info", function () { expect(item.disableAboutData).toBeFalsy(); }); - describe("after loading metadata", function() { - beforeEach(async function() { + describe("after loading metadata", function () { + beforeEach(async function () { runInAction(() => { item.setTrait("definition", "url", featureServerUrl); }); await item.loadMetadata(); }); - it("defines a rectangle", function() { + it("defines a rectangle", function () { expect(item.rectangle).toBeDefined(); if (item.rectangle) { expect(item.rectangle.west).toEqual(-179.999987937519); @@ -116,11 +116,11 @@ describe("ArcGisFeatureServerCatalogItem", function() { } }); - it("supports zooming to extent", async function() { + it("supports zooming to extent", async function () { expect(item.disableZoomTo).toBeFalsy(); }); - it("defines info", function() { + it("defines info", function () { const dataDescription = i18next.t( "models.arcGisMapServerCatalogItem.dataDescription" ); @@ -139,8 +139,8 @@ describe("ArcGisFeatureServerCatalogItem", function() { }); }); - describe("loadMapItems", function() { - it("properly loads a single layer", async function() { + describe("loadMapItems", function () { + it("properly loads a single layer", async function () { runInAction(() => { item.setTrait(CommonStrata.definition, "url", featureServerUrl); item.setTrait(CommonStrata.definition, "maxFeatures", 20); @@ -161,7 +161,7 @@ describe("ArcGisFeatureServerCatalogItem", function() { expect(xhrSpy).toHaveBeenCalledTimes(2); }); - it("properly loads a single layer with multiple requests", async function() { + it("properly loads a single layer with multiple requests", async function () { runInAction(() => { item.setTrait(CommonStrata.definition, "url", featureServerUrlMulti); item.setTrait(CommonStrata.definition, "featuresPerRequest", 10); @@ -182,8 +182,8 @@ describe("ArcGisFeatureServerCatalogItem", function() { }); }); - describe("updateEntityWithEsriStyle", function() { - it("correctly uses symbol.outline.color to style polyline.", async function() { + describe("updateEntityWithEsriStyle", function () { + it("correctly uses symbol.outline.color to style polyline.", async function () { runInAction(() => { item.setTrait(CommonStrata.definition, "url", featureServerUrl2); item.setTrait(CommonStrata.definition, "maxFeatures", 20); @@ -211,8 +211,8 @@ describe("ArcGisFeatureServerCatalogItem", function() { }); }); - describe("esriSLS", function() { - it("properly loads features", async function() { + describe("esriSLS", function () { + it("properly loads features", async function () { runInAction(() => { item.setTrait( CommonStrata.definition, @@ -231,7 +231,7 @@ describe("ArcGisFeatureServerCatalogItem", function() { expect(item.featureCounts.line).toEqual(13); }); - it("properly styles features", async function() { + it("properly styles features", async function () { runInAction(() => { item.setTrait( CommonStrata.definition, @@ -249,7 +249,7 @@ describe("ArcGisFeatureServerCatalogItem", function() { expect(tableStyle.colorColumn?.name).toBe("id1"); expect(tableStyle.colorTraits.nullColor).toBe("rgb(252,146,31)"); expect( - tableStyle.colorTraits.enumColors.map(col => ({ + tableStyle.colorTraits.enumColors.map((col) => ({ value: col.value, color: col.color })) diff --git a/test/Models/Catalog/esri/ArcGisMapServerCatalogGroupSpec.ts b/test/Models/Catalog/esri/ArcGisMapServerCatalogGroupSpec.ts index 6cb16a290b3..be3eb31dde2 100644 --- a/test/Models/Catalog/esri/ArcGisMapServerCatalogGroupSpec.ts +++ b/test/Models/Catalog/esri/ArcGisMapServerCatalogGroupSpec.ts @@ -18,7 +18,7 @@ interface ExtendedLoadWithXhr { const loadWithXhr: ExtendedLoadWithXhr = _loadWithXhr; -describe("ArcGisMapServerCatalogGroup", function() { +describe("ArcGisMapServerCatalogGroup", function () { const mapServerUrl = "http://example.com/arcgis/rest/services/Redlands_Emergency_Vehicles/MapServer"; const mapServerErrorUrl = @@ -26,7 +26,7 @@ describe("ArcGisMapServerCatalogGroup", function() { let terria: Terria; let group: ArcGisMapServerCatalogGroup; - beforeEach(function() { + beforeEach(function () { terria = new Terria({ baseUrl: "./" }); @@ -34,7 +34,7 @@ describe("ArcGisMapServerCatalogGroup", function() { const realLoadWithXhr = loadWithXhr.load; // We replace calls to real servers with pre-captured JSON files so our testing is isolated, but reflects real data. - spyOn(loadWithXhr, "load").and.callFake(function(...args: any[]) { + spyOn(loadWithXhr, "load").and.callFake(function (...args: any[]) { let url = args[0]; if (url.match("Redlands_Emergency_Vehicles/MapServer")) { @@ -48,22 +48,22 @@ describe("ArcGisMapServerCatalogGroup", function() { }); }); - it("has a type and typeName", function() { + it("has a type and typeName", function () { expect(group.type).toBe("esri-mapServer-group"); expect(group.typeName).toBe( i18next.t("models.arcGisMapServerCatalogGroup.name") ); }); - describe("after loading metadata", function() { - beforeEach(async function() { + describe("after loading metadata", function () { + beforeEach(async function () { runInAction(() => { group.setTrait("definition", "url", mapServerUrl); }); await group.loadMetadata(); }); - it("defines info", function() { + it("defines info", function () { const serviceDescription = i18next.t( "models.arcGisMapServerCatalogGroup.serviceDescription" ); @@ -87,8 +87,8 @@ describe("ArcGisMapServerCatalogGroup", function() { }); }); - describe("loadMembers", function() { - it("properly creates members", async function() { + describe("loadMembers", function () { + it("properly creates members", async function () { runInAction(() => { group.setTrait(CommonStrata.definition, "url", mapServerUrl); }); @@ -134,7 +134,7 @@ describe("ArcGisMapServerCatalogGroup", function() { expect(member5.url).toBe(mapServerUrl + "/27"); }); - it("throws error on unavailable url", async function() { + it("throws error on unavailable url", async function () { runInAction(() => { group.setTrait(CommonStrata.definition, "url", mapServerErrorUrl); }); @@ -144,7 +144,7 @@ describe("ArcGisMapServerCatalogGroup", function() { expect(error).toBeDefined("Load member should error"); }); - it("throws error if it's not mapserver ", async function() { + it("throws error if it's not mapserver ", async function () { runInAction(() => { group.setTrait(CommonStrata.definition, "url", mapServerErrorUrl); }); @@ -156,7 +156,7 @@ describe("ArcGisMapServerCatalogGroup", function() { }); }); -describe("ArcGisMapServerCatalogGroup creates its layer members with given traits", function() { +describe("ArcGisMapServerCatalogGroup creates its layer members with given traits", function () { const mapServerUrl = "http://example.com/arcgis/rest/services/Residential_Dwelling_Density/MapServer"; const rectangle = { east: 158, north: -8, south: -45, west: 109 }; @@ -173,7 +173,7 @@ describe("ArcGisMapServerCatalogGroup creates its layer members with given trait let terria: Terria; let group: ArcGisMapServerCatalogGroup; - beforeEach(function() { + beforeEach(function () { terria = new Terria({ baseUrl: "./" }); @@ -181,7 +181,7 @@ describe("ArcGisMapServerCatalogGroup creates its layer members with given trait const realLoadWithXhr = loadWithXhr.load; // We replace calls to real servers with pre-captured JSON files so our testing is isolated, but reflects real data. - spyOn(loadWithXhr, "load").and.callFake(function(...args: any[]) { + spyOn(loadWithXhr, "load").and.callFake(function (...args: any[]) { let url = args[0]; if (url.match("Residential_Dwelling_Density/MapServer")) { @@ -194,8 +194,8 @@ describe("ArcGisMapServerCatalogGroup creates its layer members with given trait }); }); - describe("loadMembers", function() { - it("properly creates members with parent's traits", async function() { + describe("loadMembers", function () { + it("properly creates members with parent's traits", async function () { runInAction(() => { group.setTrait(CommonStrata.definition, "url", mapServerUrl); group.setTrait(CommonStrata.definition, "itemProperties", { diff --git a/test/Models/Catalog/esri/ArcGisMapServerCatalogItemSpec.ts b/test/Models/Catalog/esri/ArcGisMapServerCatalogItemSpec.ts index 3176a8d4be2..68ad803eed9 100644 --- a/test/Models/Catalog/esri/ArcGisMapServerCatalogItemSpec.ts +++ b/test/Models/Catalog/esri/ArcGisMapServerCatalogItemSpec.ts @@ -20,18 +20,18 @@ interface ExtendedLoadWithXhr { const loadWithXhr: ExtendedLoadWithXhr = _loadWithXhr; -describe("ArcGisMapServerCatalogItem", function() { +describe("ArcGisMapServerCatalogItem", function () { const mapServerUrl = "http://www.example.com/Dynamic_National_Map_Hydrography_and_Marine/MapServer"; const singleLayerUrl = mapServerUrl + "/31"; let item: ArcGisMapServerCatalogItem; - beforeEach(function() { + beforeEach(function () { item = new ArcGisMapServerCatalogItem("test", new Terria()); const realLoadWithXhr = loadWithXhr.load; // We replace calls to GA's servers with pre-captured JSON files so our testing is isolated, but reflects real data. - spyOn(loadWithXhr, "load").and.callFake(function(...args: any[]) { + spyOn(loadWithXhr, "load").and.callFake(function (...args: any[]) { let url = args[0]; url = url.replace("http://example.com/42/", ""); if (url.match("Dynamic_National_Map_Hydrography_and_Marine/MapServer")) { @@ -58,27 +58,27 @@ describe("ArcGisMapServerCatalogItem", function() { }); }); - it("has a type and type name", function() { + it("has a type and type name", function () { expect(ArcGisMapServerCatalogItem.type).toBe("esri-mapServer"); expect(item.typeName).toBe( i18next.t("models.arcGisMapServerCatalogItem.name") ); }); - it("supports splitting", function() { + it("supports splitting", function () { expect(item.disableSplitter).toBeFalsy(); }); - it("supports zooming to extent", function() { + it("supports zooming to extent", function () { expect(item.disableZoomTo).toBeFalsy(); }); - it("supports preview", function() { + it("supports preview", function () { expect(item.disableAboutData).toBeFalsy(); }); - describe("loadMapItems", function() { - it("can load all layers", async function() { + describe("loadMapItems", function () { + it("can load all layers", async function () { runInAction(() => { item = new ArcGisMapServerCatalogItem("test", new Terria()); item.setTrait(CommonStrata.definition, "url", mapServerUrl); @@ -87,7 +87,7 @@ describe("ArcGisMapServerCatalogItem", function() { expect(item.allSelectedLayers.length).toBe(74); }); - it("can load specific layers", async function() { + it("can load specific layers", async function () { runInAction(() => { item = new ArcGisMapServerCatalogItem("test", new Terria()); item.setTrait(CommonStrata.definition, "url", mapServerUrl); @@ -97,7 +97,7 @@ describe("ArcGisMapServerCatalogItem", function() { expect(item.allSelectedLayers.length).toBe(2); }); - it("can load a single layer given in the URL", async function() { + it("can load a single layer given in the URL", async function () { runInAction(() => { item = new ArcGisMapServerCatalogItem("test", new Terria()); item.setTrait(CommonStrata.definition, "url", singleLayerUrl); @@ -107,7 +107,7 @@ describe("ArcGisMapServerCatalogItem", function() { expect(item.layers).toBe("31"); }); - describe("when tokenUrl is set", function() { + describe("when tokenUrl is set", function () { beforeEach(() => { runInAction(() => { item = new ArcGisMapServerCatalogItem("test", new Terria()); @@ -120,14 +120,14 @@ describe("ArcGisMapServerCatalogItem", function() { }); }); - it("fetches the token", async function() { + it("fetches the token", async function () { await item.loadMapItems(); expect(loadWithXhr.load.calls.argsFor(0)[0]).toBe( "http://example.com/token" ); }); - it("adds the token to subsequent requests", async function() { + it("adds the token to subsequent requests", async function () { await item.loadMapItems(); const tokenre = /token=fakeToken/; expect(tokenre.test(loadWithXhr.load.calls.argsFor(1)[0])).toBeTruthy(); @@ -135,7 +135,7 @@ describe("ArcGisMapServerCatalogItem", function() { expect(tokenre.test(loadWithXhr.load.calls.argsFor(3)[0])).toBeTruthy(); }); - it("passess the token to the imageryProvider", async function() { + it("passess the token to the imageryProvider", async function () { await item.loadMapItems(); const imageryProvider: any = item.mapItems[0].imageryProvider; expect(imageryProvider.token).toBe("fakeToken"); @@ -143,8 +143,8 @@ describe("ArcGisMapServerCatalogItem", function() { }); }); - describe("after loading", function() { - beforeEach(async function() { + describe("after loading", function () { + beforeEach(async function () { runInAction(() => { item = new ArcGisMapServerCatalogItem("test", new Terria()); item.setTrait(CommonStrata.definition, "url", mapServerUrl); @@ -152,29 +152,29 @@ describe("ArcGisMapServerCatalogItem", function() { await item.loadMapItems(); }); - it("returns exactly one mapItems", function() { + it("returns exactly one mapItems", function () { expect(item.mapItems.length).toBe(1); }); - describe("the mapItem", function() { - it("correctly sets `alpha`", function() { + describe("the mapItem", function () { + it("correctly sets `alpha`", function () { runInAction(() => item.setTrait(CommonStrata.definition, "opacity", 0.42) ); expect(item.mapItems[0].alpha).toBe(0.42); }); - it("correctly sets `show`", function() { + it("correctly sets `show`", function () { runInAction(() => item.setTrait(CommonStrata.definition, "show", false) ); expect(item.mapItems[0].show).toBe(false); }); - describe("imageryProvider", function() { + describe("imageryProvider", function () { let imageryProvider: ArcGisMapServerImageryProvider; - beforeEach(function() { + beforeEach(function () { runInAction(() => { item.setTrait(CommonStrata.definition, "layers", "31"); item.setTrait(CommonStrata.definition, "parameters", { @@ -192,21 +192,21 @@ describe("ArcGisMapServerCatalogItem", function() { .imageryProvider as ArcGisMapServerImageryProvider; }); - it("should be an ArcGisMapServerImageryProvider", function() { + it("should be an ArcGisMapServerImageryProvider", function () { expect( imageryProvider instanceof ArcGisMapServerImageryProvider ).toBeTruthy(); }); - it("sets the URL correctly", function() { + it("sets the URL correctly", function () { expect(imageryProvider.url).toBe(mapServerUrl + "/"); }); - it("sets the layers correctly", function() { + it("sets the layers correctly", function () { expect(imageryProvider.layers).toBe("31"); }); - it("converts layer names to layer ids when constructing imagery provider", function() { + it("converts layer names to layer ids when constructing imagery provider", function () { item.setTrait( CommonStrata.definition, "layers", @@ -217,25 +217,25 @@ describe("ArcGisMapServerCatalogItem", function() { expect(imageryProvider.layers).toBe("31"); }); - it("tilingScheme should be a WebMercatorTilingScheme", function() { + it("tilingScheme should be a WebMercatorTilingScheme", function () { expect( imageryProvider.tilingScheme instanceof WebMercatorTilingScheme ).toBeTruthy(); }); - it("sets the maximumLevel", function() { + it("sets the maximumLevel", function () { expect(imageryProvider.maximumLevel).toBe(13); }); - it("passes on request parameters", function() { + it("passes on request parameters", function () { expect(imageryProvider.parameters).toEqual(item.parameters); }); - it("correctly sets enablePickFeatures", function() { + it("correctly sets enablePickFeatures", function () { expect(imageryProvider.enablePickFeatures).toBe(true); }); - it("show scaleWorkbenchInfo when hideLayerAfterMinScaleDenominator", function() { + it("show scaleWorkbenchInfo when hideLayerAfterMinScaleDenominator", function () { item.setTrait( CommonStrata.definition, "hideLayerAfterMinScaleDenominator", @@ -248,17 +248,17 @@ describe("ArcGisMapServerCatalogItem", function() { }); }); - it("defines the name", function() { + it("defines the name", function () { expect(item.name).toBe( "Australia 250K Topographic Hydrography and Marine Layers" ); }); - it("defines the dataCustodian", function() { + it("defines the dataCustodian", function () { expect(item.dataCustodian).toBe("Geoscience Australia"); }); - it("defines a rectangle", function() { + it("defines a rectangle", function () { expect(item.rectangle).toBeDefined(); expect(item.rectangle.west).toEqual(97.90759300700006); expect(item.rectangle.south).toEqual(-54.25906877199998); @@ -266,7 +266,7 @@ describe("ArcGisMapServerCatalogItem", function() { expect(item.rectangle.north).toEqual(0.9835908000000587); }); - it("defines info", function() { + it("defines info", function () { expect(item.info.map(({ name, content }) => [name, content])).toEqual([ [ i18next.t("models.arcGisMapServerCatalogItem.dataDescription"), @@ -283,7 +283,7 @@ describe("ArcGisMapServerCatalogItem", function() { ]); }); - it("defines legends", function() { + it("defines legends", function () { expect(item.legends).toBeDefined(); if (isDefined(item.legends)) { expect(item.legends.length).toBe(1); @@ -294,8 +294,8 @@ describe("ArcGisMapServerCatalogItem", function() { }); }); - describe("time-enabled layer", function() { - it("can load a time-enabled layer", async function() { + describe("time-enabled layer", function () { + it("can load a time-enabled layer", async function () { runInAction(() => { item = new ArcGisMapServerCatalogItem("test", new Terria()); item.setTrait( diff --git a/test/Models/Catalog/esri/ArcGisPortalCatatalogGroupSpec.ts b/test/Models/Catalog/esri/ArcGisPortalCatatalogGroupSpec.ts index 8decaca2d5a..8ffb32554a5 100644 --- a/test/Models/Catalog/esri/ArcGisPortalCatatalogGroupSpec.ts +++ b/test/Models/Catalog/esri/ArcGisPortalCatatalogGroupSpec.ts @@ -22,12 +22,12 @@ interface ExtendedLoadWithXhr { const loadWithXhr: ExtendedLoadWithXhr = _loadWithXhr; -describe("ArcGisPortalCatalogGroup", function() { +describe("ArcGisPortalCatalogGroup", function () { let terria: Terria; let portalCatalogGroup: ArcGisPortalCatalogGroup; let portalServerStratum: ArcGisPortalStratum; - beforeEach(async function() { + beforeEach(async function () { terria = new Terria({ baseUrl: "./" }); @@ -39,7 +39,7 @@ describe("ArcGisPortalCatalogGroup", function() { ); const realLoadWithXhr = loadWithXhr.load; // We replace calls to real servers with pre-captured JSON files so our testing is isolated, but reflects real data. - spyOn(loadWithXhr, "load").and.callFake(function(...args: any[]) { + spyOn(loadWithXhr, "load").and.callFake(function (...args: any[]) { if ( args[0].indexOf( "rest/content/groups/2dfa6cfea7774d9585700059e1fc8219" @@ -62,22 +62,22 @@ describe("ArcGisPortalCatalogGroup", function() { }); }); - it("has a type and typeName", function() { + it("has a type and typeName", function () { expect(portalCatalogGroup.type).toBe("arcgis-portal-group"); expect(portalCatalogGroup.typeName).toBe( i18next.t("models.arcgisPortal.nameGroup") ); }); - describe("default settings - ", function() { - beforeEach(async function() { + describe("default settings - ", function () { + beforeEach(async function () { await portalCatalogGroup.loadMembers(); portalServerStratum = ( portalCatalogGroup.strata.get(ArcGisPortalStratum.stratumName) ); }); - it("properly creates members when no grouping", function() { + it("properly creates members when no grouping", function () { expect(portalCatalogGroup.members).toBeDefined(); expect(portalCatalogGroup.members.length).toBe(4); let member0 = portalCatalogGroup.memberModels[0]; @@ -87,8 +87,8 @@ describe("ArcGisPortalCatalogGroup", function() { }); }); - describe("groupBy portal groups - ", function() { - beforeEach(async function() { + describe("groupBy portal groups - ", function () { + beforeEach(async function () { runInAction(() => { portalCatalogGroup.setTrait( "definition", @@ -106,12 +106,12 @@ describe("ArcGisPortalCatalogGroup", function() { ); }); - it("Ungrouped group created", function() { + it("Ungrouped group created", function () { let member3 = portalCatalogGroup.memberModels[2]; expect(member3.name).toBe("Ungrouped"); }); - it("Creates members from portal groups", function() { + it("Creates members from portal groups", function () { expect(portalCatalogGroup.members).toBeDefined(); expect(portalCatalogGroup.members.length).toBe(3); let member1 = portalCatalogGroup.memberModels[0]; @@ -121,14 +121,14 @@ describe("ArcGisPortalCatalogGroup", function() { expect(member2.name).toBe("Spatial Services Basemaps"); }); - it("Blacklist trait filters Spatial Services Gallery group", function() { + it("Blacklist trait filters Spatial Services Gallery group", function () { if (portalServerStratum.groups && portalServerStratum.filteredGroups) { expect(portalServerStratum.groups.length).toBe(4); expect(portalServerStratum.filteredGroups.length).toBe(3); } }); - it("properly creates members within groups", function() { + it("properly creates members within groups", function () { if (portalServerStratum !== undefined) { if (portalServerStratum.groups) { let group0 = portalServerStratum.groups[0]; @@ -144,7 +144,7 @@ describe("ArcGisPortalCatalogGroup", function() { } }); - it("a single item can be placed in two groups", function() { + it("a single item can be placed in two groups", function () { if (portalServerStratum !== undefined) { if (portalServerStratum.groups) { let group0 = portalServerStratum.groups[0]; @@ -155,8 +155,8 @@ describe("ArcGisPortalCatalogGroup", function() { }); }); - describe("groupBy portal categories - ", function() { - beforeEach(async function() { + describe("groupBy portal categories - ", function () { + beforeEach(async function () { runInAction(() => { portalCatalogGroup.setTrait( "definition", @@ -176,19 +176,19 @@ describe("ArcGisPortalCatalogGroup", function() { ); }); - it("ungroupedTitle trait works", function() { + it("ungroupedTitle trait works", function () { let member2 = portalCatalogGroup.memberModels[1]; expect(member2.name).toBe("Ungrouped Content"); }); - it("properly creates groups from categories", function() { + it("properly creates groups from categories", function () { expect(portalCatalogGroup.members).toBeDefined(); expect(portalCatalogGroup.members.length).toBe(2); let member1 = portalCatalogGroup.memberModels[0]; expect(member1.name).toBe("Transport"); }); - it("properly creates members within groups", function() { + it("properly creates members within groups", function () { if (portalServerStratum !== undefined) { if (portalServerStratum.groups) { let group0 = portalServerStratum.groups[0]; diff --git a/test/Models/Catalog/esri/ArcGisPortalReferenceItemSpec.ts b/test/Models/Catalog/esri/ArcGisPortalReferenceItemSpec.ts index 07012c47f0d..a0ebac544c9 100644 --- a/test/Models/Catalog/esri/ArcGisPortalReferenceItemSpec.ts +++ b/test/Models/Catalog/esri/ArcGisPortalReferenceItemSpec.ts @@ -23,13 +23,13 @@ interface ExtendedLoadWithXhr { const loadWithXhr: ExtendedLoadWithXhr = _loadWithXhr; -describe("ArcGisPortalItemReference", function() { +describe("ArcGisPortalItemReference", function () { let terria: Terria; let arcGisPortalItemReference: ArcGisPortalItemReference; let arcGisPortalItemStratum: ArcGisPortalItemStratum; let portalItemTarget: any; - beforeEach(async function() { + beforeEach(async function () { terria = new Terria({ baseUrl: "./" }); @@ -41,7 +41,7 @@ describe("ArcGisPortalItemReference", function() { const realLoadWithXhr = loadWithXhr.load; // We replace calls to real servers with pre-captured JSON files so our testing is isolated, but reflects real data. - spyOn(loadWithXhr, "load").and.callFake(function(...args: any[]) { + spyOn(loadWithXhr, "load").and.callFake(function (...args: any[]) { if (args[0].indexOf("/data") > -1) { args[0] = "test/ArcGisPortal/item-data.json"; } else args[0] = "test/ArcGisPortal/item.json"; @@ -49,15 +49,15 @@ describe("ArcGisPortalItemReference", function() { }); }); - it("has a type and typeName", function() { + it("has a type and typeName", function () { expect(arcGisPortalItemReference.type).toBe("arcgis-portal-item"); expect(arcGisPortalItemReference.typeName).toBe( i18next.t("models.arcgisPortal.name") ); }); - describe("Can load an item by datasetId - ", function() { - beforeEach(async function() { + describe("Can load an item by datasetId - ", function () { + beforeEach(async function () { runInAction(() => { arcGisPortalItemReference.setTrait( "definition", @@ -86,7 +86,7 @@ describe("ArcGisPortalItemReference", function() { portalItemTarget = arcGisPortalItemReference.target; }); - it("properly creates item", function() { + it("properly creates item", function () { // when creating a single item directly name is retained from the definition stratum expect(arcGisPortalItemReference.name).toBe("Road Segments"); diff --git a/test/Models/Catalog/esri/esriLineStyleSpec.ts b/test/Models/Catalog/esri/esriLineStyleSpec.ts index 4608cb46053..dd9719e0e70 100644 --- a/test/Models/Catalog/esri/esriLineStyleSpec.ts +++ b/test/Models/Catalog/esri/esriLineStyleSpec.ts @@ -3,116 +3,116 @@ import { getLineStyleLeaflet } from "../../../../lib/Models/Catalog/Esri/esriLineStyle"; -describe("esriLineStyle", function() { - describe("corect cesium values", function() { - it("esriSLSDot", function() { +describe("esriLineStyle", function () { + describe("corect cesium values", function () { + it("esriSLSDot", function () { const value = getLineStyleCesium("esriSLSDot"); expect(value).toEqual(7); }); - it("esriSLSDashDot", function() { + it("esriSLSDashDot", function () { const value = getLineStyleCesium("esriSLSDashDot"); expect(value).toEqual(2017); }); - it("esriSLSDashDotDot", function() { + it("esriSLSDashDotDot", function () { const value = getLineStyleCesium("esriSLSDashDotDot"); expect(value).toEqual(16273); }); - it("esriSLSLongDash", function() { + it("esriSLSLongDash", function () { const value = getLineStyleCesium("esriSLSLongDash"); expect(value).toEqual(2047); }); - it("esriSLSLongDashDot", function() { + it("esriSLSLongDashDot", function () { const value = getLineStyleCesium("esriSLSLongDashDot"); expect(value).toEqual(4081); }); - it("esriSLSShortDash", function() { + it("esriSLSShortDash", function () { const value = getLineStyleCesium("esriSLSShortDash"); expect(value).toEqual(4095); }); - it("esriSLSShortDot", function() { + it("esriSLSShortDot", function () { const value = getLineStyleCesium("esriSLSShortDot"); expect(value).toEqual(13107); }); - it("esriSLSShortDashDot", function() { + it("esriSLSShortDashDot", function () { const value = getLineStyleCesium("esriSLSShortDashDot"); expect(value).toEqual(8179); }); - it("esriSLSShortDashDotDot", function() { + it("esriSLSShortDashDotDot", function () { const value = getLineStyleCesium("esriSLSShortDashDotDot"); expect(value).toEqual(16281); }); - it("esriSLSNull", function() { + it("esriSLSNull", function () { const value = getLineStyleCesium("esriSLSNull"); expect(value).toBeUndefined(); }); - it("esriSLSSolid", function() { + it("esriSLSSolid", function () { const value = getLineStyleCesium("esriSLSSolid"); expect(value).toBeUndefined(); }); - it("unknown", function() { + it("unknown", function () { const value = getLineStyleCesium("unknown"); expect(value).toBeUndefined(); }); }); - describe("corect leaflet values", function() { - it("esriSLSDot", function() { + describe("corect leaflet values", function () { + it("esriSLSDot", function () { const value = getLineStyleLeaflet(7); expect(value).toEqual([1, 3]); }); - it("esriSLSDashDot", function() { + it("esriSLSDashDot", function () { const value = getLineStyleLeaflet(2017); expect(value).toEqual([4, 3, 1, 3]); }); - it("esriSLSDashDotDot", function() { + it("esriSLSDashDotDot", function () { const value = getLineStyleLeaflet(16273); expect(value).toEqual([8, 3, 1, 3, 1, 3]); }); - it("esriSLSLongDash", function() { + it("esriSLSLongDash", function () { const value = getLineStyleLeaflet(2047); expect(value).toEqual([8, 3]); }); - it("esriSLSLongDashDot", function() { + it("esriSLSLongDashDot", function () { const value = getLineStyleLeaflet(4081); expect(value).toEqual([8, 3, 1, 3]); }); - it("esriSLSShortDash", function() { + it("esriSLSShortDash", function () { const value = getLineStyleLeaflet(4095); expect(value).toEqual([4, 1]); }); - it("esriSLSShortDot", function() { + it("esriSLSShortDot", function () { const value = getLineStyleLeaflet(13107); expect(value).toEqual([1, 1]); }); - it("esriSLSShortDashDot", function() { + it("esriSLSShortDashDot", function () { const value = getLineStyleLeaflet(8179); expect(value).toEqual([4, 1, 1, 1]); }); - it("esriSLSShortDashDotDot", function() { + it("esriSLSShortDashDotDot", function () { const value = getLineStyleLeaflet(16281); expect(value).toEqual([4, 1, 1, 1, 1, 1]); }); - it("return default", function() { + it("return default", function () { const value = getLineStyleLeaflet(16547); expect(value).toEqual([4, 3]); }); diff --git a/test/Models/CesiumSpec.ts b/test/Models/CesiumSpec.ts index 0b01004abd4..365776df80b 100644 --- a/test/Models/CesiumSpec.ts +++ b/test/Models/CesiumSpec.ts @@ -29,14 +29,14 @@ const supportsWebGL = require("../../lib/Core/supportsWebGL"); const describeIfSupported = supportsWebGL() ? describe : xdescribe; -describeIfSupported("Cesium Model", function() { +describeIfSupported("Cesium Model", function () { let terria: Terria; let terriaViewer: TerriaViewer; let container: HTMLElement; let cesium: Cesium; let terriaProgressEvt: jasmine.Spy; - beforeEach(function() { + beforeEach(function () { terria = new Terria({ baseUrl: "./" }); @@ -53,18 +53,18 @@ describeIfSupported("Cesium Model", function() { cesium = new Cesium(terriaViewer, container); }); - afterEach(function() { + afterEach(function () { cesium.destroy(); document.body.removeChild(container); }); - it("should trigger terria.tileLoadProgressEvent on globe tileLoadProgressEvent", function() { + it("should trigger terria.tileLoadProgressEvent on globe tileLoadProgressEvent", function () { cesium.scene.globe.tileLoadProgressEvent.raiseEvent(3); expect(terriaProgressEvt).toHaveBeenCalledWith(3, 3); }); - it("should retain the maximum length of tiles to be loaded", function() { + it("should retain the maximum length of tiles to be loaded", function () { cesium.scene.globe.tileLoadProgressEvent.raiseEvent(3); cesium.scene.globe.tileLoadProgressEvent.raiseEvent(7); cesium.scene.globe.tileLoadProgressEvent.raiseEvent(4); @@ -73,7 +73,7 @@ describeIfSupported("Cesium Model", function() { expect(terriaProgressEvt).toHaveBeenCalledWith(2, 7); }); - it("should reset maximum length when the number of tiles to be loaded reaches 0", function() { + it("should reset maximum length when the number of tiles to be loaded reaches 0", function () { cesium.scene.globe.tileLoadProgressEvent.raiseEvent(3); cesium.scene.globe.tileLoadProgressEvent.raiseEvent(7); cesium.scene.globe.tileLoadProgressEvent.raiseEvent(4); @@ -86,14 +86,14 @@ describeIfSupported("Cesium Model", function() { expect(terriaProgressEvt.calls.mostRecent().args).toEqual([2, 2]); }); - describe("zoomTo", function() { + describe("zoomTo", function () { let initialCameraPosition: Cartesian3; - beforeEach(function() { + beforeEach(function () { initialCameraPosition = cesium.scene.camera.position.clone(); }); - it("can zoomTo a rectangle", async function() { + it("can zoomTo a rectangle", async function () { const [west, south, east, north] = [0, 0, 0, 0]; await cesium.zoomTo(Rectangle.fromDegrees(west, south, east, north), 0); expect(initialCameraPosition.equals(cesium.scene.camera.position)).toBe( @@ -101,8 +101,8 @@ describeIfSupported("Cesium Model", function() { ); }); - describe("if the target is a TimeVarying item", function() { - it("sets the target item as the timeline source", async function() { + describe("if the target is a TimeVarying item", function () { + it("sets the target item as the timeline source", async function () { const targetItem = new WebMapServiceCatalogItem("test", terria); targetItem.setTrait( CommonStrata.user, @@ -121,7 +121,7 @@ describeIfSupported("Cesium Model", function() { }); }); - it("correctly removes all the primitives from the scene when they are removed from the viewer", async function() { + it("correctly removes all the primitives from the scene when they are removed from the viewer", async function () { const items = observable([ new MappablePrimitiveItem("1", terria), new MappablePrimitiveItem("2", terria), @@ -142,7 +142,7 @@ describeIfSupported("Cesium Model", function() { // Return urls of all tilesets in the scene const tilesetUrls = () => filterOutUndefined( - range(cesium.scene.primitives.length).map(i => { + range(cesium.scene.primitives.length).map((i) => { const prim = cesium.scene.primitives.get(i); return prim.allTilesLoaded && prim._url; }) @@ -150,13 +150,15 @@ describeIfSupported("Cesium Model", function() { // Return names of all datasources in the scene const dataSourceNames = () => - range(cesium.dataSources.length).map(i => cesium.dataSources.get(i).name); + range(cesium.dataSources.length).map( + (i) => cesium.dataSources.get(i).name + ); // Return urls of all imagery providers in the scene const imageryProviderUrls = () => range(cesium.scene.imageryLayers.length) .map( - i => (cesium.scene.imageryLayers.get(i).imageryProvider as any).url + (i) => (cesium.scene.imageryLayers.get(i).imageryProvider as any).url ) .reverse(); @@ -176,12 +178,12 @@ describeIfSupported("Cesium Model", function() { expect(imageryProviderUrls()).toEqual(["img3"]); }); - describe("Terrain provider selection", function() { + describe("Terrain provider selection", function () { let workbenchTerrainItem: CesiumTerrainCatalogItem; let scene: Scene; beforeEach( - action(async function() { + action(async function () { // We need a cesium instance bound to terria.mainViewer for workbench // changes to be reflected in these specs cesium = new Cesium(terria.mainViewer, container); @@ -215,7 +217,7 @@ describeIfSupported("Cesium Model", function() { }) ); - it("should use Elliposidal/3d-smooth terrain when `useTerrain` is `false`", function() { + it("should use Elliposidal/3d-smooth terrain when `useTerrain` is `false`", function () { expect(scene.terrainProvider instanceof EllipsoidTerrainProvider).toBe( false ); @@ -229,12 +231,12 @@ describeIfSupported("Cesium Model", function() { it( "should otherwise use the first terrain provider from the workbench or overlay", - action(async function() { + action(async function () { expect(scene.terrainProvider).toBe(workbenchTerrainItem.mapItems[0]); }) ); - it("should otherwise use the ION terrain specified by configParameters.cesiumTerrainAssetId", function() { + it("should otherwise use the ION terrain specified by configParameters.cesiumTerrainAssetId", function () { const createSpy = spyOn( cesium as any, "createTerrainProviderFromIonAssetId" @@ -246,7 +248,7 @@ describeIfSupported("Cesium Model", function() { expect(scene.terrainProvider).toEqual(ionAssetTerrainProvider); }); - it("should otherwise use the terrain specified by configParameters.cesiumTerrainUrl", function() { + it("should otherwise use the terrain specified by configParameters.cesiumTerrainUrl", function () { const createSpy = spyOn( cesium as any, "createTerrainProviderFromUrl" @@ -262,7 +264,7 @@ describeIfSupported("Cesium Model", function() { expect(scene.terrainProvider).toEqual(urlTerrainProvider); }); - it("should otherwise use cesium-world-terrain when `configParameters.useCesiumIonTerrain` is true", function() { + it("should otherwise use cesium-world-terrain when `configParameters.useCesiumIonTerrain` is true", function () { const createSpy = spyOn( cesium as any, "createWorldTerrain" @@ -276,12 +278,12 @@ describeIfSupported("Cesium Model", function() { expect(terria.configParameters.useCesiumIonTerrain).toBe(true); expect(createSpy).toHaveBeenCalledTimes(1); - const cesiumWorldTerrainProvider = createSpy.calls.mostRecent() - .returnValue; + const cesiumWorldTerrainProvider = + createSpy.calls.mostRecent().returnValue; expect(scene.terrainProvider).toEqual(cesiumWorldTerrainProvider); }); - it("should otherwise fallback to Elliposidal/3d-smooth", function() { + it("should otherwise fallback to Elliposidal/3d-smooth", function () { runInAction(() => { terria.workbench.removeAll(); terria.configParameters.cesiumTerrainAssetId = undefined; diff --git a/test/Models/Definition/StratumOrderSpec.ts b/test/Models/Definition/StratumOrderSpec.ts index a4259e2d826..480339160d8 100644 --- a/test/Models/Definition/StratumOrderSpec.ts +++ b/test/Models/Definition/StratumOrderSpec.ts @@ -1,13 +1,13 @@ import StratumOrder from "../../../lib/Models/Definition/StratumOrder"; -describe("StratumOrder", function() { - it("initially has a definition and a user stratum", function() { +describe("StratumOrder", function () { + it("initially has a definition and a user stratum", function () { const so = new StratumOrder(); expect(so.priorities.get("definition")).toBeDefined(); expect(so.priorities.get("user")).toBeDefined(); }); - it("strata types are added in the right order", function() { + it("strata types are added in the right order", function () { const so = new StratumOrder(); so.addDefinitionStratum("definitionTest"); so.addUserStratum("userTest"); @@ -21,7 +21,7 @@ describe("StratumOrder", function() { ); }); - it("strata of the same type get unique priorities", function() { + it("strata of the same type get unique priorities", function () { const so = new StratumOrder(); so.addDefinitionStratum("a"); @@ -37,7 +37,7 @@ describe("StratumOrder", function() { expect(so.priorities.get("e")).not.toEqual(so.priorities.get("f")); }); - it("sort functions return strata in the expected order", function() { + it("sort functions return strata in the expected order", function () { const so = new StratumOrder(); so.addDefinitionStratum("a"); @@ -80,7 +80,7 @@ describe("StratumOrder", function() { ]); }); - it("add functions do not change the priority of existing strata", function() { + it("add functions do not change the priority of existing strata", function () { const so = new StratumOrder(); so.addDefinitionStratum("a"); @@ -99,7 +99,7 @@ describe("StratumOrder", function() { expect(so.priorities.get("c")).toEqual(c); }); - it("throws when a strata does not have a priority", function() { + it("throws when a strata does not have a priority", function () { const so = new StratumOrder(); so.addDefinitionStratum("a"); @@ -111,7 +111,7 @@ describe("StratumOrder", function() { ["b", b] ]); - expect(function() { + expect(function () { so.sortBottomToTop(strata); }).toThrow(); }); diff --git a/test/Models/Definition/updateModelFromJsonSpec.ts b/test/Models/Definition/updateModelFromJsonSpec.ts index fdaf8f422b5..245d75fb133 100644 --- a/test/Models/Definition/updateModelFromJsonSpec.ts +++ b/test/Models/Definition/updateModelFromJsonSpec.ts @@ -5,11 +5,11 @@ import Terria from "../../../lib/Models/Terria"; import updateModelFromJson from "../../../lib/Models/Definition/updateModelFromJson"; import WebMapServiceCatalogItem from "../../../lib/Models/Catalog/Ows/WebMapServiceCatalogItem"; -describe("updateModelFromJson", function() { +describe("updateModelFromJson", function () { let model: BaseModel; - describe("when replaceStratum is", function() { - beforeEach(function() { + describe("when replaceStratum is", function () { + beforeEach(function () { model = new WebMapServiceCatalogItem("Test", new Terria()); runInAction(() => { model.setTrait(CommonStrata.definition, "url", "A"); @@ -18,7 +18,7 @@ describe("updateModelFromJson", function() { }); }); - it("true then the stratum is replaced", function() { + it("true then the stratum is replaced", function () { updateModelFromJson(model, CommonStrata.definition, { url: "Z" }, true); expect(model.getTrait(CommonStrata.definition, "url")).toBe("Z"); @@ -26,7 +26,7 @@ describe("updateModelFromJson", function() { expect(model.getTrait(CommonStrata.user, "name")).toBe("C"); }); - it("false then the stratum is not replaced", function() { + it("false then the stratum is not replaced", function () { updateModelFromJson(model, CommonStrata.definition, { url: "Z" }, false); expect(model.getTrait(CommonStrata.definition, "url")).toBe("Z"); @@ -34,7 +34,7 @@ describe("updateModelFromJson", function() { expect(model.getTrait(CommonStrata.user, "name")).toBe("C"); }); - it("not specified then the stratum is not replaced", function() { + it("not specified then the stratum is not replaced", function () { updateModelFromJson(model, CommonStrata.definition, { url: "Z" }); expect(model.getTrait(CommonStrata.definition, "url")).toBe("Z"); @@ -43,10 +43,10 @@ describe("updateModelFromJson", function() { }); }); - describe("when id of group already exists", function() { + describe("when id of group already exists", function () { let terria: Terria; - beforeEach(function() { + beforeEach(function () { terria = new Terria({ baseUrl: "./" }); @@ -78,7 +78,7 @@ describe("updateModelFromJson", function() { ); }); - it("updating the members trait should add new members to the existing members array", function() { + it("updating the members trait should add new members to the existing members array", function () { const model = terria.getModelById(BaseModel, "testgroup")!; const newJson: any = { name: "TestGroup", @@ -103,7 +103,7 @@ describe("updateModelFromJson", function() { ).toContain(newJson.members[0].id); }); - it("ignores adding duplicate ids to members", function() { + it("ignores adding duplicate ids to members", function () { const model = terria.getModelById(BaseModel, "testgroup")!; const newJson: any = { name: "TestGroup", @@ -121,7 +121,7 @@ describe("updateModelFromJson", function() { ).toEqual(["1", "2", "hello", "goodbye"]); }); - it("updating any other trait should replace the existing traits with the new trait", function() { + it("updating any other trait should replace the existing traits with the new trait", function () { const model = terria.getModelById(BaseModel, "testgroup")!; const newJson: any = { name: "NewTestGroup", @@ -146,7 +146,7 @@ describe("updateModelFromJson", function() { ); }); - it("will ignore trait which doesn't exist in model", function() { + it("will ignore trait which doesn't exist in model", function () { const model = terria.getModelById(BaseModel, "testgroup")!; const newJson: any = { name: "NewTestGroup", @@ -190,7 +190,7 @@ describe("updateModelFromJson", function() { result.error ?.flatten() .find( - error => + (error) => error.message === "The property `someTrait` is not valid for type `wms`." ) @@ -199,7 +199,7 @@ describe("updateModelFromJson", function() { result.error ?.flatten() .find( - error => + (error) => error.message === "The property `someOtherTrait` is not valid for type `wms`." ) diff --git a/test/Models/Definition/upsertModelFromJsonSpec.ts b/test/Models/Definition/upsertModelFromJsonSpec.ts index bf068b0d21c..c3d2c6aa4be 100644 --- a/test/Models/Definition/upsertModelFromJsonSpec.ts +++ b/test/Models/Definition/upsertModelFromJsonSpec.ts @@ -6,8 +6,8 @@ import CommonStrata from "../../../lib/Models/Definition/CommonStrata"; import upsertModelFromJson from "../../../lib/Models/Definition/upsertModelFromJson"; import Terria from "../../../lib/Models/Terria"; -describe("upsertModelFromJson", function() { - it("can create basic WMS item", function() { +describe("upsertModelFromJson", function () { + it("can create basic WMS item", function () { const terria = new Terria(); const json = { @@ -34,7 +34,7 @@ describe("upsertModelFromJson", function() { expect(wms.layers).toBe("mybroadband:MyBroadband_ADSL_Availability"); }); - it("can merge members from multiple strata", async function() { + it("can merge members from multiple strata", async function () { const terria = new Terria(); const json = { @@ -122,7 +122,7 @@ describe("upsertModelFromJson", function() { expect(item.isGeoServer).toBe(true, "item.isGeoServer"); }); - it("can update a model by shareKey", function() { + it("can update a model by shareKey", function () { const terria = new Terria(); const json = { diff --git a/test/Models/ErrorServiceSpec.ts b/test/Models/ErrorServiceSpec.ts index e71f421f77a..5e7d60669a1 100644 --- a/test/Models/ErrorServiceSpec.ts +++ b/test/Models/ErrorServiceSpec.ts @@ -1,8 +1,8 @@ import { initializeErrorServiceProvider } from "../../lib/Models/ErrorServiceProviders/ErrorService"; import RollbarErrorServiceProvider from "../../lib/Models/ErrorServiceProviders/RollbarErrorServiceProvider"; -describe("initializeErrorServiceProvider", function() { - it("can initialize RollbarErrorServiceProvider", async function() { +describe("initializeErrorServiceProvider", function () { + it("can initialize RollbarErrorServiceProvider", async function () { const errorService = await initializeErrorServiceProvider({ provider: "rollbar", configuration: {} @@ -10,7 +10,7 @@ describe("initializeErrorServiceProvider", function() { expect(errorService instanceof RollbarErrorServiceProvider).toBe(true); }); - it("throws an error when an invalid provider type is given", async function() { + it("throws an error when an invalid provider type is given", async function () { let error; try { await initializeErrorServiceProvider({ diff --git a/test/Models/Experiment.ts b/test/Models/Experiment.ts index 215a17490cf..2e8c558d682 100644 --- a/test/Models/Experiment.ts +++ b/test/Models/Experiment.ts @@ -11,8 +11,8 @@ configure({ computedRequiresReaction: true }); -describe("NewStuff", function() { - it("test", function() { +describe("NewStuff", function () { + it("test", function () { const terria = new Terria(); const wms = new WebMapServiceCatalogGroup( "Taxation Statistics 2011-2012", @@ -49,9 +49,9 @@ describe("NewStuff", function() { ); }); - autorun(dispose => { + autorun((dispose) => { console.log("Run: " + wms.memberModels.length); - wms.memberModels.forEach(model => { + wms.memberModels.forEach((model) => { if (CatalogMemberMixin.isMixedInto(model)) { console.log(`${model.name}: ${model.uniqueId}`); } diff --git a/test/Models/ItemSearchProviders/CatalogIndexSpec.ts b/test/Models/ItemSearchProviders/CatalogIndexSpec.ts index 19865908484..80736bbc4d3 100644 --- a/test/Models/ItemSearchProviders/CatalogIndexSpec.ts +++ b/test/Models/ItemSearchProviders/CatalogIndexSpec.ts @@ -2,11 +2,11 @@ import CatalogIndexReference from "../../../lib/Models/Catalog/CatalogReferences import CatalogIndex from "../../../lib/Models/SearchProviders/CatalogIndex"; import Terria from "../../../lib/Models/Terria"; -describe("CatalogIndex", function() { +describe("CatalogIndex", function () { let terria: Terria; let catalogIndex: CatalogIndex; - beforeEach(async function() { + beforeEach(async function () { terria = new Terria({ baseUrl: "./" }); @@ -66,11 +66,11 @@ describe("CatalogIndex", function() { await catalogIndex.load(); }); - afterEach(function() { + afterEach(function () { jasmine.Ajax.uninstall(); }); - it("search for items", async function() { + it("search for items", async function () { const results = await catalogIndex.search("group"); expect(results.length).toBe(2); @@ -84,7 +84,7 @@ describe("CatalogIndex", function() { ); }); - it("search for group", async function() { + it("search for group", async function () { const results = await catalogIndex.search("cool"); expect((results[0].catalogItem as CatalogIndexReference).name).toBe( @@ -92,7 +92,7 @@ describe("CatalogIndex", function() { ); }); - it("load group reference", async function() { + it("load group reference", async function () { const results = await catalogIndex.search("some random words"); const group = results[0].catalogItem as CatalogIndexReference; @@ -102,7 +102,7 @@ describe("CatalogIndex", function() { expect(group.target?.type).toBe("group"); }); - it("load nested reference", async function() { + it("load nested reference", async function () { const results = await catalogIndex.search("nested"); const item = results[0].catalogItem as CatalogIndexReference; @@ -113,10 +113,10 @@ describe("CatalogIndex", function() { }); }); -describe("CatalogIndex - with shareKeys", function() { +describe("CatalogIndex - with shareKeys", function () { let terria: Terria; - beforeEach(async function() { + beforeEach(async function () { terria = new Terria({ baseUrl: "./" }); @@ -230,11 +230,11 @@ describe("CatalogIndex - with shareKeys", function() { await terria.catalogIndex.load(); }); - afterEach(function() { + afterEach(function () { jasmine.Ajax.uninstall(); }); - it("loads shareKeys", async function() { + it("loads shareKeys", async function () { expect(terria.catalogIndex!.shareKeysMap.toJSON()).toEqual({ "test-nested-dynamic-group-sharekey": "test-nested-dynamic-group", "test-item-3-sharekey": "test-item-3", @@ -245,7 +245,7 @@ describe("CatalogIndex - with shareKeys", function() { }); }); - it('can use "deep" shareKeys', async function() { + it('can use "deep" shareKeys', async function () { expect( terria.catalogIndex!.getModelByIdOrShareKey("test-item-3")?.uniqueId ).toBe("test-item-3"); @@ -270,7 +270,7 @@ describe("CatalogIndex - with shareKeys", function() { }); }); - it("another one", async function() { + it("another one", async function () { const model = terria.catalogIndex!.getModelByIdOrShareKey( "test-nested-dynamic-group-sharekey/Test item without ID" ); diff --git a/test/Models/ItemSearchProviders/IndexedItemSearchProviderSpec.ts b/test/Models/ItemSearchProviders/IndexedItemSearchProviderSpec.ts index fa3b753d928..730ac1a585d 100644 --- a/test/Models/ItemSearchProviders/IndexedItemSearchProviderSpec.ts +++ b/test/Models/ItemSearchProviders/IndexedItemSearchProviderSpec.ts @@ -41,23 +41,23 @@ const validIndexRoot = { } }; -describe("IndexedItemSearchProvider", function() { - beforeEach(function() { +describe("IndexedItemSearchProvider", function () { + beforeEach(function () { jasmine.Ajax.install(); }); - afterEach(function() { + afterEach(function () { jasmine.Ajax.uninstall(); }); - describe("construction", function() { - it("can be constructed", function() { + describe("construction", function () { + it("can be constructed", function () { new IndexedItemSearchProvider({ indexRootUrl: "indexRoot.json" }, []); }); }); - describe("load", function() { - it("can be loaded", async function() { + describe("load", function () { + it("can be loaded", async function () { const provider = new IndexedItemSearchProvider( { indexRootUrl: "indexRoot.json" @@ -74,7 +74,7 @@ describe("IndexedItemSearchProvider", function() { expect(error).toBeUndefined(); }); - it("throws an error if the indexRoot file cannot be parsed", async function() { + it("throws an error if the indexRoot file cannot be parsed", async function () { const provider = new IndexedItemSearchProvider( { indexRootUrl: "indexRoot.json" @@ -94,8 +94,8 @@ describe("IndexedItemSearchProvider", function() { }); }); - describe("describeParameters", function() { - it("returns the parameters", async function() { + describe("describeParameters", function () { + it("returns the parameters", async function () { const provider = new IndexedItemSearchProvider( { indexRootUrl: "indexRoot.json" @@ -137,11 +137,11 @@ describe("IndexedItemSearchProvider", function() { }); }); - describe("search", function() { + describe("search", function () { let provider: IndexedItemSearchProvider; let parameterValues: Map; - beforeEach(async function() { + beforeEach(async function () { provider = new IndexedItemSearchProvider( { indexRootUrl: "indexRoot.json" @@ -161,7 +161,7 @@ describe("IndexedItemSearchProvider", function() { await provider.initialize(); }); - it("returns matching results", async function() { + it("returns matching results", async function () { const results = await provider.search(parameterValues); expect(results).toEqual([ { @@ -187,7 +187,7 @@ describe("IndexedItemSearchProvider", function() { ]); }); - it("should load the index and data files only once", async function() { + it("should load the index and data files only once", async function () { await provider.search(parameterValues); const finalCount = jasmine.Ajax.requests.count(); expect(finalCount).toEqual(4); diff --git a/test/Models/ItemSearchProviders/NumericIndexSpec.ts b/test/Models/ItemSearchProviders/NumericIndexSpec.ts index abf9b6b3f14..c50c6ff3c89 100644 --- a/test/Models/ItemSearchProviders/NumericIndexSpec.ts +++ b/test/Models/ItemSearchProviders/NumericIndexSpec.ts @@ -1,8 +1,8 @@ import NumericIndex from "../../../lib/Models/ItemSearchProviders/NumericIndex"; -describe("NumericIndex", function() { - describe("search", function() { - it("returns all matching IDs when the search query is within the index range", async function() { +describe("NumericIndex", function () { + describe("search", function () { + it("returns all matching IDs when the search query is within the index range", async function () { const index = new NumericIndex("", { min: 0, max: 10 }); index.idValuePairs = Promise.resolve([ { dataRowId: 0, value: 0 }, @@ -20,7 +20,7 @@ describe("NumericIndex", function() { expect([...ids]).toEqual([1, 2, 3, 4, 5, 6, 7, 8]); }); - it("returns all matching IDs when the end value of the search query is outside the index range", async function() { + it("returns all matching IDs when the end value of the search query is outside the index range", async function () { const index = new NumericIndex("", { min: 0, max: 10 }); index.idValuePairs = Promise.resolve([ { dataRowId: 0, value: 0 }, @@ -38,7 +38,7 @@ describe("NumericIndex", function() { expect([...ids]).toEqual([1, 2, 3, 4, 5, 6, 7, 8, 9]); }); - it("returns all matching IDs when the start and end values are the same", async function() { + it("returns all matching IDs when the start and end values are the same", async function () { const index = new NumericIndex("", { min: 0, max: 10 }); index.idValuePairs = Promise.resolve([ { dataRowId: 0, value: 0 }, @@ -56,7 +56,7 @@ describe("NumericIndex", function() { expect([...ids]).toEqual([3, 4, 5, 6, 7]); }); - it("returns an empty set when the start and end values are outside the range of the index", async function() { + it("returns an empty set when the start and end values are outside the range of the index", async function () { const index = new NumericIndex("", { min: 0, max: 10 }); index.idValuePairs = Promise.resolve([ { dataRowId: 0, value: 0 }, diff --git a/test/Models/LeafletSpec.js b/test/Models/LeafletSpec.js index b53dfcfeeab..93bdc7afec5 100644 --- a/test/Models/LeafletSpec.js +++ b/test/Models/LeafletSpec.js @@ -6,10 +6,10 @@ var CesiumTileLayer = require("../../lib/Map/CesiumTileLayer"); var Color = require("terriajs-cesium/Source/Core/Color").default; var Ellipsoid = require("terriajs-cesium/Source/Core/Ellipsoid").default; var Entity = require("terriajs-cesium/Source/DataSources/Entity").default; -var GeoJsonDataSource = require("terriajs-cesium/Source/DataSources/GeoJsonDataSource") - .default; -var ImageryLayerFeatureInfo = require("terriajs-cesium/Source/Scene/ImageryLayerFeatureInfo") - .default; +var GeoJsonDataSource = + require("terriajs-cesium/Source/DataSources/GeoJsonDataSource").default; +var ImageryLayerFeatureInfo = + require("terriajs-cesium/Source/Scene/ImageryLayerFeatureInfo").default; var L = require("leaflet"); var Leaflet = require("../../lib/Models/Leaflet"); var loadJson = require("../../lib/Core/loadJson").default; @@ -17,12 +17,12 @@ var Terria = require("../../lib/Models/Terria"); var DEFAULT_ZOOM_LEVEL = 5; -describe("Leaflet Model", function() { +describe("Leaflet Model", function () { var terria; var leaflet; var container, map, layers; - beforeEach(function() { + beforeEach(function () { terria = new Terria({ baseUrl: "./" }); @@ -41,21 +41,21 @@ describe("Leaflet Model", function() { ]; }); - afterEach(function() { + afterEach(function () { document.body.removeChild(container); }); function initLeaflet() { leaflet = new Leaflet(terria, map); terria.leaflet = leaflet; - layers.forEach(function(layer) { + layers.forEach(function (layer) { map.addLayer(layer); }); } - describe("should trigger a tileLoadProgressEvent", function() { - ["tileloadstart", "tileload", "load"].forEach(function(event) { - it("on " + event, function() { + describe("should trigger a tileLoadProgressEvent", function () { + ["tileloadstart", "tileload", "load"].forEach(function (event) { + it("on " + event, function () { initLeaflet(); layers[0].fire(event); @@ -65,12 +65,12 @@ describe("Leaflet Model", function() { }); }); - it("should be able to reference its container", function() { + it("should be able to reference its container", function () { initLeaflet(); expect(leaflet.getContainer()).toBe(container); }); - it("should trigger a tileLoadProgressEvent with the total number of tiles to be loaded for all layers", function() { + it("should trigger a tileLoadProgressEvent with the total number of tiles to be loaded for all layers", function () { initLeaflet(); layers[0]._tiles = { @@ -91,8 +91,8 @@ describe("Leaflet Model", function() { expect(terria.tileLoadProgressEvent.raiseEvent).toHaveBeenCalledWith(5, 5); }); - describe("should change the max", function() { - it("to whatever the highest count of loading tiles so far was", function() { + describe("should change the max", function () { + it("to whatever the highest count of loading tiles so far was", function () { initLeaflet(); changeTileLoadingCount(3); @@ -105,7 +105,7 @@ describe("Leaflet Model", function() { ).toEqual([2, 8]); }); - it("to 0 when loading tile count reaches 0", function() { + it("to 0 when loading tile count reaches 0", function () { initLeaflet(); changeTileLoadingCount(3); @@ -136,12 +136,12 @@ describe("Leaflet Model", function() { } }); - describe("feature picking", function() { + describe("feature picking", function () { var latlng = { lat: 50, lng: 50 }; var deferred1 = {}, deferred2 = {}; - beforeEach(function() { + beforeEach(function () { deferred1.promise = new Promise((resolve, reject) => { deferred1.resolve = resolve; deferred1.reject = reject; @@ -162,7 +162,7 @@ describe("Leaflet Model", function() { url: "http://example.com/1", ready: true, tilingScheme: { - positionToTileXY: function() { + positionToTileXY: function () { return { x: 1, y: 2 }; } } @@ -178,7 +178,7 @@ describe("Leaflet Model", function() { url: "http://example.com/2", ready: true, tilingScheme: { - positionToTileXY: function() { + positionToTileXY: function () { return { x: 4, y: 5 }; } } @@ -192,7 +192,7 @@ describe("Leaflet Model", function() { url: "http://example.com/3", ready: true, tilingScheme: { - positionToTileXY: function() { + positionToTileXY: function () { return { x: 1, y: 2 }; } } @@ -206,7 +206,7 @@ describe("Leaflet Model", function() { url: "http://example.com/4", ready: true, tilingScheme: { - positionToTileXY: function() { + positionToTileXY: function () { return { x: 1, y: 2 }; } } @@ -215,16 +215,16 @@ describe("Leaflet Model", function() { ]; }); - describe("from location", function() { - beforeEach(function() { + describe("from location", function () { + beforeEach(function () { initLeaflet(); }); - commonFeaturePickingTests(function() { + commonFeaturePickingTests(function () { leaflet.pickFromLocation(latlng, {}); }); - it("uses tileCoordinates when provided", function() { + it("uses tileCoordinates when provided", function () { leaflet.pickFromLocation(latlng, { "http://example.com/1": { x: 100, y: 200, level: 300 }, "http://example.com/2": { x: 400, y: 500, level: 600 } @@ -263,14 +263,14 @@ describe("Leaflet Model", function() { ).toBe(600); }); - it("adds existingFeatures to end result", function(done) { + it("adds existingFeatures to end result", function (done) { var existing = new ImageryLayerFeatureInfo(); existing.name = "existing"; leaflet.pickFromLocation(latlng, {}, [existing]); finishPickingPromise(); terria.pickedFeatures.allFeaturesAvailablePromise - .then(function() { + .then(function () { expect(terria.pickedFeatures.features[0].name).toBe("existing"); }) .then(done) @@ -278,11 +278,11 @@ describe("Leaflet Model", function() { }); }); - describe("from click", function() { + describe("from click", function () { var click; - beforeEach(function() { - spyOn(map, "on").and.callFake(function(type, callback) { + beforeEach(function () { + spyOn(map, "on").and.callFake(function (type, callback) { if (type === "click") { click = callback; } @@ -291,16 +291,16 @@ describe("Leaflet Model", function() { initLeaflet(); }); - commonFeaturePickingTests(function() { + commonFeaturePickingTests(function () { click({ latlng: latlng }); }); - describe("when combining vector and raster features", function() { + describe("when combining vector and raster features", function () { var vectorFeature1, vectorFeature2; - beforeEach(function() { + beforeEach(function () { vectorFeature1 = new Entity({ name: "vector1" }); @@ -309,7 +309,7 @@ describe("Leaflet Model", function() { }); }); - it("includes vector features with click events both before and after the map click event", function(done) { + it("includes vector features with click events both before and after the map click event", function (done) { // vector and map clicks can come in any order. leaflet.scene.featureClicked.raiseEvent(vectorFeature1, { latlng: latlng @@ -324,7 +324,7 @@ describe("Leaflet Model", function() { finishPickingPromise(); terria.pickedFeatures.allFeaturesAvailablePromise - .then(function() { + .then(function () { expect(terria.pickedFeatures.features.length).toBe(5); expect(terria.pickedFeatures.features[0].name).toBe("vector1"); expect(terria.pickedFeatures.features[1].name).toBe("vector2"); @@ -334,7 +334,7 @@ describe("Leaflet Model", function() { .catch(done.fail); }); - it("resets the picked vector features if a subsequent map click is made", function(done) { + it("resets the picked vector features if a subsequent map click is made", function (done) { leaflet.scene.featureClicked.raiseEvent(vectorFeature1, { latlng: latlng }); @@ -348,13 +348,13 @@ describe("Leaflet Model", function() { // The reset happens in a runLater, which a second click will always come behind in a browser, // but this isn't guaranteed in unit tests because they're just two setTimeouts racing each other, // so give this a healthy 50ms delay to make sure it comes in behind the 0ms delay in Leaflet.js. - setTimeout(function() { + setTimeout(function () { click({ latlng: latlng }); finishPickingPromise(); terria.pickedFeatures.allFeaturesAvailablePromise - .then(function() { + .then(function () { expect(terria.pickedFeatures.features.length).toBe(3); expect(terria.pickedFeatures.features[0].name).toBe("1"); }) @@ -366,7 +366,7 @@ describe("Leaflet Model", function() { }); function commonFeaturePickingTests(trigger) { - it("correctly tracks loading state", function(done) { + it("correctly tracks loading state", function (done) { expect(terria.pickedFeatures).toBeUndefined(); trigger(); @@ -376,14 +376,14 @@ describe("Leaflet Model", function() { finishPickingPromise(); terria.pickedFeatures.allFeaturesAvailablePromise - .then(function() { + .then(function () { expect(terria.pickedFeatures.isLoading).toBe(false); }) .then(done) .catch(done.fail); }); - it("should load imagery layer features when feature info requests are enabled", function(done) { + it("should load imagery layer features when feature info requests are enabled", function (done) { terria.allowFeatureInfoRequests = true; trigger(); @@ -399,7 +399,7 @@ describe("Leaflet Model", function() { deferred2.resolve([featureInfo2]); terria.pickedFeatures.allFeaturesAvailablePromise - .then(function() { + .then(function () { expect(terria.pickedFeatures.isLoading).toBe(false); expect(terria.pickedFeatures.features.length).toBe(2); expect(terria.pickedFeatures.features[0].name).toBe("name1"); @@ -409,12 +409,12 @@ describe("Leaflet Model", function() { .catch(done.fail); }); - it("should not load imagery layer features when feature info requests are disabled", function(done) { + it("should not load imagery layer features when feature info requests are disabled", function (done) { terria.allowFeatureInfoRequests = false; trigger(); terria.pickedFeatures.allFeaturesAvailablePromise - .then(function() { + .then(function () { expect(terria.pickedFeatures.isLoading).toBe(false); expect(terria.pickedFeatures.features.length).toBe(0); }) @@ -422,7 +422,7 @@ describe("Leaflet Model", function() { .catch(done.fail); }); - it("records pickPosition", function() { + it("records pickPosition", function () { trigger(); expect(terria.pickedFeatures.pickPosition).toEqual( @@ -432,17 +432,17 @@ describe("Leaflet Model", function() { ); }); - describe("after feature picked", function() { + describe("after feature picked", function () { beforeEach(trigger); - it("populates terria.pickedFeatures", function() { + it("populates terria.pickedFeatures", function () { expect(terria.pickedFeatures).toBeDefined(); expect( terria.pickedFeatures.allFeaturesAvailablePromise ).toBeDefined(); }); - it("calls pickFeatures for all enabled and shown layers", function() { + it("calls pickFeatures for all enabled and shown layers", function () { expect( terria.nowViewing.items[0].imageryLayer.imageryProvider.pickFeatures ).toHaveBeenCalledWith( @@ -469,8 +469,8 @@ describe("Leaflet Model", function() { ).not.toHaveBeenCalled(); }); - describe("after pickFeatures returns for all layers", function() { - beforeEach(function(done) { + describe("after pickFeatures returns for all layers", function () { + beforeEach(function (done) { finishPickingPromise(); terria.pickedFeatures.allFeaturesAvailablePromise @@ -478,20 +478,20 @@ describe("Leaflet Model", function() { .catch(done.fail); }); - it("combines promise results", function() { + it("combines promise results", function () { expect(terria.pickedFeatures.features[0].name).toBe("1"); expect(terria.pickedFeatures.features[1].name).toBe("2"); expect(terria.pickedFeatures.features[2].name).toBe("3"); }); - it("records pick coords", function() { + it("records pick coords", function () { expect(terria.pickedFeatures.providerCoords).toEqual({ "http://example.com/1": { x: 1, y: 2, level: DEFAULT_ZOOM_LEVEL }, "http://example.com/2": { x: 4, y: 5, level: DEFAULT_ZOOM_LEVEL } }); }); - it("sets imageryLayer on features", function() { + it("sets imageryLayer on features", function () { expect(terria.pickedFeatures.features[0].imageryLayer).toBe( terria.nowViewing.items[0].imageryLayer ); @@ -503,9 +503,9 @@ describe("Leaflet Model", function() { }); } - it("should create GeoJSON for polygon when a rasterized polygon feature is selected", function(done) { + it("should create GeoJSON for polygon when a rasterized polygon feature is selected", function (done) { loadJson("test/GeoJSON/polygon.geojson") - .then(function(polygonGeoJson) { + .then(function (polygonGeoJson) { initLeaflet(); var entity = new Entity(); @@ -516,7 +516,7 @@ describe("Leaflet Model", function() { expect(terria.leaflet._highlightPromise).toBeDefined(); expect(terria.leaflet._removeHighlightCallback).toBeDefined(); - return terria.leaflet._highlightPromise.then(function() { + return terria.leaflet._highlightPromise.then(function () { expect(terria.dataSources.length).toBe(1); expect(terria.dataSources.get(0) instanceof GeoJsonDataSource).toBe( true @@ -527,9 +527,9 @@ describe("Leaflet Model", function() { .catch(done.fail); }); - it("should create GeoJSON for polyline when a rasterized polyline feature is selected", function(done) { + it("should create GeoJSON for polyline when a rasterized polyline feature is selected", function (done) { loadJson("test/GeoJSON/polyline.geojson") - .then(function(polylineGeoJson) { + .then(function (polylineGeoJson) { initLeaflet(); var entity = new Entity(); @@ -540,7 +540,7 @@ describe("Leaflet Model", function() { expect(terria.leaflet._highlightPromise).toBeDefined(); expect(terria.leaflet._removeHighlightCallback).toBeDefined(); - return terria.leaflet._highlightPromise.then(function() { + return terria.leaflet._highlightPromise.then(function () { expect(terria.dataSources.length).toBe(1); expect(terria.dataSources.get(0) instanceof GeoJsonDataSource).toBe( true @@ -551,9 +551,9 @@ describe("Leaflet Model", function() { .catch(done.fail); }); - it("should update the style of a vector polygon when selected", function(done) { + it("should update the style of a vector polygon when selected", function (done) { GeoJsonDataSource.load("test/GeoJSON/polygon.geojson") - .then(function(dataSource) { + .then(function (dataSource) { initLeaflet(); terria.dataSources.add(dataSource); @@ -572,9 +572,9 @@ describe("Leaflet Model", function() { .catch(done.fail); }); - it("should update the style of a vector polyline when selected", function(done) { + it("should update the style of a vector polyline when selected", function (done) { GeoJsonDataSource.load("test/GeoJSON/polyline.geojson") - .then(function(dataSource) { + .then(function (dataSource) { initLeaflet(); terria.dataSources.add(dataSource); diff --git a/test/Models/LeafletSpec.ts b/test/Models/LeafletSpec.ts index b4d9c3f7aee..e32117d6525 100644 --- a/test/Models/LeafletSpec.ts +++ b/test/Models/LeafletSpec.ts @@ -9,7 +9,7 @@ import WebMapServiceCatalogItem from "../../lib/Models/Catalog/Ows/WebMapService import { RectangleTraits } from "../../lib/Traits/TraitsClasses/MappableTraits"; import TerriaViewer from "../../lib/ViewModels/TerriaViewer"; -describe("Leaflet Model", function() { +describe("Leaflet Model", function () { let terria: Terria; let terriaViewer: TerriaViewer; let container: HTMLElement; @@ -18,7 +18,7 @@ describe("Leaflet Model", function() { let layers: any[]; let terriaProgressEvt: jasmine.Spy; - beforeEach(function() { + beforeEach(function () { terria = new Terria({ baseUrl: "./" }); @@ -40,12 +40,12 @@ describe("Leaflet Model", function() { new L.ImageOverlay("http://example.com", L.latLngBounds([1, 1], [3, 3])) ]; - layers.forEach(function(layer) { + layers.forEach(function (layer) { leaflet.map.addLayer(layer); }); }); - afterEach(function() { + afterEach(function () { // TODO: calling destroy on our mobx leaflet model results in a tile error try { leaflet.destroy(); @@ -55,9 +55,9 @@ describe("Leaflet Model", function() { function initLeaflet() {} - describe("should trigger a tileLoadProgressEvent", function() { - ["tileloadstart", "tileload", "load"].forEach(function(event) { - it("on " + event, function() { + describe("should trigger a tileLoadProgressEvent", function () { + ["tileloadstart", "tileload", "load"].forEach(function (event) { + it("on " + event, function () { initLeaflet(); layers[0].fire(event); @@ -67,13 +67,13 @@ describe("Leaflet Model", function() { }); }); - it("should be able to reference its container", function() { + it("should be able to reference its container", function () { initLeaflet(); expect(leaflet.getContainer()).toBe(container); }); - it("should trigger a tileLoadProgressEvent with the total number of tiles to be loaded for all layers", function() { + it("should trigger a tileLoadProgressEvent with the total number of tiles to be loaded for all layers", function () { initLeaflet(); layers[0]._tiles = { 1: { loaded: undefined }, @@ -93,8 +93,8 @@ describe("Leaflet Model", function() { expect(terriaProgressEvt).toHaveBeenCalledWith(5, 5); }); - describe("should change the max", function() { - it("to whatever the highest count of loading tiles so far was", function() { + describe("should change the max", function () { + it("to whatever the highest count of loading tiles so far was", function () { initLeaflet(); changeTileLoadingCount(3); @@ -105,7 +105,7 @@ describe("Leaflet Model", function() { expect(terriaProgressEvt.calls.mostRecent().args).toEqual([2, 8]); }); - it("to 0 when loading tile count reaches 0", function() { + it("to 0 when loading tile count reaches 0", function () { initLeaflet(); changeTileLoadingCount(3); @@ -132,9 +132,9 @@ describe("Leaflet Model", function() { } }); - describe("zoomTo", function() { - describe("if the target is a TimeVarying item", function() { - it("sets the target item as the timeline source", async function() { + describe("zoomTo", function () { + describe("if the target is a TimeVarying item", function () { + it("sets the target item as the timeline source", async function () { const targetItem = new WebMapServiceCatalogItem("test", terria); targetItem.setTrait( CommonStrata.user, diff --git a/test/Models/MagdaReferenceSpec.ts b/test/Models/MagdaReferenceSpec.ts index 43ae994c89e..fedb1bfc920 100644 --- a/test/Models/MagdaReferenceSpec.ts +++ b/test/Models/MagdaReferenceSpec.ts @@ -13,7 +13,7 @@ import updateModelFromJson from "../../lib/Models/Definition/updateModelFromJson import upsertModelFromJson from "../../lib/Models/Definition/upsertModelFromJson"; import ModelFactory from "../../lib/Models/Definition/ModelFactory"; -describe("MagdaReference", function() { +describe("MagdaReference", function () { const recordGroupWithOneCsv = { id: "test-group", name: "Test Group", @@ -37,7 +37,7 @@ describe("MagdaReference", function() { } }; - it("can dereference to a group", function(done) { + it("can dereference to a group", function (done) { const terria = new Terria(); const model = new MagdaReference(undefined, terria); @@ -59,7 +59,7 @@ describe("MagdaReference", function() { .catch(done.fail); }); - it("dereferenced group contains expected item", function(done) { + it("dereferenced group contains expected item", function (done) { const terria = new Terria(); const model = new MagdaReference(undefined, terria); @@ -85,7 +85,7 @@ describe("MagdaReference", function() { .catch(done.fail); }); - it("definition trait can override traits of dereferenced member", function(done) { + it("definition trait can override traits of dereferenced member", function (done) { const terria = new Terria(); const model = new MagdaReference(undefined, terria); @@ -109,7 +109,7 @@ describe("MagdaReference", function() { .catch(done.fail); }); - it("override trait can override traits of the members of a dereferenced group", function(done) { + it("override trait can override traits of the members of a dereferenced group", function (done) { const terria = new Terria(); const model = new MagdaReference(undefined, terria); @@ -140,7 +140,7 @@ describe("MagdaReference", function() { .catch(done.fail); }); - it("changes to override trait affect members of a dereferenced group", async function(done) { + it("changes to override trait affect members of a dereferenced group", async function (done) { const terria = new Terria(); const model = new MagdaReference(undefined, terria); @@ -186,7 +186,7 @@ describe("MagdaReference", function() { .catch(done.fail); }); - it("changes to Magda record affect members of a dereferenced group", async function(done) { + it("changes to Magda record affect members of a dereferenced group", async function (done) { const terria = new Terria(); const model = new MagdaReference(undefined, terria); @@ -232,7 +232,7 @@ describe("MagdaReference", function() { .catch(done.fail); }); - it("loads valid items and ignores broken items", async function() { + it("loads valid items and ignores broken items", async function () { const groupWithBrokenItem: any = { aspects: { group: { @@ -320,7 +320,7 @@ describe("MagdaReference", function() { expect(unknown.target).toBeUndefined(); }); - it("can add record aspects by override", function(done) { + it("can add record aspects by override", function (done) { const theMagdaItemId = "a magda item id"; const theRecordName = "Test Record"; const theRecordId = "test-record-id"; diff --git a/test/Models/MapNavigation/MapNavigationModelSpec.ts b/test/Models/MapNavigation/MapNavigationModelSpec.ts index aaa7f9e0630..0d22e88c45b 100644 --- a/test/Models/MapNavigation/MapNavigationModelSpec.ts +++ b/test/Models/MapNavigation/MapNavigationModelSpec.ts @@ -4,7 +4,7 @@ import MapNavigationModel from "../../../lib/ViewModels/MapNavigation/MapNavigat import { IMapNavigationItem } from "../../../lib/ViewModels/MapNavigation/MapNavigationModel"; import { GenericMapNavigationItemController } from "../../../lib/ViewModels/MapNavigation/MapNavigationItemController"; -describe("MapNavigationModel", function() { +describe("MapNavigationModel", function () { let terria: Terria; let viewState: ViewState; let item1: IMapNavigationItem; @@ -14,7 +14,7 @@ describe("MapNavigationModel", function() { let item5: IMapNavigationItem; let item2Duplicate: IMapNavigationItem; - beforeEach(function() { + beforeEach(function () { terria = new Terria({ baseUrl: "./" }); @@ -101,30 +101,30 @@ describe("MapNavigationModel", function() { item2Duplicate.controller.setVisible(false); }); - it("properly constructs model", function() { + it("properly constructs model", function () { const items = [item1, item2, item3, item4, item5]; const mapNavigationModel = new MapNavigationModel(terria, items); expect(mapNavigationModel.items.length).toEqual(5); expect(mapNavigationModel.pinnedItems.length).toEqual(1); expect(mapNavigationModel.visibleItems.length).toEqual(4); let collapsedItems = mapNavigationModel.visibleItems.filter( - item => item.controller.collapsed + (item) => item.controller.collapsed ); expect(collapsedItems.length).toEqual(2); - let itemsId = mapNavigationModel.items.map(item => item.id); + let itemsId = mapNavigationModel.items.map((item) => item.id); expect(itemsId).toEqual(["item1", "item2", "item3", "item4", "item5"]); }); - it("properly sets items", function() { + it("properly sets items", function () { const mapNavigationModel = new MapNavigationModel(terria, [item2]); expect(mapNavigationModel.items.length).toEqual(1); expect(mapNavigationModel.pinnedItems.length).toEqual(1); expect(mapNavigationModel.visibleItems.length).toEqual(1); let collapsedItems = mapNavigationModel.visibleItems.filter( - item => item.controller.collapsed + (item) => item.controller.collapsed ); expect(collapsedItems.length).toEqual(0); - let itemsId = mapNavigationModel.items.map(item => item.id); + let itemsId = mapNavigationModel.items.map((item) => item.id); expect(itemsId).toEqual(["item2"]); const items = [item1, item2Duplicate, item3, item4, item5]; mapNavigationModel.setItems(items); @@ -132,25 +132,25 @@ describe("MapNavigationModel", function() { expect(mapNavigationModel.pinnedItems.length).toEqual(0); expect(mapNavigationModel.visibleItems.length).toEqual(3); collapsedItems = mapNavigationModel.visibleItems.filter( - item => item.controller.collapsed + (item) => item.controller.collapsed ); expect(collapsedItems.length).toEqual(2); - itemsId = mapNavigationModel.items.map(item => item.id); + itemsId = mapNavigationModel.items.map((item) => item.id); expect(itemsId).toEqual(["item1", "item2", "item3", "item4", "item5"]); }); - it("properly adds item to model", function() { + it("properly adds item to model", function () { const items = [item1, item2, item3]; const mapNavigationModel = new MapNavigationModel(terria, items); let collapsedItems = mapNavigationModel.visibleItems.filter( - item => item.controller.collapsed + (item) => item.controller.collapsed ); expect(mapNavigationModel.items.length).toEqual(3); expect(mapNavigationModel.pinnedItems.length).toEqual(1); expect(mapNavigationModel.visibleItems.length).toEqual(2); expect(collapsedItems.length).toEqual(0); - let itemsId = mapNavigationModel.items.map(item => item.id); + let itemsId = mapNavigationModel.items.map((item) => item.id); expect(itemsId).toEqual(["item1", "item2", "item3"]); mapNavigationModel.addItem(item4); @@ -159,10 +159,10 @@ describe("MapNavigationModel", function() { expect(mapNavigationModel.pinnedItems.length).toEqual(1); expect(mapNavigationModel.visibleItems.length).toEqual(4); collapsedItems = mapNavigationModel.visibleItems.filter( - item => item.controller.collapsed + (item) => item.controller.collapsed ); expect(collapsedItems.length).toEqual(2); - itemsId = mapNavigationModel.items.map(item => item.id); + itemsId = mapNavigationModel.items.map((item) => item.id); expect(itemsId).toEqual(["item1", "item2", "item3", "item4", "item5"]); mapNavigationModel.addItem(item2Duplicate); @@ -170,24 +170,24 @@ describe("MapNavigationModel", function() { expect(mapNavigationModel.pinnedItems.length).toEqual(0); expect(mapNavigationModel.visibleItems.length).toEqual(3); collapsedItems = mapNavigationModel.visibleItems.filter( - item => item.controller.collapsed + (item) => item.controller.collapsed ); expect(collapsedItems.length).toEqual(2); - itemsId = mapNavigationModel.items.map(item => item.id); + itemsId = mapNavigationModel.items.map((item) => item.id); expect(itemsId).toEqual(["item1", "item2", "item3", "item4", "item5"]); }); - it("properly adds item to index", function() { + it("properly adds item to index", function () { const items = [item1, item2, item3]; const mapNavigationModel = new MapNavigationModel(terria, items); expect(mapNavigationModel.items.length).toEqual(3); expect(mapNavigationModel.pinnedItems.length).toEqual(1); expect(mapNavigationModel.visibleItems.length).toEqual(2); let collapsedItems = mapNavigationModel.visibleItems.filter( - item => item.controller.collapsed + (item) => item.controller.collapsed ); expect(collapsedItems.length).toEqual(0); - let itemsId = mapNavigationModel.items.map(item => item.id); + let itemsId = mapNavigationModel.items.map((item) => item.id); expect(itemsId).toEqual(["item1", "item2", "item3"]); mapNavigationModel.addItem(item4, 2); @@ -196,21 +196,21 @@ describe("MapNavigationModel", function() { expect(mapNavigationModel.pinnedItems.length).toEqual(1); expect(mapNavigationModel.visibleItems.length).toEqual(4); collapsedItems = mapNavigationModel.visibleItems.filter( - item => item.controller.collapsed + (item) => item.controller.collapsed ); expect(collapsedItems.length).toEqual(2); - itemsId = mapNavigationModel.items.map(item => item.id); + itemsId = mapNavigationModel.items.map((item) => item.id); expect(itemsId).toEqual(["item1", "item5", "item2", "item4", "item3"]); }); - it("properly removes item", function() { + it("properly removes item", function () { const items = [item1, item2, item3, item4, item5]; const mapNavigationModel = new MapNavigationModel(terria, items); expect(mapNavigationModel.items.length).toEqual(5); expect(mapNavigationModel.pinnedItems.length).toEqual(1); expect(mapNavigationModel.visibleItems.length).toEqual(4); let collapsedItems = mapNavigationModel.visibleItems.filter( - item => item.controller.collapsed + (item) => item.controller.collapsed ); expect(collapsedItems.length).toEqual(2); @@ -219,19 +219,19 @@ describe("MapNavigationModel", function() { expect(mapNavigationModel.pinnedItems.length).toEqual(1); expect(mapNavigationModel.visibleItems.length).toEqual(3); collapsedItems = mapNavigationModel.visibleItems.filter( - item => item.controller.collapsed + (item) => item.controller.collapsed ); expect(collapsedItems.length).toEqual(2); }); - it("properly hides item", function() { + it("properly hides item", function () { const items = [item1, item2, item3, item4, item5]; const mapNavigationModel = new MapNavigationModel(terria, items); expect(mapNavigationModel.items.length).toEqual(5); expect(mapNavigationModel.pinnedItems.length).toEqual(1); expect(mapNavigationModel.visibleItems.length).toEqual(4); let collapsedItems = mapNavigationModel.visibleItems.filter( - item => item.controller.collapsed + (item) => item.controller.collapsed ); expect(collapsedItems.length).toEqual(2); @@ -240,19 +240,19 @@ describe("MapNavigationModel", function() { expect(mapNavigationModel.pinnedItems.length).toEqual(1); expect(mapNavigationModel.visibleItems.length).toEqual(3); collapsedItems = mapNavigationModel.visibleItems.filter( - item => item.controller.collapsed + (item) => item.controller.collapsed ); expect(collapsedItems.length).toEqual(2); }); - it("properly collapse item", function() { + it("properly collapse item", function () { const items = [item1, item2, item3, item4, item5]; const mapNavigationModel = new MapNavigationModel(terria, items); expect(mapNavigationModel.items.length).toEqual(5); expect(mapNavigationModel.pinnedItems.length).toEqual(1); expect(mapNavigationModel.visibleItems.length).toEqual(4); let collapsedItems = mapNavigationModel.visibleItems.filter( - item => item.controller.collapsed + (item) => item.controller.collapsed ); expect(collapsedItems.length).toEqual(2); expect(mapNavigationModel.items[0].controller.collapsed).toBeFalsy(); @@ -262,20 +262,20 @@ describe("MapNavigationModel", function() { expect(mapNavigationModel.pinnedItems.length).toEqual(1); expect(mapNavigationModel.visibleItems.length).toEqual(4); collapsedItems = mapNavigationModel.visibleItems.filter( - item => item.controller.collapsed + (item) => item.controller.collapsed ); expect(collapsedItems.length).toEqual(3); expect(mapNavigationModel.items[0].controller.collapsed).toBeTruthy(); mapNavigationModel.setCollapsed(item1.id, false); collapsedItems = mapNavigationModel.visibleItems.filter( - item => item.controller.collapsed + (item) => item.controller.collapsed ); expect(collapsedItems.length).toEqual(2); expect(mapNavigationModel.items[0].controller.collapsed).toBeFalsy(); }); - it("properly sets pinned", function() { + it("properly sets pinned", function () { const items = [item1, item2, item3, item4, item5]; const mapNavigationModel = new MapNavigationModel(terria, items); spyOn(console, "error"); @@ -286,19 +286,19 @@ describe("MapNavigationModel", function() { expect(mapNavigationModel.pinnedItems.length).toEqual(2); expect(mapNavigationModel.visibleItems.length).toEqual(4); let collapsedItems = mapNavigationModel.visibleItems.filter( - item => item.controller.collapsed + (item) => item.controller.collapsed ); expect(collapsedItems.length).toEqual(2); }); - it("properly moves item", function() { + it("properly moves item", function () { const items = [item1, item2, item3, item4, item5]; const mapNavigationModel = new MapNavigationModel(terria, items); - let itemsId = mapNavigationModel.items.map(item => item.id); + let itemsId = mapNavigationModel.items.map((item) => item.id); expect(itemsId).toEqual(["item1", "item2", "item3", "item4", "item5"]); mapNavigationModel.move(item1.id, item3.id); - itemsId = mapNavigationModel.items.map(item => item.id); + itemsId = mapNavigationModel.items.map((item) => item.id); expect(itemsId).toEqual(["item2", "item3", "item1", "item4", "item5"]); }); }); diff --git a/test/Models/MapboxMapCatalogItemSpec.ts b/test/Models/MapboxMapCatalogItemSpec.ts index 7cc25b35f4d..e32f9d30cbd 100644 --- a/test/Models/MapboxMapCatalogItemSpec.ts +++ b/test/Models/MapboxMapCatalogItemSpec.ts @@ -6,26 +6,26 @@ import CommonStrata from "../../lib/Models/Definition/CommonStrata"; import Terria from "../../lib/Models/Terria"; import MapboxMapCatalogItem from "../../lib/Models/Catalog/CatalogItems/MapboxMapCatalogItem"; -describe("MapboxMapCatalogItem", function() { +describe("MapboxMapCatalogItem", function () { let terria: Terria; - beforeEach(function() { + beforeEach(function () { terria = new Terria(); }); - it("has a type", function() { + it("has a type", function () { expect(MapboxMapCatalogItem.type).toEqual("mapbox-map"); expect(new MapboxMapCatalogItem("test", terria).type).toEqual("mapbox-map"); }); - it("can be created", function() { + it("can be created", function () { new MapboxMapCatalogItem("test", terria); }); - describe("mapItems", function() { + describe("mapItems", function () { it( "returns a MapboxImageryProvider", - action(async function() { + action(async function () { const mapboxItem = new MapboxMapCatalogItem("test", terria); mapboxItem.setTrait(CommonStrata.user, "mapId", "123"); mapboxItem.setTrait(CommonStrata.user, "accessToken", "456"); @@ -41,16 +41,16 @@ describe("MapboxMapCatalogItem", function() { ); }); - describe("the constructed MapboxImageryProvider", function() { + describe("the constructed MapboxImageryProvider", function () { let item: MapboxMapCatalogItem; - beforeEach(function() { + beforeEach(function () { item = new MapboxMapCatalogItem("test", terria); item.setTrait(CommonStrata.user, "mapId", "123"); item.setTrait(CommonStrata.user, "accessToken", "456"); }); - it("sets the url from traits", function() { + it("sets the url from traits", function () { item.setTrait(CommonStrata.user, "url", "https://some.server.com/v4"); const imageryProvider = getImageryProvider(item); expect(imageryProvider.url.startsWith("https://some.server.com/v4")).toBe( @@ -58,27 +58,27 @@ describe("MapboxMapCatalogItem", function() { ); }); - it("sets the mapId from traits", function() { + it("sets the mapId from traits", function () { const imageryProvider = getImageryProvider(item); expect( imageryProvider.url.startsWith("https://api.mapbox.com/v4/123") ).toBe(true); }); - it("sets the accessToken from traits", function() { + it("sets the accessToken from traits", function () { const imageryProvider = getImageryProvider(item); const uri = new URI(imageryProvider.url); expect(uri.search(true).access_token).toBe("456"); }); - it("sets the format from traits", function() { + it("sets the format from traits", function () { item.setTrait(CommonStrata.user, "format", "jpg"); const imageryProvider = getImageryProvider(item); const uri = new URI(imageryProvider.url); expect(uri.path().endsWith(".jpg")).toBe(true); }); - it("sets the maximumLevel from traits", function() { + it("sets the maximumLevel from traits", function () { item.setTrait(CommonStrata.user, "maximumLevel", 30); const imageryProvider = getImageryProvider(item); expect(imageryProvider.maximumLevel).toBe(30); diff --git a/test/Models/MapboxStyleCatalogItemSpec.ts b/test/Models/MapboxStyleCatalogItemSpec.ts index 21ab4c5dc4a..0c2b2163344 100644 --- a/test/Models/MapboxStyleCatalogItemSpec.ts +++ b/test/Models/MapboxStyleCatalogItemSpec.ts @@ -5,26 +5,26 @@ import CommonStrata from "../../lib/Models/Definition/CommonStrata"; import MapboxStyleCatalogItem from "../../lib/Models/Catalog/CatalogItems/MapboxStyleCatalogItem"; import Terria from "../../lib/Models/Terria"; -describe("MapboxStyleCatalogItem", function() { +describe("MapboxStyleCatalogItem", function () { let terria: Terria; - beforeEach(function() { + beforeEach(function () { terria = new Terria(); }); - it("defines a type", function() { + it("defines a type", function () { expect(MapboxStyleCatalogItem.type).toBe("mapbox-style"); expect(new MapboxStyleCatalogItem("test", terria).type).toBe( "mapbox-style" ); }); - it("can be created", function() { + it("can be created", function () { new MapboxStyleCatalogItem("test", terria); }); - describe("mapItems ImageryPart", function() { - it("has a MapboxStyleImageryProvider", function() { + describe("mapItems ImageryPart", function () { + it("has a MapboxStyleImageryProvider", function () { const item = new MapboxStyleCatalogItem("test", terria); item.setTrait(CommonStrata.user, "styleId", "123"); item.setTrait(CommonStrata.user, "accessToken", "456"); @@ -37,7 +37,7 @@ describe("MapboxStyleCatalogItem", function() { } }); - it("sets show from traits", function() { + it("sets show from traits", function () { const item = new MapboxStyleCatalogItem("test", terria); item.setTrait(CommonStrata.user, "styleId", "123"); item.setTrait(CommonStrata.user, "accessToken", "456"); @@ -49,7 +49,7 @@ describe("MapboxStyleCatalogItem", function() { } }); - it("sets opacity from traits", function() { + it("sets opacity from traits", function () { const item = new MapboxStyleCatalogItem("test", terria); item.setTrait(CommonStrata.user, "styleId", "123"); item.setTrait(CommonStrata.user, "accessToken", "456"); @@ -62,10 +62,10 @@ describe("MapboxStyleCatalogItem", function() { }); }); - describe("the constructed MapboxStyleImageryProvider", function() { + describe("the constructed MapboxStyleImageryProvider", function () { let item: MapboxStyleCatalogItem; - beforeEach(function() { + beforeEach(function () { item = new MapboxStyleCatalogItem("test", terria); item.setTrait(CommonStrata.user, "styleId", "123"); item.setTrait(CommonStrata.user, "accessToken", "456"); @@ -77,7 +77,7 @@ describe("MapboxStyleCatalogItem", function() { item.setTrait(CommonStrata.user, "attribution", "© Foo author"); }); - it("sets the url from traits", function() { + it("sets the url from traits", function () { item.setTrait( CommonStrata.user, "url", @@ -89,14 +89,14 @@ describe("MapboxStyleCatalogItem", function() { ).toBe(true); }); - it("sets the username from traits", function() { + it("sets the username from traits", function () { const imageryProvider = getImageryProvider(item); expect( imageryProvider.url.startsWith("https://api.mapbox.com/styles/v1/foo") ).toBe(true); }); - it("sets the styleId from traits", function() { + it("sets the styleId from traits", function () { const imageryProvider = getImageryProvider(item); expect( imageryProvider.url.startsWith( @@ -105,13 +105,13 @@ describe("MapboxStyleCatalogItem", function() { ).toBe(true); }); - it("sets the accessToken from traits", function() { + it("sets the accessToken from traits", function () { const imageryProvider = getImageryProvider(item); const uri = new URI(imageryProvider.url); expect(uri.search(true).access_token).toBe("456"); }); - it("sets the tilesize from traits", function() { + it("sets the tilesize from traits", function () { const imageryProvider = getImageryProvider(item); expect( imageryProvider.url.startsWith( @@ -120,7 +120,7 @@ describe("MapboxStyleCatalogItem", function() { ).toBe(true); }); - it("sets the scaleFactor from traits", function() { + it("sets the scaleFactor from traits", function () { const imageryProvider = getImageryProvider(item); expect( imageryProvider.url.startsWith( @@ -129,17 +129,17 @@ describe("MapboxStyleCatalogItem", function() { ).toBe(true); }); - it("sets the minimumLevel from traits", function() { + it("sets the minimumLevel from traits", function () { const imageryProvider = getImageryProvider(item); expect(imageryProvider.minimumLevel).toBe(2); }); - it("sets the maximumLevel from traits", function() { + it("sets the maximumLevel from traits", function () { const imageryProvider = getImageryProvider(item); expect(imageryProvider.maximumLevel).toBe(64); }); - it("sets the credits from traits", function() { + it("sets the credits from traits", function () { const imageryProvider = getImageryProvider(item); expect(imageryProvider.credit.html).toBe("© Foo author"); }); diff --git a/test/Models/NowViewingSpec.js b/test/Models/NowViewingSpec.js index 516a0cffeb7..993377a3972 100644 --- a/test/Models/NowViewingSpec.js +++ b/test/Models/NowViewingSpec.js @@ -3,27 +3,27 @@ var NowViewing = require("../../lib/Models/NowViewing"); var Terria = require("../../lib/Models/Terria"); var Cesium = require("../../lib/Models/Cesium"); -var CesiumWidget = require("terriajs-cesium/Source/Widgets/CesiumWidget/CesiumWidget") - .default; +var CesiumWidget = + require("terriajs-cesium/Source/Widgets/CesiumWidget/CesiumWidget").default; var Leaflet = require("../../lib/Models/Leaflet"); var L = require("leaflet"); var CatalogItem = require("../../lib/Models/CatalogItem"); var supportsWebGL = require("../../lib/Core/supportsWebGL"); -var TileCoordinatesImageryProvider = require("terriajs-cesium/Source/Scene/TileCoordinatesImageryProvider") - .default; +var TileCoordinatesImageryProvider = + require("terriajs-cesium/Source/Scene/TileCoordinatesImageryProvider").default; -describe("NowViewing without a viewer", function() { +describe("NowViewing without a viewer", function () { var terria; var nowViewing; - beforeEach(function() { + beforeEach(function () { terria = new Terria({ baseUrl: "./" }); nowViewing = new NowViewing(terria); }); - it("can add an item", function() { + it("can add an item", function () { var item = new CatalogItem(terria); expect(nowViewing.items.length).toEqual(0); nowViewing.add(item); @@ -36,14 +36,14 @@ var describeIfSupported = supportsWebGL() ? describe : xdescribe; // only run these tests if the browser supports WebGL // the browser may still not show WebGL properly - see TerriaViewer.js for a more precise test if needed -describeIfSupported("NowViewing with a minimal Cesium viewer", function() { +describeIfSupported("NowViewing with a minimal Cesium viewer", function () { var container; var widget; var cesium; var terria; var nowViewing; - beforeEach(function() { + beforeEach(function () { container = document.createElement("div"); document.body.appendChild(container); @@ -59,14 +59,14 @@ describeIfSupported("NowViewing with a minimal Cesium viewer", function() { nowViewing = terria.nowViewing; }); - afterEach(function() { + afterEach(function () { if (widget && !widget.isDestroyed()) { widget = widget.destroy(); } document.body.removeChild(container); }); - it("can raise an item", function() { + it("can raise an item", function () { var item1 = new CatalogItem(terria); var item2 = new CatalogItem(terria); nowViewing.add(item1); @@ -76,7 +76,7 @@ describeIfSupported("NowViewing with a minimal Cesium viewer", function() { expect(nowViewing.items.indexOf(item1)).toEqual(0); }); - it("can lower an item", function() { + it("can lower an item", function () { var item1 = new CatalogItem(terria); var item2 = new CatalogItem(terria); nowViewing.add(item1); @@ -87,13 +87,13 @@ describeIfSupported("NowViewing with a minimal Cesium viewer", function() { }); }); -describe("NowViewing with a minimal Leaflet viewer", function() { +describe("NowViewing with a minimal Leaflet viewer", function () { var container; var leaflet; var terria; var nowViewing; - beforeEach(function() { + beforeEach(function () { terria = new Terria({ baseUrl: "./" }); @@ -108,11 +108,11 @@ describe("NowViewing with a minimal Leaflet viewer", function() { nowViewing = terria.nowViewing; }); - afterEach(function() { + afterEach(function () { document.body.removeChild(container); }); - it("can raise an item", function() { + it("can raise an item", function () { var item1 = new CatalogItem(terria); var item2 = new CatalogItem(terria); nowViewing.add(item1); @@ -122,7 +122,7 @@ describe("NowViewing with a minimal Leaflet viewer", function() { expect(nowViewing.items.indexOf(item1)).toEqual(0); }); - it("can lower an item", function() { + it("can lower an item", function () { var item1 = new CatalogItem(terria); var item2 = new CatalogItem(terria); nowViewing.add(item1); diff --git a/test/Models/SelectableDimensionSpec.ts b/test/Models/SelectableDimensionSpec.ts index b918b3a1984..97bd5ac4e2d 100644 --- a/test/Models/SelectableDimensionSpec.ts +++ b/test/Models/SelectableDimensionSpec.ts @@ -10,9 +10,8 @@ import SelectableDimensions, { describe("SelectableDimension", () => { describe("filterSelectableDimensions", () => { - const filterDefaultPlacement = filterSelectableDimensions( - DEFAULT_PLACEMENT - ); + const filterDefaultPlacement = + filterSelectableDimensions(DEFAULT_PLACEMENT); it("should filter out selectable dimensions with no options", () => { const dimWithNoOptions: SelectableDimension = { @@ -60,9 +59,8 @@ describe("SelectableDimension", () => { }); }); it("should return disabled for checkboxes with no selection", () => { - const checkboxWithNoSelection: SelectableDimension = mkSelectableCheckbox( - DEFAULT_PLACEMENT - ); + const checkboxWithNoSelection: SelectableDimension = + mkSelectableCheckbox(DEFAULT_PLACEMENT); expect(findSelectedValueName(checkboxWithNoSelection)).toBe("Disabled"); }); it("should return enabled for checkboxes with true selection", () => { diff --git a/test/Models/TerriaSpec.ts b/test/Models/TerriaSpec.ts index 3c54b31df0d..975b88b7b1b 100644 --- a/test/Models/TerriaSpec.ts +++ b/test/Models/TerriaSpec.ts @@ -59,18 +59,18 @@ const i18nOptions = { skipInit: true }; -describe("Terria", function() { +describe("Terria", function () { let terria: Terria; - beforeEach(function() { + beforeEach(function () { terria = new Terria({ appBaseHref: "/", baseUrl: "./" }); }); - describe("cesiumBaseUrl", function() { - it("is set when passed as an option when constructing Terria", function() { + describe("cesiumBaseUrl", function () { + it("is set when passed as an option when constructing Terria", function () { terria = new Terria({ appBaseHref: "/", baseUrl: "./", @@ -79,7 +79,7 @@ describe("Terria", function() { expect(terria.cesiumBaseUrl).toBe("some/path/to/cesium/"); }); - it("should default to a path relative to `baseUrl`", function() { + it("should default to a path relative to `baseUrl`", function () { terria = new Terria({ appBaseHref: "/", baseUrl: "some/path/to/terria" @@ -89,7 +89,7 @@ describe("Terria", function() { ); }); - it("should update the baseUrl setting in the cesium module", function() { + it("should update the baseUrl setting in the cesium module", function () { expect( buildModuleUrl("Assets/some/image.png").endsWith( "/build/Cesium/build/Assets/some/image.png" @@ -108,8 +108,8 @@ describe("Terria", function() { }); }); - describe("terria refresh catalog members from magda", function() { - it("refreshes group aspect with given URL", async function() { + describe("terria refresh catalog members from magda", function () { + it("refreshes group aspect with given URL", async function () { function verifyGroups(groupAspect: any, groupNum: number) { const ids = groupAspect.members.map((member: any) => member.id); expect(terria.catalog.group.uniqueId).toEqual("/"); @@ -139,8 +139,8 @@ describe("Terria", function() { }); }); - describe("terria start", function() { - beforeEach(function() { + describe("terria start", function () { + beforeEach(function () { jasmine.Ajax.install(); // Fail all requests by default. jasmine.Ajax.stubRequest(/.*/).andError({}); @@ -178,11 +178,11 @@ describe("Terria", function() { }); }); - afterEach(function() { + afterEach(function () { jasmine.Ajax.uninstall(); }); - it("applies initSources in correct order", async function() { + it("applies initSources in correct order", async function () { expect(terria.initSources.length).toEqual(0); jasmine.Ajax.stubRequest("config.json").andReturn({ responseText: JSON.stringify({ @@ -214,7 +214,7 @@ describe("Terria", function() { // This model is added to the workbench in "init/something.json" - which is loaded before "https://application.url/init/hash-init.json" // So we add a long delay to make sure that `workbench` is overridden by `hash-init.json` - jasmine.Ajax.stubRequest("test.czml").andCallFunction(req => { + jasmine.Ajax.stubRequest("test.czml").andCallFunction((req) => { setTimeout( () => req.respondWith({ @@ -245,7 +245,7 @@ describe("Terria", function() { expect(terria.workbench.items[0].uniqueId).toBe("test-2"); }); - it("works with initializationUrls and initFragmentPaths", async function() { + it("works with initializationUrls and initFragmentPaths", async function () { expect(terria.initSources.length).toEqual(0); jasmine.Ajax.stubRequest("path/to/config/configUrl.json").andReturn({ @@ -277,7 +277,7 @@ describe("Terria", function() { // Note: initFragmentPaths in `initializationUrls` are resolved to the base URL of configURL // - which is path/to/config/ expect( - initSource.options.map(source => + initSource.options.map((source) => isInitFromUrl(source) ? source.initUrl : "" ) ).toEqual([ @@ -286,8 +286,8 @@ describe("Terria", function() { ]); }); - describe("via loadMagdaConfig", function() { - it("should dereference uniqueId to `/`", function(done) { + describe("via loadMagdaConfig", function () { + it("should dereference uniqueId to `/`", function (done) { expect(terria.catalog.group.uniqueId).toEqual("/"); jasmine.Ajax.stubRequest(/.*api\/v0\/registry.*/).andReturn({ @@ -302,16 +302,16 @@ describe("Terria", function() { configUrl: "test/Magda/map-config-basic.json", i18nOptions }) - .then(function() { + .then(function () { expect(terria.catalog.group.uniqueId).toEqual("/"); done(); }) - .catch(error => { + .catch((error) => { done.fail(error); }); }); - it("works with basic initializationUrls", function(done) { + it("works with basic initializationUrls", function (done) { jasmine.Ajax.stubRequest(/.*api\/v0\/registry.*/).andReturn({ // terria's "Magda derived url" responseText: mapConfigBasicString @@ -324,7 +324,7 @@ describe("Terria", function() { configUrl: "test/Magda/map-config-basic.json", i18nOptions }) - .then(function() { + .then(function () { expect(terria.initSources.length).toEqual(1); expect(isInitFromUrl(terria.initSources[0])).toEqual(true); if (isInitFromUrl(terria.initSources[0])) { @@ -337,12 +337,12 @@ describe("Terria", function() { } done(); }) - .catch(error => { + .catch((error) => { done.fail(error); }); }); - it("works with v7initializationUrls", async function() { + it("works with v7initializationUrls", async function () { jasmine.Ajax.stubRequest(/.*api\/v0\/registry.*/).andReturn({ // terria's "Magda derived url" responseText: mapConfigBasicString @@ -384,7 +384,7 @@ describe("Terria", function() { ]); } }); - it("works with inline init", async function() { + it("works with inline init", async function () { // inline init jasmine.Ajax.stubRequest(/.*api\/v0\/registry.*/).andReturn({ responseText: mapConfigInlineInitString @@ -414,7 +414,7 @@ describe("Terria", function() { throw "not init source"; } }); - it("parses dereferenced group aspect", async function(done) { + it("parses dereferenced group aspect", async function (done) { expect(terria.catalog.group.uniqueId).toEqual("/"); // dereferenced res jasmine.Ajax.stubRequest(/.*api\/v0\/registry.*/).andReturn({ @@ -425,7 +425,7 @@ describe("Terria", function() { configUrl: "test/Magda/map-config-dereferenced.json", i18nOptions }) - .then(function() { + .then(function () { const groupAspect = mapConfigDereferencedJson.aspects["group"]; const ids = groupAspect.members.map((member: any) => member.id); expect(terria.catalog.group.uniqueId).toEqual("/"); @@ -442,13 +442,13 @@ describe("Terria", function() { }); done(); }) - .catch(error => { + .catch((error) => { done.fail(error); }); }); }); - it("calls `beforeRestoreAppState` before restoring app state from share data", async function() { + it("calls `beforeRestoreAppState` before restoring app state from share data", async function () { terria = new Terria({ appBaseHref: "/", baseUrl: "./" @@ -478,8 +478,8 @@ describe("Terria", function() { }); }); - describe("updateApplicationUrl", function() { - it("works with initializationUrls and initFragmentPaths", async function() { + describe("updateApplicationUrl", function () { + it("works with initializationUrls and initFragmentPaths", async function () { expect(terria.initSources.length).toEqual(0); jasmine.Ajax.install(); @@ -519,7 +519,7 @@ describe("Terria", function() { // Note: initFragmentPaths in hash parameters are resolved to the base URL of application URL // - which is https://application.url/ expect( - initSource.options.map(source => + initSource.options.map((source) => isInitFromUrl(source) ? source.initUrl : "" ) ).toEqual([ @@ -580,7 +580,7 @@ describe("Terria", function() { let newTerria: Terria; let viewState: ViewState; - beforeEach(function() { + beforeEach(function () { newTerria = new Terria({ appBaseHref: "/", baseUrl: "./" }); viewState = new ViewState({ terria: terria, @@ -589,7 +589,7 @@ describe("Terria", function() { }); UrlToCatalogMemberMapping.register( - s => true, + (s) => true, WebMapServiceCatalogItem.type, true ); @@ -622,7 +622,7 @@ describe("Terria", function() { ]); }); - it("initializes user added data group with shared items", async function() { + it("initializes user added data group with shared items", async function () { expect(newTerria.catalog.userAddedDataGroup.members).not.toContain( "itemABC" ); @@ -641,7 +641,7 @@ describe("Terria", function() { ); }); - it("initializes user added data group with shared UrlReference items", async function() { + it("initializes user added data group with shared UrlReference items", async function () { terria.catalog.userAddedDataGroup.addMembersFromJson( CommonStrata.user, [ @@ -670,7 +670,7 @@ describe("Terria", function() { } }); - it("initializes workbench with shared workbench items", async function() { + it("initializes workbench with shared workbench items", async function () { const model1 = ( terria.getModelById(BaseModel, "itemABC") ); @@ -689,7 +689,7 @@ describe("Terria", function() { expect(newTerria.workbench.itemIds).toEqual(terria.workbench.itemIds); }); - it("initializes splitter correctly", async function() { + it("initializes splitter correctly", async function () { const model1 = ( terria.getModelById(BaseModel, "itemABC") ); @@ -719,7 +719,7 @@ describe("Terria", function() { expect(newModel1.splitDirection).toEqual(SplitDirection.RIGHT); }); - it("opens and loads members of shared open groups", async function() { + it("opens and loads members of shared open groups", async function () { const group = ( terria.getModelById(BaseModel, "groupABC") ); @@ -737,8 +737,8 @@ describe("Terria", function() { }); }); - describe("using story route", function() { - beforeEach(async function() { + describe("using story route", function () { + beforeEach(async function () { // These specs must run with a Terria constructed with "appBaseHref": "/" // to make the specs work with Karma runner terria.updateParameters({ @@ -746,13 +746,13 @@ describe("Terria", function() { }); }); - it("sets playStory to 1", async function() { + it("sets playStory to 1", async function () { await terria.updateApplicationUrl( new URL("story/my-story", document.baseURI).toString() ); expect(terria.userProperties.get("playStory")).toBe("1"); }); - it("correctly adds the story share as a datasource", async function() { + it("correctly adds the story share as a datasource", async function () { await terria.updateApplicationUrl( new URL("story/my-story", document.baseURI).toString() ); @@ -766,7 +766,7 @@ describe("Terria", function() { .initSources[0] ); }); - it("correctly adds the story share as a datasource when there's a trailing slash on story url", async function() { + it("correctly adds the story share as a datasource when there's a trailing slash on story url", async function () { await terria.updateApplicationUrl( new URL("story/my-story/", document.baseURI).toString() ); @@ -784,11 +784,11 @@ describe("Terria", function() { }); // Test share keys by serialising from one catalog and deserialising with a reorganised catalog - describe("shareKeys", function() { - describe("with a JSON catalog", function() { + describe("shareKeys", function () { + describe("with a JSON catalog", function () { let newTerria: Terria; let viewState: ViewState; - beforeEach(async function() { + beforeEach(async function () { // Create a config.json in a URL to pass to Terria.start const configUrl = `data:application/json;base64,${btoa( JSON.stringify({ @@ -806,7 +806,7 @@ describe("Terria", function() { }); await Promise.all( - [terria, newTerria].map(t => t.start({ configUrl, i18nOptions })) + [terria, newTerria].map((t) => t.start({ configUrl, i18nOptions })) ); terria.catalog.group.addMembersFromJson(CommonStrata.definition, [ @@ -817,8 +817,7 @@ describe("Terria", function() { { name: "Random CSV", type: "csv", - url: - "data:text/csv,lon%2Clat%2Cval%2Cdate%0A151%2C-31%2C15%2C2010%0A151%2C-31%2C15%2C2011" + url: "data:text/csv,lon%2Clat%2Cval%2Cdate%0A151%2C-31%2C15%2C2010%0A151%2C-31%2C15%2C2011" } ] } @@ -836,8 +835,7 @@ describe("Terria", function() { { name: "My random CSV", type: "csv", - url: - "data:text/csv,lon%2Clat%2Cval%2Cdate%0A151%2C-31%2C15%2C2010%0A151%2C-31%2C15%2C2011", + url: "data:text/csv,lon%2Clat%2Cval%2Cdate%0A151%2C-31%2C15%2C2010%0A151%2C-31%2C15%2C2011", shareKeys: ["//Old group/Random CSV"] } ] @@ -847,7 +845,7 @@ describe("Terria", function() { ]); }); - it("correctly applies user stratum changes to moved item", async function() { + it("correctly applies user stratum changes to moved item", async function () { const csv = terria.getModelById( CsvCatalogItem, "//Old group/Random CSV" @@ -868,7 +866,7 @@ describe("Terria", function() { expect(newCsv?.opacity).toBe(0.5); }); - it("correctly adds moved item to workbench and timeline", async function() { + it("correctly adds moved item to workbench and timeline", async function () { const csv = terria.getModelById( CsvCatalogItem, "//Old group/Random CSV" @@ -896,7 +894,7 @@ describe("Terria", function() { }); }); - describe("with a Magda catalog", function() { + describe("with a Magda catalog", function () { // Simulate same as above but with Magda catalogs // This is really messy before a proper MagdaCatalogProvider is made // that can call a (currently not yet written) Magda API to find the location of @@ -908,7 +906,7 @@ describe("Terria", function() { let newTerria: Terria; let viewState: ViewState; - beforeEach(async function() { + beforeEach(async function () { // Create a config.json in a URL to pass to Terria.start const configUrl = "https://magda.example.com/api/v0/registry/records/map-config-example?optionalAspect=terria-config&optionalAspect=terria-init&optionalAspect=group&dereference=true"; @@ -980,11 +978,11 @@ describe("Terria", function() { jasmine.Ajax.stubRequest(configUrl).andError({}); }); - afterEach(function() { + afterEach(function () { jasmine.Ajax.uninstall(); }); - it("correctly applies user stratum changes to moved item", async function() { + it("correctly applies user stratum changes to moved item", async function () { const oldGroupRef = terria.getModelById( MagdaReference, "6b24aa39-1aa7-48d1-b6a6-9e755aff4476" @@ -1044,7 +1042,7 @@ describe("Terria", function() { expect(newCsv?.opacity).toBe(0.5); }); - it("correctly adds moved item to workbench and timeline", async function() { + it("correctly adds moved item to workbench and timeline", async function () { const oldGroupRef = terria.getModelById( MagdaReference, "6b24aa39-1aa7-48d1-b6a6-9e755aff4476" @@ -1114,8 +1112,8 @@ describe("Terria", function() { }); }); - describe("proxyConfiguration", function() { - beforeEach(function() { + describe("proxyConfiguration", function () { + beforeEach(function () { jasmine.Ajax.install(); jasmine.Ajax.stubRequest(/.*(test\/init\/configProxy).*/).andReturn({ responseText: JSON.stringify( @@ -1129,17 +1127,17 @@ describe("Terria", function() { }); }); - afterEach(function() { + afterEach(function () { jasmine.Ajax.uninstall(); }); - it("initializes proxy with parameters from config file", function(done) { + it("initializes proxy with parameters from config file", function (done) { terria .start({ configUrl: "test/init/configProxy.json", i18nOptions }) - .then(function() { + .then(function () { expect(terria.corsProxy.baseProxyUrl).toBe("/myproxy/"); expect(terria.corsProxy.proxyDomains).toEqual([ "example.com", @@ -1147,20 +1145,20 @@ describe("Terria", function() { ]); done(); }) - .catch(error => { + .catch((error) => { done.fail(); }); }); }); - describe("removeModelReferences", function() { + describe("removeModelReferences", function () { let model: SimpleCatalogItem; - beforeEach(function() { + beforeEach(function () { model = new SimpleCatalogItem("testId", terria); terria.addModel(model); }); - it("removes the model from workbench", function() { + it("removes the model from workbench", function () { terria.workbench.add(model); terria.removeModelReferences(model); expect(terria.workbench).not.toContain(model); @@ -1168,7 +1166,7 @@ describe("Terria", function() { it( "it removes picked features & selected feature for the model", - action(function() { + action(function () { terria.pickedFeatures = new PickedFeatures(); const feature = new Feature({}); terria.selectedFeature = feature; @@ -1180,7 +1178,7 @@ describe("Terria", function() { }) ); - it("unregisters the model from Terria", function() { + it("unregisters the model from Terria", function () { terria.removeModelReferences(model); expect(terria.getModelById(BaseModel, "testId")).toBeUndefined(); }); @@ -1215,9 +1213,9 @@ describe("Terria", function() { // .catch(done.fail); // }); - describe("applyInitData", function() { - describe("when pickedFeatures is not present in initData", function() { - it("unsets the feature picking state if `canUnsetFeaturePickingState` is `true`", async function() { + describe("applyInitData", function () { + describe("when pickedFeatures is not present in initData", function () { + it("unsets the feature picking state if `canUnsetFeaturePickingState` is `true`", async function () { terria.pickedFeatures = new PickedFeatures(); terria.selectedFeature = new Entity({ name: "selected" }) as Feature; await terria.applyInitData({ @@ -1228,7 +1226,7 @@ describe("Terria", function() { expect(terria.selectedFeature).toBeUndefined(); }); - it("otherwise, should not unset feature picking state", async function() { + it("otherwise, should not unset feature picking state", async function () { terria.pickedFeatures = new PickedFeatures(); terria.selectedFeature = new Entity({ name: "selected" }) as Feature; await terria.applyInitData({ @@ -1239,7 +1237,7 @@ describe("Terria", function() { }); }); - describe("Sets workbench contents correctly", function() { + describe("Sets workbench contents correctly", function () { interface ExtendedLoadWithXhr { (): any; load: { (...args: any[]): any; calls: any }; @@ -1293,9 +1291,9 @@ describe("Terria", function() { let loadMapItemsWms: any = undefined; let loadMapItemsArcGisMap: any = undefined; let loadMapItemsArcGisFeature: any = undefined; - beforeEach(function() { + beforeEach(function () { const realLoadWithXhr = loadWithXhr.load; - spyOn(loadWithXhr, "load").and.callFake(function(...args: any[]) { + spyOn(loadWithXhr, "load").and.callFake(function (...args: any[]) { const url = args[0]; if ( @@ -1350,7 +1348,7 @@ describe("Terria", function() { ).and.returnValue(Result.none()); }); - it("when a workbench item is a simple map server group", async function() { + it("when a workbench item is a simple map server group", async function () { await terria.applyInitData({ initData: { catalog: [mapServerGroupModel], @@ -1361,7 +1359,7 @@ describe("Terria", function() { expect(loadMapItemsArcGisMap).toHaveBeenCalledTimes(1); }); - it("when a workbench item is a referenced map server group", async function() { + it("when a workbench item is a referenced map server group", async function () { await terria.applyInitData({ initData: { catalog: [magdaRecordDerefencedToFeatureServerGroup], @@ -1372,7 +1370,7 @@ describe("Terria", function() { expect(loadMapItemsArcGisFeature).toHaveBeenCalledTimes(1); }); - it("when a workbench item is a referenced wms", async function() { + it("when a workbench item is a referenced wms", async function () { await terria.applyInitData({ initData: { catalog: [magdaRecordDerefencedToWms], @@ -1383,7 +1381,7 @@ describe("Terria", function() { expect(loadMapItemsWms).toHaveBeenCalledTimes(1); }); - it("when the workbench has more than one items", async function() { + it("when the workbench has more than one items", async function () { await terria.applyInitData({ initData: { catalog: [ @@ -1405,7 +1403,7 @@ describe("Terria", function() { expect(loadMapItemsArcGisFeature).toHaveBeenCalledTimes(1); }); - it("when the workbench has an unknown item", async function() { + it("when the workbench has an unknown item", async function () { await terria.applyInitData({ initData: { catalog: [ @@ -1428,7 +1426,7 @@ describe("Terria", function() { expect(loadMapItemsArcGisFeature).toHaveBeenCalledTimes(1); }); - it("when a workbench item has errors", async function() { + it("when a workbench item has errors", async function () { let error: TerriaError | undefined = undefined; try { await terria.applyInitData({ @@ -1461,7 +1459,7 @@ describe("Terria", function() { }); }); - describe("mapSettings", function() { + describe("mapSettings", function () { it("properly interprets map hash parameter", async () => { const getLocalPropertySpy = spyOn(terria, "getLocalProperty"); //@ts-ignore @@ -1526,7 +1524,7 @@ describe("Terria", function() { expect(terria.timelineStack.alwaysShowingTimeline).toBeTruthy(); expect(setBaseMapSpy).toHaveBeenCalledWith( terria.baseMapsModel.baseMapItems.find( - item => item.item.uniqueId === "basemap-natural-earth-II" + (item) => item.item.uniqueId === "basemap-natural-earth-II" )?.item ); @@ -1535,8 +1533,8 @@ describe("Terria", function() { }); }); - describe("basemaps", function() { - it("when no base maps are specified load defaultBaseMaps", async function() { + describe("basemaps", function () { + it("when no base maps are specified load defaultBaseMaps", async function () { await terria.start({ configUrl: "" }); terria.applyInitData({ initData: {} @@ -1549,7 +1547,7 @@ describe("Terria", function() { ); }); - it("propperly loads base maps", async function() { + it("propperly loads base maps", async function () { await terria.start({ configUrl: "" }); terria.applyInitData({ initData: { @@ -1593,8 +1591,8 @@ describe("Terria", function() { }); }); - describe("loadPickedFeatures", function() { - beforeEach(async function() { + describe("loadPickedFeatures", function () { + beforeEach(async function () { // Attach cesium viewer and wait for it to be loaded const container = document.createElement("div"); document.body.appendChild(container); @@ -1602,7 +1600,7 @@ describe("Terria", function() { return (terria.mainViewer as any)._cesiumPromise; }); - it("sets the pickCoords", async function() { + it("sets the pickCoords", async function () { expect(terria.currentViewer instanceof Cesium).toBeTruthy(); await terria.loadPickedFeatures({ pickCoords: { @@ -1625,7 +1623,7 @@ describe("Terria", function() { } }); - it("sets the selectedFeature", async function() { + it("sets the selectedFeature", async function () { const testItem = new SimpleCatalogItem("test", terria); const ds = new CustomDataSource("ds"); const entity = new Entity({ name: "foo" }); @@ -1662,7 +1660,7 @@ describe("Terria", function() { }); }); - it("customRequestSchedulerLimits sets RequestScheduler limits for domains", async function() { + it("customRequestSchedulerLimits sets RequestScheduler limits for domains", async function () { const configUrl = `data:application/json;base64,${btoa( JSON.stringify({ initializationUrls: [], diff --git a/test/Models/TimeSeriesStackSpec.js b/test/Models/TimeSeriesStackSpec.js index 9d117f90b3d..e792f86e07f 100644 --- a/test/Models/TimeSeriesStackSpec.js +++ b/test/Models/TimeSeriesStackSpec.js @@ -4,10 +4,10 @@ var TimelineStack = require("../../lib/Models/TimelineStack"); var CatalogItem = require("../../lib/Models/CatalogItem"); var Terria = require("../../lib/Models/Terria"); -describe("TimeSeriesStack", function() { +describe("TimeSeriesStack", function () { var clock, stack, terria; - beforeEach(function() { + beforeEach(function () { terria = new Terria({ baseUrl: "./" }); @@ -17,29 +17,29 @@ describe("TimeSeriesStack", function() { stack = new TimelineStack(terria, clock); }); - describe("when one layer is added", function() { + describe("when one layer is added", function () { var catalogItem; - beforeEach(function() { + beforeEach(function () { catalogItem = new CatalogItem(terria); stack.addLayerToTop(catalogItem); }); - it("topLayer should be the layer that's been added", function() { + it("topLayer should be the layer that's been added", function () { expect(stack.topLayer).toBe(catalogItem); }); - it("the global clock should take that layer's clock", function() { + it("the global clock should take that layer's clock", function () { expect(clock.setCatalogItem.calls.mostRecent().args[0]).toEqual( catalogItem ); }); }); - describe("when two layers are added", function() { + describe("when two layers are added", function () { var catalogItem1, catalogItem2; - beforeEach(function() { + beforeEach(function () { catalogItem1 = new CatalogItem(terria); catalogItem2 = new CatalogItem(terria); @@ -47,21 +47,21 @@ describe("TimeSeriesStack", function() { stack.addLayerToTop(catalogItem2); }); - it("topLayer is the second one", function() { + it("topLayer is the second one", function () { expect(stack.topLayer).toBe(catalogItem2); }); - it("the global clock should be set to the second layer's value", function() { + it("the global clock should be set to the second layer's value", function () { expect(clock.setCatalogItem.calls.mostRecent().args[0]).toEqual( catalogItem2 ); }); }); - describe("when two layers are added and the second is removed", function() { + describe("when two layers are added and the second is removed", function () { var catalogItem1, catalogItem2; - beforeEach(function() { + beforeEach(function () { catalogItem1 = new CatalogItem(terria); catalogItem2 = new CatalogItem(terria); @@ -70,21 +70,21 @@ describe("TimeSeriesStack", function() { stack.removeLayer(catalogItem2); }); - it("topLayer is the first one", function() { + it("topLayer is the first one", function () { expect(stack.topLayer).toBe(catalogItem1); }); - it("the global clock should have been set back to the first layer", function() { + it("the global clock should have been set back to the first layer", function () { expect(clock.setCatalogItem.calls.mostRecent().args[0]).toEqual( catalogItem1 ); }); }); - describe("when two layers are added and the first is removed", function() { + describe("when two layers are added and the first is removed", function () { var catalogItem1, catalogItem2; - beforeEach(function() { + beforeEach(function () { catalogItem1 = new CatalogItem(terria); catalogItem2 = new CatalogItem(terria); @@ -93,21 +93,21 @@ describe("TimeSeriesStack", function() { stack.removeLayer(catalogItem1); }); - it("topLayer is still the second one", function() { + it("topLayer is still the second one", function () { expect(stack.topLayer).toBe(catalogItem2); }); - it("the global clock should still be set to the second layer's value", function() { + it("the global clock should still be set to the second layer's value", function () { expect(clock.setCatalogItem.calls.mostRecent().args[0]).toEqual( catalogItem2 ); }); }); - describe("when two layers are added and the first is added again", function() { + describe("when two layers are added and the first is added again", function () { var catalogItem1, catalogItem2; - beforeEach(function() { + beforeEach(function () { catalogItem1 = new CatalogItem(terria); catalogItem2 = new CatalogItem(terria); @@ -116,11 +116,11 @@ describe("TimeSeriesStack", function() { stack.addLayerToTop(catalogItem1); }); - it("topLayer should be the first one", function() { + it("topLayer should be the first one", function () { expect(stack.topLayer).toBe(catalogItem1); }); - it("the stack should only contain two layers still", function() { + it("the stack should only contain two layers still", function () { // We don't want to abuse the inner API, so determine that there's only two in the stack by doing two removals // and checking that topLayer is now undefined. stack.removeLayer(catalogItem1); @@ -129,14 +129,14 @@ describe("TimeSeriesStack", function() { expect(stack.topLayer).toBeUndefined(); }); - it("the global clock should still be set to the first layer's value", function() { + it("the global clock should still be set to the first layer's value", function () { expect(clock.setCatalogItem.calls.mostRecent().args[0]).toEqual( catalogItem1 ); }); }); - it("when the stack is emptied, the global clock should stop", function() { + it("when the stack is emptied, the global clock should stop", function () { var catalogItem = new CatalogItem(terria); stack.addLayerToTop(catalogItem); @@ -147,16 +147,16 @@ describe("TimeSeriesStack", function() { expect(stack.clock.shouldAnimate).toBe(false); }); - describe("topLayer should return undefined", function() { - it("on init", function() {}); + describe("topLayer should return undefined", function () { + it("on init", function () {}); - it("after having layers added and removed", function() { + it("after having layers added and removed", function () { var catalogItem = new CatalogItem(terria); stack.addLayerToTop(catalogItem); stack.removeLayer(catalogItem); }); - afterEach(function() { + afterEach(function () { expect(stack.topLayer).toBeUndefined(); }); }); diff --git a/test/Models/TimelineStackSpec.ts b/test/Models/TimelineStackSpec.ts index a5b67a48639..65055e16fbe 100644 --- a/test/Models/TimelineStackSpec.ts +++ b/test/Models/TimelineStackSpec.ts @@ -2,11 +2,11 @@ import WebMapServiceCatalogItem from "../../lib/Models/Catalog/Ows/WebMapService import Terria from "../../lib/Models/Terria"; import { when } from "mobx"; -describe("TimelineStack", function() { +describe("TimelineStack", function () { let terria: Terria; let wms: WebMapServiceCatalogItem; - beforeEach(async function() { + beforeEach(async function () { terria = new Terria({ baseUrl: "./" }); @@ -19,19 +19,19 @@ describe("TimelineStack", function() { terria.timelineStack.activate(); }); - afterEach(function() { + afterEach(function () { terria.timelineStack.deactivate(); }); - it(" - is populated with items", async function() { + it(" - is populated with items", async function () { expect(terria.timelineStack.items.length).toBe(1); }); - it(" - contains method works", async function() { + it(" - contains method works", async function () { expect(terria.timelineStack.contains(wms)).toBe(true); }); - it(" - gets the right item from the top", async function() { + it(" - gets the right item from the top", async function () { expect(terria.timelineStack.top).toBe(wms); const wms2 = new WebMapServiceCatalogItem("test2", terria); @@ -46,7 +46,7 @@ describe("TimelineStack", function() { expect(terria.timelineStack.top).toBe(wms); }); - it("automatically syncs the clock with the top item", async function() { + it("automatically syncs the clock with the top item", async function () { const wms2 = new WebMapServiceCatalogItem("test2", terria); terria.addModel(wms2); wms2.setTrait("definition", "url", "test/WMS/comma_sep_datetimes.xml"); diff --git a/test/Models/UserDrawingSpec.ts b/test/Models/UserDrawingSpec.ts index 4f40504c407..e5f3f7c233a 100644 --- a/test/Models/UserDrawingSpec.ts +++ b/test/Models/UserDrawingSpec.ts @@ -15,8 +15,8 @@ import Feature from "../../lib/Models/Feature"; const describeIfSupported = supportsWebGL() ? describe : xdescribe; -describeIfSupported("UserDrawing that requires WebGL", function() { - it("changes cursor to crosshair when entering drawing mode", function(done) { +describeIfSupported("UserDrawing that requires WebGL", function () { + it("changes cursor to crosshair when entering drawing mode", function (done) { const terria = new Terria(); const container = document.createElement("div"); document.body.appendChild(container); @@ -42,14 +42,14 @@ describeIfSupported("UserDrawing that requires WebGL", function() { }); }); -describe("UserDrawing", function() { +describe("UserDrawing", function () { let terria: Terria; - beforeEach(function() { + beforeEach(function () { terria = new Terria(); }); - it("will use default options if options are not specified", function() { + it("will use default options if options are not specified", function () { var options = { terria: terria }; var userDrawing = new UserDrawing(options); @@ -62,10 +62,10 @@ describe("UserDrawing", function() { ); }); - it("getDialogMessage contains callback message if callback is specified", function() { + it("getDialogMessage contains callback message if callback is specified", function () { var options = { terria: terria, - onMakeDialogMessage: function() { + onMakeDialogMessage: function () { return "HELLO"; } }; @@ -80,14 +80,14 @@ describe("UserDrawing", function() { ); }); - it("listens for user picks on map after entering drawing mode", function() { + it("listens for user picks on map after entering drawing mode", function () { var userDrawing = new UserDrawing({ terria }); expect(userDrawing.terria.mapInteractionModeStack.length).toEqual(0); userDrawing.enterDrawMode(); expect(userDrawing.terria.mapInteractionModeStack.length).toEqual(1); }); - it("disables feature info requests when in drawing mode", function() { + it("disables feature info requests when in drawing mode", function () { var options = { terria: terria }; var userDrawing = new UserDrawing(options); expect(userDrawing.terria.allowFeatureInfoRequests).toEqual(true); @@ -95,7 +95,7 @@ describe("UserDrawing", function() { expect(userDrawing.terria.allowFeatureInfoRequests).toEqual(false); }); - it("re-enables feature info requests on cleanup", function() { + it("re-enables feature info requests on cleanup", function () { var options = { terria: terria }; var userDrawing = new UserDrawing(options); userDrawing.enterDrawMode(); @@ -104,7 +104,7 @@ describe("UserDrawing", function() { expect(userDrawing.terria.allowFeatureInfoRequests).toEqual(true); }); - it("ensures onPointClicked callback is called when point is picked by user", function() { + it("ensures onPointClicked callback is called when point is picked by user", function () { const onPointClicked = jasmine.createSpy(); const userDrawing = new UserDrawing({ terria, onPointClicked }); userDrawing.enterDrawMode(); @@ -116,13 +116,14 @@ describe("UserDrawing", function() { -3804299.6786334896 ); runInAction(() => { - userDrawing.terria.mapInteractionModeStack[0].pickedFeatures = pickedFeatures; + userDrawing.terria.mapInteractionModeStack[0].pickedFeatures = + pickedFeatures; }); const pointEntities = onPointClicked.calls.mostRecent().args[0]; expect(pointEntities.entities.values.length).toEqual(1); }); - it("ensures graphics are added when point is picked by user", async function() { + it("ensures graphics are added when point is picked by user", async function () { const userDrawing = new UserDrawing({ terria }); expect(userDrawing.pointEntities.entities.values.length).toEqual(0); expect(userDrawing.otherEntities.entities.values.length).toEqual(0); @@ -135,13 +136,14 @@ describe("UserDrawing", function() { -3804299.6786334896 ); runInAction(() => { - userDrawing.terria.mapInteractionModeStack[0].pickedFeatures = pickedFeatures; + userDrawing.terria.mapInteractionModeStack[0].pickedFeatures = + pickedFeatures; }); expect(userDrawing.pointEntities.entities.values.length).toEqual(1); expect(userDrawing.otherEntities.entities.values.length).toEqual(1); }); - it("ensures graphics are updated when points change", function() { + it("ensures graphics are updated when points change", function () { const options = { terria: terria }; const userDrawing = new UserDrawing(options); expect(userDrawing.pointEntities.entities.values.length).toEqual(0); @@ -156,7 +158,8 @@ describe("UserDrawing", function() { pickedFeatures.pickPosition = new Cartesian3(x, y, z); runInAction(() => { - userDrawing.terria.mapInteractionModeStack[0].pickedFeatures = pickedFeatures; + userDrawing.terria.mapInteractionModeStack[0].pickedFeatures = + pickedFeatures; }); // Check point @@ -195,7 +198,8 @@ describe("UserDrawing", function() { const newZ = 3551306.84427321; newPickedFeatures.pickPosition = new Cartesian3(newX, newY, newZ); runInAction(() => { - userDrawing.terria.mapInteractionModeStack[0].pickedFeatures = newPickedFeatures; + userDrawing.terria.mapInteractionModeStack[0].pickedFeatures = + newPickedFeatures; }); // Check point @@ -228,7 +232,7 @@ describe("UserDrawing", function() { } }); - it("returns correct button text for any given number of points on map", function() { + it("returns correct button text for any given number of points on map", function () { const options = { terria: terria }; const userDrawing = new UserDrawing(options); @@ -245,7 +249,7 @@ describe("UserDrawing", function() { ); }); - it("cleans up when cleanup is called", function() { + it("cleans up when cleanup is called", function () { const options = { terria: terria }; const userDrawing = new UserDrawing(options); expect(userDrawing.pointEntities.entities.values.length).toEqual(0); @@ -260,7 +264,8 @@ describe("UserDrawing", function() { -3804299.6786334896 ); runInAction(() => { - userDrawing.terria.mapInteractionModeStack[0].pickedFeatures = pickedFeatures; + userDrawing.terria.mapInteractionModeStack[0].pickedFeatures = + pickedFeatures; }); expect(userDrawing.pointEntities.entities.values.length).toEqual(1); @@ -273,7 +278,7 @@ describe("UserDrawing", function() { expect((userDrawing).closeLoop).toBeFalsy(); }); - it("ensures onCleanUp callback is called when clean up occurs", function() { + it("ensures onCleanUp callback is called when clean up occurs", function () { const onCleanUp = jasmine.createSpy(); const userDrawing = new UserDrawing({ terria, onCleanUp }); userDrawing.enterDrawMode(); @@ -282,7 +287,7 @@ describe("UserDrawing", function() { expect(onCleanUp).toHaveBeenCalled(); }); - it("function clickedExistingPoint detects and handles if existing point is clicked", function() { + it("function clickedExistingPoint detects and handles if existing point is clicked", function () { const userDrawing = new UserDrawing({ terria }); userDrawing.enterDrawMode(); const pickedFeatures = new PickedFeatures(); @@ -294,12 +299,12 @@ describe("UserDrawing", function() { CesiumMath.toRadians(-35.309), CesiumMath.toRadians(0) ); - const pt1CartesianPosition = Ellipsoid.WGS84.cartographicToCartesian( - pt1Position - ); + const pt1CartesianPosition = + Ellipsoid.WGS84.cartographicToCartesian(pt1Position); pickedFeatures.pickPosition = pt1CartesianPosition; runInAction(() => { - userDrawing.terria.mapInteractionModeStack[0].pickedFeatures = pickedFeatures; + userDrawing.terria.mapInteractionModeStack[0].pickedFeatures = + pickedFeatures; }); // Second point @@ -308,12 +313,12 @@ describe("UserDrawing", function() { CesiumMath.toRadians(-35.311), CesiumMath.toRadians(0) ); - const pt2CartesianPosition = Ellipsoid.WGS84.cartographicToCartesian( - pt2Position - ); + const pt2CartesianPosition = + Ellipsoid.WGS84.cartographicToCartesian(pt2Position); pickedFeatures.pickPosition = pt2CartesianPosition; runInAction(() => { - userDrawing.terria.mapInteractionModeStack[0].pickedFeatures = pickedFeatures; + userDrawing.terria.mapInteractionModeStack[0].pickedFeatures = + pickedFeatures; }); // Third point @@ -322,12 +327,12 @@ describe("UserDrawing", function() { CesiumMath.toRadians(-35.308), CesiumMath.toRadians(0) ); - const pt3CartesianPosition = Ellipsoid.WGS84.cartographicToCartesian( - pt3Position - ); + const pt3CartesianPosition = + Ellipsoid.WGS84.cartographicToCartesian(pt3Position); pickedFeatures.pickPosition = pt3CartesianPosition; runInAction(() => { - userDrawing.terria.mapInteractionModeStack[0].pickedFeatures = pickedFeatures; + userDrawing.terria.mapInteractionModeStack[0].pickedFeatures = + pickedFeatures; }); expect((userDrawing).closeLoop).toBeFalsy(); @@ -338,14 +343,15 @@ describe("UserDrawing", function() { const pt1Entity = userDrawing.pointEntities.entities.values[0]; pickedFeatures.features = [pt1Entity as Feature]; runInAction(() => { - userDrawing.terria.mapInteractionModeStack[0].pickedFeatures = pickedFeatures; + userDrawing.terria.mapInteractionModeStack[0].pickedFeatures = + pickedFeatures; }); expect((userDrawing).closeLoop).toBeTruthy(); expect(userDrawing.pointEntities.entities.values.length).toEqual(3); }); - it("loop does not close if polygon is not allowed", function() { + it("loop does not close if polygon is not allowed", function () { const options = { terria: terria, allowPolygon: false }; const userDrawing = new UserDrawing(options); userDrawing.enterDrawMode(); @@ -358,12 +364,12 @@ describe("UserDrawing", function() { CesiumMath.toRadians(-35.309), CesiumMath.toRadians(0) ); - const pt1CartesianPosition = Ellipsoid.WGS84.cartographicToCartesian( - pt1Position - ); + const pt1CartesianPosition = + Ellipsoid.WGS84.cartographicToCartesian(pt1Position); pickedFeatures.pickPosition = pt1CartesianPosition; runInAction(() => { - userDrawing.terria.mapInteractionModeStack[0].pickedFeatures = pickedFeatures; + userDrawing.terria.mapInteractionModeStack[0].pickedFeatures = + pickedFeatures; }); // Second point @@ -372,12 +378,12 @@ describe("UserDrawing", function() { CesiumMath.toRadians(-35.311), CesiumMath.toRadians(0) ); - const pt2CartesianPosition = Ellipsoid.WGS84.cartographicToCartesian( - pt2Position - ); + const pt2CartesianPosition = + Ellipsoid.WGS84.cartographicToCartesian(pt2Position); pickedFeatures.pickPosition = pt2CartesianPosition; runInAction(() => { - userDrawing.terria.mapInteractionModeStack[0].pickedFeatures = pickedFeatures; + userDrawing.terria.mapInteractionModeStack[0].pickedFeatures = + pickedFeatures; }); // Third point @@ -386,12 +392,12 @@ describe("UserDrawing", function() { CesiumMath.toRadians(-35.308), CesiumMath.toRadians(0) ); - const pt3CartesianPosition = Ellipsoid.WGS84.cartographicToCartesian( - pt3Position - ); + const pt3CartesianPosition = + Ellipsoid.WGS84.cartographicToCartesian(pt3Position); pickedFeatures.pickPosition = pt3CartesianPosition; runInAction(() => { - userDrawing.terria.mapInteractionModeStack[0].pickedFeatures = pickedFeatures; + userDrawing.terria.mapInteractionModeStack[0].pickedFeatures = + pickedFeatures; }); expect((userDrawing).closeLoop).toBeFalsy(); @@ -402,14 +408,15 @@ describe("UserDrawing", function() { const pt1Entity = userDrawing.pointEntities.entities.values[0]; pickedFeatures.features = [pt1Entity as Feature]; runInAction(() => { - userDrawing.terria.mapInteractionModeStack[0].pickedFeatures = pickedFeatures; + userDrawing.terria.mapInteractionModeStack[0].pickedFeatures = + pickedFeatures; }); expect((userDrawing).closeLoop).toBeFalsy(); expect(userDrawing.pointEntities.entities.values.length).toEqual(2); }); - it("polygon is only drawn once", function() { + it("polygon is only drawn once", function () { const userDrawing = new UserDrawing({ terria }); userDrawing.enterDrawMode(); const pickedFeatures = new PickedFeatures(); @@ -421,12 +428,12 @@ describe("UserDrawing", function() { CesiumMath.toRadians(-35.309), CesiumMath.toRadians(0) ); - const pt1CartesianPosition = Ellipsoid.WGS84.cartographicToCartesian( - pt1Position - ); + const pt1CartesianPosition = + Ellipsoid.WGS84.cartographicToCartesian(pt1Position); pickedFeatures.pickPosition = pt1CartesianPosition; runInAction(() => { - userDrawing.terria.mapInteractionModeStack[0].pickedFeatures = pickedFeatures; + userDrawing.terria.mapInteractionModeStack[0].pickedFeatures = + pickedFeatures; }); // Second point @@ -435,12 +442,12 @@ describe("UserDrawing", function() { CesiumMath.toRadians(-35.311), CesiumMath.toRadians(0) ); - const pt2CartesianPosition = Ellipsoid.WGS84.cartographicToCartesian( - pt2Position - ); + const pt2CartesianPosition = + Ellipsoid.WGS84.cartographicToCartesian(pt2Position); pickedFeatures.pickPosition = pt2CartesianPosition; runInAction(() => { - userDrawing.terria.mapInteractionModeStack[0].pickedFeatures = pickedFeatures; + userDrawing.terria.mapInteractionModeStack[0].pickedFeatures = + pickedFeatures; }); // Third point @@ -449,12 +456,12 @@ describe("UserDrawing", function() { CesiumMath.toRadians(-35.308), CesiumMath.toRadians(0) ); - const pt3CartesianPosition = Ellipsoid.WGS84.cartographicToCartesian( - pt3Position - ); + const pt3CartesianPosition = + Ellipsoid.WGS84.cartographicToCartesian(pt3Position); pickedFeatures.pickPosition = pt3CartesianPosition; runInAction(() => { - userDrawing.terria.mapInteractionModeStack[0].pickedFeatures = pickedFeatures; + userDrawing.terria.mapInteractionModeStack[0].pickedFeatures = + pickedFeatures; }); expect((userDrawing).closeLoop).toBeFalsy(); expect(userDrawing.otherEntities.entities.values.length).toEqual(1); @@ -466,7 +473,8 @@ describe("UserDrawing", function() { const pt1Entity = userDrawing.pointEntities.entities.values[0]; pickedFeatures.features = [pt1Entity as Feature]; runInAction(() => { - userDrawing.terria.mapInteractionModeStack[0].pickedFeatures = pickedFeatures; + userDrawing.terria.mapInteractionModeStack[0].pickedFeatures = + pickedFeatures; }); expect((userDrawing).closeLoop).toBeTruthy(); expect(userDrawing.otherEntities.entities.values.length).toEqual(2); @@ -477,19 +485,19 @@ describe("UserDrawing", function() { CesiumMath.toRadians(-35.0), CesiumMath.toRadians(0) ); - const newPtCartesianPosition = Ellipsoid.WGS84.cartographicToCartesian( - newPtPosition - ); + const newPtCartesianPosition = + Ellipsoid.WGS84.cartographicToCartesian(newPtPosition); pickedFeatures.pickPosition = newPtCartesianPosition; runInAction(() => { - userDrawing.terria.mapInteractionModeStack[0].pickedFeatures = pickedFeatures; + userDrawing.terria.mapInteractionModeStack[0].pickedFeatures = + pickedFeatures; }); expect((userDrawing).closeLoop).toBeTruthy(); expect(userDrawing.otherEntities.entities.values.length).toEqual(2); }); - it("point is removed if it is clicked on and it is not the first point", function() { + it("point is removed if it is clicked on and it is not the first point", function () { const options = { terria: terria }; const userDrawing = new UserDrawing(options); userDrawing.enterDrawMode(); @@ -502,12 +510,12 @@ describe("UserDrawing", function() { CesiumMath.toRadians(-35.309), CesiumMath.toRadians(0) ); - const pt1CartesianPosition = Ellipsoid.WGS84.cartographicToCartesian( - pt1Position - ); + const pt1CartesianPosition = + Ellipsoid.WGS84.cartographicToCartesian(pt1Position); pickedFeatures.pickPosition = pt1CartesianPosition; runInAction(() => { - userDrawing.terria.mapInteractionModeStack[0].pickedFeatures = pickedFeatures; + userDrawing.terria.mapInteractionModeStack[0].pickedFeatures = + pickedFeatures; }); // Second point @@ -516,12 +524,12 @@ describe("UserDrawing", function() { CesiumMath.toRadians(-35.311), CesiumMath.toRadians(0) ); - const pt2CartesianPosition = Ellipsoid.WGS84.cartographicToCartesian( - pt2Position - ); + const pt2CartesianPosition = + Ellipsoid.WGS84.cartographicToCartesian(pt2Position); pickedFeatures.pickPosition = pt2CartesianPosition; runInAction(() => { - userDrawing.terria.mapInteractionModeStack[0].pickedFeatures = pickedFeatures; + userDrawing.terria.mapInteractionModeStack[0].pickedFeatures = + pickedFeatures; }); // Third point @@ -530,12 +538,12 @@ describe("UserDrawing", function() { CesiumMath.toRadians(-35.308), CesiumMath.toRadians(0) ); - const pt3CartesianPosition = Ellipsoid.WGS84.cartographicToCartesian( - pt3Position - ); + const pt3CartesianPosition = + Ellipsoid.WGS84.cartographicToCartesian(pt3Position); pickedFeatures.pickPosition = pt3CartesianPosition; runInAction(() => { - userDrawing.terria.mapInteractionModeStack[0].pickedFeatures = pickedFeatures; + userDrawing.terria.mapInteractionModeStack[0].pickedFeatures = + pickedFeatures; }); expect((userDrawing).closeLoop).toBeFalsy(); @@ -546,14 +554,15 @@ describe("UserDrawing", function() { const pt2Entity = userDrawing.pointEntities.entities.values[1]; pickedFeatures.features = [pt2Entity as Feature]; runInAction(() => { - userDrawing.terria.mapInteractionModeStack[0].pickedFeatures = pickedFeatures; + userDrawing.terria.mapInteractionModeStack[0].pickedFeatures = + pickedFeatures; }); expect(userDrawing.pointEntities.entities.values.length).toEqual(2); expect(userDrawing.mapItems.length).toBe(2); }); - it("draws rectangle", function() { + it("draws rectangle", function () { const userDrawing = new UserDrawing({ terria, allowPolygon: false, @@ -569,12 +578,12 @@ describe("UserDrawing", function() { CesiumMath.toRadians(-35.309), CesiumMath.toRadians(0) ); - const pt1CartesianPosition = Ellipsoid.WGS84.cartographicToCartesian( - pt1Position - ); + const pt1CartesianPosition = + Ellipsoid.WGS84.cartographicToCartesian(pt1Position); pickedFeatures.pickPosition = pt1CartesianPosition; runInAction(() => { - userDrawing.terria.mapInteractionModeStack[0].pickedFeatures = pickedFeatures; + userDrawing.terria.mapInteractionModeStack[0].pickedFeatures = + pickedFeatures; }); expect(userDrawing.pointEntities.entities.values.length).toEqual(1); @@ -592,12 +601,12 @@ describe("UserDrawing", function() { CesiumMath.toRadians(-35.311), CesiumMath.toRadians(0) ); - const pt2CartesianPosition = Ellipsoid.WGS84.cartographicToCartesian( - pt2Position - ); + const pt2CartesianPosition = + Ellipsoid.WGS84.cartographicToCartesian(pt2Position); pickedFeatures.pickPosition = pt2CartesianPosition; runInAction(() => { - userDrawing.terria.mapInteractionModeStack[0].pickedFeatures = pickedFeatures; + userDrawing.terria.mapInteractionModeStack[0].pickedFeatures = + pickedFeatures; }); expect(userDrawing.pointEntities.entities.values.length).toEqual(2); @@ -615,7 +624,7 @@ describe("UserDrawing", function() { expect(userDrawing.mapItems.length).toBe(1); }); - it("calls onDrawingComplete with the drawn points or rectangle", function() { + it("calls onDrawingComplete with the drawn points or rectangle", function () { let completedPoints: Cartesian3[] | undefined; let completedRectangle: Rectangle | undefined; const userDrawing = new UserDrawing({ @@ -637,12 +646,12 @@ describe("UserDrawing", function() { CesiumMath.toRadians(-35.309), CesiumMath.toRadians(0) ); - const pt1CartesianPosition = Ellipsoid.WGS84.cartographicToCartesian( - pt1Position - ); + const pt1CartesianPosition = + Ellipsoid.WGS84.cartographicToCartesian(pt1Position); pickedFeatures.pickPosition = pt1CartesianPosition; runInAction(() => { - userDrawing.terria.mapInteractionModeStack[0].pickedFeatures = pickedFeatures; + userDrawing.terria.mapInteractionModeStack[0].pickedFeatures = + pickedFeatures; }); // Second point @@ -651,12 +660,12 @@ describe("UserDrawing", function() { CesiumMath.toRadians(-35.311), CesiumMath.toRadians(0) ); - const pt2CartesianPosition = Ellipsoid.WGS84.cartographicToCartesian( - pt2Position - ); + const pt2CartesianPosition = + Ellipsoid.WGS84.cartographicToCartesian(pt2Position); pickedFeatures.pickPosition = pt2CartesianPosition; runInAction(() => { - userDrawing.terria.mapInteractionModeStack[0].pickedFeatures = pickedFeatures; + userDrawing.terria.mapInteractionModeStack[0].pickedFeatures = + pickedFeatures; }); // Check onDrawingComplete was called when we end the drawing. diff --git a/test/Models/ViewStateSpec.js b/test/Models/ViewStateSpec.js index e3ea4726147..31dfbcc82bf 100644 --- a/test/Models/ViewStateSpec.js +++ b/test/Models/ViewStateSpec.js @@ -3,11 +3,11 @@ import ViewState, { DATA_CATALOG_NAME } from "../../lib/ReactViewModels/ViewState"; -describe("ViewState", function() { +describe("ViewState", function () { var terria; var viewState; - beforeEach(function() { + beforeEach(function () { terria = new Terria({ baseUrl: "./" }); @@ -16,14 +16,14 @@ describe("ViewState", function() { }); }); - it("opens Add Data when openAddData is set to true in config file", function() { + it("opens Add Data when openAddData is set to true in config file", function () { terria.configParameters.openAddData = true; viewState.afterTerriaStarted(); expect(viewState.explorerPanelIsVisible).toEqual(true); expect(viewState.activeTabCategory).toEqual(DATA_CATALOG_NAME); }); - it("does not open Add Data when openAddData is set to false in config file", function() { + it("does not open Add Data when openAddData is set to false in config file", function () { terria.configParameters.openAddData = false; viewState.afterTerriaStarted(); expect(viewState.explorerPanelIsVisible).toEqual(false); diff --git a/test/Models/WorkbenchSpec.ts b/test/Models/WorkbenchSpec.ts index 5c14a29977a..70553b9dd08 100644 --- a/test/Models/WorkbenchSpec.ts +++ b/test/Models/WorkbenchSpec.ts @@ -7,12 +7,12 @@ import Workbench from "../../lib/Models/Workbench"; import Result from "../../lib/Core/Result"; import TerriaError, { TerriaErrorSeverity } from "../../lib/Core/TerriaError"; -describe("Workbench", function() { +describe("Workbench", function () { let terria: Terria; let workbench: Workbench; let item1: BaseModel, item2: BaseModel, item3: BaseModel, item4: BaseModel; - beforeEach(function() { + beforeEach(function () { terria = new Terria(); workbench = terria.workbench; @@ -31,7 +31,7 @@ describe("Workbench", function() { terria.addModel(item3); }); - it("re-orders items correctly", function() { + it("re-orders items correctly", function () { workbench.items = [item1, item2, item3]; expect(workbench.items).toEqual([item1, item2, item3]); @@ -50,7 +50,7 @@ describe("Workbench", function() { expect(workbench.itemIds).toEqual(["C", "A", "B"]); }); - describe("re-orders items correctly (with keepOnTop)", function() { + describe("re-orders items correctly (with keepOnTop)", function () { beforeEach(async () => { item3.setTrait("definition", "keepOnTop", true); @@ -94,7 +94,7 @@ describe("Workbench", function() { }); }); - describe("will keep non layer-reordering layers at top of workbench list", function() { + describe("will keep non layer-reordering layers at top of workbench list", function () { beforeEach(async () => { item3.setTrait("definition", "supportsReordering", false); @@ -133,7 +133,7 @@ describe("Workbench", function() { }); }); - it("add item", async function() { + it("add item", async function () { workbench.items = [item1, item2, item3]; const wmsItem = item4 as WebMapServiceCatalogItem; @@ -149,7 +149,7 @@ describe("Workbench", function() { expect(wmsItem.loadMapItemsResult?.error).toBeUndefined(); }); - it("doesn't add item if Error occurs, but adds item in Warning occurs", async function() { + it("doesn't add item if Error occurs, but adds item in Warning occurs", async function () { workbench.items = [item1, item2]; const wmsItem3 = item3 as WebMapServiceCatalogItem; @@ -184,7 +184,7 @@ describe("Workbench", function() { expect(workbench.itemIds).toEqual(["D", "A", "B"]); }); - it("doesn't add duplicate model", async function() { + it("doesn't add duplicate model", async function () { workbench.items = [item1, item2, item3]; await workbench.add(item1); @@ -196,7 +196,7 @@ describe("Workbench", function() { expect(workbench.itemIds).toEqual(["A", "B", "C"]); }); - it("remove item", async function() { + it("remove item", async function () { workbench.items = [item1, item2, item3]; workbench.remove(item2); @@ -204,7 +204,7 @@ describe("Workbench", function() { expect(workbench.itemIds).toEqual(["A", "C"]); }); - it("add reference item", async function() { + it("add reference item", async function () { const model = new MagdaReference("magda-reference", terria); model.setTrait(CommonStrata.definition, "recordId", "test-group"); model.setTrait(CommonStrata.definition, "magdaRecord", { diff --git a/test/Models/Workflows/SelectableDimensionWorkflowSpec.ts b/test/Models/Workflows/SelectableDimensionWorkflowSpec.ts index 8c413fea072..385fd974197 100644 --- a/test/Models/Workflows/SelectableDimensionWorkflowSpec.ts +++ b/test/Models/Workflows/SelectableDimensionWorkflowSpec.ts @@ -6,11 +6,11 @@ import Terria from "../../../lib/Models/Terria"; import Icon from "../../../lib/Styled/Icon"; import SimpleCatalogItem from "../../Helpers/SimpleCatalogItem"; -describe("SelectableDimensionWorkflow", function() { +describe("SelectableDimensionWorkflow", function () { let viewState: ViewState; let terria: Terria; - beforeEach(function() { + beforeEach(function () { terria = new Terria(); viewState = new ViewState({ terria, @@ -19,7 +19,7 @@ describe("SelectableDimensionWorkflow", function() { }); }); - it("can run a workflow", function() { + it("can run a workflow", function () { const item = new SimpleCatalogItem("simple", terria); const setSizeWorkflow: SelectableDimensionWorkflow = { name: "Workflow name", diff --git a/test/Models/getAncestorsSpec.ts b/test/Models/getAncestorsSpec.ts index 3bc6b76ccb8..4ed7857d141 100644 --- a/test/Models/getAncestorsSpec.ts +++ b/test/Models/getAncestorsSpec.ts @@ -3,14 +3,14 @@ import Terria from "../../lib/Models/Terria"; import WebMapServiceCatalogItem from "../../lib/Models/Catalog/Ows/WebMapServiceCatalogItem"; import CatalogGroup from "../../lib/Models/Catalog/CatalogGroup"; -describe("getAncestors", function() { +describe("getAncestors", function () { let terria: Terria, wms: WebMapServiceCatalogItem, groupLevelOne: CatalogGroup, groupLevelTwo: CatalogGroup, groupLevelThree: CatalogGroup; - beforeEach(function() { + beforeEach(function () { terria = new Terria({ baseUrl: "./" }); wms = new WebMapServiceCatalogItem("id", terria); groupLevelOne = new CatalogGroup("groupLevelOneId", terria); @@ -35,7 +35,7 @@ describe("getAncestors", function() { * See `getAncestors.ts` for full details */ describe("getCatalogMembersToSave", () => { - it("returns ancestors from top down with groups and wms", function() { + it("returns ancestors from top down with groups and wms", function () { groupLevelThree.add("definition", wms); const ancestors = getAncestors(wms); expect(ancestors.length).toEqual(3); @@ -43,13 +43,13 @@ describe("getAncestors", function() { expect(ancestors[1]).toEqual(groupLevelTwo); expect(ancestors[2]).toEqual(groupLevelThree); }); - it("returns ancestors from top down with groups", function() { + it("returns ancestors from top down with groups", function () { const ancestors = getAncestors(groupLevelThree); expect(ancestors.length).toEqual(2); expect(ancestors[0]).toEqual(groupLevelOne); expect(ancestors[1]).toEqual(groupLevelTwo); }); - it("returns no root group", function() { + it("returns no root group", function () { const ancestors = getAncestors(groupLevelOne); expect(ancestors.length).toEqual(0); }); diff --git a/test/Models/parseCustomHtmlToReactSpec.js b/test/Models/parseCustomHtmlToReactSpec.js index 9578b214f5f..d2d8e88db21 100644 --- a/test/Models/parseCustomHtmlToReactSpec.js +++ b/test/Models/parseCustomHtmlToReactSpec.js @@ -8,15 +8,15 @@ import parseCustomHtmlToReact from "../../lib/ReactViews/Custom/parseCustomHtmlT import registerCustomComponentTypes from "../../lib/ReactViews/Custom/registerCustomComponentTypes"; function findAllEqualTo(reactElement, text) { - return findAll(reactElement, element => element && element === text); + return findAll(reactElement, (element) => element && element === text); } -describe("parseCustomHtmlToReact and registerCustomComponentTypes", function() { - beforeEach(function() { +describe("parseCustomHtmlToReact and registerCustomComponentTypes", function () { + beforeEach(function () { registerCustomComponentTypes(); }); - it("parses a div", function() { + it("parses a div", function () { const result = parseCustomHtmlToReact("
      Foo
      "); expect(result.type).toEqual("div"); // This is a bit cheeky - using the shallow test utils to test a fully rendered div. @@ -25,7 +25,7 @@ describe("parseCustomHtmlToReact and registerCustomComponentTypes", function() { expect(findAllEqualTo(result, "Foo").length).toEqual(1); }); - it("parses a collapsible", function() { + it("parses a collapsible", function () { const result = parseCustomHtmlToReact( 'Bar' ); @@ -34,7 +34,7 @@ describe("parseCustomHtmlToReact and registerCustomComponentTypes", function() { expect(result.props.children[0]).toEqual("Bar"); }); - it("parses a chart with a src attribute", function() { + it("parses a chart with a src attribute", function () { const result = parseCustomHtmlToReact( '' ); @@ -44,7 +44,7 @@ describe("parseCustomHtmlToReact and registerCustomComponentTypes", function() { expect(chart.props.url).toEqual("http://example.com"); }); - it("parses a chart with a data attribute containing csv", function() { + it("parses a chart with a data attribute containing csv", function () { // Both line feeds (\n) and backslash-n ("\n" or \\n here) work. const result = parseCustomHtmlToReact( '' @@ -57,7 +57,7 @@ describe("parseCustomHtmlToReact and registerCustomComponentTypes", function() { expect(chart.props.tableStructure.columns[1].values.length).toEqual(3); }); - it("parses a chart with a data attribute containing json", function() { + it("parses a chart with a data attribute containing json", function () { // Use " for quotes. const result = parseCustomHtmlToReact( '' @@ -70,7 +70,7 @@ describe("parseCustomHtmlToReact and registerCustomComponentTypes", function() { expect(chart.props.tableStructure.columns[2].values.length).toEqual(4); }); - it("parses a chart with child csv", function() { + it("parses a chart with child csv", function () { // Both line feeds (\n) and backslash-n ("\n" or \\n here) work. const result = parseCustomHtmlToReact("x,y\n1,2\\n3,4\n5,6"); const charts = findAllWithType(result, Chart); @@ -81,7 +81,7 @@ describe("parseCustomHtmlToReact and registerCustomComponentTypes", function() { expect(chart.props.tableStructure.columns[1].values.length).toEqual(3); }); - it("parses a chart with child json", function() { + it("parses a chart with child json", function () { // This is nicer, as you can use real quotes. const result = parseCustomHtmlToReact( '[["x","y","z"],[1,10,3],[2,15,9],[3,8,12],[5,25,4]]' @@ -94,7 +94,7 @@ describe("parseCustomHtmlToReact and registerCustomComponentTypes", function() { expect(chart.props.tableStructure.columns[2].values.length).toEqual(4); }); - it("decodes HTML entities in text nodes and in attributes", function() { + it("decodes HTML entities in text nodes and in attributes", function () { const result = parseCustomHtmlToReact( 'https://programs.communications.gov.au/geoserver/ows?service=WMS&version=1.3.0&request=GetCapabilities' ); @@ -115,7 +115,7 @@ describe("parseCustomHtmlToReact and registerCustomComponentTypes", function() { }); describe("Parse html to react", () => { - it("should open link in new tab", function() { + it("should open link in new tab", function () { const html = 'csiro'; const reactComponent = parseCustomHtmlToReact(html); const reactHtml = ReactDOMServer.renderToStaticMarkup(reactComponent); @@ -124,7 +124,7 @@ describe("Parse html to react", () => { ); }); - it("should correctly parse style attributes on a tag", function() { + it("should correctly parse style attributes on a tag", function () { const html = 'csiro'; const reactComponent = parseCustomHtmlToReact(html); @@ -134,7 +134,7 @@ describe("Parse html to react", () => { ); }); - it("should correctly parse empty style attributes on a tag", function() { + it("should correctly parse empty style attributes on a tag", function () { const html = 'csiro'; const reactComponent = parseCustomHtmlToReact(html); const reactHtml = ReactDOMServer.renderToStaticMarkup(reactComponent); diff --git a/test/Models/parseCustomMarkdownToReactSpec.js b/test/Models/parseCustomMarkdownToReactSpec.js index 533313fca1a..bd40bf2dcae 100644 --- a/test/Models/parseCustomMarkdownToReactSpec.js +++ b/test/Models/parseCustomMarkdownToReactSpec.js @@ -3,11 +3,11 @@ import parseCustomMarkdownToReact from "../../lib/ReactViews/Custom/parseCustomM import { findAllWithType, findAll } from "react-shallow-testutils"; function findAllEqualTo(reactElement, text) { - return findAll(reactElement, element => element && element === text); + return findAll(reactElement, (element) => element && element === text); } -describe("parseCustomMarkdownToReact", function() { - it("correctly linkifies URLs with ampersands", function() { +describe("parseCustomMarkdownToReact", function () { + it("correctly linkifies URLs with ampersands", function () { const result = parseCustomMarkdownToReact( "https://programs.communications.gov.au/geoserver/ows?service=WMS&version=1.3.0&request=GetCapabilities" ); diff --git a/test/Models/parseCustomMarkdownToReactTsSpec.ts b/test/Models/parseCustomMarkdownToReactTsSpec.ts index bda4c6a5e50..695f7558309 100644 --- a/test/Models/parseCustomMarkdownToReactTsSpec.ts +++ b/test/Models/parseCustomMarkdownToReactTsSpec.ts @@ -3,20 +3,20 @@ import registerCustomComponentTypes from "../../lib/ReactViews/Custom/registerCu import Terria from "../../lib/Models/Terria"; import { TooltipWithButtonLauncher } from "../../lib/ReactViews/Generic/TooltipWrapper"; -const isComponentOfType: any = require("react-shallow-testutils") - .isComponentOfType; +const isComponentOfType: any = + require("react-shallow-testutils").isComponentOfType; const findAll: any = require("react-shallow-testutils").findAll; -describe("parseCustomMarkdownToReactTs", function() { +describe("parseCustomMarkdownToReactTs", function () { let terria: Terria; - beforeEach(function() { + beforeEach(function () { terria = new Terria({ baseUrl: "./" }); registerCustomComponentTypes(); }); - it("correctly parses tooltip terms", function() { + it("correctly parses tooltip terms", function () { const spatialDataTerm = { term: "spatial data", content: "data that is spatial, spluh" @@ -36,7 +36,7 @@ describe("parseCustomMarkdownToReactTs", function() { expect(tooltip.props.launcherComponent()).toContain(spatialDataTerm.term); expect(tooltip.props.children()).toContain(spatialDataTerm.content); }); - it("skips injecting tooltips when no options provided", function() { + it("skips injecting tooltips when no options provided", function () { const result = parseCustomMarkdownToReactWithOptions( "something something spatial data mochi", {} diff --git a/test/ReactViewModels/ViewStateSpec.ts b/test/ReactViewModels/ViewStateSpec.ts index bb44560d575..ff04eeb9e6b 100644 --- a/test/ReactViewModels/ViewStateSpec.ts +++ b/test/ReactViewModels/ViewStateSpec.ts @@ -6,11 +6,11 @@ import TerriaReference from "../../lib/Models/Catalog/CatalogReferences/TerriaRe import CommonStrata from "../../lib/Models/Definition/CommonStrata"; import CatalogIndexReference from "../../lib/Models/Catalog/CatalogReferences/CatalogIndexReference"; -describe("ViewState", function() { +describe("ViewState", function () { let terria: Terria; let viewState: ViewState; - beforeEach(function() { + beforeEach(function () { terria = new Terria(); viewState = new ViewState({ terria, @@ -19,8 +19,8 @@ describe("ViewState", function() { }); }); - describe("viewCatalogMember", function() { - it("handle nested references", async function() { + describe("viewCatalogMember", function () { + it("handle nested references", async function () { // Test nested reference // CatalogIndexReference -> TerriaReference -> CatalogGroup terria = new Terria(); @@ -43,15 +43,15 @@ describe("ViewState", function() { }); }); - describe("removeModelReferences", function() { - it("unsets the previewedItem if it matches the model", async function() { + describe("removeModelReferences", function () { + it("unsets the previewedItem if it matches the model", async function () { const item = new SimpleCatalogItem("testId", terria); await viewState.viewCatalogMember(item); viewState.removeModelReferences(item); expect(viewState.previewedItem).toBeUndefined(); }); - it("unsets the userDataPreviewedItem if it matches the model", function() { + it("unsets the userDataPreviewedItem if it matches the model", function () { const item = new SimpleCatalogItem("testId", terria); viewState.userDataPreviewedItem = item; viewState.removeModelReferences(item); @@ -59,14 +59,14 @@ describe("ViewState", function() { }); }); - describe("error provider", function() { - it("creates an empty error provider by default", function() { + describe("error provider", function () { + it("creates an empty error provider by default", function () { expect(viewState.errorProvider).toBeNull(); }); }); - describe("tourPointsWithValidRefs", function() { - it("returns tourPoints ordered by priority", function() { + describe("tourPointsWithValidRefs", function () { + it("returns tourPoints ordered by priority", function () { runInAction(() => { viewState.setTourIndex(0); viewState.setShowTour(true); @@ -100,8 +100,8 @@ describe("ViewState", function() { ); }); }); - describe("tour and trainer interaction", function() { - it("disables trainer bar if turning on tour", function() { + describe("tour and trainer interaction", function () { + it("disables trainer bar if turning on tour", function () { runInAction(() => { viewState.setTrainerBarExpanded(true); viewState.setTrainerBarShowingAllSteps(true); diff --git a/test/ReactViews/BottomDock/BottomDockSpec.tsx b/test/ReactViews/BottomDock/BottomDockSpec.tsx index 48fa074912e..91fc7851835 100644 --- a/test/ReactViews/BottomDock/BottomDockSpec.tsx +++ b/test/ReactViews/BottomDock/BottomDockSpec.tsx @@ -4,12 +4,12 @@ import Terria from "../../../lib/Models/Terria"; import ViewState from "../../../lib/ReactViewModels/ViewState"; import BottomDock from "../../../lib/ReactViews/BottomDock/BottomDock"; -describe("BottomDock", function() { +describe("BottomDock", function () { let terria: Terria; let viewState: ViewState; let testRenderer: ReactTestRenderer; - beforeEach(function() { + beforeEach(function () { terria = new Terria({ baseUrl: "./" }); @@ -20,7 +20,7 @@ describe("BottomDock", function() { }); }); - it("must create TJS-BottomDockFirstPortal", function() { + it("must create TJS-BottomDockFirstPortal", function () { act(() => { testRenderer = create( // @ts-ignore - because measureElement is untyped @@ -33,7 +33,7 @@ describe("BottomDock", function() { expect(firstPortal).toBeDefined(); }); - it("must create TJS-BottomDockLastPortal", function() { + it("must create TJS-BottomDockLastPortal", function () { act(() => { testRenderer = create( // @ts-ignore - because measureElement is untyped diff --git a/test/ReactViews/BottomDock/MapDataCountSpec.tsx b/test/ReactViews/BottomDock/MapDataCountSpec.tsx index cfae8fc8919..b8b00cfe534 100644 --- a/test/ReactViews/BottomDock/MapDataCountSpec.tsx +++ b/test/ReactViews/BottomDock/MapDataCountSpec.tsx @@ -4,16 +4,16 @@ import { act } from "react-dom/test-utils"; import Terria from "../../../lib/Models/Terria"; import ViewState from "../../../lib/ReactViewModels/ViewState"; import { runInAction } from "mobx"; -const MapDataCount = require("../../../lib/ReactViews/BottomDock/MapDataCount") - .default; +const MapDataCount = + require("../../../lib/ReactViews/BottomDock/MapDataCount").default; -describe("MapDataCount", function() { +describe("MapDataCount", function () { let terria: Terria; let viewState: ViewState; let testRenderer: any; - beforeEach(function() { + beforeEach(function () { terria = new Terria({ baseUrl: "./" }); @@ -24,7 +24,7 @@ describe("MapDataCount", function() { }); }); - it("renders", function() { + it("renders", function () { expect(viewState.useSmallScreenInterface).toEqual(false); act(() => { testRenderer = create( @@ -35,7 +35,7 @@ describe("MapDataCount", function() { expect(divs).toBeDefined(); }); - it("doesn't render anything when in mobile UI via useSmallScreenInterface", function() { + it("doesn't render anything when in mobile UI via useSmallScreenInterface", function () { runInAction(() => (viewState.useSmallScreenInterface = true)); expect(viewState.useSmallScreenInterface).toEqual(true); act(() => { diff --git a/test/ReactViews/ChartSpec.jsx b/test/ReactViews/ChartSpec.jsx index 7a6010f507f..9a0dcd0cc21 100644 --- a/test/ReactViews/ChartSpec.jsx +++ b/test/ReactViews/ChartSpec.jsx @@ -7,8 +7,8 @@ import Chart from "../../lib/ReactViews/Custom/Chart/Chart"; import ChartData from "../../lib/Charts/ChartData"; import TableStructure from "../../lib/Map/TableStructure"; -describe("Chart", function() { - it("loads data from a url", function(done) { +describe("Chart", function () { + it("loads data from a url", function (done) { // React.createElement(Chart, { // key: 'chart', // axisLabel: { @@ -29,7 +29,7 @@ describe("Chart", function() { const instance = getMountedInstance(chart); instance .getChartDataPromise(undefined, instance.props.url) - .then(function(data) { + .then(function (data) { expect(data.length).toEqual(1); expect(data[0].points.length).toEqual(8); }) @@ -37,14 +37,14 @@ describe("Chart", function() { .catch(fail); }); - it("can have TableStructure data passed directly", function(done) { + it("can have TableStructure data passed directly", function (done) { const csvString = "x,y\r\n1,5\r\n3,8\r\n4,-3\r\n"; const tableStructure = TableStructure.fromCsv(csvString); const chart = ; const instance = getMountedInstance(chart); instance .getChartDataPromise(instance.getChartParameters().data) - .then(function(data) { + .then(function (data) { expect(data.length).toEqual(1); expect(data[0].name).toEqual("y"); expect(data[0].points.length).toEqual(3); @@ -53,7 +53,7 @@ describe("Chart", function() { .catch(fail); }); - it("can have an array of ChartData passed directly", function(done) { + it("can have an array of ChartData passed directly", function (done) { const chartData = new ChartData( [ { x: 2, y: 5 }, @@ -67,7 +67,7 @@ describe("Chart", function() { const instance = getMountedInstance(chart); instance .getChartDataPromise(instance.getChartParameters().data) - .then(function(data) { + .then(function (data) { expect(data.length).toEqual(1); expect(data[0].name).toEqual("foo"); expect(data[0].points.length).toEqual(2); diff --git a/test/ReactViews/ClipboardSpec.tsx b/test/ReactViews/ClipboardSpec.tsx index 407fceee603..eb239b7f848 100644 --- a/test/ReactViews/ClipboardSpec.tsx +++ b/test/ReactViews/ClipboardSpec.tsx @@ -7,11 +7,11 @@ import Clipboard from "../../lib/ReactViews/Clipboard"; import Input from "../../lib/Styled/Input"; import Button from "../../lib/Styled/Button"; -describe("Clipboard", function() { +describe("Clipboard", function () { let testRenderer: any; - describe("with basic props", function() { - it("renders a button", function() { + describe("with basic props", function () { + it("renders a button", function () { act(() => { testRenderer = create( diff --git a/test/ReactViews/Custom/Chart/BottomDockChartSpec.tsx b/test/ReactViews/Custom/Chart/BottomDockChartSpec.tsx index fe08ddf2a7f..2e2b3c02030 100644 --- a/test/ReactViews/Custom/Chart/BottomDockChartSpec.tsx +++ b/test/ReactViews/Custom/Chart/BottomDockChartSpec.tsx @@ -6,12 +6,12 @@ import Terria from "../../../../lib/Models/Terria"; import BottomDockChart from "../../../../lib/ReactViews/Custom/Chart/BottomDockChart"; import PointOnMap from "../../../../lib/ReactViews/Custom/Chart/PointOnMap"; -describe("BottomDockChart", function() { +describe("BottomDockChart", function () { let terria: Terria; let testRenderer: ReactTestRenderer; let chartItems: ChartItem[]; - beforeEach(function() { + beforeEach(function () { terria = new Terria({ baseUrl: "./" }); diff --git a/test/ReactViews/Custom/Chart/ChartCustomComponentSpec.tsx b/test/ReactViews/Custom/Chart/ChartCustomComponentSpec.tsx index af51329addf..e6b9592c005 100644 --- a/test/ReactViews/Custom/Chart/ChartCustomComponentSpec.tsx +++ b/test/ReactViews/Custom/Chart/ChartCustomComponentSpec.tsx @@ -19,10 +19,10 @@ import mixTraits from "../../../../lib/Traits/mixTraits"; import MappableTraits from "../../../../lib/Traits/TraitsClasses/MappableTraits"; import UrlTraits from "../../../../lib/Traits/TraitsClasses/UrlTraits"; -describe("ChartCustomComponent", function() { +describe("ChartCustomComponent", function () { let terria: Terria; - beforeEach(function() { + beforeEach(function () { terria = new Terria({ baseUrl: "./" }); @@ -59,7 +59,7 @@ describe("ChartCustomComponent", function() { ).toBeTruthy(); }); - it("creates shareable chart items for the expand menu", function() { + it("creates shareable chart items for the expand menu", function () { const TestComponentWithShareableChartItem = class extends TestChartCustomComponent { constructShareableCatalogItem = ( id: string | undefined, @@ -96,9 +96,7 @@ describe("ChartCustomComponent", function() { }); }); -class TestChartCustomComponent extends ChartCustomComponent< - ChartableMixin.Instance -> { +class TestChartCustomComponent extends ChartCustomComponent { get name(): string { return "test"; } diff --git a/test/ReactViews/Custom/Chart/CsvChartCustomComponentSpec.tsx b/test/ReactViews/Custom/Chart/CsvChartCustomComponentSpec.tsx index 4571e32c4ad..1d37610034a 100644 --- a/test/ReactViews/Custom/Chart/CsvChartCustomComponentSpec.tsx +++ b/test/ReactViews/Custom/Chart/CsvChartCustomComponentSpec.tsx @@ -8,21 +8,21 @@ import { ProcessNodeContext } from "../../../../lib/ReactViews/Custom/CustomComponent"; -describe("CsvChartCustomComponent", function() { +describe("CsvChartCustomComponent", function () { let terria: Terria; - beforeEach(function() { + beforeEach(function () { terria = new Terria({ baseUrl: "./" }); }); - describe("setTraitsFromAttrs", function() { + describe("setTraitsFromAttrs", function () { let component: CsvChartCustomComponent; let context: ProcessNodeContext; let node: DomElement; - beforeEach(function() { + beforeEach(function () { component = new CsvChartCustomComponent(); context = { terria: terria, @@ -37,7 +37,7 @@ describe("CsvChartCustomComponent", function() { }; }); - it("accepts a list of plain strings columnTitles", async function() { + it("accepts a list of plain strings columnTitles", async function () { node.attribs = { ...node.attribs, "column-titles": "Meteor,Speed,Temperature" @@ -56,7 +56,7 @@ describe("CsvChartCustomComponent", function() { } }); - it("accepts a list of {name, title} columnTitles", async function() { + it("accepts a list of {name, title} columnTitles", async function () { node.attribs = { ...node.attribs, "column-titles": "x:Meteor,y:Speed,z:Temperature" @@ -73,7 +73,7 @@ describe("CsvChartCustomComponent", function() { } }); - it("can create a download url from csv text passed as chart body", function() { + it("can create a download url from csv text passed as chart body", function () { const url = component.constructDownloadUrlFromBody("a,b\n1,2\n3,4"); expect(url.startsWith("blob:")).toBeTruthy(); }); diff --git a/test/ReactViews/Custom/Chart/MomentPointsChartSpec.tsx b/test/ReactViews/Custom/Chart/MomentPointsChartSpec.tsx index 3708e4d45b1..3aa6f9aceb4 100644 --- a/test/ReactViews/Custom/Chart/MomentPointsChartSpec.tsx +++ b/test/ReactViews/Custom/Chart/MomentPointsChartSpec.tsx @@ -6,7 +6,7 @@ import React from "react"; import TestRenderer from "react-test-renderer"; import MomentPointsChart from "../../../../lib/ReactViews/Custom/Chart/MomentPointsChart"; -describe("MomentPointsChart", function() { +describe("MomentPointsChart", function () { const chartItem = { categoryName: "Points chart", name: "chartitem", @@ -29,13 +29,13 @@ describe("MomentPointsChart", function() { scales: { x: scales.x, y: scales.y.domain([0, 1]) } }; - it("renders all points", function() { + it("renders all points", function () { const renderer = TestRenderer.create(); const glyphs = renderer.root.findAllByType(Glyph); expect(glyphs.length).toBe(6); }); - it("renders the points at the correct positions", function() { + it("renders the points at the correct positions", function () { const renderer = TestRenderer.create(); const glyphs = renderer.root.findAllByType(Glyph); const xs = [0, 2, 4, 6, 8, 10]; @@ -45,7 +45,7 @@ describe("MomentPointsChart", function() { }); }); - it("renders the correct type of glyph", function() { + it("renders the correct type of glyph", function () { const renderer = TestRenderer.create( ); @@ -53,8 +53,8 @@ describe("MomentPointsChart", function() { expect(glyphs.length).toBe(6); }); - describe("when a basis item is provided", function() { - it("renders the points on the basis item", function() { + describe("when a basis item is provided", function () { + it("renders the points on the basis item", function () { const basisItem = { ...chartItem, name: "basisitem", @@ -84,9 +84,12 @@ describe("MomentPointsChart", function() { }); function getScales(points: { x: Date; y: number }[]) { - const xs = points.map(p => p.x); - const ys = points.map(p => p.y); - const xDomain = [minBy(xs, d => d.getTime())!, maxBy(xs, d => d.getTime())!]; + const xs = points.map((p) => p.x); + const ys = points.map((p) => p.y); + const xDomain = [ + minBy(xs, (d) => d.getTime())!, + maxBy(xs, (d) => d.getTime())! + ]; const yDomain = [Math.min(...ys), Math.max(...ys)]; return { x: scaleTime({ domain: xDomain, range: [0, 10] }), diff --git a/test/ReactViews/Custom/Chart/PointOnMapSpec.tsx b/test/ReactViews/Custom/Chart/PointOnMapSpec.tsx index 99560e96b02..443a488a52f 100644 --- a/test/ReactViews/Custom/Chart/PointOnMapSpec.tsx +++ b/test/ReactViews/Custom/Chart/PointOnMapSpec.tsx @@ -5,17 +5,17 @@ import GeoJsonCatalogItem from "../../../../lib/Models/Catalog/CatalogItems/GeoJ import Terria from "../../../../lib/Models/Terria"; import PointOnMap from "../../../../lib/ReactViews/Custom/Chart/PointOnMap"; -describe("PointOnMap", function() { +describe("PointOnMap", function () { let terria: Terria; let testRenderer: ReactTestRenderer; - beforeEach(function() { + beforeEach(function () { terria = new Terria({ baseUrl: "./" }); }); - it("adds the point as an overlay on mount", async function() { + it("adds the point as an overlay on mount", async function () { act(() => { testRenderer = TestRenderer.create( { testRenderer = TestRenderer.create( { + memberComponents.forEach((member) => { expect(member.props.member).not.toBe(terria.catalog.userAddedDataGroup); expect(member.props.member.name).not.toEqual(USER_ADDED_CATEGORY_ID); foundAnotherGroup = diff --git a/test/ReactViews/DimensionSelectorSectionSpec.tsx b/test/ReactViews/DimensionSelectorSectionSpec.tsx index 37f96fb58d7..5ee20e3ec55 100644 --- a/test/ReactViews/DimensionSelectorSectionSpec.tsx +++ b/test/ReactViews/DimensionSelectorSectionSpec.tsx @@ -22,7 +22,8 @@ import CatalogMemberTraits from "../../lib/Traits/TraitsClasses/CatalogMemberTra export default class TestCatalogItem extends CatalogMemberMixin(CreateModel(CatalogMemberTraits)) - implements SelectableDimensions { + implements SelectableDimensions +{ static readonly type = "stub"; get type() { return "test"; @@ -79,16 +80,16 @@ export default class TestCatalogItem ]; } -describe("DimensionSelectorSection", function() { +describe("DimensionSelectorSection", function () { let terria: Terria; - beforeEach(function() { + beforeEach(function () { terria = new Terria({ baseUrl: "./" }); }); - it("shows all dimensions and styles for a mock layer", function(done) { + it("shows all dimensions and styles for a mock layer", function (done) { const mockItem = new TestCatalogItem("what", terria); const section = TestRenderer.create( @@ -109,7 +110,7 @@ describe("DimensionSelectorSection", function() { done(); }); - it("show dimensions and styles for a 'real' WMS layer", function(done) { + it("show dimensions and styles for a 'real' WMS layer", function (done) { const wmsItem = new WebMapServiceCatalogItem("some-layer", terria); runInAction(() => { wmsItem.setTrait(CommonStrata.definition, "url", "http://example.com"); @@ -133,7 +134,7 @@ describe("DimensionSelectorSection", function() { wmsItem .loadMetadata() - .then(function() { + .then(function () { const section = TestRenderer.create( { viewState.disclaimerSettings = { title: "Disclaimer", @@ -46,8 +46,8 @@ describe("Disclaimer", function() { }); }); - describe("with limited disclaimerSettings and disclaimerVisible set to true", function() { - it("renders", function() { + describe("with limited disclaimerSettings and disclaimerVisible set to true", function () { + it("renders", function () { runInAction(() => { viewState.disclaimerSettings = {}; viewState.disclaimerVisible = true; @@ -63,8 +63,8 @@ describe("Disclaimer", function() { }); }); - describe("with disclaimerVisible set to false", function() { - it("does not render", function() { + describe("with disclaimerVisible set to false", function () { + it("does not render", function () { runInAction(() => { terria.configParameters.globalDisclaimer = undefined; viewState.disclaimerVisible = false; diff --git a/test/ReactViews/FeatureInfoPanelSpec.tsx b/test/ReactViews/FeatureInfoPanelSpec.tsx index 50d2cc2dfc3..8b73d24ddc5 100644 --- a/test/ReactViews/FeatureInfoPanelSpec.tsx +++ b/test/ReactViews/FeatureInfoPanelSpec.tsx @@ -26,12 +26,12 @@ import CommonStrata from "../../lib/Models/Definition/CommonStrata"; // separator = (Intl.NumberFormat().format(1000)[1]); // } -describe("FeatureInfoPanel", function() { +describe("FeatureInfoPanel", function () { let terria: Terria; // let feature; let viewState: ViewState; - beforeEach(function() { + beforeEach(function () { terria = new Terria({ baseUrl: "./" }); @@ -42,7 +42,7 @@ describe("FeatureInfoPanel", function() { }); }); - it("has isVisible class when viewState.featureInfoPanelIsVisible is true", function() { + it("has isVisible class when viewState.featureInfoPanelIsVisible is true", function () { viewState.featureInfoPanelIsVisible = true; const panel = ( {}} /> @@ -51,7 +51,7 @@ describe("FeatureInfoPanel", function() { expect(result.props.children.props.className).toContain("is-visible"); }); - it("displays loader while asychronously loading feature information", function() { + it("displays loader while asychronously loading feature information", function () { var pickedFeatures = new PickedFeatures(); pickedFeatures.allFeaturesAvailablePromise = Promise.resolve(); runInAction(() => { @@ -64,7 +64,7 @@ describe("FeatureInfoPanel", function() { expect(findWithType(result, Loader)).toBeDefined(); }); - it("does not have isVisible class when viewState.featureInfoPanelIsVisible is false", function() { + it("does not have isVisible class when viewState.featureInfoPanelIsVisible is false", function () { viewState.featureInfoPanelIsVisible = false; const panel = ( {}} /> @@ -96,12 +96,12 @@ describe("FeatureInfoPanel", function() { // expect(sections[0].props.isOpen).toBe(true); // }); - describe("determineCatalogItem", function() { + describe("determineCatalogItem", function () { let simple1: SimpleCatalogItem, simple2: SimpleCatalogItem, composite: CompositeCatalogItem; let feature1: Feature, feature2: Feature; - beforeEach(function() { + beforeEach(function () { feature1 = new Feature({}); simple1 = new SimpleCatalogItem("simple1", terria); feature1._catalogItem = simple1; @@ -112,12 +112,12 @@ describe("FeatureInfoPanel", function() { composite.add(CommonStrata.definition, simple1); composite.add(CommonStrata.definition, simple2); }); - it("determines which catalog item a feature belongs to", function() { + it("determines which catalog item a feature belongs to", function () { terria.workbench.items = [simple1, simple2]; expect(determineCatalogItem(terria.workbench, feature1)).toBe(simple1); expect(determineCatalogItem(terria.workbench, feature2)).toBe(simple2); }); - it("special cases features from composite models", function() { + it("special cases features from composite models", function () { terria.workbench.items = [composite]; expect(determineCatalogItem(terria.workbench, feature1)).toBe(simple1); expect(determineCatalogItem(terria.workbench, feature2)).toBe(simple2); diff --git a/test/ReactViews/FeatureInfoSectionSpec.tsx b/test/ReactViews/FeatureInfoSectionSpec.tsx index e7e6548768c..ba1d561756b 100644 --- a/test/ReactViews/FeatureInfoSectionSpec.tsx +++ b/test/ReactViews/FeatureInfoSectionSpec.tsx @@ -61,13 +61,13 @@ function absPad2(value: number) { return (Math.abs(value) < 10 ? "0" : "") + Math.abs(value); } -describe("FeatureInfoSection", function() { +describe("FeatureInfoSection", function () { let terria: Terria; let feature: any; let viewState: any; let catalogItem: TestModel; - beforeEach(function() { + beforeEach(function () { terria = new Terria({ baseUrl: "./" }); @@ -93,9 +93,9 @@ describe("FeatureInfoSection", function() { }); }); - it("renders a static description", function() { + it("renders a static description", function () { feature.description = { - getValue: function() { + getValue: function () { return "

      hi!

      "; }, isConstant: true @@ -113,9 +113,9 @@ describe("FeatureInfoSection", function() { expect(findAllEqualTo(result, "hi!").length).toEqual(1); }); - it("does not render unsafe html", function() { + it("does not render unsafe html", function () { feature.description = { - getValue: function() { + getValue: function () { return '

      hi!

      '; }, isConstant: true @@ -154,7 +154,7 @@ describe("FeatureInfoSection", function() { return desc; } - it("renders a time-varying description", function() { + it("renders a time-varying description", function () { feature.description = timeVaryingDescription(); catalogItem.setTrait(CommonStrata.user, "currentTime", "2011-06-30"); @@ -187,7 +187,7 @@ describe("FeatureInfoSection", function() { expect(findAllEqualTo(result2, "bye").length).toEqual(0); }); - it("handles features with no properties", function() { + it("handles features with no properties", function () { feature = new Entity({ name: "Foot", description: "bart" @@ -205,7 +205,7 @@ describe("FeatureInfoSection", function() { expect(findAllEqualTo(result, "bart").length).toEqual(1); }); - it("handles html format feature info", function() { + it("handles html format feature info", function () { feature = new Entity({ name: "Foo", description: @@ -224,7 +224,7 @@ describe("FeatureInfoSection", function() { expect(findAllEqualTo(result, "BAR").length).toEqual(1); }); - it("handles html format feature info where markdown would break the html", function() { + it("handles html format feature info where markdown would break the html", function () { feature = new Entity({ name: "Foo", description: @@ -244,7 +244,7 @@ describe("FeatureInfoSection", function() { expect(findAllEqualTo(result, "<\n").length).toEqual(0); // Also cover the possibility that it might be encoded. }); - it("maintains and applies inline style attributes", function() { + it("maintains and applies inline style attributes", function () { feature = new Entity({ name: "Foo", description: '
      countdown
      ' @@ -266,7 +266,7 @@ describe("FeatureInfoSection", function() { ); }); - it("does not break when html format feature info has style tag", function() { + it("does not break when html format feature info has style tag", function () { // Note this does not test that it actually uses the style tag for styling. feature = new Entity({ name: "Foo", @@ -286,7 +286,7 @@ describe("FeatureInfoSection", function() { expect(findAllEqualTo(result, "BAR").length).toEqual(1); }); - it("does not break when there are neither properties nor description", function() { + it("does not break when there are neither properties nor description", function () { feature = new Entity({ name: "Vapid" }); @@ -303,14 +303,14 @@ describe("FeatureInfoSection", function() { expect(findWithRef(result, "no-info")).toBeDefined(); }); - it("shows properties if no description", function() { + it("shows properties if no description", function () { // Tests both static and potentially time-varying properties. feature = new Entity({ name: "Meals", properties: { lunch: "eggs", dinner: { - getValue: function() { + getValue: function () { return "ham"; } } @@ -332,8 +332,8 @@ describe("FeatureInfoSection", function() { expect(findAllEqualTo(result, "ham").length).toEqual(1); }); - describe("templating", function() { - it("uses and completes a string-form featureInfoTemplate if present", function() { + describe("templating", function () { + it("uses and completes a string-form featureInfoTemplate if present", function () { const template = "This is a {{material}} {{foo}}."; const section = ( test {{>boldfoo}}
      ', partials: { boldfoo: "{{foo}}" } @@ -758,7 +758,7 @@ describe("FeatureInfoSection", function() { expect(findAllEqualTo(result, "bar").length).toEqual(1); }); - it("sets the name from featureInfoTemplate", function() { + it("sets the name from featureInfoTemplate", function () { const template = { name: "{{name}} {{foo}}" }; const section = ( {{>show_children}}
    ", partials: { @@ -991,17 +991,17 @@ describe("FeatureInfoSection", function() { }); }); - describe("raw data", function() { - beforeEach(function() { + describe("raw data", function () { + beforeEach(function () { feature.description = { - getValue: function() { + getValue: function () { return "

    hi!

    "; }, isConstant: true }; }); - it("does not appear if no template", function() { + it("does not appear if no template", function () { const section = ( { testRenderer = createWithContexts(viewState, ); }); @@ -37,7 +37,7 @@ describe("TrainerBar", function() { trainerBarRender.findByType("div"); }).toThrow(); }); - it("renders nothing when setTrainerBarVisible is false", function() { + it("renders nothing when setTrainerBarVisible is false", function () { runInAction(() => { terria.updateParameters({ regionMappingDefinitionsUrl: "", @@ -60,7 +60,7 @@ describe("TrainerBar", function() { expect(buttons.length).toEqual(0); expect(boxes.length).toEqual(0); }); - it("renders a button to toggle visibility", function() { + it("renders a button to toggle visibility", function () { runInAction(() => { terria.updateParameters({ regionMappingDefinitionsUrl: "", diff --git a/test/ReactViews/MeasureToolSpec.jsx b/test/ReactViews/MeasureToolSpec.jsx index 0b644e087f8..326b3296c84 100644 --- a/test/ReactViews/MeasureToolSpec.jsx +++ b/test/ReactViews/MeasureToolSpec.jsx @@ -8,25 +8,25 @@ import { getMountedInstance } from "./MoreShallowTools"; import { MeasureTool } from "../../lib/ReactViews/Map/Navigation/MeasureTool"; const Entity = require("terriajs-cesium/Source/DataSources/Entity.js").default; const Ellipsoid = require("terriajs-cesium/Source/Core/Ellipsoid.js").default; -const ConstantPositionProperty = require("terriajs-cesium/Source/DataSources/ConstantPositionProperty.js") - .default; +const ConstantPositionProperty = + require("terriajs-cesium/Source/DataSources/ConstantPositionProperty.js").default; const Cartesian3 = require("terriajs-cesium/Source/Core/Cartesian3").default; -const Cartographic = require("terriajs-cesium/Source/Core/Cartographic") - .default; -const CustomDataSource = require("terriajs-cesium/Source/DataSources/CustomDataSource") - .default; +const Cartographic = + require("terriajs-cesium/Source/Core/Cartographic").default; +const CustomDataSource = + require("terriajs-cesium/Source/DataSources/CustomDataSource").default; const CesiumMath = require("terriajs-cesium/Source/Core/Math").default; -describe("MeasureTool-jsx", function() { +describe("MeasureTool-jsx", function () { let terria; - beforeEach(function() { + beforeEach(function () { terria = new Terria({ baseUrl: "./" }); }); - it("prettifies distance when distance is in metres", function() { + it("prettifies distance when distance is in metres", function () { const measureTool = {}} />; const instance = getMountedInstance(measureTool); let squared = false; @@ -40,7 +40,7 @@ describe("MeasureTool-jsx", function() { expect(prettyDistSquared).toEqual("480.00 m\u00B2"); }); - it("prettifies distance when distance is in kilometres", function() { + it("prettifies distance when distance is in kilometres", function () { const measureTool = {}} />; const instance = getMountedInstance(measureTool); const prettyDistance = instance.prettifyNumber(1280.23, false); @@ -48,7 +48,7 @@ describe("MeasureTool-jsx", function() { expect(prettyDistance).toEqual("1.28 km"); }); - it("prettifies distance when distance is very large", function() { + it("prettifies distance when distance is very large", function () { const measureTool = {}} />; const instance = getMountedInstance(measureTool); const prettyDistance = instance.prettifyNumber(123123280.23, false); @@ -56,7 +56,7 @@ describe("MeasureTool-jsx", function() { expect(prettyDistance).toEqual("123,123.28 km"); }); - it("measures geodesic distance in 3D mode", function() { + it("measures geodesic distance in 3D mode", function () { const measureTool = {}} />; const instance = getMountedInstance(measureTool); @@ -80,7 +80,7 @@ describe("MeasureTool-jsx", function() { expect(Math.abs(distance_m - 10476961.667267017) < 2e-9).toBeTruthy(); }); - it("measures geodesic distance in 2D mode", function() { + it("measures geodesic distance in 2D mode", function () { terria.viewerMode = "2d"; const measureTool = {}} />; const instance = getMountedInstance(measureTool); @@ -105,7 +105,7 @@ describe("MeasureTool-jsx", function() { expect(Math.abs(distance_m - 10476961.667267017) < 2e-9).toBeTruthy(); }); - it("measures distance accurately", function() { + it("measures distance accurately", function () { const measureTool = {}} />; const instance = getMountedInstance(measureTool); @@ -142,7 +142,7 @@ describe("MeasureTool-jsx", function() { expect(instance.onMakeDialogMessage()).toEqual("273.23 m"); }); - it("measures distance accurately with geoscience australia test", function() { + it("measures distance accurately with geoscience australia test", function () { const measureTool = {}} />; const instance = getMountedInstance(measureTool); @@ -153,17 +153,15 @@ describe("MeasureTool-jsx", function() { CesiumMath.toRadians(-37.951033), CesiumMath.toRadians(0) ); - const flindersPeakCartesianPosition = Ellipsoid.WGS84.cartographicToCartesian( - flindersPeakPosition - ); + const flindersPeakCartesianPosition = + Ellipsoid.WGS84.cartographicToCartesian(flindersPeakPosition); const buninyongPosition = new Cartographic( CesiumMath.toRadians(143.926496), CesiumMath.toRadians(-37.652821), CesiumMath.toRadians(0) ); - const buninyongCartesianPosition = Ellipsoid.WGS84.cartographicToCartesian( - buninyongPosition - ); + const buninyongCartesianPosition = + Ellipsoid.WGS84.cartographicToCartesian(buninyongPosition); pointEntities.entities.add( new Entity({ @@ -183,7 +181,7 @@ describe("MeasureTool-jsx", function() { expect(instance.onMakeDialogMessage()).toEqual("54.97 km"); }); - it("measures distance accurately with more points", function() { + it("measures distance accurately with more points", function () { const measureTool = {}} />; const instance = getMountedInstance(measureTool); @@ -261,7 +259,7 @@ describe("MeasureTool-jsx", function() { expect(instance.onMakeDialogMessage()).toEqual("272.46 m"); }); - it("updates distance when a point is removed", function() { + it("updates distance when a point is removed", function () { const measureTool = {}} />; const instance = getMountedInstance(measureTool); @@ -331,7 +329,7 @@ describe("MeasureTool-jsx", function() { expect(instance.onMakeDialogMessage()).toEqual("54.66 m"); }); - it("measures area correctly compared to hand-calculated area", function() { + it("measures area correctly compared to hand-calculated area", function () { const measureTool = {}} />; const instance = getMountedInstance(measureTool); @@ -341,33 +339,29 @@ describe("MeasureTool-jsx", function() { CesiumMath.toRadians(-35.309), CesiumMath.toRadians(0) ); - const pt1CartesianPosition = Ellipsoid.WGS84.cartographicToCartesian( - pt1Position - ); + const pt1CartesianPosition = + Ellipsoid.WGS84.cartographicToCartesian(pt1Position); const pt2Position = new Cartographic( CesiumMath.toRadians(149.124), CesiumMath.toRadians(-35.311), CesiumMath.toRadians(0) ); - const pt2CartesianPosition = Ellipsoid.WGS84.cartographicToCartesian( - pt2Position - ); + const pt2CartesianPosition = + Ellipsoid.WGS84.cartographicToCartesian(pt2Position); const pt3Position = new Cartographic( CesiumMath.toRadians(149.127), CesiumMath.toRadians(-35.308), CesiumMath.toRadians(0) ); - const pt3CartesianPosition = Ellipsoid.WGS84.cartographicToCartesian( - pt3Position - ); + const pt3CartesianPosition = + Ellipsoid.WGS84.cartographicToCartesian(pt3Position); const pt4Position = new Cartographic( CesiumMath.toRadians(149.124), CesiumMath.toRadians(-35.306), CesiumMath.toRadians(0) ); - const pt4CartesianPosition = Ellipsoid.WGS84.cartographicToCartesian( - pt4Position - ); + const pt4CartesianPosition = + Ellipsoid.WGS84.cartographicToCartesian(pt4Position); pointEntities.entities.add( new Entity({ diff --git a/test/ReactViews/MoreShallowTools.js b/test/ReactViews/MoreShallowTools.js index 3b88f898989..c52e091d7da 100644 --- a/test/ReactViews/MoreShallowTools.js +++ b/test/ReactViews/MoreShallowTools.js @@ -20,12 +20,12 @@ export function getMountedInstance(jsx) { } export function findAllEqualTo(reactElement, text) { - return findAll(reactElement, element => element && element === text); + return findAll(reactElement, (element) => element && element === text); } export function findAllWithPropsChildEqualTo(reactElement, text) { // Returns elements with element.props.children[i] or element.props.children[i][j] equal to text, for any i or j. - return findAll(reactElement, element => { + return findAll(reactElement, (element) => { if (!(element && element.props && element.props.children)) { return; } @@ -33,7 +33,9 @@ export function findAllWithPropsChildEqualTo(reactElement, text) { (element.props.children.indexOf && element.props.children.indexOf(text) >= 0) || (element.props.children.some && - element.props.children.some(x => x && x.length && x.indexOf(text) >= 0)) + element.props.children.some( + (x) => x && x.length && x.indexOf(text) >= 0 + )) ); }); } diff --git a/test/ReactViews/Preview/DescriptionSpec.tsx b/test/ReactViews/Preview/DescriptionSpec.tsx index 93e2951f666..2d5873e46dc 100644 --- a/test/ReactViews/Preview/DescriptionSpec.tsx +++ b/test/ReactViews/Preview/DescriptionSpec.tsx @@ -9,12 +9,12 @@ import WebMapServiceCatalogItem from "../../../lib/Models/Catalog/Ows/WebMapServ import Description from "../../../lib/ReactViews/Preview/Description"; import { terriaTheme } from "../../../lib/ReactViews/StandardUserInterface/StandardTheme"; -describe("DescriptionSpec", function() { +describe("DescriptionSpec", function () { let testRenderer: ReactTestRenderer; let terria: Terria; let wmsItem: WebMapServiceCatalogItem; - beforeEach(async function() { + beforeEach(async function () { terria = new Terria({ baseUrl: "./" }); @@ -26,7 +26,7 @@ describe("DescriptionSpec", function() { await wmsItem.loadMetadata(); }); - it("renders metadataUrls", function() { + it("renders metadataUrls", function () { act(() => { testRenderer = create( @@ -36,7 +36,7 @@ describe("DescriptionSpec", function() { }); const metadataUrls = testRenderer.root.findAll( - node => + (node) => node.props.className?.includes("description-metadataUrls") && node.type === "a" ); @@ -46,7 +46,7 @@ describe("DescriptionSpec", function() { expect(metadataUrls[0].children[0]).toBe("http://examplemetadata.com"); }); - it("renders metadataUrl button", function() { + it("renders metadataUrl button", function () { runInAction(() => { updateModelFromJson(wmsItem, "definition", { metadataUrls: [{ title: "Some Title" }] @@ -62,7 +62,7 @@ describe("DescriptionSpec", function() { }); const metadataUrls = testRenderer.root.findAll( - node => + (node) => node.props.className?.includes("description-metadataUrls") && node.type === "a" ); @@ -75,7 +75,7 @@ describe("DescriptionSpec", function() { expect(child.props.children).toBe("Some Title"); }); - it("renders dataUrls", function() { + it("renders dataUrls", function () { runInAction(() => { updateModelFromJson(wmsItem, "definition", { metadataUrls: [{ title: "Some Title" }], @@ -97,7 +97,7 @@ describe("DescriptionSpec", function() { }); const dataUrls = testRenderer.root.findAll( - node => + (node) => node.props.className?.includes("description-dataUrls") && node.type === "a" ); @@ -107,7 +107,7 @@ describe("DescriptionSpec", function() { expect(dataUrls[0].children[0]).toBe("http://exampledata.com"); }); - it("renders metadataUrl button", function() { + it("renders metadataUrl button", function () { runInAction(() => { updateModelFromJson(wmsItem, "definition", { metadataUrls: [{ title: "Some Title" }], @@ -130,7 +130,7 @@ describe("DescriptionSpec", function() { }); const dataUrls = testRenderer.root.findAll( - node => + (node) => node.props.className?.includes("description-dataUrls") && node.type === "a" ); diff --git a/test/ReactViews/ScalesSpec.jsx b/test/ReactViews/ScalesSpec.jsx index 22201d6ae5b..01c0197f06e 100644 --- a/test/ReactViews/ScalesSpec.jsx +++ b/test/ReactViews/ScalesSpec.jsx @@ -8,7 +8,7 @@ import Chart from "../../lib/ReactViews/Custom/Chart/Chart"; import ChartData from "../../lib/Charts/ChartData"; // import TableStructure from '../../lib/Map/TableStructure'; -describe("Scales", function() { +describe("Scales", function () { const size = { width: 1000, yAxesWidth: 66, @@ -18,7 +18,7 @@ describe("Scales", function() { xAxisHeight: 14, xAxisLabelHeight: 20 }; - it("handles a typical scale correctly", function(done) { + it("handles a typical scale correctly", function (done) { const chartData = [ new ChartData( [ @@ -32,7 +32,7 @@ describe("Scales", function() { const instance = getMountedInstance(chart); instance .getChartDataPromise(instance.getChartParameters().data) - .then(function(data) { + .then(function (data) { const scale = Scales.calculate(size, undefined, data); expect(scale.x).toBeDefined(); expect(scale.y).toBeDefined(); @@ -45,7 +45,7 @@ describe("Scales", function() { .catch(done.fail); }); - it("handles overlapping X and Y domains correctly", function(done) { + it("handles overlapping X and Y domains correctly", function (done) { const chartData = [ new ChartData( [ @@ -65,7 +65,7 @@ describe("Scales", function() { const instance = getMountedInstance(); instance .getChartDataPromise(instance.getChartParameters().data) - .then(function(data) { + .then(function (data) { const scale = Scales.calculate(size, undefined, data); expect(scale.x).toBeDefined(); expect(scale.y).toBeDefined(); diff --git a/test/ReactViews/Search/BreadcrumbsSpec.tsx b/test/ReactViews/Search/BreadcrumbsSpec.tsx index 346db0ce86e..2eb3218fea6 100644 --- a/test/ReactViews/Search/BreadcrumbsSpec.tsx +++ b/test/ReactViews/Search/BreadcrumbsSpec.tsx @@ -5,21 +5,21 @@ import Terria from "../../../lib/Models/Terria"; import CatalogGroup from "../../../lib/Models/Catalog/CatalogGroup"; import ViewState from "../../../lib/ReactViewModels/ViewState"; import Breadcrumbs from "../../../lib/ReactViews/Search/Breadcrumbs"; -const DataCatalogTab: any = require("../../../lib/ReactViews/ExplorerWindow/Tabs/DataCatalogTab") - .default; +const DataCatalogTab: any = + require("../../../lib/ReactViews/ExplorerWindow/Tabs/DataCatalogTab").default; import Icon from "../../../lib/Styled/Icon"; import { ThemeProvider } from "styled-components"; import { terriaTheme } from "../../../lib/ReactViews/StandardUserInterface/StandardTheme"; import { runInAction } from "mobx"; -describe("Breadcrumbs", function() { +describe("Breadcrumbs", function () { let terria: Terria; let viewState: ViewState; let catalogGroup: CatalogGroup; let testRenderer: any; - beforeEach(function() { + beforeEach(function () { terria = new Terria({ baseUrl: "./" }); @@ -32,8 +32,8 @@ describe("Breadcrumbs", function() { terria.addModel(catalogGroup); }); - describe("with a prevewied catalog item", function() { - it("renders", async function() { + describe("with a prevewied catalog item", function () { + it("renders", async function () { await viewState.viewCatalogMember(catalogGroup); act(() => { @@ -51,8 +51,8 @@ describe("Breadcrumbs", function() { }); }); - describe("without a previewed catalog item", function() { - it("does not render", function() { + describe("without a previewed catalog item", function () { + it("does not render", function () { runInAction(() => { viewState.clearPreviewedItem(); }); diff --git a/test/ReactViews/Search/SearchBoxAndResultsSpec.tsx b/test/ReactViews/Search/SearchBoxAndResultsSpec.tsx index 4639acc0e23..57862533302 100644 --- a/test/ReactViews/Search/SearchBoxAndResultsSpec.tsx +++ b/test/ReactViews/Search/SearchBoxAndResultsSpec.tsx @@ -10,13 +10,13 @@ import SearchBoxAndResults, { import { ThemeProvider } from "styled-components"; import { terriaTheme } from "../../../lib/ReactViews/StandardUserInterface/StandardTheme"; -describe("SearchBoxAndResults", function() { +describe("SearchBoxAndResults", function () { let terria: Terria; let viewState: ViewState; let testRenderer: any; - beforeEach(function() { + beforeEach(function () { terria = new Terria({ baseUrl: "./" }); @@ -31,7 +31,7 @@ describe("SearchBoxAndResults", function() { }); }); - it("renders with an input(SearchBox), but no SearchInDataCatalog without showLocationSearchResults", function() { + it("renders with an input(SearchBox), but no SearchInDataCatalog without showLocationSearchResults", function () { const searchText = "neko"; runInAction(() => { viewState.searchState.locationSearchText = searchText; @@ -58,7 +58,7 @@ describe("SearchBoxAndResults", function() { expect(searchBox.props.value).toEqual(searchText); }); - it("renders with an input & SearchInDataCatalog when showLocationSearchResults", function() { + it("renders with an input & SearchInDataCatalog when showLocationSearchResults", function () { const searchText = "mochi"; runInAction(() => { viewState.searchState.locationSearchText = searchText; @@ -83,7 +83,7 @@ describe("SearchBoxAndResults", function() { expect(searchBox.props.value).toEqual(searchText); }); - it("renders with an input & no SearchInDataCatalog without catalogSearchProvider", function() { + it("renders with an input & no SearchInDataCatalog without catalogSearchProvider", function () { const searchText = "timmynook"; runInAction(() => { viewState.searchState.locationSearchText = searchText; diff --git a/test/ReactViews/Search/SearchBoxSpec.tsx b/test/ReactViews/Search/SearchBoxSpec.tsx index cfa30286881..ecf678efc20 100644 --- a/test/ReactViews/Search/SearchBoxSpec.tsx +++ b/test/ReactViews/Search/SearchBoxSpec.tsx @@ -6,13 +6,13 @@ import ViewState from "../../../lib/ReactViewModels/ViewState"; import { SearchBox } from "../../../lib/ReactViews/Search/SearchBox"; import { terriaTheme } from "../../../lib/ReactViews/StandardUserInterface/StandardTheme"; -describe("SearchBox", function() { +describe("SearchBox", function () { let terria: Terria; let viewState: ViewState; let testRenderer: any; - beforeEach(function() { + beforeEach(function () { terria = new Terria({ baseUrl: "./" }); @@ -23,11 +23,11 @@ describe("SearchBox", function() { }); }); - describe("with basic props", function() { + describe("with basic props", function () { const searchText = "mochi"; let searchBoxValue = "something"; - beforeEach(function() { + beforeEach(function () { searchBoxValue = "something"; }); const searchBoxWithProps = ( @@ -46,7 +46,7 @@ describe("SearchBox", function() { /> ); - it("renders", function() { + it("renders", function () { act(() => { testRenderer = create(searchBoxWithProps); }); @@ -55,7 +55,7 @@ describe("SearchBox", function() { expect(searchBoxInput).toBeDefined(); expect(searchBoxInput.props.value).toEqual(searchText); }); - it("renders and clearSearch triggers onSearchTextChanged callback", function() { + it("renders and clearSearch triggers onSearchTextChanged callback", function () { act(() => { testRenderer = create(searchBoxWithProps); }); diff --git a/test/ReactViews/ShortReportSpec.tsx b/test/ReactViews/ShortReportSpec.tsx index 8c9255eb427..c7bd4424564 100644 --- a/test/ReactViews/ShortReportSpec.tsx +++ b/test/ReactViews/ShortReportSpec.tsx @@ -12,12 +12,12 @@ import { terriaTheme } from "../../lib/ReactViews/StandardUserInterface/Standard import ShortReport from "../../lib/ReactViews/Workbench/Controls/ShortReport"; import Text from "../../lib/Styled/Text"; -describe("ShortReport", function() { +describe("ShortReport", function () { let testRenderer: ReactTestRenderer | undefined; let terria: Terria; let wmsItem: WebMapServiceCatalogItem; - beforeEach(function() { + beforeEach(function () { terria = new Terria({ baseUrl: "./" }); @@ -42,8 +42,8 @@ describe("ShortReport", function() { ]); }); - describe("with basic props", function() { - it("renders without errors", function() { + describe("with basic props", function () { + it("renders without errors", function () { act(() => { testRenderer = create( @@ -85,7 +85,7 @@ describe("ShortReport", function() { const boxes = testRenderer.root.findAllByType("p"); expect( boxes.some( - box => box.props.children === "Report Name - with no content" + (box) => box.props.children === "Report Name - with no content" ) ).toBeTruthy(); }); diff --git a/test/ReactViews/SidePanel/BrandingSpec.tsx b/test/ReactViews/SidePanel/BrandingSpec.tsx index 806a4828791..fbe4094a574 100644 --- a/test/ReactViews/SidePanel/BrandingSpec.tsx +++ b/test/ReactViews/SidePanel/BrandingSpec.tsx @@ -6,12 +6,12 @@ import Branding from "../../../lib/ReactViews/SidePanel/Branding"; import { createWithContexts } from "../withContext"; // import Branding from "../../../lib/ReactViews/SidePanel/Branding"; -describe("Branding", function() { +describe("Branding", function () { let terria: Terria; let viewState: ViewState; let rendered: TestRenderer.ReactTestRenderer; - beforeEach(function() { + beforeEach(function () { terria = new Terria(); viewState = new ViewState({ terria, @@ -20,12 +20,12 @@ describe("Branding", function() { }); }); - it("renders without issues", function() { + it("renders without issues", function () { terria.configParameters.brandBarElements = ["a thing"]; rendered = createWithContexts(viewState, ); expect(rendered.root.findByType("a")).toBeDefined(); }); - it("renders when provided displayOne inside of index", function() { + it("renders when provided displayOne inside of index", function () { terria.configParameters.brandBarElements = [ "
    a thing
    " ]; @@ -36,7 +36,7 @@ describe("Branding", function() { rendered.root.findByType("a"); }).toThrow(); }); - it("renders when provided displayOne inside of index, but targetting empty string", function() { + it("renders when provided displayOne inside of index, but targetting empty string", function () { terria.configParameters.brandBarElements = [ "", "progress is a html element!" @@ -48,7 +48,7 @@ describe("Branding", function() { rendered.root.findByType("span"); }).toThrow(); }); - it("renders when provided displayOne outside of index", function() { + it("renders when provided displayOne outside of index", function () { terria.configParameters.brandBarElements = [ "", "meter is a html element!" @@ -60,7 +60,7 @@ describe("Branding", function() { rendered.root.findByType("progress"); }).toThrow(); }); - it("renders brandBarElements when provided brandBarSmallElements", function() { + it("renders brandBarElements when provided brandBarSmallElements", function () { terria.configParameters.brandBarElements = [ "", "meter is a html element!" @@ -75,7 +75,7 @@ describe("Branding", function() { expect(rendered.root.findByType("meter")).toBeDefined(); }); - it("renders when provided brandBarSmallElements and ignores displayOneBrand", function() { + it("renders when provided brandBarSmallElements and ignores displayOneBrand", function () { terria.configParameters.brandBarElements = [ "", "meter is a html element!" diff --git a/test/ReactViews/StandardUserInterfaceSpec.jsx b/test/ReactViews/StandardUserInterfaceSpec.jsx index 17c3a6cc932..0feda5aaf7b 100644 --- a/test/ReactViews/StandardUserInterfaceSpec.jsx +++ b/test/ReactViews/StandardUserInterfaceSpec.jsx @@ -10,12 +10,12 @@ import { import Terria from "../../lib/Models/Terria"; import ViewState from "../../lib/ReactViewModels/ViewState"; -describe("StandardUserInterface", function() { +describe("StandardUserInterface", function () { let terria; // let feature; let viewState; - beforeEach(function() { + beforeEach(function () { terria = new Terria({ baseUrl: "./" }); @@ -24,7 +24,7 @@ describe("StandardUserInterface", function() { }); }); - it("has class story-wrapper", function() { + it("has class story-wrapper", function () { const ui = ( {}} />; catalogItem.dateFormat.currentTime = "mmm"; terria.timelineStack.addToTop(catalogItem); @@ -37,7 +37,7 @@ describe("Timeline", function() { expect(result.state.currentTimeString).toBe("Jan"); }); - it("currentTime should not be used if not provided", function() { + it("currentTime should not be used if not provided", function () { const timeline = {}} />; terria.timelineStack.addToTop(catalogItem); terria.clock.currentTime = JulianDate.fromIso8601("2016-01-01T00:00"); diff --git a/test/ReactViews/ToolButtonSpec.tsx b/test/ReactViews/ToolButtonSpec.tsx index 35134e5c067..c0d52244919 100644 --- a/test/ReactViews/ToolButtonSpec.tsx +++ b/test/ReactViews/ToolButtonSpec.tsx @@ -7,11 +7,11 @@ import MapIconButton from "../../lib/ReactViews/MapIconButton/MapIconButton"; const TestComponent = () =>
    Test hello
    ; -describe("ToolButton", function() { +describe("ToolButton", function () { let viewState: ViewState; let rendered: TestRenderer.ReactTestRenderer; - beforeEach(function() { + beforeEach(function () { const terria = new Terria(); viewState = new ViewState({ terria, diff --git a/test/ReactViews/ToolSpec.tsx b/test/ReactViews/ToolSpec.tsx index 8926cc6318e..f9a14750a76 100644 --- a/test/ReactViews/ToolSpec.tsx +++ b/test/ReactViews/ToolSpec.tsx @@ -7,10 +7,10 @@ import { createWithContexts } from "./withContext"; const TestComponent = () =>
    Test hello
    ; -describe("Tool", function() { +describe("Tool", function () { let viewState: ViewState; - beforeEach(function() { + beforeEach(function () { const terria = new Terria(); viewState = new ViewState({ terria, @@ -21,7 +21,7 @@ describe("Tool", function() { // The following specs are excluded as they will break in react version // 16.3.2, we can enable them after migrating to a newer version. - xit("renders the item returned by getToolComponent", async function() { + xit("renders the item returned by getToolComponent", async function () { let rendered: any; await act(async () => { rendered = createWithContexts( @@ -36,7 +36,7 @@ describe("Tool", function() { expect(testComponent).toBeDefined(); }); - xit("renders the promised item returned by getToolComponent", async function() { + xit("renders the promised item returned by getToolComponent", async function () { let rendered: any; await act(async () => { rendered = createWithContexts( diff --git a/test/ReactViews/Tools/ItemSearchTool/ItemSearchToolSpec.tsx b/test/ReactViews/Tools/ItemSearchTool/ItemSearchToolSpec.tsx index 645cd7db9b0..d02a6666e75 100644 --- a/test/ReactViews/Tools/ItemSearchTool/ItemSearchToolSpec.tsx +++ b/test/ReactViews/Tools/ItemSearchTool/ItemSearchToolSpec.tsx @@ -47,13 +47,13 @@ class TestItemSearchProvider extends ItemSearchProvider { } } -describe("ItemSearchTool", function() { +describe("ItemSearchTool", function () { let viewState: ViewState; let item: MockSearchableItem; let itemSearchProvider: ItemSearchProvider; let rendered: ReactTestRenderer; - beforeEach(function() { + beforeEach(function () { registerItemSearchProvider("testProvider", TestItemSearchProvider); const terria: Terria = new Terria(); viewState = new ViewState({ @@ -77,7 +77,7 @@ describe("ItemSearchTool", function() { } }); - it("can be rendered", function() { + it("can be rendered", function () { act(() => { rendered = render({ item, itemSearchProvider, viewState }); }); @@ -85,7 +85,7 @@ describe("ItemSearchTool", function() { expect(component).toBeDefined(); }); - it("initializes an describes the parameters when mounted", async function() { + it("initializes an describes the parameters when mounted", async function () { spyOn(itemSearchProvider, "initialize").and.callThrough(); spyOn(itemSearchProvider, "describeParameters").and.callThrough(); await act(() => { @@ -99,8 +99,8 @@ describe("ItemSearchTool", function() { expect(itemSearchProvider.describeParameters).toHaveBeenCalledTimes(1); }); - describe("loading", function() { - it("shows a Loading component while loading", function() { + describe("loading", function () { + it("shows a Loading component while loading", function () { act(() => { rendered = render({ item, @@ -115,7 +115,7 @@ describe("ItemSearchTool", function() { ); }); - it("shows an error message on load error", async function() { + it("shows an error message on load error", async function () { spyOn(itemSearchProvider, "describeParameters").and.callFake(() => Promise.reject(new Error(`Something happened`)) ); @@ -133,7 +133,7 @@ describe("ItemSearchTool", function() { ); }); - it("shows a search from on successful load", async function() { + it("shows a search from on successful load", async function () { spyOn(itemSearchProvider, "describeParameters").and.callFake(() => Promise.resolve([ { @@ -153,7 +153,7 @@ describe("ItemSearchTool", function() { expect(searchForm).toBeDefined(); }); - it("it shows the search results", async function() { + it("it shows the search results", async function () { spyOn(itemSearchProvider, "search").and.callFake(() => Promise.resolve([]) ); @@ -177,7 +177,7 @@ function render(props: Omit) { function renderAndLoad( props: Omit ): Promise { - return new Promise(resolve => { + return new Promise((resolve) => { act(() => { const rendered = render({ ...props, diff --git a/test/ReactViews/Tools/ItemSearchTool/SearchFormSpec.tsx b/test/ReactViews/Tools/ItemSearchTool/SearchFormSpec.tsx index b6158f9e2eb..cc26ca9d6df 100644 --- a/test/ReactViews/Tools/ItemSearchTool/SearchFormSpec.tsx +++ b/test/ReactViews/Tools/ItemSearchTool/SearchFormSpec.tsx @@ -27,8 +27,8 @@ class TestItemSearchProvider extends ItemSearchProvider { } } -describe("SearchForm", function() { - it("calls `onResults` after searching", async function() { +describe("SearchForm", function () { + it("calls `onResults` after searching", async function () { const itemSearchProvider = new TestItemSearchProvider({}, []); const onResults = jasmine.createSpy("onResults"); const { root } = render({ diff --git a/test/ReactViews/Tools/ItemSearchTool/SearchResultsSpec.tsx b/test/ReactViews/Tools/ItemSearchTool/SearchResultsSpec.tsx index da8762418f9..4325f0571be 100644 --- a/test/ReactViews/Tools/ItemSearchTool/SearchResultsSpec.tsx +++ b/test/ReactViews/Tools/ItemSearchTool/SearchResultsSpec.tsx @@ -8,8 +8,8 @@ import SearchResults, { } from "../../../../lib/ReactViews/Tools/ItemSearchTool/SearchResults"; import MockSearchableItem from "./MockSearchableItem"; -describe("SearchResults", function() { - it("shows the results count", async function() { +describe("SearchResults", function () { + it("shows the results count", async function () { const { root } = await render({ item: new MockSearchableItem(undefined, new Terria()), results: sampleResults(20) @@ -35,7 +35,7 @@ async function render( } function sampleResults(count: number): ItemSearchResult[] { - return [...Array(count)].map(i => ({ + return [...Array(count)].map((i) => ({ id: `building-${i}`, idPropertyName: "building-id", featureCoordinate: { diff --git a/test/ReactViews/Tools/PedestrianMode/MovementsControllerSpec.ts b/test/ReactViews/Tools/PedestrianMode/MovementsControllerSpec.ts index 9bb2043332d..ed2ac782df6 100644 --- a/test/ReactViews/Tools/PedestrianMode/MovementsControllerSpec.ts +++ b/test/ReactViews/Tools/PedestrianMode/MovementsControllerSpec.ts @@ -13,13 +13,13 @@ import { PEDESTRIAN_HEIGHT } from "../../../../lib/ReactViews/Tools/PedestrianMode/PedestrianMode"; -describe("MovementsController", function() { +describe("MovementsController", function () { let cesium: Cesium; let scene: Scene; let camera: Camera; let controller: MovementsController; - beforeEach(async function() { + beforeEach(async function () { const terria = new Terria(); const container = document.createElement("div"); terria.mainViewer.attach(container); @@ -35,10 +35,10 @@ describe("MovementsController", function() { camera = scene.camera; }); - describe("when activated", function() { + describe("when activated", function () { it( "disables all default map interactions", - action(function() { + action(function () { controller.activate(); expect(scene.screenSpaceCameraController.enableTranslate).toBe(false); expect(scene.screenSpaceCameraController.enableRotate).toBe(false); @@ -49,29 +49,29 @@ describe("MovementsController", function() { }) ); - it("sets up the key map", function() { + it("sets up the key map", function () { const setupKeyMap = spyOn(controller, "setupKeyMap"); controller.activate(); expect(setupKeyMap).toHaveBeenCalled(); }); - it("sets up the mouse map", function() { + it("sets up the mouse map", function () { const setupMouseMap = spyOn(controller, "setupMouseMap"); controller.activate(); expect(setupMouseMap).toHaveBeenCalled(); }); - it("starts animating", function() { + it("starts animating", function () { const startAnimating = spyOn(controller, "startAnimating"); controller.activate(); expect(startAnimating).toHaveBeenCalled(); }); }); - describe("when deactivated", function() { + describe("when deactivated", function () { it( "re-enables all default map interactions", - action(function() { + action(function () { const deactivate = controller.activate(); deactivate(); expect(scene.screenSpaceCameraController.enableTranslate).toBe(true); @@ -83,7 +83,7 @@ describe("MovementsController", function() { }) ); - it("destroys the key map", function() { + it("destroys the key map", function () { const destroyKeyMap = jasmine.createSpy("destroyKeyMap"); spyOn(controller, "setupKeyMap").and.returnValue(destroyKeyMap); const deactivate = controller.activate(); @@ -91,7 +91,7 @@ describe("MovementsController", function() { expect(destroyKeyMap).toHaveBeenCalled(); }); - it("destroys the mouse map", function() { + it("destroys the mouse map", function () { const destroyMouseMap = jasmine.createSpy("destroyMouseMap"); spyOn(controller, "setupMouseMap").and.returnValue(destroyMouseMap); const deactivate = controller.activate(); @@ -99,7 +99,7 @@ describe("MovementsController", function() { expect(destroyMouseMap).toHaveBeenCalled(); }); - it("stops animating", function() { + it("stops animating", function () { const stopAnimating = jasmine.createSpy("stopAnimating"); spyOn(controller, "startAnimating").and.returnValue(stopAnimating); const deactivate = controller.activate(); @@ -108,15 +108,15 @@ describe("MovementsController", function() { }); }); - describe("moveAmount", function() { - describe("in walk mode", function() { - it("is a constant", function() { + describe("moveAmount", function () { + describe("in walk mode", function () { + it("is a constant", function () { expect(controller.moveAmount).toBe(0.2); }); }); - describe("in fly mode", function() { - it("is proportional to the height", function() { + describe("in fly mode", function () { + it("is proportional to the height", function () { controller.mode = "fly"; spyOnProperty( controller, @@ -125,7 +125,7 @@ describe("MovementsController", function() { expect(controller.moveAmount).toBe(1); }); - it("is never below baseAmount", function() { + it("is never below baseAmount", function () { controller.mode = "fly"; spyOnProperty( controller, @@ -136,15 +136,15 @@ describe("MovementsController", function() { }); }); - describe("when animating", function() { - it("automatically switches to fly mode when moving up", function() { + describe("when animating", function () { + it("automatically switches to fly mode when moving up", function () { controller.mode = "walk"; controller.activeMovements.add("up"); controller.animate(); expect(controller.mode).toEqual("fly"); }); - it("automatically switches to walk mode when moving down and hitting ground", function() { + it("automatically switches to walk mode when moving down and hitting ground", function () { controller.mode = "fly"; controller.activeMovements.add("down"); controller.animate(); @@ -152,14 +152,14 @@ describe("MovementsController", function() { }); }); - describe("movements", function() { - beforeEach(function() { + describe("movements", function () { + beforeEach(function () { camera.position = Cartographic.toCartesian( Cartographic.fromDegrees(76.93, 8.52, 100) ); }); - it("can move forward", function() { + it("can move forward", function () { spyOnProperty(controller, "moveAmount").and.returnValue(100000); controller.move("forward"); expect(toLatLonHeight(camera.position)).toEqual({ @@ -169,7 +169,7 @@ describe("MovementsController", function() { }); }); - it("can move backward", function() { + it("can move backward", function () { spyOnProperty(controller, "moveAmount").and.returnValue(100000); controller.move("backward"); expect(toLatLonHeight(camera.position)).toEqual({ @@ -179,7 +179,7 @@ describe("MovementsController", function() { }); }); - it("can move up", function() { + it("can move up", function () { spyOnProperty(controller, "moveAmount").and.returnValue(100); controller.move("up"); expect(toLatLonHeight(camera.position)).toEqual({ @@ -189,7 +189,7 @@ describe("MovementsController", function() { }); }); - it("can move down", function() { + it("can move down", function () { spyOnProperty(controller, "moveAmount").and.returnValue(100); controller.move("down"); expect(toLatLonHeight(camera.position)).toEqual({ diff --git a/test/ReactViews/Tour/TourPortalSpec.tsx b/test/ReactViews/Tour/TourPortalSpec.tsx index 8bd7300e3e5..4d0d1108d72 100644 --- a/test/ReactViews/Tour/TourPortalSpec.tsx +++ b/test/ReactViews/Tour/TourPortalSpec.tsx @@ -11,13 +11,13 @@ import TourPortal, { } from "../../../lib/ReactViews/Tour/TourPortal"; import { createWithContexts } from "../withContext"; -describe("TourPortal", function() { +describe("TourPortal", function () { let terria: Terria; let viewState: ViewState; let testRenderer: any; - beforeEach(function() { + beforeEach(function () { terria = new Terria({ baseUrl: "./" }); @@ -28,16 +28,16 @@ describe("TourPortal", function() { }); }); - describe("with basic props", function() { - describe("renders", function() { - it("nothing when current tour index is negative", function() { + describe("with basic props", function () { + describe("renders", function () { + it("nothing when current tour index is negative", function () { act(() => { testRenderer = createWithContexts(viewState, ); }); // tourportal should just not render anything in this case expect(() => testRenderer.root.findByType("div")).toThrow(); }); - it("renders something using the TourPreface path under preface conditions", function() { + it("renders something using the TourPreface path under preface conditions", function () { runInAction(() => { viewState.setTourIndex(0); viewState.setShowTour(false); @@ -57,7 +57,7 @@ describe("TourPortal", function() { expect(testRenderer.root.findByType(TourPreface)).toBeDefined(); expect(() => testRenderer.root.findByType(TourExplanation)).toThrow(); }); - it("renders something using the TourGrouping path under showPortal conditions", function() { + it("renders something using the TourGrouping path under showPortal conditions", function () { const testRef: any = React.createRef(); const testRef2: any = React.createRef(); const testRef3: any = React.createRef(); diff --git a/test/ReactViews/WarningBoxSpec.tsx b/test/ReactViews/WarningBoxSpec.tsx index 417fc486c8c..842688bb523 100644 --- a/test/ReactViews/WarningBoxSpec.tsx +++ b/test/ReactViews/WarningBoxSpec.tsx @@ -8,14 +8,14 @@ import Terria from "../../lib/Models/Terria"; import WebMapServiceCatalogItem from "../../lib/Models/Catalog/Ows/WebMapServiceCatalogItem"; import Box from "../../lib/Styled/Box"; -describe("WarningBox", function() { +describe("WarningBox", function () { let testRenderer: ReturnType; let terria: Terria; - beforeEach(function() { + beforeEach(function () { // terria = new Terria({ baseUrl: "./" }); }); - it("renders", function() { + it("renders", function () { act(() => { testRenderer = create( @@ -24,6 +24,8 @@ describe("WarningBox", function() { ); }); const boxes = testRenderer.root.findAllByType(Box); - expect(boxes.some(box => box.props.children === "Test text")).toBeTruthy(); + expect( + boxes.some((box) => box.props.children === "Test text") + ).toBeTruthy(); }); }); diff --git a/test/ReactViews/WelcomeMessageSpec.tsx b/test/ReactViews/WelcomeMessageSpec.tsx index a0fd22f14ad..ce7fa35d34d 100644 --- a/test/ReactViews/WelcomeMessageSpec.tsx +++ b/test/ReactViews/WelcomeMessageSpec.tsx @@ -5,16 +5,16 @@ import Terria from "../../lib/Models/Terria"; import ViewState from "../../lib/ReactViewModels/ViewState"; import { WelcomeMessagePure } from "../../lib/ReactViews/WelcomeMessage/WelcomeMessage"; import { createWithContexts } from "./withContext"; -const WelcomeMessage: any = require("../../lib/ReactViews/WelcomeMessage/WelcomeMessage") - .default; +const WelcomeMessage: any = + require("../../lib/ReactViews/WelcomeMessage/WelcomeMessage").default; -describe("WelcomeMessage", function() { +describe("WelcomeMessage", function () { let terria: Terria; let viewState: ViewState; let testRenderer: any; - beforeEach(function() { + beforeEach(function () { terria = new Terria({ baseUrl: "./" }); @@ -25,7 +25,7 @@ describe("WelcomeMessage", function() { }); }); - it("renders when showWelcomeMessage is set to true in config file", function() { + it("renders when showWelcomeMessage is set to true in config file", function () { runInAction(() => (terria.configParameters.showWelcomeMessage = true)); act(() => { testRenderer = createWithContexts(viewState, ); @@ -34,7 +34,7 @@ describe("WelcomeMessage", function() { expect(welcomeMessagePure.props.showWelcomeMessage).toEqual(true); }); - it("doesn't render when showWelcomeMessage is set to true in config file", function() { + it("doesn't render when showWelcomeMessage is set to true in config file", function () { runInAction(() => (terria.configParameters.showWelcomeMessage = false)); act(() => { testRenderer = createWithContexts(viewState, ); diff --git a/test/ReactViews/Workbench/Controls/ChartItemSelectorSpec.tsx b/test/ReactViews/Workbench/Controls/ChartItemSelectorSpec.tsx index dcca3375d12..73cb68e9c81 100644 --- a/test/ReactViews/Workbench/Controls/ChartItemSelectorSpec.tsx +++ b/test/ReactViews/Workbench/Controls/ChartItemSelectorSpec.tsx @@ -61,12 +61,12 @@ class SomeChartableItem extends ChartableMixin( } } -describe("ChartItemSelector", function() { +describe("ChartItemSelector", function () { let terria: Terria; let item: SomeChartableItem; let testRenderer: ReactTestRenderer; - beforeEach(async function() { + beforeEach(async function () { terria = new Terria({ baseUrl: "./" }); @@ -78,10 +78,10 @@ describe("ChartItemSelector", function() { }); }); - it("sorts the chart items by name", function() { + it("sorts the chart items by name", function () { const chartItemNames = testRenderer.root .findAllByType("label") - .map(c => (c.children[3] as any).children[0].children[0]); + .map((c) => (c.children[3] as any).children[0].children[0]); expect(chartItemNames).toEqual(["aaa", "zzz"]); }); }); diff --git a/test/ReactViews/Workbench/Controls/DateTimePickerSpec.tsx b/test/ReactViews/Workbench/Controls/DateTimePickerSpec.tsx index 4258b257516..9a543605ea0 100644 --- a/test/ReactViews/Workbench/Controls/DateTimePickerSpec.tsx +++ b/test/ReactViews/Workbench/Controls/DateTimePickerSpec.tsx @@ -6,21 +6,21 @@ import Terria from "../../../../lib/Models/Terria"; import WebMapServiceCatalogItem from "../../../../lib/Models/Catalog/Ows/WebMapServiceCatalogItem"; import DateTimePicker from "../../../../lib/ReactViews/BottomDock/Timeline/DateTimePicker"; -const GridRow = require("../../../../lib/ReactViews/BottomDock/Timeline/DateTimePicker") - .GridRow; +const GridRow = + require("../../../../lib/ReactViews/BottomDock/Timeline/DateTimePicker").GridRow; -describe("DateTimePicker", function() { +describe("DateTimePicker", function () { let terria: Terria; let wmsItem: WebMapServiceCatalogItem; let testRenderer: ReactTestRenderer; - beforeEach(async function() { + beforeEach(async function () { terria = new Terria({ baseUrl: "./" }); }); - it("A datetime selector is rendered for WMS with not many dates", async function() { + it("A datetime selector is rendered for WMS with not many dates", async function () { wmsItem = new WebMapServiceCatalogItem("mywms", terria); wmsItem.setTrait("definition", "url", "/test/WMS/comma_sep_datetimes.xml"); wmsItem.setTrait("definition", "layers", "13_intervals"); diff --git a/test/ReactViews/Workbench/Controls/DateTimeSelectorSectionSpec.tsx b/test/ReactViews/Workbench/Controls/DateTimeSelectorSectionSpec.tsx index ff3e1f09430..5980374064b 100644 --- a/test/ReactViews/Workbench/Controls/DateTimeSelectorSectionSpec.tsx +++ b/test/ReactViews/Workbench/Controls/DateTimeSelectorSectionSpec.tsx @@ -6,14 +6,14 @@ import Terria from "../../../../lib/Models/Terria"; import { formatDateTime } from "../../../../lib/ReactViews/BottomDock/Timeline/DateFormats"; import DateTimeSelectorSection from "../../../../lib/ReactViews/Workbench/Controls/DateTimeSelectorSection"; -describe("DateTimeSelectorSection", function() { +describe("DateTimeSelectorSection", function () { let terria: Terria; let wmsItem: WebMapServiceCatalogItem; let testRenderer: ReactTestRenderer; let buttons: any[]; let currentDateBtn: any; - beforeEach(async function() { + beforeEach(async function () { terria = new Terria({ baseUrl: "./" }); @@ -29,13 +29,13 @@ describe("DateTimeSelectorSection", function() { }); buttons = testRenderer.root.findAllByType("button"); - currentDateBtn = buttons.filter(b => { + currentDateBtn = buttons.filter((b) => { if (b.props["id"]?.indexOf("current-date-btn") > -1) return true; return false; })[0]; }); - it("A datetime selector is rendered", function() { + it("A datetime selector is rendered", function () { expect(buttons).toBeDefined(); expect(buttons.length).toEqual(5); // Need to do it the longer way because Travis runs in a diff locale @@ -57,7 +57,7 @@ describe("DateTimeSelectorSection", function() { ); }); - it("A datetime selector uses timeLabel", function() { + it("A datetime selector uses timeLabel", function () { wmsItem.setTrait("definition", "timeLabel", "Some Label"); const titleLabel: any = testRenderer.root.findByProps({ @@ -68,7 +68,7 @@ describe("DateTimeSelectorSection", function() { expect(titleLabel.children[0].children[0]).toEqual("Some Label"); }); - it("A datetime selector can be formatted", async function() { + it("A datetime selector can be formatted", async function () { wmsItem.setTrait("definition", "dateFormat", "yyyy"); expect(buttons).toBeDefined(); expect(buttons.length).toEqual(5); diff --git a/test/ReactViews/Workbench/Controls/IdealZoomSpec.tsx b/test/ReactViews/Workbench/Controls/IdealZoomSpec.tsx index 3836e3734e7..34d2e06ed29 100644 --- a/test/ReactViews/Workbench/Controls/IdealZoomSpec.tsx +++ b/test/ReactViews/Workbench/Controls/IdealZoomSpec.tsx @@ -16,12 +16,12 @@ import { } from "../../../../lib/Traits/TraitsClasses/MappableTraits"; import createStratumInstance from "../../../../lib/Models/Definition/createStratumInstance"; -describe("Ideal Zoom", function() { +describe("Ideal Zoom", function () { let terria: Terria; let theItem: Cesium3DTilesCatalogItem; let testRenderer: ReactTestRenderer; let viewState: ViewState; - beforeEach(async function() { + beforeEach(async function () { terria = new Terria({ baseUrl: "./" }); @@ -36,7 +36,7 @@ describe("Ideal Zoom", function() { viewState = new ViewState(options); }); - it("should use default camera view if no parameters are given.", async function() { + it("should use default camera view if no parameters are given.", async function () { await theItem.loadMapItems(); act(() => { @@ -65,7 +65,7 @@ describe("Ideal Zoom", function() { expect(theCameraView.rectangle?.west).toBeCloseTo(rectangle.west, 6); }); - it("should customise camera view if the given lookAt parameters are valid.", async function() { + it("should customise camera view if the given lookAt parameters are valid.", async function () { const lookAtValues = { targetLongitude: 150.60832, targetLatitude: -34.19483, @@ -125,7 +125,7 @@ describe("Ideal Zoom", function() { expect(theCameraView.rectangle?.west).toBeCloseTo(rectangle.west, 6); }); - it("should override the using home camera rule.", async function() { + it("should override the using home camera rule.", async function () { // Using home camera rule might kick in given the wrapped rectangle. const wrappedRectangle = { east: 511, @@ -195,7 +195,7 @@ describe("Ideal Zoom", function() { expect(theCameraView.rectangle?.west).toBeCloseTo(rectangle.west, 6); }); - it("should use default camera view if the given lookAt parameters are invalid.", async function() { + it("should use default camera view if the given lookAt parameters are invalid.", async function () { const lookAtValues = { targetLongitude: undefined, targetLatitude: -34.19483, @@ -225,7 +225,7 @@ describe("Ideal Zoom", function() { expect(theCameraView.up).toBe(undefined); }); - it("should customise camera view if the given camera parameters are complete.", async function() { + it("should customise camera view if the given camera parameters are complete.", async function () { const cameraValues = { west: 143.85665964592238, south: -37.5588985189224, @@ -293,7 +293,7 @@ describe("Ideal Zoom", function() { ); }); - it("should use given rectangle if any other values are missing in camera.", async function() { + it("should use given rectangle if any other values are missing in camera.", async function () { const cameraValues = { west: 143.85665964592238, south: -37.5588985189224, @@ -353,7 +353,7 @@ describe("Ideal Zoom", function() { ); }); - it("should use default camera view if missing any required rectagle parameters in camera.", async function() { + it("should use default camera view if missing any required rectagle parameters in camera.", async function () { const cameraValues = { west: undefined, south: -37.5588985189224, @@ -408,7 +408,7 @@ describe("Ideal Zoom", function() { expect(theCameraView.rectangle?.west).toBeCloseTo(rectangle.west, 6); }); - it("should custimise camera view based on the given lookAt parameters when camera parameters also exist.", async function() { + it("should custimise camera view based on the given lookAt parameters when camera parameters also exist.", async function () { const lookAtValues = { targetLongitude: 150.60832, targetLatitude: -34.19483, diff --git a/test/ReactViews/Workbench/Controls/LegendSpec.tsx b/test/ReactViews/Workbench/Controls/LegendSpec.tsx index b09802de2f0..7864726fdcd 100644 --- a/test/ReactViews/Workbench/Controls/LegendSpec.tsx +++ b/test/ReactViews/Workbench/Controls/LegendSpec.tsx @@ -9,10 +9,10 @@ import Terria from "../../../../lib/Models/Terria"; import Legend from "../../../../lib/ReactViews/Workbench/Controls/Legend"; import { getShallowRenderedOutput } from "../../MoreShallowTools"; -describe("Legend", function() { +describe("Legend", function () { let terria: Terria; - beforeEach(function() { + beforeEach(function () { terria = new Terria({ baseUrl: "./" }); @@ -20,9 +20,9 @@ describe("Legend", function() { "./data/regionMapping.json"; }); - describe(" - with image", function() { + describe(" - with image", function () { let wmsItem: WebMapServiceCatalogItem; - beforeEach(function() { + beforeEach(function () { wmsItem = new WebMapServiceCatalogItem("mywms", terria); wmsItem.setTrait( "definition", @@ -31,7 +31,7 @@ describe("Legend", function() { ); }); - it("A legend image can be rendered", async function(done) { + it("A legend image can be rendered", async function (done) { wmsItem .loadMapItems() .then(() => { @@ -44,7 +44,7 @@ describe("Legend", function() { .then(done); }); - it("A legend image can be hidden", async function(done) { + it("A legend image can be hidden", async function (done) { wmsItem.setTrait("definition", "hideLegendInWorkbench", true); wmsItem .loadMapItems() @@ -59,9 +59,9 @@ describe("Legend", function() { }); }); - xdescribe(" - from Table", function() { + xdescribe(" - from Table", function () { let csvItem: CsvCatalogItem; - beforeEach(async function() { + beforeEach(async function () { csvItem = new CsvCatalogItem("mycsv", terria, undefined); csvItem.defaultStyle.color.setTrait("definition", "numberOfBins", 2); csvItem.setTrait( @@ -72,7 +72,7 @@ describe("Legend", function() { await csvItem.loadMapItems(); }); - it(" - can be generated", function() { + it(" - can be generated", function () { // @ts-ignore const legendSection = ; const result = getShallowRenderedOutput(legendSection); @@ -86,7 +86,7 @@ describe("Legend", function() { ); }); - it(" - can be formatted using toLocaleString", function() { + it(" - can be formatted using toLocaleString", function () { csvItem.defaultColumn.setTrait("definition", "format", { style: "currency", currency: "AUD", diff --git a/test/ReactViews/Workbench/Controls/ViewingControlsSpec.tsx b/test/ReactViews/Workbench/Controls/ViewingControlsSpec.tsx index 0644b33efdf..3df68ffd857 100644 --- a/test/ReactViews/Workbench/Controls/ViewingControlsSpec.tsx +++ b/test/ReactViews/Workbench/Controls/ViewingControlsSpec.tsx @@ -8,11 +8,11 @@ import * as ViewingControlsMenu from "../../../../lib/ViewModels/ViewingControls import Icon from "../../../../lib/Styled/Icon"; import { runInAction } from "mobx"; -describe("ViewingControls", function() { +describe("ViewingControls", function () { let terria: Terria; let viewState: ViewState; - beforeEach(function() { + beforeEach(function () { terria = new Terria(); viewState = new ViewState({ terria, @@ -21,13 +21,13 @@ describe("ViewingControls", function() { }); }); - it("shows viewing controls added through `viewState.globalViewingControls`", function() { + it("shows viewing controls added through `viewState.globalViewingControls`", function () { const simpleItem = new SimpleCatalogItem("simple", terria); runInAction(() => { // Open the ViewingControls menu for this item viewState.workbenchItemWithOpenControls = simpleItem.uniqueId; }); - ViewingControlsMenu.addMenuItem(viewState, item => ({ + ViewingControlsMenu.addMenuItem(viewState, (item) => ({ name: "View details", icon: Icon.GLYPHS.eye, iconTitle: "View more details", diff --git a/test/ReactViews/Workbench/WorkbenchItemSpec.jsx b/test/ReactViews/Workbench/WorkbenchItemSpec.jsx index 461a89bda7f..0a05878abd5 100644 --- a/test/ReactViews/Workbench/WorkbenchItemSpec.jsx +++ b/test/ReactViews/Workbench/WorkbenchItemSpec.jsx @@ -8,16 +8,16 @@ import Terria from "../../../lib/Models/Terria"; import ViewState from "../../../lib/ReactViewModels/ViewState"; import CatalogItem from "../../../lib/Models/CatalogItem"; -describe("WorkbenchItem", function() { +describe("WorkbenchItem", function () { let terria, viewState, item; - beforeEach(function() { + beforeEach(function () { terria = new Terria({ baseUrl: "./" }); viewState = new ViewState({ terria }); item = new CatalogItem(terria); }); - it("should be wrapped with the sortable HOC as the first HOC", function() { + it("should be wrapped with the sortable HOC as the first HOC", function () { expect(Object.keys(sortable(WorkbenchItemRaw).propTypes)).toEqual( Object.keys(WorkbenchItem.propTypes) ); @@ -31,7 +31,7 @@ describe("WorkbenchItem", function() { expect(result.props.t).toBeUndefined(); }); - it("should render WorkbenchItemRaw with a given classname", function() { + it("should render WorkbenchItemRaw with a given classname", function () { const workbench = ( { TestRenderer.create( @@ -38,7 +38,7 @@ describe("WorkflowPanel", function() { expect(viewState.terria.isWorkflowPanelActive).toBe(true); }); - it("unsets isWorkflowPanelActive sidepanel when closed", async function() { + it("unsets isWorkflowPanelActive sidepanel when closed", async function () { await act(() => { testRenderer = TestRenderer.create( { +spy((event) => { if (event.type === "error") { fail(event.message); } }); -beforeAll(async function() { +beforeAll(async function () { await i18next.init({ lng: "cimode", debug: false, @@ -29,8 +29,8 @@ beforeAll(async function() { }); jasmine.getEnv().addReporter({ - specDone: result => - (result.failedExpectations || []).forEach(expectation => + specDone: (result) => + (result.failedExpectations || []).forEach((expectation) => console.warn(expectation.stack) ) }); diff --git a/test/Table/CsvSpec.ts b/test/Table/CsvSpec.ts index 3b4976e3d04..3574303f29f 100644 --- a/test/Table/CsvSpec.ts +++ b/test/Table/CsvSpec.ts @@ -1,6 +1,6 @@ import Csv from "../../lib/Table/Csv"; -describe("Csv", function() { +describe("Csv", function () { function checkCsvParse(dataColumnMajor: string[][]) { expect(dataColumnMajor.length).toEqual(2); expect(dataColumnMajor[0][0]).toEqual("x"); @@ -9,12 +9,12 @@ describe("Csv", function() { expect(dataColumnMajor[1].slice(1)).toEqual(["5", "8", "-3"]); } - it("can read from csv string", function() { + it("can read from csv string", function () { const csvString = "x,y\r\n1,5\r\n3,8\r\n4,-3\r\n"; return Csv.parseString(csvString, true).then(checkCsvParse); }); - it("can read from csv string that includes comments", function() { + it("can read from csv string that includes comments", function () { const csvString = "x,y\r\n1,5\r\n3,8\r\n4,-3\r\n# this is a comment\n// and this\n"; return Csv.parseString(csvString, true, true).then(checkCsvParse); diff --git a/test/Table/TableColumnSpec.ts b/test/Table/TableColumnSpec.ts index 175a2236d39..aa5bc58190a 100644 --- a/test/Table/TableColumnSpec.ts +++ b/test/Table/TableColumnSpec.ts @@ -10,14 +10,14 @@ const regionMapping = JSON.stringify( require("../../wwwroot/data/regionMapping.json") ); -describe("TableColumn", function() { +describe("TableColumn", function () { let tableModel: CsvCatalogItem; - beforeEach(function() { + beforeEach(function () { tableModel = new CsvCatalogItem("test", new Terria(), undefined); }); - describe("title", function() { + describe("title", function () { it("prettify titles", async () => { tableModel.setTrait( "user", @@ -32,7 +32,7 @@ describe("TableColumn", function() { expect(tableModel.tableColumns[3].title).toBe("Trimmed Name"); }); - it("correctly resolves the title", function() { + it("correctly resolves the title", function () { const x = tableModel.addObject(CommonStrata.user, "columns", "Column0"); x?.setTrait(CommonStrata.user, "title", "Time"); const y = tableModel.addObject(CommonStrata.user, "columns", "Column1"); @@ -43,7 +43,7 @@ describe("TableColumn", function() { expect(tableColumn2.title).toBe("Speed"); }); - it("can resolve title from the `tableModel.columnTitles` if set", function() { + it("can resolve title from the `tableModel.columnTitles` if set", function () { tableModel.setTrait(CommonStrata.user, "columnTitles", ["Time", "Speed"]); const tableColumn1 = new TableColumn(tableModel, 0); const tableColumn2 = new TableColumn(tableModel, 1); @@ -52,8 +52,8 @@ describe("TableColumn", function() { }); }); - describe("type", function() { - describe("by name", function() { + describe("type", function () { + describe("by name", function () { it("id - scalar", async () => { tableModel.setTrait(CommonStrata.user, "csvString", "id\n1\n2\n3\n4\n"); await tableModel.loadMapItems(); @@ -282,7 +282,7 @@ describe("TableColumn", function() { }); }); - describe("by values", function() { + describe("by values", function () { it("scalar", async () => { /** For scalar we need * - At least one number @@ -328,8 +328,8 @@ describe("TableColumn", function() { }); }); - describe("units", function() { - it("correctly resolves the units", function() { + describe("units", function () { + it("correctly resolves the units", function () { const x = tableModel.addObject(CommonStrata.user, "columns", "Column0"); x?.setTrait(CommonStrata.user, "units", "ms"); const y = tableModel.addObject(CommonStrata.user, "columns", "Column1"); @@ -340,7 +340,7 @@ describe("TableColumn", function() { expect(tableColumn2.units).toBe("kmph"); }); - it("can resolve unit from the `tableModel.columnUnits` if set", function() { + it("can resolve unit from the `tableModel.columnUnits` if set", function () { tableModel.setTrait(CommonStrata.user, "columnUnits", ["ms", "kmph"]); const tableColumn1 = new TableColumn(tableModel, 0); const tableColumn2 = new TableColumn(tableModel, 1); @@ -349,19 +349,19 @@ describe("TableColumn", function() { }); }); - describe("valuesAsDates", function() { - beforeEach(function() { + describe("valuesAsDates", function () { + beforeEach(function () { jasmine.Ajax.install(); jasmine.Ajax.stubRequest( "build/TerriaJS/data/regionMapping.json" ).andReturn({ responseText: regionMapping }); }); - afterEach(function() { + afterEach(function () { jasmine.Ajax.uninstall(); }); - it("defaults to dd/mm/yyyy dates", async function() { + it("defaults to dd/mm/yyyy dates", async function () { tableModel.setTrait( CommonStrata.user, "csvString", @@ -370,15 +370,15 @@ describe("TableColumn", function() { await tableModel.loadMapItems(); const tableColumn1 = new TableColumn(tableModel, 0); expect( - tableColumn1.valuesAsDates.values.map(d => d && d.toISOString()) + tableColumn1.valuesAsDates.values.map((d) => d && d.toISOString()) ).toEqual( - [new Date("2004/03/01"), new Date("1999/12/12")].map(d => + [new Date("2004/03/01"), new Date("1999/12/12")].map((d) => d.toISOString() ) ); }); - it("can convert d-m-yy dates", async function() { + it("can convert d-m-yy dates", async function () { tableModel.setTrait( CommonStrata.user, "csvString", @@ -387,15 +387,15 @@ describe("TableColumn", function() { await tableModel.loadMapItems(); const tableColumn1 = new TableColumn(tableModel, 0); expect( - tableColumn1.valuesAsDates.values.map(d => d && d.toISOString()) + tableColumn1.valuesAsDates.values.map((d) => d && d.toISOString()) ).toEqual( - [new Date("1995/07/15"), new Date("2020/07/03")].map(d => + [new Date("1995/07/15"), new Date("2020/07/03")].map((d) => d.toISOString() ) ); }); - it("converts all dates to mm/dd/yyyy in a column if one doesn't fit dd/mm/yyyy", async function() { + it("converts all dates to mm/dd/yyyy in a column if one doesn't fit dd/mm/yyyy", async function () { tableModel.setTrait( CommonStrata.user, "csvString", @@ -404,15 +404,15 @@ describe("TableColumn", function() { await tableModel.loadMapItems(); const tableColumn1 = new TableColumn(tableModel, 0); expect( - tableColumn1.valuesAsDates.values.map(d => d && d.toISOString()) + tableColumn1.valuesAsDates.values.map((d) => d && d.toISOString()) ).toEqual( - [new Date("2004/06/20"), new Date("1999/03/10")].map(d => + [new Date("2004/06/20"), new Date("1999/03/10")].map((d) => d.toISOString() ) ); }); - it("can convert yyyy-Qx dates", async function() { + it("can convert yyyy-Qx dates", async function () { tableModel.setTrait( CommonStrata.user, "csvString", @@ -421,7 +421,7 @@ describe("TableColumn", function() { await tableModel.loadMapItems(); const tableColumn1 = new TableColumn(tableModel, 0); expect( - tableColumn1.valuesAsDates.values.map(d => d && d.toISOString()) + tableColumn1.valuesAsDates.values.map((d) => d && d.toISOString()) ).toEqual( [ new Date("1983/04/01"), @@ -432,11 +432,11 @@ describe("TableColumn", function() { new Date("1984/07/01"), new Date("1984/10/01"), new Date("1985/01/01") - ].map(d => d.toISOString()) + ].map((d) => d.toISOString()) ); }); - it("attempts to convert all dates using new Date if one date fails parsing with dd/mm/yyyy and mm/dd/yyyy", async function() { + it("attempts to convert all dates using new Date if one date fails parsing with dd/mm/yyyy and mm/dd/yyyy", async function () { tableModel.setTrait( CommonStrata.user, "csvString", @@ -445,9 +445,9 @@ describe("TableColumn", function() { await tableModel.loadMapItems(); const tableColumn1 = new TableColumn(tableModel, 0); expect( - tableColumn1.valuesAsDates.values.map(d => d && d.toISOString()) + tableColumn1.valuesAsDates.values.map((d) => d && d.toISOString()) ).toEqual([ - ...[new Date("2004/06/06"), new Date("1999/03/10")].map(d => + ...[new Date("2004/06/06"), new Date("1999/03/10")].map((d) => d.toISOString() ), null @@ -455,19 +455,19 @@ describe("TableColumn", function() { }); }); - describe("column transformation", function() { - beforeEach(function() { + describe("column transformation", function () { + beforeEach(function () { jasmine.Ajax.install(); jasmine.Ajax.stubRequest( "build/TerriaJS/data/regionMapping.json" ).andReturn({ responseText: regionMapping }); }); - afterEach(function() { + afterEach(function () { jasmine.Ajax.uninstall(); }); - it("simple expression", async function() { + it("simple expression", async function () { tableModel.setTrait(CommonStrata.user, "csvString", "num\n1\n2\n3\n4\n"); tableModel.setTrait(CommonStrata.user, "columns", [ createStratumInstance(TableColumnTraits, { @@ -484,7 +484,7 @@ describe("TableColumn", function() { expect(tableColumn1.valuesAsNumbers.values).toEqual([11, 12, 13, 14]); }); - it("expression with dependency", async function() { + it("expression with dependency", async function () { tableModel.setTrait( CommonStrata.user, "csvString", @@ -512,7 +512,7 @@ describe("TableColumn", function() { ]); }); - it("expressions with dependencies (nested)", async function() { + it("expressions with dependencies (nested)", async function () { tableModel.setTrait( CommonStrata.user, "csvString", diff --git a/test/Table/TableStyleSpec.ts b/test/Table/TableStyleSpec.ts index 2f745a8fa81..9c841b1747e 100644 --- a/test/Table/TableStyleSpec.ts +++ b/test/Table/TableStyleSpec.ts @@ -33,10 +33,10 @@ const LatLonCsv = require("raw-loader!../../wwwroot/test/csv/lat_lon_enum_date_i const SedCsv = require("raw-loader!../../wwwroot/test/csv/SED_2018_SED_CODE18.csv"); const YouthUnEmployCsv = require("raw-loader!../../wwwroot/test/csv/youth-unemployment-rate-2018.csv"); -describe("TableStyle", function() { +describe("TableStyle", function () { let terria: Terria; - beforeEach(async function() { + beforeEach(async function () { terria = new Terria({ baseUrl: "./" }); @@ -66,14 +66,14 @@ describe("TableStyle", function() { jasmine.Ajax.uninstall(); }); - describe(" - Scalar", function() { + describe(" - Scalar", function () { let csvItem: CsvCatalogItem; - beforeEach(async function() { + beforeEach(async function () { csvItem = new CsvCatalogItem("SmallCsv", terria, undefined); }); - it(" - uses DiscreteColorMap if set numberOfBins", async function() { + it(" - uses DiscreteColorMap if set numberOfBins", async function () { csvItem.setTrait("definition", "csvString", SedCsv); csvItem.setTrait("definition", "styles", [ @@ -97,7 +97,7 @@ describe("TableStyle", function() { expect(activeStyle.colorMap instanceof DiscreteColorMap).toBeTruthy(); expect( - (activeStyle.colorMap as DiscreteColorMap).colors.map(c => + (activeStyle.colorMap as DiscreteColorMap).colors.map((c) => c.toCssHexString() ) ).toEqual([ @@ -111,7 +111,7 @@ describe("TableStyle", function() { ]); }); - it(" - uses DiscreteColorMap if set binMaximums", async function() { + it(" - uses DiscreteColorMap if set binMaximums", async function () { csvItem.setTrait("definition", "csvString", YouthUnEmployCsv); csvItem.setTrait("definition", "styles", [ @@ -136,7 +136,7 @@ describe("TableStyle", function() { expect(activeStyle.colorMap instanceof DiscreteColorMap).toBeTruthy(); expect( - (activeStyle.colorMap as DiscreteColorMap).colors.map(c => + (activeStyle.colorMap as DiscreteColorMap).colors.map((c) => c.toCssHexString() ) ).toEqual([ @@ -251,7 +251,7 @@ describe("TableStyle", function() { // ); }); - it(" - uses ContinuousColorMap by default", async function() { + it(" - uses ContinuousColorMap by default", async function () { csvItem.setTrait("definition", "csvString", SedCsv); await csvItem.loadMapItems(); @@ -284,7 +284,7 @@ describe("TableStyle", function() { ).toBe("rgb(103,0,13)"); }); - it(" - uses ContinuousColorMap with diverging color scale if appropriate", async function() { + it(" - uses ContinuousColorMap with diverging color scale if appropriate", async function () { csvItem.setTrait("definition", "csvString", SedCsv); // Add value transformation to turn column values to be [-50,50] @@ -326,7 +326,7 @@ describe("TableStyle", function() { ).toBe("rgb(127,59,8)"); }); - it(" - uses ContinuousColorMap with diverging color map only for diverging color palettes", async function() { + it(" - uses ContinuousColorMap with diverging color map only for diverging color palettes", async function () { csvItem.setTrait("definition", "csvString", SedCsv); // Add value transformation to turn column values to be [-50,50] @@ -379,7 +379,7 @@ describe("TableStyle", function() { expect(activeStyle.tableColorMap.isDiverging).toBeTruthy(); }); - it(" - handles ContinuousColorMap with single value ", async function() { + it(" - handles ContinuousColorMap with single value ", async function () { csvItem.setTrait( "definition", "csvString", @@ -397,8 +397,8 @@ describe("TableStyle", function() { expect(activeStyle.colorMap instanceof EnumColorMap).toBeTruthy(); }); - describe(" - applies zScoreFilter, outlierColor and minimumValue/maximumValue correctly", async function() { - beforeEach(async function() { + describe(" - applies zScoreFilter, outlierColor and minimumValue/maximumValue correctly", async function () { + beforeEach(async function () { updateModelFromJson(csvItem, CommonStrata.definition, { csvString: SedCsv, activeStyle: "Value", @@ -415,7 +415,7 @@ describe("TableStyle", function() { await csvItem.activeTableStyle.regionColumn?.regionType?.loadRegionIDs(); }); - it(" - should expect no filter applied", async function() { + it(" - should expect no filter applied", async function () { expect( csvItem.activeTableStyle.colorColumn?.valuesAsNumbers.minimum ).toBe(0); @@ -439,7 +439,7 @@ describe("TableStyle", function() { expect(csvItem.legends[0].items.length).toBe(7); }); - it(" - Change zScoreFilter and rangeFilter - should also expect not to be applied", async function() { + it(" - Change zScoreFilter and rangeFilter - should also expect not to be applied", async function () { updateModelFromJson(csvItem, CommonStrata.definition, { defaultStyle: { color: { @@ -465,7 +465,7 @@ describe("TableStyle", function() { expect(csvItem.legends[0].items.length).toBe(7); }); - it(" - Change zScoreFilter and rangeFilter again - should be applied this time", async function() { + it(" - Change zScoreFilter and rangeFilter again - should be applied this time", async function () { updateModelFromJson(csvItem, CommonStrata.definition, { defaultStyle: { color: { @@ -504,7 +504,7 @@ describe("TableStyle", function() { ); }); - it(" - Set colorTraits.minimumValue to disable zScoreFilter", async function() { + it(" - Set colorTraits.minimumValue to disable zScoreFilter", async function () { updateModelFromJson(csvItem, CommonStrata.definition, { defaultStyle: { color: { @@ -533,7 +533,7 @@ describe("TableStyle", function() { ); }); - it(" - Set colorTraits.maximumValue to disable zScoreFilter", async function() { + it(" - Set colorTraits.maximumValue to disable zScoreFilter", async function () { updateModelFromJson(csvItem, CommonStrata.definition, { defaultStyle: { color: { @@ -562,7 +562,7 @@ describe("TableStyle", function() { ); }); - it(" - Now if we set min/max outside range, then colorMap.outlierColor should be undefined", async function() { + it(" - Now if we set min/max outside range, then colorMap.outlierColor should be undefined", async function () { updateModelFromJson(csvItem, CommonStrata.definition, { defaultStyle: { color: { @@ -584,7 +584,7 @@ describe("TableStyle", function() { }); }); - it(" - applied colorTraits on top of TableLegendStratum", async function() { + it(" - applied colorTraits on top of TableLegendStratum", async function () { csvItem.setTrait("definition", "csvString", SedCsv); csvItem.setTrait("definition", "styles", [ @@ -609,14 +609,14 @@ describe("TableStyle", function() { }); }); - describe(" - Enum", function() { + describe(" - Enum", function () { let csvItem: CsvCatalogItem; - beforeEach(async function() { + beforeEach(async function () { csvItem = new CsvCatalogItem("SmallCsv", terria, undefined); }); - it(" - uses EnumColorMap by default", async function() { + it(" - uses EnumColorMap by default", async function () { csvItem.setTrait("definition", "csvString", LatLonCsv); csvItem.setTrait("definition", "activeStyle", "enum"); @@ -631,7 +631,7 @@ describe("TableStyle", function() { expect(activeStyle.colorMap instanceof EnumColorMap).toBeTruthy(); expect((activeStyle.colorMap as EnumColorMap).colors.length).toBe(6); expect( - (activeStyle.colorMap as EnumColorMap).colors.map(c => + (activeStyle.colorMap as EnumColorMap).colors.map((c) => c.toCssHexString() ) ).toEqual([ @@ -644,7 +644,7 @@ describe("TableStyle", function() { ]); }); - it(" - uses EnumColorMap with specified colorPalette", async function() { + it(" - uses EnumColorMap with specified colorPalette", async function () { csvItem.setTrait("definition", "csvString", LatLonCsv); csvItem.setTrait( @@ -669,7 +669,7 @@ describe("TableStyle", function() { expect(activeStyle.colorMap instanceof EnumColorMap).toBeTruthy(); expect((activeStyle.colorMap as EnumColorMap).colors.length).toBe(6); expect( - (activeStyle.colorMap as EnumColorMap).colors.map(c => + (activeStyle.colorMap as EnumColorMap).colors.map((c) => c.toCssHexString() ) ).toEqual([ diff --git a/test/Traits/UrlTraitsSpec.ts b/test/Traits/UrlTraitsSpec.ts index bddc1eae808..17091799482 100644 --- a/test/Traits/UrlTraitsSpec.ts +++ b/test/Traits/UrlTraitsSpec.ts @@ -13,26 +13,26 @@ configure({ computedRequiresReaction: true }); -describe("UrlTraits", function() { +describe("UrlTraits", function () { let terria: Terria; let geoJsonCatalogItem: GeoJsonCatalogItem; - beforeEach(async function() { + beforeEach(async function () { terria = new Terria({ baseUrl: "./" }); geoJsonCatalogItem = new GeoJsonCatalogItem("test", terria); }); - it(" - returns true UrlMixin.isMixedInto", function() { + it(" - returns true UrlMixin.isMixedInto", function () { expect(UrlMixin.isMixedInto(geoJsonCatalogItem)).toBeTruthy(); }); - it(" - gets default cache duration", function() { + it(" - gets default cache duration", function () { expect(geoJsonCatalogItem.cacheDuration).toBe("1d"); }); - it(" - can set cache duration", function() { + it(" - can set cache duration", function () { runInAction(() => { geoJsonCatalogItem.setTrait( CommonStrata.definition, diff --git a/test/Traits/objectArrayTraitSpec.ts b/test/Traits/objectArrayTraitSpec.ts index 587b1d247e8..c52df70f6a3 100644 --- a/test/Traits/objectArrayTraitSpec.ts +++ b/test/Traits/objectArrayTraitSpec.ts @@ -84,8 +84,8 @@ class OuterTraitsNoMerge extends ModelTraits { class TestModel extends CreateModel(OuterTraits) {} class TestModelNoMerge extends CreateModel(OuterTraitsNoMerge) {} -describe("objectArrayTrait", function() { - it("returns an empty model if all strata are undefined", function() { +describe("objectArrayTrait", function () { + it("returns an empty model if all strata are undefined", function () { const terria = new Terria(); const model = new TestModel("test", terria); model.strata.set("definition", createStratumInstance(OuterTraits)); @@ -93,7 +93,7 @@ describe("objectArrayTrait", function() { expect(model.inner).toBeDefined(); }); - it("combines values from different strata", function() { + it("combines values from different strata", function () { const terria = new Terria(); const model = new TestModel("test", terria); @@ -125,9 +125,9 @@ describe("objectArrayTrait", function() { if (model.inner !== undefined) { expect(model.inner.length).toEqual(3); - const a = model.inner.filter(x => x.foo === "a")[0]; - const b = model.inner.filter(x => x.foo === "b")[0]; - const c = model.inner.filter(x => x.foo === "c")[0]; + const a = model.inner.filter((x) => x.foo === "a")[0]; + const b = model.inner.filter((x) => x.foo === "b")[0]; + const c = model.inner.filter((x) => x.foo === "c")[0]; expect(a).toBeDefined(); expect(b).toBeDefined(); expect(c).toBeDefined(); @@ -141,7 +141,7 @@ describe("objectArrayTrait", function() { } }); - it("updates to reflect array elements added after evaluation", function() { + it("updates to reflect array elements added after evaluation", function () { const terria = new Terria(); const model = new TestModel("test", terria); @@ -182,13 +182,13 @@ describe("objectArrayTrait", function() { expect(model.inner.length).toEqual(3); - const c = model.inner.filter(x => x.foo === "c")[0]; + const c = model.inner.filter((x) => x.foo === "c")[0]; expect(c.bar).toEqual(3); expect(c.baz).toEqual(true); } }); - it("allows strata to remove elements from top level", function() { + it("allows strata to remove elements from top level", function () { const terria = new Terria(); const model = new TestModel("test", terria); @@ -226,7 +226,7 @@ describe("objectArrayTrait", function() { expect(model.inner[1].foo).toEqual("c"); }); - it("allows strata to remove elements from bottom level", function() { + it("allows strata to remove elements from bottom level", function () { const terria = new Terria(); const model = new TestModel("test", terria); @@ -280,7 +280,7 @@ describe("objectArrayTrait", function() { expect(model.inner[2].baz).toBeUndefined(); }); - it("updates to reflect new strata added after evaluation", function() { + it("updates to reflect new strata added after evaluation", function () { const terria = new Terria(); const model = new TestModel("test", terria); @@ -301,7 +301,7 @@ describe("objectArrayTrait", function() { expect(model.inner[0].baz).toBe(true); }); - it("handles idProperty = index", function() { + it("handles idProperty = index", function () { const terria = new Terria(); const model = new TestModel("test", terria); @@ -346,7 +346,7 @@ describe("objectArrayTrait", function() { expect(model.innerByIndex[2].foo).toBe("user2"); }); - it("updates to reflect new strata added after evaluation (with no merge)", function() { + it("updates to reflect new strata added after evaluation (with no merge)", function () { const terria = new Terria(); const model = new TestModelNoMerge("test", terria); diff --git a/test/Traits/objectTraitSpec.ts b/test/Traits/objectTraitSpec.ts index e2c6d7ce941..e24789c8794 100644 --- a/test/Traits/objectTraitSpec.ts +++ b/test/Traits/objectTraitSpec.ts @@ -52,8 +52,8 @@ class OuterTraits extends ModelTraits { class TestModel extends CreateModel(OuterTraits) {} -describe("objectTrait", function() { - it("returns an empty model if all strata are undefined", function() { +describe("objectTrait", function () { + it("returns an empty model if all strata are undefined", function () { const terria = new Terria(); const model = new TestModel("test", terria); model.strata.set("definition", createStratumInstance(OuterTraits)); @@ -61,7 +61,7 @@ describe("objectTrait", function() { expect(model.inner).toBeDefined(); }); - it("combines values from different strata", function() { + it("combines values from different strata", function () { const terria = new Terria(); const model = new TestModel("test", terria); @@ -87,7 +87,7 @@ describe("objectTrait", function() { } }); - it("updates to reflect properties added after evaluation", function() { + it("updates to reflect properties added after evaluation", function () { const terria = new Terria(); const model = new TestModel("test", terria); @@ -120,7 +120,7 @@ describe("objectTrait", function() { } }); - it("updates to reflect new strata added after evaluation", function() { + it("updates to reflect new strata added after evaluation", function () { const terria = new Terria(); const model = new TestModel("test", terria); diff --git a/test/Traits/traitsClassToModelClassSpec.ts b/test/Traits/traitsClassToModelClassSpec.ts index d7735842c46..c629da92934 100644 --- a/test/Traits/traitsClassToModelClassSpec.ts +++ b/test/Traits/traitsClassToModelClassSpec.ts @@ -1,8 +1,8 @@ import traitsClassToModelClass from "../../lib/Traits/traitsClassToModelClass"; import UrlTraits from "../../lib/Traits/TraitsClasses/UrlTraits"; -describe("traitsClassToModelClass", function() { - it("memoizes correctly", function() { +describe("traitsClassToModelClass", function () { + it("memoizes correctly", function () { expect(traitsClassToModelClass(UrlTraits)).toBe( traitsClassToModelClass(UrlTraits) ); diff --git a/test/Utility/CustomMatchers.js b/test/Utility/CustomMatchers.js index 19cd4e09683..3d6a446357b 100644 --- a/test/Utility/CustomMatchers.js +++ b/test/Utility/CustomMatchers.js @@ -7,9 +7,9 @@ function equals(util, customEqualityTesters, a, b) { } module.exports = { - toEqualEpsilon: function(util, customEqualityTesters) { + toEqualEpsilon: function (util, customEqualityTesters) { return { - compare: function(actual, expected, epsilon) { + compare: function (actual, expected, epsilon) { function equalityTester(a, b) { var to_run; if (defined(a)) { diff --git a/test/Utility/loadAndStubTextResources.js b/test/Utility/loadAndStubTextResources.js index a8eef8d9ac8..0b31a3fee80 100644 --- a/test/Utility/loadAndStubTextResources.js +++ b/test/Utility/loadAndStubTextResources.js @@ -5,8 +5,8 @@ var loadText = require("../../lib/Core/loadText"); function loadTextResources(resources) { var result = {}; return Promise.all( - resources.map(function(resource) { - return loadText(resource).then(function(text) { + resources.map(function (resource) { + return loadText(resource).then(function (text) { result[resource] = text; }); }) @@ -14,10 +14,10 @@ function loadTextResources(resources) { } function loadAndStubTextResources(done, resources) { - return loadTextResources(resources).then(function(loadedResources) { + return loadTextResources(resources).then(function (loadedResources) { jasmine.Ajax.install(); - jasmine.Ajax.stubRequest(/.*/).andCallFunction(function(stub, xhr) { + jasmine.Ajax.stubRequest(/.*/).andCallFunction(function (stub, xhr) { done.fail("Unhandled request to URL: " + xhr.url); }); diff --git a/test/ViewModels/MapNavigation/MapToolbarSpec.ts b/test/ViewModels/MapNavigation/MapToolbarSpec.ts index b8dec971ba1..894c60a094d 100644 --- a/test/ViewModels/MapNavigation/MapToolbarSpec.ts +++ b/test/ViewModels/MapNavigation/MapToolbarSpec.ts @@ -3,11 +3,11 @@ import Terria from "../../../lib/Models/Terria"; import ViewState from "../../../lib/ReactViewModels/ViewState"; import Icon from "../../../lib/Styled/Icon"; -describe("MapToolbar", function() { +describe("MapToolbar", function () { let viewState: ViewState; let terria: Terria; - beforeEach(function() { + beforeEach(function () { terria = new Terria(); viewState = new ViewState({ terria, @@ -16,8 +16,8 @@ describe("MapToolbar", function() { }); }); - describe("simple click button", function() { - it("can be added to the toolbar", function() { + describe("simple click button", function () { + it("can be added to the toolbar", function () { expect(terria.mapNavigationModel.items.length).toBe(0); MapToolbar.addButton(viewState, { text: "Simple button", @@ -28,7 +28,7 @@ describe("MapToolbar", function() { expect(terria.mapNavigationModel.items[0].name).toBe("Simple button"); }); - it("calls `onClick` when clicked", function() { + it("calls `onClick` when clicked", function () { const onClickSpy = jasmine.createSpy("onClick"); MapToolbar.addButton(viewState, { text: "Simple button", @@ -42,8 +42,8 @@ describe("MapToolbar", function() { }); }); - describe("mode button", function() { - it("can be added to the toolbar", function() { + describe("mode button", function () { + it("can be added to the toolbar", function () { expect(terria.mapNavigationModel.items.length).toBe(0); MapToolbar.addModeButton(viewState, { text: "Mode button", @@ -55,8 +55,8 @@ describe("MapToolbar", function() { expect(terria.mapNavigationModel.items[0].name).toBe("Mode button"); }); - describe("onUserEnterMode", function() { - it("is called once when user activates the mode button", function() { + describe("onUserEnterMode", function () { + it("is called once when user activates the mode button", function () { const onUserEnterModeSpy = jasmine.createSpy("onUserEnterMode"); MapToolbar.addModeButton(viewState, { text: "Mode button", @@ -72,7 +72,7 @@ describe("MapToolbar", function() { expect(onUserEnterModeSpy).toHaveBeenCalledTimes(1); }); - it("raises any callback errors to the user", function() { + it("raises any callback errors to the user", function () { MapToolbar.addModeButton(viewState, { text: "Mode button", icon: Icon.GLYPHS.pedestrian, @@ -91,8 +91,8 @@ describe("MapToolbar", function() { }); }); - describe("onUserCloseMode", function() { - it("is called once when user deactivates the mode button", function() { + describe("onUserCloseMode", function () { + it("is called once when user deactivates the mode button", function () { const onUserCloseModeSpy = jasmine.createSpy("onUserCloseMode"); MapToolbar.addModeButton(viewState, { text: "Mode button", @@ -108,7 +108,7 @@ describe("MapToolbar", function() { expect(onUserCloseModeSpy).toHaveBeenCalledTimes(1); }); - it("raises any callback errors to the user", function() { + it("raises any callback errors to the user", function () { MapToolbar.addModeButton(viewState, { text: "Mode button", icon: Icon.GLYPHS.pedestrian, diff --git a/test/ViewModels/TerriaViewerSpec.ts b/test/ViewModels/TerriaViewerSpec.ts index ba759c6edd2..05b3232026e 100644 --- a/test/ViewModels/TerriaViewerSpec.ts +++ b/test/ViewModels/TerriaViewerSpec.ts @@ -7,11 +7,11 @@ import TerriaViewer from "../../lib/ViewModels/TerriaViewer"; const mockBeforeViewerChanges = jasmine.createSpy("", () => {}); const mockAfterViewerChanges = jasmine.createSpy("", () => {}); -describe("TerriaViewer", function() { +describe("TerriaViewer", function () { let terria: Terria; let terriaViewer: TerriaViewer; - beforeEach(function() { + beforeEach(function () { terria = new Terria({ baseUrl: "./" }); diff --git a/test/ViewModels/ViewingControlsMenuSpec.ts b/test/ViewModels/ViewingControlsMenuSpec.ts index bb9909f636d..fa00d863487 100644 --- a/test/ViewModels/ViewingControlsMenuSpec.ts +++ b/test/ViewModels/ViewingControlsMenuSpec.ts @@ -5,9 +5,9 @@ import Icon from "../../lib/Styled/Icon"; import * as ViewingControlsMenu from "../../lib/ViewModels/ViewingControlsMenu"; import SimpleCatalogItem from "../Helpers/SimpleCatalogItem"; -describe("ViewingControlsMenu", function() { - describe("addMenuItem", function() { - it("adds the menu item generator function to `viewState.globalViewingControlOptions` array", function() { +describe("ViewingControlsMenu", function () { + describe("addMenuItem", function () { + it("adds the menu item generator function to `viewState.globalViewingControlOptions` array", function () { const terria = new Terria(); const viewState = new ViewState({ terria, diff --git a/test/ViewModels/updateApplicationOnMessageFromParentWindowSpec.js b/test/ViewModels/updateApplicationOnMessageFromParentWindowSpec.js index 2cf34c31c6b..8ad1f3b06f1 100644 --- a/test/ViewModels/updateApplicationOnMessageFromParentWindowSpec.js +++ b/test/ViewModels/updateApplicationOnMessageFromParentWindowSpec.js @@ -5,11 +5,11 @@ var createCatalogMemberFromType = require("../../lib/Models/Catalog/createCatalo var Terria = require("../../lib/Models/Terria"); var updateApplicationOnMessageFromParentWindow = require("../../lib/ViewModels/updateApplicationOnMessageFromParentWindow"); -describe("updateApplicationOnMessageFromParentWindow", function() { +describe("updateApplicationOnMessageFromParentWindow", function () { var terria; var fakeWindow; - beforeEach(function() { + beforeEach(function () { terria = new Terria({ baseUrl: "./" }); @@ -19,13 +19,13 @@ describe("updateApplicationOnMessageFromParentWindow", function() { fakeWindow.parent = jasmine.createSpyObj("parentWindow", ["postMessage"]); }); - it("subscribes to messages", function() { + it("subscribes to messages", function () { updateApplicationOnMessageFromParentWindow(terria, fakeWindow); expect(fakeWindow.addEventListener.calls.count()).toBe(1); expect(fakeWindow.addEventListener.calls.first().args[0]).toBe("message"); }); - it("posts a message to its parent when ready", function() { + it("posts a message to its parent when ready", function () { updateApplicationOnMessageFromParentWindow(terria, fakeWindow); expect(fakeWindow.parent.postMessage.calls.count()).toBe(1); expect(fakeWindow.parent.postMessage.calls.first().args).toEqual([ @@ -34,9 +34,9 @@ describe("updateApplicationOnMessageFromParentWindow", function() { ]); }); - it("updates the model when it receives a message from the parent", function() { + it("updates the model when it receives a message from the parent", function () { var messageEventHandler; - fakeWindow.addEventListener.and.callFake(function(eventName, callback) { + fakeWindow.addEventListener.and.callFake(function (eventName, callback) { messageEventHandler = callback; }); updateApplicationOnMessageFromParentWindow(terria, fakeWindow); @@ -62,9 +62,9 @@ describe("updateApplicationOnMessageFromParentWindow", function() { expect(fooGroup.type).toBe("group"); }); - it("updates the model when it receives a message from the opener", function() { + it("updates the model when it receives a message from the opener", function () { var messageEventHandler; - fakeWindow.addEventListener.and.callFake(function(eventName, callback) { + fakeWindow.addEventListener.and.callFake(function (eventName, callback) { messageEventHandler = callback; }); updateApplicationOnMessageFromParentWindow(terria, fakeWindow); @@ -90,9 +90,9 @@ describe("updateApplicationOnMessageFromParentWindow", function() { expect(fooGroup.type).toBe("group"); }); - it("ignores messages that are not from its parent or opener window", function() { + it("ignores messages that are not from its parent or opener window", function () { var messageEventHandler; - fakeWindow.addEventListener.and.callFake(function(eventName, callback) { + fakeWindow.addEventListener.and.callFake(function (eventName, callback) { messageEventHandler = callback; }); updateApplicationOnMessageFromParentWindow(terria, fakeWindow); diff --git a/tsconfig-node.json b/tsconfig-node.json index c50bb3f7663..354df4a308b 100644 --- a/tsconfig-node.json +++ b/tsconfig-node.json @@ -2,45 +2,45 @@ // Build with ./node_modules/.bin/tsc -p tsconfig-models.json { "compilerOptions": { - "target": "es2019", - "experimentalDecorators": true, - "module": "esNext", - "moduleResolution": "node", - "sourceMap": true, - "strict": true, - "allowJs": true, - "jsx": "react", - "esModuleInterop": true, - "allowSyntheticDefaultImports": true, - "outDir": "dist", - "resolveJsonModule": true, - // "composite": true, - // "declaration": true, - "typeRoots": [ - "./lib/ThirdParty", - //"./node_modules/@types", - //"../node_modules/@types" - ], - "types": [ - "terriajs-cesium", - "mapbox__geojson-merge", - "mapbox__point-geometry", - "mapbox__vector-tile", - "pmtiles", - "terriajs-html2canvas", - "urijs", - "styled-components", // eventually it will be required anyway for SSR. - //"react" - ] + "target": "es2019", + "experimentalDecorators": true, + "module": "esNext", + "moduleResolution": "node", + "sourceMap": true, + "strict": true, + "allowJs": true, + "jsx": "react", + "esModuleInterop": true, + "allowSyntheticDefaultImports": true, + "outDir": "dist", + "resolveJsonModule": true, + // "composite": true, + // "declaration": true, + "typeRoots": [ + "./lib/ThirdParty" + //"./node_modules/@types", + //"../node_modules/@types" + ], + "types": [ + "terriajs-cesium", + "mapbox__geojson-merge", + "mapbox__point-geometry", + "mapbox__vector-tile", + "pmtiles", + "terriajs-html2canvas", + "urijs", + "styled-components" // eventually it will be required anyway for SSR. + //"react" + ] }, "include": [ - "./lib/Core/**/*", - "./lib/Models/**/*", - "./lib/Map/**/*", - "./lib/ModelMixins/**/*", - "./lib/Traits/**/*", - "./lib/Language/**/*", - "./lib/ReactViews/**/*", - "./lib/ThirdParty/**/*" + "./lib/Core/**/*", + "./lib/Models/**/*", + "./lib/Map/**/*", + "./lib/ModelMixins/**/*", + "./lib/Traits/**/*", + "./lib/Language/**/*", + "./lib/ReactViews/**/*", + "./lib/ThirdParty/**/*" ] } diff --git a/tsconfig.json b/tsconfig.json index f7db93a254e..fe75b540cd8 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,24 +1,24 @@ { - "compilerOptions": { - "target": "es2019", - "experimentalDecorators": true, - "module": "esNext", - "moduleResolution": "node", - "sourceMap": true, - "strict": true, - "allowJs": true, - "jsx": "preserve", - "esModuleInterop": true, - "allowSyntheticDefaultImports": true, - "outDir": "ts-out", - "resolveJsonModule": true, - "typeRoots": ["./lib/ThirdParty/**/*.d.ts"], - "types": ["terriajs-cesium"] - }, - "include": [ - "./lib/**/*", - "./test/**/*", - "./buildprocess/generateDocs.ts", - "./buildprocess/**/*", - ] + "compilerOptions": { + "target": "es2019", + "experimentalDecorators": true, + "module": "esNext", + "moduleResolution": "node", + "sourceMap": true, + "strict": true, + "allowJs": true, + "jsx": "preserve", + "esModuleInterop": true, + "allowSyntheticDefaultImports": true, + "outDir": "ts-out", + "resolveJsonModule": true, + "typeRoots": ["./lib/ThirdParty/**/*.d.ts"], + "types": ["terriajs-cesium"] + }, + "include": [ + "./lib/**/*", + "./test/**/*", + "./buildprocess/generateDocs.ts", + "./buildprocess/**/*" + ] } diff --git a/wwwroot/SpecRunner.html b/wwwroot/SpecRunner.html index 76c0b7f6950..be7a5644bb7 100644 --- a/wwwroot/SpecRunner.html +++ b/wwwroot/SpecRunner.html @@ -1,23 +1,40 @@ - - - Jasmine Spec Runner v2.99.0 + + + Jasmine Spec Runner v2.99.0 - - + + - - - + + + - + - + - + diff --git a/wwwroot/index.html b/wwwroot/index.html index 5f1c22b5ced..aedc20dfd42 100644 --- a/wwwroot/index.html +++ b/wwwroot/index.html @@ -1,13 +1,13 @@ - - TerriaJS - - + + TerriaJS + + - + diff --git a/wwwroot/test/ArcGisFeatureServer/Parks/3.json b/wwwroot/test/ArcGisFeatureServer/Parks/3.json index 04fec07d732..c84579971b5 100644 --- a/wwwroot/test/ArcGisFeatureServer/Parks/3.json +++ b/wwwroot/test/ArcGisFeatureServer/Parks/3.json @@ -13,9 +13,7 @@ "copyrightText": "", "editFieldsInfo": null, "syncCanReturnChanges": true, - "relationships": [ - - ], + "relationships": [], "isDataVersioned": false, "isDataArchived": false, "isCoGoEnabled": false, @@ -40,9 +38,9 @@ "supportsHavingClause": true }, "extent": { - "xmin": 1.6699557568122052E7, + "xmin": 1.6699557568122052e7, "ymin": -4074199.224050209, - "xmax": 1.684752587776097E7, + "xmax": 1.684752587776097e7, "ymax": -3894782.230000466, "spatialReference": { "wkid": 102100, @@ -52,7 +50,7 @@ "mTolerance": 0.001, "falseX": -20037700, "falseY": -30241100, - "xyUnits": 1.4892314192838538E8, + "xyUnits": 1.4892314192838538e8, "falseZ": -100000, "zUnits": 10000, "falseM": -100000, @@ -67,7 +65,7 @@ "mTolerance": 0.001, "falseX": -20037700, "falseY": -30241100, - "xyUnits": 1.48923141928385E8, + "xyUnits": 1.48923141928385e8, "falseZ": 0, "zUnits": 1, "falseM": 0, @@ -79,21 +77,11 @@ "symbol": { "type": "esriSFS", "style": "esriSFSSolid", - "color": [ - 215, - 203, - 247, - 255 - ], + "color": [215, 203, 247, 255], "outline": { "type": "esriSLS", "style": "esriSLSSolid", - "color": [ - 110, - 110, - 110, - 255 - ], + "color": [110, 110, 110, 255], "width": 1 } } @@ -178,9 +166,7 @@ "timeZone": "UTC", "respectsDaylightSaving": false }, - "types": [ - - ], + "types": [], "templates": [ { "name": "SHSF2019_5yrs_LGA", diff --git a/wwwroot/test/ArcGisFeatureServer/Parks/layer.json b/wwwroot/test/ArcGisFeatureServer/Parks/layer.json index e0078076675..74e9ec20e51 100644 --- a/wwwroot/test/ArcGisFeatureServer/Parks/layer.json +++ b/wwwroot/test/ArcGisFeatureServer/Parks/layer.json @@ -11,26 +11,11 @@ "geometry": { "rings": [ [ - [ - 16775685.718625374, - -3895224.3849160187 - ], - [ - 16775707.947109431, - -3895226.202908296 - ], - [ - 16820923.655232877, - -3915702.8949223123 - ], - [ - 16820919.98111982, - -3915713.532630626 - ], - [ - 16775685.718625374, - -3895224.3849160187 - ] + [16775685.718625374, -3895224.3849160187], + [16775707.947109431, -3895226.202908296], + [16820923.655232877, -3915702.8949223123], + [16820919.98111982, -3915713.532630626], + [16775685.718625374, -3895224.3849160187] ] ] } @@ -45,26 +30,11 @@ "geometry": { "rings": [ [ - [ - 16824755.737825453, - -4004473.1371091977 - ], - [ - 16824763.31961301, - -4004477.7192538492 - ], - [ - 16824771.255597092, - -4004477.708529316 - ], - [ - 16824786.6437236, - -4004473.3389471658 - ], - [ - 16824755.737825453, - -4004473.1371091977 - ] + [16824755.737825453, -4004473.1371091977], + [16824763.31961301, -4004477.7192538492], + [16824771.255597092, -4004477.708529316], + [16824786.6437236, -4004473.3389471658], + [16824755.737825453, -4004473.1371091977] ] ] } @@ -103,4 +73,4 @@ "hasZ": false, "hasM": false, "id": 3 -} \ No newline at end of file +} diff --git a/wwwroot/test/ArcGisFeatureServer/Redlands_Emergency_Vehicles/featureServer.json b/wwwroot/test/ArcGisFeatureServer/Redlands_Emergency_Vehicles/featureServer.json index d96d8794e18..97688c1bd4d 100644 --- a/wwwroot/test/ArcGisFeatureServer/Redlands_Emergency_Vehicles/featureServer.json +++ b/wwwroot/test/ArcGisFeatureServer/Redlands_Emergency_Vehicles/featureServer.json @@ -1,59 +1,59 @@ { - "currentVersion": 10.71, - "serviceDescription": "Vehicle Service Description", - "hasVersionedData": true, - "hasArchivedData": false, - "supportsDisconnectedEditing": false, - "supportsQueryDataElements": true, - "supportsRelationshipsResource": true, - "syncEnabled": false, - "supportedQueryFormats": "JSON", - "maxRecordCount": 1000, - "maxRecordCountFactor": 1, - "capabilities": "Query,Create,Update,Delete,Uploads,Editing", - "description": "Vehicle Description", - "copyrightText": "Vehicle Copyright", + "currentVersion": 10.71, + "serviceDescription": "Vehicle Service Description", + "hasVersionedData": true, + "hasArchivedData": false, + "supportsDisconnectedEditing": false, + "supportsQueryDataElements": true, + "supportsRelationshipsResource": true, + "syncEnabled": false, + "supportedQueryFormats": "JSON", + "maxRecordCount": 1000, + "maxRecordCountFactor": 1, + "capabilities": "Query,Create,Update,Delete,Uploads,Editing", + "description": "Vehicle Description", + "copyrightText": "Vehicle Copyright", + "spatialReference": { + "wkid": 4326, + "latestWkid": 4326 + }, + "initialExtent": { + "xmin": -117.2811874924825, + "ymin": 33.99470075848109, + "xmax": -117.13223323351752, + "ymax": 34.164118382096206, "spatialReference": { - "wkid": 4326, - "latestWkid": 4326 - }, - "initialExtent": { - "xmin": -117.2811874924825, - "ymin": 33.99470075848109, - "xmax": -117.13223323351752, - "ymax": 34.164118382096206, - "spatialReference": { "wkid": 4326, "latestWkid": 4326 - } - }, - "fullExtent": { - "xmin": -118.838732241, - "ymin": 25.159020188, - "xmax": 55.27645578800002, - "ymax": 38.485991961000025, - "spatialReference": { + } + }, + "fullExtent": { + "xmin": -118.838732241, + "ymin": 25.159020188, + "xmax": 55.27645578800002, + "ymax": 38.485991961000025, + "spatialReference": { "wkid": 4326, "latestWkid": 4326 - } - }, - "allowGeometryUpdates": true, - "allowTrueCurvesUpdates": false, - "onlyAllowTrueCurveUpdatesByTrueCurveClients": true, - "supportsApplyEditsWithGlobalIds": false, - "supportsTrueCurve": true, - "units": "esriDecimalDegrees", - "documentInfo": { - "Title": "", - "Author": "", - "Comments": "Feeds", - "Subject": "Feeds", - "Category": "", - "Keywords": "Feeds" - }, - "supportsQueryDomains": true, - "layers": [ - { + } + }, + "allowGeometryUpdates": true, + "allowTrueCurvesUpdates": false, + "onlyAllowTrueCurveUpdatesByTrueCurveClients": true, + "supportsApplyEditsWithGlobalIds": false, + "supportsTrueCurve": true, + "units": "esriDecimalDegrees", + "documentInfo": { + "Title": "", + "Author": "", + "Comments": "Feeds", + "Subject": "Feeds", + "Category": "", + "Keywords": "Feeds" + }, + "supportsQueryDomains": true, + "layers": [ + { "id": 0, "name": "Ambulances", "parentLayerId": -1, @@ -63,8 +63,8 @@ "maxScale": 0, "type": "Feature Layer", "geometryType": "esriGeometryPoint" - }, - { + }, + { "id": 1, "name": "Police", "parentLayerId": -1, @@ -74,8 +74,8 @@ "maxScale": 0, "type": "Feature Layer", "geometryType": "esriGeometryPoint" - }, - { + }, + { "id": 123, "name": "Fire", "parentLayerId": -1, @@ -85,32 +85,32 @@ "maxScale": 0, "type": "Feature Layer", "geometryType": "esriGeometryPoint" - } - ], - "tables": [], - "relationships": [], - "enableZDefaults": false, - "allowUpdateWithoutMValues": false, - "datumTransformations": [ - { + } + ], + "tables": [], + "relationships": [], + "enableZDefaults": false, + "allowUpdateWithoutMValues": false, + "datumTransformations": [ + { "geoTransforms": [ - { - "wkid": 108001, - "latestWkid": 1241, - "transformForward": true, - "name": "NAD_1927_To_NAD_1983_NADCON" - } + { + "wkid": 108001, + "latestWkid": 1241, + "transformForward": true, + "name": "NAD_1927_To_NAD_1983_NADCON" + } ] - }, - { + }, + { "geoTransforms": [ - { - "wkid": 108001, - "latestWkid": 1241, - "transformForward": false, - "name": "NAD_1927_To_NAD_1983_NADCON" - } + { + "wkid": 108001, + "latestWkid": 1241, + "transformForward": false, + "name": "NAD_1927_To_NAD_1983_NADCON" + } ] - } - ] - } \ No newline at end of file + } + ] +} diff --git a/wwwroot/test/ArcGisFeatureServer/Water_Network/2.json b/wwwroot/test/ArcGisFeatureServer/Water_Network/2.json index 278e7a1d446..b38255a6750 100644 --- a/wwwroot/test/ArcGisFeatureServer/Water_Network/2.json +++ b/wwwroot/test/ArcGisFeatureServer/Water_Network/2.json @@ -1,97 +1,99 @@ { - "currentVersion": 10.71, - "id": 2, - "name": "Water Abandoned Points", - "type": "Feature Layer", - "parentLayer": { - "id": 1, - "name": "Water Abandoned Assets" - }, - "defaultVisibility": true, - "minScale": 0, - "maxScale": 0, - "geometryType": "esriGeometryPoint", - "description": "Water Data", - "copyrightText": "Water Copyright", - "editFieldsInfo": null, - "ownershipBasedAccessControlForFeatures": null, - "syncCanReturnChanges": false, - "relationships": [], - "isDataVersioned": true, - "isDataArchived": false, - "isCoGoEnabled": false, - "supportsRollbackOnFailureParameter": false, - "archivingInfo": { - "supportsQueryWithHistoricMoment": false, - "startArchivingMoment": -1 - }, + "currentVersion": 10.71, + "id": 2, + "name": "Water Abandoned Points", + "type": "Feature Layer", + "parentLayer": { + "id": 1, + "name": "Water Abandoned Assets" + }, + "defaultVisibility": true, + "minScale": 0, + "maxScale": 0, + "geometryType": "esriGeometryPoint", + "description": "Water Data", + "copyrightText": "Water Copyright", + "editFieldsInfo": null, + "ownershipBasedAccessControlForFeatures": null, + "syncCanReturnChanges": false, + "relationships": [], + "isDataVersioned": true, + "isDataArchived": false, + "isCoGoEnabled": false, + "supportsRollbackOnFailureParameter": false, + "archivingInfo": { + "supportsQueryWithHistoricMoment": false, + "startArchivingMoment": -1 + }, + "supportsStatistics": true, + "supportsAdvancedQueries": true, + "supportsValidateSQL": true, + "supportsCoordinatesQuantization": true, + "supportsCalculate": false, + "advancedQueryCapabilities": { + "supportsPagination": true, + "supportsTrueCurve": true, + "supportsQueryWithDistance": true, + "supportsReturningQueryExtent": true, "supportsStatistics": true, - "supportsAdvancedQueries": true, - "supportsValidateSQL": true, - "supportsCoordinatesQuantization": true, - "supportsCalculate": false, - "advancedQueryCapabilities": { - "supportsPagination": true, - "supportsTrueCurve": true, - "supportsQueryWithDistance": true, - "supportsReturningQueryExtent": true, - "supportsStatistics": true, - "supportsHavingClause": true, - "supportsOrderBy": true, - "supportsDistinct": true, - "supportsCountDistinct": true, - "supportsQueryWithResultType": true, - "supportsReturningGeometryCentroid": false, - "supportsSqlExpression": true - }, - "extent" : { - "xmin" : -20037507, - "ymin" : -7538976, - "xmax" : 20037507, - "ymax" : 16423937, - "spatialReference" : { - "wkid" : 102100, - "latestWkid" : 3857 - } - }, - "sourceSpatialReference": {"wkt": "PROJCS[\"NAD_1983_HARN_StatePlane_Illinois_East_FIPS_1201\",GEOGCS[\"GCS_North_American_1983_HARN\",DATUM[\"D_North_American_1983_HARN\",SPHEROID[\"GRS_1980\",6378137.0,298.257222101]],PRIMEM[\"Greenwich\",0.0],UNIT[\"Degree\",0.0174532925199433]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"False_Easting\",984250.0],PARAMETER[\"False_Northing\",0.0],PARAMETER[\"Central_Meridian\",-88.33333333333333],PARAMETER[\"Scale_Factor\",0.999975],PARAMETER[\"Latitude_Of_Origin\",36.66666666666666],UNIT[\"Foot_US\",0.3048006096012192]]"}, - "effectiveMinScale": 2500, - "drawingInfo": { - "renderer": { + "supportsHavingClause": true, + "supportsOrderBy": true, + "supportsDistinct": true, + "supportsCountDistinct": true, + "supportsQueryWithResultType": true, + "supportsReturningGeometryCentroid": false, + "supportsSqlExpression": true + }, + "extent": { + "xmin": -20037507, + "ymin": -7538976, + "xmax": 20037507, + "ymax": 16423937, + "spatialReference": { + "wkid": 102100, + "latestWkid": 3857 + } + }, + "sourceSpatialReference": { + "wkt": "PROJCS[\"NAD_1983_HARN_StatePlane_Illinois_East_FIPS_1201\",GEOGCS[\"GCS_North_American_1983_HARN\",DATUM[\"D_North_American_1983_HARN\",SPHEROID[\"GRS_1980\",6378137.0,298.257222101]],PRIMEM[\"Greenwich\",0.0],UNIT[\"Degree\",0.0174532925199433]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"False_Easting\",984250.0],PARAMETER[\"False_Northing\",0.0],PARAMETER[\"Central_Meridian\",-88.33333333333333],PARAMETER[\"Scale_Factor\",0.999975],PARAMETER[\"Latitude_Of_Origin\",36.66666666666666],UNIT[\"Foot_US\",0.3048006096012192]]" + }, + "effectiveMinScale": 2500, + "drawingInfo": { + "renderer": { "type": "simple", "symbol": { - "type": "esriPMS", - "url": "e0aaf4b5a88cac5109e9021f9f6291e3", - "imageData": "iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAAAXNSR0IB2cksfwAAAAlwSFlzAAAOxAAADsQBlSsOGwAAAdVJREFUOI2tlM9LVFEUxz9nnOYladRoEEUaLjImahFqMuOqCFwUbYRokUht1H9AF0EjQdDCjZtMEuwfqFZBizbVPCqhjeCPCrFFMVBaDI7DHR/vtNCHc6c3DwW/cOGee7mfc77ncm+cfVI8cvejNiQ9zhThsImRp5slRHT3IFdTwBge19fAAcAHXH7i6hR1jHNJ1qNBrt5GeQokQlKcQMk6HrfMe71Gj3wLBTmu9hplBohFGMZAO8JrPmgX3bJqgz7rQVNiKoCk4zByHNoaoOzDpzUY+m3x2vD1ATBsg0r0AacAbiRg+hw01e+cutgMHUeh82sFSuUuro6SlsIOSLQXFQDun7YhgTqOweM/VmUJlMvAy4oeSUswO3ukdn+6koBtscW2ppSD6YGIVif+3zM2CF0CuQLwowitjeGg5XU7doQvphLkiDw3unUDM9/hXgrqqrKvluBR3lr6ZYq8syoyaXlDTnNAJlsA5mGgFU4egk0fFv/C2Aq4ngV6yFXxqqwB0A/MAslsAbJz4fa29YoNJoLABmVkmZz2OPDCQHtthj6jXgbJiB8O2oItmFk9T5k7wE3gAtAI5EHfOsikycRy1cfCX3+nbAJPtoclU6PG6P9oD/oHCkKM3BFkcewAAAAASUVORK5CYII=", - "contentType": "image/png", - "width": 13, - "height": 13, - "angle": 0, - "xoffset": 0, - "yoffset": 0 + "type": "esriPMS", + "url": "e0aaf4b5a88cac5109e9021f9f6291e3", + "imageData": "iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAAAXNSR0IB2cksfwAAAAlwSFlzAAAOxAAADsQBlSsOGwAAAdVJREFUOI2tlM9LVFEUxz9nnOYladRoEEUaLjImahFqMuOqCFwUbYRokUht1H9AF0EjQdDCjZtMEuwfqFZBizbVPCqhjeCPCrFFMVBaDI7DHR/vtNCHc6c3DwW/cOGee7mfc77ncm+cfVI8cvejNiQ9zhThsImRp5slRHT3IFdTwBge19fAAcAHXH7i6hR1jHNJ1qNBrt5GeQokQlKcQMk6HrfMe71Gj3wLBTmu9hplBohFGMZAO8JrPmgX3bJqgz7rQVNiKoCk4zByHNoaoOzDpzUY+m3x2vD1ATBsg0r0AacAbiRg+hw01e+cutgMHUeh82sFSuUuro6SlsIOSLQXFQDun7YhgTqOweM/VmUJlMvAy4oeSUswO3ukdn+6koBtscW2ppSD6YGIVif+3zM2CF0CuQLwowitjeGg5XU7doQvphLkiDw3unUDM9/hXgrqqrKvluBR3lr6ZYq8syoyaXlDTnNAJlsA5mGgFU4egk0fFv/C2Aq4ngV6yFXxqqwB0A/MAslsAbJz4fa29YoNJoLABmVkmZz2OPDCQHtthj6jXgbJiB8O2oItmFk9T5k7wE3gAtAI5EHfOsikycRy1cfCX3+nbAJPtoclU6PG6P9oD/oHCkKM3BFkcewAAAAASUVORK5CYII=", + "contentType": "image/png", + "width": 13, + "height": 13, + "angle": 0, + "xoffset": 0, + "yoffset": 0 }, "label": "", "description": "" - }, - "transparency": 0, - "labelingInfo": null }, - "hasM": true, - "hasZ": false, - "allowUpdateWithoutMValues": false, - "allowGeometryUpdates": true, - "allowTrueCurvesUpdates": false, - "onlyAllowTrueCurveUpdatesByTrueCurveClients": true, - "hasAttachments": false, - "supportsApplyEditsWithGlobalIds": false, - "htmlPopupType": "esriServerHTMLPopupTypeAsHTMLText", - "objectIdField": "objectid", - "globalIdField": "", - "displayField": "pointtype", - "typeIdField": "", - "subtypeField": "", - "fields": [ - { + "transparency": 0, + "labelingInfo": null + }, + "hasM": true, + "hasZ": false, + "allowUpdateWithoutMValues": false, + "allowGeometryUpdates": true, + "allowTrueCurvesUpdates": false, + "onlyAllowTrueCurveUpdatesByTrueCurveClients": true, + "hasAttachments": false, + "supportsApplyEditsWithGlobalIds": false, + "htmlPopupType": "esriServerHTMLPopupTypeAsHTMLText", + "objectIdField": "objectid", + "globalIdField": "", + "displayField": "pointtype", + "typeIdField": "", + "subtypeField": "", + "fields": [ + { "name": "objectid", "type": "esriFieldTypeOID", "alias": "OBJECTID", @@ -100,8 +102,8 @@ "nullable": false, "defaultValue": null, "modelName": "System-maintained ObjectID" - }, - { + }, + { "name": "pointtype", "type": "esriFieldTypeString", "alias": "Point Type", @@ -111,8 +113,8 @@ "length": 60, "defaultValue": null, "modelName": "POINTTYPE" - }, - { + }, + { "name": "installdate", "type": "esriFieldTypeDate", "alias": "Install Date", @@ -122,8 +124,8 @@ "length": 8, "defaultValue": null, "modelName": "INSTALLDATE" - }, - { + }, + { "name": "abandate", "type": "esriFieldTypeDate", "alias": "Abandoned Date", @@ -133,309 +135,309 @@ "length": 8, "defaultValue": null, "modelName": "ABANDATE" - }, - { + }, + { "name": "material", "type": "esriFieldTypeString", "alias": "Material", "domain": { - "type": "codedValue", - "name": "piPipeMaterial", - "description": "The list of pipe materials types based on the NASSCO standards", - "codedValues": [ - { - "name": "ABS Plastic", - "code": "ABS" - }, - { - "name": "Asbestos Cement", - "code": "AC" - }, - { - "name": "Asphalt", - "code": "ASP" - }, - { - "name": "Brick Masonary", - "code": "BMP" - }, - { - "name": "Brick", - "code": "BR" - }, - { - "name": "Cast Iron", - "code": "CAS" - }, - { - "name": "Clay Tile", - "code": "CT" - }, - { - "name": "Concrete (Non-Reinforced)", - "code": "CP" - }, - { - "name": "Concrete Segments (Bolted)", - "code": "CSB" - }, - { - "name": "Concrete Segments (Unbolted)", - "code": "CSU" - }, - { - "name": "Corrugated Metal", - "code": "CMP" - }, - { - "name": "Copper", - "code": "COP" - }, - { - "name": "Cured In Place", - "code": "CIPP" - }, - { - "name": "Ductile Iron", - "code": "DIP" - }, - { - "name": "Fiberglass Reinforced", - "code": "FRP" - }, - { - "name": "Earth & Geotextile", - "code": "EARGEO" - }, - { - "name": "Earthen", - "code": "EAR" - }, - { - "name": "Geotextile", - "code": "GEO" - }, - { - "name": "Galvanized Pipe", - "code": "GP" - }, - { - "name": "Glass Reinforced Cement", - "code": "GRC" - }, - { - "name": "Pitch Fiber (Orangeburg)", - "code": "OB" - }, - { - "name": "Plastic/Steel Composite", - "code": "PSC" - }, - { - "name": "High Density Polyethelene", - "code": "HDPE" - }, - { - "name": "Polyethylene", - "code": "PE" - }, - { - "name": "Polypropylene", - "code": "PP" - }, - { - "name": "Polyvinyl Chloride", - "code": "PVC" - }, - { - "name": "Pre-Stressed Concrete Cylinder", - "code": "PCCP" - }, - { - "name": "Reinforced Concrete", - "code": "RCP" - }, - { - "name": "Reinforced Plastic (Truss)", - "code": "RPM" - }, - { - "name": "Segmented Block", - "code": "SB" - }, - { - "name": "Steel", - "code": "SP" - }, - { - "name": "Transite", - "code": "TTE" - }, - { - "name": "Vitrified Clay", - "code": "VCP" - }, - { - "name": "Wood", - "code": "WD" - }, - { - "name": "Other", - "code": "OTH" - }, - { - "name": "Unknown", - "code": "UNK" - } - ], - "mergePolicy": "esriMPTDefaultValue", - "splitPolicy": "esriSPTDefaultValue" + "type": "codedValue", + "name": "piPipeMaterial", + "description": "The list of pipe materials types based on the NASSCO standards", + "codedValues": [ + { + "name": "ABS Plastic", + "code": "ABS" + }, + { + "name": "Asbestos Cement", + "code": "AC" + }, + { + "name": "Asphalt", + "code": "ASP" + }, + { + "name": "Brick Masonary", + "code": "BMP" + }, + { + "name": "Brick", + "code": "BR" + }, + { + "name": "Cast Iron", + "code": "CAS" + }, + { + "name": "Clay Tile", + "code": "CT" + }, + { + "name": "Concrete (Non-Reinforced)", + "code": "CP" + }, + { + "name": "Concrete Segments (Bolted)", + "code": "CSB" + }, + { + "name": "Concrete Segments (Unbolted)", + "code": "CSU" + }, + { + "name": "Corrugated Metal", + "code": "CMP" + }, + { + "name": "Copper", + "code": "COP" + }, + { + "name": "Cured In Place", + "code": "CIPP" + }, + { + "name": "Ductile Iron", + "code": "DIP" + }, + { + "name": "Fiberglass Reinforced", + "code": "FRP" + }, + { + "name": "Earth & Geotextile", + "code": "EARGEO" + }, + { + "name": "Earthen", + "code": "EAR" + }, + { + "name": "Geotextile", + "code": "GEO" + }, + { + "name": "Galvanized Pipe", + "code": "GP" + }, + { + "name": "Glass Reinforced Cement", + "code": "GRC" + }, + { + "name": "Pitch Fiber (Orangeburg)", + "code": "OB" + }, + { + "name": "Plastic/Steel Composite", + "code": "PSC" + }, + { + "name": "High Density Polyethelene", + "code": "HDPE" + }, + { + "name": "Polyethylene", + "code": "PE" + }, + { + "name": "Polypropylene", + "code": "PP" + }, + { + "name": "Polyvinyl Chloride", + "code": "PVC" + }, + { + "name": "Pre-Stressed Concrete Cylinder", + "code": "PCCP" + }, + { + "name": "Reinforced Concrete", + "code": "RCP" + }, + { + "name": "Reinforced Plastic (Truss)", + "code": "RPM" + }, + { + "name": "Segmented Block", + "code": "SB" + }, + { + "name": "Steel", + "code": "SP" + }, + { + "name": "Transite", + "code": "TTE" + }, + { + "name": "Vitrified Clay", + "code": "VCP" + }, + { + "name": "Wood", + "code": "WD" + }, + { + "name": "Other", + "code": "OTH" + }, + { + "name": "Unknown", + "code": "UNK" + } + ], + "mergePolicy": "esriMPTDefaultValue", + "splitPolicy": "esriSPTDefaultValue" }, "editable": true, "nullable": true, "length": 20, "defaultValue": null, "modelName": "MATERIAL" - }, - { + }, + { "name": "diameter", "type": "esriFieldTypeDouble", "alias": "Diameter", "domain": { - "type": "codedValue", - "name": "piPipeDiameter", - "description": "A list of pipe diameters", - "codedValues": [ - { - "name": "3/4\"", - "code": 0.75 - }, - { - "name": "1\"", - "code": 1 - }, - { - "name": "1 1/4\"", - "code": 1.25 - }, - { - "name": "1 1/2\"", - "code": 1.5 - }, - { - "name": "2\"", - "code": 2 - }, - { - "name": "2 1/2\"", - "code": 2.5 - }, - { - "name": "3\"", - "code": 3 - }, - { - "name": "4\"", - "code": 4 - }, - { - "name": "6\"", - "code": 6 - }, - { - "name": "8\"", - "code": 8 - }, - { - "name": "10\"", - "code": 10 - }, - { - "name": "12\"", - "code": 12 - }, - { - "name": "14\"", - "code": 14 - }, - { - "name": "15\"", - "code": 15 - }, - { - "name": "16\"", - "code": 16 - }, - { - "name": "18\"", - "code": 18 - }, - { - "name": "20\"", - "code": 20 - }, - { - "name": "24\"", - "code": 24 - }, - { - "name": "30\"", - "code": 30 - }, - { - "name": "36\"", - "code": 36 - }, - { - "name": "40\"", - "code": 40 - }, - { - "name": "42\"", - "code": 42 - }, - { - "name": "48\"", - "code": 48 - }, - { - "name": "54\"", - "code": 54 - }, - { - "name": "60\"", - "code": 60 - }, - { - "name": "66\"", - "code": 66 - }, - { - "name": "72\"", - "code": 72 - }, - { - "name": "75\"", - "code": 75 - }, - { - "name": "Unknown", - "code": 0 - }, - { - "name": "Other", - "code": -1 - } - ], - "mergePolicy": "esriMPTDefaultValue", - "splitPolicy": "esriSPTDuplicate" + "type": "codedValue", + "name": "piPipeDiameter", + "description": "A list of pipe diameters", + "codedValues": [ + { + "name": "3/4\"", + "code": 0.75 + }, + { + "name": "1\"", + "code": 1 + }, + { + "name": "1 1/4\"", + "code": 1.25 + }, + { + "name": "1 1/2\"", + "code": 1.5 + }, + { + "name": "2\"", + "code": 2 + }, + { + "name": "2 1/2\"", + "code": 2.5 + }, + { + "name": "3\"", + "code": 3 + }, + { + "name": "4\"", + "code": 4 + }, + { + "name": "6\"", + "code": 6 + }, + { + "name": "8\"", + "code": 8 + }, + { + "name": "10\"", + "code": 10 + }, + { + "name": "12\"", + "code": 12 + }, + { + "name": "14\"", + "code": 14 + }, + { + "name": "15\"", + "code": 15 + }, + { + "name": "16\"", + "code": 16 + }, + { + "name": "18\"", + "code": 18 + }, + { + "name": "20\"", + "code": 20 + }, + { + "name": "24\"", + "code": 24 + }, + { + "name": "30\"", + "code": 30 + }, + { + "name": "36\"", + "code": 36 + }, + { + "name": "40\"", + "code": 40 + }, + { + "name": "42\"", + "code": 42 + }, + { + "name": "48\"", + "code": 48 + }, + { + "name": "54\"", + "code": 54 + }, + { + "name": "60\"", + "code": 60 + }, + { + "name": "66\"", + "code": 66 + }, + { + "name": "72\"", + "code": 72 + }, + { + "name": "75\"", + "code": 75 + }, + { + "name": "Unknown", + "code": 0 + }, + { + "name": "Other", + "code": -1 + } + ], + "mergePolicy": "esriMPTDefaultValue", + "splitPolicy": "esriSPTDuplicate" }, "editable": false, "nullable": true, "defaultValue": null, "modelName": "DIAMETER" - }, - { + }, + { "name": "facilityid", "type": "esriFieldTypeString", "alias": "Facility Identifier", @@ -445,8 +447,8 @@ "length": 20, "defaultValue": null, "modelName": "FACILITYID" - }, - { + }, + { "name": "lastupdate", "type": "esriFieldTypeDate", "alias": "Last Update Date", @@ -456,8 +458,8 @@ "length": 8, "defaultValue": null, "modelName": "LASTUPDATE" - }, - { + }, + { "name": "lasteditor", "type": "esriFieldTypeString", "alias": "Last Editor", @@ -467,131 +469,131 @@ "length": 50, "defaultValue": null, "modelName": "LASTEDITOR" - }, - { + }, + { "name": "enabled", "type": "esriFieldTypeSmallInteger", "alias": "Enabled", "domain": { - "type": "codedValue", - "name": "EnabledDomain", - "description": "Geometric Network Enabled domain", - "codedValues": [ - { - "name": "False", - "code": 0 - }, - { - "name": "True", - "code": 1 - } - ], - "mergePolicy": "esriMPTDefaultValue", - "splitPolicy": "esriSPTDefaultValue" + "type": "codedValue", + "name": "EnabledDomain", + "description": "Geometric Network Enabled domain", + "codedValues": [ + { + "name": "False", + "code": 0 + }, + { + "name": "True", + "code": 1 + } + ], + "mergePolicy": "esriMPTDefaultValue", + "splitPolicy": "esriSPTDefaultValue" }, "editable": true, "nullable": true, "defaultValue": 1, "modelName": "Enabled" - } - ], - "geometryField": { - "name": "shape", - "type": "esriFieldTypeGeometry", - "alias": "SHAPE", - "domain": null, - "editable": true, - "nullable": true, - "defaultValue": null, - "modelName": "System-maintained Geometry for a feature" - }, - "dateFieldsTimeReference": { - "timeZone": "UTC", - "respectsDaylightSaving": false - }, - "types": [], - "templates": [ - { + } + ], + "geometryField": { + "name": "shape", + "type": "esriFieldTypeGeometry", + "alias": "SHAPE", + "domain": null, + "editable": true, + "nullable": true, + "defaultValue": null, + "modelName": "System-maintained Geometry for a feature" + }, + "dateFieldsTimeReference": { + "timeZone": "UTC", + "respectsDaylightSaving": false + }, + "types": [], + "templates": [ + { "name": "Abandoned Water Test Station", "description": "", "prototype": { - "attributes": { - "enabled": null, - "pointtype": "wTestStation", - "installdate": null, - "abandate": null, - "material": null, - "facilityid": null - } + "attributes": { + "enabled": null, + "pointtype": "wTestStation", + "installdate": null, + "abandate": null, + "material": null, + "facilityid": null + } }, "drawingTool": "esriFeatureEditToolPoint" - }, - { + }, + { "name": "Abandoned Water Sampling Station", "description": "", "prototype": { - "attributes": { - "enabled": null, - "pointtype": "wSamplingStation", - "installdate": null, - "abandate": null, - "material": null, - "facilityid": null - } + "attributes": { + "enabled": null, + "pointtype": "wSamplingStation", + "installdate": null, + "abandate": null, + "material": null, + "facilityid": null + } }, "drawingTool": "esriFeatureEditToolPoint" - }, - { + }, + { "name": "Abandoned Water Service Connection", "description": "", "prototype": { - "attributes": { - "enabled": null, - "pointtype": "wServiceConnection", - "installdate": null, - "abandate": null, - "material": null, - "facilityid": null - } + "attributes": { + "enabled": null, + "pointtype": "wServiceConnection", + "installdate": null, + "abandate": null, + "material": null, + "facilityid": null + } }, "drawingTool": "esriFeatureEditToolPoint" - }, - { + }, + { "name": "Abandoned Water Hydrant", "description": "", "prototype": { - "attributes": { - "enabled": null, - "pointtype": "wHydrant", - "installdate": null, - "abandate": null, - "material": null, - "facilityid": null - } + "attributes": { + "enabled": null, + "pointtype": "wHydrant", + "installdate": null, + "abandate": null, + "material": null, + "facilityid": null + } }, "drawingTool": "esriFeatureEditToolPoint" - }, - { + }, + { "name": "Abandoned Water Pump", "description": "", "prototype": { - "attributes": { - "enabled": null, - "pointtype": "wPump", - "installdate": null, - "abandate": null, - "material": null, - "facilityid": null - } + "attributes": { + "enabled": null, + "pointtype": "wPump", + "installdate": null, + "abandate": null, + "material": null, + "facilityid": null + } }, "drawingTool": "esriFeatureEditToolPoint" - } - ], - "maxRecordCount": 1000, - "supportedQueryFormats": "JSON, geoJSON", - "capabilities": "Query,Create,Update,Delete,Uploads,Editing", - "useStandardizedQueries": true, - "standardMaxRecordCount": 32000, - "tileMaxRecordCount": 8000, - "maxRecordCountFactor": 1 - } \ No newline at end of file + } + ], + "maxRecordCount": 1000, + "supportedQueryFormats": "JSON, geoJSON", + "capabilities": "Query,Create,Update,Delete,Uploads,Editing", + "useStandardizedQueries": true, + "standardMaxRecordCount": 32000, + "tileMaxRecordCount": 8000, + "maxRecordCountFactor": 1 +} diff --git a/wwwroot/test/ArcGisFeatureServer/Water_Network_Multi/2.json b/wwwroot/test/ArcGisFeatureServer/Water_Network_Multi/2.json index 278e7a1d446..b38255a6750 100644 --- a/wwwroot/test/ArcGisFeatureServer/Water_Network_Multi/2.json +++ b/wwwroot/test/ArcGisFeatureServer/Water_Network_Multi/2.json @@ -1,97 +1,99 @@ { - "currentVersion": 10.71, - "id": 2, - "name": "Water Abandoned Points", - "type": "Feature Layer", - "parentLayer": { - "id": 1, - "name": "Water Abandoned Assets" - }, - "defaultVisibility": true, - "minScale": 0, - "maxScale": 0, - "geometryType": "esriGeometryPoint", - "description": "Water Data", - "copyrightText": "Water Copyright", - "editFieldsInfo": null, - "ownershipBasedAccessControlForFeatures": null, - "syncCanReturnChanges": false, - "relationships": [], - "isDataVersioned": true, - "isDataArchived": false, - "isCoGoEnabled": false, - "supportsRollbackOnFailureParameter": false, - "archivingInfo": { - "supportsQueryWithHistoricMoment": false, - "startArchivingMoment": -1 - }, + "currentVersion": 10.71, + "id": 2, + "name": "Water Abandoned Points", + "type": "Feature Layer", + "parentLayer": { + "id": 1, + "name": "Water Abandoned Assets" + }, + "defaultVisibility": true, + "minScale": 0, + "maxScale": 0, + "geometryType": "esriGeometryPoint", + "description": "Water Data", + "copyrightText": "Water Copyright", + "editFieldsInfo": null, + "ownershipBasedAccessControlForFeatures": null, + "syncCanReturnChanges": false, + "relationships": [], + "isDataVersioned": true, + "isDataArchived": false, + "isCoGoEnabled": false, + "supportsRollbackOnFailureParameter": false, + "archivingInfo": { + "supportsQueryWithHistoricMoment": false, + "startArchivingMoment": -1 + }, + "supportsStatistics": true, + "supportsAdvancedQueries": true, + "supportsValidateSQL": true, + "supportsCoordinatesQuantization": true, + "supportsCalculate": false, + "advancedQueryCapabilities": { + "supportsPagination": true, + "supportsTrueCurve": true, + "supportsQueryWithDistance": true, + "supportsReturningQueryExtent": true, "supportsStatistics": true, - "supportsAdvancedQueries": true, - "supportsValidateSQL": true, - "supportsCoordinatesQuantization": true, - "supportsCalculate": false, - "advancedQueryCapabilities": { - "supportsPagination": true, - "supportsTrueCurve": true, - "supportsQueryWithDistance": true, - "supportsReturningQueryExtent": true, - "supportsStatistics": true, - "supportsHavingClause": true, - "supportsOrderBy": true, - "supportsDistinct": true, - "supportsCountDistinct": true, - "supportsQueryWithResultType": true, - "supportsReturningGeometryCentroid": false, - "supportsSqlExpression": true - }, - "extent" : { - "xmin" : -20037507, - "ymin" : -7538976, - "xmax" : 20037507, - "ymax" : 16423937, - "spatialReference" : { - "wkid" : 102100, - "latestWkid" : 3857 - } - }, - "sourceSpatialReference": {"wkt": "PROJCS[\"NAD_1983_HARN_StatePlane_Illinois_East_FIPS_1201\",GEOGCS[\"GCS_North_American_1983_HARN\",DATUM[\"D_North_American_1983_HARN\",SPHEROID[\"GRS_1980\",6378137.0,298.257222101]],PRIMEM[\"Greenwich\",0.0],UNIT[\"Degree\",0.0174532925199433]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"False_Easting\",984250.0],PARAMETER[\"False_Northing\",0.0],PARAMETER[\"Central_Meridian\",-88.33333333333333],PARAMETER[\"Scale_Factor\",0.999975],PARAMETER[\"Latitude_Of_Origin\",36.66666666666666],UNIT[\"Foot_US\",0.3048006096012192]]"}, - "effectiveMinScale": 2500, - "drawingInfo": { - "renderer": { + "supportsHavingClause": true, + "supportsOrderBy": true, + "supportsDistinct": true, + "supportsCountDistinct": true, + "supportsQueryWithResultType": true, + "supportsReturningGeometryCentroid": false, + "supportsSqlExpression": true + }, + "extent": { + "xmin": -20037507, + "ymin": -7538976, + "xmax": 20037507, + "ymax": 16423937, + "spatialReference": { + "wkid": 102100, + "latestWkid": 3857 + } + }, + "sourceSpatialReference": { + "wkt": "PROJCS[\"NAD_1983_HARN_StatePlane_Illinois_East_FIPS_1201\",GEOGCS[\"GCS_North_American_1983_HARN\",DATUM[\"D_North_American_1983_HARN\",SPHEROID[\"GRS_1980\",6378137.0,298.257222101]],PRIMEM[\"Greenwich\",0.0],UNIT[\"Degree\",0.0174532925199433]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"False_Easting\",984250.0],PARAMETER[\"False_Northing\",0.0],PARAMETER[\"Central_Meridian\",-88.33333333333333],PARAMETER[\"Scale_Factor\",0.999975],PARAMETER[\"Latitude_Of_Origin\",36.66666666666666],UNIT[\"Foot_US\",0.3048006096012192]]" + }, + "effectiveMinScale": 2500, + "drawingInfo": { + "renderer": { "type": "simple", "symbol": { - "type": "esriPMS", - "url": "e0aaf4b5a88cac5109e9021f9f6291e3", - "imageData": "iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAAAXNSR0IB2cksfwAAAAlwSFlzAAAOxAAADsQBlSsOGwAAAdVJREFUOI2tlM9LVFEUxz9nnOYladRoEEUaLjImahFqMuOqCFwUbYRokUht1H9AF0EjQdDCjZtMEuwfqFZBizbVPCqhjeCPCrFFMVBaDI7DHR/vtNCHc6c3DwW/cOGee7mfc77ncm+cfVI8cvejNiQ9zhThsImRp5slRHT3IFdTwBge19fAAcAHXH7i6hR1jHNJ1qNBrt5GeQokQlKcQMk6HrfMe71Gj3wLBTmu9hplBohFGMZAO8JrPmgX3bJqgz7rQVNiKoCk4zByHNoaoOzDpzUY+m3x2vD1ATBsg0r0AacAbiRg+hw01e+cutgMHUeh82sFSuUuro6SlsIOSLQXFQDun7YhgTqOweM/VmUJlMvAy4oeSUswO3ukdn+6koBtscW2ppSD6YGIVif+3zM2CF0CuQLwowitjeGg5XU7doQvphLkiDw3unUDM9/hXgrqqrKvluBR3lr6ZYq8syoyaXlDTnNAJlsA5mGgFU4egk0fFv/C2Aq4ngV6yFXxqqwB0A/MAslsAbJz4fa29YoNJoLABmVkmZz2OPDCQHtthj6jXgbJiB8O2oItmFk9T5k7wE3gAtAI5EHfOsikycRy1cfCX3+nbAJPtoclU6PG6P9oD/oHCkKM3BFkcewAAAAASUVORK5CYII=", - "contentType": "image/png", - "width": 13, - "height": 13, - "angle": 0, - "xoffset": 0, - "yoffset": 0 + "type": "esriPMS", + "url": "e0aaf4b5a88cac5109e9021f9f6291e3", + "imageData": "iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAAAXNSR0IB2cksfwAAAAlwSFlzAAAOxAAADsQBlSsOGwAAAdVJREFUOI2tlM9LVFEUxz9nnOYladRoEEUaLjImahFqMuOqCFwUbYRokUht1H9AF0EjQdDCjZtMEuwfqFZBizbVPCqhjeCPCrFFMVBaDI7DHR/vtNCHc6c3DwW/cOGee7mfc77ncm+cfVI8cvejNiQ9zhThsImRp5slRHT3IFdTwBge19fAAcAHXH7i6hR1jHNJ1qNBrt5GeQokQlKcQMk6HrfMe71Gj3wLBTmu9hplBohFGMZAO8JrPmgX3bJqgz7rQVNiKoCk4zByHNoaoOzDpzUY+m3x2vD1ATBsg0r0AacAbiRg+hw01e+cutgMHUeh82sFSuUuro6SlsIOSLQXFQDun7YhgTqOweM/VmUJlMvAy4oeSUswO3ukdn+6koBtscW2ppSD6YGIVif+3zM2CF0CuQLwowitjeGg5XU7doQvphLkiDw3unUDM9/hXgrqqrKvluBR3lr6ZYq8syoyaXlDTnNAJlsA5mGgFU4egk0fFv/C2Aq4ngV6yFXxqqwB0A/MAslsAbJz4fa29YoNJoLABmVkmZz2OPDCQHtthj6jXgbJiB8O2oItmFk9T5k7wE3gAtAI5EHfOsikycRy1cfCX3+nbAJPtoclU6PG6P9oD/oHCkKM3BFkcewAAAAASUVORK5CYII=", + "contentType": "image/png", + "width": 13, + "height": 13, + "angle": 0, + "xoffset": 0, + "yoffset": 0 }, "label": "", "description": "" - }, - "transparency": 0, - "labelingInfo": null }, - "hasM": true, - "hasZ": false, - "allowUpdateWithoutMValues": false, - "allowGeometryUpdates": true, - "allowTrueCurvesUpdates": false, - "onlyAllowTrueCurveUpdatesByTrueCurveClients": true, - "hasAttachments": false, - "supportsApplyEditsWithGlobalIds": false, - "htmlPopupType": "esriServerHTMLPopupTypeAsHTMLText", - "objectIdField": "objectid", - "globalIdField": "", - "displayField": "pointtype", - "typeIdField": "", - "subtypeField": "", - "fields": [ - { + "transparency": 0, + "labelingInfo": null + }, + "hasM": true, + "hasZ": false, + "allowUpdateWithoutMValues": false, + "allowGeometryUpdates": true, + "allowTrueCurvesUpdates": false, + "onlyAllowTrueCurveUpdatesByTrueCurveClients": true, + "hasAttachments": false, + "supportsApplyEditsWithGlobalIds": false, + "htmlPopupType": "esriServerHTMLPopupTypeAsHTMLText", + "objectIdField": "objectid", + "globalIdField": "", + "displayField": "pointtype", + "typeIdField": "", + "subtypeField": "", + "fields": [ + { "name": "objectid", "type": "esriFieldTypeOID", "alias": "OBJECTID", @@ -100,8 +102,8 @@ "nullable": false, "defaultValue": null, "modelName": "System-maintained ObjectID" - }, - { + }, + { "name": "pointtype", "type": "esriFieldTypeString", "alias": "Point Type", @@ -111,8 +113,8 @@ "length": 60, "defaultValue": null, "modelName": "POINTTYPE" - }, - { + }, + { "name": "installdate", "type": "esriFieldTypeDate", "alias": "Install Date", @@ -122,8 +124,8 @@ "length": 8, "defaultValue": null, "modelName": "INSTALLDATE" - }, - { + }, + { "name": "abandate", "type": "esriFieldTypeDate", "alias": "Abandoned Date", @@ -133,309 +135,309 @@ "length": 8, "defaultValue": null, "modelName": "ABANDATE" - }, - { + }, + { "name": "material", "type": "esriFieldTypeString", "alias": "Material", "domain": { - "type": "codedValue", - "name": "piPipeMaterial", - "description": "The list of pipe materials types based on the NASSCO standards", - "codedValues": [ - { - "name": "ABS Plastic", - "code": "ABS" - }, - { - "name": "Asbestos Cement", - "code": "AC" - }, - { - "name": "Asphalt", - "code": "ASP" - }, - { - "name": "Brick Masonary", - "code": "BMP" - }, - { - "name": "Brick", - "code": "BR" - }, - { - "name": "Cast Iron", - "code": "CAS" - }, - { - "name": "Clay Tile", - "code": "CT" - }, - { - "name": "Concrete (Non-Reinforced)", - "code": "CP" - }, - { - "name": "Concrete Segments (Bolted)", - "code": "CSB" - }, - { - "name": "Concrete Segments (Unbolted)", - "code": "CSU" - }, - { - "name": "Corrugated Metal", - "code": "CMP" - }, - { - "name": "Copper", - "code": "COP" - }, - { - "name": "Cured In Place", - "code": "CIPP" - }, - { - "name": "Ductile Iron", - "code": "DIP" - }, - { - "name": "Fiberglass Reinforced", - "code": "FRP" - }, - { - "name": "Earth & Geotextile", - "code": "EARGEO" - }, - { - "name": "Earthen", - "code": "EAR" - }, - { - "name": "Geotextile", - "code": "GEO" - }, - { - "name": "Galvanized Pipe", - "code": "GP" - }, - { - "name": "Glass Reinforced Cement", - "code": "GRC" - }, - { - "name": "Pitch Fiber (Orangeburg)", - "code": "OB" - }, - { - "name": "Plastic/Steel Composite", - "code": "PSC" - }, - { - "name": "High Density Polyethelene", - "code": "HDPE" - }, - { - "name": "Polyethylene", - "code": "PE" - }, - { - "name": "Polypropylene", - "code": "PP" - }, - { - "name": "Polyvinyl Chloride", - "code": "PVC" - }, - { - "name": "Pre-Stressed Concrete Cylinder", - "code": "PCCP" - }, - { - "name": "Reinforced Concrete", - "code": "RCP" - }, - { - "name": "Reinforced Plastic (Truss)", - "code": "RPM" - }, - { - "name": "Segmented Block", - "code": "SB" - }, - { - "name": "Steel", - "code": "SP" - }, - { - "name": "Transite", - "code": "TTE" - }, - { - "name": "Vitrified Clay", - "code": "VCP" - }, - { - "name": "Wood", - "code": "WD" - }, - { - "name": "Other", - "code": "OTH" - }, - { - "name": "Unknown", - "code": "UNK" - } - ], - "mergePolicy": "esriMPTDefaultValue", - "splitPolicy": "esriSPTDefaultValue" + "type": "codedValue", + "name": "piPipeMaterial", + "description": "The list of pipe materials types based on the NASSCO standards", + "codedValues": [ + { + "name": "ABS Plastic", + "code": "ABS" + }, + { + "name": "Asbestos Cement", + "code": "AC" + }, + { + "name": "Asphalt", + "code": "ASP" + }, + { + "name": "Brick Masonary", + "code": "BMP" + }, + { + "name": "Brick", + "code": "BR" + }, + { + "name": "Cast Iron", + "code": "CAS" + }, + { + "name": "Clay Tile", + "code": "CT" + }, + { + "name": "Concrete (Non-Reinforced)", + "code": "CP" + }, + { + "name": "Concrete Segments (Bolted)", + "code": "CSB" + }, + { + "name": "Concrete Segments (Unbolted)", + "code": "CSU" + }, + { + "name": "Corrugated Metal", + "code": "CMP" + }, + { + "name": "Copper", + "code": "COP" + }, + { + "name": "Cured In Place", + "code": "CIPP" + }, + { + "name": "Ductile Iron", + "code": "DIP" + }, + { + "name": "Fiberglass Reinforced", + "code": "FRP" + }, + { + "name": "Earth & Geotextile", + "code": "EARGEO" + }, + { + "name": "Earthen", + "code": "EAR" + }, + { + "name": "Geotextile", + "code": "GEO" + }, + { + "name": "Galvanized Pipe", + "code": "GP" + }, + { + "name": "Glass Reinforced Cement", + "code": "GRC" + }, + { + "name": "Pitch Fiber (Orangeburg)", + "code": "OB" + }, + { + "name": "Plastic/Steel Composite", + "code": "PSC" + }, + { + "name": "High Density Polyethelene", + "code": "HDPE" + }, + { + "name": "Polyethylene", + "code": "PE" + }, + { + "name": "Polypropylene", + "code": "PP" + }, + { + "name": "Polyvinyl Chloride", + "code": "PVC" + }, + { + "name": "Pre-Stressed Concrete Cylinder", + "code": "PCCP" + }, + { + "name": "Reinforced Concrete", + "code": "RCP" + }, + { + "name": "Reinforced Plastic (Truss)", + "code": "RPM" + }, + { + "name": "Segmented Block", + "code": "SB" + }, + { + "name": "Steel", + "code": "SP" + }, + { + "name": "Transite", + "code": "TTE" + }, + { + "name": "Vitrified Clay", + "code": "VCP" + }, + { + "name": "Wood", + "code": "WD" + }, + { + "name": "Other", + "code": "OTH" + }, + { + "name": "Unknown", + "code": "UNK" + } + ], + "mergePolicy": "esriMPTDefaultValue", + "splitPolicy": "esriSPTDefaultValue" }, "editable": true, "nullable": true, "length": 20, "defaultValue": null, "modelName": "MATERIAL" - }, - { + }, + { "name": "diameter", "type": "esriFieldTypeDouble", "alias": "Diameter", "domain": { - "type": "codedValue", - "name": "piPipeDiameter", - "description": "A list of pipe diameters", - "codedValues": [ - { - "name": "3/4\"", - "code": 0.75 - }, - { - "name": "1\"", - "code": 1 - }, - { - "name": "1 1/4\"", - "code": 1.25 - }, - { - "name": "1 1/2\"", - "code": 1.5 - }, - { - "name": "2\"", - "code": 2 - }, - { - "name": "2 1/2\"", - "code": 2.5 - }, - { - "name": "3\"", - "code": 3 - }, - { - "name": "4\"", - "code": 4 - }, - { - "name": "6\"", - "code": 6 - }, - { - "name": "8\"", - "code": 8 - }, - { - "name": "10\"", - "code": 10 - }, - { - "name": "12\"", - "code": 12 - }, - { - "name": "14\"", - "code": 14 - }, - { - "name": "15\"", - "code": 15 - }, - { - "name": "16\"", - "code": 16 - }, - { - "name": "18\"", - "code": 18 - }, - { - "name": "20\"", - "code": 20 - }, - { - "name": "24\"", - "code": 24 - }, - { - "name": "30\"", - "code": 30 - }, - { - "name": "36\"", - "code": 36 - }, - { - "name": "40\"", - "code": 40 - }, - { - "name": "42\"", - "code": 42 - }, - { - "name": "48\"", - "code": 48 - }, - { - "name": "54\"", - "code": 54 - }, - { - "name": "60\"", - "code": 60 - }, - { - "name": "66\"", - "code": 66 - }, - { - "name": "72\"", - "code": 72 - }, - { - "name": "75\"", - "code": 75 - }, - { - "name": "Unknown", - "code": 0 - }, - { - "name": "Other", - "code": -1 - } - ], - "mergePolicy": "esriMPTDefaultValue", - "splitPolicy": "esriSPTDuplicate" + "type": "codedValue", + "name": "piPipeDiameter", + "description": "A list of pipe diameters", + "codedValues": [ + { + "name": "3/4\"", + "code": 0.75 + }, + { + "name": "1\"", + "code": 1 + }, + { + "name": "1 1/4\"", + "code": 1.25 + }, + { + "name": "1 1/2\"", + "code": 1.5 + }, + { + "name": "2\"", + "code": 2 + }, + { + "name": "2 1/2\"", + "code": 2.5 + }, + { + "name": "3\"", + "code": 3 + }, + { + "name": "4\"", + "code": 4 + }, + { + "name": "6\"", + "code": 6 + }, + { + "name": "8\"", + "code": 8 + }, + { + "name": "10\"", + "code": 10 + }, + { + "name": "12\"", + "code": 12 + }, + { + "name": "14\"", + "code": 14 + }, + { + "name": "15\"", + "code": 15 + }, + { + "name": "16\"", + "code": 16 + }, + { + "name": "18\"", + "code": 18 + }, + { + "name": "20\"", + "code": 20 + }, + { + "name": "24\"", + "code": 24 + }, + { + "name": "30\"", + "code": 30 + }, + { + "name": "36\"", + "code": 36 + }, + { + "name": "40\"", + "code": 40 + }, + { + "name": "42\"", + "code": 42 + }, + { + "name": "48\"", + "code": 48 + }, + { + "name": "54\"", + "code": 54 + }, + { + "name": "60\"", + "code": 60 + }, + { + "name": "66\"", + "code": 66 + }, + { + "name": "72\"", + "code": 72 + }, + { + "name": "75\"", + "code": 75 + }, + { + "name": "Unknown", + "code": 0 + }, + { + "name": "Other", + "code": -1 + } + ], + "mergePolicy": "esriMPTDefaultValue", + "splitPolicy": "esriSPTDuplicate" }, "editable": false, "nullable": true, "defaultValue": null, "modelName": "DIAMETER" - }, - { + }, + { "name": "facilityid", "type": "esriFieldTypeString", "alias": "Facility Identifier", @@ -445,8 +447,8 @@ "length": 20, "defaultValue": null, "modelName": "FACILITYID" - }, - { + }, + { "name": "lastupdate", "type": "esriFieldTypeDate", "alias": "Last Update Date", @@ -456,8 +458,8 @@ "length": 8, "defaultValue": null, "modelName": "LASTUPDATE" - }, - { + }, + { "name": "lasteditor", "type": "esriFieldTypeString", "alias": "Last Editor", @@ -467,131 +469,131 @@ "length": 50, "defaultValue": null, "modelName": "LASTEDITOR" - }, - { + }, + { "name": "enabled", "type": "esriFieldTypeSmallInteger", "alias": "Enabled", "domain": { - "type": "codedValue", - "name": "EnabledDomain", - "description": "Geometric Network Enabled domain", - "codedValues": [ - { - "name": "False", - "code": 0 - }, - { - "name": "True", - "code": 1 - } - ], - "mergePolicy": "esriMPTDefaultValue", - "splitPolicy": "esriSPTDefaultValue" + "type": "codedValue", + "name": "EnabledDomain", + "description": "Geometric Network Enabled domain", + "codedValues": [ + { + "name": "False", + "code": 0 + }, + { + "name": "True", + "code": 1 + } + ], + "mergePolicy": "esriMPTDefaultValue", + "splitPolicy": "esriSPTDefaultValue" }, "editable": true, "nullable": true, "defaultValue": 1, "modelName": "Enabled" - } - ], - "geometryField": { - "name": "shape", - "type": "esriFieldTypeGeometry", - "alias": "SHAPE", - "domain": null, - "editable": true, - "nullable": true, - "defaultValue": null, - "modelName": "System-maintained Geometry for a feature" - }, - "dateFieldsTimeReference": { - "timeZone": "UTC", - "respectsDaylightSaving": false - }, - "types": [], - "templates": [ - { + } + ], + "geometryField": { + "name": "shape", + "type": "esriFieldTypeGeometry", + "alias": "SHAPE", + "domain": null, + "editable": true, + "nullable": true, + "defaultValue": null, + "modelName": "System-maintained Geometry for a feature" + }, + "dateFieldsTimeReference": { + "timeZone": "UTC", + "respectsDaylightSaving": false + }, + "types": [], + "templates": [ + { "name": "Abandoned Water Test Station", "description": "", "prototype": { - "attributes": { - "enabled": null, - "pointtype": "wTestStation", - "installdate": null, - "abandate": null, - "material": null, - "facilityid": null - } + "attributes": { + "enabled": null, + "pointtype": "wTestStation", + "installdate": null, + "abandate": null, + "material": null, + "facilityid": null + } }, "drawingTool": "esriFeatureEditToolPoint" - }, - { + }, + { "name": "Abandoned Water Sampling Station", "description": "", "prototype": { - "attributes": { - "enabled": null, - "pointtype": "wSamplingStation", - "installdate": null, - "abandate": null, - "material": null, - "facilityid": null - } + "attributes": { + "enabled": null, + "pointtype": "wSamplingStation", + "installdate": null, + "abandate": null, + "material": null, + "facilityid": null + } }, "drawingTool": "esriFeatureEditToolPoint" - }, - { + }, + { "name": "Abandoned Water Service Connection", "description": "", "prototype": { - "attributes": { - "enabled": null, - "pointtype": "wServiceConnection", - "installdate": null, - "abandate": null, - "material": null, - "facilityid": null - } + "attributes": { + "enabled": null, + "pointtype": "wServiceConnection", + "installdate": null, + "abandate": null, + "material": null, + "facilityid": null + } }, "drawingTool": "esriFeatureEditToolPoint" - }, - { + }, + { "name": "Abandoned Water Hydrant", "description": "", "prototype": { - "attributes": { - "enabled": null, - "pointtype": "wHydrant", - "installdate": null, - "abandate": null, - "material": null, - "facilityid": null - } + "attributes": { + "enabled": null, + "pointtype": "wHydrant", + "installdate": null, + "abandate": null, + "material": null, + "facilityid": null + } }, "drawingTool": "esriFeatureEditToolPoint" - }, - { + }, + { "name": "Abandoned Water Pump", "description": "", "prototype": { - "attributes": { - "enabled": null, - "pointtype": "wPump", - "installdate": null, - "abandate": null, - "material": null, - "facilityid": null - } + "attributes": { + "enabled": null, + "pointtype": "wPump", + "installdate": null, + "abandate": null, + "material": null, + "facilityid": null + } }, "drawingTool": "esriFeatureEditToolPoint" - } - ], - "maxRecordCount": 1000, - "supportedQueryFormats": "JSON, geoJSON", - "capabilities": "Query,Create,Update,Delete,Uploads,Editing", - "useStandardizedQueries": true, - "standardMaxRecordCount": 32000, - "tileMaxRecordCount": 8000, - "maxRecordCountFactor": 1 - } \ No newline at end of file + } + ], + "maxRecordCount": 1000, + "supportedQueryFormats": "JSON, geoJSON", + "capabilities": "Query,Create,Update,Delete,Uploads,Editing", + "useStandardizedQueries": true, + "standardMaxRecordCount": 32000, + "tileMaxRecordCount": 8000, + "maxRecordCountFactor": 1 +} diff --git a/wwwroot/test/ArcGisFeatureServer/Water_Network_Multi/layerC.json b/wwwroot/test/ArcGisFeatureServer/Water_Network_Multi/layerC.json index ccbb1dbb49a..babb4c16cee 100644 --- a/wwwroot/test/ArcGisFeatureServer/Water_Network_Multi/layerC.json +++ b/wwwroot/test/ArcGisFeatureServer/Water_Network_Multi/layerC.json @@ -8,8 +8,6 @@ }, "exceededTransferLimit": false, "hasM": false, - "fields": [ - ], - "features": [ - ] + "fields": [], + "features": [] } diff --git a/wwwroot/test/ArcGisFeatureServer/styles/lines.json b/wwwroot/test/ArcGisFeatureServer/styles/lines.json index b4ae82041f6..f77360b27ce 100644 --- a/wwwroot/test/ArcGisFeatureServer/styles/lines.json +++ b/wwwroot/test/ArcGisFeatureServer/styles/lines.json @@ -51,9 +51,7 @@ "supportsPercentileStatistics": true, "supportsLod": true, "supportsQueryWithLodSR": false, - "supportedLodTypes": [ - "geohash" - ], + "supportedLodTypes": ["geohash"], "supportsReturningGeometryCentroid": false, "supportsReturningGeometryProperties": true, "supportsQueryWithDatumTransformation": true, @@ -83,12 +81,7 @@ "type": "uniqueValue", "field1": "id1", "defaultSymbol": { - "color": [ - 252, - 146, - 31, - 255 - ], + "color": [252, 146, 31, 255], "width": 4.5, "type": "esriSLS", "style": "esriSLSDash" @@ -98,12 +91,7 @@ { "value": "1", "symbol": { - "color": [ - 237, - 81, - 81, - 255 - ], + "color": [237, 81, 81, 255], "width": 1.5, "type": "esriSLS", "style": "esriSLSSolid" @@ -113,12 +101,7 @@ { "value": "2", "symbol": { - "color": [ - 20, - 158, - 206, - 255 - ], + "color": [20, 158, 206, 255], "width": 1.5, "type": "esriSLS", "style": "esriSLSDot" @@ -128,12 +111,7 @@ { "value": "3", "symbol": { - "color": [ - 167, - 198, - 54, - 255 - ], + "color": [167, 198, 54, 255], "width": 1.5, "type": "esriSLS", "style": "esriSLSDash" @@ -143,12 +121,7 @@ { "value": "4", "symbol": { - "color": [ - 158, - 85, - 156, - 255 - ], + "color": [158, 85, 156, 255], "width": 1.5, "type": "esriSLS", "style": "esriSLSDashDot" @@ -158,12 +131,7 @@ { "value": "5", "symbol": { - "color": [ - 252, - 146, - 31, - 255 - ], + "color": [252, 146, 31, 255], "width": 1.5, "type": "esriSLS", "style": "esriSLSDashDotDot" @@ -173,12 +141,7 @@ { "value": "6", "symbol": { - "color": [ - 255, - 222, - 62, - 255 - ], + "color": [255, 222, 62, 255], "width": 1.5, "type": "esriSLS", "style": "esriSLSLongDash" @@ -188,12 +151,7 @@ { "value": "7", "symbol": { - "color": [ - 247, - 137, - 216, - 255 - ], + "color": [247, 137, 216, 255], "width": 1.5, "type": "esriSLS", "style": "esriSLSLongDashDot" @@ -203,12 +161,7 @@ { "value": "8", "symbol": { - "color": [ - 183, - 129, - 74, - 255 - ], + "color": [183, 129, 74, 255], "width": 1.5, "type": "esriSLS", "style": "esriSLSShortDash" @@ -218,12 +171,7 @@ { "value": "9", "symbol": { - "color": [ - 60, - 175, - 153, - 255 - ], + "color": [60, 175, 153, 255], "width": 1.5, "type": "esriSLS", "style": "esriSLSShortDot" @@ -233,12 +181,7 @@ { "value": "10", "symbol": { - "color": [ - 107, - 107, - 214, - 255 - ], + "color": [107, 107, 214, 255], "width": 1.5, "type": "esriSLS", "style": "esriSLSShortDashDot" @@ -248,12 +191,7 @@ { "value": "11", "symbol": { - "color": [ - 181, - 71, - 121, - 255 - ], + "color": [181, 71, 121, 255], "width": 1.5, "type": "esriSLS", "style": "esriSLSShortDashDotDot" @@ -602,4 +540,4 @@ "tileMaxRecordCount": 4000, "maxRecordCountFactor": 1, "capabilities": "Query" -} \ No newline at end of file +} diff --git a/wwwroot/test/ArcGisMapServer/Dynamic_National_Map_Hydrography_and_Marine/layers.json b/wwwroot/test/ArcGisMapServer/Dynamic_National_Map_Hydrography_and_Marine/layers.json index 2c78f7c5376..1dea75ff45b 100644 --- a/wwwroot/test/ArcGisMapServer/Dynamic_National_Map_Hydrography_and_Marine/layers.json +++ b/wwwroot/test/ArcGisMapServer/Dynamic_National_Map_Hydrography_and_Marine/layers.json @@ -38,12 +38,7 @@ "useCodedValues": true, "symbol": { "type": "esriTS", - "color": [ - 78, - 78, - 78, - 255 - ], + "color": [78, 78, 78, 255], "backgroundColor": null, "borderLineColor": null, "verticalAlignment": "baseline", @@ -154,12 +149,7 @@ "useCodedValues": true, "symbol": { "type": "esriTS", - "color": [ - 78, - 78, - 78, - 255 - ], + "color": [78, 78, 78, 255], "backgroundColor": null, "borderLineColor": null, "verticalAlignment": "baseline", @@ -270,12 +260,7 @@ "useCodedValues": true, "symbol": { "type": "esriTS", - "color": [ - 78, - 78, - 78, - 255 - ], + "color": [78, 78, 78, 255], "backgroundColor": null, "borderLineColor": null, "verticalAlignment": "baseline", @@ -367,23 +352,13 @@ "symbol": { "type": "esriSMS", "style": "esriSMSCircle", - "color": [ - 0, - 0, - 0, - 255 - ], + "color": [0, 0, 0, 255], "size": 4, "angle": 0, "xoffset": 0, "yoffset": 0, "outline": { - "color": [ - 0, - 0, - 0, - 255 - ], + "color": [0, 0, 0, 255], "width": 1 } }, @@ -550,23 +525,13 @@ "symbol": { "type": "esriSMS", "style": "esriSMSCircle", - "color": [ - 0, - 0, - 0, - 0 - ], + "color": [0, 0, 0, 0], "size": 4, "angle": 0, "xoffset": 0, "yoffset": 0, "outline": { - "color": [ - 0, - 0, - 0, - 255 - ], + "color": [0, 0, 0, 255], "width": 1 } }, @@ -897,23 +862,13 @@ "symbol": { "type": "esriSMS", "style": "esriSMSCircle", - "color": [ - 0, - 0, - 0, - 0 - ], + "color": [0, 0, 0, 0], "size": 4, "angle": 0, "xoffset": 0, "yoffset": 0, "outline": { - "color": [ - 0, - 0, - 0, - 255 - ], + "color": [0, 0, 0, 255], "width": 1 } }, @@ -1128,23 +1083,13 @@ "symbol": { "type": "esriSMS", "style": "esriSMSCircle", - "color": [ - 0, - 0, - 0, - 0 - ], + "color": [0, 0, 0, 0], "size": 4, "angle": 0, "xoffset": 0, "yoffset": 0, "outline": { - "color": [ - 0, - 0, - 0, - 255 - ], + "color": [0, 0, 0, 255], "width": 1 } }, @@ -1359,23 +1304,13 @@ "symbol": { "type": "esriSMS", "style": "esriSMSCircle", - "color": [ - 0, - 0, - 0, - 255 - ], + "color": [0, 0, 0, 255], "size": 7, "angle": 0, "xoffset": 0, "yoffset": 0, "outline": { - "color": [ - 0, - 0, - 0, - 255 - ], + "color": [0, 0, 0, 255], "width": 1.0001 } }, @@ -1590,23 +1525,13 @@ "symbol": { "type": "esriSMS", "style": "esriSMSCircle", - "color": [ - 0, - 0, - 0, - 255 - ], + "color": [0, 0, 0, 255], "size": 6.9999, "angle": 0, "xoffset": 0, "yoffset": 0, "outline": { - "color": [ - 0, - 0, - 0, - 255 - ], + "color": [0, 0, 0, 255], "width": 1.0001 } }, @@ -1821,23 +1746,13 @@ "symbol": { "type": "esriSMS", "style": "esriSMSCircle", - "color": [ - 0, - 132, - 168, - 255 - ], + "color": [0, 132, 168, 255], "size": 6.9999, "angle": 0, "xoffset": 0, "yoffset": 0, "outline": { - "color": [ - 0, - 0, - 0, - 255 - ], + "color": [0, 0, 0, 255], "width": 1.4173 } }, @@ -2052,23 +1967,13 @@ "symbol": { "type": "esriSMS", "style": "esriSMSCircle", - "color": [ - 0, - 0, - 0, - 255 - ], + "color": [0, 0, 0, 255], "size": 7, "angle": 0, "xoffset": 0, "yoffset": 0, "outline": { - "color": [ - 0, - 0, - 0, - 255 - ], + "color": [0, 0, 0, 255], "width": 1.4173 } }, @@ -2283,23 +2188,13 @@ "symbol": { "type": "esriSMS", "style": "esriSMSCircle", - "color": [ - 0, - 0, - 0, - 255 - ], + "color": [0, 0, 0, 255], "size": 7, "angle": 0, "xoffset": 0, "yoffset": 0, "outline": { - "color": [ - 0, - 0, - 0, - 255 - ], + "color": [0, 0, 0, 255], "width": 1.4173 } }, @@ -2514,23 +2409,13 @@ "symbol": { "type": "esriSMS", "style": "esriSMSCircle", - "color": [ - 0, - 0, - 0, - 255 - ], + "color": [0, 0, 0, 255], "size": 7, "angle": 0, "xoffset": 0, "yoffset": 0, "outline": { - "color": [ - 0, - 0, - 0, - 255 - ], + "color": [0, 0, 0, 255], "width": 1.4173 } }, @@ -2745,23 +2630,13 @@ "symbol": { "type": "esriSMS", "style": "esriSMSCircle", - "color": [ - 0, - 0, - 0, - 255 - ], + "color": [0, 0, 0, 255], "size": 7, "angle": 0, "xoffset": 0, "yoffset": 0, "outline": { - "color": [ - 0, - 0, - 0, - 255 - ], + "color": [0, 0, 0, 255], "width": 1.4173 } }, @@ -2976,23 +2851,13 @@ "symbol": { "type": "esriSMS", "style": "esriSMSCircle", - "color": [ - 0, - 0, - 0, - 255 - ], + "color": [0, 0, 0, 255], "size": 7, "angle": 0, "xoffset": 0, "yoffset": 0, "outline": { - "color": [ - 0, - 0, - 0, - 255 - ], + "color": [0, 0, 0, 255], "width": 1.4173 } }, @@ -3207,23 +3072,13 @@ "symbol": { "type": "esriSMS", "style": "esriSMSCircle", - "color": [ - 0, - 0, - 0, - 0 - ], + "color": [0, 0, 0, 0], "size": 4, "angle": 0, "xoffset": 0, "yoffset": 0, "outline": { - "color": [ - 0, - 0, - 0, - 255 - ], + "color": [0, 0, 0, 255], "width": 1 } }, @@ -7124,12 +6979,7 @@ "symbol": { "type": "esriSLS", "style": "esriSLSSolid", - "color": [ - 255, - 255, - 190, - 255 - ], + "color": [255, 255, 190, 255], "width": 3 } }, @@ -7140,12 +6990,7 @@ "symbol": { "type": "esriSLS", "style": "esriSLSSolid", - "color": [ - 255, - 255, - 190, - 255 - ], + "color": [255, 255, 190, 255], "width": 3 } }, @@ -7156,12 +7001,7 @@ "symbol": { "type": "esriSLS", "style": "esriSLSSolid", - "color": [ - 255, - 255, - 190, - 255 - ], + "color": [255, 255, 190, 255], "width": 3 } }, @@ -7172,12 +7012,7 @@ "symbol": { "type": "esriSLS", "style": "esriSLSSolid", - "color": [ - 255, - 255, - 190, - 255 - ], + "color": [255, 255, 190, 255], "width": 3 } } @@ -7362,12 +7197,7 @@ "symbol": { "type": "esriSFS", "style": "esriSFSSolid", - "color": [ - 0, - 197, - 255, - 255 - ], + "color": [0, 197, 255, 255], "outline": { "type": "esriSLS", "style": "esriSLSSolid", @@ -7994,23 +7824,13 @@ "symbol": { "type": "esriSMS", "style": "esriSMSCircle", - "color": [ - 190, - 232, - 255, - 255 - ], + "color": [190, 232, 255, 255], "size": 5, "angle": 0, "xoffset": 0, "yoffset": 0, "outline": { - "color": [ - 0, - 0, - 0, - 255 - ], + "color": [0, 0, 0, 255], "width": 0 } }, @@ -8225,23 +8045,13 @@ "symbol": { "type": "esriSMS", "style": "esriSMSCircle", - "color": [ - 115, - 178, - 255, - 255 - ], + "color": [115, 178, 255, 255], "size": 5, "angle": 0, "xoffset": 0, "yoffset": 0, "outline": { - "color": [ - 0, - 0, - 0, - 255 - ], + "color": [0, 0, 0, 255], "width": 0 } }, @@ -8456,23 +8266,13 @@ "symbol": { "type": "esriSMS", "style": "esriSMSCircle", - "color": [ - 0, - 132, - 168, - 255 - ], + "color": [0, 132, 168, 255], "size": 5, "angle": 0, "xoffset": 0, "yoffset": 0, "outline": { - "color": [ - 0, - 0, - 0, - 255 - ], + "color": [0, 0, 0, 255], "width": 0 } }, @@ -8687,23 +8487,13 @@ "symbol": { "type": "esriSMS", "style": "esriSMSCircle", - "color": [ - 115, - 223, - 255, - 255 - ], + "color": [115, 223, 255, 255], "size": 5, "angle": 0, "xoffset": 0, "yoffset": 0, "outline": { - "color": [ - 0, - 0, - 0, - 255 - ], + "color": [0, 0, 0, 255], "width": 0 } }, @@ -8918,23 +8708,13 @@ "symbol": { "type": "esriSMS", "style": "esriSMSCircle", - "color": [ - 115, - 223, - 255, - 255 - ], + "color": [115, 223, 255, 255], "size": 5, "angle": 0, "xoffset": 0, "yoffset": 0, "outline": { - "color": [ - 0, - 0, - 0, - 255 - ], + "color": [0, 0, 0, 255], "width": 0 } }, @@ -9149,23 +8929,13 @@ "symbol": { "type": "esriSMS", "style": "esriSMSCircle", - "color": [ - 115, - 223, - 255, - 255 - ], + "color": [115, 223, 255, 255], "size": 5, "angle": 0, "xoffset": 0, "yoffset": 0, "outline": { - "color": [ - 0, - 0, - 0, - 255 - ], + "color": [0, 0, 0, 255], "width": 0 } }, @@ -9380,23 +9150,13 @@ "symbol": { "type": "esriSMS", "style": "esriSMSCircle", - "color": [ - 115, - 223, - 255, - 255 - ], + "color": [115, 223, 255, 255], "size": 5, "angle": 0, "xoffset": 0, "yoffset": 0, "outline": { - "color": [ - 0, - 0, - 0, - 255 - ], + "color": [0, 0, 0, 255], "width": 0 } }, @@ -9611,23 +9371,13 @@ "symbol": { "type": "esriSMS", "style": "esriSMSCircle", - "color": [ - 115, - 223, - 255, - 255 - ], + "color": [115, 223, 255, 255], "size": 5, "angle": 0, "xoffset": 0, "yoffset": 0, "outline": { - "color": [ - 0, - 0, - 0, - 255 - ], + "color": [0, 0, 0, 255], "width": 0 } }, @@ -10062,12 +9812,7 @@ "symbol": { "type": "esriSLS", "style": "esriSLSSolid", - "color": [ - 115, - 178, - 255, - 255 - ], + "color": [115, 178, 255, 255], "width": 1.5 }, "label": "Canal Lines", @@ -10320,12 +10065,7 @@ "symbol": { "type": "esriSLS", "style": "esriSLSSolid", - "color": [ - 0, - 77, - 168, - 255 - ], + "color": [0, 77, 168, 255], "width": 2 }, "label": "Dam Walls", @@ -10554,12 +10294,7 @@ "symbol": { "type": "esriSLS", "style": "esriSLSSolid", - "color": [ - 0, - 255, - 197, - 255 - ], + "color": [0, 255, 197, 255], "width": 2 }, "label": "Rapid Lines", @@ -10812,12 +10547,7 @@ "symbol": { "type": "esriSLS", "style": "esriSLSSolid", - "color": [ - 0, - 197, - 255, - 255 - ], + "color": [0, 197, 255, 255], "width": 3 }, "label": "", @@ -10979,12 +10709,7 @@ "symbol": { "type": "esriSLS", "style": "esriSLSSolid", - "color": [ - 127, - 127, - 205, - 255 - ], + "color": [127, 127, 205, 255], "width": 2 } } @@ -11130,21 +10855,11 @@ "symbol": { "type": "esriSFS", "style": "esriSFSSolid", - "color": [ - 212, - 232, - 247, - 255 - ], + "color": [212, 232, 247, 255], "outline": { "type": "esriSLS", "style": "esriSLSSolid", - "color": [ - 115, - 178, - 255, - 255 - ], + "color": [115, 178, 255, 255], "width": 0.2 } }, @@ -11390,21 +11105,11 @@ "symbol": { "type": "esriSFS", "style": "esriSFSSolid", - "color": [ - 212, - 232, - 247, - 255 - ], + "color": [212, 232, 247, 255], "outline": { "type": "esriSLS", "style": "esriSLSSolid", - "color": [ - 115, - 178, - 255, - 255 - ], + "color": [115, 178, 255, 255], "width": 0.2 } }, @@ -11580,21 +11285,11 @@ "symbol": { "type": "esriSFS", "style": "esriSFSSolid", - "color": [ - 212, - 232, - 247, - 255 - ], + "color": [212, 232, 247, 255], "outline": { "type": "esriSLS", "style": "esriSLSSolid", - "color": [ - 115, - 178, - 255, - 255 - ], + "color": [115, 178, 255, 255], "width": 0.2 } } @@ -11606,21 +11301,11 @@ "symbol": { "type": "esriSFS", "style": "esriSFSSolid", - "color": [ - 212, - 232, - 247, - 255 - ], + "color": [212, 232, 247, 255], "outline": { "type": "esriSLS", "style": "esriSLSSolid", - "color": [ - 115, - 178, - 255, - 255 - ], + "color": [115, 178, 255, 255], "width": 0.2 } } @@ -11632,21 +11317,11 @@ "symbol": { "type": "esriSFS", "style": "esriSFSSolid", - "color": [ - 230, - 242, - 222, - 255 - ], + "color": [230, 242, 222, 255], "outline": { "type": "esriSLS", "style": "esriSLSSolid", - "color": [ - 190, - 210, - 255, - 255 - ], + "color": [190, 210, 255, 255], "width": 0.4 } } @@ -11658,21 +11333,11 @@ "symbol": { "type": "esriSFS", "style": "esriSFSSolid", - "color": [ - 230, - 242, - 222, - 255 - ], + "color": [230, 242, 222, 255], "outline": { "type": "esriSLS", "style": "esriSLSSolid", - "color": [ - 190, - 210, - 255, - 255 - ], + "color": [190, 210, 255, 255], "width": 0.4 } } @@ -11684,21 +11349,11 @@ "symbol": { "type": "esriSFS", "style": "esriSFSSolid", - "color": [ - 230, - 242, - 222, - 255 - ], + "color": [230, 242, 222, 255], "outline": { "type": "esriSLS", "style": "esriSLSSolid", - "color": [ - 190, - 210, - 255, - 255 - ], + "color": [190, 210, 255, 255], "width": 0.4 } } @@ -11944,21 +11599,11 @@ "symbol": { "type": "esriSFS", "style": "esriSFSSolid", - "color": [ - 158, - 204, - 222, - 255 - ], + "color": [158, 204, 222, 255], "outline": { "type": "esriSLS", "style": "esriSLSSolid", - "color": [ - 102, - 153, - 205, - 255 - ], + "color": [102, 153, 205, 255], "width": 1 } }, @@ -12204,21 +11849,11 @@ "symbol": { "type": "esriSFS", "style": "esriSFSSolid", - "color": [ - 158, - 204, - 222, - 255 - ], + "color": [158, 204, 222, 255], "outline": { "type": "esriSLS", "style": "esriSLSSolid", - "color": [ - 102, - 153, - 205, - 255 - ], + "color": [102, 153, 205, 255], "width": 1 } }, @@ -12464,21 +12099,11 @@ "symbol": { "type": "esriSFS", "style": "esriSFSSolid", - "color": [ - 158, - 204, - 222, - 255 - ], + "color": [158, 204, 222, 255], "outline": { "type": "esriSLS", "style": "esriSLSSolid", - "color": [ - 102, - 153, - 205, - 255 - ], + "color": [102, 153, 205, 255], "width": 1 } }, @@ -12724,12 +12349,7 @@ "symbol": { "type": "esriSFS", "style": "esriSFSSolid", - "color": [ - 242, - 233, - 219, - 255 - ], + "color": [242, 233, 219, 255], "outline": { "type": "esriSLS", "style": "esriSLSSolid", @@ -12895,21 +12515,11 @@ "symbol": { "type": "esriSFS", "style": "esriSFSSolid", - "color": [ - 212, - 232, - 247, - 255 - ], + "color": [212, 232, 247, 255], "outline": { "type": "esriSLS", "style": "esriSLSSolid", - "color": [ - 115, - 178, - 255, - 255 - ], + "color": [115, 178, 255, 255], "width": 0.2 } } @@ -12921,21 +12531,11 @@ "symbol": { "type": "esriSFS", "style": "esriSFSSolid", - "color": [ - 212, - 232, - 247, - 255 - ], + "color": [212, 232, 247, 255], "outline": { "type": "esriSLS", "style": "esriSLSSolid", - "color": [ - 115, - 178, - 255, - 255 - ], + "color": [115, 178, 255, 255], "width": 0.2 } } @@ -12947,21 +12547,11 @@ "symbol": { "type": "esriSFS", "style": "esriSFSSolid", - "color": [ - 230, - 242, - 222, - 255 - ], + "color": [230, 242, 222, 255], "outline": { "type": "esriSLS", "style": "esriSLSSolid", - "color": [ - 190, - 210, - 255, - 255 - ], + "color": [190, 210, 255, 255], "width": 0.4 } } @@ -12973,21 +12563,11 @@ "symbol": { "type": "esriSFS", "style": "esriSFSSolid", - "color": [ - 230, - 242, - 222, - 255 - ], + "color": [230, 242, 222, 255], "outline": { "type": "esriSLS", "style": "esriSLSSolid", - "color": [ - 190, - 210, - 255, - 255 - ], + "color": [190, 210, 255, 255], "width": 0.4 } } @@ -13244,21 +12824,11 @@ "symbol": { "type": "esriSFS", "style": "esriSFSSolid", - "color": [ - 212, - 232, - 247, - 255 - ], + "color": [212, 232, 247, 255], "outline": { "type": "esriSLS", "style": "esriSLSSolid", - "color": [ - 115, - 178, - 255, - 255 - ], + "color": [115, 178, 255, 255], "width": 0.2 } } @@ -13270,21 +12840,11 @@ "symbol": { "type": "esriSFS", "style": "esriSFSSolid", - "color": [ - 212, - 232, - 247, - 255 - ], + "color": [212, 232, 247, 255], "outline": { "type": "esriSLS", "style": "esriSLSSolid", - "color": [ - 115, - 178, - 255, - 255 - ], + "color": [115, 178, 255, 255], "width": 0.2 } } @@ -13296,21 +12856,11 @@ "symbol": { "type": "esriSFS", "style": "esriSFSSolid", - "color": [ - 230, - 242, - 222, - 255 - ], + "color": [230, 242, 222, 255], "outline": { "type": "esriSLS", "style": "esriSLSSolid", - "color": [ - 190, - 210, - 255, - 255 - ], + "color": [190, 210, 255, 255], "width": 0.4 } } @@ -13322,21 +12872,11 @@ "symbol": { "type": "esriSFS", "style": "esriSFSSolid", - "color": [ - 230, - 242, - 222, - 255 - ], + "color": [230, 242, 222, 255], "outline": { "type": "esriSLS", "style": "esriSLSSolid", - "color": [ - 190, - 210, - 255, - 255 - ], + "color": [190, 210, 255, 255], "width": 0.4 } } @@ -13593,21 +13133,11 @@ "symbol": { "type": "esriSFS", "style": "esriSFSSolid", - "color": [ - 212, - 232, - 247, - 255 - ], + "color": [212, 232, 247, 255], "outline": { "type": "esriSLS", "style": "esriSLSSolid", - "color": [ - 115, - 178, - 255, - 255 - ], + "color": [115, 178, 255, 255], "width": 0.2 } } @@ -13864,21 +13394,11 @@ "symbol": { "type": "esriSFS", "style": "esriSFSSolid", - "color": [ - 212, - 232, - 247, - 255 - ], + "color": [212, 232, 247, 255], "outline": { "type": "esriSLS", "style": "esriSLSSolid", - "color": [ - 115, - 178, - 255, - 255 - ], + "color": [115, 178, 255, 255], "width": 0.2 } } @@ -13890,21 +13410,11 @@ "symbol": { "type": "esriSFS", "style": "esriSFSSolid", - "color": [ - 230, - 242, - 222, - 255 - ], + "color": [230, 242, 222, 255], "outline": { "type": "esriSLS", "style": "esriSLSSolid", - "color": [ - 190, - 210, - 255, - 255 - ], + "color": [190, 210, 255, 255], "width": 0.4 } } @@ -13916,21 +13426,11 @@ "symbol": { "type": "esriSFS", "style": "esriSFSSolid", - "color": [ - 212, - 232, - 247, - 255 - ], + "color": [212, 232, 247, 255], "outline": { "type": "esriSLS", "style": "esriSLSSolid", - "color": [ - 115, - 178, - 255, - 255 - ], + "color": [115, 178, 255, 255], "width": 0.2 } } @@ -14132,21 +13632,11 @@ "symbol": { "type": "esriSFS", "style": "esriSFSSolid", - "color": [ - 212, - 232, - 247, - 255 - ], + "color": [212, 232, 247, 255], "outline": { "type": "esriSLS", "style": "esriSLSSolid", - "color": [ - 115, - 178, - 255, - 255 - ], + "color": [115, 178, 255, 255], "width": 0.5 } } @@ -14158,21 +13648,11 @@ "symbol": { "type": "esriSFS", "style": "esriSFSSolid", - "color": [ - 212, - 232, - 247, - 255 - ], + "color": [212, 232, 247, 255], "outline": { "type": "esriSLS", "style": "esriSLSSolid", - "color": [ - 115, - 178, - 255, - 255 - ], + "color": [115, 178, 255, 255], "width": 0.5 } } @@ -14184,21 +13664,11 @@ "symbol": { "type": "esriSFS", "style": "esriSFSSolid", - "color": [ - 230, - 242, - 222, - 255 - ], + "color": [230, 242, 222, 255], "outline": { "type": "esriSLS", "style": "esriSLSSolid", - "color": [ - 190, - 210, - 255, - 255 - ], + "color": [190, 210, 255, 255], "width": 0.4 } } @@ -14210,21 +13680,11 @@ "symbol": { "type": "esriSFS", "style": "esriSFSSolid", - "color": [ - 230, - 242, - 222, - 255 - ], + "color": [230, 242, 222, 255], "outline": { "type": "esriSLS", "style": "esriSLSSolid", - "color": [ - 190, - 210, - 255, - 255 - ], + "color": [190, 210, 255, 255], "width": 0.4 } } @@ -14470,21 +13930,11 @@ "symbol": { "type": "esriSFS", "style": "esriSFSSolid", - "color": [ - 212, - 232, - 247, - 255 - ], + "color": [212, 232, 247, 255], "outline": { "type": "esriSLS", "style": "esriSLSSolid", - "color": [ - 115, - 178, - 255, - 255 - ], + "color": [115, 178, 255, 255], "width": 0.2 } }, @@ -14730,21 +14180,11 @@ "symbol": { "type": "esriSFS", "style": "esriSFSSolid", - "color": [ - 212, - 232, - 247, - 255 - ], + "color": [212, 232, 247, 255], "outline": { "type": "esriSLS", "style": "esriSLSSolid", - "color": [ - 115, - 178, - 255, - 255 - ], + "color": [115, 178, 255, 255], "width": 0.2 } }, @@ -14990,21 +14430,11 @@ "symbol": { "type": "esriSFS", "style": "esriSFSSolid", - "color": [ - 158, - 215, - 194, - 255 - ], + "color": [158, 215, 194, 255], "outline": { "type": "esriSLS", "style": "esriSLSSolid", - "color": [ - 0, - 77, - 168, - 255 - ], + "color": [0, 77, 168, 255], "width": 0.4 } }, @@ -15250,12 +14680,7 @@ "symbol": { "type": "esriSLS", "style": "esriSLSSolid", - "color": [ - 115, - 178, - 255, - 255 - ], + "color": [115, 178, 255, 255], "width": 1.5 }, "label": "", @@ -15457,12 +14882,7 @@ "symbol": { "type": "esriSLS", "style": "esriSLSSolid", - "color": [ - 89, - 153, - 230, - 255 - ], + "color": [89, 153, 230, 255], "width": 1.5 } }, @@ -15473,12 +14893,7 @@ "symbol": { "type": "esriSLS", "style": "esriSLSSolid", - "color": [ - 89, - 153, - 230, - 255 - ], + "color": [89, 153, 230, 255], "width": 1.5 } }, @@ -15489,12 +14904,7 @@ "symbol": { "type": "esriSLS", "style": "esriSLSSolid", - "color": [ - 89, - 153, - 230, - 255 - ], + "color": [89, 153, 230, 255], "width": 1 } }, @@ -15505,12 +14915,7 @@ "symbol": { "type": "esriSLS", "style": "esriSLSSolid", - "color": [ - 89, - 153, - 230, - 255 - ], + "color": [89, 153, 230, 255], "width": 1 } }, @@ -15521,12 +14926,7 @@ "symbol": { "type": "esriSLS", "style": "esriSLSSolid", - "color": [ - 89, - 153, - 230, - 255 - ], + "color": [89, 153, 230, 255], "width": 1 } }, @@ -15537,12 +14937,7 @@ "symbol": { "type": "esriSLS", "style": "esriSLSSolid", - "color": [ - 89, - 153, - 230, - 255 - ], + "color": [89, 153, 230, 255], "width": 1 } }, @@ -15553,12 +14948,7 @@ "symbol": { "type": "esriSLS", "style": "esriSLSSolid", - "color": [ - 89, - 153, - 230, - 255 - ], + "color": [89, 153, 230, 255], "width": 1 } } @@ -15760,12 +15150,7 @@ "symbol": { "type": "esriSLS", "style": "esriSLSSolid", - "color": [ - 89, - 153, - 230, - 255 - ], + "color": [89, 153, 230, 255], "width": 1.5 } }, @@ -15776,12 +15161,7 @@ "symbol": { "type": "esriSLS", "style": "esriSLSSolid", - "color": [ - 89, - 153, - 230, - 255 - ], + "color": [89, 153, 230, 255], "width": 1 } }, @@ -15792,12 +15172,7 @@ "symbol": { "type": "esriSLS", "style": "esriSLSSolid", - "color": [ - 89, - 153, - 230, - 255 - ], + "color": [89, 153, 230, 255], "width": 1 } } @@ -16061,12 +15436,7 @@ "symbol": { "type": "esriSLS", "style": "esriSLSSolid", - "color": [ - 89, - 153, - 230, - 255 - ], + "color": [89, 153, 230, 255], "width": 1.5 } }, @@ -16077,12 +15447,7 @@ "symbol": { "type": "esriSLS", "style": "esriSLSSolid", - "color": [ - 89, - 153, - 230, - 255 - ], + "color": [89, 153, 230, 255], "width": 1 } }, @@ -16093,12 +15458,7 @@ "symbol": { "type": "esriSLS", "style": "esriSLSSolid", - "color": [ - 89, - 153, - 230, - 255 - ], + "color": [89, 153, 230, 255], "width": 1 } } @@ -16351,21 +15711,11 @@ "symbol": { "type": "esriSFS", "style": "esriSFSSolid", - "color": [ - 219, - 227, - 255, - 255 - ], + "color": [219, 227, 255, 255], "outline": { "type": "esriSLS", "style": "esriSLSNull", - "color": [ - 110, - 110, - 110, - 255 - ], + "color": [110, 110, 110, 255], "width": 0 } }, @@ -16611,21 +15961,11 @@ "symbol": { "type": "esriSFS", "style": "esriSFSSolid", - "color": [ - 133, - 212, - 196, - 255 - ], + "color": [133, 212, 196, 255], "outline": { "type": "esriSLS", "style": "esriSLSNull", - "color": [ - 110, - 110, - 110, - 255 - ], + "color": [110, 110, 110, 255], "width": 0 } }, @@ -16871,12 +16211,7 @@ "symbol": { "type": "esriSFS", "style": "esriSFSSolid", - "color": [ - 230, - 230, - 230, - 255 - ], + "color": [230, 230, 230, 255], "outline": { "type": "esriSLS", "style": "esriSLSNull", @@ -17126,21 +16461,11 @@ "symbol": { "type": "esriSFS", "style": "esriSFSSolid", - "color": [ - 196, - 214, - 215, - 255 - ], + "color": [196, 214, 215, 255], "outline": { "type": "esriSLS", "style": "esriSLSNull", - "color": [ - 110, - 110, - 110, - 255 - ], + "color": [110, 110, 110, 255], "width": 0 } }, diff --git a/wwwroot/test/ArcGisMapServer/Redlands_Emergency_Vehicles/17.json b/wwwroot/test/ArcGisMapServer/Redlands_Emergency_Vehicles/17.json index bbfa713ca4e..222b998428f 100644 --- a/wwwroot/test/ArcGisMapServer/Redlands_Emergency_Vehicles/17.json +++ b/wwwroot/test/ArcGisMapServer/Redlands_Emergency_Vehicles/17.json @@ -68,4 +68,4 @@ "supportsSqlExpression": false }, "supportsCoordinatesQuantization": true -} \ No newline at end of file +} diff --git a/wwwroot/test/ArcGisMapServer/Redlands_Emergency_Vehicles/mapServer.json b/wwwroot/test/ArcGisMapServer/Redlands_Emergency_Vehicles/mapServer.json index 71ab96a71c1..f6a7c1c8d2e 100644 --- a/wwwroot/test/ArcGisMapServer/Redlands_Emergency_Vehicles/mapServer.json +++ b/wwwroot/test/ArcGisMapServer/Redlands_Emergency_Vehicles/mapServer.json @@ -44,10 +44,7 @@ "name": "911 Calls Hotspot", "parentLayerId": -1, "defaultVisibility": true, - "subLayerIds": [ - 23, - 27 - ], + "subLayerIds": [23, 27], "minScale": 0, "maxScale": 0, "type": "Group Layer" @@ -145,4 +142,4 @@ "maxImageHeight": 4096, "maxImageWidth": 4096, "supportedExtensions": "FeatureServer" -} \ No newline at end of file +} diff --git a/wwwroot/test/ArcGisMapServer/Residential_Dwelling_Density/mapServer.json b/wwwroot/test/ArcGisMapServer/Residential_Dwelling_Density/mapServer.json index cf6ee17eeef..ebe77dea0ac 100644 --- a/wwwroot/test/ArcGisMapServer/Residential_Dwelling_Density/mapServer.json +++ b/wwwroot/test/ArcGisMapServer/Residential_Dwelling_Density/mapServer.json @@ -43,9 +43,7 @@ "maxScale": 3000001 } ], - "tables": [ - - ], + "tables": [], "spatialReference": { "wkid": 3112, "latestWkid": 3112 @@ -93,4 +91,4 @@ "maxImageHeight": 4096, "maxImageWidth": 4096, "supportedExtensions": "WCSServer, WMSServer" -} \ No newline at end of file +} diff --git a/wwwroot/test/ArcGisMapServer/time-enabled.json b/wwwroot/test/ArcGisMapServer/time-enabled.json index 491f0ec82d9..0a2e7a6a51d 100644 --- a/wwwroot/test/ArcGisMapServer/time-enabled.json +++ b/wwwroot/test/ArcGisMapServer/time-enabled.json @@ -1,153 +1,150 @@ { -"currentVersion": 10.71, -"cimVersion": "2.4.0", -"serviceDescription": "", -"mapName": "Cadastre History", -"description": "", -"copyrightText": "", -"supportsDynamicLayers": true, -"layers": [ -{ -"id": 0, -"name": "WaterFeature", -"parentLayerId": -1, -"defaultVisibility": true, -"subLayerIds": null, -"minScale": 100000, -"maxScale": 0, -"type": "Feature Layer", -"geometryType": "esriGeometryPolygon", -"supportsDynamicLegends": true -}, -{ -"id": 1, -"name": "Unidentified", -"parentLayerId": -1, -"defaultVisibility": true, -"subLayerIds": null, -"minScale": 100000, -"maxScale": 0, -"type": "Feature Layer", -"geometryType": "esriGeometryPolygon", -"supportsDynamicLegends": true -}, -{ -"id": 2, -"name": "Road", -"parentLayerId": -1, -"defaultVisibility": true, -"subLayerIds": null, -"minScale": 100000, -"maxScale": 0, -"type": "Feature Layer", -"geometryType": "esriGeometryPolygon", -"supportsDynamicLegends": true -}, -{ -"id": 3, -"name": "Lot_M", -"parentLayerId": -1, -"defaultVisibility": true, -"subLayerIds": null, -"minScale": 100000, -"maxScale": 0, -"type": "Feature Layer", -"geometryType": "esriGeometryPolygon", -"supportsDynamicLegends": true -} -], -"tables": [], -"spatialReference": { -"wkid": 102100, -"latestWkid": 3857, -"xyTolerance": 0.001, -"zTolerance": 0.001, -"mTolerance": 0.001, -"falseX": -20037700, -"falseY": -30241100, -"xyUnits": 10000, -"falseZ": -100000, -"zUnits": 10000, -"falseM": -100000, -"mUnits": 10000 -}, -"singleFusedMapCache": false, -"initialExtent": { -"xmin": 15465429.187802188, -"ymin": -4826934.540008077, -"xmax": 17939758.757322818, -"ymax": -2942569.672116922, -"spatialReference": { -"wkid": 102100, -"latestWkid": 3857, -"xyTolerance": 0.001, -"zTolerance": 0.001, -"mTolerance": 0.001, -"falseX": -20037700, -"falseY": -30241100, -"xyUnits": 10000, -"falseZ": -100000, -"zUnits": 10000, -"falseM": -100000, -"mUnits": 10000 -} -}, -"fullExtent": { -"xmin": 15695966.380874999, -"ymin": -4526366.9473749995, -"xmax": 17738871.418250002, -"ymax": -3264541.9235000014, -"spatialReference": { -"wkid": 102100, -"latestWkid": 3857, -"xyTolerance": 0.001, -"zTolerance": 0.001, -"mTolerance": 0.001, -"falseX": -20037700, -"falseY": -30241100, -"xyUnits": 10000, -"falseZ": -100000, -"zUnits": 10000, -"falseM": -100000, -"mUnits": 10000 + "currentVersion": 10.71, + "cimVersion": "2.4.0", + "serviceDescription": "", + "mapName": "Cadastre History", + "description": "", + "copyrightText": "", + "supportsDynamicLayers": true, + "layers": [ + { + "id": 0, + "name": "WaterFeature", + "parentLayerId": -1, + "defaultVisibility": true, + "subLayerIds": null, + "minScale": 100000, + "maxScale": 0, + "type": "Feature Layer", + "geometryType": "esriGeometryPolygon", + "supportsDynamicLegends": true + }, + { + "id": 1, + "name": "Unidentified", + "parentLayerId": -1, + "defaultVisibility": true, + "subLayerIds": null, + "minScale": 100000, + "maxScale": 0, + "type": "Feature Layer", + "geometryType": "esriGeometryPolygon", + "supportsDynamicLegends": true + }, + { + "id": 2, + "name": "Road", + "parentLayerId": -1, + "defaultVisibility": true, + "subLayerIds": null, + "minScale": 100000, + "maxScale": 0, + "type": "Feature Layer", + "geometryType": "esriGeometryPolygon", + "supportsDynamicLegends": true + }, + { + "id": 3, + "name": "Lot_M", + "parentLayerId": -1, + "defaultVisibility": true, + "subLayerIds": null, + "minScale": 100000, + "maxScale": 0, + "type": "Feature Layer", + "geometryType": "esriGeometryPolygon", + "supportsDynamicLegends": true + } + ], + "tables": [], + "spatialReference": { + "wkid": 102100, + "latestWkid": 3857, + "xyTolerance": 0.001, + "zTolerance": 0.001, + "mTolerance": 0.001, + "falseX": -20037700, + "falseY": -30241100, + "xyUnits": 10000, + "falseZ": -100000, + "zUnits": 10000, + "falseM": -100000, + "mUnits": 10000 + }, + "singleFusedMapCache": false, + "initialExtent": { + "xmin": 15465429.187802188, + "ymin": -4826934.540008077, + "xmax": 17939758.757322818, + "ymax": -2942569.672116922, + "spatialReference": { + "wkid": 102100, + "latestWkid": 3857, + "xyTolerance": 0.001, + "zTolerance": 0.001, + "mTolerance": 0.001, + "falseX": -20037700, + "falseY": -30241100, + "xyUnits": 10000, + "falseZ": -100000, + "zUnits": 10000, + "falseM": -100000, + "mUnits": 10000 + } + }, + "fullExtent": { + "xmin": 15695966.380874999, + "ymin": -4526366.9473749995, + "xmax": 17738871.418250002, + "ymax": -3264541.9235000014, + "spatialReference": { + "wkid": 102100, + "latestWkid": 3857, + "xyTolerance": 0.001, + "zTolerance": 0.001, + "mTolerance": 0.001, + "falseX": -20037700, + "falseY": -30241100, + "xyUnits": 10000, + "falseZ": -100000, + "zUnits": 10000, + "falseM": -100000, + "mUnits": 10000 + } + }, + "timeInfo": { + "timeExtent": [1101462202000, 1572789600000], + "timeReference": null, + "timeRelation": "esriTimeRelationOverlaps", + "defaultTimeInterval": 33, + "defaultTimeIntervalUnits": "esriTimeUnitsYears", + "defaultTimeWindow": 0, + "defaultTimeWindowUnits": "esriTimeUnitsYears", + "hasLiveData": false + }, + "minScale": 100000, + "maxScale": 0, + "units": "esriMeters", + "supportedImageFormatTypes": "PNG32,PNG24,PNG,JPG,DIB,TIFF,EMF,PS,PDF,GIF,SVG,SVGZ,BMP", + "documentInfo": { + "Title": "Map", + "Author": "", + "Comments": "", + "Subject": "", + "Category": "", + "AntialiasingMode": "Fast", + "TextAntialiasingMode": "Force", + "Keywords": "lot,cad,cadastre" + }, + "capabilities": "Map,Query,Data", + "supportedQueryFormats": "JSON, geoJSON, PBF", + "exportTilesAllowed": false, + "supportsDatumTransformation": true, + "archivingInfo": { + "supportsHistoricMoment": false + }, + "maxRecordCount": 10000, + "maxImageHeight": 4096, + "maxImageWidth": 4096, + "supportedExtensions": "WMSServer" } -}, -"timeInfo": { -"timeExtent": [ -1101462202000, -1572789600000 -], -"timeReference": null, -"timeRelation": "esriTimeRelationOverlaps", -"defaultTimeInterval": 33, -"defaultTimeIntervalUnits": "esriTimeUnitsYears", -"defaultTimeWindow": 0, -"defaultTimeWindowUnits": "esriTimeUnitsYears", -"hasLiveData": false -}, -"minScale": 100000, -"maxScale": 0, -"units": "esriMeters", -"supportedImageFormatTypes": "PNG32,PNG24,PNG,JPG,DIB,TIFF,EMF,PS,PDF,GIF,SVG,SVGZ,BMP", -"documentInfo": { -"Title": "Map", -"Author": "", -"Comments": "", -"Subject": "", -"Category": "", -"AntialiasingMode": "Fast", -"TextAntialiasingMode": "Force", -"Keywords": "lot,cad,cadastre" -}, -"capabilities": "Map,Query,Data", -"supportedQueryFormats": "JSON, geoJSON, PBF", -"exportTilesAllowed": false, -"supportsDatumTransformation": true, -"archivingInfo": { -"supportsHistoricMoment": false -}, -"maxRecordCount": 10000, -"maxImageHeight": 4096, -"maxImageWidth": 4096, -"supportedExtensions": "WMSServer" -} \ No newline at end of file diff --git a/wwwroot/test/ArcGisPortal/group-2dfa6cfea7774d9585700059e1fc8219-items-search.json b/wwwroot/test/ArcGisPortal/group-2dfa6cfea7774d9585700059e1fc8219-items-search.json index e2f1418a922..c15ff39799f 100644 --- a/wwwroot/test/ArcGisPortal/group-2dfa6cfea7774d9585700059e1fc8219-items-search.json +++ b/wwwroot/test/ArcGisPortal/group-2dfa6cfea7774d9585700059e1fc8219-items-search.json @@ -1,200 +1,169 @@ { - "query": "(type:\"Scene Service\" OR type:\"Feature Service\" OR type:\"Map Service\" OR type:\"WMS\" OR type:\"WFS\" OR type:\"KML\")", - "total": 3, - "start": 1, - "num": 100, - "nextStart": -1, - "results": [ - { - "id": "8046fc86421e4316b141b13d9b2aada6", - "owner": "ss-sds", - "created": 1554092040339, - "modified": 1572234603634, - "guid": null, - "name": null, - "title": "NSW Topographic Maps", - "type": "Map Service", - "typeKeywords": [ - "ArcGIS Server", - "Data", - "Map Service", - "Service", - "Singlelayer", - "Tiled" - ], - "description": "
    The NSW Topographic Map Cache Web\nService provides rasterised topographic\nmaps in a seamless mosaic view covering\nNSW. This service generally contains the\ncurrent standard Topographic maps from\nthe 1:100,000; 1:50,000 and 1:25,000 series.\nWhere coverage exists at multiple scales, the\nlargest scale map is displayed. 

    The sourced Geotiff file is cropped to\nthe map window only, with no legend,\ndisclaimers, map grid, scale bar or north\narrow displayed. The NSW Topographic Map\nseries is derived from Spatial Services’ Digital\nTopographic Database (DTDB). 

    Information viewed in this web service\nincludes:\n• roads\n• points of interest\n• localities\n• contours\n• drainage\n• cultural data\n• parks and forests\n• property boundaries. 

    This web service allows users to easily\nintegrate the topographic map cache\ncoverage for NSW into Open Geospatial\nConsortium (OGC) compliant spatial\nplatforms and applications. 

    The NSW Topographic Map Cache web\nservice can be used for mapping, emergency\nservices, natural resource management,\ngeosciences and sustainable development. 

    This service ensures users are able to\nconsume topographic map data without the\nrequirement of hosting the map files on their\nown servers.\nIt is important to note that depictions of\nroads and tracks do not necessarily indicate\na public right of way. 

    Unlawful entry upon\nprivate land or a restricted area and/or wilful\ndamage of property such as gates and fences\nexposes offenders to legal prosecution. 


    Metadata

    TypeWeb Map Service (WMS)
    Update FrequencyAs required
    Contact DetailsSS-SDS@finance.nsw.gov.au
    Relationship to Themes and DatasetsAdministrative Boundaries, Elevation and Depth, Land Cover and Land Use, Land Parcel and Land Property, Place Names, Transport and Water Themes.
    AccuracyThe web service is built as per DFSI Spatial Services's project specification.
    WMS is OGC protocol compatible and suitable for consumption by common GIS platforms
    Standards and SpecificationsOpen Geospatial Consortium (OGC)\ncompliant and suitable for consumption by\ncommon GIS platforms.\nThis dataset is compliant with the NSW\nFoundation Spatial Data Framework and its\nspecifications.
    DistributorSpatial Services | Department of Finance, Services and Innovation
    Dataset Producers and ContributorsSpatial Services | Department of Finance, Services and Innovation


    ", - "tags": [ - "DFSI", - "Spatial Services", - "Topographic Map", - "Map", - "Topography" - ], - "snippet": "The NSW Topographic Map Cache Web Service provides rasterised topographic maps in a seamless mosaic view covering NSW. ", - "thumbnail": "thumbnail/ago_downloaded.png", - "documentation": null, - "extent": [ - [ - 140.9993, - -37.5083 - ], - [ - 159.2567, - -28.125 - ] - ], - "categories": [], - "spatialReference": "102100", - "accessInformation": "© Department of Finance, Services & Innovation 2018", - "licenseInfo": "

    Spatial Services, a division of the Department of Finance,\nServices and Innovation (DFSI) creates and manages\nIntellectual Property for the Crown in right of New South\nWales. 

    Acquisition of this data is subject to the customer entering\ninto an appropriate Creative Commons license agreement. 

    To the extent that Creative Commons licensing applies,\nall data and other material produced by Spatial Services\nconstitutes Crown copyright.\nSpatial Services has applied the Creative Commons\nAttribution 3.0 Australia Licence. Spatial Services asserts the\nright to be attributed as author of the original material in the\nfollowing manner: 

    © Spatial Services 2019

     Additional terms for the use of Spatial Services material\nAny derived products which are created will be required to\nclearly mark the date that any extractions from the Spatial\nServices Spatial Database occurred.\nAll Intellectual Property which is owned by Spatial Services\nshould only be loaded on any external cloud platforms if\nSpatial Services’ Intellectual Property remains unchanged,\nmaintained and preserved.

    ", - "culture": "en-gb", - "properties": null, - "url": "https://maps.six.nsw.gov.au/arcgis/rest/services/public/NSW_Topo_Map/MapServer", - "proxyFilter": null, - "access": "public", - "size": -1, - "appCategories": [], - "industries": [], - "languages": [], - "largeThumbnail": null, - "banner": null, - "screenshots": [], - "listed": false, - "numComments": 0, - "numRatings": 0, - "avgRating": 0, - "numViews": 276, - "groupCategories": [], - "scoreCompleteness": 100, - "groupDesignations": null - }, - { - "id": "cc143dfef1124e6fb5f84d1d5be840f7", - "owner": "ss-sds", - "created": 1554092073769, - "modified": 1582241235671, - "guid": null, - "name": null, - "title": "NSW Special Project Orthorectified Imagery", - "type": "Map Service", - "typeKeywords": [ - "ArcGIS Server", - "Data", - "Map Service", - "Service", - "Singlelayer", - "Tiled" - ], - "description": "Special project orthorectified imagery relates to imagery\ncaptured for emergency response purpose or to support\ndecision making in exceptional cases. The purposes for this\nimagery can include; floods, storms, hail, fire, tidal surges and\ndrought amongst others. This imagery may have been flown\nat a variety of image resolutions and the coverage extents\nare dependent on the nature of the situation and the specific\ntechnical requirements of the response activity.\nThe coverage of special project orthorectified imagery for\nNSW is available as variable window mosaic images at\nvarying GSD’s. 

    Dataset uses This product has been produced to identify visible land cover\nfeatures and terrain to support Spatial Services along with\nlocal and state government programs, including Emergency\nServices. This product is used on a whole of government\nbasis as a visible record of the landscape at a given point in\ntime, allowing for comparative analysis to be carried out over\ndifferent epochs.
    Spatial Services captures and updates this product from\nadvice provided by stakeholders primarily through Imagery\nNSW, a working group of the Location Leadership Group.


    Metadata

    TypeWeb Map Service (WMS)
    Update FrequencyAs required
    Contact DetailsSS-SDS@finance.nsw.gov.au
    Relationship to Themes and DatasetsImagery Theme
    AccuracyThe web service is built as per DFSI Spatial Services's project specification.
    WMS is OGC protocol compatible and suitable for consumption by common GIS platforms
    Standards and SpecificationsOGC compliant and suitable for consumption by common GIS platforms. This dataset is compliant with the NSW Foundation Spatial Data Framework and its specifications.
    DistributorSpatial Services | Department of Customer Service
    Dataset Producers and ContributorsSpatial Services | Department of Customer Service
    ", - "tags": [ - "Imagery", - "Flood", - "Fire" - ], - "snippet": "Event imagery for NSW", - "thumbnail": "thumbnail/ago_downloaded.png", - "documentation": null, - "extent": [ - [ - 143.3335, - -35.1516 - ], - [ - 153.3799, - -29.0601 - ] - ], - "categories": [ - "/Categories/Imagery" - ], - "spatialReference": "102100", - "accessInformation": "© Department of Finance, Services & Innovation 2018", - "licenseInfo": "Spatial Services, a division of the Department of Finance,\nServices and Innovation (DFSI) creates and manages\nIntellectual Property for the Crown in right of New South\nWales.\nAcquisition of this data is subject to the customer entering\ninto an appropriate Creative Commons license agreement.\nTo the extent that Creative Commons licensing applies,\nall data and other material produced by Spatial Services\nconstitutes Crown copyright.\nSpatial Services has applied the Creative Commons\nAttribution 3.0 Australia Licence. Spatial Services asserts the\nright to be attributed as author of the original material in the\nfollowing manner:\n© Spatial Services [date of extraction]\nAdditional terms for the use of Spatial Services material\nAny derived products which are created will be required to\nclearly mark the date that any extractions from the Spatial\nServices Spatial Database occurred.\nAll Intellectual Property which is owned by Spatial Services\nshould only be loaded on any external cloud platforms if\nSpatial Services’ Intellectual Property remains unchanged,\nmaintained and preserved.", - "culture": "en-us", - "properties": null, - "url": "https://maps.six.nsw.gov.au/arcgis/rest/services/sixmaps/EventImagery/MapServer", - "proxyFilter": null, - "access": "public", - "size": -1, - "appCategories": [], - "industries": [], - "languages": [], - "largeThumbnail": null, - "banner": null, - "screenshots": [], - "listed": false, - "numComments": 0, - "numRatings": 0, - "avgRating": 0, - "numViews": 307, - "groupCategories": [], - "scoreCompleteness": 90, - "groupDesignations": null - }, - { - "id": "1f1148e562ce4a97ad5f0ec6a09fe79b", - "owner": "ss-sds", - "created": 1554092101294, - "modified": 1582243596414, - "guid": null, - "name": null, - "title": "Event Imagery Colour Infra Red", - "type": "Map Service", - "typeKeywords": [ - "ArcGIS Server", - "Data", - "Map Service", - "Metadata", - "Service", - "Singlelayer", - "Tiled" - ], - "description": "Event imagery for NSW in colour infra red", - "tags": [ - "Imagery", - "Flood", - "Fire", - "CIR" - ], - "snippet": "Event imagery for NSW in colour infra red", - "thumbnail": null, - "documentation": null, - "extent": [ - [ - 143.3335, - -35.1516 - ], - [ - 153.3799, - -29.0601 - ] - ], - "categories": [ - "/Categories/Imagery" - ], - "spatialReference": "102100", - "accessInformation": "© Department of Finance, Services & Innovation 2018", - "licenseInfo": null, - "culture": "en-us", - "properties": null, - "url": "https://maps.six.nsw.gov.au/arcgis/rest/services/sixmaps/EventImageryCIR/MapServer", - "proxyFilter": null, - "access": "public", - "size": -1, - "appCategories": [], - "industries": [], - "languages": [], - "largeThumbnail": null, - "banner": null, - "screenshots": [], - "listed": false, - "numComments": 0, - "numRatings": 0, - "avgRating": 0, - "numViews": 87, - "groupCategories": [], - "scoreCompleteness": 53, - "groupDesignations": null - } - ] -} \ No newline at end of file + "query": "(type:\"Scene Service\" OR type:\"Feature Service\" OR type:\"Map Service\" OR type:\"WMS\" OR type:\"WFS\" OR type:\"KML\")", + "total": 3, + "start": 1, + "num": 100, + "nextStart": -1, + "results": [ + { + "id": "8046fc86421e4316b141b13d9b2aada6", + "owner": "ss-sds", + "created": 1554092040339, + "modified": 1572234603634, + "guid": null, + "name": null, + "title": "NSW Topographic Maps", + "type": "Map Service", + "typeKeywords": [ + "ArcGIS Server", + "Data", + "Map Service", + "Service", + "Singlelayer", + "Tiled" + ], + "description": "
    The NSW Topographic Map Cache Web\nService provides rasterised topographic\nmaps in a seamless mosaic view covering\nNSW. This service generally contains the\ncurrent standard Topographic maps from\nthe 1:100,000; 1:50,000 and 1:25,000 series.\nWhere coverage exists at multiple scales, the\nlargest scale map is displayed. 

    The sourced Geotiff file is cropped to\nthe map window only, with no legend,\ndisclaimers, map grid, scale bar or north\narrow displayed. The NSW Topographic Map\nseries is derived from Spatial Services’ Digital\nTopographic Database (DTDB). 

    Information viewed in this web service\nincludes:\n• roads\n• points of interest\n• localities\n• contours\n• drainage\n• cultural data\n• parks and forests\n• property boundaries. 

    This web service allows users to easily\nintegrate the topographic map cache\ncoverage for NSW into Open Geospatial\nConsortium (OGC) compliant spatial\nplatforms and applications. 

    The NSW Topographic Map Cache web\nservice can be used for mapping, emergency\nservices, natural resource management,\ngeosciences and sustainable development. 

    This service ensures users are able to\nconsume topographic map data without the\nrequirement of hosting the map files on their\nown servers.\nIt is important to note that depictions of\nroads and tracks do not necessarily indicate\na public right of way. 

    Unlawful entry upon\nprivate land or a restricted area and/or wilful\ndamage of property such as gates and fences\nexposes offenders to legal prosecution. 


    Metadata

    TypeWeb Map Service (WMS)
    Update FrequencyAs required
    Contact DetailsSS-SDS@finance.nsw.gov.au
    Relationship to Themes and DatasetsAdministrative Boundaries, Elevation and Depth, Land Cover and Land Use, Land Parcel and Land Property, Place Names, Transport and Water Themes.
    AccuracyThe web service is built as per DFSI Spatial Services's project specification.
    WMS is OGC protocol compatible and suitable for consumption by common GIS platforms
    Standards and SpecificationsOpen Geospatial Consortium (OGC)\ncompliant and suitable for consumption by\ncommon GIS platforms.\nThis dataset is compliant with the NSW\nFoundation Spatial Data Framework and its\nspecifications.
    DistributorSpatial Services | Department of Finance, Services and Innovation
    Dataset Producers and ContributorsSpatial Services | Department of Finance, Services and Innovation


    ", + "tags": [ + "DFSI", + "Spatial Services", + "Topographic Map", + "Map", + "Topography" + ], + "snippet": "The NSW Topographic Map Cache Web Service provides rasterised topographic maps in a seamless mosaic view covering NSW. ", + "thumbnail": "thumbnail/ago_downloaded.png", + "documentation": null, + "extent": [ + [140.9993, -37.5083], + [159.2567, -28.125] + ], + "categories": [], + "spatialReference": "102100", + "accessInformation": "© Department of Finance, Services & Innovation 2018", + "licenseInfo": "

    Spatial Services, a division of the Department of Finance,\nServices and Innovation (DFSI) creates and manages\nIntellectual Property for the Crown in right of New South\nWales. 

    Acquisition of this data is subject to the customer entering\ninto an appropriate Creative Commons license agreement. 

    To the extent that Creative Commons licensing applies,\nall data and other material produced by Spatial Services\nconstitutes Crown copyright.\nSpatial Services has applied the Creative Commons\nAttribution 3.0 Australia Licence. Spatial Services asserts the\nright to be attributed as author of the original material in the\nfollowing manner: 

    © Spatial Services 2019

     Additional terms for the use of Spatial Services material\nAny derived products which are created will be required to\nclearly mark the date that any extractions from the Spatial\nServices Spatial Database occurred.\nAll Intellectual Property which is owned by Spatial Services\nshould only be loaded on any external cloud platforms if\nSpatial Services’ Intellectual Property remains unchanged,\nmaintained and preserved.

    ", + "culture": "en-gb", + "properties": null, + "url": "https://maps.six.nsw.gov.au/arcgis/rest/services/public/NSW_Topo_Map/MapServer", + "proxyFilter": null, + "access": "public", + "size": -1, + "appCategories": [], + "industries": [], + "languages": [], + "largeThumbnail": null, + "banner": null, + "screenshots": [], + "listed": false, + "numComments": 0, + "numRatings": 0, + "avgRating": 0, + "numViews": 276, + "groupCategories": [], + "scoreCompleteness": 100, + "groupDesignations": null + }, + { + "id": "cc143dfef1124e6fb5f84d1d5be840f7", + "owner": "ss-sds", + "created": 1554092073769, + "modified": 1582241235671, + "guid": null, + "name": null, + "title": "NSW Special Project Orthorectified Imagery", + "type": "Map Service", + "typeKeywords": [ + "ArcGIS Server", + "Data", + "Map Service", + "Service", + "Singlelayer", + "Tiled" + ], + "description": "Special project orthorectified imagery relates to imagery\ncaptured for emergency response purpose or to support\ndecision making in exceptional cases. The purposes for this\nimagery can include; floods, storms, hail, fire, tidal surges and\ndrought amongst others. This imagery may have been flown\nat a variety of image resolutions and the coverage extents\nare dependent on the nature of the situation and the specific\ntechnical requirements of the response activity.\nThe coverage of special project orthorectified imagery for\nNSW is available as variable window mosaic images at\nvarying GSD’s. 

    Dataset uses This product has been produced to identify visible land cover\nfeatures and terrain to support Spatial Services along with\nlocal and state government programs, including Emergency\nServices. This product is used on a whole of government\nbasis as a visible record of the landscape at a given point in\ntime, allowing for comparative analysis to be carried out over\ndifferent epochs.
    Spatial Services captures and updates this product from\nadvice provided by stakeholders primarily through Imagery\nNSW, a working group of the Location Leadership Group.


    Metadata

    TypeWeb Map Service (WMS)
    Update FrequencyAs required
    Contact DetailsSS-SDS@finance.nsw.gov.au
    Relationship to Themes and DatasetsImagery Theme
    AccuracyThe web service is built as per DFSI Spatial Services's project specification.
    WMS is OGC protocol compatible and suitable for consumption by common GIS platforms
    Standards and SpecificationsOGC compliant and suitable for consumption by common GIS platforms. This dataset is compliant with the NSW Foundation Spatial Data Framework and its specifications.
    DistributorSpatial Services | Department of Customer Service
    Dataset Producers and ContributorsSpatial Services | Department of Customer Service
    ", + "tags": ["Imagery", "Flood", "Fire"], + "snippet": "Event imagery for NSW", + "thumbnail": "thumbnail/ago_downloaded.png", + "documentation": null, + "extent": [ + [143.3335, -35.1516], + [153.3799, -29.0601] + ], + "categories": ["/Categories/Imagery"], + "spatialReference": "102100", + "accessInformation": "© Department of Finance, Services & Innovation 2018", + "licenseInfo": "Spatial Services, a division of the Department of Finance,\nServices and Innovation (DFSI) creates and manages\nIntellectual Property for the Crown in right of New South\nWales.\nAcquisition of this data is subject to the customer entering\ninto an appropriate Creative Commons license agreement.\nTo the extent that Creative Commons licensing applies,\nall data and other material produced by Spatial Services\nconstitutes Crown copyright.\nSpatial Services has applied the Creative Commons\nAttribution 3.0 Australia Licence. Spatial Services asserts the\nright to be attributed as author of the original material in the\nfollowing manner:\n© Spatial Services [date of extraction]\nAdditional terms for the use of Spatial Services material\nAny derived products which are created will be required to\nclearly mark the date that any extractions from the Spatial\nServices Spatial Database occurred.\nAll Intellectual Property which is owned by Spatial Services\nshould only be loaded on any external cloud platforms if\nSpatial Services’ Intellectual Property remains unchanged,\nmaintained and preserved.", + "culture": "en-us", + "properties": null, + "url": "https://maps.six.nsw.gov.au/arcgis/rest/services/sixmaps/EventImagery/MapServer", + "proxyFilter": null, + "access": "public", + "size": -1, + "appCategories": [], + "industries": [], + "languages": [], + "largeThumbnail": null, + "banner": null, + "screenshots": [], + "listed": false, + "numComments": 0, + "numRatings": 0, + "avgRating": 0, + "numViews": 307, + "groupCategories": [], + "scoreCompleteness": 90, + "groupDesignations": null + }, + { + "id": "1f1148e562ce4a97ad5f0ec6a09fe79b", + "owner": "ss-sds", + "created": 1554092101294, + "modified": 1582243596414, + "guid": null, + "name": null, + "title": "Event Imagery Colour Infra Red", + "type": "Map Service", + "typeKeywords": [ + "ArcGIS Server", + "Data", + "Map Service", + "Metadata", + "Service", + "Singlelayer", + "Tiled" + ], + "description": "Event imagery for NSW in colour infra red", + "tags": ["Imagery", "Flood", "Fire", "CIR"], + "snippet": "Event imagery for NSW in colour infra red", + "thumbnail": null, + "documentation": null, + "extent": [ + [143.3335, -35.1516], + [153.3799, -29.0601] + ], + "categories": ["/Categories/Imagery"], + "spatialReference": "102100", + "accessInformation": "© Department of Finance, Services & Innovation 2018", + "licenseInfo": null, + "culture": "en-us", + "properties": null, + "url": "https://maps.six.nsw.gov.au/arcgis/rest/services/sixmaps/EventImageryCIR/MapServer", + "proxyFilter": null, + "access": "public", + "size": -1, + "appCategories": [], + "industries": [], + "languages": [], + "largeThumbnail": null, + "banner": null, + "screenshots": [], + "listed": false, + "numComments": 0, + "numRatings": 0, + "avgRating": 0, + "numViews": 87, + "groupCategories": [], + "scoreCompleteness": 53, + "groupDesignations": null + } + ] +} diff --git a/wwwroot/test/ArcGisPortal/group-c86af18fa4a74336b1feee2a0ee4883d-items-search.json b/wwwroot/test/ArcGisPortal/group-c86af18fa4a74336b1feee2a0ee4883d-items-search.json index 3ee2887c5e2..154d99b9cda 100644 --- a/wwwroot/test/ArcGisPortal/group-c86af18fa4a74336b1feee2a0ee4883d-items-search.json +++ b/wwwroot/test/ArcGisPortal/group-c86af18fa4a74336b1feee2a0ee4883d-items-search.json @@ -15,33 +15,27 @@ "title": "NSW Topographic Maps", "type": "Map Service", "typeKeywords": [ - "ArcGIS Server", - "Data", - "Map Service", - "Service", - "Singlelayer", - "Tiled" + "ArcGIS Server", + "Data", + "Map Service", + "Service", + "Singlelayer", + "Tiled" ], "description": "
    The NSW Topographic Map Cache Web\nService provides rasterised topographic\nmaps in a seamless mosaic view covering\nNSW. This service generally contains the\ncurrent standard Topographic maps from\nthe 1:100,000; 1:50,000 and 1:25,000 series.\nWhere coverage exists at multiple scales, the\nlargest scale map is displayed. 

    The sourced Geotiff file is cropped to\nthe map window only, with no legend,\ndisclaimers, map grid, scale bar or north\narrow displayed. The NSW Topographic Map\nseries is derived from Spatial Services’ Digital\nTopographic Database (DTDB). 

    Information viewed in this web service\nincludes:\n• roads\n• points of interest\n• localities\n• contours\n• drainage\n• cultural data\n• parks and forests\n• property boundaries. 

    This web service allows users to easily\nintegrate the topographic map cache\ncoverage for NSW into Open Geospatial\nConsortium (OGC) compliant spatial\nplatforms and applications. 

    The NSW Topographic Map Cache web\nservice can be used for mapping, emergency\nservices, natural resource management,\ngeosciences and sustainable development. 

    This service ensures users are able to\nconsume topographic map data without the\nrequirement of hosting the map files on their\nown servers.\nIt is important to note that depictions of\nroads and tracks do not necessarily indicate\na public right of way. 

    Unlawful entry upon\nprivate land or a restricted area and/or wilful\ndamage of property such as gates and fences\nexposes offenders to legal prosecution. 


    Metadata

    TypeWeb Map Service (WMS)
    Update FrequencyAs required
    Contact DetailsSS-SDS@finance.nsw.gov.au
    Relationship to Themes and DatasetsAdministrative Boundaries, Elevation and Depth, Land Cover and Land Use, Land Parcel and Land Property, Place Names, Transport and Water Themes.
    AccuracyThe web service is built as per DFSI Spatial Services's project specification.
    WMS is OGC protocol compatible and suitable for consumption by common GIS platforms
    Standards and SpecificationsOpen Geospatial Consortium (OGC)\ncompliant and suitable for consumption by\ncommon GIS platforms.\nThis dataset is compliant with the NSW\nFoundation Spatial Data Framework and its\nspecifications.
    DistributorSpatial Services | Department of Finance, Services and Innovation
    Dataset Producers and ContributorsSpatial Services | Department of Finance, Services and Innovation


    ", "tags": [ - "DFSI", - "Spatial Services", - "Topographic Map", - "Map", - "Topography" + "DFSI", + "Spatial Services", + "Topographic Map", + "Map", + "Topography" ], "snippet": "The NSW Topographic Map Cache Web Service provides rasterised topographic maps in a seamless mosaic view covering NSW. ", "thumbnail": "thumbnail/ago_downloaded.png", "documentation": null, "extent": [ - [ - 140.9993, - -37.5083 - ], - [ - 159.2567, - -28.125 - ] + [140.9993, -37.5083], + [159.2567, -28.125] ], "categories": [], "spatialReference": "102100", @@ -86,29 +80,15 @@ "Tiled" ], "description": "This service forms part of the Imagery Theme of the Foundation Spatial Data Framework (FSDF) and is the first in series of  bi-annual state-wide satellite imagery  Web Map Tile Service (WMTS) services using the SPOT 6/7 imagery.

    The new generation SPOT-6 and 7 optical satellites feature technological improvements and advanced system performance allowing continuity in the SPOT constellation through to 2024.

    This imagery data set has been acquired through a third party supplier to primarily fill a Whole of Government requirement to assist in the identification of a range uses for visible land cover and features.

    The state mosaic is provided as a   Red Green Blue (RGB) band combination; contrast enhanced lossless 8-bit JPEG2000 file with a world file.

    The imagery scenes used to create the NSW mosaic in this WMS service was collected during the later half of 2019, and does include Lord Howe Island.

    This product has been produced to identify visible land cover features and terrain to support Spatial Services along with local and state government programs, including Emergency Services. This product is used as a visible record of the landscape at a given point in time, allowing for comparative analysis to be carried out over different epochs.

    To view in ArcMap:
    Click Catalog > GIS Servers > Add WMTS server
    Specify this url:
    https://alpha.portal.spatial.nsw.gov.au/tileservices/Hosted/Spot_2019/MapServer/WMTS
    Click Get Layers > Ok
    Double Click Spot_2019
    Drag the Spot_2019 layer onto the map

    Metadata
    TypeWeb Map Tile Service (WMTS)
    Update FrequencyBi Annual (commencing second half of 2019)
    Contact DetailsSS-SDS@finance.nsw.gov.au
    Relationship to Themes and DatasetsImagery Theme (NSW Foundation Spatial Framework)
    AccuracyThe web service is built as per  Spatial Services's project specification.
    WMS is OGC protocol compatible and suitable for consumption by common GIS platforms
    Standards and SpecificationsOGC compliant and suitable for consumption by common GIS platforms. This dataset is compliant with the NSW Foundation Spatial Data Framework and its specifications.
    Aggregators
    DistributorsSpatial Services | Department of Customer Service
    Dataset Producers and Contributorsc  Airbus DS for SPOT 6/7


    ", - "tags": [ - "Spot", - "Imagery", - "satellite", - "Spot 6/7", - "NSW Imagery" - ], + "tags": ["Spot", "Imagery", "satellite", "Spot 6/7", "NSW Imagery"], "snippet": "NSW Spot Imagery 2019 is first of a series of Bi Annual Satellite Image Mosaics covering NSW with an image resolution of 1.5 metres.", "thumbnail": "thumbnail/thumbnail1582242296196.png", "documentation": null, "extent": [ - [ - 140.3414, - -37.6035 - ], - [ - 159.2899, - -28.1005 - ] - ], - "categories": [ - "/Categories/Imagery" + [140.3414, -37.6035], + [159.2899, -28.1005] ], + "categories": ["/Categories/Imagery"], "spatialReference": "102100", "accessInformation": null, "licenseInfo": "
    Spot 6/7 has been acquired by Spatial Services, a division of the Department of Customer Services which creates and manages Intellectual Property for the Crown in right of New South Wales.
    The imagery is available for a range of Whole of Government applications along with this WMS service under the specific terms and conditions  of :- 
    Schedule C - AIRBUS DEFENCE AND SPACE END_USER LICENSE AGREEMENT
    Intellectual Property Rights (extract from SPOT 6/7 EULA)
    3.1 The data contained in the product are the property of Airbus DS for Spot 6/7 satellites imagery data.
    3.2 The product is protected by French and International copyright laws
    3.3 In addition, the PRODUCT and the satellite imagery data contained therein are protected by articles L 341-1 to 343-7 of                  French Code of Intellectual Property Law as amended by the Statute of 1 July 1998 relative to database copyright and to                similar statutes in European countries that have incorporated EU Directive n 69/9 of 11th March 1996 on database copyright         into their laws.
    3.4  The Product, VAP and /or EXTRACT, when displayed and/or printed in accordance with the permitted uses specified in                   Article 2.1 shall include the Airbus DS Logo and the following credit conspicuously displayed:
    • For Spot 6 and 7 imagery data :  CAirbus DS/Spot Image (2019)



    ", diff --git a/wwwroot/test/ArcGisPortal/group-search-results.json b/wwwroot/test/ArcGisPortal/group-search-results.json index a3adf0f5c90..f779723cb3a 100644 --- a/wwwroot/test/ArcGisPortal/group-search-results.json +++ b/wwwroot/test/ArcGisPortal/group-search-results.json @@ -12,9 +12,7 @@ "owner": "admin", "description": null, "snippet": "A group for sharing Basemaps to for the Basemap Gallery", - "tags": [ - "basemaps" - ], + "tags": ["basemaps"], "phone": null, "sortField": "owner", "sortOrder": "desc", @@ -39,11 +37,7 @@ "owner": "ss-sds", "description": null, "snippet": "A group for sharing layers to the NSW Digital Twin", - "tags": [ - "3D", - "data61", - "digital twin" - ], + "tags": ["3D", "data61", "digital twin"], "phone": null, "sortField": "title", "sortOrder": "asc", @@ -68,9 +62,7 @@ "owner": "daniel.mccullock@customerservice.nsw.gov.au", "description": null, "snippet": "A group to share content which will be shown in the Gallery", - "tags": [ - "gallery" - ], + "tags": ["gallery"], "phone": null, "sortField": "modified", "sortOrder": "desc", @@ -88,5 +80,5 @@ "provider": null, "providerGroupName": null } -] + ] } diff --git a/wwwroot/test/ArcGisPortal/item-data.json b/wwwroot/test/ArcGisPortal/item-data.json index 1e253ee4977..a71912cef5a 100644 --- a/wwwroot/test/ArcGisPortal/item-data.json +++ b/wwwroot/test/ArcGisPortal/item-data.json @@ -1,311 +1,301 @@ { - "layers": [ - { - "popupInfo": { - "title": "RoadSegment: {roadnamebase}", - "fieldInfos": [ - { - "fieldName": "objectid", - "label": "objectid", - "isEditable": true, - "tooltip": "", - "visible": false, - "stringFieldOption": "textbox", - "format": { - "places": 0, - "digitSeparator": true - } - }, - { - "fieldName": "topoid", - "label": "topoid", - "isEditable": true, - "tooltip": "", - "visible": true, - "stringFieldOption": "textbox" - }, - { - "fieldName": "createdate", - "label": "createdate", - "isEditable": true, - "tooltip": "", - "visible": true, - "stringFieldOption": "textbox", - "format": { - "dateFormat": "shortDateShortTime" - } - }, - { - "fieldName": "objectmoddate", - "label": "objectmoddate", - "isEditable": true, - "tooltip": "", - "visible": true, - "stringFieldOption": "textbox" - }, - { - "fieldName": "featuremoddate", - "label": "featuremoddate", - "isEditable": true, - "tooltip": "", - "visible": true, - "stringFieldOption": "textbox" - }, - { - "fieldName": "classsubtype", - "label": "classsubtype", - "isEditable": true, - "tooltip": "", - "visible": true, - "stringFieldOption": "textbox" - }, - { - "fieldName": "featurereliabilitydate", - "label": "featurereliabilitydate", - "isEditable": true, - "tooltip": "", - "visible": true, - "stringFieldOption": "textbox" - }, - { - "fieldName": "attributereliabilitydate", - "label": "attributereliabilitydate", - "isEditable": true, - "tooltip": "", - "visible": true, - "stringFieldOption": "textbox" - }, - { - "fieldName": "capturesourcecode", - "label": "capturesourcecode", - "isEditable": true, - "tooltip": "", - "visible": true, - "stringFieldOption": "textbox" - }, - { - "fieldName": "capturemethodcode", - "label": "capturemethodcode", - "isEditable": true, - "tooltip": "", - "visible": true, - "stringFieldOption": "textbox" - }, - { - "fieldName": "planimetricaccuracy", - "label": "planimetricaccuracy", - "isEditable": true, - "tooltip": "", - "visible": true, - "stringFieldOption": "textbox" - }, - { - "fieldName": "verticalaccuracy", - "label": "verticalaccuracy", - "isEditable": true, - "tooltip": "", - "visible": true, - "stringFieldOption": "textbox" - }, - { - "fieldName": "operationalstatus", - "label": "operationalstatus", - "isEditable": true, - "tooltip": "", - "visible": true, - "stringFieldOption": "textbox" - }, - { - "fieldName": "roadnameoid", - "label": "roadnameoid", - "isEditable": true, - "tooltip": "", - "visible": true, - "stringFieldOption": "textbox" - }, - { - "fieldName": "roadnamebase", - "label": "roadnamebase", - "isEditable": true, - "tooltip": "", - "visible": true, - "stringFieldOption": "textbox" - }, - { - "fieldName": "roadnametype", - "label": "roadnametype", - "isEditable": true, - "tooltip": "", - "visible": true, - "stringFieldOption": "textbox" - }, - { - "fieldName": "roadnamesuffix", - "label": "roadnamesuffix", - "isEditable": true, - "tooltip": "", - "visible": true, - "stringFieldOption": "textbox" - }, - { - "fieldName": "functionhierarchy", - "label": "functionhierarchy", - "isEditable": true, - "tooltip": "", - "visible": true, - "stringFieldOption": "textbox" - }, - { - "fieldName": "roadontype", - "label": "roadontype", - "isEditable": true, - "tooltip": "", - "visible": true, - "stringFieldOption": "textbox" - }, - { - "fieldName": "surface", - "label": "surface", - "isEditable": true, - "tooltip": "", - "visible": true, - "stringFieldOption": "textbox" - }, - { - "fieldName": "lanecount", - "label": "lanecount", - "isEditable": true, - "tooltip": "", - "visible": true, - "stringFieldOption": "textbox" - }, - { - "fieldName": "roadnameextentoid", - "label": "roadnameextentoid", - "isEditable": true, - "tooltip": "", - "visible": true, - "stringFieldOption": "textbox" - }, - { - "fieldName": "relevance", - "label": "relevance", - "isEditable": true, - "tooltip": "", - "visible": true, - "stringFieldOption": "textbox" - }, - { - "fieldName": "startdate", - "label": "startdate", - "isEditable": true, - "tooltip": "", - "visible": true, - "stringFieldOption": "textbox", - "format": { - "dateFormat": "shortDateShortTime" - } - }, - { - "fieldName": "enddate", - "label": "enddate", - "isEditable": true, - "tooltip": "", - "visible": true, - "stringFieldOption": "textbox", - "format": { - "dateFormat": "shortDateShortTime" - } - }, - { - "fieldName": "lastupdate", - "label": "lastupdate", - "isEditable": true, - "tooltip": "", - "visible": true, - "stringFieldOption": "textbox", - "format": { - "dateFormat": "shortDateShortTime" - } - }, - { - "fieldName": "FID", - "label": "FID", - "isEditable": false, - "tooltip": "", - "visible": false, - "stringFieldOption": "textbox" - } - ], - "description": null, - "showAttachments": true, - "mediaInfos": [] - }, - "layerDefinition": { - "drawingInfo": { - "renderer": { - "type": "simple", - "symbol": { - "color": [ - 153, - 67, - 56, - 255 - ], - "width": 1, - "type": "esriSLS", - "style": "esriSLSSolid" - } - }, - "labelingInfo": [ - { - "labelExpression": null, - "labelExpressionInfo": { - "expression": "$feature[\"roadnamebase\"]", - "value": "{roadnamebase}" - }, - "useCodedValues": true, - "maxScale": 0, - "minScale": 42537, - "where": null, - "labelPlacement": "esriServerLinePlacementAboveAlong", - "symbol": { - "color": [ - 51, - 51, - 51, - 255 - ], - "type": "esriTS", - "backgroundColor": null, - "borderLineColor": null, - "haloSize": 0, - "haloColor": null, - "horizontalAlignment": "center", - "rightToLeft": false, - "angle": 0, - "xoffset": 0, - "yoffset": 0, - "text": "", - "rotated": false, - "kerning": true, - "font": { - "size": 9.75, - "style": "normal", - "decoration": "none", - "weight": "bold", - "family": "Arial Unicode MS" - } - } - } - ] - }, - "minScale": 3750891, - "maxScale": 0, - "defaultVisibility": true - }, - "showLabels": true, - "id": 5 - } - ] -} \ No newline at end of file + "layers": [ + { + "popupInfo": { + "title": "RoadSegment: {roadnamebase}", + "fieldInfos": [ + { + "fieldName": "objectid", + "label": "objectid", + "isEditable": true, + "tooltip": "", + "visible": false, + "stringFieldOption": "textbox", + "format": { + "places": 0, + "digitSeparator": true + } + }, + { + "fieldName": "topoid", + "label": "topoid", + "isEditable": true, + "tooltip": "", + "visible": true, + "stringFieldOption": "textbox" + }, + { + "fieldName": "createdate", + "label": "createdate", + "isEditable": true, + "tooltip": "", + "visible": true, + "stringFieldOption": "textbox", + "format": { + "dateFormat": "shortDateShortTime" + } + }, + { + "fieldName": "objectmoddate", + "label": "objectmoddate", + "isEditable": true, + "tooltip": "", + "visible": true, + "stringFieldOption": "textbox" + }, + { + "fieldName": "featuremoddate", + "label": "featuremoddate", + "isEditable": true, + "tooltip": "", + "visible": true, + "stringFieldOption": "textbox" + }, + { + "fieldName": "classsubtype", + "label": "classsubtype", + "isEditable": true, + "tooltip": "", + "visible": true, + "stringFieldOption": "textbox" + }, + { + "fieldName": "featurereliabilitydate", + "label": "featurereliabilitydate", + "isEditable": true, + "tooltip": "", + "visible": true, + "stringFieldOption": "textbox" + }, + { + "fieldName": "attributereliabilitydate", + "label": "attributereliabilitydate", + "isEditable": true, + "tooltip": "", + "visible": true, + "stringFieldOption": "textbox" + }, + { + "fieldName": "capturesourcecode", + "label": "capturesourcecode", + "isEditable": true, + "tooltip": "", + "visible": true, + "stringFieldOption": "textbox" + }, + { + "fieldName": "capturemethodcode", + "label": "capturemethodcode", + "isEditable": true, + "tooltip": "", + "visible": true, + "stringFieldOption": "textbox" + }, + { + "fieldName": "planimetricaccuracy", + "label": "planimetricaccuracy", + "isEditable": true, + "tooltip": "", + "visible": true, + "stringFieldOption": "textbox" + }, + { + "fieldName": "verticalaccuracy", + "label": "verticalaccuracy", + "isEditable": true, + "tooltip": "", + "visible": true, + "stringFieldOption": "textbox" + }, + { + "fieldName": "operationalstatus", + "label": "operationalstatus", + "isEditable": true, + "tooltip": "", + "visible": true, + "stringFieldOption": "textbox" + }, + { + "fieldName": "roadnameoid", + "label": "roadnameoid", + "isEditable": true, + "tooltip": "", + "visible": true, + "stringFieldOption": "textbox" + }, + { + "fieldName": "roadnamebase", + "label": "roadnamebase", + "isEditable": true, + "tooltip": "", + "visible": true, + "stringFieldOption": "textbox" + }, + { + "fieldName": "roadnametype", + "label": "roadnametype", + "isEditable": true, + "tooltip": "", + "visible": true, + "stringFieldOption": "textbox" + }, + { + "fieldName": "roadnamesuffix", + "label": "roadnamesuffix", + "isEditable": true, + "tooltip": "", + "visible": true, + "stringFieldOption": "textbox" + }, + { + "fieldName": "functionhierarchy", + "label": "functionhierarchy", + "isEditable": true, + "tooltip": "", + "visible": true, + "stringFieldOption": "textbox" + }, + { + "fieldName": "roadontype", + "label": "roadontype", + "isEditable": true, + "tooltip": "", + "visible": true, + "stringFieldOption": "textbox" + }, + { + "fieldName": "surface", + "label": "surface", + "isEditable": true, + "tooltip": "", + "visible": true, + "stringFieldOption": "textbox" + }, + { + "fieldName": "lanecount", + "label": "lanecount", + "isEditable": true, + "tooltip": "", + "visible": true, + "stringFieldOption": "textbox" + }, + { + "fieldName": "roadnameextentoid", + "label": "roadnameextentoid", + "isEditable": true, + "tooltip": "", + "visible": true, + "stringFieldOption": "textbox" + }, + { + "fieldName": "relevance", + "label": "relevance", + "isEditable": true, + "tooltip": "", + "visible": true, + "stringFieldOption": "textbox" + }, + { + "fieldName": "startdate", + "label": "startdate", + "isEditable": true, + "tooltip": "", + "visible": true, + "stringFieldOption": "textbox", + "format": { + "dateFormat": "shortDateShortTime" + } + }, + { + "fieldName": "enddate", + "label": "enddate", + "isEditable": true, + "tooltip": "", + "visible": true, + "stringFieldOption": "textbox", + "format": { + "dateFormat": "shortDateShortTime" + } + }, + { + "fieldName": "lastupdate", + "label": "lastupdate", + "isEditable": true, + "tooltip": "", + "visible": true, + "stringFieldOption": "textbox", + "format": { + "dateFormat": "shortDateShortTime" + } + }, + { + "fieldName": "FID", + "label": "FID", + "isEditable": false, + "tooltip": "", + "visible": false, + "stringFieldOption": "textbox" + } + ], + "description": null, + "showAttachments": true, + "mediaInfos": [] + }, + "layerDefinition": { + "drawingInfo": { + "renderer": { + "type": "simple", + "symbol": { + "color": [153, 67, 56, 255], + "width": 1, + "type": "esriSLS", + "style": "esriSLSSolid" + } + }, + "labelingInfo": [ + { + "labelExpression": null, + "labelExpressionInfo": { + "expression": "$feature[\"roadnamebase\"]", + "value": "{roadnamebase}" + }, + "useCodedValues": true, + "maxScale": 0, + "minScale": 42537, + "where": null, + "labelPlacement": "esriServerLinePlacementAboveAlong", + "symbol": { + "color": [51, 51, 51, 255], + "type": "esriTS", + "backgroundColor": null, + "borderLineColor": null, + "haloSize": 0, + "haloColor": null, + "horizontalAlignment": "center", + "rightToLeft": false, + "angle": 0, + "xoffset": 0, + "yoffset": 0, + "text": "", + "rotated": false, + "kerning": true, + "font": { + "size": 9.75, + "style": "normal", + "decoration": "none", + "weight": "bold", + "family": "Arial Unicode MS" + } + } + } + ] + }, + "minScale": 3750891, + "maxScale": 0, + "defaultVisibility": true + }, + "showLabels": true, + "id": 5 + } + ] +} diff --git a/wwwroot/test/ArcGisPortal/item.json b/wwwroot/test/ArcGisPortal/item.json index 42c37b42e8a..1a5b00f1c5e 100644 --- a/wwwroot/test/ArcGisPortal/item.json +++ b/wwwroot/test/ArcGisPortal/item.json @@ -1,66 +1,58 @@ - { - "id": "66fabd8c23074ecc85883e0086419adc", - "owner": "ss-sds", - "created": 1581027970369, - "modified": 1582265103917, - "guid": null, - "name": null, - "title": "NSW Transport Theme - Road Segment", - "type": "Feature Service", - "typeKeywords": [ - "ArcGIS Server", - "Data", - "Feature Access", - "Feature Service", - "Service", - "Singlelayer" - ], - "description": "

    Export Data

    \n\n

    A line feature class representing a section of road having\ncommon attributes and terminating at its physical end or at an intersection\nwith another road at the same grade (same level).

    \n\n

    Its position is determined by the\nmethodology used to input into the Topographic Database. Common methods of\ninput include GPS, traced from the cadastre or traced from an orthorectified\nimage.

    \n\n

    Data included in Road Segment\nincludes: 


    \n\n

    ·     Vehicular Track

    \n\n

    ·     Pathway

    \n\n

    ·     Continuity Line

    \n\n

    ·     Standard Road

    \n\n

    ·     On-off Ramp

    \n\n

    ·     Dual Carriageway

    \n\n

    Metadata

    \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    \n

    Type

    \n
    \n

    Hosted Feature Layer

    \n
    \n

    Update Frequency

    \n
    \n

    As Required

    \n
    \n

    Contact Details

    \n
    \n

    SS-SDS@customerservice.nsw.gov.au

    \n
    \n

    Relationship to Themes and Datasets

    \n
    \n

    NSW Transport Theme of the\n Foundation Spatial Data Framework

    \n
    \n

    Accuracy

    \n
    \n

    The dataset maintains a positional relationship to, and\n alignment with, the Lot and Property digital datasets. The Lot and Property\n data was captured by digitising the best available cadastral mapping at a\n variety of scales and accuracies, ranging from 1:500 to 1:250 000 according\n to the National Mapping Council of Australia, Standards of Map Accuracy\n (1975). Therefore, the position of the feature instance will be within 0.5mm\n at map scale for 90% of the well-defined points. That is, 1:500 = 0.25m,\n 1:2000 = 1m, 1:4000 = 2m, 1:25000 = 12.5m, 1:50000 = 25m and 1:100000 = 50m.\n A program of positional upgrade (accuracy improvement) is currently underway.

    \n
    \n

    Standards and Specifications

    \n
    \n

    Open Geospatial Consortium (OGC) implemented and\n compatible for consumption by common GIS platforms. Available as either cache\n or non-cache, depending on client use or requirement.

    \n
    \n

    Aggregators

    \n
    \n

    Spatial Services | Department of Customer Service

    \n
    \n

    Distributors

    \n
    \n

    Spatial Services | Department of Customer Service

    \n
    \n

    Dataset Producers and Contributors

    \n
    \n

    Spatial Services | Department of Customer Service

    \n
    \n\n

     

    ", - "tags": [ - "roadsegment", - "standardroad", - "onofframp", - "dualcarriageway", - "vehiculartrack", - "pathway", - "continuityline" - ], - "snippet": "A road is a line feature dataset maintained within the Foundation Spatial data Framework Transport Theme.", - "thumbnail": "thumbnail/thumbnail1581028005916.png", - "documentation": null, - "extent": [ - [ - 140.9839, - -37.5043 - ], - [ - 159.0979, - -28.1555 - ] - ], - "categories": [ - "/Categories/Transport" - ], - "spatialReference": null, - "accessInformation": null, - "licenseInfo": "

    Spatial\nServices, a division of the Department of Customer Service creates and manages\nIntellectual Property for the Crown in right of New South Wales. Acquisition of\nthis data is subject to the customer entering into an appropriate Creative\nCommons license agreement. To the extent that Creative Commons licensing\napplies, all data and other material produced by Spatial Services constitutes Crown\ncopyright. Spatial Services has applied the Creative Commons Attribution 4.0\nAustralia Licence. Spatial Services asserts the right to be attributed as\nauthor of the original material in the following manner:

    \n\n

     ©\nSpatial Services 2019.

    \n\n

    Additional\nterms for the use of Spatial Services material. Any derived products which are\ncreated will be required to clearly mark the date that any extractions from the\nSpatial Services Spatial Database occurred. All Intellectual Property which is\nowned by Spatial Services should only be loaded on any external cloud platforms\nif Spatial Services’ Intellectual Property remains unchanged, maintained and\npreserved.

    ", - "culture": "english (united states)", - "properties": null, - "url": "https://portal.spatial.nsw.gov.au/server/rest/services/NSW_Transport_Theme/FeatureServer", - "proxyFilter": null, - "access": "public", - "size": -1, - "appCategories": [], - "industries": [], - "languages": [], - "largeThumbnail": null, - "banner": null, - "screenshots": [], - "listed": false, - "numComments": 0, - "numRatings": 0, - "avgRating": 0, - "numViews": 10260, - "scoreCompleteness": 100, - "groupDesignations": null - } \ No newline at end of file +{ + "id": "66fabd8c23074ecc85883e0086419adc", + "owner": "ss-sds", + "created": 1581027970369, + "modified": 1582265103917, + "guid": null, + "name": null, + "title": "NSW Transport Theme - Road Segment", + "type": "Feature Service", + "typeKeywords": [ + "ArcGIS Server", + "Data", + "Feature Access", + "Feature Service", + "Service", + "Singlelayer" + ], + "description": "

    Export Data

    \n\n

    A line feature class representing a section of road having\ncommon attributes and terminating at its physical end or at an intersection\nwith another road at the same grade (same level).

    \n\n

    Its position is determined by the\nmethodology used to input into the Topographic Database. Common methods of\ninput include GPS, traced from the cadastre or traced from an orthorectified\nimage.

    \n\n

    Data included in Road Segment\nincludes: 


    \n\n

    ·     Vehicular Track

    \n\n

    ·     Pathway

    \n\n

    ·     Continuity Line

    \n\n

    ·     Standard Road

    \n\n

    ·     On-off Ramp

    \n\n

    ·     Dual Carriageway

    \n\n

    Metadata

    \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    \n

    Type

    \n
    \n

    Hosted Feature Layer

    \n
    \n

    Update Frequency

    \n
    \n

    As Required

    \n
    \n

    Contact Details

    \n
    \n

    SS-SDS@customerservice.nsw.gov.au

    \n
    \n

    Relationship to Themes and Datasets

    \n
    \n

    NSW Transport Theme of the\n Foundation Spatial Data Framework

    \n
    \n

    Accuracy

    \n
    \n

    The dataset maintains a positional relationship to, and\n alignment with, the Lot and Property digital datasets. The Lot and Property\n data was captured by digitising the best available cadastral mapping at a\n variety of scales and accuracies, ranging from 1:500 to 1:250 000 according\n to the National Mapping Council of Australia, Standards of Map Accuracy\n (1975). Therefore, the position of the feature instance will be within 0.5mm\n at map scale for 90% of the well-defined points. That is, 1:500 = 0.25m,\n 1:2000 = 1m, 1:4000 = 2m, 1:25000 = 12.5m, 1:50000 = 25m and 1:100000 = 50m.\n A program of positional upgrade (accuracy improvement) is currently underway.

    \n
    \n

    Standards and Specifications

    \n
    \n

    Open Geospatial Consortium (OGC) implemented and\n compatible for consumption by common GIS platforms. Available as either cache\n or non-cache, depending on client use or requirement.

    \n
    \n

    Aggregators

    \n
    \n

    Spatial Services | Department of Customer Service

    \n
    \n

    Distributors

    \n
    \n

    Spatial Services | Department of Customer Service

    \n
    \n

    Dataset Producers and Contributors

    \n
    \n

    Spatial Services | Department of Customer Service

    \n
    \n\n

     

    ", + "tags": [ + "roadsegment", + "standardroad", + "onofframp", + "dualcarriageway", + "vehiculartrack", + "pathway", + "continuityline" + ], + "snippet": "A road is a line feature dataset maintained within the Foundation Spatial data Framework Transport Theme.", + "thumbnail": "thumbnail/thumbnail1581028005916.png", + "documentation": null, + "extent": [ + [140.9839, -37.5043], + [159.0979, -28.1555] + ], + "categories": ["/Categories/Transport"], + "spatialReference": null, + "accessInformation": null, + "licenseInfo": "

    Spatial\nServices, a division of the Department of Customer Service creates and manages\nIntellectual Property for the Crown in right of New South Wales. Acquisition of\nthis data is subject to the customer entering into an appropriate Creative\nCommons license agreement. To the extent that Creative Commons licensing\napplies, all data and other material produced by Spatial Services constitutes Crown\ncopyright. Spatial Services has applied the Creative Commons Attribution 4.0\nAustralia Licence. Spatial Services asserts the right to be attributed as\nauthor of the original material in the following manner:

    \n\n

     ©\nSpatial Services 2019.

    \n\n

    Additional\nterms for the use of Spatial Services material. Any derived products which are\ncreated will be required to clearly mark the date that any extractions from the\nSpatial Services Spatial Database occurred. All Intellectual Property which is\nowned by Spatial Services should only be loaded on any external cloud platforms\nif Spatial Services’ Intellectual Property remains unchanged, maintained and\npreserved.

    ", + "culture": "english (united states)", + "properties": null, + "url": "https://portal.spatial.nsw.gov.au/server/rest/services/NSW_Transport_Theme/FeatureServer", + "proxyFilter": null, + "access": "public", + "size": -1, + "appCategories": [], + "industries": [], + "languages": [], + "largeThumbnail": null, + "banner": null, + "screenshots": [], + "listed": false, + "numComments": 0, + "numRatings": 0, + "avgRating": 0, + "numViews": 10260, + "scoreCompleteness": 100, + "groupDesignations": null +} diff --git a/wwwroot/test/ArcGisPortal/search-result.json b/wwwroot/test/ArcGisPortal/search-result.json index ee065053292..549be8d03b5 100644 --- a/wwwroot/test/ArcGisPortal/search-result.json +++ b/wwwroot/test/ArcGisPortal/search-result.json @@ -36,18 +36,10 @@ "thumbnail": "thumbnail/thumbnail1581028005916.png", "documentation": null, "extent": [ - [ - 140.9839, - -37.5043 - ], - [ - 159.0979, - -28.1555 - ] - ], - "categories": [ - "/Categories/Transport" + [140.9839, -37.5043], + [159.0979, -28.1555] ], + "categories": ["/Categories/Transport"], "spatialReference": null, "accessInformation": null, "licenseInfo": "

    Spatial\nServices, a division of the Department of Customer Service creates and manages\nIntellectual Property for the Crown in right of New South Wales. Acquisition of\nthis data is subject to the customer entering into an appropriate Creative\nCommons license agreement. To the extent that Creative Commons licensing\napplies, all data and other material produced by Spatial Services constitutes Crown\ncopyright. Spatial Services has applied the Creative Commons Attribution 4.0\nAustralia Licence. Spatial Services asserts the right to be attributed as\nauthor of the original material in the following manner:

    \n\n

     ©\nSpatial Services 2019.

    \n\n

    Additional\nterms for the use of Spatial Services material. Any derived products which are\ncreated will be required to clearly mark the date that any extractions from the\nSpatial Services Spatial Database occurred. All Intellectual Property which is\nowned by Spatial Services should only be loaded on any external cloud platforms\nif Spatial Services’ Intellectual Property remains unchanged, maintained and\npreserved.

    ", @@ -91,21 +83,13 @@ "Hosted Service" ], "description": "

    Add a description of the item.

    Use multiple paragraphs if necessary.

    Metadata

    Type
    Update Frequency
    Contact Details
    Relationship to Themes and Datasets
    Accuracy
    Standards and Specifications
    Aggregators
    Distributors
    Dataset Producers and Contributors
    Export Data", - "tags": [ - "topo" - ], + "tags": ["topo"], "snippet": null, "thumbnail": null, "documentation": null, "extent": [ - [ - 140.999279035799, - -37.505942651320034 - ], - [ - 159.2566666637356, - -28.12499999956465 - ] + [140.999279035799, -37.505942651320034], + [159.2566666637356, -28.12499999956465] ], "categories": [], "spatialReference": "WGS_1984_Web_Mercator_Auxiliary_Sphere", @@ -163,14 +147,8 @@ "thumbnail": "thumbnail/thumbnail1583993368746.jpeg", "documentation": null, "extent": [ - [ - 140, - -37 - ], - [ - 153, - -28 - ] + [140, -37], + [153, -28] ], "categories": [], "spatialReference": "WGS_1984_Web_Mercator_Auxiliary_Sphere", @@ -215,21 +193,13 @@ "Hosted Service" ], "description": "

    Add a description of the item.

    Use multiple paragraphs if necessary.

    Metadata

    Type
    Update Frequency
    Contact Details
    Relationship to Themes and Datasets
    Accuracy
    Standards and Specifications
    Aggregators
    Distributors
    Dataset Producers and Contributors
    ", - "tags": [ - "HAP" - ], + "tags": ["HAP"], "snippet": "Historical Imagery 1970s", "thumbnail": "thumbnail/thumbnail.JPEG", "documentation": null, "extent": [ - [ - 150, - -33 - ], - [ - 151, - -33 - ] + [150, -33], + [151, -33] ], "categories": [], "spatialReference": "WGS_1984_Web_Mercator_Auxiliary_Sphere", diff --git a/wwwroot/test/ArcGisPortal/user-info.json b/wwwroot/test/ArcGisPortal/user-info.json index eaf4d22f2ec..8ad6e51685a 100644 --- a/wwwroot/test/ArcGisPortal/user-info.json +++ b/wwwroot/test/ArcGisPortal/user-info.json @@ -1,74 +1,72 @@ { - "username": "data61", - "groups": [ - { - "id": "e81e61c656fb4f70b38b7e9609d2b68c", - "title": "NSW Collaborate Council - Digital Twin Secured", - "isInvitationOnly": false, - "owner": "ajoy.saha@customerservice.nsw.gov.au", - "description": "Data Share platform among 8 councils. Campbelltown, Camden, Liverpool, Blue Mountain, Hawkesbury, Wollondilly, Fairfield, Penrith.
    Any data that is shared in this group will be accessible by any member within this group.
    ", - "snippet": "Group of 8 Council Data Share Platform. Campbelltown, Camden, Liverpool, Blue Mountain, Hawkesbury, Wollondilly, Fairfield, Penrith", - "tags": [ - "Campbelltown", - "Camden", - "Liverpool", - "Blue Mountain", - "Hawkesbury", - "Wollondilly", - "Fairfield", - "Penrith" - ], - "phone": null, - "sortField": "title", - "sortOrder": "asc", - "isViewOnly": false, - "thumbnail": null, - "created": 1580867472280, - "modified": 1582163038938, - "access": "org", - "capabilities": [], - "isFav": false, - "isReadOnly": false, - "protected": true, - "autoJoin": false, - "notificationsEnabled": false, - "provider": null, - "providerGroupName": null, - "userMembership": { - "username": "data61", - "memberType": "member" - } - }, - { - "id": "7c66fdabec9f4343b802cf4d7aa78a8f", - "title": "Fairfield_Digital_Twin_Secure", - "isInvitationOnly": true, - "owner": "ajoy.saha@customerservice.nsw.gov.au", - "description": "Fairfield council to share data with digital twin", - "snippet": "This group is created to share data with digital twin.", - "tags": [ - "Fairfield" - ], - "phone": null, - "sortField": "title", - "sortOrder": "asc", - "isViewOnly": false, - "thumbnail": null, - "created": 1581548364386, - "modified": 1582074367879, - "access": "org", - "capabilities": [], - "isFav": false, - "isReadOnly": false, - "protected": true, - "autoJoin": false, - "notificationsEnabled": false, - "provider": null, - "providerGroupName": null, - "userMembership": { - "username": "data61", - "memberType": "member" - } - } - ] -} \ No newline at end of file + "username": "data61", + "groups": [ + { + "id": "e81e61c656fb4f70b38b7e9609d2b68c", + "title": "NSW Collaborate Council - Digital Twin Secured", + "isInvitationOnly": false, + "owner": "ajoy.saha@customerservice.nsw.gov.au", + "description": "Data Share platform among 8 councils. Campbelltown, Camden, Liverpool, Blue Mountain, Hawkesbury, Wollondilly, Fairfield, Penrith.
    Any data that is shared in this group will be accessible by any member within this group.
    ", + "snippet": "Group of 8 Council Data Share Platform. Campbelltown, Camden, Liverpool, Blue Mountain, Hawkesbury, Wollondilly, Fairfield, Penrith", + "tags": [ + "Campbelltown", + "Camden", + "Liverpool", + "Blue Mountain", + "Hawkesbury", + "Wollondilly", + "Fairfield", + "Penrith" + ], + "phone": null, + "sortField": "title", + "sortOrder": "asc", + "isViewOnly": false, + "thumbnail": null, + "created": 1580867472280, + "modified": 1582163038938, + "access": "org", + "capabilities": [], + "isFav": false, + "isReadOnly": false, + "protected": true, + "autoJoin": false, + "notificationsEnabled": false, + "provider": null, + "providerGroupName": null, + "userMembership": { + "username": "data61", + "memberType": "member" + } + }, + { + "id": "7c66fdabec9f4343b802cf4d7aa78a8f", + "title": "Fairfield_Digital_Twin_Secure", + "isInvitationOnly": true, + "owner": "ajoy.saha@customerservice.nsw.gov.au", + "description": "Fairfield council to share data with digital twin", + "snippet": "This group is created to share data with digital twin.", + "tags": ["Fairfield"], + "phone": null, + "sortField": "title", + "sortOrder": "asc", + "isViewOnly": false, + "thumbnail": null, + "created": 1581548364386, + "modified": 1582074367879, + "access": "org", + "capabilities": [], + "isFav": false, + "isReadOnly": false, + "protected": true, + "autoJoin": false, + "notificationsEnabled": false, + "provider": null, + "providerGroupName": null, + "userMembership": { + "username": "data61", + "memberType": "member" + } + } + ] +} diff --git a/wwwroot/test/ArcGisServer/sampleserver6/911CallsHotspotMS.json b/wwwroot/test/ArcGisServer/sampleserver6/911CallsHotspotMS.json index 5ee64f7d9f5..bdcb27e85af 100644 --- a/wwwroot/test/ArcGisServer/sampleserver6/911CallsHotspotMS.json +++ b/wwwroot/test/ArcGisServer/sampleserver6/911CallsHotspotMS.json @@ -11,10 +11,7 @@ "name": "911 Calls Hotspot", "parentLayerId": -1, "defaultVisibility": true, - "subLayerIds": [ - 1, - 2 - ], + "subLayerIds": [1, 2], "minScale": 0, "maxScale": 0, "type": "Group Layer" @@ -68,10 +65,7 @@ } }, "timeInfo": { - "timeExtent": [ - 883785600000, - 885686400000 - ], + "timeExtent": [883785600000, 885686400000], "timeReference": null, "timeRelation": "esriTimeRelationOverlaps", "defaultTimeInterval": 2, @@ -101,4 +95,4 @@ "maxImageHeight": 4096, "maxImageWidth": 4096, "supportedExtensions": "WMSServer" -} \ No newline at end of file +} diff --git a/wwwroot/test/ArcGisServer/sampleserver6/AGP.json b/wwwroot/test/ArcGisServer/sampleserver6/AGP.json index 08892cc5263..b2708ec3a30 100644 --- a/wwwroot/test/ArcGisServer/sampleserver6/AGP.json +++ b/wwwroot/test/ArcGisServer/sampleserver6/AGP.json @@ -19,4 +19,4 @@ "type": "MapServer" } ] -} \ No newline at end of file +} diff --git a/wwwroot/test/ArcGisServer/sampleserver6/CensusMS.json b/wwwroot/test/ArcGisServer/sampleserver6/CensusMS.json index 07e3b801b1f..98f4a511fbd 100644 --- a/wwwroot/test/ArcGisServer/sampleserver6/CensusMS.json +++ b/wwwroot/test/ArcGisServer/sampleserver6/CensusMS.json @@ -121,4 +121,4 @@ "maxImageHeight": 4096, "maxImageWidth": 4096, "supportedExtensions": "KmlServer" -} \ No newline at end of file +} diff --git a/wwwroot/test/ArcGisServer/sampleserver6/CommercialDamageAssessmentFS.json b/wwwroot/test/ArcGisServer/sampleserver6/CommercialDamageAssessmentFS.json index da4408902a2..c791180a7fb 100644 --- a/wwwroot/test/ArcGisServer/sampleserver6/CommercialDamageAssessmentFS.json +++ b/wwwroot/test/ArcGisServer/sampleserver6/CommercialDamageAssessmentFS.json @@ -17,19 +17,19 @@ "wkt": "PROJCS[\"NAD_1983_HARN_StatePlane_Illinois_East_FIPS_1201\",GEOGCS[\"GCS_North_American_1983_HARN\",DATUM[\"D_North_American_1983_HARN\",SPHEROID[\"GRS_1980\",6378137.0,298.257222101]],PRIMEM[\"Greenwich\",0.0],UNIT[\"Degree\",0.0174532925199433]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"False_Easting\",984250.0],PARAMETER[\"False_Northing\",0.0],PARAMETER[\"Central_Meridian\",-88.33333333333333],PARAMETER[\"Scale_Factor\",0.999975],PARAMETER[\"Latitude_Of_Origin\",36.66666666666666],UNIT[\"Foot_US\",0.3048006096012192]]" }, "initialExtent": { - "xmin": -1.690898010527849E7, - "ymin": -1.1437644549823422E7, - "xmax": 1.592012017779385E7, - "ymax": 2.795727578986338E7, + "xmin": -1.690898010527849e7, + "ymin": -1.1437644549823422e7, + "xmax": 1.592012017779385e7, + "ymax": 2.795727578986338e7, "spatialReference": { "wkt": "PROJCS[\"NAD_1983_HARN_StatePlane_Illinois_East_FIPS_1201\",GEOGCS[\"GCS_North_American_1983_HARN\",DATUM[\"D_North_American_1983_HARN\",SPHEROID[\"GRS_1980\",6378137.0,298.257222101]],PRIMEM[\"Greenwich\",0.0],UNIT[\"Degree\",0.0174532925199433]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"False_Easting\",984250.0],PARAMETER[\"False_Northing\",0.0],PARAMETER[\"Central_Meridian\",-88.33333333333333],PARAMETER[\"Scale_Factor\",0.999975],PARAMETER[\"Latitude_Of_Origin\",36.66666666666666],UNIT[\"Foot_US\",0.3048006096012192]]" } }, "fullExtent": { - "xmin": -1.1624389406534828E7, - "ymin": -1.8184589842326313E7, - "xmax": 1.635446026360669E7, - "ymax": 1.6907485524563707E7, + "xmin": -1.1624389406534828e7, + "ymin": -1.8184589842326313e7, + "xmax": 1.635446026360669e7, + "ymax": 1.6907485524563707e7, "spatialReference": { "wkt": "PROJCS[\"NAD_1983_HARN_StatePlane_Illinois_East_FIPS_1201\",GEOGCS[\"GCS_North_American_1983_HARN\",DATUM[\"D_North_American_1983_HARN\",SPHEROID[\"GRS_1980\",6378137.0,298.257222101]],PRIMEM[\"Greenwich\",0.0],UNIT[\"Degree\",0.0174532925199433]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"False_Easting\",984250.0],PARAMETER[\"False_Northing\",0.0],PARAMETER[\"Central_Meridian\",-88.33333333333333],PARAMETER[\"Scale_Factor\",0.999975],PARAMETER[\"Latitude_Of_Origin\",36.66666666666666],UNIT[\"Foot_US\",0.3048006096012192]]" } @@ -66,4 +66,4 @@ "relationships": [], "enableZDefaults": false, "allowUpdateWithoutMValues": false -} \ No newline at end of file +} diff --git a/wwwroot/test/ArcGisServer/sampleserver6/CommercialDamageAssessmentMS.json b/wwwroot/test/ArcGisServer/sampleserver6/CommercialDamageAssessmentMS.json index d839911a7bf..ddbaa9a6596 100644 --- a/wwwroot/test/ArcGisServer/sampleserver6/CommercialDamageAssessmentMS.json +++ b/wwwroot/test/ArcGisServer/sampleserver6/CommercialDamageAssessmentMS.json @@ -24,19 +24,19 @@ }, "singleFusedMapCache": false, "initialExtent": { - "xmin": -1.690898010527849E7, - "ymin": -1.1437644549823422E7, - "xmax": 1.592012017779385E7, - "ymax": 2.795727578986338E7, + "xmin": -1.690898010527849e7, + "ymin": -1.1437644549823422e7, + "xmax": 1.592012017779385e7, + "ymax": 2.795727578986338e7, "spatialReference": { "wkt": "PROJCS[\"NAD_1983_HARN_StatePlane_Illinois_East_FIPS_1201\",GEOGCS[\"GCS_North_American_1983_HARN\",DATUM[\"D_North_American_1983_HARN\",SPHEROID[\"GRS_1980\",6378137.0,298.257222101]],PRIMEM[\"Greenwich\",0.0],UNIT[\"Degree\",0.0174532925199433]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"False_Easting\",984250.0],PARAMETER[\"False_Northing\",0.0],PARAMETER[\"Central_Meridian\",-88.33333333333333],PARAMETER[\"Scale_Factor\",0.999975],PARAMETER[\"Latitude_Of_Origin\",36.66666666666666],UNIT[\"Foot_US\",0.3048006096012192]]" } }, "fullExtent": { - "xmin": -1.1624389406534828E7, - "ymin": -1.8184589842326313E7, - "xmax": 1.635446026360669E7, - "ymax": 1.6907485524563707E7, + "xmin": -1.1624389406534828e7, + "ymin": -1.8184589842326313e7, + "xmax": 1.635446026360669e7, + "ymax": 1.6907485524563707e7, "spatialReference": { "wkt": "PROJCS[\"NAD_1983_HARN_StatePlane_Illinois_East_FIPS_1201\",GEOGCS[\"GCS_North_American_1983_HARN\",DATUM[\"D_North_American_1983_HARN\",SPHEROID[\"GRS_1980\",6378137.0,298.257222101]],PRIMEM[\"Greenwich\",0.0],UNIT[\"Degree\",0.0174532925199433]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"False_Easting\",984250.0],PARAMETER[\"False_Northing\",0.0],PARAMETER[\"Central_Meridian\",-88.33333333333333],PARAMETER[\"Scale_Factor\",0.999975],PARAMETER[\"Latitude_Of_Origin\",36.66666666666666],UNIT[\"Foot_US\",0.3048006096012192]]" } @@ -64,4 +64,4 @@ "maxImageHeight": 4096, "maxImageWidth": 4096, "supportedExtensions": "FeatureServer" -} \ No newline at end of file +} diff --git a/wwwroot/test/ArcGisServer/sampleserver6/CommunityAddressingFS.json b/wwwroot/test/ArcGisServer/sampleserver6/CommunityAddressingFS.json index e51ac3605d2..5cd40fdd30a 100644 --- a/wwwroot/test/ArcGisServer/sampleserver6/CommunityAddressingFS.json +++ b/wwwroot/test/ArcGisServer/sampleserver6/CommunityAddressingFS.json @@ -91,4 +91,4 @@ ] } ] -} \ No newline at end of file +} diff --git a/wwwroot/test/ArcGisServer/sampleserver6/CommunityAddressingMS.json b/wwwroot/test/ArcGisServer/sampleserver6/CommunityAddressingMS.json index 9de42f0d2c6..2e61dba7ed9 100644 --- a/wwwroot/test/ArcGisServer/sampleserver6/CommunityAddressingMS.json +++ b/wwwroot/test/ArcGisServer/sampleserver6/CommunityAddressingMS.json @@ -88,4 +88,4 @@ "maxImageHeight": 4096, "maxImageWidth": 4096, "supportedExtensions": "FeatureServer" -} \ No newline at end of file +} diff --git a/wwwroot/test/ArcGisServer/sampleserver6/Elevation.json b/wwwroot/test/ArcGisServer/sampleserver6/Elevation.json index 1251d8a8582..cf8a62e8496 100644 --- a/wwwroot/test/ArcGisServer/sampleserver6/Elevation.json +++ b/wwwroot/test/ArcGisServer/sampleserver6/Elevation.json @@ -23,4 +23,4 @@ "type": "MapServer" } ] -} \ No newline at end of file +} diff --git a/wwwroot/test/ArcGisServer/sampleserver6/services.json b/wwwroot/test/ArcGisServer/sampleserver6/services.json index 92c08bdd4e6..6d4ad3ab6cf 100644 --- a/wwwroot/test/ArcGisServer/sampleserver6/services.json +++ b/wwwroot/test/ArcGisServer/sampleserver6/services.json @@ -1,9 +1,6 @@ { "currentVersion": 10.71, - "folders": [ - "AGP", - "Elevation" - ], + "folders": ["AGP", "Elevation"], "services": [ { "name": "911CallsHotspotGP", @@ -38,4 +35,4 @@ "type": "MapServer" } ] -} \ No newline at end of file +} diff --git a/wwwroot/test/CKAN/taxation-statistics-package.json b/wwwroot/test/CKAN/taxation-statistics-package.json index 7be30458062..6df0620e781 100644 --- a/wwwroot/test/CKAN/taxation-statistics-package.json +++ b/wwwroot/test/CKAN/taxation-statistics-package.json @@ -1,247 +1,247 @@ { - "help": "https://data.gov.au/api/3/action/help_show?name=package_show", - "result": { - "author": "Australian Taxation Office", - "author_email": null, - "contact_point": "taxstats@ato.gov.au", - "creator_user_id": "6ada23ea-1931-4a7a-853f-827adc7aab8d", - "data_state": "active", - "field_of_research": [], - "geospatial_topic": [], - "groups": [ - { - "description": "Formulating policy to regulate and support the private sector, including small business and non-profit organisations. Developing strategies to assist business growth and management. Implementing advocacy programs, providing funding and administering regulatory bodies.\r\n\r\nIncludes components listed at http://agift.naa.gov.au/000411.htm", - "display_name": "Business Support and Regulation", - "id": "ada735db-98c9-42cb-8969-dc356ea4281e", - "image_display_url": "", - "name": "business", - "title": "Business Support and Regulation" - } - ], - "id": "95d9e550-8b36-4273-8df7-2b76c140e73a", - "isopen": true, - "jurisdiction": "Commonwealth of Australia", - "language": "English", - "license_id": "cc-by", - "license_title": "Creative Commons Attribution 3.0 Australia", - "license_url": "http://creativecommons.org/licenses/by/3.0/au/", - "maintainer": "jamie_fisher", - "maintainer_email": null, - "metadata_created": "2014-04-24T01:44:35.383952", - "metadata_modified": "2015-08-25T08:04:49.881011", - "name": "taxation-statistics-2011-12", - "notes": "Taxation statistics: an overview of the income and tax status of Australian individuals, companies, partnerships, trusts and funds for 2011-12. ", - "num_resources": 103, - "num_tags": 4, - "organization": { - "approval_status": "approved", - "created": "2013-04-17T12:42:18.289586", - "description": "Australian Taxation Office", - "id": "90d1f157-c01f-4589-93bf-600dee01996e", - "image_url": "20140505-035445.915211atostacked.jpg", - "is_organization": true, - "name": "australiantaxationoffice", - "revision_id": "2cb98e06-4fb2-4ff2-9ca0-f909066f7419", - "state": "active", - "title": "Australian Taxation Office", - "type": "organization" - }, - "owner_org": "90d1f157-c01f-4589-93bf-600dee01996e", - "private": false, - "relationships_as_object": [], - "relationships_as_subject": [], - "resources": [ - { - "cache_last_updated": null, - "cache_url": null, - "created": "2014-07-15T07:55:44.215179", - "datastore_active": false, - "description": "For use in web-based data visualisation of this collection", - "format": "JSON", - "hash": "", - "id": "eb9e9587-b2d5-4d92-b4e5-bfc5c61a02c9", - "last_modified": "2014-07-15T07:57:18.692156", - "mimetype": null, - "mimetype_inner": null, - "name": "Taxation statistics 2011-12 GeoJSON", - "package_id": "95d9e550-8b36-4273-8df7-2b76c140e73a", - "position": 97, - "resource_type": null, - "revision_id": "3b87ae92-367d-426c-b420-722a516bd2ea", - "size": null, - "state": "active", - "url": "http://data.gov.au/geoserver/taxation-statistics-2011-12/wfs?request=GetFeature&typeName=95d9e550_8b36_4273_8df7_2b76c140e73a&outputFormat=json", - "url_type": null, - "webstore_last_updated": null, - "webstore_url": null - }, - { - "cache_last_updated": null, - "cache_url": null, - "created": "2014-07-15T07:55:50.273031", - "datastore_active": false, - "description": "View the data in this dataset online via an online map", - "format": "wms", - "hash": "", - "id": "205ef0d1-521b-4e3c-a26c-4e49e00f1a05", - "last_modified": "2015-08-25T08:04:40.677513", - "mimetype": null, - "mimetype_inner": null, - "name": "Taxation statistics 2011-12 - Preview this Dataset (WMS)", - "package_id": "95d9e550-8b36-4273-8df7-2b76c140e73a", - "position": 98, - "resource_type": null, - "revision_id": "95382692-1cc9-423e-8f2b-678d807ca059", - "size": null, - "state": "active", - "url": "http://data.gov.au/geoserver/taxation-statistics-2011-12/wms?request=GetCapabilities", - "url_type": null, - "webstore_last_updated": null, - "webstore_url": null, - "wms_layer": "95d9e550_8b36_4273_8df7_2b76c140e73a" - }, - { - "cache_last_updated": null, - "cache_url": null, - "created": "2014-07-15T07:56:02.702229", - "datastore_active": false, - "description": "WFS API Link for use in Desktop GIS tools", - "format": "WFS", - "hash": "", - "id": "a190cc79-8d8d-4d6c-b4c0-04ce78639f6b", - "last_modified": "2015-08-25T08:04:48.886917", - "mimetype": null, - "mimetype_inner": null, - "name": "Taxation statistics 2011-12 Web Feature Service API Link", - "package_id": "95d9e550-8b36-4273-8df7-2b76c140e73a", - "position": 99, - "resource_type": null, - "revision_id": "7dbbbed6-f1e3-43a9-ad31-54360b27f406", - "size": null, - "state": "active", - "url": "http://data.gov.au/geoserver/taxation-statistics-2011-12/wfs?request=GetCapabilities", - "url_type": null, - "webstore_last_updated": null, - "webstore_url": null - }, - { - "cache_last_updated": null, - "cache_url": null, - "created": "2015-01-19T07:41:02.882981", - "datastore_active": false, - "description": "For summary of the objects/data in this collection", - "format": "CSV", - "hash": "", - "id": "c1eeeb7d-797d-4a7f-80a1-dd45aedae459", - "last_modified": "2015-01-19T07:41:38.683704", - "mimetype": null, - "mimetype_inner": null, - "name": "Taxation Statistics 2011-12 CSV", - "package_id": "95d9e550-8b36-4273-8df7-2b76c140e73a", - "position": 100, - "resource_type": null, - "revision_id": "3b87ae92-367d-426c-b420-722a516bd2ea", - "size": null, - "state": "active", - "url": "http://data.gov.au/geoserver/taxation-statistics-2011-12/wfs?request=GetFeature&typeName=95d9e550_8b36_4273_8df7_2b76c140e73a&outputFormat=csv", - "url_type": null, - "webstore_last_updated": null, - "webstore_url": null - }, - { - "cache_last_updated": null, - "cache_url": null, - "created": "2015-01-29T07:40:40.124708", - "datastore_active": false, - "description": "For summary of the objects/data in this collection", - "format": "CSV", - "hash": "", - "id": "4862ee61-c03f-48eb-92f5-5036b6ea0cc0", - "last_modified": "2015-01-29T07:41:55.091577", - "mimetype": null, - "mimetype_inner": null, - "name": "Taxation Statistics 2011-12 CSV", - "package_id": "95d9e550-8b36-4273-8df7-2b76c140e73a", - "position": 101, - "resource_type": null, - "revision_id": "3b87ae92-367d-426c-b420-722a516bd2ea", - "size": null, - "state": "active", - "url": "http://data.gov.au/geoserver/taxation-statistics-2011-12/wfs?request=GetFeature&typeName=95d9e550_8b36_4273_8df7_2b76c140e73a&outputFormat=csv", - "url_type": null, - "webstore_last_updated": null, - "webstore_url": null - }, - { - "cache_last_updated": null, - "cache_url": null, - "created": "2015-03-19T07:44:43.369016", - "datastore_active": false, - "description": "For summary of the objects/data in this collection", - "format": "CSV", - "hash": "", - "id": "4c5a6e39-262b-4a06-88ce-2b6055f7070d", - "last_modified": "2015-03-19T07:45:03.085944", - "mimetype": null, - "mimetype_inner": null, - "name": "Taxation Statistics 2011-12 CSV", - "package_id": "95d9e550-8b36-4273-8df7-2b76c140e73a", - "position": 102, - "resource_type": null, - "revision_id": "3b87ae92-367d-426c-b420-722a516bd2ea", - "size": null, - "state": "active", - "url": "http://data.gov.au/geoserver/taxation-statistics-2011-12/wfs?request=GetFeature&typeName=95d9e550_8b36_4273_8df7_2b76c140e73a&outputFormat=csv", - "url_type": null, - "webstore_last_updated": null, - "webstore_url": null - } - ], - "revision_id": "51f7809c-0cdb-47fb-ba61-f467a4086ba3", - "spatial": "{\"type\":\"Polygon\",\"coordinates\":[[[96.816941408,-43.598215003],[96.816941408,-9.142175977],[159.109219008,-9.142175977],[159.109219008,-43.598215003],[96.816941408,-43.598215003]]]}", - "spatial_coverage": "{\"type\": \"Polygon\", \"coordinates\": [[[96.816941408, -43.598215003], [159.109219008, -43.598215003], [159.109219008, -9.142175977], [96.816941408, -9.142175977], [96.816941408, -43.598215003]]]}", + "help": "https://data.gov.au/api/3/action/help_show?name=package_show", + "result": { + "author": "Australian Taxation Office", + "author_email": null, + "contact_point": "taxstats@ato.gov.au", + "creator_user_id": "6ada23ea-1931-4a7a-853f-827adc7aab8d", + "data_state": "active", + "field_of_research": [], + "geospatial_topic": [], + "groups": [ + { + "description": "Formulating policy to regulate and support the private sector, including small business and non-profit organisations. Developing strategies to assist business growth and management. Implementing advocacy programs, providing funding and administering regulatory bodies.\r\n\r\nIncludes components listed at http://agift.naa.gov.au/000411.htm", + "display_name": "Business Support and Regulation", + "id": "ada735db-98c9-42cb-8969-dc356ea4281e", + "image_display_url": "", + "name": "business", + "title": "Business Support and Regulation" + } + ], + "id": "95d9e550-8b36-4273-8df7-2b76c140e73a", + "isopen": true, + "jurisdiction": "Commonwealth of Australia", + "language": "English", + "license_id": "cc-by", + "license_title": "Creative Commons Attribution 3.0 Australia", + "license_url": "http://creativecommons.org/licenses/by/3.0/au/", + "maintainer": "jamie_fisher", + "maintainer_email": null, + "metadata_created": "2014-04-24T01:44:35.383952", + "metadata_modified": "2015-08-25T08:04:49.881011", + "name": "taxation-statistics-2011-12", + "notes": "Taxation statistics: an overview of the income and tax status of Australian individuals, companies, partnerships, trusts and funds for 2011-12. ", + "num_resources": 103, + "num_tags": 4, + "organization": { + "approval_status": "approved", + "created": "2013-04-17T12:42:18.289586", + "description": "Australian Taxation Office", + "id": "90d1f157-c01f-4589-93bf-600dee01996e", + "image_url": "20140505-035445.915211atostacked.jpg", + "is_organization": true, + "name": "australiantaxationoffice", + "revision_id": "2cb98e06-4fb2-4ff2-9ca0-f909066f7419", + "state": "active", + "title": "Australian Taxation Office", + "type": "organization" + }, + "owner_org": "90d1f157-c01f-4589-93bf-600dee01996e", + "private": false, + "relationships_as_object": [], + "relationships_as_subject": [], + "resources": [ + { + "cache_last_updated": null, + "cache_url": null, + "created": "2014-07-15T07:55:44.215179", + "datastore_active": false, + "description": "For use in web-based data visualisation of this collection", + "format": "JSON", + "hash": "", + "id": "eb9e9587-b2d5-4d92-b4e5-bfc5c61a02c9", + "last_modified": "2014-07-15T07:57:18.692156", + "mimetype": null, + "mimetype_inner": null, + "name": "Taxation statistics 2011-12 GeoJSON", + "package_id": "95d9e550-8b36-4273-8df7-2b76c140e73a", + "position": 97, + "resource_type": null, + "revision_id": "3b87ae92-367d-426c-b420-722a516bd2ea", + "size": null, + "state": "active", + "url": "http://data.gov.au/geoserver/taxation-statistics-2011-12/wfs?request=GetFeature&typeName=95d9e550_8b36_4273_8df7_2b76c140e73a&outputFormat=json", + "url_type": null, + "webstore_last_updated": null, + "webstore_url": null + }, + { + "cache_last_updated": null, + "cache_url": null, + "created": "2014-07-15T07:55:50.273031", + "datastore_active": false, + "description": "View the data in this dataset online via an online map", + "format": "wms", + "hash": "", + "id": "205ef0d1-521b-4e3c-a26c-4e49e00f1a05", + "last_modified": "2015-08-25T08:04:40.677513", + "mimetype": null, + "mimetype_inner": null, + "name": "Taxation statistics 2011-12 - Preview this Dataset (WMS)", + "package_id": "95d9e550-8b36-4273-8df7-2b76c140e73a", + "position": 98, + "resource_type": null, + "revision_id": "95382692-1cc9-423e-8f2b-678d807ca059", + "size": null, + "state": "active", + "url": "http://data.gov.au/geoserver/taxation-statistics-2011-12/wms?request=GetCapabilities", + "url_type": null, + "webstore_last_updated": null, + "webstore_url": null, + "wms_layer": "95d9e550_8b36_4273_8df7_2b76c140e73a" + }, + { + "cache_last_updated": null, + "cache_url": null, + "created": "2014-07-15T07:56:02.702229", + "datastore_active": false, + "description": "WFS API Link for use in Desktop GIS tools", + "format": "WFS", + "hash": "", + "id": "a190cc79-8d8d-4d6c-b4c0-04ce78639f6b", + "last_modified": "2015-08-25T08:04:48.886917", + "mimetype": null, + "mimetype_inner": null, + "name": "Taxation statistics 2011-12 Web Feature Service API Link", + "package_id": "95d9e550-8b36-4273-8df7-2b76c140e73a", + "position": 99, + "resource_type": null, + "revision_id": "7dbbbed6-f1e3-43a9-ad31-54360b27f406", + "size": null, + "state": "active", + "url": "http://data.gov.au/geoserver/taxation-statistics-2011-12/wfs?request=GetCapabilities", + "url_type": null, + "webstore_last_updated": null, + "webstore_url": null + }, + { + "cache_last_updated": null, + "cache_url": null, + "created": "2015-01-19T07:41:02.882981", + "datastore_active": false, + "description": "For summary of the objects/data in this collection", + "format": "CSV", + "hash": "", + "id": "c1eeeb7d-797d-4a7f-80a1-dd45aedae459", + "last_modified": "2015-01-19T07:41:38.683704", + "mimetype": null, + "mimetype_inner": null, + "name": "Taxation Statistics 2011-12 CSV", + "package_id": "95d9e550-8b36-4273-8df7-2b76c140e73a", + "position": 100, + "resource_type": null, + "revision_id": "3b87ae92-367d-426c-b420-722a516bd2ea", + "size": null, + "state": "active", + "url": "http://data.gov.au/geoserver/taxation-statistics-2011-12/wfs?request=GetFeature&typeName=95d9e550_8b36_4273_8df7_2b76c140e73a&outputFormat=csv", + "url_type": null, + "webstore_last_updated": null, + "webstore_url": null + }, + { + "cache_last_updated": null, + "cache_url": null, + "created": "2015-01-29T07:40:40.124708", + "datastore_active": false, + "description": "For summary of the objects/data in this collection", + "format": "CSV", + "hash": "", + "id": "4862ee61-c03f-48eb-92f5-5036b6ea0cc0", + "last_modified": "2015-01-29T07:41:55.091577", + "mimetype": null, + "mimetype_inner": null, + "name": "Taxation Statistics 2011-12 CSV", + "package_id": "95d9e550-8b36-4273-8df7-2b76c140e73a", + "position": 101, + "resource_type": null, + "revision_id": "3b87ae92-367d-426c-b420-722a516bd2ea", + "size": null, + "state": "active", + "url": "http://data.gov.au/geoserver/taxation-statistics-2011-12/wfs?request=GetFeature&typeName=95d9e550_8b36_4273_8df7_2b76c140e73a&outputFormat=csv", + "url_type": null, + "webstore_last_updated": null, + "webstore_url": null + }, + { + "cache_last_updated": null, + "cache_url": null, + "created": "2015-03-19T07:44:43.369016", + "datastore_active": false, + "description": "For summary of the objects/data in this collection", + "format": "CSV", + "hash": "", + "id": "4c5a6e39-262b-4a06-88ce-2b6055f7070d", + "last_modified": "2015-03-19T07:45:03.085944", + "mimetype": null, + "mimetype_inner": null, + "name": "Taxation Statistics 2011-12 CSV", + "package_id": "95d9e550-8b36-4273-8df7-2b76c140e73a", + "position": 102, + "resource_type": null, + "revision_id": "3b87ae92-367d-426c-b420-722a516bd2ea", + "size": null, + "state": "active", + "url": "http://data.gov.au/geoserver/taxation-statistics-2011-12/wfs?request=GetFeature&typeName=95d9e550_8b36_4273_8df7_2b76c140e73a&outputFormat=csv", + "url_type": null, + "webstore_last_updated": null, + "webstore_url": null + } + ], + "revision_id": "51f7809c-0cdb-47fb-ba61-f467a4086ba3", + "spatial": "{\"type\":\"Polygon\",\"coordinates\":[[[96.816941408,-43.598215003],[96.816941408,-9.142175977],[159.109219008,-9.142175977],[159.109219008,-43.598215003],[96.816941408,-43.598215003]]]}", + "spatial_coverage": "{\"type\": \"Polygon\", \"coordinates\": [[[96.816941408, -43.598215003], [159.109219008, -43.598215003], [159.109219008, -9.142175977], [96.816941408, -9.142175977], [96.816941408, -43.598215003]]]}", + "state": "active", + "tags": [ + { + "display_name": "2011-12", + "id": "d0332024-1699-4125-af32-69c989d06dfe", + "name": "2011-12", + "state": "active", + "vocabulary_id": null + }, + { + "display_name": "statistics", + "id": "2cf6f80d-b548-485f-8eef-19e81c1f8002", + "name": "statistics", + "state": "active", + "vocabulary_id": null + }, + { + "display_name": "tax stats", + "id": "ca81115d-d136-4498-a9c5-d9d5e10a291b", + "name": "tax stats", + "state": "active", + "vocabulary_id": null + }, + { + "display_name": "taxation statistics", + "id": "e477492c-5a24-4074-92e7-ba7cd5113bbc", + "name": "taxation statistics", "state": "active", - "tags": [ - { - "display_name": "2011-12", - "id": "d0332024-1699-4125-af32-69c989d06dfe", - "name": "2011-12", - "state": "active", - "vocabulary_id": null - }, - { - "display_name": "statistics", - "id": "2cf6f80d-b548-485f-8eef-19e81c1f8002", - "name": "statistics", - "state": "active", - "vocabulary_id": null - }, - { - "display_name": "tax stats", - "id": "ca81115d-d136-4498-a9c5-d9d5e10a291b", - "name": "tax stats", - "state": "active", - "vocabulary_id": null - }, - { - "display_name": "taxation statistics", - "id": "e477492c-5a24-4074-92e7-ba7cd5113bbc", - "name": "taxation statistics", - "state": "active", - "vocabulary_id": null - } - ], - "temporal_coverage_from": "2011–12 finanacial year", - "temporal_coverage_to": "", - "title": "Taxation Statistics 2011-12", - "tracking_summary": { - "recent": 25, - "total": 3073 - }, - "type": "dataset", - "update_freq": "daily", - "url": "", - "version": "" + "vocabulary_id": null + } + ], + "temporal_coverage_from": "2011–12 finanacial year", + "temporal_coverage_to": "", + "title": "Taxation Statistics 2011-12", + "tracking_summary": { + "recent": 25, + "total": 3073 }, - "success": true + "type": "dataset", + "update_freq": "daily", + "url": "", + "version": "" + }, + "success": true } diff --git a/wwwroot/test/CKAN/taxation-statistics-wms-resource.json b/wwwroot/test/CKAN/taxation-statistics-wms-resource.json index 7d892d265d3..d6ef7bd397b 100644 --- a/wwwroot/test/CKAN/taxation-statistics-wms-resource.json +++ b/wwwroot/test/CKAN/taxation-statistics-wms-resource.json @@ -1,29 +1,29 @@ { - "help": "https://data.gov.au/api/3/action/help_show?name=resource_show", - "success": true, - "result": { - "cache_last_updated": null, - "package_id": "95d9e550-8b36-4273-8df7-2b76c140e73a", - "webstore_last_updated": null, - "datastore_active": false, - "id": "205ef0d1-521b-4e3c-a26c-4e49e00f1a05", - "size": null, - "wms_layer": "95d9e550_8b36_4273_8df7_2b76c140e73a", - "state": "active", - "hash": "", - "description": "View the data in this dataset online via an online map", - "format": "wms", - "last_modified": "2015-08-25T08:04:40.677513", - "url_type": null, - "mimetype": null, - "cache_url": null, - "name": "Taxation statistics 2011-12 - Preview this Dataset (WMS)", - "created": "2014-07-15T07:55:50.273031", - "url": "http://data.gov.au/geoserver/taxation-statistics-2011-12/wms?request=GetCapabilities", - "webstore_url": null, - "mimetype_inner": null, - "position": 98, - "revision_id": "95382692-1cc9-423e-8f2b-678d807ca059", - "resource_type": null - } + "help": "https://data.gov.au/api/3/action/help_show?name=resource_show", + "success": true, + "result": { + "cache_last_updated": null, + "package_id": "95d9e550-8b36-4273-8df7-2b76c140e73a", + "webstore_last_updated": null, + "datastore_active": false, + "id": "205ef0d1-521b-4e3c-a26c-4e49e00f1a05", + "size": null, + "wms_layer": "95d9e550_8b36_4273_8df7_2b76c140e73a", + "state": "active", + "hash": "", + "description": "View the data in this dataset online via an online map", + "format": "wms", + "last_modified": "2015-08-25T08:04:40.677513", + "url_type": null, + "mimetype": null, + "cache_url": null, + "name": "Taxation statistics 2011-12 - Preview this Dataset (WMS)", + "created": "2014-07-15T07:55:50.273031", + "url": "http://data.gov.au/geoserver/taxation-statistics-2011-12/wms?request=GetCapabilities", + "webstore_url": null, + "mimetype_inner": null, + "position": 98, + "revision_id": "95382692-1cc9-423e-8f2b-678d807ca059", + "resource_type": null + } } diff --git a/wwwroot/test/Cesium3DTiles/tileset.json b/wwwroot/test/Cesium3DTiles/tileset.json index eaddb399a29..e18258af721 100644 --- a/wwwroot/test/Cesium3DTiles/tileset.json +++ b/wwwroot/test/Cesium3DTiles/tileset.json @@ -5,38 +5,13 @@ "geometricError": 500, "root": { "transform": [ - 96.86356343768793, - 24.848542777253734, - 0, - 0, - -15.986465724980844, - 62.317780594908875, - 76.5566922962899, - 0, - 19.02322243409411, - -74.15554020821229, - 64.3356267137516, - 0, - 1215107.7612304366, - -4736682.902037748, - 4081926.095098698, - 1 + 96.86356343768793, 24.848542777253734, 0, 0, -15.986465724980844, + 62.317780594908875, 76.5566922962899, 0, 19.02322243409411, + -74.15554020821229, 64.3356267137516, 0, 1215107.7612304366, + -4736682.902037748, 4081926.095098698, 1 ], "boundingVolume": { - "box": [ - 0, - 0, - 0, - 7.0955, - 0, - 0, - 0, - 3.1405, - 0, - 0, - 0, - 5.0375 - ] + "box": [0, 0, 0, 7.0955, 0, 0, 0, 3.1405, 0, 0, 0, 5.0375] }, "geometricError": 1, "refine": "REPLACE", @@ -46,20 +21,7 @@ "children": [ { "boundingVolume": { - "box": [ - 0, - 0, - 0, - 7.0955, - 0, - 0, - 0, - 3.1405, - 0, - 0, - 0, - 5.0375 - ] + "box": [0, 0, 0, 7.0955, 0, 0, 0, 3.1405, 0, 0, 0, 5.0375] }, "geometricError": 0.1, "content": { @@ -68,20 +30,7 @@ "children": [ { "boundingVolume": { - "box": [ - 0, - 0, - 0, - 7.0955, - 0, - 0, - 0, - 3.1405, - 0, - 0, - 0, - 5.0375 - ] + "box": [0, 0, 0, 7.0955, 0, 0, 0, 3.1405, 0, 0, 0, 5.0375] }, "geometricError": 0, "content": { diff --git a/wwwroot/test/GeoJSON/EsriEnvelope.geojson b/wwwroot/test/GeoJSON/EsriEnvelope.geojson index a5f96f857ef..9c82fcdfb75 100644 --- a/wwwroot/test/GeoJSON/EsriEnvelope.geojson +++ b/wwwroot/test/GeoJSON/EsriEnvelope.geojson @@ -1,35 +1,32 @@ { - "SomeName": { - "type": "FeatureCollection", - "features": [ - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 149.23531999999997, - -35.352484 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "NSW", - "Fcilty_nam": "Queanbeyan", - "Shp_num_an": "Shop 47", - "Shp_centre": "Riverside Plaza", - "Street_add": "131 Monaro Street", - "Locality": "Queanbeyan", - "Postcode": "2620", - "Hrs_of_bus": "09:00-17:00 Monday to Friday, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "67", - "result": "999", - "Audio": "", - "gx_id": "1" - } - } - ] - } + "SomeName": { + "type": "FeatureCollection", + "features": [ + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [149.23531999999997, -35.352484] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "NSW", + "Fcilty_nam": "Queanbeyan", + "Shp_num_an": "Shop 47", + "Shp_centre": "Riverside Plaza", + "Street_add": "131 Monaro Street", + "Locality": "Queanbeyan", + "Postcode": "2620", + "Hrs_of_bus": "09:00-17:00 Monday to Friday, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "67", + "result": "999", + "Audio": "", + "gx_id": "1" + } + } + ] + } } diff --git a/wwwroot/test/GeoJSON/api-list.geojson b/wwwroot/test/GeoJSON/api-list.geojson index 67b5d6c61bb..97b5353d9f1 100644 --- a/wwwroot/test/GeoJSON/api-list.geojson +++ b/wwwroot/test/GeoJSON/api-list.geojson @@ -1,59 +1,95 @@ [ - { - "nested": { - "data": { - "type": "Feature", - "bbox": [-10.0, -10.0, 10.0, 10.0], - "properties": { - "foo": "hi", - "bar": "bye" - }, - "geometry": { - "type": "Polygon", - "coordinates": [ - [ [100.0, 0.0], [101.0, 0.0], [101.0, 1.0], [100.0, 1.0], [100.0, 0.0] ], - [ [100.2, 0.2], [100.8, 0.2], [100.8, 0.8], [100.2, 0.8], [100.2, 0.2] ] - ] - } - } + { + "nested": { + "data": { + "type": "Feature", + "bbox": [-10.0, -10.0, 10.0, 10.0], + "properties": { + "foo": "hi", + "bar": "bye" + }, + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [100.0, 0.0], + [101.0, 0.0], + [101.0, 1.0], + [100.0, 1.0], + [100.0, 0.0] + ], + [ + [100.2, 0.2], + [100.8, 0.2], + [100.8, 0.8], + [100.2, 0.8], + [100.2, 0.2] + ] + ] } - }, - { - "nested": { - "data": { - "type": "Feature", - "bbox": [-10.0, -10.0, 10.0, 10.0], - "properties": { - "foo": "hi", - "bar": "bye" - }, - "geometry": { - "type": "Polygon", - "coordinates": [ - [ [100.0, 0.0], [101.0, 0.0], [101.0, 1.0], [100.0, 1.0], [100.0, 0.0] ], - [ [100.2, 0.2], [100.8, 0.2], [100.8, 0.8], [100.2, 0.8], [100.2, 0.2] ] - ] - } - } + } + } + }, + { + "nested": { + "data": { + "type": "Feature", + "bbox": [-10.0, -10.0, 10.0, 10.0], + "properties": { + "foo": "hi", + "bar": "bye" + }, + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [100.0, 0.0], + [101.0, 0.0], + [101.0, 1.0], + [100.0, 1.0], + [100.0, 0.0] + ], + [ + [100.2, 0.2], + [100.8, 0.2], + [100.8, 0.8], + [100.2, 0.8], + [100.2, 0.2] + ] + ] } - }, - { - "nested": { - "data": { - "type": "Feature", - "bbox": [-10.0, -10.0, 10.0, 10.0], - "properties": { - "foo": "hi", - "bar": "bye" - }, - "geometry": { - "type": "Polygon", - "coordinates": [ - [ [100.0, 0.0], [101.0, 0.0], [101.0, 1.0], [100.0, 1.0], [100.0, 0.0] ], - [ [100.2, 0.2], [100.8, 0.2], [100.8, 0.8], [100.2, 0.8], [100.2, 0.2] ] - ] - } - } + } + } + }, + { + "nested": { + "data": { + "type": "Feature", + "bbox": [-10.0, -10.0, 10.0, 10.0], + "properties": { + "foo": "hi", + "bar": "bye" + }, + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [100.0, 0.0], + [101.0, 0.0], + [101.0, 1.0], + [100.0, 1.0], + [100.0, 0.0] + ], + [ + [100.2, 0.2], + [100.8, 0.2], + [100.8, 0.8], + [100.2, 0.8], + [100.2, 0.2] + ] + ] } + } } -] \ No newline at end of file + } +] diff --git a/wwwroot/test/GeoJSON/api.geojson b/wwwroot/test/GeoJSON/api.geojson index 7ca0bb410ca..9e49d380ca2 100644 --- a/wwwroot/test/GeoJSON/api.geojson +++ b/wwwroot/test/GeoJSON/api.geojson @@ -1,19 +1,31 @@ { - "nested": { - "data": { - "type": "Feature", - "bbox": [-10.0, -10.0, 10.0, 10.0], - "properties": { - "foo": "hi", - "bar": "bye" - }, - "geometry": { - "type": "Polygon", - "coordinates": [ - [ [100.0, 0.0], [101.0, 0.0], [101.0, 1.0], [100.0, 1.0], [100.0, 0.0] ], - [ [100.2, 0.2], [100.8, 0.2], [100.8, 0.8], [100.2, 0.8], [100.2, 0.2] ] - ] - } - } + "nested": { + "data": { + "type": "Feature", + "bbox": [-10.0, -10.0, 10.0, 10.0], + "properties": { + "foo": "hi", + "bar": "bye" + }, + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [100.0, 0.0], + [101.0, 0.0], + [101.0, 1.0], + [100.0, 1.0], + [100.0, 0.0] + ], + [ + [100.2, 0.2], + [100.8, 0.2], + [100.8, 0.8], + [100.2, 0.8], + [100.2, 0.2] + ] + ] + } } + } } diff --git a/wwwroot/test/GeoJSON/bike_racks.geojson b/wwwroot/test/GeoJSON/bike_racks.geojson index cd45fa86b31..4b86e97dbb5 100644 --- a/wwwroot/test/GeoJSON/bike_racks.geojson +++ b/wwwroot/test/GeoJSON/bike_racks.geojson @@ -1 +1,11032 @@ -{"type":"FeatureCollection","totalFeatures":315,"features":[{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.1","geometry":{"type":"Point","coordinates":[542876.9802999999,6898697.6111]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE970","type":"Hoop_Big","material":"Stainless Steel","number_of_":2,"comments":"Also associated with projects CCR6 and CKE6","documents":"../photos/55/k232p114.jpg","inspectors":null,"inspection":"2009-12-14Z","constructi":"2009-12-17Z","record_cre":"2009-12-14Z","last_updat":null,"update_dat":"2010-11-19Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":"415","project_nu":"CLE5","file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":2,"historic_c":0E-11,"funding_ba":"Capex"}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.2","geometry":{"type":"Point","coordinates":[542854.8649000004,6898821.4659]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE971","type":"Hoop_Big","material":"Stainless Steel","number_of_":2,"comments":"Also associated with projects CCR6 and CKE6","documents":"../photos/55/k232p149.jpg","inspectors":null,"inspection":"2009-12-14Z","constructi":"2009-12-17Z","record_cre":"2009-12-14Z","last_updat":null,"update_dat":"2010-11-19Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":"415","project_nu":"CLE5","file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":2,"historic_c":0E-11,"funding_ba":"Capex"}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.3","geometry":{"type":"Point","coordinates":[542841.3746999996,6898930.1938]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE972","type":"Hoop_Big","material":"Stainless Steel","number_of_":2,"comments":"Also associated with projects CCR6 and CKE6","documents":"../photos/55/k232p161.jpg","inspectors":null,"inspection":"2009-12-14Z","constructi":"2009-12-17Z","record_cre":"2009-12-14Z","last_updat":null,"update_dat":"2010-11-19Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":"415","project_nu":"CLE5","file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":2,"historic_c":0E-11,"funding_ba":"Capex"}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.4","geometry":{"type":"Point","coordinates":[542808.7211999996,6899137.7415]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE973","type":"Hoop_Big","material":"Stainless Steel","number_of_":2,"comments":"Also associated with projects CCR6 and CKE6","documents":"../photos/55/k232p229.jpg","inspectors":null,"inspection":"2009-12-14Z","constructi":"2009-12-17Z","record_cre":"2009-12-14Z","last_updat":null,"update_dat":"2010-11-19Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":"415","project_nu":"CLE5","file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":2,"historic_c":0E-11,"funding_ba":"Capex"}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.5","geometry":{"type":"Point","coordinates":[542790.8360000001,6899243.2401]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE974","type":"Hoop_Big","material":"Stainless Steel","number_of_":2,"comments":"Also associated with projects CCR6 and CKE6","documents":"../photos/55/k232p236.jpg","inspectors":null,"inspection":"2009-12-14Z","constructi":"2009-12-17Z","record_cre":"2009-12-14Z","last_updat":null,"update_dat":"2010-11-19Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":"415","project_nu":"CLE5","file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":2,"historic_c":0E-11,"funding_ba":"Capex"}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.6","geometry":{"type":"Point","coordinates":[541032.0138999997,6902430.7713]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE1270","type":"Frame Rack","material":"Galvanised Steel","number_of_":1,"comments":null,"documents":"../photos/62/x369p40.jpg","inspectors":null,"inspection":"2010-11-23Z","constructi":null,"record_cre":"2010-11-23Z","last_updat":null,"update_dat":"2011-01-31Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":null,"project_nu":null,"file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":2,"historic_c":0E-11,"funding_ba":"Initial"}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.7","geometry":{"type":"Point","coordinates":[540909.2580000004,6902413.4448]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE57","type":"Wheel Rack","material":"Galvanised Steel","number_of_":0,"comments":null,"documents":"../photos/62/x369p86.jpg","inspectors":null,"inspection":"2010-11-23Z","constructi":null,"record_cre":"2002-11-15Z","last_updat":null,"update_dat":"2010-11-26Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":null,"project_nu":null,"file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":2,"historic_c":0E-11,"funding_ba":null}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.8","geometry":{"type":"Point","coordinates":[540607.7899000002,6906410.9711]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE1290","type":"Frame Rack","material":"Galvanised Steel","number_of_":16,"comments":null,"documents":"../photos/62/x371p2.jpg","inspectors":null,"inspection":"2010-11-19Z","constructi":null,"record_cre":"2010-11-19Z","last_updat":null,"update_dat":"2011-01-31Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":null,"project_nu":null,"file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":2,"historic_c":0E-11,"funding_ba":"Initial"}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.9","geometry":{"type":"Point","coordinates":[540798.7884,6906117.9108]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE1291","type":"Frame Rack","material":"Stainless Steel","number_of_":1,"comments":null,"documents":"../photos/62/x371p30.jpg","inspectors":null,"inspection":"2010-11-19Z","constructi":null,"record_cre":"2010-11-19Z","last_updat":null,"update_dat":"2011-01-31Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":null,"project_nu":null,"file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":2,"historic_c":0E-11,"funding_ba":"Initial"}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.10","geometry":{"type":"Point","coordinates":[540799.2997000003,6906116.2211]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE1292","type":"Frame Rack","material":"Stainless Steel","number_of_":3,"comments":null,"documents":"../photos/62/x371p4.jpg","inspectors":null,"inspection":"2010-11-19Z","constructi":null,"record_cre":"2010-11-19Z","last_updat":null,"update_dat":"2011-01-31Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":null,"project_nu":null,"file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":2,"historic_c":0E-11,"funding_ba":"Initial"}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.11","geometry":{"type":"Point","coordinates":[540766.9594,6906165.731]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE1293","type":"Frame Rack","material":"Galvanised Steel","number_of_":2,"comments":null,"documents":"../photos/62/x371p5.jpg","inspectors":null,"inspection":"2010-11-19Z","constructi":null,"record_cre":"2010-11-19Z","last_updat":null,"update_dat":"2011-01-31Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":null,"project_nu":null,"file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":2,"historic_c":0E-11,"funding_ba":"Initial"}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.12","geometry":{"type":"Point","coordinates":[540766.4977000002,6906167.5607]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE1294","type":"Frame Rack","material":"Stainless Steel","number_of_":2,"comments":null,"documents":"../photos/62/x371p57.jpg","inspectors":null,"inspection":"2010-11-19Z","constructi":null,"record_cre":"2010-11-19Z","last_updat":null,"update_dat":"2011-01-31Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":null,"project_nu":null,"file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":2,"historic_c":0E-11,"funding_ba":"Initial"}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.13","geometry":{"type":"Point","coordinates":[542448.6168999998,6901834.7926]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE1295","type":"Frame Rack","material":"Galvanised Steel","number_of_":4,"comments":null,"documents":"../photos/62/x371p6.jpg","inspectors":null,"inspection":"2010-11-19Z","constructi":null,"record_cre":"2010-11-19Z","last_updat":null,"update_dat":"2011-01-31Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":null,"project_nu":null,"file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":2,"historic_c":0E-11,"funding_ba":"Initial"}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.14","geometry":{"type":"Point","coordinates":[542507.7643999998,6901383.5344]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE1296","type":"Frame Rack","material":"Galvanised Steel","number_of_":4,"comments":null,"documents":"../photos/62/x371p7.jpg","inspectors":null,"inspection":"2010-11-19Z","constructi":null,"record_cre":"2010-11-19Z","last_updat":null,"update_dat":"2011-01-31Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":null,"project_nu":null,"file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":2,"historic_c":0E-11,"funding_ba":"Initial"}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.15","geometry":{"type":"Point","coordinates":[542963.5368999997,6898077.0375]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE1297","type":"Frame Rack","material":"Galvanised Steel","number_of_":4,"comments":null,"documents":"../photos/62/x371p8.jpg","inspectors":null,"inspection":"2010-11-19Z","constructi":null,"record_cre":"2010-11-19Z","last_updat":null,"update_dat":"2011-01-31Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":null,"project_nu":null,"file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":2,"historic_c":0E-11,"funding_ba":"Initial"}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.16","geometry":{"type":"Point","coordinates":[543078.4593000002,6896336.8417]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE1298","type":"Frame Rack","material":"Galvanised Steel","number_of_":5,"comments":null,"documents":"../photos/62/x371p9.jpg","inspectors":null,"inspection":"2010-11-19Z","constructi":null,"record_cre":"2010-11-19Z","last_updat":null,"update_dat":"2011-01-31Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":null,"project_nu":null,"file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":2,"historic_c":0E-11,"funding_ba":"Initial"}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.17","geometry":{"type":"Point","coordinates":[543050.1183000002,6896097.1005]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE1299","type":"Frame Rack","material":"Galvanised Steel","number_of_":8,"comments":null,"documents":"../photos/62/x371p10.jpg","inspectors":null,"inspection":"2010-11-19Z","constructi":null,"record_cre":"2010-11-19Z","last_updat":null,"update_dat":"2011-01-31Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":null,"project_nu":null,"file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":2,"historic_c":0E-11,"funding_ba":"Initial"}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.18","geometry":{"type":"Point","coordinates":[543027.2112999996,6896044.5512]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE1300","type":"Frame Rack","material":"Galvanised Steel","number_of_":8,"comments":null,"documents":"../photos/62/x371p11.jpg","inspectors":null,"inspection":"2010-11-19Z","constructi":null,"record_cre":"2010-11-19Z","last_updat":null,"update_dat":"2011-01-31Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":null,"project_nu":null,"file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":2,"historic_c":0E-11,"funding_ba":"Initial"}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.19","geometry":{"type":"Point","coordinates":[544372.0426000003,6892811.2893]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE1301","type":"Frame Rack","material":"Galvanised Steel","number_of_":9,"comments":null,"documents":"../photos/62/x371p12.jpg","inspectors":null,"inspection":"2010-11-19Z","constructi":null,"record_cre":"2010-11-19Z","last_updat":null,"update_dat":"2011-01-31Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":null,"project_nu":null,"file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":2,"historic_c":0E-11,"funding_ba":"Initial"}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.20","geometry":{"type":"Point","coordinates":[538702.4803999998,6912595.9622]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE48","type":"Wheel Rack","material":"Galvanised Steel","number_of_":20,"comments":null,"documents":"../photos/48/e107p72.jpg","inspectors":null,"inspection":"2009-05-25Z","constructi":null,"record_cre":"2002-10-14Z","last_updat":null,"update_dat":"2011-01-31Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":null,"project_nu":null,"file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":3,"historic_c":0E-11,"funding_ba":null}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.21","geometry":{"type":"Point","coordinates":[539297.5334999999,6912541.5832]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE51","type":"Wheel Rack","material":"Galvanised Steel","number_of_":20,"comments":null,"documents":"../photos/49/e109p18.jpg","inspectors":null,"inspection":"2009-06-02Z","constructi":null,"record_cre":"2002-10-10Z","last_updat":null,"update_dat":"2011-01-31Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":null,"project_nu":null,"file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":3,"historic_c":0E-11,"funding_ba":null}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.22","geometry":{"type":"Point","coordinates":[544879.5330999997,6890296.4612]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE53","type":"Wheel Rack","material":"Galvanised Steel","number_of_":10,"comments":null,"documents":"../photos/46/k162p10.jpg","inspectors":null,"inspection":"2009-02-27Z","constructi":null,"record_cre":"2002-10-23Z","last_updat":null,"update_dat":"2011-01-31Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":null,"project_nu":null,"file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":3,"historic_c":0E-11,"funding_ba":null}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.23","geometry":{"type":"Point","coordinates":[540920.3651,6902507.8456]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE58","type":"Hitching Rail","material":"Stainless Steel","number_of_":2,"comments":null,"documents":"../photos/62/x367p25.jpg","inspectors":null,"inspection":"2010-11-10Z","constructi":null,"record_cre":"2002-11-19Z","last_updat":null,"update_dat":"2010-11-17Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":null,"project_nu":null,"file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":2,"historic_c":0E-11,"funding_ba":null}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.24","geometry":{"type":"Point","coordinates":[530374.7219000002,6914229.2597]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE63","type":"Wheel Rack","material":"Mild Steel","number_of_":4,"comments":null,"documents":"../photos/42/e57p21.jpg","inspectors":null,"inspection":"2009-09-23Z","constructi":null,"record_cre":"2003-02-12Z","last_updat":null,"update_dat":"2010-03-13Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":null,"project_nu":null,"file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":2,"historic_c":0E-11,"funding_ba":null}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.25","geometry":{"type":"Point","coordinates":[538351.1826999998,6890369.2863]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE450","type":"Hitching Rail","material":"Galvanised Steel","number_of_":5,"comments":null,"documents":"../photos/33/w43p33.jpg","inspectors":null,"inspection":"2009-11-24Z","constructi":null,"record_cre":"2007-10-22Z","last_updat":null,"update_dat":"2011-01-31Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":null,"project_nu":null,"file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":2,"historic_c":0E-11,"funding_ba":null}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.26","geometry":{"type":"Point","coordinates":[538939.8288000003,6901869.0956]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE670","type":"Wheel Rack","material":"Galvanised Steel","number_of_":6,"comments":null,"documents":"../photos/45/e84p213.jpg","inspectors":null,"inspection":"2009-03-05Z","constructi":null,"record_cre":"2009-03-05Z","last_updat":null,"update_dat":"2011-01-31Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":null,"project_nu":null,"file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":2,"historic_c":0E-11,"funding_ba":null}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.27","geometry":{"type":"Point","coordinates":[546632.0553000001,6887929.5729]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE1070","type":"Wheel Rack","material":"Galvanised Steel","number_of_":7,"comments":null,"documents":"../photos/56/A155p32.jpg","inspectors":null,"inspection":"2010-02-04Z","constructi":null,"record_cre":"2010-02-04Z","last_updat":null,"update_dat":"2011-01-31Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":null,"project_nu":null,"file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":2,"historic_c":0E-11,"funding_ba":"Initial"}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.28","geometry":{"type":"Point","coordinates":[551836.2138,6884153.5715]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE1090","type":"Wheel Rack","material":"Galvanised Steel","number_of_":5,"comments":null,"documents":"../photos/57/k238p166.jpg","inspectors":null,"inspection":"2010-02-12Z","constructi":"2009-12-08Z","record_cre":"2010-02-12Z","last_updat":null,"update_dat":"2011-01-31Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":null,"project_nu":"W905","file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":2,"historic_c":0E-11,"funding_ba":"Capex"}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.29","geometry":{"type":"Point","coordinates":[552104.2532000002,6884149.5224]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE1091","type":"Wheel Rack","material":"Galvanised Steel","number_of_":5,"comments":null,"documents":"../photos/57/k238p200.jpg","inspectors":null,"inspection":"2010-02-12Z","constructi":"2009-12-08Z","record_cre":"2010-02-12Z","last_updat":null,"update_dat":"2011-01-31Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":null,"project_nu":"W905","file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":2,"historic_c":0E-11,"funding_ba":"Capex"}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.30","geometry":{"type":"Point","coordinates":[552747.3465999998,6884238.8942]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE1092","type":"Wheel Rack","material":"Galvanised Steel","number_of_":5,"comments":null,"documents":"../photos/57/k238p386.jpg","inspectors":null,"inspection":"2010-02-15Z","constructi":"2009-12-21Z","record_cre":"2010-02-15Z","last_updat":null,"update_dat":"2011-01-31Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":null,"project_nu":"WA59","file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":2,"historic_c":0E-11,"funding_ba":"Capex"}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.31","geometry":{"type":"Point","coordinates":[552947.3991,6884178.9464]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE1093","type":"Wheel Rack","material":"Galvanised Steel","number_of_":5,"comments":null,"documents":"../photos/57/k238p410.jpg","inspectors":null,"inspection":"2010-02-15Z","constructi":"2009-12-21Z","record_cre":"2010-02-15Z","last_updat":null,"update_dat":"2011-01-31Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":null,"project_nu":"WA59","file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":2,"historic_c":0E-11,"funding_ba":"Capex"}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.32","geometry":{"type":"Point","coordinates":[553161.4117,6884124.4975]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE1094","type":"Wheel Rack","material":"Galvanised Steel","number_of_":5,"comments":null,"documents":"../photos/65/t33p159.jpg","inspectors":null,"inspection":"2011-10-03Z","constructi":"2009-12-21Z","record_cre":"2010-02-15Z","last_updat":null,"update_dat":"2011-10-10Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":null,"project_nu":"WA59","file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":2,"historic_c":0E-11,"funding_ba":"Capex"}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.33","geometry":{"type":"Point","coordinates":[553424.9159000004,6884194.2532]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE1095","type":"Hoop_Big","material":"Stainless Steel","number_of_":2,"comments":null,"documents":"../photos/57/k238p441.jpg","inspectors":null,"inspection":"2010-02-15Z","constructi":null,"record_cre":"2010-02-15Z","last_updat":null,"update_dat":"2011-01-31Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":null,"project_nu":null,"file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":2,"historic_c":0E-11,"funding_ba":"Initial"}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.34","geometry":{"type":"Point","coordinates":[553414.9797,6884188.6444]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE1096","type":"Wheel Rack","material":"Galvanised Steel","number_of_":6,"comments":null,"documents":"../photos/61/x362p2.jpg","inspectors":null,"inspection":"2010-11-02Z","constructi":"2009-12-15Z","record_cre":"2010-02-15Z","last_updat":null,"update_dat":"2011-01-31Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":null,"project_nu":"WB41","file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":2,"historic_c":0E-11,"funding_ba":"Capex"}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.35","geometry":{"type":"Point","coordinates":[552688.0012999997,6884229.636]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE1097","type":"Wheel Rack","material":"Galvanised Steel","number_of_":5,"comments":null,"documents":"../photos/57/k238p521.jpg","inspectors":null,"inspection":"2010-02-16Z","constructi":"2010-01-12Z","record_cre":"2010-02-16Z","last_updat":null,"update_dat":"2011-01-31Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":null,"project_nu":"WA59","file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":2,"historic_c":0E-11,"funding_ba":"Capex"}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.36","geometry":{"type":"Point","coordinates":[548394.9260999998,6886953.6916]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE1305","type":"Frame Rack","material":"Galvanised Steel","number_of_":5,"comments":null,"documents":"../photos/62/x371p18.jpg","inspectors":null,"inspection":"2010-11-19Z","constructi":null,"record_cre":"2010-11-19Z","last_updat":null,"update_dat":"2011-01-31Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":null,"project_nu":null,"file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":2,"historic_c":0E-11,"funding_ba":"Initial"}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.37","geometry":{"type":"Point","coordinates":[548478.4895000001,6886853.132]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE1306","type":"Frame Rack","material":"Galvanised Steel","number_of_":4,"comments":"Project# B751, 23/03/2011","documents":"../photos/64/j400p39.jpg","inspectors":null,"inspection":"2011-06-07Z","constructi":null,"record_cre":"2010-11-19Z","last_updat":null,"update_dat":"2011-06-09Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":null,"project_nu":null,"file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":2,"historic_c":0E-11,"funding_ba":"Initial"}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.38","geometry":{"type":"Point","coordinates":[548540.6549000004,6886808.7111]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE1307","type":"Frame Rack","material":"Galvanised Steel","number_of_":4,"comments":null,"documents":"../photos/68/f14p66.jpg","inspectors":null,"inspection":"2012-08-10Z","constructi":null,"record_cre":"2010-11-19Z","last_updat":null,"update_dat":"2012-08-13Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":null,"project_nu":null,"file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":2,"historic_c":0E-11,"funding_ba":"Initial"}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.39","geometry":{"type":"Point","coordinates":[542365.8864000002,6902775.0512]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE1418","type":"Hoop_Big","material":"Stainless Steel","number_of_":2,"comments":"Asset associated with Projects JN29 & JN35","documents":"../photos/63/x386p298.jpg","inspectors":null,"inspection":"2011-03-10Z","constructi":"2010-09-24Z","record_cre":"2011-03-10Z","last_updat":null,"update_dat":"2012-02-10Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":"251","project_nu":"JN35","file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":2,"historic_c":0E-11,"funding_ba":"Capex"}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.40","geometry":{"type":"Point","coordinates":[542365.8699000003,6902776.3109]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE1420","type":"Hoop_Big","material":"Stainless Steel","number_of_":2,"comments":"Asset associated with Projects JN29 & JN35","documents":"../photos/63/x386p300.jpg","inspectors":null,"inspection":"2011-03-10Z","constructi":"2010-09-24Z","record_cre":"2011-03-10Z","last_updat":null,"update_dat":"2012-02-10Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":"251","project_nu":"JN35","file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":2,"historic_c":0E-11,"funding_ba":"Capex"}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.41","geometry":{"type":"Point","coordinates":[542365.9111000001,6902777.0608]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE1421","type":"Hoop_Big","material":"Stainless Steel","number_of_":2,"comments":"Asset associated with Projects JN29 & JN35","documents":"../photos/63/x386p301.jpg","inspectors":null,"inspection":"2011-03-10Z","constructi":"2010-09-24Z","record_cre":"2011-03-10Z","last_updat":null,"update_dat":"2012-02-10Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":"251","project_nu":"JN35","file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":2,"historic_c":0E-11,"funding_ba":"Capex"}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.42","geometry":{"type":"Point","coordinates":[542365.9111000001,6902777.7207]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE1422","type":"Hoop_Big","material":"Stainless Steel","number_of_":2,"comments":"Asset associated with Projects JN29 & JN35","documents":"../photos/63/x386p302.jpg","inspectors":null,"inspection":"2011-03-10Z","constructi":"2010-09-24Z","record_cre":"2011-03-10Z","last_updat":null,"update_dat":"2012-02-10Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":"251","project_nu":"JN35","file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":2,"historic_c":0E-11,"funding_ba":"Capex"}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.43","geometry":{"type":"Point","coordinates":[542375.1958999997,6902675.5714]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE1423","type":"Hoop_Big","material":"Stainless Steel","number_of_":2,"comments":"Asset associated with Projects JN29 & JN35","documents":"../photos/63/x386p353.jpg","inspectors":null,"inspection":"2011-03-10Z","constructi":"2010-09-24Z","record_cre":"2011-03-10Z","last_updat":null,"update_dat":"2012-02-10Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":"251","project_nu":"JN35","file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":2,"historic_c":0E-11,"funding_ba":"Capex"}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.44","geometry":{"type":"Point","coordinates":[542375.1217,6902674.8916]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE1424","type":"Hoop_Big","material":"Stainless Steel","number_of_":2,"comments":"Asset associated with Projects JN29 & JN35","documents":"../photos/63/x386p354.jpg","inspectors":null,"inspection":"2011-03-10Z","constructi":"2010-09-24Z","record_cre":"2011-03-10Z","last_updat":null,"update_dat":"2012-02-10Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":"251","project_nu":"JN35","file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":2,"historic_c":0E-11,"funding_ba":"Capex"}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.45","geometry":{"type":"Point","coordinates":[542375.1217,6902674.1017]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE1425","type":"Hoop_Big","material":"Stainless Steel","number_of_":2,"comments":"Asset associated with Projects JN29 & JN35","documents":"../photos/63/x386p355.jpg","inspectors":null,"inspection":"2011-03-10Z","constructi":"2010-09-24Z","record_cre":"2011-03-10Z","last_updat":null,"update_dat":"2012-02-10Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":"251","project_nu":"JN35","file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":2,"historic_c":0E-11,"funding_ba":"Capex"}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.46","geometry":{"type":"Point","coordinates":[542375.1546999998,6902673.2319]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE1426","type":"Hoop_Big","material":"Stainless Steel","number_of_":2,"comments":"Asset associated with Projects JN29 & JN35","documents":"../photos/63/x386p356.jpg","inspectors":null,"inspection":"2011-03-10Z","constructi":"2010-09-24Z","record_cre":"2011-03-10Z","last_updat":null,"update_dat":"2012-02-10Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":"251","project_nu":"JN35","file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":2,"historic_c":0E-11,"funding_ba":"Capex"}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.47","geometry":{"type":"Point","coordinates":[542375.2289000005,6902672.4821]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE1427","type":"Hoop_Big","material":"Stainless Steel","number_of_":2,"comments":"Asset associated with Projects JN29 & JN35","documents":"../photos/63/x386p357.jpg","inspectors":null,"inspection":"2011-03-10Z","constructi":"2010-09-24Z","record_cre":"2011-03-10Z","last_updat":null,"update_dat":"2012-02-10Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":"251","project_nu":"JN35","file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":2,"historic_c":0E-11,"funding_ba":"Capex"}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.48","geometry":{"type":"Point","coordinates":[542375.1876999997,6902671.8022]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE1428","type":"Hoop_Big","material":"Stainless Steel","number_of_":2,"comments":"Asset associated with Projects JN29 & JN35","documents":"../photos/63/x386p358.jpg","inspectors":null,"inspection":"2011-03-10Z","constructi":"2010-09-24Z","record_cre":"2011-03-10Z","last_updat":null,"update_dat":"2012-02-10Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":"251","project_nu":"JN35","file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":2,"historic_c":0E-11,"funding_ba":"Capex"}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.49","geometry":{"type":"Point","coordinates":[542375.1876999997,6902671.1923]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE1429","type":"Hoop_Big","material":"Stainless Steel","number_of_":2,"comments":"Asset associated with Projects JN29 & JN35","documents":"../photos/63/x386p359.jpg","inspectors":null,"inspection":"2011-03-10Z","constructi":"2010-09-24Z","record_cre":"2011-03-10Z","last_updat":null,"update_dat":"2012-02-10Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":"251","project_nu":"JN35","file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":2,"historic_c":0E-11,"funding_ba":"Capex"}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.50","geometry":{"type":"Point","coordinates":[542375.1546999998,6902670.4325]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE1430","type":"Hoop_Big","material":"Stainless Steel","number_of_":2,"comments":"Asset associated with Projects JN29 & JN35","documents":"../photos/63/x386p360.jpg","inspectors":null,"inspection":"2011-03-10Z","constructi":"2010-09-24Z","record_cre":"2011-03-10Z","last_updat":null,"update_dat":"2012-02-10Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":"251","project_nu":"JN35","file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":2,"historic_c":0E-11,"funding_ba":"Capex"}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.51","geometry":{"type":"Point","coordinates":[542641.0749000004,6900337.6373]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE11","type":"Wheel Rack","material":"Galvanised Steel","number_of_":5,"comments":null,"documents":"../photos/52/v38p35.jpg","inspectors":null,"inspection":"2009-11-11Z","constructi":null,"record_cre":"2002-05-17Z","last_updat":null,"update_dat":"2010-03-16Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":null,"project_nu":null,"file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":3,"historic_c":0E-11,"funding_ba":null}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.52","geometry":{"type":"Point","coordinates":[546112.9299999997,6890063.2886]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE18","type":"Frame Rack","material":"Mild Steel","number_of_":5,"comments":null,"documents":"../photos/24/x92p392.jpg","inspectors":null,"inspection":"2006-06-02Z","constructi":null,"record_cre":"2002-05-29Z","last_updat":null,"update_dat":"2011-01-31Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":null,"project_nu":null,"file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":3,"historic_c":0E-11,"funding_ba":null}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.53","geometry":{"type":"Point","coordinates":[543832.8302999996,6894120.7827]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE39","type":"Wheel Rack","material":"Galvanised Steel","number_of_":4,"comments":null,"documents":"../photos/a76p2.jpg","inspectors":null,"inspection":null,"constructi":"2002-01-31Z","record_cre":"2002-08-21Z","last_updat":null,"update_dat":"2010-03-16Z","disposal_d":null,"positional":null,"owner":null,"project_nu":"D598","file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":0E-11,"historic_c":0E-11,"funding_ba":"Capex"}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.54","geometry":{"type":"Point","coordinates":[544636.3879000004,6890380.2041]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE52","type":"Wheel Rack","material":"Galvanised Steel","number_of_":10,"comments":null,"documents":"../photos/46/k162p329.jpg","inspectors":null,"inspection":"2009-02-27Z","constructi":null,"record_cre":"2002-10-17Z","last_updat":null,"update_dat":"2011-01-31Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":null,"project_nu":null,"file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":3,"historic_c":0E-11,"funding_ba":null}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.55","geometry":{"type":"Point","coordinates":[537821.3130000001,6904745.3301]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE60","type":"Wheel Rack","material":"Galvanised Steel","number_of_":10,"comments":null,"documents":"../photos/c8p35.jpg","inspectors":null,"inspection":null,"constructi":null,"record_cre":"2002-12-12Z","last_updat":null,"update_dat":"2011-01-31Z","disposal_d":null,"positional":null,"owner":null,"project_nu":null,"file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":0E-11,"historic_c":0E-11,"funding_ba":null}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.56","geometry":{"type":"Point","coordinates":[540612.9188000001,6905932.0986]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE70","type":"Wheel Rack","material":"Galvanised Steel","number_of_":10,"comments":null,"documents":"../photos/2/c505p104.jpg","inspectors":null,"inspection":"2009-10-12Z","constructi":null,"record_cre":"2003-08-27Z","last_updat":null,"update_dat":"2010-03-16Z","disposal_d":null,"positional":null,"owner":null,"project_nu":null,"file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":3,"historic_c":0E-11,"funding_ba":null}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.57","geometry":{"type":"Point","coordinates":[543681.5191000002,6895108.9416]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE1050","type":"Frame Rack","material":"Galvanised Steel","number_of_":2,"comments":null,"documents":"../photos/59/A185p30.jpg","inspectors":null,"inspection":"2010-06-01Z","constructi":null,"record_cre":"2010-01-08Z","last_updat":null,"update_dat":"2011-01-31Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":null,"project_nu":null,"file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":2,"historic_c":0E-11,"funding_ba":"Initial"}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.58","geometry":{"type":"Point","coordinates":[542394.7302999999,6902057.0773]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE1190","type":"Wheel Rack","material":"Galvanised Steel","number_of_":5,"comments":null,"documents":"../photos/59/A185p33.jpg","inspectors":null,"inspection":"2010-06-01Z","constructi":"2010-03-30Z","record_cre":"2010-06-01Z","last_updat":null,"update_dat":"2011-01-31Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":null,"project_nu":"DQH2","file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":2,"historic_c":0E-11,"funding_ba":"Capex"}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.59","geometry":{"type":"Point","coordinates":[542434.2609000001,6902028.1732]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE1191","type":"Wheel Rack","material":"Galvanised Steel","number_of_":4,"comments":null,"documents":"../photos/59/A185p75.jpg","inspectors":null,"inspection":"2010-06-01Z","constructi":null,"record_cre":"2010-06-01Z","last_updat":null,"update_dat":"2011-01-31Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":null,"project_nu":null,"file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":2,"historic_c":0E-11,"funding_ba":"Initial"}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.60","geometry":{"type":"Point","coordinates":[541029.5648999996,6902495.2282]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE1230","type":"Frame Rack","material":"Galvanised Steel","number_of_":0,"comments":null,"documents":"../photos/61/x355p29.jpg","inspectors":null,"inspection":"2010-10-25Z","constructi":null,"record_cre":"2010-10-25Z","last_updat":null,"update_dat":"2011-01-31Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":null,"project_nu":null,"file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":2,"historic_c":0E-11,"funding_ba":"Initial"}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.61","geometry":{"type":"Point","coordinates":[541025.2028000001,6902496.058]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE1231","type":"Frame Rack","material":"Galvanised Steel","number_of_":0,"comments":null,"documents":"../photos/61/x355p30.jpg","inspectors":null,"inspection":"2010-10-25Z","constructi":null,"record_cre":"2010-10-25Z","last_updat":null,"update_dat":"2011-01-31Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":null,"project_nu":null,"file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":2,"historic_c":0E-11,"funding_ba":"Initial"}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.62","geometry":{"type":"Point","coordinates":[529672.2583999997,6908314.0537]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE1250","type":"Frame Rack","material":"Galvanised Steel","number_of_":6,"comments":null,"documents":"../photos/61/x361p36.jpg","inspectors":null,"inspection":"2010-11-01Z","constructi":null,"record_cre":"2010-11-01Z","last_updat":null,"update_dat":"2011-01-31Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":null,"project_nu":null,"file_numbe":"PN290975/03/DA12","folder_num":null,"drawing_nu":null,"survey_num":null,"condition":2,"historic_c":0E-11,"funding_ba":"Contribute"}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.63","geometry":{"type":"Point","coordinates":[542403.0998999998,6902323.3031]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE1452","type":"Hoop_Big","material":"Stainless Steel","number_of_":2,"comments":"Asset associated with Projects JN29 & JN35","documents":"../photos/63/j378p140.jpg","inspectors":null,"inspection":"2011-03-08Z","constructi":"2010-12-21Z","record_cre":"2011-03-08Z","last_updat":null,"update_dat":"2012-02-10Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":"251","project_nu":"JN35","file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":1,"historic_c":0E-11,"funding_ba":"Capex"}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.64","geometry":{"type":"Point","coordinates":[542403.0915999999,6902322.4133]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE1453","type":"Hoop_Big","material":"Stainless Steel","number_of_":2,"comments":"Asset associated with Projects JN29 & JN35","documents":"../photos/63/j378p141.jpg","inspectors":null,"inspection":"2011-03-08Z","constructi":"2010-12-21Z","record_cre":"2011-03-08Z","last_updat":null,"update_dat":"2012-02-10Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":"251","project_nu":"JN35","file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":1,"historic_c":0E-11,"funding_ba":"Capex"}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.65","geometry":{"type":"Point","coordinates":[542403.1575999996,6902321.6435]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE1454","type":"Hoop_Big","material":"Stainless Steel","number_of_":2,"comments":"Asset associated with Projects JN29 & JN35","documents":"../photos/63/j378p142.jpg","inspectors":null,"inspection":"2011-03-08Z","constructi":"2010-12-21Z","record_cre":"2011-03-08Z","last_updat":null,"update_dat":"2012-02-10Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":"251","project_nu":"JN35","file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":1,"historic_c":0E-11,"funding_ba":"Capex"}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.66","geometry":{"type":"Point","coordinates":[531162.1505000005,6916997.5662]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE64","type":"Hoop_Half","material":"Galvanised Steel","number_of_":4,"comments":null,"documents":"../photos/42/E49p114.jpg","inspectors":null,"inspection":"2009-09-02Z","constructi":null,"record_cre":"2003-03-24Z","last_updat":null,"update_dat":"2010-03-13Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":null,"project_nu":null,"file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":2,"historic_c":0E-11,"funding_ba":null}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.67","geometry":{"type":"Point","coordinates":[544573.9751000004,6891925.7295]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE68","type":"Wheel Rack","material":"Galvanised Steel","number_of_":10,"comments":null,"documents":"../photos/2/c313p15.jpg","inspectors":null,"inspection":"2009-10-01Z","constructi":null,"record_cre":"2003-08-19Z","last_updat":null,"update_dat":"2010-03-16Z","disposal_d":null,"positional":null,"owner":null,"project_nu":null,"file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":3,"historic_c":0E-11,"funding_ba":null}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.68","geometry":{"type":"Point","coordinates":[540412.9159000004,6907453.9688]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE71","type":"Wheel Rack","material":"Galvanised Steel","number_of_":6,"comments":null,"documents":"../photos/49/v16p12.jpg","inspectors":null,"inspection":"2009-06-09Z","constructi":null,"record_cre":"2003-11-12Z","last_updat":null,"update_dat":"2011-01-31Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":null,"project_nu":null,"file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":2,"historic_c":0E-11,"funding_ba":null}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.69","geometry":{"type":"Point","coordinates":[532454.4062999999,6913799.0373]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE77","type":"Wheel Rack","material":"Galvanised Steel","number_of_":7,"comments":null,"documents":"../photos/56/A158p2.jpg","inspectors":null,"inspection":"2010-02-16Z","constructi":null,"record_cre":"2004-01-27Z","last_updat":null,"update_dat":"2011-01-31Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":null,"project_nu":null,"file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":2,"historic_c":0E-11,"funding_ba":null}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.70","geometry":{"type":"Point","coordinates":[532452.9715,6913796.2779]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE78","type":"Wheel Rack","material":"Galvanised Steel","number_of_":7,"comments":null,"documents":"../photos/56/A158p3.jpg","inspectors":null,"inspection":"2010-02-16Z","constructi":null,"record_cre":"2004-01-27Z","last_updat":null,"update_dat":"2011-01-31Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":null,"project_nu":null,"file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":2,"historic_c":0E-11,"funding_ba":null}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.71","geometry":{"type":"Point","coordinates":[540562.9654999999,6906014.0219]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE88","type":"Frame Rack","material":"Stainless Steel","number_of_":1,"comments":null,"documents":"../photos/7/c742p47.jpg","inspectors":null,"inspection":"2009-10-12Z","constructi":null,"record_cre":"2004-03-08Z","last_updat":null,"update_dat":"2011-05-13Z","disposal_d":null,"positional":null,"owner":null,"project_nu":null,"file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":2,"historic_c":0E-11,"funding_ba":null}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.72","geometry":{"type":"Point","coordinates":[533003.6948999995,6903695.2239]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE90","type":"Wheel Rack","material":"Galvanised Steel","number_of_":1,"comments":null,"documents":"../photos/10/d604p50.jpg","inspectors":null,"inspection":"2004-09-20Z","constructi":null,"record_cre":"2004-09-20Z","last_updat":null,"update_dat":"2011-05-13Z","disposal_d":null,"positional":null,"owner":null,"project_nu":null,"file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":2,"historic_c":0E-11,"funding_ba":null}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.73","geometry":{"type":"Point","coordinates":[532986.4693999998,6903708.1413]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE89","type":"Wheel Rack","material":"Galvanised Steel","number_of_":1,"comments":null,"documents":"../photos/10/d604p77.jpg","inspectors":null,"inspection":"2004-09-20Z","constructi":null,"record_cre":"2004-09-20Z","last_updat":null,"update_dat":"2011-05-13Z","disposal_d":null,"positional":null,"owner":null,"project_nu":null,"file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":2,"historic_c":0E-11,"funding_ba":null}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.74","geometry":{"type":"Point","coordinates":[548094.1919999998,6888000.0986]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE21","type":"Wheel Rack","material":"Mild Steel","number_of_":5,"comments":null,"documents":"../Photos/14/e696p130.jpg","inspectors":null,"inspection":"2009-11-26Z","constructi":null,"record_cre":"2002-05-30Z","last_updat":null,"update_dat":"2010-03-16Z","disposal_d":null,"positional":null,"owner":null,"project_nu":null,"file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":2,"historic_c":0E-11,"funding_ba":null}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.75","geometry":{"type":"Point","coordinates":[546673.6226000004,6887489.4325]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE45","type":"Wheel Rack","material":"Galvanised Steel","number_of_":5,"comments":null,"documents":"../photos/66/t72p40.jpg","inspectors":null,"inspection":"2012-02-06Z","constructi":null,"record_cre":"2002-10-08Z","last_updat":null,"update_dat":"2012-02-09Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":null,"project_nu":null,"file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":3,"historic_c":0E-11,"funding_ba":null}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.76","geometry":{"type":"Point","coordinates":[541786.5004000003,6895293.2341]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE54","type":"Wheel Rack","material":"Galvanised Steel","number_of_":4,"comments":null,"documents":"../photos/b54p47.jpg","inspectors":null,"inspection":null,"constructi":null,"record_cre":"2002-10-28Z","last_updat":null,"update_dat":"2010-03-16Z","disposal_d":null,"positional":null,"owner":null,"project_nu":null,"file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":0E-11,"historic_c":0E-11,"funding_ba":null}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.77","geometry":{"type":"Point","coordinates":[542435.9842999997,6901932.3527]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE190","type":"Hoop_Half","material":"Galvanised Steel","number_of_":12,"comments":null,"documents":"../photos/48/A101p2.jpg","inspectors":null,"inspection":"2009-05-13Z","constructi":null,"record_cre":"2006-05-18Z","last_updat":null,"update_dat":"2012-05-29Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":null,"project_nu":null,"file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":2,"historic_c":0E-11,"funding_ba":null}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.78","geometry":{"type":"Point","coordinates":[552582.1410999997,6884050.0326]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE1316","type":"Other","material":"Stainless Steel","number_of_":2,"comments":null,"documents":"../photos/62/x371p29.jpg","inspectors":null,"inspection":"2010-11-19Z","constructi":null,"record_cre":"2010-11-19Z","last_updat":null,"update_dat":"2011-01-31Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":null,"project_nu":null,"file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":2,"historic_c":0E-11,"funding_ba":"Initial"}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.79","geometry":{"type":"Point","coordinates":[540798.4337999998,6906119.0105]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE1317","type":"Frame Rack","material":"Stainless Steel","number_of_":3,"comments":null,"documents":"../photos/62/x371p3.jpg","inspectors":null,"inspection":"2010-11-19Z","constructi":null,"record_cre":"2010-11-19Z","last_updat":null,"update_dat":"2011-01-31Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":null,"project_nu":null,"file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":2,"historic_c":0E-11,"funding_ba":"Initial"}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.80","geometry":{"type":"Point","coordinates":[540798.6812000005,6906118.4707]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE1318","type":"Frame Rack","material":"Stainless Steel","number_of_":3,"comments":null,"documents":"../photos/62/x371p31.jpg","inspectors":null,"inspection":"2010-11-19Z","constructi":null,"record_cre":"2010-11-19Z","last_updat":null,"update_dat":"2011-01-31Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":null,"project_nu":null,"file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":2,"historic_c":0E-11,"funding_ba":"Initial"}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.81","geometry":{"type":"Point","coordinates":[538754.5281999996,6915298.4221]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE1319","type":"Frame Rack","material":"Galvanised Steel","number_of_":5,"comments":null,"documents":"../photos/62/x371p1.jpg","inspectors":null,"inspection":"2010-11-19Z","constructi":null,"record_cre":"2010-11-19Z","last_updat":null,"update_dat":"2011-01-31Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":null,"project_nu":null,"file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":2,"historic_c":0E-11,"funding_ba":"Initial"}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.82","geometry":{"type":"Point","coordinates":[544354.9324000003,6892710.4198]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE1320","type":"Other","material":"Timber","number_of_":2,"comments":null,"documents":"../photos/62/x371p40.jpg","inspectors":null,"inspection":"2010-11-24Z","constructi":null,"record_cre":"2010-11-24Z","last_updat":null,"update_dat":"2011-01-31Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":null,"project_nu":null,"file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":2,"historic_c":0E-11,"funding_ba":"Initial"}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.83","geometry":{"type":"Point","coordinates":[544356.2105999999,6892710.0999]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE1321","type":"Other","material":"Timber","number_of_":2,"comments":null,"documents":"../photos/62/x371p39.jpg","inspectors":null,"inspection":"2010-11-24Z","constructi":null,"record_cre":"2010-11-24Z","last_updat":null,"update_dat":"2011-01-31Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":null,"project_nu":null,"file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":2,"historic_c":0E-11,"funding_ba":"Initial"}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.84","geometry":{"type":"Point","coordinates":[544368.5215999996,6892727.9463]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE1322","type":"Other","material":"Timber","number_of_":2,"comments":null,"documents":"../photos/62/x371p38.jpg","inspectors":null,"inspection":"2010-11-24Z","constructi":null,"record_cre":"2010-11-24Z","last_updat":null,"update_dat":"2011-01-31Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":null,"project_nu":null,"file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":2,"historic_c":0E-11,"funding_ba":"Initial"}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.85","geometry":{"type":"Point","coordinates":[544368.6205000002,6892728.6761]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE1323","type":"Other","material":"Timber","number_of_":2,"comments":null,"documents":"../photos/62/x371p37.jpg","inspectors":null,"inspection":"2010-11-24Z","constructi":null,"record_cre":"2010-11-24Z","last_updat":null,"update_dat":"2011-01-31Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":null,"project_nu":null,"file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":2,"historic_c":0E-11,"funding_ba":"Initial"}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.86","geometry":{"type":"Point","coordinates":[544372.3723999998,6892755.1907]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE1324","type":"Other","material":"Timber","number_of_":2,"comments":null,"documents":"../photos/62/x371p34.jpg","inspectors":null,"inspection":"2010-11-24Z","constructi":null,"record_cre":"2010-11-24Z","last_updat":null,"update_dat":"2011-01-31Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":null,"project_nu":null,"file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":2,"historic_c":0E-11,"funding_ba":"Initial"}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.87","geometry":{"type":"Point","coordinates":[544373.6339999996,6892764.6588]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE1325","type":"Other","material":"Timber","number_of_":2,"comments":null,"documents":"../photos/62/x371p35.jpg","inspectors":null,"inspection":"2010-11-24Z","constructi":null,"record_cre":"2010-11-24Z","last_updat":null,"update_dat":"2011-01-31Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":null,"project_nu":null,"file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":2,"historic_c":0E-11,"funding_ba":"Initial"}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.88","geometry":{"type":"Point","coordinates":[544373.7659999998,6892765.2587]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE1326","type":"Other","material":"Timber","number_of_":2,"comments":null,"documents":"../photos/62/x371p36.jpg","inspectors":null,"inspection":"2010-11-24Z","constructi":null,"record_cre":"2010-11-24Z","last_updat":null,"update_dat":"2011-01-31Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":null,"project_nu":null,"file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":2,"historic_c":0E-11,"funding_ba":"Initial"}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.89","geometry":{"type":"Point","coordinates":[546438.0389,6889311.4017]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE1327","type":"Frame Rack","material":"Stainless Steel","number_of_":1,"comments":null,"documents":"../photos/62/x371p52.jpg","inspectors":null,"inspection":"2010-11-24Z","constructi":null,"record_cre":"2010-11-24Z","last_updat":null,"update_dat":"2012-05-29Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":null,"project_nu":null,"file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":2,"historic_c":0E-11,"funding_ba":"Initial"}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.90","geometry":{"type":"Point","coordinates":[552742.1600000001,6884020.4686]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE1328","type":"Other","material":"Stainless Steel","number_of_":2,"comments":null,"documents":"../photos/62/x371p43.jpg","inspectors":null,"inspection":"2010-11-24Z","constructi":null,"record_cre":"2010-11-24Z","last_updat":null,"update_dat":"2011-01-31Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":null,"project_nu":null,"file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":2,"historic_c":0E-11,"funding_ba":"Initial"}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.91","geometry":{"type":"Point","coordinates":[552632.9685000004,6884058.5909]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE1329","type":"Other","material":"Stainless Steel","number_of_":2,"comments":null,"documents":"../photos/62/x371p53.jpg","inspectors":null,"inspection":"2010-11-24Z","constructi":null,"record_cre":"2010-11-24Z","last_updat":null,"update_dat":"2011-01-31Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":null,"project_nu":null,"file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":2,"historic_c":0E-11,"funding_ba":"Initial"}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.92","geometry":{"type":"Point","coordinates":[546345.2566,6889415.3705]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE1330","type":"Hoop_Half","material":"Galvanised Steel","number_of_":2,"comments":null,"documents":"../photos/62/x371p60.jpg","inspectors":null,"inspection":"2010-11-29Z","constructi":null,"record_cre":"2010-11-29Z","last_updat":null,"update_dat":"2011-01-31Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":null,"project_nu":null,"file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":1,"historic_c":0E-11,"funding_ba":"Initial"}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.93","geometry":{"type":"Point","coordinates":[546345.6029000003,6889414.7706]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE1331","type":"Hoop_Half","material":"Stainless Steel","number_of_":2,"comments":null,"documents":"../photos/62/x371p61.jpg","inspectors":null,"inspection":"2010-11-29Z","constructi":null,"record_cre":"2010-11-29Z","last_updat":null,"update_dat":"2011-01-31Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":null,"project_nu":null,"file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":1,"historic_c":0E-11,"funding_ba":"Initial"}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.94","geometry":{"type":"Point","coordinates":[546321.2446999997,6889458.1218]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE1332","type":"Hoop_Half","material":"Stainless Steel","number_of_":2,"comments":null,"documents":"../photos/62/x371p59.jpg","inspectors":null,"inspection":"2010-11-29Z","constructi":null,"record_cre":"2010-11-29Z","last_updat":null,"update_dat":"2011-01-31Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":null,"project_nu":null,"file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":1,"historic_c":0E-11,"funding_ba":"Initial"}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.95","geometry":{"type":"Point","coordinates":[546295.3197999997,6889504.2824]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE1333","type":"Hoop_Half","material":"Stainless Steel","number_of_":2,"comments":null,"documents":"../photos/62/x371p58.jpg","inspectors":null,"inspection":"2010-11-29Z","constructi":null,"record_cre":"2010-11-29Z","last_updat":null,"update_dat":"2011-01-31Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":null,"project_nu":null,"file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":1,"historic_c":0E-11,"funding_ba":"Initial"}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.96","geometry":{"type":"Point","coordinates":[542365.9770999998,6902773.6715]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE1416","type":"Hoop_Big","material":"Stainless Steel","number_of_":2,"comments":"Asset associated with Projects JN29 & JN35","documents":"../photos/63/x386p296.jpg","inspectors":null,"inspection":"2011-03-10Z","constructi":"2010-09-24Z","record_cre":"2011-03-10Z","last_updat":null,"update_dat":"2012-02-10Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":"251","project_nu":"JN35","file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":2,"historic_c":0E-11,"funding_ba":"Capex"}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.97","geometry":{"type":"Point","coordinates":[540713.5840999996,6905971.4206]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE1670","type":"Hoop_Big","material":"Galvanised Steel","number_of_":2,"comments":null,"documents":"../photos/66/j483p101.jpg","inspectors":null,"inspection":"2011-11-15Z","constructi":"2011-07-31Z","record_cre":"2011-11-15Z","last_updat":null,"update_dat":"2011-11-17Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":"TBA","project_nu":"CNV6","file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":1,"historic_c":0E-11,"funding_ba":"Capex"}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.98","geometry":{"type":"Point","coordinates":[540712.1988000004,6905970.9507]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE1671","type":"Hoop_Big","material":"Galvanised Steel","number_of_":2,"comments":null,"documents":"../photos/66/j483p102.jpg","inspectors":null,"inspection":"2011-11-15Z","constructi":"2011-07-31Z","record_cre":"2011-11-15Z","last_updat":null,"update_dat":"2011-11-17Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":"TBA","project_nu":"CNV6","file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":1,"historic_c":0E-11,"funding_ba":"Capex"}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.99","geometry":{"type":"Point","coordinates":[540710.6815999998,6905970.6008]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE1672","type":"Hoop_Big","material":"Galvanised Steel","number_of_":2,"comments":null,"documents":"../photos/66/j483p103.jpg","inspectors":null,"inspection":"2011-11-15Z","constructi":"2011-07-31Z","record_cre":"2011-11-15Z","last_updat":null,"update_dat":"2011-11-17Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":"TBA","project_nu":"CNV6","file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":1,"historic_c":0E-11,"funding_ba":"Capex"}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.100","geometry":{"type":"Point","coordinates":[539959.5510999998,6910903.7566]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE1690","type":"Frame Rack","material":"Galvanised Steel","number_of_":4,"comments":null,"documents":"../photos/66/t52p50.jpg","inspectors":null,"inspection":"2011-12-06Z","constructi":"2011-06-04Z","record_cre":"2011-12-06Z","last_updat":null,"update_dat":"2011-12-08Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":"TBA","project_nu":"DPN1","file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":1,"historic_c":0E-11,"funding_ba":"Capex"}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.101","geometry":{"type":"Point","coordinates":[536603.6820999999,6905155.7266]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE1730","type":"Frame Rack","material":"Galvanised Steel","number_of_":10,"comments":null,"documents":"../photos/67/f8p2.jpg","inspectors":null,"inspection":"2012-03-07Z","constructi":null,"record_cre":"2012-03-07Z","last_updat":null,"update_dat":"2012-03-12Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":"TBA","project_nu":null,"file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":2,"historic_c":0E-11,"funding_ba":"Initial"}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.102","geometry":{"type":"Point","coordinates":[533142.7610999998,6911808.7624]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE1750","type":"Frame Rack","material":"Galvanised Steel","number_of_":4,"comments":null,"documents":"../photos/67/t84p30.jpg","inspectors":null,"inspection":"2012-03-08Z","constructi":"2011-10-14Z","record_cre":"2012-03-08Z","last_updat":null,"update_dat":"2012-03-15Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":"TBA","project_nu":"CPL1","file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":1,"historic_c":0E-11,"funding_ba":"Capex"}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.103","geometry":{"type":"Point","coordinates":[542487.7846999997,6901589.5625]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE690","type":"Frame Rack","material":"Galvanised Steel","number_of_":4,"comments":null,"documents":"../photos/47/e96p6.jpg","inspectors":null,"inspection":"2009-04-07Z","constructi":"2009-02-19Z","record_cre":"2009-04-07Z","last_updat":null,"update_dat":"2011-01-31Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":null,"project_nu":null,"file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":1,"historic_c":0E-11,"funding_ba":null}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.104","geometry":{"type":"Point","coordinates":[538929.1750999996,6915370.3575]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE710","type":"Hoop_Big","material":"Stainless Steel","number_of_":1,"comments":"Design aspects linked to DEM6. Project Linked to CCM7 and W920","documents":"../photos/47/k178p152.jpg","inspectors":null,"inspection":"2009-04-29Z","constructi":"2009-04-30Z","record_cre":"2009-04-29Z","last_updat":null,"update_dat":"2011-05-13Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":null,"project_nu":"CCM7","file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":2,"historic_c":0E-11,"funding_ba":"Capex"}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.105","geometry":{"type":"Point","coordinates":[542224.6516000004,6905330.3111]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE1510","type":"Hoop_Half","material":"Stainless Steel","number_of_":1,"comments":null,"documents":"../photos/36/x128p218.jpg","inspectors":null,"inspection":"2009-11-12Z","constructi":null,"record_cre":"2008-06-16Z","last_updat":null,"update_dat":"2011-05-13Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":"TBA","project_nu":null,"file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":2,"historic_c":0E-11,"funding_ba":null}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.106","geometry":{"type":"Point","coordinates":[542224.5937999999,6905330.651]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE1511","type":"Hoop_Half","material":"Stainless Steel","number_of_":1,"comments":null,"documents":"../photos/36/x128p218.jpg","inspectors":null,"inspection":"2009-11-12Z","constructi":null,"record_cre":"2008-06-16Z","last_updat":null,"update_dat":"2011-05-13Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":"TBA","project_nu":null,"file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":2,"historic_c":0E-11,"funding_ba":null}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.107","geometry":{"type":"Point","coordinates":[540560.8628000002,6906013.752]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE1512","type":"Frame Rack","material":"Stainless Steel","number_of_":1,"comments":null,"documents":"../photos/7/c742p47.jpg","inspectors":null,"inspection":"2009-10-12Z","constructi":null,"record_cre":"2004-03-08Z","last_updat":null,"update_dat":"2011-05-13Z","disposal_d":null,"positional":null,"owner":null,"project_nu":null,"file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":2,"historic_c":0E-11,"funding_ba":null}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.108","geometry":{"type":"Point","coordinates":[540564.5899,6906014.1619]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE1513","type":"Frame Rack","material":"Stainless Steel","number_of_":1,"comments":null,"documents":"../photos/7/c742p47.jpg","inspectors":null,"inspection":"2009-10-12Z","constructi":null,"record_cre":"2004-03-08Z","last_updat":null,"update_dat":"2011-05-13Z","disposal_d":null,"positional":null,"owner":null,"project_nu":null,"file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":2,"historic_c":0E-11,"funding_ba":null}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.109","geometry":{"type":"Point","coordinates":[540561.4234999996,6906013.8419]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE1514","type":"Frame Rack","material":"Stainless Steel","number_of_":1,"comments":null,"documents":"../photos/7/c742p47.jpg","inspectors":null,"inspection":"2009-10-12Z","constructi":null,"record_cre":"2004-03-08Z","last_updat":null,"update_dat":"2011-05-13Z","disposal_d":null,"positional":null,"owner":null,"project_nu":null,"file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":2,"historic_c":0E-11,"funding_ba":null}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.110","geometry":{"type":"Point","coordinates":[540562.0006999997,6906013.8719]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE1515","type":"Frame Rack","material":"Stainless Steel","number_of_":1,"comments":null,"documents":"../photos/7/c742p47.jpg","inspectors":null,"inspection":"2009-10-12Z","constructi":null,"record_cre":"2004-03-08Z","last_updat":null,"update_dat":"2011-05-13Z","disposal_d":null,"positional":null,"owner":null,"project_nu":null,"file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":2,"historic_c":0E-11,"funding_ba":null}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.111","geometry":{"type":"Point","coordinates":[540564.0374999996,6906014.1019]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE1516","type":"Frame Rack","material":"Stainless Steel","number_of_":1,"comments":null,"documents":"../photos/7/c742p47.jpg","inspectors":null,"inspection":"2009-10-12Z","constructi":null,"record_cre":"2004-03-08Z","last_updat":null,"update_dat":"2011-05-13Z","disposal_d":null,"positional":null,"owner":null,"project_nu":null,"file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":2,"historic_c":0E-11,"funding_ba":null}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.112","geometry":{"type":"Point","coordinates":[540562.5285,6906013.9919]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE1517","type":"Frame Rack","material":"Stainless Steel","number_of_":1,"comments":null,"documents":"../photos/7/c742p47.jpg","inspectors":null,"inspection":"2009-10-12Z","constructi":null,"record_cre":"2004-03-08Z","last_updat":null,"update_dat":"2011-05-13Z","disposal_d":null,"positional":null,"owner":null,"project_nu":null,"file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":2,"historic_c":0E-11,"funding_ba":null}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.113","geometry":{"type":"Point","coordinates":[540563.4767000005,6906014.0919]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE1518","type":"Frame Rack","material":"Stainless Steel","number_of_":1,"comments":null,"documents":"../photos/7/c742p47.jpg","inspectors":null,"inspection":"2009-10-12Z","constructi":null,"record_cre":"2004-03-08Z","last_updat":null,"update_dat":"2011-05-13Z","disposal_d":null,"positional":null,"owner":null,"project_nu":null,"file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":2,"historic_c":0E-11,"funding_ba":null}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.114","geometry":{"type":"Point","coordinates":[538930.5356999999,6915370.1275]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE1522","type":"Hoop_Big","material":"Stainless Steel","number_of_":1,"comments":"Design aspects linked to DEM6. Project Linked to CCM7 and W920","documents":"../photos/47/k178p152.jpg","inspectors":null,"inspection":"2009-04-29Z","constructi":"2009-04-30Z","record_cre":"2009-04-29Z","last_updat":null,"update_dat":"2011-05-13Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":null,"project_nu":"CCM7","file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":2,"historic_c":0E-11,"funding_ba":"Capex"}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.115","geometry":{"type":"Point","coordinates":[541662.9611,6898740.3125]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE1523","type":"Hoop_Big","material":"Stainless Steel","number_of_":1,"comments":null,"documents":"../photos/47/e104p137.jpg","inspectors":null,"inspection":"2009-11-20Z","constructi":"2008-08-26Z","record_cre":"2009-05-08Z","last_updat":null,"update_dat":"2011-05-13Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":null,"project_nu":"CY38","file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":2,"historic_c":0E-11,"funding_ba":"Capex"}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.116","geometry":{"type":"Point","coordinates":[552574.1756999996,6884050.7725]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE1308","type":"Other","material":"Stainless Steel","number_of_":2,"comments":null,"documents":"../photos/62/x371p21.jpg","inspectors":null,"inspection":"2010-11-19Z","constructi":null,"record_cre":"2010-11-19Z","last_updat":null,"update_dat":"2011-01-31Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":null,"project_nu":null,"file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":2,"historic_c":0E-11,"funding_ba":"Initial"}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.117","geometry":{"type":"Point","coordinates":[552603.7699999996,6884064.4797]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE1309","type":"Other","material":"Stainless Steel","number_of_":2,"comments":null,"documents":"../photos/62/x371p22.jpg","inspectors":null,"inspection":"2010-11-19Z","constructi":null,"record_cre":"2010-11-19Z","last_updat":null,"update_dat":"2011-01-31Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":null,"project_nu":null,"file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":2,"historic_c":0E-11,"funding_ba":"Initial"}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.118","geometry":{"type":"Point","coordinates":[552644.7023999998,6884058.6709]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE1310","type":"Other","material":"Stainless Steel","number_of_":2,"comments":null,"documents":"../photos/62/x371p23.jpg","inspectors":null,"inspection":"2010-11-19Z","constructi":null,"record_cre":"2010-11-19Z","last_updat":null,"update_dat":"2011-01-31Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":null,"project_nu":null,"file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":2,"historic_c":0E-11,"funding_ba":"Initial"}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.119","geometry":{"type":"Point","coordinates":[552662.7359999996,6884055.9514]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE1311","type":"Other","material":"Stainless Steel","number_of_":2,"comments":null,"documents":"../photos/62/x371p24.jpg","inspectors":null,"inspection":"2010-11-19Z","constructi":null,"record_cre":"2010-11-19Z","last_updat":null,"update_dat":"2011-01-31Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":null,"project_nu":null,"file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":2,"historic_c":0E-11,"funding_ba":"Initial"}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.120","geometry":{"type":"Point","coordinates":[552707.6264000004,6884048.183]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE1312","type":"Other","material":"Galvanised Steel","number_of_":3,"comments":null,"documents":"../photos/62/x371p25.jpg","inspectors":null,"inspection":"2010-11-19Z","constructi":null,"record_cre":"2010-11-19Z","last_updat":null,"update_dat":"2011-01-31Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":null,"project_nu":null,"file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":2,"historic_c":0E-11,"funding_ba":"Initial"}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.121","geometry":{"type":"Point","coordinates":[552785.0136000002,6884029.6968]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE1313","type":"Other","material":"Galvanised Steel","number_of_":3,"comments":null,"documents":"../photos/62/x371p26.jpg","inspectors":null,"inspection":"2010-11-19Z","constructi":null,"record_cre":"2010-11-19Z","last_updat":null,"update_dat":"2011-01-31Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":null,"project_nu":null,"file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":2,"historic_c":0E-11,"funding_ba":"Initial"}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.122","geometry":{"type":"Point","coordinates":[552777.7325999998,6884029.6668]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE1314","type":"Other","material":"Galvanised Steel","number_of_":3,"comments":null,"documents":"../photos/62/x371p27.jpg","inspectors":null,"inspection":"2010-11-19Z","constructi":null,"record_cre":"2010-11-19Z","last_updat":null,"update_dat":"2011-01-31Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":null,"project_nu":null,"file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":2,"historic_c":0E-11,"funding_ba":"Initial"}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.123","geometry":{"type":"Point","coordinates":[552672.7051999997,6884035.4656]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE1315","type":"Other","material":"Galvanised Steel","number_of_":2,"comments":null,"documents":"../photos/62/x371p28.jpg","inspectors":null,"inspection":"2010-11-19Z","constructi":null,"record_cre":"2010-11-19Z","last_updat":null,"update_dat":"2011-01-31Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":null,"project_nu":null,"file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":2,"historic_c":0E-11,"funding_ba":"Initial"}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.124","geometry":{"type":"Point","coordinates":[534885.4543000003,6893259.2281]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE290","type":"Frame Rack","material":"Galvanised Steel","number_of_":7,"comments":null,"documents":"../photos/33/k82p62.jpg","inspectors":null,"inspection":"2009-11-05Z","constructi":null,"record_cre":"2006-12-12Z","last_updat":null,"update_dat":"2011-01-31Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":null,"project_nu":null,"file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":2,"historic_c":0E-11,"funding_ba":null}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.125","geometry":{"type":"Point","coordinates":[541662.9528999999,6898739.9825]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE770","type":"Hoop_Big","material":"Stainless Steel","number_of_":1,"comments":null,"documents":"../photos/47/e104p137.jpg","inspectors":null,"inspection":"2009-11-20Z","constructi":"2008-08-26Z","record_cre":"2009-05-08Z","last_updat":null,"update_dat":"2011-05-13Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":null,"project_nu":"CY38","file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":2,"historic_c":0E-11,"funding_ba":"Capex"}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.126","geometry":{"type":"Point","coordinates":[542271.5373999998,6895726.9958]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE930","type":"Frame Rack","material":"Galvanised Steel","number_of_":5,"comments":null,"documents":"../photos/54/x255p156.jpg","inspectors":null,"inspection":"2009-08-27Z","constructi":null,"record_cre":"2009-08-27Z","last_updat":null,"update_dat":"2011-01-31Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":null,"project_nu":null,"file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":2,"historic_c":0E-11,"funding_ba":null}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.127","geometry":{"type":"Point","coordinates":[529704.7553000003,6910911.475]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE1150","type":"Wheel Rack","material":"Galvanised Steel","number_of_":9,"comments":null,"documents":"../photos/58/k256p23.jpg","inspectors":null,"inspection":"2010-05-07Z","constructi":"2010-04-16Z","record_cre":"2010-05-07Z","last_updat":null,"update_dat":"2011-01-31Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":null,"project_nu":null,"file_numbe":"PN257352/03/DA4","folder_num":null,"drawing_nu":null,"survey_num":null,"condition":2,"historic_c":0E-11,"funding_ba":"Contribute"}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.128","geometry":{"type":"Point","coordinates":[542355.5378,6902925.1406]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE1410","type":"Hoop_Big","material":"Stainless Steel","number_of_":2,"comments":"Asset associated with Projects JN29 & JN35","documents":"../photos/63/x386p106.jpg","inspectors":null,"inspection":"2011-03-08Z","constructi":"2011-01-24Z","record_cre":"2011-03-08Z","last_updat":null,"update_dat":"2012-02-10Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":"251","project_nu":"JN35","file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":2,"historic_c":0E-11,"funding_ba":"Capex"}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.129","geometry":{"type":"Point","coordinates":[542355.5049,6902926.5404]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE1411","type":"Hoop_Big","material":"Galvanised Steel","number_of_":2,"comments":"Asset associated with Projects JN29 & JN35","documents":"../photos/63/x386p107.jpg","inspectors":null,"inspection":"2011-03-08Z","constructi":"2011-01-24Z","record_cre":"2011-03-08Z","last_updat":null,"update_dat":"2012-02-10Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":"251","project_nu":"JN35","file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":2,"historic_c":0E-11,"funding_ba":"Capex"}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.130","geometry":{"type":"Point","coordinates":[542355.5049,6902927.8301]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE1412","type":"Hoop_Big","material":"Galvanised Steel","number_of_":2,"comments":"Asset associated with Projects JN29 & JN35","documents":"../photos/63/x386p108.jpg","inspectors":null,"inspection":"2011-03-08Z","constructi":"2011-01-24Z","record_cre":"2011-03-08Z","last_updat":null,"update_dat":"2012-02-10Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":"251","project_nu":"JN35","file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":2,"historic_c":0E-11,"funding_ba":"Capex"}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.131","geometry":{"type":"Point","coordinates":[542355.4801000003,6902928.9399]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE1413","type":"Hoop_Big","material":"Galvanised Steel","number_of_":2,"comments":"Asset associated with Projects JN29 & JN35","documents":"../photos/63/x386p109.jpg","inspectors":null,"inspection":"2011-03-08Z","constructi":"2011-01-24Z","record_cre":"2011-03-08Z","last_updat":null,"update_dat":"2012-02-10Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":"251","project_nu":"JN35","file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":2,"historic_c":0E-11,"funding_ba":"Capex"}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.132","geometry":{"type":"Point","coordinates":[542355.4884000001,6902930.0796]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE1414","type":"Hoop_Big","material":"Galvanised Steel","number_of_":2,"comments":"Asset associated with Projects JN29 & JN35","documents":"../photos/63/x386p110.jpg","inspectors":null,"inspection":"2011-03-08Z","constructi":"2011-01-24Z","record_cre":"2011-03-08Z","last_updat":null,"update_dat":"2012-02-10Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":"251","project_nu":"JN35","file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":2,"historic_c":0E-11,"funding_ba":"Capex"}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.133","geometry":{"type":"Point","coordinates":[542366.0513000004,6902773.0216]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE1415","type":"Hoop_Big","material":"Stainless Steel","number_of_":2,"comments":"Asset associated with Projects JN29 & JN35","documents":"../photos/63/x386p295.jpg","inspectors":null,"inspection":"2011-03-10Z","constructi":"2010-09-24Z","record_cre":"2011-03-10Z","last_updat":null,"update_dat":"2012-02-10Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":"251","project_nu":"JN35","file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":2,"historic_c":0E-11,"funding_ba":"Capex"}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.134","geometry":{"type":"Point","coordinates":[542365.9441,6902774.5113]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE1417","type":"Hoop_Big","material":"Stainless Steel","number_of_":2,"comments":"Asset associated with Projects JN29 & JN35","documents":"../photos/63/x386p297.jpg","inspectors":null,"inspection":"2011-03-10Z","constructi":"2010-09-24Z","record_cre":"2011-03-10Z","last_updat":null,"update_dat":"2012-02-10Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":"251","project_nu":"JN35","file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":2,"historic_c":0E-11,"funding_ba":"Capex"}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.135","geometry":{"type":"Point","coordinates":[546400.9490999999,6889298.0344]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE1302","type":"Frame Rack","material":"Galvanised Steel","number_of_":5,"comments":null,"documents":"../photos/62/x371p14.jpg","inspectors":null,"inspection":"2010-11-19Z","constructi":null,"record_cre":"2010-11-19Z","last_updat":null,"update_dat":"2011-01-31Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":null,"project_nu":null,"file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":2,"historic_c":0E-11,"funding_ba":"Initial"}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.136","geometry":{"type":"Point","coordinates":[546389.7429999998,6889318.0803]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE1303","type":"Frame Rack","material":"Galvanised Steel","number_of_":3,"comments":null,"documents":"../photos/62/x371p15.jpg","inspectors":null,"inspection":"2010-11-19Z","constructi":null,"record_cre":"2010-11-19Z","last_updat":null,"update_dat":"2011-01-31Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":null,"project_nu":null,"file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":2,"historic_c":0E-11,"funding_ba":"Initial"}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.137","geometry":{"type":"Point","coordinates":[546400.5203,6889187.177]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE1304","type":"Frame Rack","material":"Galvanised Steel","number_of_":5,"comments":null,"documents":"../photos/62/x371p16.jpg","inspectors":null,"inspection":"2010-11-19Z","constructi":null,"record_cre":"2010-11-19Z","last_updat":null,"update_dat":"2011-01-31Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":null,"project_nu":null,"file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":2,"historic_c":0E-11,"funding_ba":"Initial"}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.138","geometry":{"type":"Point","coordinates":[545940.2620000001,6889729.1766]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE150","type":"Frame Rack","material":"Galvanised Steel","number_of_":5,"comments":null,"documents":"../photos/21/f184p48.jpg","inspectors":null,"inspection":"2009-11-30Z","constructi":null,"record_cre":"2006-01-17Z","last_updat":null,"update_dat":"2010-03-13Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":null,"project_nu":null,"file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":3,"historic_c":0E-11,"funding_ba":null}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.139","geometry":{"type":"Point","coordinates":[545953.0017999997,6889732.116]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE151","type":"Frame Rack","material":"Galvanised Steel","number_of_":10,"comments":null,"documents":"../photos/21/f185p107.jpg","inspectors":null,"inspection":"2009-11-30Z","constructi":null,"record_cre":"2006-01-18Z","last_updat":null,"update_dat":"2010-03-13Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":null,"project_nu":null,"file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":3,"historic_c":0E-11,"funding_ba":null}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.140","geometry":{"type":"Point","coordinates":[530744.449,6909072.7593]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE870","type":"Wheel Rack","material":"Galvanised Steel","number_of_":6,"comments":null,"documents":"../photos/52/v42p98.jpg","inspectors":null,"inspection":"2009-07-30Z","constructi":null,"record_cre":"2009-07-30Z","last_updat":null,"update_dat":"2011-01-31Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":null,"project_nu":null,"file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":2,"historic_c":0E-11,"funding_ba":null}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.141","geometry":{"type":"Point","coordinates":[541038.6765000001,6906526.3676]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE990","type":"Other","material":"Stainless Steel","number_of_":1,"comments":null,"documents":"../photos/55/A146p104.jpg","inspectors":null,"inspection":"2009-11-30Z","constructi":null,"record_cre":"2009-11-30Z","last_updat":null,"update_dat":"2011-05-13Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":null,"project_nu":"TBA","file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":1,"historic_c":0E-11,"funding_ba":"Capex"}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.142","geometry":{"type":"Point","coordinates":[546635.2960000001,6889190.2163]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE1130","type":"Wheel Rack","material":"Galvanised Steel","number_of_":5,"comments":null,"documents":"../photos/58/k251p31.jpg","inspectors":null,"inspection":"2010-04-19Z","constructi":"2010-01-29Z","record_cre":"2010-04-19Z","last_updat":null,"update_dat":"2011-07-22Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":"251","project_nu":"DQY1","file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":2,"historic_c":0E-11,"funding_ba":"Capex"}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.143","geometry":{"type":"Point","coordinates":[545414.3255000003,6891614.7428]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE1131","type":"Wheel Rack","material":"Galvanised Steel","number_of_":4,"comments":null,"documents":"../photos/58/k251p48.jpg","inspectors":null,"inspection":"2010-04-19Z","constructi":null,"record_cre":"2010-04-19Z","last_updat":null,"update_dat":"2011-01-31Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":null,"project_nu":null,"file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":2,"historic_c":0E-11,"funding_ba":"Initial"}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.144","geometry":{"type":"Point","coordinates":[540697.9417000003,6906908.1699]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE1370","type":"Wheel Rack","material":"Galvanised Steel","number_of_":1,"comments":null,"documents":"../photos/63/x384p189.jpg","inspectors":null,"inspection":"2011-02-11Z","constructi":null,"record_cre":"2011-02-11Z","last_updat":null,"update_dat":"2011-02-17Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":"TBA","project_nu":null,"file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":2,"historic_c":0E-11,"funding_ba":"Initial"}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.145","geometry":{"type":"Point","coordinates":[540698.4776999997,6906907.2501]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE1371","type":"Wheel Rack","material":"Galvanised Steel","number_of_":1,"comments":null,"documents":"../photos/63/x384p190.jpg","inspectors":null,"inspection":"2011-02-11Z","constructi":null,"record_cre":"2011-02-11Z","last_updat":null,"update_dat":"2011-02-17Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":"TBA","project_nu":null,"file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":2,"historic_c":0E-11,"funding_ba":"Initial"}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.146","geometry":{"type":"Point","coordinates":[540697.3398000002,6906908.9697]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE1372","type":"Wheel Rack","material":"Galvanised Steel","number_of_":1,"comments":null,"documents":"../photos/63/x384p191.jpg","inspectors":null,"inspection":"2011-02-11Z","constructi":null,"record_cre":"2011-02-11Z","last_updat":null,"update_dat":"2011-02-17Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":"TBA","project_nu":null,"file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":2,"historic_c":0E-11,"funding_ba":"Initial"}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.147","geometry":{"type":"Point","coordinates":[540696.8945000004,6906909.8196]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE1373","type":"Wheel Rack","material":"Galvanised Steel","number_of_":1,"comments":null,"documents":"../photos/63/x384p192.jpg","inspectors":null,"inspection":"2011-02-11Z","constructi":null,"record_cre":"2011-02-11Z","last_updat":null,"update_dat":"2011-02-17Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":"TBA","project_nu":null,"file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":2,"historic_c":0E-11,"funding_ba":"Initial"}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.148","geometry":{"type":"Point","coordinates":[541038.5692999996,6906528.2772]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE1470","type":"Other","material":"Stainless Steel","number_of_":1,"comments":null,"documents":"../photos/55/A146p104.jpg","inspectors":null,"inspection":"2009-11-30Z","constructi":null,"record_cre":"2009-11-30Z","last_updat":null,"update_dat":"2011-05-13Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":null,"project_nu":"TBA","file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":1,"historic_c":0E-11,"funding_ba":"Capex"}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.149","geometry":{"type":"Point","coordinates":[541038.6188000003,6906527.7873]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE1471","type":"Other","material":"Stainless Steel","number_of_":1,"comments":null,"documents":"../photos/55/A146p104.jpg","inspectors":null,"inspection":"2009-11-30Z","constructi":null,"record_cre":"2009-11-30Z","last_updat":null,"update_dat":"2011-05-13Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":null,"project_nu":"TBA","file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":1,"historic_c":0E-11,"funding_ba":"Capex"}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.150","geometry":{"type":"Point","coordinates":[541038.6023000004,6906527.0575]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE1472","type":"Other","material":"Stainless Steel","number_of_":1,"comments":null,"documents":"../photos/55/A146p104.jpg","inspectors":null,"inspection":"2009-11-30Z","constructi":null,"record_cre":"2009-11-30Z","last_updat":null,"update_dat":"2011-05-13Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":null,"project_nu":"TBA","file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":1,"historic_c":0E-11,"funding_ba":"Capex"}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.151","geometry":{"type":"Point","coordinates":[541160.0800999999,6906352.573]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE1473","type":"Other","material":"Stainless Steel","number_of_":1,"comments":null,"documents":"../photos/55/A148p54.jpg","inspectors":null,"inspection":"2010-01-06Z","constructi":null,"record_cre":"2010-01-06Z","last_updat":null,"update_dat":"2011-05-13Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":null,"project_nu":"TBA","file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":1,"historic_c":0E-11,"funding_ba":"Capex"}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.152","geometry":{"type":"Point","coordinates":[541160.1873000003,6906351.2133]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE1474","type":"Other","material":"Stainless Steel","number_of_":1,"comments":null,"documents":"../photos/55/A148p54.jpg","inspectors":null,"inspection":"2010-01-06Z","constructi":null,"record_cre":"2010-01-06Z","last_updat":null,"update_dat":"2011-05-13Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":null,"project_nu":"TBA","file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":1,"historic_c":0E-11,"funding_ba":"Capex"}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.153","geometry":{"type":"Point","coordinates":[541159.9151999997,6906353.1229]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE1475","type":"Other","material":"Stainless Steel","number_of_":1,"comments":null,"documents":"../photos/55/A148p54.jpg","inspectors":null,"inspection":"2010-01-06Z","constructi":null,"record_cre":"2010-01-06Z","last_updat":null,"update_dat":"2011-05-13Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":null,"project_nu":"TBA","file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":1,"historic_c":0E-11,"funding_ba":"Capex"}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.154","geometry":{"type":"Point","coordinates":[542215.1029000003,6905440.6886]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE1476","type":"Hoop_Half","material":"Stainless Steel","number_of_":1,"comments":null,"documents":"../photos/36/x128p194.jpg","inspectors":null,"inspection":"2009-11-12Z","constructi":null,"record_cre":"2008-06-16Z","last_updat":null,"update_dat":"2011-05-13Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":null,"project_nu":null,"file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":2,"historic_c":0E-11,"funding_ba":null}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.155","geometry":{"type":"Point","coordinates":[542215.1029000003,6905439.4889]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE1477","type":"Hoop_Half","material":"Stainless Steel","number_of_":1,"comments":null,"documents":"../photos/36/x128p194.jpg","inspectors":null,"inspection":"2009-11-12Z","constructi":null,"record_cre":"2008-06-16Z","last_updat":null,"update_dat":"2011-05-13Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":null,"project_nu":null,"file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":2,"historic_c":0E-11,"funding_ba":null}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.156","geometry":{"type":"Point","coordinates":[542231.8832,6905153.667]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE1478","type":"Hoop_Half","material":"Stainless Steel","number_of_":1,"comments":null,"documents":"../photos/36/x128p233.jpg","inspectors":null,"inspection":"2009-11-12Z","constructi":null,"record_cre":"2008-06-16Z","last_updat":null,"update_dat":"2011-05-13Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":null,"project_nu":null,"file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":2,"historic_c":0E-11,"funding_ba":null}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.157","geometry":{"type":"Point","coordinates":[542230.7865000004,6905153.617]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE1479","type":"Hoop_Half","material":"Stainless Steel","number_of_":1,"comments":null,"documents":"../photos/36/x128p233.jpg","inspectors":null,"inspection":"2009-11-12Z","constructi":null,"record_cre":"2008-06-16Z","last_updat":null,"update_dat":"2011-05-13Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":null,"project_nu":null,"file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":2,"historic_c":0E-11,"funding_ba":null}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.158","geometry":{"type":"Point","coordinates":[533003.4392999997,6903695.2639]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE1480","type":"Wheel Rack","material":"Galvanised Steel","number_of_":1,"comments":null,"documents":"../photos/10/d604p50.jpg","inspectors":null,"inspection":"2004-09-20Z","constructi":null,"record_cre":"2004-09-20Z","last_updat":null,"update_dat":"2011-05-13Z","disposal_d":null,"positional":null,"owner":null,"project_nu":null,"file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":2,"historic_c":0E-11,"funding_ba":null}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.159","geometry":{"type":"Point","coordinates":[533003.9506000001,6903695.1239]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE1481","type":"Wheel Rack","material":"Galvanised Steel","number_of_":1,"comments":null,"documents":"../photos/10/d604p50.jpg","inspectors":null,"inspection":"2004-09-20Z","constructi":null,"record_cre":"2004-09-20Z","last_updat":null,"update_dat":"2011-05-13Z","disposal_d":null,"positional":null,"owner":null,"project_nu":null,"file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":2,"historic_c":0E-11,"funding_ba":null}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.160","geometry":{"type":"Point","coordinates":[533003.159,6903695.3139]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE1482","type":"Wheel Rack","material":"Galvanised Steel","number_of_":1,"comments":null,"documents":"../photos/10/d604p50.jpg","inspectors":null,"inspection":"2004-09-20Z","constructi":null,"record_cre":"2004-09-20Z","last_updat":null,"update_dat":"2011-05-13Z","disposal_d":null,"positional":null,"owner":null,"project_nu":null,"file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":2,"historic_c":0E-11,"funding_ba":null}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.161","geometry":{"type":"Point","coordinates":[532986.9724000003,6903708.0213]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE1483","type":"Wheel Rack","material":"Galvanised Steel","number_of_":1,"comments":null,"documents":"../photos/10/d604p77.jpg","inspectors":null,"inspection":"2004-09-20Z","constructi":null,"record_cre":"2004-09-20Z","last_updat":null,"update_dat":"2011-05-13Z","disposal_d":null,"positional":null,"owner":null,"project_nu":null,"file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":2,"historic_c":0E-11,"funding_ba":null}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.162","geometry":{"type":"Point","coordinates":[532986.2714999998,6903708.1513]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE1484","type":"Wheel Rack","material":"Galvanised Steel","number_of_":1,"comments":null,"documents":"../photos/10/d604p77.jpg","inspectors":null,"inspection":"2004-09-20Z","constructi":null,"record_cre":"2004-09-20Z","last_updat":null,"update_dat":"2011-05-13Z","disposal_d":null,"positional":null,"owner":null,"project_nu":null,"file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":2,"historic_c":0E-11,"funding_ba":null}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.163","geometry":{"type":"Point","coordinates":[532986.6919999998,6903708.0913]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE1485","type":"Wheel Rack","material":"Galvanised Steel","number_of_":1,"comments":null,"documents":"../photos/10/d604p77.jpg","inspectors":null,"inspection":"2004-09-20Z","constructi":null,"record_cre":"2004-09-20Z","last_updat":null,"update_dat":"2011-05-13Z","disposal_d":null,"positional":null,"owner":null,"project_nu":null,"file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":2,"historic_c":0E-11,"funding_ba":null}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.164","geometry":{"type":"Point","coordinates":[540387.7495999997,6901238.064]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE7","type":"Wheel Rack","material":"Mild Steel","number_of_":14,"comments":null,"documents":"../photos/59/x313p29.jpg","inspectors":null,"inspection":"2010-05-24Z","constructi":null,"record_cre":"2002-02-28Z","last_updat":null,"update_dat":"2010-05-28Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":null,"project_nu":null,"file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":4,"historic_c":0E-11,"funding_ba":null}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.165","geometry":{"type":"Point","coordinates":[530780.6070999997,6916261.2561]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE310","type":"Wheel Rack","material":"Galvanised Steel","number_of_":10,"comments":null,"documents":"../photos/29/f333p11.jpg","inspectors":null,"inspection":"2009-09-23Z","constructi":null,"record_cre":"2007-01-15Z","last_updat":null,"update_dat":"2011-01-31Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":null,"project_nu":null,"file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":3,"historic_c":0E-11,"funding_ba":null}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.166","geometry":{"type":"Point","coordinates":[538856.1912000002,6912515.7285]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE50","type":"Wheel Rack","material":"Galvanised Steel","number_of_":10,"comments":null,"documents":"../photos/48/e107p237.jpg","inspectors":null,"inspection":"2009-10-07Z","constructi":null,"record_cre":"2002-10-15Z","last_updat":null,"update_dat":"2011-01-31Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":null,"project_nu":null,"file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":2,"historic_c":0E-11,"funding_ba":null}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.167","geometry":{"type":"Point","coordinates":[544527.2953000003,6892883.0947]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE950","type":"Wheel Rack","material":"Stainless Steel","number_of_":5,"comments":null,"documents":"../photos/54/k225p3.jpg","inspectors":null,"inspection":"2009-10-22Z","constructi":null,"record_cre":"2009-10-22Z","last_updat":null,"update_dat":"2011-01-31Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":null,"project_nu":null,"file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":2,"historic_c":0E-11,"funding_ba":"Initial"}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.168","geometry":{"type":"Point","coordinates":[544483.1966000004,6892960.029]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE951","type":"Wheel Rack","material":"Stainless Steel","number_of_":5,"comments":null,"documents":"../photos/54/k225p8.jpg","inspectors":null,"inspection":"2009-10-22Z","constructi":null,"record_cre":"2009-10-22Z","last_updat":null,"update_dat":"2011-01-31Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":null,"project_nu":null,"file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":2,"historic_c":0E-11,"funding_ba":"Initial"}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.169","geometry":{"type":"Point","coordinates":[541160.1624999996,6906351.8931]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE1010","type":"Other","material":"Stainless Steel","number_of_":1,"comments":null,"documents":"../photos/55/A148p54.jpg","inspectors":null,"inspection":"2010-01-06Z","constructi":null,"record_cre":"2010-01-06Z","last_updat":null,"update_dat":"2011-05-13Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":null,"project_nu":"TBA","file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":1,"historic_c":0E-11,"funding_ba":"Capex"}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.170","geometry":{"type":"Point","coordinates":[542240.4423000002,6895814.8279]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE1110","type":"Wheel Rack","material":"Galvanised Steel","number_of_":6,"comments":null,"documents":"../photos/57/A162p40.jpg","inspectors":null,"inspection":"2010-02-26Z","constructi":null,"record_cre":"2010-02-26Z","last_updat":null,"update_dat":"2011-01-31Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":null,"project_nu":null,"file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":2,"historic_c":0E-11,"funding_ba":"Initial"}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.171","geometry":{"type":"Point","coordinates":[542215.1853,6895853.1401]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE1111","type":"Frame Rack","material":"Galvanised Steel","number_of_":6,"comments":null,"documents":"../photos/57/A162p184.jpg","inspectors":null,"inspection":"2010-02-26Z","constructi":null,"record_cre":"2010-02-26Z","last_updat":null,"update_dat":"2011-01-31Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":null,"project_nu":null,"file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":2,"historic_c":0E-11,"funding_ba":"Initial"}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.172","geometry":{"type":"Point","coordinates":[537506.6102999998,6894242.338]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE1170","type":"Frame Rack","material":"Galvanised Steel","number_of_":4,"comments":null,"documents":"../photos/59/x314p72.jpg","inspectors":null,"inspection":"2010-05-25Z","constructi":null,"record_cre":"2010-05-25Z","last_updat":null,"update_dat":"2011-01-31Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":null,"project_nu":null,"file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":2,"historic_c":0E-11,"funding_ba":"Initial"}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.173","geometry":{"type":"Point","coordinates":[537507.369,6894244.1976]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE1171","type":"Frame Rack","material":"Galvanised Steel","number_of_":4,"comments":null,"documents":"../photos/59/x314p73.jpg","inspectors":null,"inspection":"2010-05-25Z","constructi":null,"record_cre":"2010-05-25Z","last_updat":null,"update_dat":"2011-01-31Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":null,"project_nu":null,"file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":2,"historic_c":0E-11,"funding_ba":"Initial"}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.174","geometry":{"type":"Point","coordinates":[537508.3997,6894246.4272]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE1172","type":"Frame Rack","material":"Galvanised Steel","number_of_":4,"comments":null,"documents":"../photos/59/x314p74.jpg","inspectors":null,"inspection":"2010-05-25Z","constructi":null,"record_cre":"2010-05-25Z","last_updat":null,"update_dat":"2011-01-31Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":null,"project_nu":null,"file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":2,"historic_c":0E-11,"funding_ba":"Initial"}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.175","geometry":{"type":"Point","coordinates":[537504.2355000004,6894243.7077]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE1173","type":"Frame Rack","material":"Galvanised Steel","number_of_":4,"comments":null,"documents":"../photos/59/x314p75.jpg","inspectors":null,"inspection":"2010-05-25Z","constructi":null,"record_cre":"2010-05-25Z","last_updat":null,"update_dat":"2011-01-31Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":null,"project_nu":null,"file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":2,"historic_c":0E-11,"funding_ba":"Initial"}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.176","geometry":{"type":"Point","coordinates":[537505.2167999996,6894245.3774]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE1174","type":"Frame Rack","material":"Galvanised Steel","number_of_":4,"comments":null,"documents":"../photos/59/x314p76.jpg","inspectors":null,"inspection":"2010-05-25Z","constructi":null,"record_cre":"2010-05-25Z","last_updat":null,"update_dat":"2011-01-31Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":null,"project_nu":null,"file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":2,"historic_c":0E-11,"funding_ba":"Initial"}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.177","geometry":{"type":"Point","coordinates":[537506.1156000001,6894247.237]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE1175","type":"Frame Rack","material":"Galvanised Steel","number_of_":4,"comments":null,"documents":"../photos/59/x314p77.jpg","inspectors":null,"inspection":"2010-05-25Z","constructi":null,"record_cre":"2010-05-25Z","last_updat":null,"update_dat":"2011-01-31Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":null,"project_nu":null,"file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":2,"historic_c":0E-11,"funding_ba":"Initial"}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.178","geometry":{"type":"Point","coordinates":[549727.8256000001,6885518.2338]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE1350","type":"Hoop_Half","material":"Galvanised Steel","number_of_":5,"comments":null,"documents":"../photos/62/j354p2.jpg","inspectors":null,"inspection":"2011-01-14Z","constructi":"2010-07-16Z","record_cre":"2011-01-14Z","last_updat":null,"update_dat":"2011-01-31Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":null,"project_nu":"WA58","file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":1,"historic_c":0E-11,"funding_ba":"Capex"}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.179","geometry":{"type":"Point","coordinates":[551133.4123,6884433.7645]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE1351","type":"Hoop_Half","material":"Galvanised Steel","number_of_":5,"comments":null,"documents":"../photos/62/j354p6.jpg","inspectors":null,"inspection":"2011-01-14Z","constructi":"2010-07-16Z","record_cre":"2011-01-14Z","last_updat":null,"update_dat":"2011-01-31Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":null,"project_nu":"WA58","file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":1,"historic_c":0E-11,"funding_ba":"Capex"}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.180","geometry":{"type":"Point","coordinates":[550771.1805999996,6884641.6222]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE1352","type":"Hoop_Half","material":"Galvanised Steel","number_of_":5,"comments":null,"documents":"../photos/62/j354p7.jpg","inspectors":null,"inspection":"2011-01-14Z","constructi":"2010-07-16Z","record_cre":"2011-01-14Z","last_updat":null,"update_dat":"2011-01-31Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":null,"project_nu":"WA58","file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":1,"historic_c":0E-11,"funding_ba":"Capex"}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.181","geometry":{"type":"Point","coordinates":[542402.7699999996,6902325.4627]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE1450","type":"Hoop_Big","material":"Stainless Steel","number_of_":2,"comments":"Asset associated with Projects JN29 & JN35","documents":"../photos/63/j378p138.jpg","inspectors":null,"inspection":"2011-03-08Z","constructi":"2010-12-21Z","record_cre":"2011-03-08Z","last_updat":null,"update_dat":"2012-02-10Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":"251","project_nu":"JN35","file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":1,"historic_c":0E-11,"funding_ba":"Capex"}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.182","geometry":{"type":"Point","coordinates":[542403.0009000003,6902324.2429]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE1451","type":"Hoop_Big","material":"Stainless Steel","number_of_":2,"comments":"Asset associated with Projects JN29 & JN35","documents":"../photos/63/j378p139.jpg","inspectors":null,"inspection":"2011-03-08Z","constructi":"2010-12-21Z","record_cre":"2011-03-08Z","last_updat":null,"update_dat":"2012-02-10Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":"251","project_nu":"JN35","file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":1,"historic_c":0E-11,"funding_ba":"Capex"}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.183","geometry":{"type":"Point","coordinates":[541177.3881000001,6906139.0565]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE2","type":"Frame Rack","material":"Galvanised Steel","number_of_":5,"comments":null,"documents":"../photos/57/k240p9.jpg","inspectors":null,"inspection":"2010-03-13Z","constructi":null,"record_cre":"2002-01-22Z","last_updat":null,"update_dat":"2010-08-11Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":null,"project_nu":null,"file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":3,"historic_c":0E-11,"funding_ba":null}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.184","geometry":{"type":"Point","coordinates":[541079.9798999997,6902441.659]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE3","type":"Hoop_Half","material":"Galvanised Steel","number_of_":1,"comments":null,"documents":"../photos/57/x287p217.jpg","inspectors":null,"inspection":"2009-11-13Z","constructi":null,"record_cre":"2002-01-23Z","last_updat":null,"update_dat":"2011-01-31Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":null,"project_nu":null,"file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":2,"historic_c":0E-11,"funding_ba":null}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.185","geometry":{"type":"Point","coordinates":[541084.5152000003,6902440.3893]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE4","type":"Hoop_Half","material":"Galvanised Steel","number_of_":1,"comments":null,"documents":"../photos/57/x287p216.jpg","inspectors":null,"inspection":"2009-11-13Z","constructi":null,"record_cre":"2002-01-23Z","last_updat":null,"update_dat":"2011-01-31Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":null,"project_nu":null,"file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":2,"historic_c":0E-11,"funding_ba":null}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.186","geometry":{"type":"Point","coordinates":[540051.5334999999,6896519.6045]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE9","type":"Wheel Rack","material":"Mild Steel","number_of_":7,"comments":null,"documents":"../photos/44/e68p27.jpg","inspectors":null,"inspection":"2009-01-06Z","constructi":null,"record_cre":"2002-03-26Z","last_updat":null,"update_dat":"2009-09-25Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":null,"project_nu":null,"file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":2,"historic_c":0E-11,"funding_ba":null}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.187","geometry":{"type":"Point","coordinates":[542732.8265000004,6899438.8903]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE12","type":"Wheel Rack","material":"Mild Steel","number_of_":0,"comments":null,"documents":"../photos/65/t17p70.jpg","inspectors":null,"inspection":"2011-08-23Z","constructi":null,"record_cre":"2002-05-17Z","last_updat":null,"update_dat":"2011-08-25Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":null,"project_nu":null,"file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":2,"historic_c":0E-11,"funding_ba":null}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.188","geometry":{"type":"Point","coordinates":[544084.7986000003,6893815.6749]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE13","type":"Wheel Rack","material":"Mild Steel","number_of_":4,"comments":null,"documents":"../photos/65/j419p40.jpg","inspectors":null,"inspection":"2011-08-08Z","constructi":null,"record_cre":"2002-05-22Z","last_updat":null,"update_dat":"2011-08-18Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":null,"project_nu":null,"file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":3,"historic_c":0E-11,"funding_ba":null}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.189","geometry":{"type":"Point","coordinates":[548628.5555999996,6887007.4207]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE22","type":"Wheel Rack","material":"Mild Steel","number_of_":5,"comments":null,"documents":"../photos/43/e60p180.jpg","inspectors":null,"inspection":"2009-01-06Z","constructi":null,"record_cre":"2002-05-31Z","last_updat":null,"update_dat":"2009-09-25Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":null,"project_nu":null,"file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":2,"historic_c":0E-11,"funding_ba":null}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.190","geometry":{"type":"Point","coordinates":[546358.1944000004,6888642.2379]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE33","type":"Wheel Rack","material":"Galvanised Steel","number_of_":5,"comments":null,"documents":"../photos/22/h48p288.jpg","inspectors":null,"inspection":"2009-11-30Z","constructi":null,"record_cre":"2002-08-08Z","last_updat":null,"update_dat":"2010-03-13Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":null,"project_nu":null,"file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":3,"historic_c":0E-11,"funding_ba":null}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.191","geometry":{"type":"Point","coordinates":[542441.9460000005,6893724.6234]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE35","type":"Wheel Rack","material":"Galvanised Steel","number_of_":5,"comments":null,"documents":"../photos/52/k211p124.jpg","inspectors":null,"inspection":"2009-07-20Z","constructi":null,"record_cre":"2002-08-26Z","last_updat":null,"update_dat":"2009-08-06Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":null,"project_nu":null,"file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":3,"historic_c":0E-11,"funding_ba":null}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.192","geometry":{"type":"Point","coordinates":[542464.8942,6893699.4385]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE36","type":"Wheel Rack","material":"Galvanised Steel","number_of_":5,"comments":null,"documents":"../photos/52/k211p84.jpg","inspectors":null,"inspection":"2009-07-20Z","constructi":null,"record_cre":"2002-08-27Z","last_updat":null,"update_dat":"2009-08-06Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":null,"project_nu":null,"file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":3,"historic_c":0E-11,"funding_ba":null}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.193","geometry":{"type":"Point","coordinates":[542551.1623,6893894.5788]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE40","type":"Frame Rack","material":"Galvanised Steel","number_of_":6,"comments":null,"documents":"../photos/52/k211p272.jpg","inspectors":null,"inspection":"2009-07-21Z","constructi":null,"record_cre":"2002-09-04Z","last_updat":null,"update_dat":"2009-08-06Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":null,"project_nu":null,"file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":3,"historic_c":0E-11,"funding_ba":null}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.194","geometry":{"type":"Point","coordinates":[542751.4785000002,6899404.6672]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE41","type":"Wheel Rack","material":"Galvanised Steel","number_of_":0,"comments":null,"documents":"../photos/65/t17p38.jpg","inspectors":null,"inspection":"2011-08-23Z","constructi":null,"record_cre":"2002-09-13Z","last_updat":null,"update_dat":"2011-08-25Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":null,"project_nu":null,"file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":2,"historic_c":0E-11,"funding_ba":null}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.195","geometry":{"type":"Point","coordinates":[541116.3936000001,6896183.5929]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE1857","type":"Hoop_Half","material":"Stainless Steel","number_of_":1,"comments":null,"documents":"../photos/69/R55p19.jpg","inspectors":null,"inspection":"2012-09-11Z","constructi":null,"record_cre":"2012-09-11Z","last_updat":null,"update_dat":"2012-09-18Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":"TBA","project_nu":null,"file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":1,"historic_c":0E-11,"funding_ba":"Initial"}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.196","geometry":{"type":"Point","coordinates":[541132.5225,6897142.0578]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE1858","type":"Hoop_Half","material":"Stainless Steel","number_of_":1,"comments":null,"documents":"../photos/69/R55p21.jpg","inspectors":null,"inspection":"2012-09-12Z","constructi":null,"record_cre":"2012-09-12Z","last_updat":null,"update_dat":"2012-09-18Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":"TBA","project_nu":null,"file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":1,"historic_c":0E-11,"funding_ba":"Initial"}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.197","geometry":{"type":"Point","coordinates":[540770.5629000003,6898285.345]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE1859","type":"Hoop_Half","material":"Stainless Steel","number_of_":0,"comments":null,"documents":"../photos/70/s11p15.jpg","inspectors":null,"inspection":"2013-01-04Z","constructi":null,"record_cre":"2012-09-12Z","last_updat":null,"update_dat":"2013-01-15Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":"TBA","project_nu":null,"file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":1,"historic_c":0E-11,"funding_ba":"Initial"}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.198","geometry":{"type":"Point","coordinates":[541947.8715000004,6897489.3371]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE1860","type":"Hoop_Half","material":"Stainless Steel","number_of_":1,"comments":null,"documents":"../photos/69/R55p25.jpg","inspectors":null,"inspection":"2012-09-12Z","constructi":null,"record_cre":"2012-09-12Z","last_updat":null,"update_dat":"2012-09-18Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":"TBA","project_nu":null,"file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":1,"historic_c":0E-11,"funding_ba":"Initial"}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.199","geometry":{"type":"Point","coordinates":[546433.7180000003,6887743.6408]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE910","type":"Wheel Rack","material":"Galvanised Steel","number_of_":6,"comments":null,"documents":"../photos/53/A128p262.jpg","inspectors":null,"inspection":"2009-08-18Z","constructi":null,"record_cre":"2009-08-18Z","last_updat":null,"update_dat":"2011-01-31Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":null,"project_nu":null,"file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":3,"historic_c":0E-11,"funding_ba":null}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.200","geometry":{"type":"Point","coordinates":[543439.4046,6896186.8922]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE1630","type":"Frame Rack","material":"Galvanised Steel","number_of_":4,"comments":null,"documents":"../photos/65/x439p71.jpg","inspectors":null,"inspection":"2011-09-22Z","constructi":"2011-05-16Z","record_cre":"2011-09-22Z","last_updat":null,"update_dat":"2011-09-28Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":"TBA","project_nu":"WF48","file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":2,"historic_c":0E-11,"funding_ba":"Capex"}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.201","geometry":{"type":"Point","coordinates":[542392.0175000001,6902527.7715]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE1650","type":"Hoop_Big","material":"Stainless Steel","number_of_":2,"comments":null,"documents":"../photos/66/x442p68.jpg","inspectors":null,"inspection":"2011-10-04Z","constructi":"2011-03-08Z","record_cre":"2011-10-04Z","last_updat":null,"update_dat":"2011-11-01Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":"TBA","project_nu":"JN35","file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":2,"historic_c":0E-11,"funding_ba":"Capex"}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.202","geometry":{"type":"Point","coordinates":[542392.0751999998,6902526.8017]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE1651","type":"Hoop_Big","material":"Stainless Steel","number_of_":2,"comments":null,"documents":"../photos/66/x442p69.jpg","inspectors":null,"inspection":"2011-10-04Z","constructi":"2011-03-08Z","record_cre":"2011-10-04Z","last_updat":null,"update_dat":"2011-11-01Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":"TBA","project_nu":"JN35","file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":2,"historic_c":0E-11,"funding_ba":"Capex"}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.203","geometry":{"type":"Point","coordinates":[542392.2236000001,6902524.3422]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE1652","type":"Hoop_Big","material":"Stainless Steel","number_of_":2,"comments":null,"documents":"../photos/66/x442p70.jpg","inspectors":null,"inspection":"2011-10-04Z","constructi":"2011-03-08Z","record_cre":"2011-10-04Z","last_updat":null,"update_dat":"2011-11-01Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":"TBA","project_nu":"JN35","file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":2,"historic_c":0E-11,"funding_ba":"Capex"}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.204","geometry":{"type":"Point","coordinates":[542392.1906000003,6902525.6719]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE1653","type":"Hoop_Big","material":"Stainless Steel","number_of_":2,"comments":null,"documents":"../photos/66/x442p71.jpg","inspectors":null,"inspection":"2011-10-04Z","constructi":"2011-03-08Z","record_cre":"2011-10-04Z","last_updat":null,"update_dat":"2011-11-01Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":"TBA","project_nu":"JN35","file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":2,"historic_c":0E-11,"funding_ba":"Capex"}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.205","geometry":{"type":"Point","coordinates":[542392.3142999997,6902523.2724]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE1654","type":"Hoop_Big","material":"Stainless Steel","number_of_":2,"comments":null,"documents":"../photos/66/x442p72.jpg","inspectors":null,"inspection":"2011-10-04Z","constructi":"2011-03-08Z","record_cre":"2011-10-04Z","last_updat":null,"update_dat":"2011-11-01Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":"TBA","project_nu":"JN35","file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":2,"historic_c":0E-11,"funding_ba":"Capex"}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.206","geometry":{"type":"Point","coordinates":[542392.3307999996,6902521.2728]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE1655","type":"Hoop_Big","material":"Stainless Steel","number_of_":2,"comments":null,"documents":"../photos/66/x442p73.jpg","inspectors":null,"inspection":"2011-10-04Z","constructi":"2011-03-08Z","record_cre":"2011-10-04Z","last_updat":null,"update_dat":"2011-11-01Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":"TBA","project_nu":"JN35","file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":2,"historic_c":0E-11,"funding_ba":"Capex"}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.207","geometry":{"type":"Point","coordinates":[542392.3307999996,6902522.2626]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE1656","type":"Hoop_Big","material":"Stainless Steel","number_of_":2,"comments":null,"documents":"../photos/66/x442p74.jpg","inspectors":null,"inspection":"2011-10-04Z","constructi":"2011-03-08Z","record_cre":"2011-10-04Z","last_updat":null,"update_dat":"2011-11-01Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":"TBA","project_nu":"JN35","file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":2,"historic_c":0E-11,"funding_ba":"Capex"}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.208","geometry":{"type":"Point","coordinates":[542392.3472999996,6902520.313]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE1657","type":"Hoop_Big","material":"Stainless Steel","number_of_":2,"comments":null,"documents":"../photos/66/x442p75.jpg","inspectors":null,"inspection":"2011-10-04Z","constructi":"2011-03-08Z","record_cre":"2011-10-04Z","last_updat":null,"update_dat":"2011-11-01Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":"TBA","project_nu":"JN35","file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":2,"historic_c":0E-11,"funding_ba":"Capex"}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.209","geometry":{"type":"Point","coordinates":[542392.3389999997,6902519.3332]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE1658","type":"Hoop_Big","material":"Stainless Steel","number_of_":2,"comments":null,"documents":"../photos/66/x442p76.jpg","inspectors":null,"inspection":"2011-10-04Z","constructi":"2011-03-08Z","record_cre":"2011-10-04Z","last_updat":null,"update_dat":"2011-11-01Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":"TBA","project_nu":"JN35","file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":2,"historic_c":0E-11,"funding_ba":"Capex"}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.210","geometry":{"type":"Point","coordinates":[542392.3389999997,6902518.1935]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE1659","type":"Hoop_Big","material":"Stainless Steel","number_of_":2,"comments":null,"documents":"../photos/66/x442p77.jpg","inspectors":null,"inspection":"2011-10-04Z","constructi":"2011-03-08Z","record_cre":"2011-10-04Z","last_updat":null,"update_dat":"2011-11-01Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":"TBA","project_nu":"JN35","file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":2,"historic_c":0E-11,"funding_ba":"Capex"}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.211","geometry":{"type":"Point","coordinates":[539664.5312999999,6909697.4621]},"geometry_name":"geom","properties":{"status":"LOCKED","asset_numb":"BIKE1710","type":"Hoop_Big","material":"Galvanised Steel","number_of_":2,"comments":null,"documents":"../photos/66/j502p92.jpg","inspectors":null,"inspection":"2012-02-06Z","constructi":"2011-09-30Z","record_cre":"2012-02-06Z","last_updat":null,"update_dat":"2012-02-07Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":"TBA","project_nu":"CNJ6","file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":1,"historic_c":0E-11,"funding_ba":"Capex"}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.212","geometry":{"type":"Point","coordinates":[539664.3828999996,6909696.2924]},"geometry_name":"geom","properties":{"status":"LOCKED","asset_numb":"BIKE1711","type":"Hoop_Big","material":"Galvanised Steel","number_of_":2,"comments":null,"documents":"../photos/66/j502p93.jpg","inspectors":null,"inspection":"2012-02-06Z","constructi":"2011-09-30Z","record_cre":"2012-02-06Z","last_updat":null,"update_dat":"2012-02-07Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":"TBA","project_nu":"CNJ6","file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":1,"historic_c":0E-11,"funding_ba":"Capex"}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.213","geometry":{"type":"Point","coordinates":[539664.2922,6909695.2126]},"geometry_name":"geom","properties":{"status":"LOCKED","asset_numb":"BIKE1712","type":"Hoop_Big","material":"Galvanised Steel","number_of_":2,"comments":null,"documents":"../photos/66/j502p94.jpg","inspectors":null,"inspection":"2012-02-06Z","constructi":"2011-09-30Z","record_cre":"2012-02-06Z","last_updat":null,"update_dat":"2012-02-07Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":"TBA","project_nu":"CNJ6","file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":1,"historic_c":0E-11,"funding_ba":"Capex"}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.214","geometry":{"type":"Point","coordinates":[531975.4134,6922291.6786]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE1890","type":"Other","material":"Galvanised Steel","number_of_":1,"comments":null,"documents":"../photos/69/f29p126.jpg","inspectors":null,"inspection":"2012-11-27Z","constructi":"2012-06-06Z","record_cre":"2012-11-27Z","last_updat":null,"update_dat":"2012-12-21Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":"TBA","project_nu":null,"file_numbe":"PN304552/03/DA2","folder_num":null,"drawing_nu":null,"survey_num":null,"condition":1,"historic_c":0E-11,"funding_ba":"Contribute"}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.215","geometry":{"type":"Point","coordinates":[531974.7290000003,6922291.8086]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE1891","type":"Other","material":"Galvanised Steel","number_of_":1,"comments":null,"documents":"../photos/69/f29p127.jpg","inspectors":null,"inspection":"2012-11-27Z","constructi":"2012-06-06Z","record_cre":"2012-11-27Z","last_updat":null,"update_dat":"2012-12-21Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":"TBA","project_nu":null,"file_numbe":"PN304552/03/DA2","folder_num":null,"drawing_nu":null,"survey_num":null,"condition":1,"historic_c":0E-11,"funding_ba":"Contribute"}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.216","geometry":{"type":"Point","coordinates":[531974.0694000004,6922291.9286]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE1892","type":"Other","material":"Galvanised Steel","number_of_":1,"comments":null,"documents":"../photos/69/f29p128.jpg","inspectors":null,"inspection":"2012-11-27Z","constructi":"2012-06-06Z","record_cre":"2012-11-27Z","last_updat":null,"update_dat":"2012-12-21Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":"TBA","project_nu":null,"file_numbe":"PN304552/03/DA2","folder_num":null,"drawing_nu":null,"survey_num":null,"condition":1,"historic_c":0E-11,"funding_ba":"Contribute"}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.217","geometry":{"type":"Point","coordinates":[542215.1276000002,6905440.1187]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE511","type":"Hoop_Half","material":"Stainless Steel","number_of_":1,"comments":null,"documents":"../photos/36/x128p194.jpg","inspectors":null,"inspection":"2009-11-12Z","constructi":null,"record_cre":"2008-06-16Z","last_updat":null,"update_dat":"2011-05-13Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":null,"project_nu":null,"file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":2,"historic_c":0E-11,"funding_ba":null}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.218","geometry":{"type":"Point","coordinates":[542224.6350999996,6905330.471]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE512","type":"Hoop_Half","material":"Stainless Steel","number_of_":1,"comments":null,"documents":"../photos/36/x128p218.jpg","inspectors":null,"inspection":"2009-11-12Z","constructi":null,"record_cre":"2008-06-16Z","last_updat":null,"update_dat":"2011-05-13Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":"TBA","project_nu":null,"file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":2,"historic_c":0E-11,"funding_ba":null}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.219","geometry":{"type":"Point","coordinates":[542231.2647000002,6905153.627]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE513","type":"Hoop_Half","material":"Stainless Steel","number_of_":1,"comments":null,"documents":"../photos/36/x128p233.jpg","inspectors":null,"inspection":"2009-11-12Z","constructi":null,"record_cre":"2008-06-16Z","last_updat":null,"update_dat":"2011-05-13Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":null,"project_nu":null,"file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":2,"historic_c":0E-11,"funding_ba":null}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.220","geometry":{"type":"Point","coordinates":[538809.2641000003,6915399.7015]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE1910","type":"Hoop_Half","material":"Stainless Steel","number_of_":1,"comments":null,"documents":"../photos/70/s14p3.jpg","inspectors":null,"inspection":"2013-01-10Z","constructi":null,"record_cre":"2013-01-10Z","last_updat":null,"update_dat":"2013-01-18Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":"TBA","project_nu":null,"file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":1,"historic_c":0E-11,"funding_ba":"Initial"}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.221","geometry":{"type":"Point","coordinates":[538808.8269999996,6915399.7915]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE1911","type":"Hoop_Half","material":"Stainless Steel","number_of_":1,"comments":null,"documents":"../photos/70/s14p6.jpg","inspectors":null,"inspection":"2013-01-10Z","constructi":null,"record_cre":"2013-01-10Z","last_updat":null,"update_dat":"2013-01-18Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":"TBA","project_nu":null,"file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":1,"historic_c":0E-11,"funding_ba":"Initial"}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.222","geometry":{"type":"Point","coordinates":[546381.2992000002,6889544.8541]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE1930","type":"Hoop_Big","material":"Stainless Steel","number_of_":1,"comments":null,"documents":"../photos/70/f39p47.jpg","inspectors":null,"inspection":"2013-02-26Z","constructi":"2012-11-23Z","record_cre":"2013-02-26Z","last_updat":null,"update_dat":"2013-03-14Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":"TBA","project_nu":"30008","file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":1,"historic_c":0E-11,"funding_ba":"Capex"}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.223","geometry":{"type":"Point","coordinates":[546381.8186999997,6889543.8044]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE1931","type":"Hoop_Big","material":"Stainless Steel","number_of_":1,"comments":null,"documents":"../photos/70/f39p48.jpg","inspectors":null,"inspection":"2013-02-26Z","constructi":"2012-11-23Z","record_cre":"2013-02-26Z","last_updat":null,"update_dat":"2013-03-14Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":"TBA","project_nu":"30008","file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":1,"historic_c":0E-11,"funding_ba":"Capex"}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.224","geometry":{"type":"Point","coordinates":[546382.3629000001,6889542.6246]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE1932","type":"Hoop_Big","material":"Stainless Steel","number_of_":1,"comments":null,"documents":"../photos/70/f39p49.jpg","inspectors":null,"inspection":"2013-02-26Z","constructi":"2012-11-23Z","record_cre":"2013-02-26Z","last_updat":null,"update_dat":"2013-03-14Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":"TBA","project_nu":"30008","file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":1,"historic_c":0E-11,"funding_ba":"Capex"}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.225","geometry":{"type":"Point","coordinates":[540626.9945,6894259.9144]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE1950","type":"Hoop_Half","material":"Stainless Steel","number_of_":1,"comments":null,"documents":"../photos/70/r2p13.jpg","inspectors":null,"inspection":"2013-03-20Z","constructi":null,"record_cre":"2013-03-20Z","last_updat":null,"update_dat":"2013-03-21Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":"TBA","project_nu":null,"file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":1,"historic_c":0E-11,"funding_ba":"Initial"}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.226","geometry":{"type":"Point","coordinates":[540629.2620999999,6894257.8748]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE1951","type":"Hoop_Half","material":"Stainless Steel","number_of_":1,"comments":null,"documents":"../photos/70/r2p14.jpg","inspectors":null,"inspection":"2013-03-20Z","constructi":null,"record_cre":"2013-03-20Z","last_updat":null,"update_dat":"2013-03-21Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":"TBA","project_nu":null,"file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":1,"historic_c":0E-11,"funding_ba":"Initial"}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.227","geometry":{"type":"Point","coordinates":[542105.2434999999,6904264.1581]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE1030","type":"Hoop_Big","material":"Galvanised Steel","number_of_":2,"comments":null,"documents":"../photos/55/x273p34.jpg","inspectors":null,"inspection":"2010-01-07Z","constructi":"2009-12-17Z","record_cre":"2010-01-07Z","last_updat":null,"update_dat":"2011-01-31Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":null,"project_nu":"CHA2","file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":1,"historic_c":0E-11,"funding_ba":"Capex"}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.228","geometry":{"type":"Point","coordinates":[542202.5362,6904874.0539]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE1861","type":"Hoop_Half","material":"Stainless Steel","number_of_":1,"comments":null,"documents":"../photos/69/R55p27.jpg","inspectors":null,"inspection":"2012-09-12Z","constructi":null,"record_cre":"2012-09-12Z","last_updat":null,"update_dat":"2012-09-18Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":"TBA","project_nu":null,"file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":1,"historic_c":0E-11,"funding_ba":"Initial"}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.229","geometry":{"type":"Point","coordinates":[542462.7915000003,6901720.2959]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE490","type":"Hoop_Big","material":"Stainless Steel","number_of_":2,"comments":null,"documents":"../photos/36/k87p17.jpg","inspectors":null,"inspection":"2009-11-13Z","constructi":null,"record_cre":"2008-06-12Z","last_updat":null,"update_dat":"2011-01-31Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":null,"project_nu":null,"file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":2,"historic_c":0E-11,"funding_ba":null}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.230","geometry":{"type":"Point","coordinates":[542461.9091999996,6901720.1359]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE491","type":"Hoop_Big","material":"Stainless Steel","number_of_":2,"comments":null,"documents":"../photos/36/k87p18.jpg","inspectors":null,"inspection":"2009-11-13Z","constructi":null,"record_cre":"2008-06-12Z","last_updat":null,"update_dat":"2011-01-31Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":null,"project_nu":null,"file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":2,"historic_c":0E-11,"funding_ba":null}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.231","geometry":{"type":"Point","coordinates":[538808.2911,6912710.1489]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE810","type":"Frame Rack","material":"Mild Steel","number_of_":5,"comments":null,"documents":"../photos/49/e110p226.jpg","inspectors":null,"inspection":"2009-10-07Z","constructi":null,"record_cre":"2009-06-10Z","last_updat":null,"update_dat":"2011-01-31Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":null,"project_nu":null,"file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":2,"historic_c":0E-11,"funding_ba":null}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.232","geometry":{"type":"Point","coordinates":[538258.4664000003,6912599.9814]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE610","type":"Frame Rack","material":"Galvanised Steel","number_of_":10,"comments":null,"documents":"../photos/43/j71p42.jpg","inspectors":null,"inspection":"2009-10-07Z","constructi":null,"record_cre":"2009-01-13Z","last_updat":null,"update_dat":"2011-08-05Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":null,"project_nu":"CFB1","file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":2,"historic_c":0E-11,"funding_ba":"Capex"}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.233","geometry":{"type":"Point","coordinates":[533502.6509999996,6919964.8923]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE750","type":"Hoop_Half","material":"Galvanised Steel","number_of_":3,"comments":null,"documents":"../photos/47/x229p108.jpg","inspectors":null,"inspection":"2009-09-02Z","constructi":null,"record_cre":"2009-04-14Z","last_updat":null,"update_dat":"2011-01-31Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":null,"project_nu":null,"file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":2,"historic_c":0E-11,"funding_ba":"Contribute"}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.234","geometry":{"type":"Point","coordinates":[544368.6123000002,6892924.3563]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE439","type":"Hoop_Big","material":"Stainless Steel","number_of_":2,"comments":null,"documents":"../photos/54/k225p2.jpg","inspectors":null,"inspection":"2009-10-22Z","constructi":null,"record_cre":"2007-08-15Z","last_updat":null,"update_dat":"2011-01-31Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":null,"project_nu":null,"file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":2,"historic_c":0E-11,"funding_ba":null}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.235","geometry":{"type":"Point","coordinates":[544452.8024000004,6892862.9288]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE440","type":"Hoop_Big","material":"Stainless Steel","number_of_":1,"comments":null,"documents":"../photos/33/w28p136.jpg","inspectors":null,"inspection":"2009-10-01Z","constructi":null,"record_cre":"2007-08-20Z","last_updat":null,"update_dat":"2011-01-31Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":null,"project_nu":null,"file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":2,"historic_c":0E-11,"funding_ba":null}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.236","geometry":{"type":"Point","coordinates":[542335.3767999997,6883261.2432]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE570","type":"Frame Rack","material":"Mild Steel","number_of_":12,"comments":null,"documents":"../photos/45/k166p25.jpg","inspectors":null,"inspection":"2010-01-12Z","constructi":null,"record_cre":"2008-07-08Z","last_updat":null,"update_dat":"2011-01-31Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":null,"project_nu":null,"file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":2,"historic_c":0E-11,"funding_ba":null}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.237","geometry":{"type":"Point","coordinates":[544549.4024,6892831.8051]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE550","type":"Wheel Rack","material":"Galvanised Steel","number_of_":5,"comments":null,"documents":"../photos/37/j22p17.jpg","inspectors":null,"inspection":"2009-10-01Z","constructi":"2007-05-30Z","record_cre":"2008-07-07Z","last_updat":null,"update_dat":"2011-01-31Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":null,"project_nu":"W771","file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":2,"historic_c":0E-11,"funding_ba":"Capex"}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.238","geometry":{"type":"Point","coordinates":[544612.6645999998,6892791.5433]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE551","type":"Wheel Rack","material":"Galvanised Steel","number_of_":5,"comments":null,"documents":"../photos/37/j22p108.jpg","inspectors":null,"inspection":"2009-10-01Z","constructi":"2007-05-30Z","record_cre":"2008-07-07Z","last_updat":null,"update_dat":"2011-01-31Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":null,"project_nu":"W771","file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":2,"historic_c":0E-11,"funding_ba":"Capex"}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.239","geometry":{"type":"Point","coordinates":[541662.9282,6898739.6326]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE1524","type":"Hoop_Big","material":"Stainless Steel","number_of_":1,"comments":null,"documents":"../photos/47/e104p137.jpg","inspectors":null,"inspection":"2009-11-20Z","constructi":"2008-08-26Z","record_cre":"2009-05-08Z","last_updat":null,"update_dat":"2011-05-13Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":null,"project_nu":"CY38","file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":2,"historic_c":0E-11,"funding_ba":"Capex"}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.240","geometry":{"type":"Point","coordinates":[541662.9528999999,6898740.7124]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE1525","type":"Hoop_Big","material":"Stainless Steel","number_of_":1,"comments":null,"documents":"../photos/47/e104p137.jpg","inspectors":null,"inspection":"2009-11-20Z","constructi":"2008-08-26Z","record_cre":"2009-05-08Z","last_updat":null,"update_dat":"2011-05-13Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":null,"project_nu":"CY38","file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":2,"historic_c":0E-11,"funding_ba":"Capex"}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.241","geometry":{"type":"Point","coordinates":[541662.8787000002,6898739.1727]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE1526","type":"Hoop_Big","material":"Stainless Steel","number_of_":1,"comments":null,"documents":"../photos/47/e104p137.jpg","inspectors":null,"inspection":"2009-11-20Z","constructi":"2008-08-26Z","record_cre":"2009-05-08Z","last_updat":null,"update_dat":"2011-05-13Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":null,"project_nu":"CY38","file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":2,"historic_c":0E-11,"funding_ba":"Capex"}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.242","geometry":{"type":"Point","coordinates":[541662.8539000005,6898738.7328]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE1527","type":"Hoop_Big","material":"Stainless Steel","number_of_":1,"comments":null,"documents":"../photos/47/e104p137.jpg","inspectors":null,"inspection":"2009-11-20Z","constructi":"2008-08-26Z","record_cre":"2009-05-08Z","last_updat":null,"update_dat":"2011-05-13Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":null,"project_nu":"CY38","file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":2,"historic_c":0E-11,"funding_ba":"Capex"}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.243","geometry":{"type":"Point","coordinates":[541662.9282,6898741.0823]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE1528","type":"Hoop_Big","material":"Stainless Steel","number_of_":1,"comments":null,"documents":"../photos/47/e104p137.jpg","inspectors":null,"inspection":"2009-11-20Z","constructi":"2008-08-26Z","record_cre":"2009-05-08Z","last_updat":null,"update_dat":"2011-05-13Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":null,"project_nu":"CY38","file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":2,"historic_c":0E-11,"funding_ba":"Capex"}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.244","geometry":{"type":"Point","coordinates":[541662.9528999999,6898741.4822]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE1529","type":"Hoop_Big","material":"Stainless Steel","number_of_":1,"comments":null,"documents":"../photos/47/e104p137.jpg","inspectors":null,"inspection":"2009-11-20Z","constructi":"2008-08-26Z","record_cre":"2009-05-08Z","last_updat":null,"update_dat":"2011-05-13Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":null,"project_nu":"CY38","file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":2,"historic_c":0E-11,"funding_ba":"Capex"}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.245","geometry":{"type":"Point","coordinates":[541662.8044999996,6898738.3129]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE1530","type":"Hoop_Big","material":"Stainless Steel","number_of_":1,"comments":null,"documents":"../photos/47/e104p137.jpg","inspectors":null,"inspection":"2009-11-20Z","constructi":"2008-08-26Z","record_cre":"2009-05-08Z","last_updat":null,"update_dat":"2011-05-13Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":null,"project_nu":"CY38","file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":2,"historic_c":0E-11,"funding_ba":"Capex"}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.246","geometry":{"type":"Point","coordinates":[541662.7796999998,6898737.8929]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE1531","type":"Hoop_Big","material":"Stainless Steel","number_of_":1,"comments":null,"documents":"../photos/47/e104p137.jpg","inspectors":null,"inspection":"2009-11-20Z","constructi":"2008-08-26Z","record_cre":"2009-05-08Z","last_updat":null,"update_dat":"2011-05-13Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":null,"project_nu":"CY38","file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":2,"historic_c":0E-11,"funding_ba":"Capex"}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.247","geometry":{"type":"Point","coordinates":[538936.0768999998,6916514.3146]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE1570","type":"Hoop_Half","material":"Galvanised Steel","number_of_":1,"comments":null,"documents":"../photos/64/x418p109.jpg","inspectors":null,"inspection":"2011-07-04Z","constructi":"2011-05-20Z","record_cre":"2011-07-04Z","last_updat":null,"update_dat":"2011-07-14Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":"TBA","project_nu":"WC08","file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":2,"historic_c":0E-11,"funding_ba":"Capex"}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.248","geometry":{"type":"Point","coordinates":[538936.7696000002,6916514.9645]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE1571","type":"Hoop_Half","material":"Galvanised Steel","number_of_":1,"comments":null,"documents":"../photos/64/x418p110.jpg","inspectors":null,"inspection":"2011-07-04Z","constructi":"2011-05-20Z","record_cre":"2011-07-04Z","last_updat":null,"update_dat":"2011-07-14Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":"TBA","project_nu":"WC08","file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":2,"historic_c":0E-11,"funding_ba":"Capex"}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.249","geometry":{"type":"Point","coordinates":[538937.5116999997,6916515.5644]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE1572","type":"Hoop_Half","material":"Galvanised Steel","number_of_":1,"comments":null,"documents":"../photos/64/x418p111.jpg","inspectors":null,"inspection":"2011-07-04Z","constructi":"2011-05-20Z","record_cre":"2011-07-04Z","last_updat":null,"update_dat":"2011-07-14Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":"TBA","project_nu":"WC08","file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":2,"historic_c":0E-11,"funding_ba":"Capex"}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.250","geometry":{"type":"Point","coordinates":[542417.6125999996,6902134.1317]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE1590","type":"Hoop_Big","material":"Stainless Steel","number_of_":1,"comments":"Asset associated with Projects JN29 & JN35","documents":"../photos/64/T4P39.jpg","inspectors":null,"inspection":"2011-07-26Z","constructi":"2011-04-06Z","record_cre":"2011-07-26Z","last_updat":null,"update_dat":"2012-09-15Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":"TBA","project_nu":"JN35","file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":1,"historic_c":0E-11,"funding_ba":"Capex"}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.251","geometry":{"type":"Point","coordinates":[547712.0465000002,6888558.235]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE230","type":"Wheel Rack","material":"Stainless Steel","number_of_":10,"comments":"double sided","documents":"../photos/25/k25p1.jpg","inspectors":null,"inspection":"2009-11-26Z","constructi":"2006-05-25Z","record_cre":"2006-07-12Z","last_updat":null,"update_dat":"2011-01-31Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":null,"project_nu":"DBM5","file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":2,"historic_c":3500,"funding_ba":"Capex"}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.252","geometry":{"type":"Point","coordinates":[530448.0274,6914847.6639]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE590","type":"Wheel Rack","material":"Galvanised Steel","number_of_":11,"comments":null,"documents":"../photos/41/e31p175.jpg","inspectors":null,"inspection":"2009-09-23Z","constructi":null,"record_cre":"2008-09-30Z","last_updat":null,"update_dat":"2011-01-31Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":null,"project_nu":null,"file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":2,"historic_c":0E-11,"funding_ba":null}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.253","geometry":{"type":"Point","coordinates":[530449.9486999996,6914859.5014]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE591","type":"Wheel Rack","material":"Galvanised Steel","number_of_":11,"comments":null,"documents":"../photos/41/e31p183.jpg","inspectors":null,"inspection":"2009-09-23Z","constructi":null,"record_cre":"2008-09-30Z","last_updat":null,"update_dat":"2011-01-31Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":null,"project_nu":null,"file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":2,"historic_c":0E-11,"funding_ba":null}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.254","geometry":{"type":"Point","coordinates":[546876.0828999998,6887596.8507]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE630","type":"Hoop_Big","material":"Galvanised Steel","number_of_":4,"comments":null,"documents":"../photos/45/k156p137.jpg","inspectors":null,"inspection":"2009-02-10Z","constructi":null,"record_cre":"2009-02-10Z","last_updat":null,"update_dat":"2011-01-31Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":null,"project_nu":null,"file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":3,"historic_c":0E-11,"funding_ba":null}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.255","geometry":{"type":"Point","coordinates":[543681.7335000001,6895107.4219]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE730","type":"Frame Rack","material":"Galvanised Steel","number_of_":2,"comments":"Relocated under Project No. DLW4 on 5/11/2009","documents":"../photos/59/A185p31.jpg","inspectors":null,"inspection":"2010-06-01Z","constructi":null,"record_cre":"2009-05-06Z","last_updat":null,"update_dat":"2011-01-31Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":null,"project_nu":"DLW4","file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":2,"historic_c":0E-11,"funding_ba":null}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.256","geometry":{"type":"Point","coordinates":[542403.1657999996,6902320.7437]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE1455","type":"Hoop_Big","material":"Stainless Steel","number_of_":2,"comments":"Asset associated with Projects JN29 & JN35","documents":"../photos/63/j378p143.jpg","inspectors":null,"inspection":"2011-03-08Z","constructi":"2010-12-21Z","record_cre":"2011-03-08Z","last_updat":null,"update_dat":"2012-02-10Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":"251","project_nu":"JN35","file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":1,"historic_c":0E-11,"funding_ba":"Capex"}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.257","geometry":{"type":"Point","coordinates":[542403.2483000001,6902319.7539]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE1456","type":"Hoop_Big","material":"Stainless Steel","number_of_":2,"comments":"Asset associated with Projects JN29 & JN35","documents":"../photos/63/j378p144.jpg","inspectors":null,"inspection":"2011-03-08Z","constructi":"2010-12-21Z","record_cre":"2011-03-08Z","last_updat":null,"update_dat":"2012-02-10Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":"251","project_nu":"JN35","file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":1,"historic_c":0E-11,"funding_ba":"Capex"}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.258","geometry":{"type":"Point","coordinates":[542403.2812999999,6902317.6943]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE1457","type":"Hoop_Big","material":"Stainless Steel","number_of_":2,"comments":"Asset associated with Projects JN29 & JN35","documents":"../photos/63/j378p145.jpg","inspectors":null,"inspection":"2011-03-08Z","constructi":"2010-12-21Z","record_cre":"2011-03-08Z","last_updat":null,"update_dat":"2012-02-10Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":"251","project_nu":"JN35","file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":1,"historic_c":0E-11,"funding_ba":"Capex"}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.259","geometry":{"type":"Point","coordinates":[542403.273,6902318.7141]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE1458","type":"Hoop_Big","material":"Stainless Steel","number_of_":2,"comments":"Asset associated with Projects JN29 & JN35","documents":"../photos/63/j378p146.jpg","inspectors":null,"inspection":"2011-03-08Z","constructi":"2010-12-21Z","record_cre":"2011-03-08Z","last_updat":null,"update_dat":"2012-02-10Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":"251","project_nu":"JN35","file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":1,"historic_c":0E-11,"funding_ba":"Capex"}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.260","geometry":{"type":"Point","coordinates":[544718.0135000004,6892784.4547]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE1550","type":"Frame Rack","material":"Galvanised Steel","number_of_":5,"comments":null,"documents":"../photos/64/j400p19.jpg","inspectors":null,"inspection":"2011-06-07Z","constructi":"2011-02-10Z","record_cre":"2011-06-07Z","last_updat":null,"update_dat":"2011-06-09Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":"TBA","project_nu":"CLM6","file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":1,"historic_c":0E-11,"funding_ba":"Capex"}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.261","geometry":{"type":"Point","coordinates":[545632.6754999999,6891172.2529]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE1610","type":"Hitching Rail","material":"Galvanised Steel","number_of_":4,"comments":null,"documents":"../photos/65/A267p10.jpg","inspectors":null,"inspection":"2011-09-21Z","constructi":"2011-05-20Z","record_cre":"2011-09-21Z","last_updat":null,"update_dat":"2011-09-27Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":"TBA","project_nu":"WF35","file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":2,"historic_c":0E-11,"funding_ba":"Capex"}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.262","geometry":{"type":"Point","coordinates":[542872.1316999998,6897240.8477]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE1790","type":"Other","material":"Stainless Steel","number_of_":2,"comments":null,"documents":"../photos/67/j535p25.jpg","inspectors":null,"inspection":"2012-05-09Z","constructi":"2011-11-04Z","record_cre":"2012-05-09Z","last_updat":null,"update_dat":"2012-05-15Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":"TBA","project_nu":"B789","file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":1,"historic_c":0E-11,"funding_ba":"Capex"}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.263","geometry":{"type":"Point","coordinates":[542873.0305000003,6897237.0984]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE1791","type":"Other","material":"Stainless Steel","number_of_":2,"comments":null,"documents":"../photos/67/j535p26.jpg","inspectors":null,"inspection":"2012-05-09Z","constructi":"2011-11-04Z","record_cre":"2012-05-09Z","last_updat":null,"update_dat":"2012-05-15Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":"TBA","project_nu":"B789","file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":1,"historic_c":0E-11,"funding_ba":"Capex"}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.264","geometry":{"type":"Point","coordinates":[542873.6407000003,6897234.8589]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE1792","type":"Other","material":"Stainless Steel","number_of_":2,"comments":null,"documents":"../photos/67/j535p27.jpg","inspectors":null,"inspection":"2012-05-09Z","constructi":"2011-11-04Z","record_cre":"2012-05-09Z","last_updat":null,"update_dat":"2012-05-15Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":"TBA","project_nu":"B789","file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":1,"historic_c":0E-11,"funding_ba":"Capex"}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.265","geometry":{"type":"Point","coordinates":[542874.6715000002,6897231.3996]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE1793","type":"Other","material":"Stainless Steel","number_of_":2,"comments":null,"documents":"../photos/67/j535p28.jpg","inspectors":null,"inspection":"2012-05-09Z","constructi":"2011-11-04Z","record_cre":"2012-05-09Z","last_updat":null,"update_dat":"2012-05-15Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":"TBA","project_nu":"B789","file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":1,"historic_c":0E-11,"funding_ba":"Capex"}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.266","geometry":{"type":"Point","coordinates":[542849.5050999997,6897186.6287]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE1794","type":"Other","material":"Stainless Steel","number_of_":2,"comments":null,"documents":"../photos/67/j535p33.jpg","inspectors":null,"inspection":"2012-05-10Z","constructi":"2011-11-04Z","record_cre":"2012-05-10Z","last_updat":null,"update_dat":"2012-05-15Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":"TBA","project_nu":"B789","file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":1,"historic_c":0E-11,"funding_ba":"Capex"}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.267","geometry":{"type":"Point","coordinates":[542849.2001,6897187.8484]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE1795","type":"Other","material":"Stainless Steel","number_of_":2,"comments":null,"documents":"../photos/67/j535p34.jpg","inspectors":null,"inspection":"2012-05-10Z","constructi":"2011-11-04Z","record_cre":"2012-05-10Z","last_updat":null,"update_dat":"2012-05-15Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":"TBA","project_nu":"B789","file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":1,"historic_c":0E-11,"funding_ba":"Capex"}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.268","geometry":{"type":"Point","coordinates":[542848.9774000002,6897189.0182]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE1796","type":"Other","material":"Stainless Steel","number_of_":2,"comments":null,"documents":"../photos/67/j535p35.jpg","inspectors":null,"inspection":"2012-05-10Z","constructi":"2011-11-04Z","record_cre":"2012-05-10Z","last_updat":null,"update_dat":"2012-05-15Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":"TBA","project_nu":"B789","file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":1,"historic_c":0E-11,"funding_ba":"Capex"}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.269","geometry":{"type":"Point","coordinates":[542831.5209999997,6897269.0319]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE1797","type":"Other","material":"Stainless Steel","number_of_":2,"comments":null,"documents":"../photos/67/j535p47.jpg","inspectors":null,"inspection":"2012-05-10Z","constructi":"2011-11-04Z","record_cre":"2012-05-10Z","last_updat":null,"update_dat":"2012-05-15Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":"TBA","project_nu":"B789","file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":1,"historic_c":0E-11,"funding_ba":"Capex"}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.270","geometry":{"type":"Point","coordinates":[542831.7023999998,6897268.2821]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE1798","type":"Other","material":"Stainless Steel","number_of_":2,"comments":null,"documents":"../photos/67/j535p48.jpg","inspectors":null,"inspection":"2012-05-10Z","constructi":"2011-11-04Z","record_cre":"2012-05-10Z","last_updat":null,"update_dat":"2012-05-15Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":"TBA","project_nu":"B789","file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":1,"historic_c":0E-11,"funding_ba":"Capex"}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.271","geometry":{"type":"Point","coordinates":[542831.9661999997,6897266.7824]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE1799","type":"Other","material":"Stainless Steel","number_of_":2,"comments":null,"documents":"../photos/67/j535p49.jpg","inspectors":null,"inspection":"2012-05-10Z","constructi":"2011-11-04Z","record_cre":"2012-05-10Z","last_updat":null,"update_dat":"2012-05-15Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":"TBA","project_nu":"B789","file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":1,"historic_c":0E-11,"funding_ba":"Capex"}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.272","geometry":{"type":"Point","coordinates":[542832.3043,6897265.7326]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE1800","type":"Other","material":"Stainless Steel","number_of_":2,"comments":null,"documents":"../photos/67/j535p50.jpg","inspectors":null,"inspection":"2012-05-10Z","constructi":"2011-11-04Z","record_cre":"2012-05-10Z","last_updat":null,"update_dat":"2012-05-15Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":"TBA","project_nu":"B789","file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":1,"historic_c":0E-11,"funding_ba":"Capex"}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.273","geometry":{"type":"Point","coordinates":[533631.8963000001,6919617.153]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE1870","type":"Frame Rack","material":"Stainless Steel","number_of_":1,"comments":null,"documents":"../photos/69/f26p5.jpg","inspectors":null,"inspection":"2012-11-05Z","constructi":"2012-08-13Z","record_cre":"2012-11-05Z","last_updat":null,"update_dat":"2012-11-07Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":"TBA","project_nu":"00991","file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":1,"historic_c":0E-11,"funding_ba":"Capex"}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.274","geometry":{"type":"Point","coordinates":[533633.0920000002,6919617.7029]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE1871","type":"Frame Rack","material":"Stainless Steel","number_of_":1,"comments":null,"documents":"../photos/69/f26p6.jpg","inspectors":null,"inspection":"2012-11-05Z","constructi":"2012-08-13Z","record_cre":"2012-11-05Z","last_updat":null,"update_dat":"2012-11-07Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":"TBA","project_nu":"00991","file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":1,"historic_c":0E-11,"funding_ba":"Capex"}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.275","geometry":{"type":"Point","coordinates":[537725.7931000004,6904679.9635]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE59","type":"Wheel Rack","material":"Galvanised Steel","number_of_":10,"comments":null,"documents":"../photos/48/k184p17.jpg","inspectors":null,"inspection":"2009-05-15Z","constructi":null,"record_cre":"2002-12-11Z","last_updat":null,"update_dat":"2011-01-31Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":null,"project_nu":null,"file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":3,"historic_c":0E-11,"funding_ba":null}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.276","geometry":{"type":"Point","coordinates":[545869.6776,6890616.0261]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE16","type":"Hitching Rail","material":"Mild Steel","number_of_":6,"comments":null,"documents":"../photos/24/qa4p5.jpg","inspectors":null,"inspection":"2006-06-26Z","constructi":null,"record_cre":"2002-05-28Z","last_updat":null,"update_dat":"2011-01-31Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":null,"project_nu":"W457","file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":3,"historic_c":0E-11,"funding_ba":"Capex"}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.277","geometry":{"type":"Point","coordinates":[531700.9258000003,6908912.8619]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE110","type":"Frame Rack","material":"Galvanised Steel","number_of_":9,"comments":null,"documents":"../photos/18/f150p75.jpg","inspectors":null,"inspection":"2009-09-25Z","constructi":null,"record_cre":"2005-10-17Z","last_updat":null,"update_dat":"2010-03-13Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":null,"project_nu":null,"file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":2,"historic_c":0E-11,"funding_ba":null}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.278","geometry":{"type":"Point","coordinates":[532831.4639999997,6903923.2575]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE170","type":"Wheel Rack","material":"Galvanised Steel","number_of_":7,"comments":null,"documents":"../photos/57/x290p77.jpg","inspectors":null,"inspection":"2010-02-26Z","constructi":null,"record_cre":"2006-03-08Z","last_updat":null,"update_dat":"2011-01-31Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":null,"project_nu":"CD96","file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":2,"historic_c":0E-11,"funding_ba":"Capex"}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.279","geometry":{"type":"Point","coordinates":[532833.2862999998,6903923.2075]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE171","type":"Wheel Rack","material":"Galvanised Steel","number_of_":7,"comments":null,"documents":"../photos/57/x290p78.jpg","inspectors":null,"inspection":"2010-02-26Z","constructi":null,"record_cre":"2006-03-08Z","last_updat":null,"update_dat":"2011-01-31Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":null,"project_nu":"CD96","file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":3,"historic_c":0E-11,"funding_ba":"Capex"}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.280","geometry":{"type":"Point","coordinates":[543855.4568999996,6894541.6571]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE270","type":"Wheel Rack","material":"Galvanised Steel","number_of_":8,"comments":null,"documents":"../photos/27/S6p8.jpg","inspectors":null,"inspection":"2009-11-23Z","constructi":"2006-05-29Z","record_cre":"2006-09-15Z","last_updat":null,"update_dat":"2011-01-31Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":null,"project_nu":"DDD7","file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":2,"historic_c":0E-11,"funding_ba":"Capex"}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.281","geometry":{"type":"Point","coordinates":[543853.5521,6894469.5318]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE271","type":"Frame Rack","material":"Galvanised Steel","number_of_":8,"comments":null,"documents":"../photos/50/e117p6.jpg","inspectors":null,"inspection":"2009-11-23Z","constructi":"2006-05-29Z","record_cre":"2006-09-15Z","last_updat":null,"update_dat":"2011-01-31Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":null,"project_nu":"DDD7","file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":2,"historic_c":0E-11,"funding_ba":"Capex"}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.282","geometry":{"type":"Point","coordinates":[535643.9896,6893503.1984]},"geometry_name":"geom","properties":{"status":"LOCKED","asset_numb":"BIKE650","type":"Wheel Rack","material":"Galvanised Steel","number_of_":5,"comments":null,"documents":"../photos/45/x223p105.jpg","inspectors":null,"inspection":"2009-02-26Z","constructi":null,"record_cre":"2009-02-26Z","last_updat":null,"update_dat":"2011-01-31Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":null,"project_nu":null,"file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":2,"historic_c":0E-11,"funding_ba":null}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.283","geometry":{"type":"Point","coordinates":[546940.0871000001,6888513.0242]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE830","type":"Wheel Rack","material":"Galvanised Steel","number_of_":9,"comments":null,"documents":"../photos/50/k202p65.jpg","inspectors":null,"inspection":"2009-11-30Z","constructi":null,"record_cre":"2009-06-26Z","last_updat":null,"update_dat":"2011-01-31Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":null,"project_nu":null,"file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":2,"historic_c":0E-11,"funding_ba":null}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.284","geometry":{"type":"Point","coordinates":[546946.1643000003,6888515.1537]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE831","type":"Wheel Rack","material":"Galvanised Steel","number_of_":9,"comments":null,"documents":"../photos/50/k202p66.jpg","inspectors":null,"inspection":"2009-11-30Z","constructi":null,"record_cre":"2009-06-26Z","last_updat":null,"update_dat":"2011-01-31Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":null,"project_nu":null,"file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":2,"historic_c":0E-11,"funding_ba":null}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.285","geometry":{"type":"Point","coordinates":[538931.3026,6909684.9647]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE850","type":"Wheel Rack","material":"Mild Steel","number_of_":10,"comments":null,"documents":"../photos/51/v34p73.jpg","inspectors":null,"inspection":"2009-07-14Z","constructi":null,"record_cre":"2009-07-14Z","last_updat":null,"update_dat":"2011-01-31Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":null,"project_nu":null,"file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":3,"historic_c":0E-11,"funding_ba":null}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.286","geometry":{"type":"Point","coordinates":[538925.1017000005,6909671.6474]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE851","type":"Wheel Rack","material":"Mild Steel","number_of_":10,"comments":null,"documents":"../photos/51/v34p74.jpg","inspectors":null,"inspection":"2009-07-14Z","constructi":null,"record_cre":"2009-07-14Z","last_updat":null,"update_dat":"2011-01-31Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":null,"project_nu":null,"file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":3,"historic_c":0E-11,"funding_ba":null}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.287","geometry":{"type":"Point","coordinates":[542153.0198999997,6895579.6058]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE890","type":"Wheel Rack","material":"Galvanised Steel","number_of_":6,"comments":null,"documents":"../photos/52/x250p285.jpg","inspectors":null,"inspection":"2009-07-27Z","constructi":null,"record_cre":"2009-07-27Z","last_updat":null,"update_dat":"2011-01-31Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":null,"project_nu":null,"file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":2,"historic_c":0E-11,"funding_ba":null}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.288","geometry":{"type":"Point","coordinates":[541219.0790999997,6906070.4404]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE1390","type":"Frame Rack","material":"Other","number_of_":1,"comments":null,"documents":"../photos/63/j365p50.jpg","inspectors":null,"inspection":"2011-02-10Z","constructi":null,"record_cre":"2011-02-10Z","last_updat":null,"update_dat":"2011-02-17Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":"TBA","project_nu":null,"file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":1,"historic_c":0E-11,"funding_ba":"Initial"}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.289","geometry":{"type":"Point","coordinates":[541220.2088000001,6906069.4706]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE1391","type":"Frame Rack","material":"Other","number_of_":1,"comments":null,"documents":"../photos/63/j365p51.jpg","inspectors":null,"inspection":"2011-02-10Z","constructi":null,"record_cre":"2011-02-10Z","last_updat":null,"update_dat":"2011-02-17Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":"TBA","project_nu":null,"file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":1,"historic_c":0E-11,"funding_ba":"Initial"}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.290","geometry":{"type":"Point","coordinates":[541221.1818000004,6906068.7608]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE1392","type":"Frame Rack","material":"Other","number_of_":1,"comments":null,"documents":"../photos/63/j365p52.jpg","inspectors":null,"inspection":"2011-02-10Z","constructi":null,"record_cre":"2011-02-10Z","last_updat":null,"update_dat":"2011-02-17Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":"TBA","project_nu":null,"file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":1,"historic_c":0E-11,"funding_ba":"Initial"}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.291","geometry":{"type":"Point","coordinates":[541222.4929,6906068.2109]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE1393","type":"Frame Rack","material":"Other","number_of_":1,"comments":null,"documents":"../photos/63/j365p53.jpg","inspectors":null,"inspection":"2011-02-10Z","constructi":null,"record_cre":"2011-02-10Z","last_updat":null,"update_dat":"2011-02-17Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":"TBA","project_nu":null,"file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":1,"historic_c":0E-11,"funding_ba":"Initial"}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.292","geometry":{"type":"Point","coordinates":[524230.1166000003,6929044.3741]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE1970","type":"Wheel Rack","material":"Galvanised Steel","number_of_":5,"comments":null,"documents":"../photos/70/k10p37.jpg","inspectors":null,"inspection":"2013-03-12Z","constructi":null,"record_cre":"2013-03-12Z","last_updat":null,"update_dat":"2013-03-24Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":"TBA","project_nu":null,"file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":1,"historic_c":0E-11,"funding_ba":"Initial"}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.293","geometry":{"type":"Point","coordinates":[524187.23000000045,6929051.8726]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE1971","type":"Wheel Rack","material":"Galvanised Steel","number_of_":5,"comments":null,"documents":"../photos/70/k10p68.jpg","inspectors":null,"inspection":"2013-03-12Z","constructi":null,"record_cre":"2013-03-12Z","last_updat":null,"update_dat":"2013-03-24Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":"TBA","project_nu":null,"file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":1,"historic_c":0E-11,"funding_ba":"Initial"}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.294","geometry":{"type":"Point","coordinates":[537511.4835999999,6894208.005]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE1770","type":"Hoop_Big","material":"Stainless Steel","number_of_":2,"comments":null,"documents":"../photos/67/t85p37.jpg","inspectors":null,"inspection":"2012-03-12Z","constructi":"2011-12-06Z","record_cre":"2012-03-12Z","last_updat":null,"update_dat":"2012-07-05Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":"TBA","project_nu":"CLS1","file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":1,"historic_c":0E-11,"funding_ba":"Capex"}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.295","geometry":{"type":"Point","coordinates":[537511.6073000003,6894208.5249]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE1771","type":"Hoop_Big","material":"Stainless Steel","number_of_":2,"comments":null,"documents":"../photos/67/t85p37.jpg","inspectors":null,"inspection":"2012-03-12Z","constructi":"2011-12-06Z","record_cre":"2012-03-12Z","last_updat":null,"update_dat":"2012-07-05Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":"TBA","project_nu":"CLS1","file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":1,"historic_c":0E-11,"funding_ba":"Capex"}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.296","geometry":{"type":"Point","coordinates":[537511.3682000004,6894207.4451]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE1772","type":"Hoop_Big","material":"Stainless Steel","number_of_":2,"comments":null,"documents":"../photos/67/t85p37.jpg","inspectors":null,"inspection":"2012-03-12Z","constructi":"2011-12-06Z","record_cre":"2012-03-12Z","last_updat":null,"update_dat":"2012-07-05Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":"TBA","project_nu":"CLS1","file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":1,"historic_c":0E-11,"funding_ba":"Capex"}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.297","geometry":{"type":"Point","coordinates":[546438.2533,6889311.8916]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE1810","type":"Frame Rack","material":"Stainless Steel","number_of_":1,"comments":null,"documents":"../photos/62/x371p52.jpg","inspectors":null,"inspection":"2010-11-24Z","constructi":null,"record_cre":"2010-11-24Z","last_updat":null,"update_dat":"2012-11-05Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":"TBA","project_nu":null,"file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":2,"historic_c":0E-11,"funding_ba":"Initial"}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.298","geometry":{"type":"Point","coordinates":[546438.3852000004,6889312.3315]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE1811","type":"Frame Rack","material":"Stainless Steel","number_of_":1,"comments":null,"documents":"../photos/62/x371p52.jpg","inspectors":null,"inspection":"2010-11-24Z","constructi":null,"record_cre":"2010-11-24Z","last_updat":null,"update_dat":"2012-11-05Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":"TBA","project_nu":null,"file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":2,"historic_c":0E-11,"funding_ba":"Initial"}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.299","geometry":{"type":"Point","coordinates":[542436.0007999996,6901932.8926]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE1812","type":"Hoop_Half","material":"Galvanised Steel","number_of_":12,"comments":null,"documents":"../photos/48/A101p2.jpg","inspectors":null,"inspection":"2009-05-13Z","constructi":null,"record_cre":"2006-05-18Z","last_updat":null,"update_dat":"2012-11-05Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":"TBA","project_nu":null,"file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":2,"historic_c":0E-11,"funding_ba":"Initial"}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.300","geometry":{"type":"Point","coordinates":[542435.9183,6901931.7029]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE1813","type":"Hoop_Half","material":"Galvanised Steel","number_of_":12,"comments":null,"documents":"../photos/48/A101p2.jpg","inspectors":null,"inspection":"2009-05-13Z","constructi":null,"record_cre":"2006-05-18Z","last_updat":null,"update_dat":"2012-11-05Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":"TBA","project_nu":null,"file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":2,"historic_c":0E-11,"funding_ba":"Initial"}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.301","geometry":{"type":"Point","coordinates":[542435.8606000002,6901931.153]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE1814","type":"Hoop_Half","material":"Galvanised Steel","number_of_":12,"comments":null,"documents":"../photos/48/A101p2.jpg","inspectors":null,"inspection":"2009-05-13Z","constructi":null,"record_cre":"2006-05-18Z","last_updat":null,"update_dat":"2012-11-05Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":"TBA","project_nu":null,"file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":2,"historic_c":0E-11,"funding_ba":"Initial"}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.302","geometry":{"type":"Point","coordinates":[542435.8441000003,6901930.5431]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE1815","type":"Hoop_Half","material":"Galvanised Steel","number_of_":12,"comments":null,"documents":"../photos/48/A101p2.jpg","inspectors":null,"inspection":"2009-05-13Z","constructi":null,"record_cre":"2006-05-18Z","last_updat":null,"update_dat":"2012-11-05Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":"TBA","project_nu":null,"file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":2,"historic_c":0E-11,"funding_ba":"Initial"}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.303","geometry":{"type":"Point","coordinates":[542435.8194000004,6901930.0332]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE1816","type":"Hoop_Half","material":"Galvanised Steel","number_of_":12,"comments":null,"documents":"../photos/48/A101p2.jpg","inspectors":null,"inspection":"2009-05-13Z","constructi":null,"record_cre":"2006-05-18Z","last_updat":null,"update_dat":"2012-11-05Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":"TBA","project_nu":null,"file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":2,"historic_c":0E-11,"funding_ba":"Initial"}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.304","geometry":{"type":"Point","coordinates":[533502.3788999999,6919965.1822]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE1817","type":"Hoop_Half","material":"Galvanised Steel","number_of_":3,"comments":null,"documents":"../photos/47/x229p108.jpg","inspectors":null,"inspection":"2009-09-02Z","constructi":null,"record_cre":"2009-04-14Z","last_updat":null,"update_dat":"2012-11-05Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":"TBA","project_nu":null,"file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":2,"historic_c":0E-11,"funding_ba":"Contribute"}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.305","geometry":{"type":"Point","coordinates":[533502.9231000002,6919964.6223]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE1818","type":"Hoop_Half","material":"Galvanised Steel","number_of_":3,"comments":null,"documents":"../photos/47/x229p108.jpg","inspectors":null,"inspection":"2009-09-02Z","constructi":null,"record_cre":"2009-04-14Z","last_updat":null,"update_dat":"2012-11-05Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":"TBA","project_nu":null,"file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":2,"historic_c":0E-11,"funding_ba":"Contribute"}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.306","geometry":{"type":"Point","coordinates":[542365.9441,6902775.7011]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE1419","type":"Hoop_Big","material":"Stainless Steel","number_of_":2,"comments":"Asset associated with Projects JN29 & JN35","documents":"../photos/63/x386p299.jpg","inspectors":null,"inspection":"2011-03-10Z","constructi":"2010-09-24Z","record_cre":"2011-03-10Z","last_updat":null,"update_dat":"2012-02-10Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":"251","project_nu":"JN35","file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":2,"historic_c":0E-11,"funding_ba":"Capex"}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.307","geometry":{"type":"Point","coordinates":[542417.5219,6902132.9419]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE1836","type":"Hoop_Big","material":"Stainless Steel","number_of_":1,"comments":"Asset associated with Projects JN29 & JN35","documents":"../photos/64/T4P39.jpg","inspectors":null,"inspection":"2011-07-26Z","constructi":"2011-07-26Z","record_cre":"2012-09-15Z","last_updat":null,"update_dat":"2012-09-15Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":"TBA","project_nu":"JN35","file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":1,"historic_c":0E-11,"funding_ba":"Capex"}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.308","geometry":{"type":"Point","coordinates":[542417.4806000004,6902131.8121]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE1837","type":"Hoop_Big","material":"Stainless Steel","number_of_":1,"comments":"Asset associated with Projects JN29 & JN35","documents":"../photos/64/T4P39.jpg","inspectors":null,"inspection":"2011-07-26Z","constructi":"2011-07-26Z","record_cre":"2012-09-15Z","last_updat":null,"update_dat":"2012-09-15Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":"TBA","project_nu":"JN35","file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":1,"historic_c":0E-11,"funding_ba":"Capex"}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.309","geometry":{"type":"Point","coordinates":[552717.7769999998,6884044.5737]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE1850","type":"Hoop_Half","material":"Stainless Steel","number_of_":1,"comments":null,"documents":"../photos/69/R55p1.jpg","inspectors":null,"inspection":"2012-09-11Z","constructi":null,"record_cre":"2012-09-11Z","last_updat":null,"update_dat":"2012-09-18Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":"TBA","project_nu":null,"file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":1,"historic_c":0E-11,"funding_ba":"Initial"}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.310","geometry":{"type":"Point","coordinates":[552982.5510999998,6883998.3131]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE1851","type":"Hoop_Half","material":"Stainless Steel","number_of_":1,"comments":null,"documents":"../photos/69/R55p4.jpg","inspectors":null,"inspection":"2012-09-11Z","constructi":null,"record_cre":"2012-09-11Z","last_updat":null,"update_dat":"2012-09-18Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":"TBA","project_nu":null,"file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":1,"historic_c":0E-11,"funding_ba":"Initial"}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.311","geometry":{"type":"Point","coordinates":[549611.0067999996,6885561.8549]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE1852","type":"Hoop_Half","material":"Stainless Steel","number_of_":1,"comments":null,"documents":"../photos/69/R55p7.jpg","inspectors":null,"inspection":"2012-09-11Z","constructi":null,"record_cre":"2012-09-11Z","last_updat":null,"update_dat":"2012-09-18Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":"TBA","project_nu":null,"file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":1,"historic_c":0E-11,"funding_ba":"Initial"}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.312","geometry":{"type":"Point","coordinates":[548568.5754000004,6886814.08]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE1853","type":"Hoop_Half","material":"Stainless Steel","number_of_":1,"comments":null,"documents":"../photos/69/R55p10.jpg","inspectors":null,"inspection":"2012-09-11Z","constructi":null,"record_cre":"2012-09-11Z","last_updat":null,"update_dat":"2012-09-18Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":"TBA","project_nu":null,"file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":1,"historic_c":0E-11,"funding_ba":"Initial"}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.313","geometry":{"type":"Point","coordinates":[542438.2437000005,6893609.9267]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE1854","type":"Hoop_Half","material":"Stainless Steel","number_of_":1,"comments":null,"documents":"../photos/69/R55p12.jpg","inspectors":null,"inspection":"2012-09-11Z","constructi":null,"record_cre":"2012-09-11Z","last_updat":null,"update_dat":"2012-09-18Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":"TBA","project_nu":null,"file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":1,"historic_c":0E-11,"funding_ba":"Initial"}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.314","geometry":{"type":"Point","coordinates":[541015.7613000004,6895442.2138]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE1855","type":"Hoop_Half","material":"Stainless Steel","number_of_":1,"comments":null,"documents":"../photos/69/R55p15.jpg","inspectors":null,"inspection":"2012-09-11Z","constructi":null,"record_cre":"2012-09-11Z","last_updat":null,"update_dat":"2012-09-18Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":"TBA","project_nu":null,"file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":1,"historic_c":0E-11,"funding_ba":"Initial"}},{"type":"Feature","id":"a58544a9_86de_4c26_90db_3e7c103ded50.315","geometry":{"type":"Point","coordinates":[539568.2610999998,6895404.4115]},"geometry_name":"geom","properties":{"status":"CURRENT","asset_numb":"BIKE1856","type":"Hoop_Half","material":"Stainless Steel","number_of_":1,"comments":null,"documents":"../photos/69/R55p17.jpg","inspectors":null,"inspection":"2012-09-11Z","constructi":null,"record_cre":"2012-09-11Z","last_updat":null,"update_dat":"2012-09-18Z","disposal_d":null,"positional":"GPS Corrected 1.0M","owner":"TBA","project_nu":null,"file_numbe":null,"folder_num":null,"drawing_nu":null,"survey_num":null,"condition":1,"historic_c":0E-11,"funding_ba":"Initial"}}],"crs":{"type":"EPSG","properties":{"code":"28356"}}} +{ + "type": "FeatureCollection", + "totalFeatures": 315, + "features": [ + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.1", + "geometry": { + "type": "Point", + "coordinates": [542876.9802999999, 6898697.6111] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE970", + "type": "Hoop_Big", + "material": "Stainless Steel", + "number_of_": 2, + "comments": "Also associated with projects CCR6 and CKE6", + "documents": "../photos/55/k232p114.jpg", + "inspectors": null, + "inspection": "2009-12-14Z", + "constructi": "2009-12-17Z", + "record_cre": "2009-12-14Z", + "last_updat": null, + "update_dat": "2010-11-19Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": "415", + "project_nu": "CLE5", + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 2, + "historic_c": 0e-11, + "funding_ba": "Capex" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.2", + "geometry": { + "type": "Point", + "coordinates": [542854.8649000004, 6898821.4659] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE971", + "type": "Hoop_Big", + "material": "Stainless Steel", + "number_of_": 2, + "comments": "Also associated with projects CCR6 and CKE6", + "documents": "../photos/55/k232p149.jpg", + "inspectors": null, + "inspection": "2009-12-14Z", + "constructi": "2009-12-17Z", + "record_cre": "2009-12-14Z", + "last_updat": null, + "update_dat": "2010-11-19Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": "415", + "project_nu": "CLE5", + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 2, + "historic_c": 0e-11, + "funding_ba": "Capex" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.3", + "geometry": { + "type": "Point", + "coordinates": [542841.3746999996, 6898930.1938] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE972", + "type": "Hoop_Big", + "material": "Stainless Steel", + "number_of_": 2, + "comments": "Also associated with projects CCR6 and CKE6", + "documents": "../photos/55/k232p161.jpg", + "inspectors": null, + "inspection": "2009-12-14Z", + "constructi": "2009-12-17Z", + "record_cre": "2009-12-14Z", + "last_updat": null, + "update_dat": "2010-11-19Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": "415", + "project_nu": "CLE5", + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 2, + "historic_c": 0e-11, + "funding_ba": "Capex" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.4", + "geometry": { + "type": "Point", + "coordinates": [542808.7211999996, 6899137.7415] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE973", + "type": "Hoop_Big", + "material": "Stainless Steel", + "number_of_": 2, + "comments": "Also associated with projects CCR6 and CKE6", + "documents": "../photos/55/k232p229.jpg", + "inspectors": null, + "inspection": "2009-12-14Z", + "constructi": "2009-12-17Z", + "record_cre": "2009-12-14Z", + "last_updat": null, + "update_dat": "2010-11-19Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": "415", + "project_nu": "CLE5", + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 2, + "historic_c": 0e-11, + "funding_ba": "Capex" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.5", + "geometry": { + "type": "Point", + "coordinates": [542790.8360000001, 6899243.2401] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE974", + "type": "Hoop_Big", + "material": "Stainless Steel", + "number_of_": 2, + "comments": "Also associated with projects CCR6 and CKE6", + "documents": "../photos/55/k232p236.jpg", + "inspectors": null, + "inspection": "2009-12-14Z", + "constructi": "2009-12-17Z", + "record_cre": "2009-12-14Z", + "last_updat": null, + "update_dat": "2010-11-19Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": "415", + "project_nu": "CLE5", + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 2, + "historic_c": 0e-11, + "funding_ba": "Capex" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.6", + "geometry": { + "type": "Point", + "coordinates": [541032.0138999997, 6902430.7713] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE1270", + "type": "Frame Rack", + "material": "Galvanised Steel", + "number_of_": 1, + "comments": null, + "documents": "../photos/62/x369p40.jpg", + "inspectors": null, + "inspection": "2010-11-23Z", + "constructi": null, + "record_cre": "2010-11-23Z", + "last_updat": null, + "update_dat": "2011-01-31Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": null, + "project_nu": null, + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 2, + "historic_c": 0e-11, + "funding_ba": "Initial" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.7", + "geometry": { + "type": "Point", + "coordinates": [540909.2580000004, 6902413.4448] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE57", + "type": "Wheel Rack", + "material": "Galvanised Steel", + "number_of_": 0, + "comments": null, + "documents": "../photos/62/x369p86.jpg", + "inspectors": null, + "inspection": "2010-11-23Z", + "constructi": null, + "record_cre": "2002-11-15Z", + "last_updat": null, + "update_dat": "2010-11-26Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": null, + "project_nu": null, + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 2, + "historic_c": 0e-11, + "funding_ba": null + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.8", + "geometry": { + "type": "Point", + "coordinates": [540607.7899000002, 6906410.9711] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE1290", + "type": "Frame Rack", + "material": "Galvanised Steel", + "number_of_": 16, + "comments": null, + "documents": "../photos/62/x371p2.jpg", + "inspectors": null, + "inspection": "2010-11-19Z", + "constructi": null, + "record_cre": "2010-11-19Z", + "last_updat": null, + "update_dat": "2011-01-31Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": null, + "project_nu": null, + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 2, + "historic_c": 0e-11, + "funding_ba": "Initial" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.9", + "geometry": { + "type": "Point", + "coordinates": [540798.7884, 6906117.9108] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE1291", + "type": "Frame Rack", + "material": "Stainless Steel", + "number_of_": 1, + "comments": null, + "documents": "../photos/62/x371p30.jpg", + "inspectors": null, + "inspection": "2010-11-19Z", + "constructi": null, + "record_cre": "2010-11-19Z", + "last_updat": null, + "update_dat": "2011-01-31Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": null, + "project_nu": null, + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 2, + "historic_c": 0e-11, + "funding_ba": "Initial" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.10", + "geometry": { + "type": "Point", + "coordinates": [540799.2997000003, 6906116.2211] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE1292", + "type": "Frame Rack", + "material": "Stainless Steel", + "number_of_": 3, + "comments": null, + "documents": "../photos/62/x371p4.jpg", + "inspectors": null, + "inspection": "2010-11-19Z", + "constructi": null, + "record_cre": "2010-11-19Z", + "last_updat": null, + "update_dat": "2011-01-31Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": null, + "project_nu": null, + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 2, + "historic_c": 0e-11, + "funding_ba": "Initial" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.11", + "geometry": { + "type": "Point", + "coordinates": [540766.9594, 6906165.731] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE1293", + "type": "Frame Rack", + "material": "Galvanised Steel", + "number_of_": 2, + "comments": null, + "documents": "../photos/62/x371p5.jpg", + "inspectors": null, + "inspection": "2010-11-19Z", + "constructi": null, + "record_cre": "2010-11-19Z", + "last_updat": null, + "update_dat": "2011-01-31Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": null, + "project_nu": null, + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 2, + "historic_c": 0e-11, + "funding_ba": "Initial" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.12", + "geometry": { + "type": "Point", + "coordinates": [540766.4977000002, 6906167.5607] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE1294", + "type": "Frame Rack", + "material": "Stainless Steel", + "number_of_": 2, + "comments": null, + "documents": "../photos/62/x371p57.jpg", + "inspectors": null, + "inspection": "2010-11-19Z", + "constructi": null, + "record_cre": "2010-11-19Z", + "last_updat": null, + "update_dat": "2011-01-31Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": null, + "project_nu": null, + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 2, + "historic_c": 0e-11, + "funding_ba": "Initial" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.13", + "geometry": { + "type": "Point", + "coordinates": [542448.6168999998, 6901834.7926] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE1295", + "type": "Frame Rack", + "material": "Galvanised Steel", + "number_of_": 4, + "comments": null, + "documents": "../photos/62/x371p6.jpg", + "inspectors": null, + "inspection": "2010-11-19Z", + "constructi": null, + "record_cre": "2010-11-19Z", + "last_updat": null, + "update_dat": "2011-01-31Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": null, + "project_nu": null, + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 2, + "historic_c": 0e-11, + "funding_ba": "Initial" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.14", + "geometry": { + "type": "Point", + "coordinates": [542507.7643999998, 6901383.5344] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE1296", + "type": "Frame Rack", + "material": "Galvanised Steel", + "number_of_": 4, + "comments": null, + "documents": "../photos/62/x371p7.jpg", + "inspectors": null, + "inspection": "2010-11-19Z", + "constructi": null, + "record_cre": "2010-11-19Z", + "last_updat": null, + "update_dat": "2011-01-31Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": null, + "project_nu": null, + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 2, + "historic_c": 0e-11, + "funding_ba": "Initial" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.15", + "geometry": { + "type": "Point", + "coordinates": [542963.5368999997, 6898077.0375] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE1297", + "type": "Frame Rack", + "material": "Galvanised Steel", + "number_of_": 4, + "comments": null, + "documents": "../photos/62/x371p8.jpg", + "inspectors": null, + "inspection": "2010-11-19Z", + "constructi": null, + "record_cre": "2010-11-19Z", + "last_updat": null, + "update_dat": "2011-01-31Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": null, + "project_nu": null, + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 2, + "historic_c": 0e-11, + "funding_ba": "Initial" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.16", + "geometry": { + "type": "Point", + "coordinates": [543078.4593000002, 6896336.8417] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE1298", + "type": "Frame Rack", + "material": "Galvanised Steel", + "number_of_": 5, + "comments": null, + "documents": "../photos/62/x371p9.jpg", + "inspectors": null, + "inspection": "2010-11-19Z", + "constructi": null, + "record_cre": "2010-11-19Z", + "last_updat": null, + "update_dat": "2011-01-31Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": null, + "project_nu": null, + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 2, + "historic_c": 0e-11, + "funding_ba": "Initial" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.17", + "geometry": { + "type": "Point", + "coordinates": [543050.1183000002, 6896097.1005] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE1299", + "type": "Frame Rack", + "material": "Galvanised Steel", + "number_of_": 8, + "comments": null, + "documents": "../photos/62/x371p10.jpg", + "inspectors": null, + "inspection": "2010-11-19Z", + "constructi": null, + "record_cre": "2010-11-19Z", + "last_updat": null, + "update_dat": "2011-01-31Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": null, + "project_nu": null, + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 2, + "historic_c": 0e-11, + "funding_ba": "Initial" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.18", + "geometry": { + "type": "Point", + "coordinates": [543027.2112999996, 6896044.5512] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE1300", + "type": "Frame Rack", + "material": "Galvanised Steel", + "number_of_": 8, + "comments": null, + "documents": "../photos/62/x371p11.jpg", + "inspectors": null, + "inspection": "2010-11-19Z", + "constructi": null, + "record_cre": "2010-11-19Z", + "last_updat": null, + "update_dat": "2011-01-31Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": null, + "project_nu": null, + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 2, + "historic_c": 0e-11, + "funding_ba": "Initial" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.19", + "geometry": { + "type": "Point", + "coordinates": [544372.0426000003, 6892811.2893] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE1301", + "type": "Frame Rack", + "material": "Galvanised Steel", + "number_of_": 9, + "comments": null, + "documents": "../photos/62/x371p12.jpg", + "inspectors": null, + "inspection": "2010-11-19Z", + "constructi": null, + "record_cre": "2010-11-19Z", + "last_updat": null, + "update_dat": "2011-01-31Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": null, + "project_nu": null, + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 2, + "historic_c": 0e-11, + "funding_ba": "Initial" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.20", + "geometry": { + "type": "Point", + "coordinates": [538702.4803999998, 6912595.9622] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE48", + "type": "Wheel Rack", + "material": "Galvanised Steel", + "number_of_": 20, + "comments": null, + "documents": "../photos/48/e107p72.jpg", + "inspectors": null, + "inspection": "2009-05-25Z", + "constructi": null, + "record_cre": "2002-10-14Z", + "last_updat": null, + "update_dat": "2011-01-31Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": null, + "project_nu": null, + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 3, + "historic_c": 0e-11, + "funding_ba": null + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.21", + "geometry": { + "type": "Point", + "coordinates": [539297.5334999999, 6912541.5832] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE51", + "type": "Wheel Rack", + "material": "Galvanised Steel", + "number_of_": 20, + "comments": null, + "documents": "../photos/49/e109p18.jpg", + "inspectors": null, + "inspection": "2009-06-02Z", + "constructi": null, + "record_cre": "2002-10-10Z", + "last_updat": null, + "update_dat": "2011-01-31Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": null, + "project_nu": null, + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 3, + "historic_c": 0e-11, + "funding_ba": null + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.22", + "geometry": { + "type": "Point", + "coordinates": [544879.5330999997, 6890296.4612] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE53", + "type": "Wheel Rack", + "material": "Galvanised Steel", + "number_of_": 10, + "comments": null, + "documents": "../photos/46/k162p10.jpg", + "inspectors": null, + "inspection": "2009-02-27Z", + "constructi": null, + "record_cre": "2002-10-23Z", + "last_updat": null, + "update_dat": "2011-01-31Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": null, + "project_nu": null, + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 3, + "historic_c": 0e-11, + "funding_ba": null + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.23", + "geometry": { + "type": "Point", + "coordinates": [540920.3651, 6902507.8456] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE58", + "type": "Hitching Rail", + "material": "Stainless Steel", + "number_of_": 2, + "comments": null, + "documents": "../photos/62/x367p25.jpg", + "inspectors": null, + "inspection": "2010-11-10Z", + "constructi": null, + "record_cre": "2002-11-19Z", + "last_updat": null, + "update_dat": "2010-11-17Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": null, + "project_nu": null, + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 2, + "historic_c": 0e-11, + "funding_ba": null + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.24", + "geometry": { + "type": "Point", + "coordinates": [530374.7219000002, 6914229.2597] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE63", + "type": "Wheel Rack", + "material": "Mild Steel", + "number_of_": 4, + "comments": null, + "documents": "../photos/42/e57p21.jpg", + "inspectors": null, + "inspection": "2009-09-23Z", + "constructi": null, + "record_cre": "2003-02-12Z", + "last_updat": null, + "update_dat": "2010-03-13Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": null, + "project_nu": null, + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 2, + "historic_c": 0e-11, + "funding_ba": null + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.25", + "geometry": { + "type": "Point", + "coordinates": [538351.1826999998, 6890369.2863] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE450", + "type": "Hitching Rail", + "material": "Galvanised Steel", + "number_of_": 5, + "comments": null, + "documents": "../photos/33/w43p33.jpg", + "inspectors": null, + "inspection": "2009-11-24Z", + "constructi": null, + "record_cre": "2007-10-22Z", + "last_updat": null, + "update_dat": "2011-01-31Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": null, + "project_nu": null, + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 2, + "historic_c": 0e-11, + "funding_ba": null + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.26", + "geometry": { + "type": "Point", + "coordinates": [538939.8288000003, 6901869.0956] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE670", + "type": "Wheel Rack", + "material": "Galvanised Steel", + "number_of_": 6, + "comments": null, + "documents": "../photos/45/e84p213.jpg", + "inspectors": null, + "inspection": "2009-03-05Z", + "constructi": null, + "record_cre": "2009-03-05Z", + "last_updat": null, + "update_dat": "2011-01-31Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": null, + "project_nu": null, + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 2, + "historic_c": 0e-11, + "funding_ba": null + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.27", + "geometry": { + "type": "Point", + "coordinates": [546632.0553000001, 6887929.5729] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE1070", + "type": "Wheel Rack", + "material": "Galvanised Steel", + "number_of_": 7, + "comments": null, + "documents": "../photos/56/A155p32.jpg", + "inspectors": null, + "inspection": "2010-02-04Z", + "constructi": null, + "record_cre": "2010-02-04Z", + "last_updat": null, + "update_dat": "2011-01-31Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": null, + "project_nu": null, + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 2, + "historic_c": 0e-11, + "funding_ba": "Initial" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.28", + "geometry": { + "type": "Point", + "coordinates": [551836.2138, 6884153.5715] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE1090", + "type": "Wheel Rack", + "material": "Galvanised Steel", + "number_of_": 5, + "comments": null, + "documents": "../photos/57/k238p166.jpg", + "inspectors": null, + "inspection": "2010-02-12Z", + "constructi": "2009-12-08Z", + "record_cre": "2010-02-12Z", + "last_updat": null, + "update_dat": "2011-01-31Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": null, + "project_nu": "W905", + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 2, + "historic_c": 0e-11, + "funding_ba": "Capex" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.29", + "geometry": { + "type": "Point", + "coordinates": [552104.2532000002, 6884149.5224] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE1091", + "type": "Wheel Rack", + "material": "Galvanised Steel", + "number_of_": 5, + "comments": null, + "documents": "../photos/57/k238p200.jpg", + "inspectors": null, + "inspection": "2010-02-12Z", + "constructi": "2009-12-08Z", + "record_cre": "2010-02-12Z", + "last_updat": null, + "update_dat": "2011-01-31Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": null, + "project_nu": "W905", + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 2, + "historic_c": 0e-11, + "funding_ba": "Capex" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.30", + "geometry": { + "type": "Point", + "coordinates": [552747.3465999998, 6884238.8942] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE1092", + "type": "Wheel Rack", + "material": "Galvanised Steel", + "number_of_": 5, + "comments": null, + "documents": "../photos/57/k238p386.jpg", + "inspectors": null, + "inspection": "2010-02-15Z", + "constructi": "2009-12-21Z", + "record_cre": "2010-02-15Z", + "last_updat": null, + "update_dat": "2011-01-31Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": null, + "project_nu": "WA59", + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 2, + "historic_c": 0e-11, + "funding_ba": "Capex" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.31", + "geometry": { + "type": "Point", + "coordinates": [552947.3991, 6884178.9464] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE1093", + "type": "Wheel Rack", + "material": "Galvanised Steel", + "number_of_": 5, + "comments": null, + "documents": "../photos/57/k238p410.jpg", + "inspectors": null, + "inspection": "2010-02-15Z", + "constructi": "2009-12-21Z", + "record_cre": "2010-02-15Z", + "last_updat": null, + "update_dat": "2011-01-31Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": null, + "project_nu": "WA59", + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 2, + "historic_c": 0e-11, + "funding_ba": "Capex" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.32", + "geometry": { + "type": "Point", + "coordinates": [553161.4117, 6884124.4975] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE1094", + "type": "Wheel Rack", + "material": "Galvanised Steel", + "number_of_": 5, + "comments": null, + "documents": "../photos/65/t33p159.jpg", + "inspectors": null, + "inspection": "2011-10-03Z", + "constructi": "2009-12-21Z", + "record_cre": "2010-02-15Z", + "last_updat": null, + "update_dat": "2011-10-10Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": null, + "project_nu": "WA59", + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 2, + "historic_c": 0e-11, + "funding_ba": "Capex" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.33", + "geometry": { + "type": "Point", + "coordinates": [553424.9159000004, 6884194.2532] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE1095", + "type": "Hoop_Big", + "material": "Stainless Steel", + "number_of_": 2, + "comments": null, + "documents": "../photos/57/k238p441.jpg", + "inspectors": null, + "inspection": "2010-02-15Z", + "constructi": null, + "record_cre": "2010-02-15Z", + "last_updat": null, + "update_dat": "2011-01-31Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": null, + "project_nu": null, + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 2, + "historic_c": 0e-11, + "funding_ba": "Initial" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.34", + "geometry": { + "type": "Point", + "coordinates": [553414.9797, 6884188.6444] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE1096", + "type": "Wheel Rack", + "material": "Galvanised Steel", + "number_of_": 6, + "comments": null, + "documents": "../photos/61/x362p2.jpg", + "inspectors": null, + "inspection": "2010-11-02Z", + "constructi": "2009-12-15Z", + "record_cre": "2010-02-15Z", + "last_updat": null, + "update_dat": "2011-01-31Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": null, + "project_nu": "WB41", + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 2, + "historic_c": 0e-11, + "funding_ba": "Capex" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.35", + "geometry": { + "type": "Point", + "coordinates": [552688.0012999997, 6884229.636] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE1097", + "type": "Wheel Rack", + "material": "Galvanised Steel", + "number_of_": 5, + "comments": null, + "documents": "../photos/57/k238p521.jpg", + "inspectors": null, + "inspection": "2010-02-16Z", + "constructi": "2010-01-12Z", + "record_cre": "2010-02-16Z", + "last_updat": null, + "update_dat": "2011-01-31Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": null, + "project_nu": "WA59", + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 2, + "historic_c": 0e-11, + "funding_ba": "Capex" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.36", + "geometry": { + "type": "Point", + "coordinates": [548394.9260999998, 6886953.6916] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE1305", + "type": "Frame Rack", + "material": "Galvanised Steel", + "number_of_": 5, + "comments": null, + "documents": "../photos/62/x371p18.jpg", + "inspectors": null, + "inspection": "2010-11-19Z", + "constructi": null, + "record_cre": "2010-11-19Z", + "last_updat": null, + "update_dat": "2011-01-31Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": null, + "project_nu": null, + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 2, + "historic_c": 0e-11, + "funding_ba": "Initial" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.37", + "geometry": { + "type": "Point", + "coordinates": [548478.4895000001, 6886853.132] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE1306", + "type": "Frame Rack", + "material": "Galvanised Steel", + "number_of_": 4, + "comments": "Project# B751, 23/03/2011", + "documents": "../photos/64/j400p39.jpg", + "inspectors": null, + "inspection": "2011-06-07Z", + "constructi": null, + "record_cre": "2010-11-19Z", + "last_updat": null, + "update_dat": "2011-06-09Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": null, + "project_nu": null, + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 2, + "historic_c": 0e-11, + "funding_ba": "Initial" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.38", + "geometry": { + "type": "Point", + "coordinates": [548540.6549000004, 6886808.7111] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE1307", + "type": "Frame Rack", + "material": "Galvanised Steel", + "number_of_": 4, + "comments": null, + "documents": "../photos/68/f14p66.jpg", + "inspectors": null, + "inspection": "2012-08-10Z", + "constructi": null, + "record_cre": "2010-11-19Z", + "last_updat": null, + "update_dat": "2012-08-13Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": null, + "project_nu": null, + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 2, + "historic_c": 0e-11, + "funding_ba": "Initial" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.39", + "geometry": { + "type": "Point", + "coordinates": [542365.8864000002, 6902775.0512] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE1418", + "type": "Hoop_Big", + "material": "Stainless Steel", + "number_of_": 2, + "comments": "Asset associated with Projects JN29 & JN35", + "documents": "../photos/63/x386p298.jpg", + "inspectors": null, + "inspection": "2011-03-10Z", + "constructi": "2010-09-24Z", + "record_cre": "2011-03-10Z", + "last_updat": null, + "update_dat": "2012-02-10Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": "251", + "project_nu": "JN35", + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 2, + "historic_c": 0e-11, + "funding_ba": "Capex" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.40", + "geometry": { + "type": "Point", + "coordinates": [542365.8699000003, 6902776.3109] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE1420", + "type": "Hoop_Big", + "material": "Stainless Steel", + "number_of_": 2, + "comments": "Asset associated with Projects JN29 & JN35", + "documents": "../photos/63/x386p300.jpg", + "inspectors": null, + "inspection": "2011-03-10Z", + "constructi": "2010-09-24Z", + "record_cre": "2011-03-10Z", + "last_updat": null, + "update_dat": "2012-02-10Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": "251", + "project_nu": "JN35", + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 2, + "historic_c": 0e-11, + "funding_ba": "Capex" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.41", + "geometry": { + "type": "Point", + "coordinates": [542365.9111000001, 6902777.0608] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE1421", + "type": "Hoop_Big", + "material": "Stainless Steel", + "number_of_": 2, + "comments": "Asset associated with Projects JN29 & JN35", + "documents": "../photos/63/x386p301.jpg", + "inspectors": null, + "inspection": "2011-03-10Z", + "constructi": "2010-09-24Z", + "record_cre": "2011-03-10Z", + "last_updat": null, + "update_dat": "2012-02-10Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": "251", + "project_nu": "JN35", + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 2, + "historic_c": 0e-11, + "funding_ba": "Capex" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.42", + "geometry": { + "type": "Point", + "coordinates": [542365.9111000001, 6902777.7207] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE1422", + "type": "Hoop_Big", + "material": "Stainless Steel", + "number_of_": 2, + "comments": "Asset associated with Projects JN29 & JN35", + "documents": "../photos/63/x386p302.jpg", + "inspectors": null, + "inspection": "2011-03-10Z", + "constructi": "2010-09-24Z", + "record_cre": "2011-03-10Z", + "last_updat": null, + "update_dat": "2012-02-10Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": "251", + "project_nu": "JN35", + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 2, + "historic_c": 0e-11, + "funding_ba": "Capex" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.43", + "geometry": { + "type": "Point", + "coordinates": [542375.1958999997, 6902675.5714] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE1423", + "type": "Hoop_Big", + "material": "Stainless Steel", + "number_of_": 2, + "comments": "Asset associated with Projects JN29 & JN35", + "documents": "../photos/63/x386p353.jpg", + "inspectors": null, + "inspection": "2011-03-10Z", + "constructi": "2010-09-24Z", + "record_cre": "2011-03-10Z", + "last_updat": null, + "update_dat": "2012-02-10Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": "251", + "project_nu": "JN35", + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 2, + "historic_c": 0e-11, + "funding_ba": "Capex" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.44", + "geometry": { + "type": "Point", + "coordinates": [542375.1217, 6902674.8916] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE1424", + "type": "Hoop_Big", + "material": "Stainless Steel", + "number_of_": 2, + "comments": "Asset associated with Projects JN29 & JN35", + "documents": "../photos/63/x386p354.jpg", + "inspectors": null, + "inspection": "2011-03-10Z", + "constructi": "2010-09-24Z", + "record_cre": "2011-03-10Z", + "last_updat": null, + "update_dat": "2012-02-10Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": "251", + "project_nu": "JN35", + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 2, + "historic_c": 0e-11, + "funding_ba": "Capex" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.45", + "geometry": { + "type": "Point", + "coordinates": [542375.1217, 6902674.1017] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE1425", + "type": "Hoop_Big", + "material": "Stainless Steel", + "number_of_": 2, + "comments": "Asset associated with Projects JN29 & JN35", + "documents": "../photos/63/x386p355.jpg", + "inspectors": null, + "inspection": "2011-03-10Z", + "constructi": "2010-09-24Z", + "record_cre": "2011-03-10Z", + "last_updat": null, + "update_dat": "2012-02-10Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": "251", + "project_nu": "JN35", + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 2, + "historic_c": 0e-11, + "funding_ba": "Capex" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.46", + "geometry": { + "type": "Point", + "coordinates": [542375.1546999998, 6902673.2319] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE1426", + "type": "Hoop_Big", + "material": "Stainless Steel", + "number_of_": 2, + "comments": "Asset associated with Projects JN29 & JN35", + "documents": "../photos/63/x386p356.jpg", + "inspectors": null, + "inspection": "2011-03-10Z", + "constructi": "2010-09-24Z", + "record_cre": "2011-03-10Z", + "last_updat": null, + "update_dat": "2012-02-10Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": "251", + "project_nu": "JN35", + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 2, + "historic_c": 0e-11, + "funding_ba": "Capex" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.47", + "geometry": { + "type": "Point", + "coordinates": [542375.2289000005, 6902672.4821] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE1427", + "type": "Hoop_Big", + "material": "Stainless Steel", + "number_of_": 2, + "comments": "Asset associated with Projects JN29 & JN35", + "documents": "../photos/63/x386p357.jpg", + "inspectors": null, + "inspection": "2011-03-10Z", + "constructi": "2010-09-24Z", + "record_cre": "2011-03-10Z", + "last_updat": null, + "update_dat": "2012-02-10Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": "251", + "project_nu": "JN35", + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 2, + "historic_c": 0e-11, + "funding_ba": "Capex" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.48", + "geometry": { + "type": "Point", + "coordinates": [542375.1876999997, 6902671.8022] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE1428", + "type": "Hoop_Big", + "material": "Stainless Steel", + "number_of_": 2, + "comments": "Asset associated with Projects JN29 & JN35", + "documents": "../photos/63/x386p358.jpg", + "inspectors": null, + "inspection": "2011-03-10Z", + "constructi": "2010-09-24Z", + "record_cre": "2011-03-10Z", + "last_updat": null, + "update_dat": "2012-02-10Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": "251", + "project_nu": "JN35", + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 2, + "historic_c": 0e-11, + "funding_ba": "Capex" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.49", + "geometry": { + "type": "Point", + "coordinates": [542375.1876999997, 6902671.1923] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE1429", + "type": "Hoop_Big", + "material": "Stainless Steel", + "number_of_": 2, + "comments": "Asset associated with Projects JN29 & JN35", + "documents": "../photos/63/x386p359.jpg", + "inspectors": null, + "inspection": "2011-03-10Z", + "constructi": "2010-09-24Z", + "record_cre": "2011-03-10Z", + "last_updat": null, + "update_dat": "2012-02-10Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": "251", + "project_nu": "JN35", + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 2, + "historic_c": 0e-11, + "funding_ba": "Capex" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.50", + "geometry": { + "type": "Point", + "coordinates": [542375.1546999998, 6902670.4325] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE1430", + "type": "Hoop_Big", + "material": "Stainless Steel", + "number_of_": 2, + "comments": "Asset associated with Projects JN29 & JN35", + "documents": "../photos/63/x386p360.jpg", + "inspectors": null, + "inspection": "2011-03-10Z", + "constructi": "2010-09-24Z", + "record_cre": "2011-03-10Z", + "last_updat": null, + "update_dat": "2012-02-10Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": "251", + "project_nu": "JN35", + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 2, + "historic_c": 0e-11, + "funding_ba": "Capex" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.51", + "geometry": { + "type": "Point", + "coordinates": [542641.0749000004, 6900337.6373] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE11", + "type": "Wheel Rack", + "material": "Galvanised Steel", + "number_of_": 5, + "comments": null, + "documents": "../photos/52/v38p35.jpg", + "inspectors": null, + "inspection": "2009-11-11Z", + "constructi": null, + "record_cre": "2002-05-17Z", + "last_updat": null, + "update_dat": "2010-03-16Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": null, + "project_nu": null, + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 3, + "historic_c": 0e-11, + "funding_ba": null + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.52", + "geometry": { + "type": "Point", + "coordinates": [546112.9299999997, 6890063.2886] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE18", + "type": "Frame Rack", + "material": "Mild Steel", + "number_of_": 5, + "comments": null, + "documents": "../photos/24/x92p392.jpg", + "inspectors": null, + "inspection": "2006-06-02Z", + "constructi": null, + "record_cre": "2002-05-29Z", + "last_updat": null, + "update_dat": "2011-01-31Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": null, + "project_nu": null, + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 3, + "historic_c": 0e-11, + "funding_ba": null + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.53", + "geometry": { + "type": "Point", + "coordinates": [543832.8302999996, 6894120.7827] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE39", + "type": "Wheel Rack", + "material": "Galvanised Steel", + "number_of_": 4, + "comments": null, + "documents": "../photos/a76p2.jpg", + "inspectors": null, + "inspection": null, + "constructi": "2002-01-31Z", + "record_cre": "2002-08-21Z", + "last_updat": null, + "update_dat": "2010-03-16Z", + "disposal_d": null, + "positional": null, + "owner": null, + "project_nu": "D598", + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 0e-11, + "historic_c": 0e-11, + "funding_ba": "Capex" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.54", + "geometry": { + "type": "Point", + "coordinates": [544636.3879000004, 6890380.2041] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE52", + "type": "Wheel Rack", + "material": "Galvanised Steel", + "number_of_": 10, + "comments": null, + "documents": "../photos/46/k162p329.jpg", + "inspectors": null, + "inspection": "2009-02-27Z", + "constructi": null, + "record_cre": "2002-10-17Z", + "last_updat": null, + "update_dat": "2011-01-31Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": null, + "project_nu": null, + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 3, + "historic_c": 0e-11, + "funding_ba": null + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.55", + "geometry": { + "type": "Point", + "coordinates": [537821.3130000001, 6904745.3301] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE60", + "type": "Wheel Rack", + "material": "Galvanised Steel", + "number_of_": 10, + "comments": null, + "documents": "../photos/c8p35.jpg", + "inspectors": null, + "inspection": null, + "constructi": null, + "record_cre": "2002-12-12Z", + "last_updat": null, + "update_dat": "2011-01-31Z", + "disposal_d": null, + "positional": null, + "owner": null, + "project_nu": null, + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 0e-11, + "historic_c": 0e-11, + "funding_ba": null + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.56", + "geometry": { + "type": "Point", + "coordinates": [540612.9188000001, 6905932.0986] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE70", + "type": "Wheel Rack", + "material": "Galvanised Steel", + "number_of_": 10, + "comments": null, + "documents": "../photos/2/c505p104.jpg", + "inspectors": null, + "inspection": "2009-10-12Z", + "constructi": null, + "record_cre": "2003-08-27Z", + "last_updat": null, + "update_dat": "2010-03-16Z", + "disposal_d": null, + "positional": null, + "owner": null, + "project_nu": null, + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 3, + "historic_c": 0e-11, + "funding_ba": null + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.57", + "geometry": { + "type": "Point", + "coordinates": [543681.5191000002, 6895108.9416] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE1050", + "type": "Frame Rack", + "material": "Galvanised Steel", + "number_of_": 2, + "comments": null, + "documents": "../photos/59/A185p30.jpg", + "inspectors": null, + "inspection": "2010-06-01Z", + "constructi": null, + "record_cre": "2010-01-08Z", + "last_updat": null, + "update_dat": "2011-01-31Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": null, + "project_nu": null, + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 2, + "historic_c": 0e-11, + "funding_ba": "Initial" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.58", + "geometry": { + "type": "Point", + "coordinates": [542394.7302999999, 6902057.0773] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE1190", + "type": "Wheel Rack", + "material": "Galvanised Steel", + "number_of_": 5, + "comments": null, + "documents": "../photos/59/A185p33.jpg", + "inspectors": null, + "inspection": "2010-06-01Z", + "constructi": "2010-03-30Z", + "record_cre": "2010-06-01Z", + "last_updat": null, + "update_dat": "2011-01-31Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": null, + "project_nu": "DQH2", + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 2, + "historic_c": 0e-11, + "funding_ba": "Capex" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.59", + "geometry": { + "type": "Point", + "coordinates": [542434.2609000001, 6902028.1732] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE1191", + "type": "Wheel Rack", + "material": "Galvanised Steel", + "number_of_": 4, + "comments": null, + "documents": "../photos/59/A185p75.jpg", + "inspectors": null, + "inspection": "2010-06-01Z", + "constructi": null, + "record_cre": "2010-06-01Z", + "last_updat": null, + "update_dat": "2011-01-31Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": null, + "project_nu": null, + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 2, + "historic_c": 0e-11, + "funding_ba": "Initial" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.60", + "geometry": { + "type": "Point", + "coordinates": [541029.5648999996, 6902495.2282] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE1230", + "type": "Frame Rack", + "material": "Galvanised Steel", + "number_of_": 0, + "comments": null, + "documents": "../photos/61/x355p29.jpg", + "inspectors": null, + "inspection": "2010-10-25Z", + "constructi": null, + "record_cre": "2010-10-25Z", + "last_updat": null, + "update_dat": "2011-01-31Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": null, + "project_nu": null, + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 2, + "historic_c": 0e-11, + "funding_ba": "Initial" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.61", + "geometry": { + "type": "Point", + "coordinates": [541025.2028000001, 6902496.058] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE1231", + "type": "Frame Rack", + "material": "Galvanised Steel", + "number_of_": 0, + "comments": null, + "documents": "../photos/61/x355p30.jpg", + "inspectors": null, + "inspection": "2010-10-25Z", + "constructi": null, + "record_cre": "2010-10-25Z", + "last_updat": null, + "update_dat": "2011-01-31Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": null, + "project_nu": null, + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 2, + "historic_c": 0e-11, + "funding_ba": "Initial" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.62", + "geometry": { + "type": "Point", + "coordinates": [529672.2583999997, 6908314.0537] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE1250", + "type": "Frame Rack", + "material": "Galvanised Steel", + "number_of_": 6, + "comments": null, + "documents": "../photos/61/x361p36.jpg", + "inspectors": null, + "inspection": "2010-11-01Z", + "constructi": null, + "record_cre": "2010-11-01Z", + "last_updat": null, + "update_dat": "2011-01-31Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": null, + "project_nu": null, + "file_numbe": "PN290975/03/DA12", + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 2, + "historic_c": 0e-11, + "funding_ba": "Contribute" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.63", + "geometry": { + "type": "Point", + "coordinates": [542403.0998999998, 6902323.3031] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE1452", + "type": "Hoop_Big", + "material": "Stainless Steel", + "number_of_": 2, + "comments": "Asset associated with Projects JN29 & JN35", + "documents": "../photos/63/j378p140.jpg", + "inspectors": null, + "inspection": "2011-03-08Z", + "constructi": "2010-12-21Z", + "record_cre": "2011-03-08Z", + "last_updat": null, + "update_dat": "2012-02-10Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": "251", + "project_nu": "JN35", + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 1, + "historic_c": 0e-11, + "funding_ba": "Capex" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.64", + "geometry": { + "type": "Point", + "coordinates": [542403.0915999999, 6902322.4133] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE1453", + "type": "Hoop_Big", + "material": "Stainless Steel", + "number_of_": 2, + "comments": "Asset associated with Projects JN29 & JN35", + "documents": "../photos/63/j378p141.jpg", + "inspectors": null, + "inspection": "2011-03-08Z", + "constructi": "2010-12-21Z", + "record_cre": "2011-03-08Z", + "last_updat": null, + "update_dat": "2012-02-10Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": "251", + "project_nu": "JN35", + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 1, + "historic_c": 0e-11, + "funding_ba": "Capex" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.65", + "geometry": { + "type": "Point", + "coordinates": [542403.1575999996, 6902321.6435] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE1454", + "type": "Hoop_Big", + "material": "Stainless Steel", + "number_of_": 2, + "comments": "Asset associated with Projects JN29 & JN35", + "documents": "../photos/63/j378p142.jpg", + "inspectors": null, + "inspection": "2011-03-08Z", + "constructi": "2010-12-21Z", + "record_cre": "2011-03-08Z", + "last_updat": null, + "update_dat": "2012-02-10Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": "251", + "project_nu": "JN35", + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 1, + "historic_c": 0e-11, + "funding_ba": "Capex" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.66", + "geometry": { + "type": "Point", + "coordinates": [531162.1505000005, 6916997.5662] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE64", + "type": "Hoop_Half", + "material": "Galvanised Steel", + "number_of_": 4, + "comments": null, + "documents": "../photos/42/E49p114.jpg", + "inspectors": null, + "inspection": "2009-09-02Z", + "constructi": null, + "record_cre": "2003-03-24Z", + "last_updat": null, + "update_dat": "2010-03-13Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": null, + "project_nu": null, + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 2, + "historic_c": 0e-11, + "funding_ba": null + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.67", + "geometry": { + "type": "Point", + "coordinates": [544573.9751000004, 6891925.7295] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE68", + "type": "Wheel Rack", + "material": "Galvanised Steel", + "number_of_": 10, + "comments": null, + "documents": "../photos/2/c313p15.jpg", + "inspectors": null, + "inspection": "2009-10-01Z", + "constructi": null, + "record_cre": "2003-08-19Z", + "last_updat": null, + "update_dat": "2010-03-16Z", + "disposal_d": null, + "positional": null, + "owner": null, + "project_nu": null, + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 3, + "historic_c": 0e-11, + "funding_ba": null + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.68", + "geometry": { + "type": "Point", + "coordinates": [540412.9159000004, 6907453.9688] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE71", + "type": "Wheel Rack", + "material": "Galvanised Steel", + "number_of_": 6, + "comments": null, + "documents": "../photos/49/v16p12.jpg", + "inspectors": null, + "inspection": "2009-06-09Z", + "constructi": null, + "record_cre": "2003-11-12Z", + "last_updat": null, + "update_dat": "2011-01-31Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": null, + "project_nu": null, + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 2, + "historic_c": 0e-11, + "funding_ba": null + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.69", + "geometry": { + "type": "Point", + "coordinates": [532454.4062999999, 6913799.0373] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE77", + "type": "Wheel Rack", + "material": "Galvanised Steel", + "number_of_": 7, + "comments": null, + "documents": "../photos/56/A158p2.jpg", + "inspectors": null, + "inspection": "2010-02-16Z", + "constructi": null, + "record_cre": "2004-01-27Z", + "last_updat": null, + "update_dat": "2011-01-31Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": null, + "project_nu": null, + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 2, + "historic_c": 0e-11, + "funding_ba": null + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.70", + "geometry": { + "type": "Point", + "coordinates": [532452.9715, 6913796.2779] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE78", + "type": "Wheel Rack", + "material": "Galvanised Steel", + "number_of_": 7, + "comments": null, + "documents": "../photos/56/A158p3.jpg", + "inspectors": null, + "inspection": "2010-02-16Z", + "constructi": null, + "record_cre": "2004-01-27Z", + "last_updat": null, + "update_dat": "2011-01-31Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": null, + "project_nu": null, + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 2, + "historic_c": 0e-11, + "funding_ba": null + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.71", + "geometry": { + "type": "Point", + "coordinates": [540562.9654999999, 6906014.0219] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE88", + "type": "Frame Rack", + "material": "Stainless Steel", + "number_of_": 1, + "comments": null, + "documents": "../photos/7/c742p47.jpg", + "inspectors": null, + "inspection": "2009-10-12Z", + "constructi": null, + "record_cre": "2004-03-08Z", + "last_updat": null, + "update_dat": "2011-05-13Z", + "disposal_d": null, + "positional": null, + "owner": null, + "project_nu": null, + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 2, + "historic_c": 0e-11, + "funding_ba": null + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.72", + "geometry": { + "type": "Point", + "coordinates": [533003.6948999995, 6903695.2239] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE90", + "type": "Wheel Rack", + "material": "Galvanised Steel", + "number_of_": 1, + "comments": null, + "documents": "../photos/10/d604p50.jpg", + "inspectors": null, + "inspection": "2004-09-20Z", + "constructi": null, + "record_cre": "2004-09-20Z", + "last_updat": null, + "update_dat": "2011-05-13Z", + "disposal_d": null, + "positional": null, + "owner": null, + "project_nu": null, + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 2, + "historic_c": 0e-11, + "funding_ba": null + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.73", + "geometry": { + "type": "Point", + "coordinates": [532986.4693999998, 6903708.1413] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE89", + "type": "Wheel Rack", + "material": "Galvanised Steel", + "number_of_": 1, + "comments": null, + "documents": "../photos/10/d604p77.jpg", + "inspectors": null, + "inspection": "2004-09-20Z", + "constructi": null, + "record_cre": "2004-09-20Z", + "last_updat": null, + "update_dat": "2011-05-13Z", + "disposal_d": null, + "positional": null, + "owner": null, + "project_nu": null, + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 2, + "historic_c": 0e-11, + "funding_ba": null + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.74", + "geometry": { + "type": "Point", + "coordinates": [548094.1919999998, 6888000.0986] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE21", + "type": "Wheel Rack", + "material": "Mild Steel", + "number_of_": 5, + "comments": null, + "documents": "../Photos/14/e696p130.jpg", + "inspectors": null, + "inspection": "2009-11-26Z", + "constructi": null, + "record_cre": "2002-05-30Z", + "last_updat": null, + "update_dat": "2010-03-16Z", + "disposal_d": null, + "positional": null, + "owner": null, + "project_nu": null, + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 2, + "historic_c": 0e-11, + "funding_ba": null + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.75", + "geometry": { + "type": "Point", + "coordinates": [546673.6226000004, 6887489.4325] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE45", + "type": "Wheel Rack", + "material": "Galvanised Steel", + "number_of_": 5, + "comments": null, + "documents": "../photos/66/t72p40.jpg", + "inspectors": null, + "inspection": "2012-02-06Z", + "constructi": null, + "record_cre": "2002-10-08Z", + "last_updat": null, + "update_dat": "2012-02-09Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": null, + "project_nu": null, + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 3, + "historic_c": 0e-11, + "funding_ba": null + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.76", + "geometry": { + "type": "Point", + "coordinates": [541786.5004000003, 6895293.2341] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE54", + "type": "Wheel Rack", + "material": "Galvanised Steel", + "number_of_": 4, + "comments": null, + "documents": "../photos/b54p47.jpg", + "inspectors": null, + "inspection": null, + "constructi": null, + "record_cre": "2002-10-28Z", + "last_updat": null, + "update_dat": "2010-03-16Z", + "disposal_d": null, + "positional": null, + "owner": null, + "project_nu": null, + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 0e-11, + "historic_c": 0e-11, + "funding_ba": null + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.77", + "geometry": { + "type": "Point", + "coordinates": [542435.9842999997, 6901932.3527] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE190", + "type": "Hoop_Half", + "material": "Galvanised Steel", + "number_of_": 12, + "comments": null, + "documents": "../photos/48/A101p2.jpg", + "inspectors": null, + "inspection": "2009-05-13Z", + "constructi": null, + "record_cre": "2006-05-18Z", + "last_updat": null, + "update_dat": "2012-05-29Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": null, + "project_nu": null, + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 2, + "historic_c": 0e-11, + "funding_ba": null + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.78", + "geometry": { + "type": "Point", + "coordinates": [552582.1410999997, 6884050.0326] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE1316", + "type": "Other", + "material": "Stainless Steel", + "number_of_": 2, + "comments": null, + "documents": "../photos/62/x371p29.jpg", + "inspectors": null, + "inspection": "2010-11-19Z", + "constructi": null, + "record_cre": "2010-11-19Z", + "last_updat": null, + "update_dat": "2011-01-31Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": null, + "project_nu": null, + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 2, + "historic_c": 0e-11, + "funding_ba": "Initial" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.79", + "geometry": { + "type": "Point", + "coordinates": [540798.4337999998, 6906119.0105] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE1317", + "type": "Frame Rack", + "material": "Stainless Steel", + "number_of_": 3, + "comments": null, + "documents": "../photos/62/x371p3.jpg", + "inspectors": null, + "inspection": "2010-11-19Z", + "constructi": null, + "record_cre": "2010-11-19Z", + "last_updat": null, + "update_dat": "2011-01-31Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": null, + "project_nu": null, + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 2, + "historic_c": 0e-11, + "funding_ba": "Initial" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.80", + "geometry": { + "type": "Point", + "coordinates": [540798.6812000005, 6906118.4707] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE1318", + "type": "Frame Rack", + "material": "Stainless Steel", + "number_of_": 3, + "comments": null, + "documents": "../photos/62/x371p31.jpg", + "inspectors": null, + "inspection": "2010-11-19Z", + "constructi": null, + "record_cre": "2010-11-19Z", + "last_updat": null, + "update_dat": "2011-01-31Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": null, + "project_nu": null, + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 2, + "historic_c": 0e-11, + "funding_ba": "Initial" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.81", + "geometry": { + "type": "Point", + "coordinates": [538754.5281999996, 6915298.4221] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE1319", + "type": "Frame Rack", + "material": "Galvanised Steel", + "number_of_": 5, + "comments": null, + "documents": "../photos/62/x371p1.jpg", + "inspectors": null, + "inspection": "2010-11-19Z", + "constructi": null, + "record_cre": "2010-11-19Z", + "last_updat": null, + "update_dat": "2011-01-31Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": null, + "project_nu": null, + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 2, + "historic_c": 0e-11, + "funding_ba": "Initial" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.82", + "geometry": { + "type": "Point", + "coordinates": [544354.9324000003, 6892710.4198] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE1320", + "type": "Other", + "material": "Timber", + "number_of_": 2, + "comments": null, + "documents": "../photos/62/x371p40.jpg", + "inspectors": null, + "inspection": "2010-11-24Z", + "constructi": null, + "record_cre": "2010-11-24Z", + "last_updat": null, + "update_dat": "2011-01-31Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": null, + "project_nu": null, + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 2, + "historic_c": 0e-11, + "funding_ba": "Initial" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.83", + "geometry": { + "type": "Point", + "coordinates": [544356.2105999999, 6892710.0999] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE1321", + "type": "Other", + "material": "Timber", + "number_of_": 2, + "comments": null, + "documents": "../photos/62/x371p39.jpg", + "inspectors": null, + "inspection": "2010-11-24Z", + "constructi": null, + "record_cre": "2010-11-24Z", + "last_updat": null, + "update_dat": "2011-01-31Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": null, + "project_nu": null, + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 2, + "historic_c": 0e-11, + "funding_ba": "Initial" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.84", + "geometry": { + "type": "Point", + "coordinates": [544368.5215999996, 6892727.9463] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE1322", + "type": "Other", + "material": "Timber", + "number_of_": 2, + "comments": null, + "documents": "../photos/62/x371p38.jpg", + "inspectors": null, + "inspection": "2010-11-24Z", + "constructi": null, + "record_cre": "2010-11-24Z", + "last_updat": null, + "update_dat": "2011-01-31Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": null, + "project_nu": null, + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 2, + "historic_c": 0e-11, + "funding_ba": "Initial" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.85", + "geometry": { + "type": "Point", + "coordinates": [544368.6205000002, 6892728.6761] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE1323", + "type": "Other", + "material": "Timber", + "number_of_": 2, + "comments": null, + "documents": "../photos/62/x371p37.jpg", + "inspectors": null, + "inspection": "2010-11-24Z", + "constructi": null, + "record_cre": "2010-11-24Z", + "last_updat": null, + "update_dat": "2011-01-31Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": null, + "project_nu": null, + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 2, + "historic_c": 0e-11, + "funding_ba": "Initial" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.86", + "geometry": { + "type": "Point", + "coordinates": [544372.3723999998, 6892755.1907] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE1324", + "type": "Other", + "material": "Timber", + "number_of_": 2, + "comments": null, + "documents": "../photos/62/x371p34.jpg", + "inspectors": null, + "inspection": "2010-11-24Z", + "constructi": null, + "record_cre": "2010-11-24Z", + "last_updat": null, + "update_dat": "2011-01-31Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": null, + "project_nu": null, + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 2, + "historic_c": 0e-11, + "funding_ba": "Initial" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.87", + "geometry": { + "type": "Point", + "coordinates": [544373.6339999996, 6892764.6588] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE1325", + "type": "Other", + "material": "Timber", + "number_of_": 2, + "comments": null, + "documents": "../photos/62/x371p35.jpg", + "inspectors": null, + "inspection": "2010-11-24Z", + "constructi": null, + "record_cre": "2010-11-24Z", + "last_updat": null, + "update_dat": "2011-01-31Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": null, + "project_nu": null, + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 2, + "historic_c": 0e-11, + "funding_ba": "Initial" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.88", + "geometry": { + "type": "Point", + "coordinates": [544373.7659999998, 6892765.2587] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE1326", + "type": "Other", + "material": "Timber", + "number_of_": 2, + "comments": null, + "documents": "../photos/62/x371p36.jpg", + "inspectors": null, + "inspection": "2010-11-24Z", + "constructi": null, + "record_cre": "2010-11-24Z", + "last_updat": null, + "update_dat": "2011-01-31Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": null, + "project_nu": null, + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 2, + "historic_c": 0e-11, + "funding_ba": "Initial" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.89", + "geometry": { + "type": "Point", + "coordinates": [546438.0389, 6889311.4017] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE1327", + "type": "Frame Rack", + "material": "Stainless Steel", + "number_of_": 1, + "comments": null, + "documents": "../photos/62/x371p52.jpg", + "inspectors": null, + "inspection": "2010-11-24Z", + "constructi": null, + "record_cre": "2010-11-24Z", + "last_updat": null, + "update_dat": "2012-05-29Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": null, + "project_nu": null, + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 2, + "historic_c": 0e-11, + "funding_ba": "Initial" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.90", + "geometry": { + "type": "Point", + "coordinates": [552742.1600000001, 6884020.4686] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE1328", + "type": "Other", + "material": "Stainless Steel", + "number_of_": 2, + "comments": null, + "documents": "../photos/62/x371p43.jpg", + "inspectors": null, + "inspection": "2010-11-24Z", + "constructi": null, + "record_cre": "2010-11-24Z", + "last_updat": null, + "update_dat": "2011-01-31Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": null, + "project_nu": null, + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 2, + "historic_c": 0e-11, + "funding_ba": "Initial" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.91", + "geometry": { + "type": "Point", + "coordinates": [552632.9685000004, 6884058.5909] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE1329", + "type": "Other", + "material": "Stainless Steel", + "number_of_": 2, + "comments": null, + "documents": "../photos/62/x371p53.jpg", + "inspectors": null, + "inspection": "2010-11-24Z", + "constructi": null, + "record_cre": "2010-11-24Z", + "last_updat": null, + "update_dat": "2011-01-31Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": null, + "project_nu": null, + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 2, + "historic_c": 0e-11, + "funding_ba": "Initial" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.92", + "geometry": { + "type": "Point", + "coordinates": [546345.2566, 6889415.3705] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE1330", + "type": "Hoop_Half", + "material": "Galvanised Steel", + "number_of_": 2, + "comments": null, + "documents": "../photos/62/x371p60.jpg", + "inspectors": null, + "inspection": "2010-11-29Z", + "constructi": null, + "record_cre": "2010-11-29Z", + "last_updat": null, + "update_dat": "2011-01-31Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": null, + "project_nu": null, + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 1, + "historic_c": 0e-11, + "funding_ba": "Initial" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.93", + "geometry": { + "type": "Point", + "coordinates": [546345.6029000003, 6889414.7706] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE1331", + "type": "Hoop_Half", + "material": "Stainless Steel", + "number_of_": 2, + "comments": null, + "documents": "../photos/62/x371p61.jpg", + "inspectors": null, + "inspection": "2010-11-29Z", + "constructi": null, + "record_cre": "2010-11-29Z", + "last_updat": null, + "update_dat": "2011-01-31Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": null, + "project_nu": null, + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 1, + "historic_c": 0e-11, + "funding_ba": "Initial" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.94", + "geometry": { + "type": "Point", + "coordinates": [546321.2446999997, 6889458.1218] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE1332", + "type": "Hoop_Half", + "material": "Stainless Steel", + "number_of_": 2, + "comments": null, + "documents": "../photos/62/x371p59.jpg", + "inspectors": null, + "inspection": "2010-11-29Z", + "constructi": null, + "record_cre": "2010-11-29Z", + "last_updat": null, + "update_dat": "2011-01-31Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": null, + "project_nu": null, + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 1, + "historic_c": 0e-11, + "funding_ba": "Initial" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.95", + "geometry": { + "type": "Point", + "coordinates": [546295.3197999997, 6889504.2824] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE1333", + "type": "Hoop_Half", + "material": "Stainless Steel", + "number_of_": 2, + "comments": null, + "documents": "../photos/62/x371p58.jpg", + "inspectors": null, + "inspection": "2010-11-29Z", + "constructi": null, + "record_cre": "2010-11-29Z", + "last_updat": null, + "update_dat": "2011-01-31Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": null, + "project_nu": null, + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 1, + "historic_c": 0e-11, + "funding_ba": "Initial" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.96", + "geometry": { + "type": "Point", + "coordinates": [542365.9770999998, 6902773.6715] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE1416", + "type": "Hoop_Big", + "material": "Stainless Steel", + "number_of_": 2, + "comments": "Asset associated with Projects JN29 & JN35", + "documents": "../photos/63/x386p296.jpg", + "inspectors": null, + "inspection": "2011-03-10Z", + "constructi": "2010-09-24Z", + "record_cre": "2011-03-10Z", + "last_updat": null, + "update_dat": "2012-02-10Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": "251", + "project_nu": "JN35", + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 2, + "historic_c": 0e-11, + "funding_ba": "Capex" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.97", + "geometry": { + "type": "Point", + "coordinates": [540713.5840999996, 6905971.4206] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE1670", + "type": "Hoop_Big", + "material": "Galvanised Steel", + "number_of_": 2, + "comments": null, + "documents": "../photos/66/j483p101.jpg", + "inspectors": null, + "inspection": "2011-11-15Z", + "constructi": "2011-07-31Z", + "record_cre": "2011-11-15Z", + "last_updat": null, + "update_dat": "2011-11-17Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": "TBA", + "project_nu": "CNV6", + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 1, + "historic_c": 0e-11, + "funding_ba": "Capex" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.98", + "geometry": { + "type": "Point", + "coordinates": [540712.1988000004, 6905970.9507] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE1671", + "type": "Hoop_Big", + "material": "Galvanised Steel", + "number_of_": 2, + "comments": null, + "documents": "../photos/66/j483p102.jpg", + "inspectors": null, + "inspection": "2011-11-15Z", + "constructi": "2011-07-31Z", + "record_cre": "2011-11-15Z", + "last_updat": null, + "update_dat": "2011-11-17Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": "TBA", + "project_nu": "CNV6", + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 1, + "historic_c": 0e-11, + "funding_ba": "Capex" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.99", + "geometry": { + "type": "Point", + "coordinates": [540710.6815999998, 6905970.6008] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE1672", + "type": "Hoop_Big", + "material": "Galvanised Steel", + "number_of_": 2, + "comments": null, + "documents": "../photos/66/j483p103.jpg", + "inspectors": null, + "inspection": "2011-11-15Z", + "constructi": "2011-07-31Z", + "record_cre": "2011-11-15Z", + "last_updat": null, + "update_dat": "2011-11-17Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": "TBA", + "project_nu": "CNV6", + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 1, + "historic_c": 0e-11, + "funding_ba": "Capex" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.100", + "geometry": { + "type": "Point", + "coordinates": [539959.5510999998, 6910903.7566] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE1690", + "type": "Frame Rack", + "material": "Galvanised Steel", + "number_of_": 4, + "comments": null, + "documents": "../photos/66/t52p50.jpg", + "inspectors": null, + "inspection": "2011-12-06Z", + "constructi": "2011-06-04Z", + "record_cre": "2011-12-06Z", + "last_updat": null, + "update_dat": "2011-12-08Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": "TBA", + "project_nu": "DPN1", + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 1, + "historic_c": 0e-11, + "funding_ba": "Capex" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.101", + "geometry": { + "type": "Point", + "coordinates": [536603.6820999999, 6905155.7266] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE1730", + "type": "Frame Rack", + "material": "Galvanised Steel", + "number_of_": 10, + "comments": null, + "documents": "../photos/67/f8p2.jpg", + "inspectors": null, + "inspection": "2012-03-07Z", + "constructi": null, + "record_cre": "2012-03-07Z", + "last_updat": null, + "update_dat": "2012-03-12Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": "TBA", + "project_nu": null, + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 2, + "historic_c": 0e-11, + "funding_ba": "Initial" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.102", + "geometry": { + "type": "Point", + "coordinates": [533142.7610999998, 6911808.7624] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE1750", + "type": "Frame Rack", + "material": "Galvanised Steel", + "number_of_": 4, + "comments": null, + "documents": "../photos/67/t84p30.jpg", + "inspectors": null, + "inspection": "2012-03-08Z", + "constructi": "2011-10-14Z", + "record_cre": "2012-03-08Z", + "last_updat": null, + "update_dat": "2012-03-15Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": "TBA", + "project_nu": "CPL1", + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 1, + "historic_c": 0e-11, + "funding_ba": "Capex" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.103", + "geometry": { + "type": "Point", + "coordinates": [542487.7846999997, 6901589.5625] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE690", + "type": "Frame Rack", + "material": "Galvanised Steel", + "number_of_": 4, + "comments": null, + "documents": "../photos/47/e96p6.jpg", + "inspectors": null, + "inspection": "2009-04-07Z", + "constructi": "2009-02-19Z", + "record_cre": "2009-04-07Z", + "last_updat": null, + "update_dat": "2011-01-31Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": null, + "project_nu": null, + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 1, + "historic_c": 0e-11, + "funding_ba": null + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.104", + "geometry": { + "type": "Point", + "coordinates": [538929.1750999996, 6915370.3575] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE710", + "type": "Hoop_Big", + "material": "Stainless Steel", + "number_of_": 1, + "comments": "Design aspects linked to DEM6. Project Linked to CCM7 and W920", + "documents": "../photos/47/k178p152.jpg", + "inspectors": null, + "inspection": "2009-04-29Z", + "constructi": "2009-04-30Z", + "record_cre": "2009-04-29Z", + "last_updat": null, + "update_dat": "2011-05-13Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": null, + "project_nu": "CCM7", + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 2, + "historic_c": 0e-11, + "funding_ba": "Capex" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.105", + "geometry": { + "type": "Point", + "coordinates": [542224.6516000004, 6905330.3111] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE1510", + "type": "Hoop_Half", + "material": "Stainless Steel", + "number_of_": 1, + "comments": null, + "documents": "../photos/36/x128p218.jpg", + "inspectors": null, + "inspection": "2009-11-12Z", + "constructi": null, + "record_cre": "2008-06-16Z", + "last_updat": null, + "update_dat": "2011-05-13Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": "TBA", + "project_nu": null, + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 2, + "historic_c": 0e-11, + "funding_ba": null + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.106", + "geometry": { + "type": "Point", + "coordinates": [542224.5937999999, 6905330.651] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE1511", + "type": "Hoop_Half", + "material": "Stainless Steel", + "number_of_": 1, + "comments": null, + "documents": "../photos/36/x128p218.jpg", + "inspectors": null, + "inspection": "2009-11-12Z", + "constructi": null, + "record_cre": "2008-06-16Z", + "last_updat": null, + "update_dat": "2011-05-13Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": "TBA", + "project_nu": null, + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 2, + "historic_c": 0e-11, + "funding_ba": null + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.107", + "geometry": { + "type": "Point", + "coordinates": [540560.8628000002, 6906013.752] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE1512", + "type": "Frame Rack", + "material": "Stainless Steel", + "number_of_": 1, + "comments": null, + "documents": "../photos/7/c742p47.jpg", + "inspectors": null, + "inspection": "2009-10-12Z", + "constructi": null, + "record_cre": "2004-03-08Z", + "last_updat": null, + "update_dat": "2011-05-13Z", + "disposal_d": null, + "positional": null, + "owner": null, + "project_nu": null, + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 2, + "historic_c": 0e-11, + "funding_ba": null + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.108", + "geometry": { + "type": "Point", + "coordinates": [540564.5899, 6906014.1619] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE1513", + "type": "Frame Rack", + "material": "Stainless Steel", + "number_of_": 1, + "comments": null, + "documents": "../photos/7/c742p47.jpg", + "inspectors": null, + "inspection": "2009-10-12Z", + "constructi": null, + "record_cre": "2004-03-08Z", + "last_updat": null, + "update_dat": "2011-05-13Z", + "disposal_d": null, + "positional": null, + "owner": null, + "project_nu": null, + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 2, + "historic_c": 0e-11, + "funding_ba": null + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.109", + "geometry": { + "type": "Point", + "coordinates": [540561.4234999996, 6906013.8419] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE1514", + "type": "Frame Rack", + "material": "Stainless Steel", + "number_of_": 1, + "comments": null, + "documents": "../photos/7/c742p47.jpg", + "inspectors": null, + "inspection": "2009-10-12Z", + "constructi": null, + "record_cre": "2004-03-08Z", + "last_updat": null, + "update_dat": "2011-05-13Z", + "disposal_d": null, + "positional": null, + "owner": null, + "project_nu": null, + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 2, + "historic_c": 0e-11, + "funding_ba": null + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.110", + "geometry": { + "type": "Point", + "coordinates": [540562.0006999997, 6906013.8719] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE1515", + "type": "Frame Rack", + "material": "Stainless Steel", + "number_of_": 1, + "comments": null, + "documents": "../photos/7/c742p47.jpg", + "inspectors": null, + "inspection": "2009-10-12Z", + "constructi": null, + "record_cre": "2004-03-08Z", + "last_updat": null, + "update_dat": "2011-05-13Z", + "disposal_d": null, + "positional": null, + "owner": null, + "project_nu": null, + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 2, + "historic_c": 0e-11, + "funding_ba": null + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.111", + "geometry": { + "type": "Point", + "coordinates": [540564.0374999996, 6906014.1019] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE1516", + "type": "Frame Rack", + "material": "Stainless Steel", + "number_of_": 1, + "comments": null, + "documents": "../photos/7/c742p47.jpg", + "inspectors": null, + "inspection": "2009-10-12Z", + "constructi": null, + "record_cre": "2004-03-08Z", + "last_updat": null, + "update_dat": "2011-05-13Z", + "disposal_d": null, + "positional": null, + "owner": null, + "project_nu": null, + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 2, + "historic_c": 0e-11, + "funding_ba": null + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.112", + "geometry": { + "type": "Point", + "coordinates": [540562.5285, 6906013.9919] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE1517", + "type": "Frame Rack", + "material": "Stainless Steel", + "number_of_": 1, + "comments": null, + "documents": "../photos/7/c742p47.jpg", + "inspectors": null, + "inspection": "2009-10-12Z", + "constructi": null, + "record_cre": "2004-03-08Z", + "last_updat": null, + "update_dat": "2011-05-13Z", + "disposal_d": null, + "positional": null, + "owner": null, + "project_nu": null, + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 2, + "historic_c": 0e-11, + "funding_ba": null + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.113", + "geometry": { + "type": "Point", + "coordinates": [540563.4767000005, 6906014.0919] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE1518", + "type": "Frame Rack", + "material": "Stainless Steel", + "number_of_": 1, + "comments": null, + "documents": "../photos/7/c742p47.jpg", + "inspectors": null, + "inspection": "2009-10-12Z", + "constructi": null, + "record_cre": "2004-03-08Z", + "last_updat": null, + "update_dat": "2011-05-13Z", + "disposal_d": null, + "positional": null, + "owner": null, + "project_nu": null, + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 2, + "historic_c": 0e-11, + "funding_ba": null + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.114", + "geometry": { + "type": "Point", + "coordinates": [538930.5356999999, 6915370.1275] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE1522", + "type": "Hoop_Big", + "material": "Stainless Steel", + "number_of_": 1, + "comments": "Design aspects linked to DEM6. Project Linked to CCM7 and W920", + "documents": "../photos/47/k178p152.jpg", + "inspectors": null, + "inspection": "2009-04-29Z", + "constructi": "2009-04-30Z", + "record_cre": "2009-04-29Z", + "last_updat": null, + "update_dat": "2011-05-13Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": null, + "project_nu": "CCM7", + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 2, + "historic_c": 0e-11, + "funding_ba": "Capex" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.115", + "geometry": { + "type": "Point", + "coordinates": [541662.9611, 6898740.3125] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE1523", + "type": "Hoop_Big", + "material": "Stainless Steel", + "number_of_": 1, + "comments": null, + "documents": "../photos/47/e104p137.jpg", + "inspectors": null, + "inspection": "2009-11-20Z", + "constructi": "2008-08-26Z", + "record_cre": "2009-05-08Z", + "last_updat": null, + "update_dat": "2011-05-13Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": null, + "project_nu": "CY38", + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 2, + "historic_c": 0e-11, + "funding_ba": "Capex" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.116", + "geometry": { + "type": "Point", + "coordinates": [552574.1756999996, 6884050.7725] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE1308", + "type": "Other", + "material": "Stainless Steel", + "number_of_": 2, + "comments": null, + "documents": "../photos/62/x371p21.jpg", + "inspectors": null, + "inspection": "2010-11-19Z", + "constructi": null, + "record_cre": "2010-11-19Z", + "last_updat": null, + "update_dat": "2011-01-31Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": null, + "project_nu": null, + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 2, + "historic_c": 0e-11, + "funding_ba": "Initial" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.117", + "geometry": { + "type": "Point", + "coordinates": [552603.7699999996, 6884064.4797] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE1309", + "type": "Other", + "material": "Stainless Steel", + "number_of_": 2, + "comments": null, + "documents": "../photos/62/x371p22.jpg", + "inspectors": null, + "inspection": "2010-11-19Z", + "constructi": null, + "record_cre": "2010-11-19Z", + "last_updat": null, + "update_dat": "2011-01-31Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": null, + "project_nu": null, + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 2, + "historic_c": 0e-11, + "funding_ba": "Initial" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.118", + "geometry": { + "type": "Point", + "coordinates": [552644.7023999998, 6884058.6709] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE1310", + "type": "Other", + "material": "Stainless Steel", + "number_of_": 2, + "comments": null, + "documents": "../photos/62/x371p23.jpg", + "inspectors": null, + "inspection": "2010-11-19Z", + "constructi": null, + "record_cre": "2010-11-19Z", + "last_updat": null, + "update_dat": "2011-01-31Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": null, + "project_nu": null, + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 2, + "historic_c": 0e-11, + "funding_ba": "Initial" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.119", + "geometry": { + "type": "Point", + "coordinates": [552662.7359999996, 6884055.9514] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE1311", + "type": "Other", + "material": "Stainless Steel", + "number_of_": 2, + "comments": null, + "documents": "../photos/62/x371p24.jpg", + "inspectors": null, + "inspection": "2010-11-19Z", + "constructi": null, + "record_cre": "2010-11-19Z", + "last_updat": null, + "update_dat": "2011-01-31Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": null, + "project_nu": null, + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 2, + "historic_c": 0e-11, + "funding_ba": "Initial" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.120", + "geometry": { + "type": "Point", + "coordinates": [552707.6264000004, 6884048.183] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE1312", + "type": "Other", + "material": "Galvanised Steel", + "number_of_": 3, + "comments": null, + "documents": "../photos/62/x371p25.jpg", + "inspectors": null, + "inspection": "2010-11-19Z", + "constructi": null, + "record_cre": "2010-11-19Z", + "last_updat": null, + "update_dat": "2011-01-31Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": null, + "project_nu": null, + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 2, + "historic_c": 0e-11, + "funding_ba": "Initial" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.121", + "geometry": { + "type": "Point", + "coordinates": [552785.0136000002, 6884029.6968] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE1313", + "type": "Other", + "material": "Galvanised Steel", + "number_of_": 3, + "comments": null, + "documents": "../photos/62/x371p26.jpg", + "inspectors": null, + "inspection": "2010-11-19Z", + "constructi": null, + "record_cre": "2010-11-19Z", + "last_updat": null, + "update_dat": "2011-01-31Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": null, + "project_nu": null, + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 2, + "historic_c": 0e-11, + "funding_ba": "Initial" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.122", + "geometry": { + "type": "Point", + "coordinates": [552777.7325999998, 6884029.6668] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE1314", + "type": "Other", + "material": "Galvanised Steel", + "number_of_": 3, + "comments": null, + "documents": "../photos/62/x371p27.jpg", + "inspectors": null, + "inspection": "2010-11-19Z", + "constructi": null, + "record_cre": "2010-11-19Z", + "last_updat": null, + "update_dat": "2011-01-31Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": null, + "project_nu": null, + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 2, + "historic_c": 0e-11, + "funding_ba": "Initial" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.123", + "geometry": { + "type": "Point", + "coordinates": [552672.7051999997, 6884035.4656] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE1315", + "type": "Other", + "material": "Galvanised Steel", + "number_of_": 2, + "comments": null, + "documents": "../photos/62/x371p28.jpg", + "inspectors": null, + "inspection": "2010-11-19Z", + "constructi": null, + "record_cre": "2010-11-19Z", + "last_updat": null, + "update_dat": "2011-01-31Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": null, + "project_nu": null, + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 2, + "historic_c": 0e-11, + "funding_ba": "Initial" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.124", + "geometry": { + "type": "Point", + "coordinates": [534885.4543000003, 6893259.2281] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE290", + "type": "Frame Rack", + "material": "Galvanised Steel", + "number_of_": 7, + "comments": null, + "documents": "../photos/33/k82p62.jpg", + "inspectors": null, + "inspection": "2009-11-05Z", + "constructi": null, + "record_cre": "2006-12-12Z", + "last_updat": null, + "update_dat": "2011-01-31Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": null, + "project_nu": null, + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 2, + "historic_c": 0e-11, + "funding_ba": null + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.125", + "geometry": { + "type": "Point", + "coordinates": [541662.9528999999, 6898739.9825] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE770", + "type": "Hoop_Big", + "material": "Stainless Steel", + "number_of_": 1, + "comments": null, + "documents": "../photos/47/e104p137.jpg", + "inspectors": null, + "inspection": "2009-11-20Z", + "constructi": "2008-08-26Z", + "record_cre": "2009-05-08Z", + "last_updat": null, + "update_dat": "2011-05-13Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": null, + "project_nu": "CY38", + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 2, + "historic_c": 0e-11, + "funding_ba": "Capex" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.126", + "geometry": { + "type": "Point", + "coordinates": [542271.5373999998, 6895726.9958] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE930", + "type": "Frame Rack", + "material": "Galvanised Steel", + "number_of_": 5, + "comments": null, + "documents": "../photos/54/x255p156.jpg", + "inspectors": null, + "inspection": "2009-08-27Z", + "constructi": null, + "record_cre": "2009-08-27Z", + "last_updat": null, + "update_dat": "2011-01-31Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": null, + "project_nu": null, + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 2, + "historic_c": 0e-11, + "funding_ba": null + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.127", + "geometry": { + "type": "Point", + "coordinates": [529704.7553000003, 6910911.475] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE1150", + "type": "Wheel Rack", + "material": "Galvanised Steel", + "number_of_": 9, + "comments": null, + "documents": "../photos/58/k256p23.jpg", + "inspectors": null, + "inspection": "2010-05-07Z", + "constructi": "2010-04-16Z", + "record_cre": "2010-05-07Z", + "last_updat": null, + "update_dat": "2011-01-31Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": null, + "project_nu": null, + "file_numbe": "PN257352/03/DA4", + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 2, + "historic_c": 0e-11, + "funding_ba": "Contribute" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.128", + "geometry": { + "type": "Point", + "coordinates": [542355.5378, 6902925.1406] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE1410", + "type": "Hoop_Big", + "material": "Stainless Steel", + "number_of_": 2, + "comments": "Asset associated with Projects JN29 & JN35", + "documents": "../photos/63/x386p106.jpg", + "inspectors": null, + "inspection": "2011-03-08Z", + "constructi": "2011-01-24Z", + "record_cre": "2011-03-08Z", + "last_updat": null, + "update_dat": "2012-02-10Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": "251", + "project_nu": "JN35", + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 2, + "historic_c": 0e-11, + "funding_ba": "Capex" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.129", + "geometry": { + "type": "Point", + "coordinates": [542355.5049, 6902926.5404] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE1411", + "type": "Hoop_Big", + "material": "Galvanised Steel", + "number_of_": 2, + "comments": "Asset associated with Projects JN29 & JN35", + "documents": "../photos/63/x386p107.jpg", + "inspectors": null, + "inspection": "2011-03-08Z", + "constructi": "2011-01-24Z", + "record_cre": "2011-03-08Z", + "last_updat": null, + "update_dat": "2012-02-10Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": "251", + "project_nu": "JN35", + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 2, + "historic_c": 0e-11, + "funding_ba": "Capex" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.130", + "geometry": { + "type": "Point", + "coordinates": [542355.5049, 6902927.8301] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE1412", + "type": "Hoop_Big", + "material": "Galvanised Steel", + "number_of_": 2, + "comments": "Asset associated with Projects JN29 & JN35", + "documents": "../photos/63/x386p108.jpg", + "inspectors": null, + "inspection": "2011-03-08Z", + "constructi": "2011-01-24Z", + "record_cre": "2011-03-08Z", + "last_updat": null, + "update_dat": "2012-02-10Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": "251", + "project_nu": "JN35", + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 2, + "historic_c": 0e-11, + "funding_ba": "Capex" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.131", + "geometry": { + "type": "Point", + "coordinates": [542355.4801000003, 6902928.9399] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE1413", + "type": "Hoop_Big", + "material": "Galvanised Steel", + "number_of_": 2, + "comments": "Asset associated with Projects JN29 & JN35", + "documents": "../photos/63/x386p109.jpg", + "inspectors": null, + "inspection": "2011-03-08Z", + "constructi": "2011-01-24Z", + "record_cre": "2011-03-08Z", + "last_updat": null, + "update_dat": "2012-02-10Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": "251", + "project_nu": "JN35", + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 2, + "historic_c": 0e-11, + "funding_ba": "Capex" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.132", + "geometry": { + "type": "Point", + "coordinates": [542355.4884000001, 6902930.0796] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE1414", + "type": "Hoop_Big", + "material": "Galvanised Steel", + "number_of_": 2, + "comments": "Asset associated with Projects JN29 & JN35", + "documents": "../photos/63/x386p110.jpg", + "inspectors": null, + "inspection": "2011-03-08Z", + "constructi": "2011-01-24Z", + "record_cre": "2011-03-08Z", + "last_updat": null, + "update_dat": "2012-02-10Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": "251", + "project_nu": "JN35", + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 2, + "historic_c": 0e-11, + "funding_ba": "Capex" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.133", + "geometry": { + "type": "Point", + "coordinates": [542366.0513000004, 6902773.0216] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE1415", + "type": "Hoop_Big", + "material": "Stainless Steel", + "number_of_": 2, + "comments": "Asset associated with Projects JN29 & JN35", + "documents": "../photos/63/x386p295.jpg", + "inspectors": null, + "inspection": "2011-03-10Z", + "constructi": "2010-09-24Z", + "record_cre": "2011-03-10Z", + "last_updat": null, + "update_dat": "2012-02-10Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": "251", + "project_nu": "JN35", + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 2, + "historic_c": 0e-11, + "funding_ba": "Capex" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.134", + "geometry": { + "type": "Point", + "coordinates": [542365.9441, 6902774.5113] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE1417", + "type": "Hoop_Big", + "material": "Stainless Steel", + "number_of_": 2, + "comments": "Asset associated with Projects JN29 & JN35", + "documents": "../photos/63/x386p297.jpg", + "inspectors": null, + "inspection": "2011-03-10Z", + "constructi": "2010-09-24Z", + "record_cre": "2011-03-10Z", + "last_updat": null, + "update_dat": "2012-02-10Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": "251", + "project_nu": "JN35", + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 2, + "historic_c": 0e-11, + "funding_ba": "Capex" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.135", + "geometry": { + "type": "Point", + "coordinates": [546400.9490999999, 6889298.0344] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE1302", + "type": "Frame Rack", + "material": "Galvanised Steel", + "number_of_": 5, + "comments": null, + "documents": "../photos/62/x371p14.jpg", + "inspectors": null, + "inspection": "2010-11-19Z", + "constructi": null, + "record_cre": "2010-11-19Z", + "last_updat": null, + "update_dat": "2011-01-31Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": null, + "project_nu": null, + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 2, + "historic_c": 0e-11, + "funding_ba": "Initial" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.136", + "geometry": { + "type": "Point", + "coordinates": [546389.7429999998, 6889318.0803] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE1303", + "type": "Frame Rack", + "material": "Galvanised Steel", + "number_of_": 3, + "comments": null, + "documents": "../photos/62/x371p15.jpg", + "inspectors": null, + "inspection": "2010-11-19Z", + "constructi": null, + "record_cre": "2010-11-19Z", + "last_updat": null, + "update_dat": "2011-01-31Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": null, + "project_nu": null, + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 2, + "historic_c": 0e-11, + "funding_ba": "Initial" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.137", + "geometry": { + "type": "Point", + "coordinates": [546400.5203, 6889187.177] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE1304", + "type": "Frame Rack", + "material": "Galvanised Steel", + "number_of_": 5, + "comments": null, + "documents": "../photos/62/x371p16.jpg", + "inspectors": null, + "inspection": "2010-11-19Z", + "constructi": null, + "record_cre": "2010-11-19Z", + "last_updat": null, + "update_dat": "2011-01-31Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": null, + "project_nu": null, + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 2, + "historic_c": 0e-11, + "funding_ba": "Initial" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.138", + "geometry": { + "type": "Point", + "coordinates": [545940.2620000001, 6889729.1766] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE150", + "type": "Frame Rack", + "material": "Galvanised Steel", + "number_of_": 5, + "comments": null, + "documents": "../photos/21/f184p48.jpg", + "inspectors": null, + "inspection": "2009-11-30Z", + "constructi": null, + "record_cre": "2006-01-17Z", + "last_updat": null, + "update_dat": "2010-03-13Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": null, + "project_nu": null, + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 3, + "historic_c": 0e-11, + "funding_ba": null + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.139", + "geometry": { + "type": "Point", + "coordinates": [545953.0017999997, 6889732.116] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE151", + "type": "Frame Rack", + "material": "Galvanised Steel", + "number_of_": 10, + "comments": null, + "documents": "../photos/21/f185p107.jpg", + "inspectors": null, + "inspection": "2009-11-30Z", + "constructi": null, + "record_cre": "2006-01-18Z", + "last_updat": null, + "update_dat": "2010-03-13Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": null, + "project_nu": null, + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 3, + "historic_c": 0e-11, + "funding_ba": null + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.140", + "geometry": { + "type": "Point", + "coordinates": [530744.449, 6909072.7593] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE870", + "type": "Wheel Rack", + "material": "Galvanised Steel", + "number_of_": 6, + "comments": null, + "documents": "../photos/52/v42p98.jpg", + "inspectors": null, + "inspection": "2009-07-30Z", + "constructi": null, + "record_cre": "2009-07-30Z", + "last_updat": null, + "update_dat": "2011-01-31Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": null, + "project_nu": null, + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 2, + "historic_c": 0e-11, + "funding_ba": null + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.141", + "geometry": { + "type": "Point", + "coordinates": [541038.6765000001, 6906526.3676] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE990", + "type": "Other", + "material": "Stainless Steel", + "number_of_": 1, + "comments": null, + "documents": "../photos/55/A146p104.jpg", + "inspectors": null, + "inspection": "2009-11-30Z", + "constructi": null, + "record_cre": "2009-11-30Z", + "last_updat": null, + "update_dat": "2011-05-13Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": null, + "project_nu": "TBA", + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 1, + "historic_c": 0e-11, + "funding_ba": "Capex" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.142", + "geometry": { + "type": "Point", + "coordinates": [546635.2960000001, 6889190.2163] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE1130", + "type": "Wheel Rack", + "material": "Galvanised Steel", + "number_of_": 5, + "comments": null, + "documents": "../photos/58/k251p31.jpg", + "inspectors": null, + "inspection": "2010-04-19Z", + "constructi": "2010-01-29Z", + "record_cre": "2010-04-19Z", + "last_updat": null, + "update_dat": "2011-07-22Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": "251", + "project_nu": "DQY1", + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 2, + "historic_c": 0e-11, + "funding_ba": "Capex" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.143", + "geometry": { + "type": "Point", + "coordinates": [545414.3255000003, 6891614.7428] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE1131", + "type": "Wheel Rack", + "material": "Galvanised Steel", + "number_of_": 4, + "comments": null, + "documents": "../photos/58/k251p48.jpg", + "inspectors": null, + "inspection": "2010-04-19Z", + "constructi": null, + "record_cre": "2010-04-19Z", + "last_updat": null, + "update_dat": "2011-01-31Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": null, + "project_nu": null, + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 2, + "historic_c": 0e-11, + "funding_ba": "Initial" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.144", + "geometry": { + "type": "Point", + "coordinates": [540697.9417000003, 6906908.1699] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE1370", + "type": "Wheel Rack", + "material": "Galvanised Steel", + "number_of_": 1, + "comments": null, + "documents": "../photos/63/x384p189.jpg", + "inspectors": null, + "inspection": "2011-02-11Z", + "constructi": null, + "record_cre": "2011-02-11Z", + "last_updat": null, + "update_dat": "2011-02-17Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": "TBA", + "project_nu": null, + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 2, + "historic_c": 0e-11, + "funding_ba": "Initial" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.145", + "geometry": { + "type": "Point", + "coordinates": [540698.4776999997, 6906907.2501] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE1371", + "type": "Wheel Rack", + "material": "Galvanised Steel", + "number_of_": 1, + "comments": null, + "documents": "../photos/63/x384p190.jpg", + "inspectors": null, + "inspection": "2011-02-11Z", + "constructi": null, + "record_cre": "2011-02-11Z", + "last_updat": null, + "update_dat": "2011-02-17Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": "TBA", + "project_nu": null, + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 2, + "historic_c": 0e-11, + "funding_ba": "Initial" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.146", + "geometry": { + "type": "Point", + "coordinates": [540697.3398000002, 6906908.9697] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE1372", + "type": "Wheel Rack", + "material": "Galvanised Steel", + "number_of_": 1, + "comments": null, + "documents": "../photos/63/x384p191.jpg", + "inspectors": null, + "inspection": "2011-02-11Z", + "constructi": null, + "record_cre": "2011-02-11Z", + "last_updat": null, + "update_dat": "2011-02-17Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": "TBA", + "project_nu": null, + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 2, + "historic_c": 0e-11, + "funding_ba": "Initial" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.147", + "geometry": { + "type": "Point", + "coordinates": [540696.8945000004, 6906909.8196] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE1373", + "type": "Wheel Rack", + "material": "Galvanised Steel", + "number_of_": 1, + "comments": null, + "documents": "../photos/63/x384p192.jpg", + "inspectors": null, + "inspection": "2011-02-11Z", + "constructi": null, + "record_cre": "2011-02-11Z", + "last_updat": null, + "update_dat": "2011-02-17Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": "TBA", + "project_nu": null, + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 2, + "historic_c": 0e-11, + "funding_ba": "Initial" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.148", + "geometry": { + "type": "Point", + "coordinates": [541038.5692999996, 6906528.2772] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE1470", + "type": "Other", + "material": "Stainless Steel", + "number_of_": 1, + "comments": null, + "documents": "../photos/55/A146p104.jpg", + "inspectors": null, + "inspection": "2009-11-30Z", + "constructi": null, + "record_cre": "2009-11-30Z", + "last_updat": null, + "update_dat": "2011-05-13Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": null, + "project_nu": "TBA", + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 1, + "historic_c": 0e-11, + "funding_ba": "Capex" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.149", + "geometry": { + "type": "Point", + "coordinates": [541038.6188000003, 6906527.7873] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE1471", + "type": "Other", + "material": "Stainless Steel", + "number_of_": 1, + "comments": null, + "documents": "../photos/55/A146p104.jpg", + "inspectors": null, + "inspection": "2009-11-30Z", + "constructi": null, + "record_cre": "2009-11-30Z", + "last_updat": null, + "update_dat": "2011-05-13Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": null, + "project_nu": "TBA", + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 1, + "historic_c": 0e-11, + "funding_ba": "Capex" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.150", + "geometry": { + "type": "Point", + "coordinates": [541038.6023000004, 6906527.0575] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE1472", + "type": "Other", + "material": "Stainless Steel", + "number_of_": 1, + "comments": null, + "documents": "../photos/55/A146p104.jpg", + "inspectors": null, + "inspection": "2009-11-30Z", + "constructi": null, + "record_cre": "2009-11-30Z", + "last_updat": null, + "update_dat": "2011-05-13Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": null, + "project_nu": "TBA", + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 1, + "historic_c": 0e-11, + "funding_ba": "Capex" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.151", + "geometry": { + "type": "Point", + "coordinates": [541160.0800999999, 6906352.573] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE1473", + "type": "Other", + "material": "Stainless Steel", + "number_of_": 1, + "comments": null, + "documents": "../photos/55/A148p54.jpg", + "inspectors": null, + "inspection": "2010-01-06Z", + "constructi": null, + "record_cre": "2010-01-06Z", + "last_updat": null, + "update_dat": "2011-05-13Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": null, + "project_nu": "TBA", + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 1, + "historic_c": 0e-11, + "funding_ba": "Capex" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.152", + "geometry": { + "type": "Point", + "coordinates": [541160.1873000003, 6906351.2133] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE1474", + "type": "Other", + "material": "Stainless Steel", + "number_of_": 1, + "comments": null, + "documents": "../photos/55/A148p54.jpg", + "inspectors": null, + "inspection": "2010-01-06Z", + "constructi": null, + "record_cre": "2010-01-06Z", + "last_updat": null, + "update_dat": "2011-05-13Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": null, + "project_nu": "TBA", + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 1, + "historic_c": 0e-11, + "funding_ba": "Capex" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.153", + "geometry": { + "type": "Point", + "coordinates": [541159.9151999997, 6906353.1229] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE1475", + "type": "Other", + "material": "Stainless Steel", + "number_of_": 1, + "comments": null, + "documents": "../photos/55/A148p54.jpg", + "inspectors": null, + "inspection": "2010-01-06Z", + "constructi": null, + "record_cre": "2010-01-06Z", + "last_updat": null, + "update_dat": "2011-05-13Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": null, + "project_nu": "TBA", + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 1, + "historic_c": 0e-11, + "funding_ba": "Capex" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.154", + "geometry": { + "type": "Point", + "coordinates": [542215.1029000003, 6905440.6886] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE1476", + "type": "Hoop_Half", + "material": "Stainless Steel", + "number_of_": 1, + "comments": null, + "documents": "../photos/36/x128p194.jpg", + "inspectors": null, + "inspection": "2009-11-12Z", + "constructi": null, + "record_cre": "2008-06-16Z", + "last_updat": null, + "update_dat": "2011-05-13Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": null, + "project_nu": null, + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 2, + "historic_c": 0e-11, + "funding_ba": null + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.155", + "geometry": { + "type": "Point", + "coordinates": [542215.1029000003, 6905439.4889] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE1477", + "type": "Hoop_Half", + "material": "Stainless Steel", + "number_of_": 1, + "comments": null, + "documents": "../photos/36/x128p194.jpg", + "inspectors": null, + "inspection": "2009-11-12Z", + "constructi": null, + "record_cre": "2008-06-16Z", + "last_updat": null, + "update_dat": "2011-05-13Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": null, + "project_nu": null, + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 2, + "historic_c": 0e-11, + "funding_ba": null + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.156", + "geometry": { + "type": "Point", + "coordinates": [542231.8832, 6905153.667] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE1478", + "type": "Hoop_Half", + "material": "Stainless Steel", + "number_of_": 1, + "comments": null, + "documents": "../photos/36/x128p233.jpg", + "inspectors": null, + "inspection": "2009-11-12Z", + "constructi": null, + "record_cre": "2008-06-16Z", + "last_updat": null, + "update_dat": "2011-05-13Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": null, + "project_nu": null, + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 2, + "historic_c": 0e-11, + "funding_ba": null + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.157", + "geometry": { + "type": "Point", + "coordinates": [542230.7865000004, 6905153.617] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE1479", + "type": "Hoop_Half", + "material": "Stainless Steel", + "number_of_": 1, + "comments": null, + "documents": "../photos/36/x128p233.jpg", + "inspectors": null, + "inspection": "2009-11-12Z", + "constructi": null, + "record_cre": "2008-06-16Z", + "last_updat": null, + "update_dat": "2011-05-13Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": null, + "project_nu": null, + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 2, + "historic_c": 0e-11, + "funding_ba": null + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.158", + "geometry": { + "type": "Point", + "coordinates": [533003.4392999997, 6903695.2639] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE1480", + "type": "Wheel Rack", + "material": "Galvanised Steel", + "number_of_": 1, + "comments": null, + "documents": "../photos/10/d604p50.jpg", + "inspectors": null, + "inspection": "2004-09-20Z", + "constructi": null, + "record_cre": "2004-09-20Z", + "last_updat": null, + "update_dat": "2011-05-13Z", + "disposal_d": null, + "positional": null, + "owner": null, + "project_nu": null, + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 2, + "historic_c": 0e-11, + "funding_ba": null + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.159", + "geometry": { + "type": "Point", + "coordinates": [533003.9506000001, 6903695.1239] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE1481", + "type": "Wheel Rack", + "material": "Galvanised Steel", + "number_of_": 1, + "comments": null, + "documents": "../photos/10/d604p50.jpg", + "inspectors": null, + "inspection": "2004-09-20Z", + "constructi": null, + "record_cre": "2004-09-20Z", + "last_updat": null, + "update_dat": "2011-05-13Z", + "disposal_d": null, + "positional": null, + "owner": null, + "project_nu": null, + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 2, + "historic_c": 0e-11, + "funding_ba": null + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.160", + "geometry": { + "type": "Point", + "coordinates": [533003.159, 6903695.3139] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE1482", + "type": "Wheel Rack", + "material": "Galvanised Steel", + "number_of_": 1, + "comments": null, + "documents": "../photos/10/d604p50.jpg", + "inspectors": null, + "inspection": "2004-09-20Z", + "constructi": null, + "record_cre": "2004-09-20Z", + "last_updat": null, + "update_dat": "2011-05-13Z", + "disposal_d": null, + "positional": null, + "owner": null, + "project_nu": null, + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 2, + "historic_c": 0e-11, + "funding_ba": null + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.161", + "geometry": { + "type": "Point", + "coordinates": [532986.9724000003, 6903708.0213] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE1483", + "type": "Wheel Rack", + "material": "Galvanised Steel", + "number_of_": 1, + "comments": null, + "documents": "../photos/10/d604p77.jpg", + "inspectors": null, + "inspection": "2004-09-20Z", + "constructi": null, + "record_cre": "2004-09-20Z", + "last_updat": null, + "update_dat": "2011-05-13Z", + "disposal_d": null, + "positional": null, + "owner": null, + "project_nu": null, + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 2, + "historic_c": 0e-11, + "funding_ba": null + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.162", + "geometry": { + "type": "Point", + "coordinates": [532986.2714999998, 6903708.1513] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE1484", + "type": "Wheel Rack", + "material": "Galvanised Steel", + "number_of_": 1, + "comments": null, + "documents": "../photos/10/d604p77.jpg", + "inspectors": null, + "inspection": "2004-09-20Z", + "constructi": null, + "record_cre": "2004-09-20Z", + "last_updat": null, + "update_dat": "2011-05-13Z", + "disposal_d": null, + "positional": null, + "owner": null, + "project_nu": null, + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 2, + "historic_c": 0e-11, + "funding_ba": null + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.163", + "geometry": { + "type": "Point", + "coordinates": [532986.6919999998, 6903708.0913] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE1485", + "type": "Wheel Rack", + "material": "Galvanised Steel", + "number_of_": 1, + "comments": null, + "documents": "../photos/10/d604p77.jpg", + "inspectors": null, + "inspection": "2004-09-20Z", + "constructi": null, + "record_cre": "2004-09-20Z", + "last_updat": null, + "update_dat": "2011-05-13Z", + "disposal_d": null, + "positional": null, + "owner": null, + "project_nu": null, + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 2, + "historic_c": 0e-11, + "funding_ba": null + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.164", + "geometry": { + "type": "Point", + "coordinates": [540387.7495999997, 6901238.064] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE7", + "type": "Wheel Rack", + "material": "Mild Steel", + "number_of_": 14, + "comments": null, + "documents": "../photos/59/x313p29.jpg", + "inspectors": null, + "inspection": "2010-05-24Z", + "constructi": null, + "record_cre": "2002-02-28Z", + "last_updat": null, + "update_dat": "2010-05-28Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": null, + "project_nu": null, + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 4, + "historic_c": 0e-11, + "funding_ba": null + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.165", + "geometry": { + "type": "Point", + "coordinates": [530780.6070999997, 6916261.2561] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE310", + "type": "Wheel Rack", + "material": "Galvanised Steel", + "number_of_": 10, + "comments": null, + "documents": "../photos/29/f333p11.jpg", + "inspectors": null, + "inspection": "2009-09-23Z", + "constructi": null, + "record_cre": "2007-01-15Z", + "last_updat": null, + "update_dat": "2011-01-31Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": null, + "project_nu": null, + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 3, + "historic_c": 0e-11, + "funding_ba": null + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.166", + "geometry": { + "type": "Point", + "coordinates": [538856.1912000002, 6912515.7285] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE50", + "type": "Wheel Rack", + "material": "Galvanised Steel", + "number_of_": 10, + "comments": null, + "documents": "../photos/48/e107p237.jpg", + "inspectors": null, + "inspection": "2009-10-07Z", + "constructi": null, + "record_cre": "2002-10-15Z", + "last_updat": null, + "update_dat": "2011-01-31Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": null, + "project_nu": null, + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 2, + "historic_c": 0e-11, + "funding_ba": null + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.167", + "geometry": { + "type": "Point", + "coordinates": [544527.2953000003, 6892883.0947] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE950", + "type": "Wheel Rack", + "material": "Stainless Steel", + "number_of_": 5, + "comments": null, + "documents": "../photos/54/k225p3.jpg", + "inspectors": null, + "inspection": "2009-10-22Z", + "constructi": null, + "record_cre": "2009-10-22Z", + "last_updat": null, + "update_dat": "2011-01-31Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": null, + "project_nu": null, + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 2, + "historic_c": 0e-11, + "funding_ba": "Initial" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.168", + "geometry": { + "type": "Point", + "coordinates": [544483.1966000004, 6892960.029] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE951", + "type": "Wheel Rack", + "material": "Stainless Steel", + "number_of_": 5, + "comments": null, + "documents": "../photos/54/k225p8.jpg", + "inspectors": null, + "inspection": "2009-10-22Z", + "constructi": null, + "record_cre": "2009-10-22Z", + "last_updat": null, + "update_dat": "2011-01-31Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": null, + "project_nu": null, + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 2, + "historic_c": 0e-11, + "funding_ba": "Initial" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.169", + "geometry": { + "type": "Point", + "coordinates": [541160.1624999996, 6906351.8931] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE1010", + "type": "Other", + "material": "Stainless Steel", + "number_of_": 1, + "comments": null, + "documents": "../photos/55/A148p54.jpg", + "inspectors": null, + "inspection": "2010-01-06Z", + "constructi": null, + "record_cre": "2010-01-06Z", + "last_updat": null, + "update_dat": "2011-05-13Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": null, + "project_nu": "TBA", + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 1, + "historic_c": 0e-11, + "funding_ba": "Capex" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.170", + "geometry": { + "type": "Point", + "coordinates": [542240.4423000002, 6895814.8279] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE1110", + "type": "Wheel Rack", + "material": "Galvanised Steel", + "number_of_": 6, + "comments": null, + "documents": "../photos/57/A162p40.jpg", + "inspectors": null, + "inspection": "2010-02-26Z", + "constructi": null, + "record_cre": "2010-02-26Z", + "last_updat": null, + "update_dat": "2011-01-31Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": null, + "project_nu": null, + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 2, + "historic_c": 0e-11, + "funding_ba": "Initial" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.171", + "geometry": { + "type": "Point", + "coordinates": [542215.1853, 6895853.1401] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE1111", + "type": "Frame Rack", + "material": "Galvanised Steel", + "number_of_": 6, + "comments": null, + "documents": "../photos/57/A162p184.jpg", + "inspectors": null, + "inspection": "2010-02-26Z", + "constructi": null, + "record_cre": "2010-02-26Z", + "last_updat": null, + "update_dat": "2011-01-31Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": null, + "project_nu": null, + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 2, + "historic_c": 0e-11, + "funding_ba": "Initial" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.172", + "geometry": { + "type": "Point", + "coordinates": [537506.6102999998, 6894242.338] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE1170", + "type": "Frame Rack", + "material": "Galvanised Steel", + "number_of_": 4, + "comments": null, + "documents": "../photos/59/x314p72.jpg", + "inspectors": null, + "inspection": "2010-05-25Z", + "constructi": null, + "record_cre": "2010-05-25Z", + "last_updat": null, + "update_dat": "2011-01-31Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": null, + "project_nu": null, + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 2, + "historic_c": 0e-11, + "funding_ba": "Initial" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.173", + "geometry": { + "type": "Point", + "coordinates": [537507.369, 6894244.1976] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE1171", + "type": "Frame Rack", + "material": "Galvanised Steel", + "number_of_": 4, + "comments": null, + "documents": "../photos/59/x314p73.jpg", + "inspectors": null, + "inspection": "2010-05-25Z", + "constructi": null, + "record_cre": "2010-05-25Z", + "last_updat": null, + "update_dat": "2011-01-31Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": null, + "project_nu": null, + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 2, + "historic_c": 0e-11, + "funding_ba": "Initial" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.174", + "geometry": { + "type": "Point", + "coordinates": [537508.3997, 6894246.4272] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE1172", + "type": "Frame Rack", + "material": "Galvanised Steel", + "number_of_": 4, + "comments": null, + "documents": "../photos/59/x314p74.jpg", + "inspectors": null, + "inspection": "2010-05-25Z", + "constructi": null, + "record_cre": "2010-05-25Z", + "last_updat": null, + "update_dat": "2011-01-31Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": null, + "project_nu": null, + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 2, + "historic_c": 0e-11, + "funding_ba": "Initial" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.175", + "geometry": { + "type": "Point", + "coordinates": [537504.2355000004, 6894243.7077] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE1173", + "type": "Frame Rack", + "material": "Galvanised Steel", + "number_of_": 4, + "comments": null, + "documents": "../photos/59/x314p75.jpg", + "inspectors": null, + "inspection": "2010-05-25Z", + "constructi": null, + "record_cre": "2010-05-25Z", + "last_updat": null, + "update_dat": "2011-01-31Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": null, + "project_nu": null, + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 2, + "historic_c": 0e-11, + "funding_ba": "Initial" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.176", + "geometry": { + "type": "Point", + "coordinates": [537505.2167999996, 6894245.3774] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE1174", + "type": "Frame Rack", + "material": "Galvanised Steel", + "number_of_": 4, + "comments": null, + "documents": "../photos/59/x314p76.jpg", + "inspectors": null, + "inspection": "2010-05-25Z", + "constructi": null, + "record_cre": "2010-05-25Z", + "last_updat": null, + "update_dat": "2011-01-31Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": null, + "project_nu": null, + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 2, + "historic_c": 0e-11, + "funding_ba": "Initial" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.177", + "geometry": { + "type": "Point", + "coordinates": [537506.1156000001, 6894247.237] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE1175", + "type": "Frame Rack", + "material": "Galvanised Steel", + "number_of_": 4, + "comments": null, + "documents": "../photos/59/x314p77.jpg", + "inspectors": null, + "inspection": "2010-05-25Z", + "constructi": null, + "record_cre": "2010-05-25Z", + "last_updat": null, + "update_dat": "2011-01-31Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": null, + "project_nu": null, + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 2, + "historic_c": 0e-11, + "funding_ba": "Initial" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.178", + "geometry": { + "type": "Point", + "coordinates": [549727.8256000001, 6885518.2338] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE1350", + "type": "Hoop_Half", + "material": "Galvanised Steel", + "number_of_": 5, + "comments": null, + "documents": "../photos/62/j354p2.jpg", + "inspectors": null, + "inspection": "2011-01-14Z", + "constructi": "2010-07-16Z", + "record_cre": "2011-01-14Z", + "last_updat": null, + "update_dat": "2011-01-31Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": null, + "project_nu": "WA58", + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 1, + "historic_c": 0e-11, + "funding_ba": "Capex" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.179", + "geometry": { + "type": "Point", + "coordinates": [551133.4123, 6884433.7645] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE1351", + "type": "Hoop_Half", + "material": "Galvanised Steel", + "number_of_": 5, + "comments": null, + "documents": "../photos/62/j354p6.jpg", + "inspectors": null, + "inspection": "2011-01-14Z", + "constructi": "2010-07-16Z", + "record_cre": "2011-01-14Z", + "last_updat": null, + "update_dat": "2011-01-31Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": null, + "project_nu": "WA58", + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 1, + "historic_c": 0e-11, + "funding_ba": "Capex" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.180", + "geometry": { + "type": "Point", + "coordinates": [550771.1805999996, 6884641.6222] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE1352", + "type": "Hoop_Half", + "material": "Galvanised Steel", + "number_of_": 5, + "comments": null, + "documents": "../photos/62/j354p7.jpg", + "inspectors": null, + "inspection": "2011-01-14Z", + "constructi": "2010-07-16Z", + "record_cre": "2011-01-14Z", + "last_updat": null, + "update_dat": "2011-01-31Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": null, + "project_nu": "WA58", + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 1, + "historic_c": 0e-11, + "funding_ba": "Capex" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.181", + "geometry": { + "type": "Point", + "coordinates": [542402.7699999996, 6902325.4627] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE1450", + "type": "Hoop_Big", + "material": "Stainless Steel", + "number_of_": 2, + "comments": "Asset associated with Projects JN29 & JN35", + "documents": "../photos/63/j378p138.jpg", + "inspectors": null, + "inspection": "2011-03-08Z", + "constructi": "2010-12-21Z", + "record_cre": "2011-03-08Z", + "last_updat": null, + "update_dat": "2012-02-10Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": "251", + "project_nu": "JN35", + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 1, + "historic_c": 0e-11, + "funding_ba": "Capex" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.182", + "geometry": { + "type": "Point", + "coordinates": [542403.0009000003, 6902324.2429] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE1451", + "type": "Hoop_Big", + "material": "Stainless Steel", + "number_of_": 2, + "comments": "Asset associated with Projects JN29 & JN35", + "documents": "../photos/63/j378p139.jpg", + "inspectors": null, + "inspection": "2011-03-08Z", + "constructi": "2010-12-21Z", + "record_cre": "2011-03-08Z", + "last_updat": null, + "update_dat": "2012-02-10Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": "251", + "project_nu": "JN35", + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 1, + "historic_c": 0e-11, + "funding_ba": "Capex" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.183", + "geometry": { + "type": "Point", + "coordinates": [541177.3881000001, 6906139.0565] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE2", + "type": "Frame Rack", + "material": "Galvanised Steel", + "number_of_": 5, + "comments": null, + "documents": "../photos/57/k240p9.jpg", + "inspectors": null, + "inspection": "2010-03-13Z", + "constructi": null, + "record_cre": "2002-01-22Z", + "last_updat": null, + "update_dat": "2010-08-11Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": null, + "project_nu": null, + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 3, + "historic_c": 0e-11, + "funding_ba": null + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.184", + "geometry": { + "type": "Point", + "coordinates": [541079.9798999997, 6902441.659] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE3", + "type": "Hoop_Half", + "material": "Galvanised Steel", + "number_of_": 1, + "comments": null, + "documents": "../photos/57/x287p217.jpg", + "inspectors": null, + "inspection": "2009-11-13Z", + "constructi": null, + "record_cre": "2002-01-23Z", + "last_updat": null, + "update_dat": "2011-01-31Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": null, + "project_nu": null, + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 2, + "historic_c": 0e-11, + "funding_ba": null + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.185", + "geometry": { + "type": "Point", + "coordinates": [541084.5152000003, 6902440.3893] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE4", + "type": "Hoop_Half", + "material": "Galvanised Steel", + "number_of_": 1, + "comments": null, + "documents": "../photos/57/x287p216.jpg", + "inspectors": null, + "inspection": "2009-11-13Z", + "constructi": null, + "record_cre": "2002-01-23Z", + "last_updat": null, + "update_dat": "2011-01-31Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": null, + "project_nu": null, + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 2, + "historic_c": 0e-11, + "funding_ba": null + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.186", + "geometry": { + "type": "Point", + "coordinates": [540051.5334999999, 6896519.6045] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE9", + "type": "Wheel Rack", + "material": "Mild Steel", + "number_of_": 7, + "comments": null, + "documents": "../photos/44/e68p27.jpg", + "inspectors": null, + "inspection": "2009-01-06Z", + "constructi": null, + "record_cre": "2002-03-26Z", + "last_updat": null, + "update_dat": "2009-09-25Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": null, + "project_nu": null, + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 2, + "historic_c": 0e-11, + "funding_ba": null + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.187", + "geometry": { + "type": "Point", + "coordinates": [542732.8265000004, 6899438.8903] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE12", + "type": "Wheel Rack", + "material": "Mild Steel", + "number_of_": 0, + "comments": null, + "documents": "../photos/65/t17p70.jpg", + "inspectors": null, + "inspection": "2011-08-23Z", + "constructi": null, + "record_cre": "2002-05-17Z", + "last_updat": null, + "update_dat": "2011-08-25Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": null, + "project_nu": null, + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 2, + "historic_c": 0e-11, + "funding_ba": null + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.188", + "geometry": { + "type": "Point", + "coordinates": [544084.7986000003, 6893815.6749] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE13", + "type": "Wheel Rack", + "material": "Mild Steel", + "number_of_": 4, + "comments": null, + "documents": "../photos/65/j419p40.jpg", + "inspectors": null, + "inspection": "2011-08-08Z", + "constructi": null, + "record_cre": "2002-05-22Z", + "last_updat": null, + "update_dat": "2011-08-18Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": null, + "project_nu": null, + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 3, + "historic_c": 0e-11, + "funding_ba": null + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.189", + "geometry": { + "type": "Point", + "coordinates": [548628.5555999996, 6887007.4207] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE22", + "type": "Wheel Rack", + "material": "Mild Steel", + "number_of_": 5, + "comments": null, + "documents": "../photos/43/e60p180.jpg", + "inspectors": null, + "inspection": "2009-01-06Z", + "constructi": null, + "record_cre": "2002-05-31Z", + "last_updat": null, + "update_dat": "2009-09-25Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": null, + "project_nu": null, + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 2, + "historic_c": 0e-11, + "funding_ba": null + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.190", + "geometry": { + "type": "Point", + "coordinates": [546358.1944000004, 6888642.2379] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE33", + "type": "Wheel Rack", + "material": "Galvanised Steel", + "number_of_": 5, + "comments": null, + "documents": "../photos/22/h48p288.jpg", + "inspectors": null, + "inspection": "2009-11-30Z", + "constructi": null, + "record_cre": "2002-08-08Z", + "last_updat": null, + "update_dat": "2010-03-13Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": null, + "project_nu": null, + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 3, + "historic_c": 0e-11, + "funding_ba": null + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.191", + "geometry": { + "type": "Point", + "coordinates": [542441.9460000005, 6893724.6234] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE35", + "type": "Wheel Rack", + "material": "Galvanised Steel", + "number_of_": 5, + "comments": null, + "documents": "../photos/52/k211p124.jpg", + "inspectors": null, + "inspection": "2009-07-20Z", + "constructi": null, + "record_cre": "2002-08-26Z", + "last_updat": null, + "update_dat": "2009-08-06Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": null, + "project_nu": null, + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 3, + "historic_c": 0e-11, + "funding_ba": null + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.192", + "geometry": { + "type": "Point", + "coordinates": [542464.8942, 6893699.4385] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE36", + "type": "Wheel Rack", + "material": "Galvanised Steel", + "number_of_": 5, + "comments": null, + "documents": "../photos/52/k211p84.jpg", + "inspectors": null, + "inspection": "2009-07-20Z", + "constructi": null, + "record_cre": "2002-08-27Z", + "last_updat": null, + "update_dat": "2009-08-06Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": null, + "project_nu": null, + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 3, + "historic_c": 0e-11, + "funding_ba": null + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.193", + "geometry": { + "type": "Point", + "coordinates": [542551.1623, 6893894.5788] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE40", + "type": "Frame Rack", + "material": "Galvanised Steel", + "number_of_": 6, + "comments": null, + "documents": "../photos/52/k211p272.jpg", + "inspectors": null, + "inspection": "2009-07-21Z", + "constructi": null, + "record_cre": "2002-09-04Z", + "last_updat": null, + "update_dat": "2009-08-06Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": null, + "project_nu": null, + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 3, + "historic_c": 0e-11, + "funding_ba": null + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.194", + "geometry": { + "type": "Point", + "coordinates": [542751.4785000002, 6899404.6672] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE41", + "type": "Wheel Rack", + "material": "Galvanised Steel", + "number_of_": 0, + "comments": null, + "documents": "../photos/65/t17p38.jpg", + "inspectors": null, + "inspection": "2011-08-23Z", + "constructi": null, + "record_cre": "2002-09-13Z", + "last_updat": null, + "update_dat": "2011-08-25Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": null, + "project_nu": null, + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 2, + "historic_c": 0e-11, + "funding_ba": null + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.195", + "geometry": { + "type": "Point", + "coordinates": [541116.3936000001, 6896183.5929] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE1857", + "type": "Hoop_Half", + "material": "Stainless Steel", + "number_of_": 1, + "comments": null, + "documents": "../photos/69/R55p19.jpg", + "inspectors": null, + "inspection": "2012-09-11Z", + "constructi": null, + "record_cre": "2012-09-11Z", + "last_updat": null, + "update_dat": "2012-09-18Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": "TBA", + "project_nu": null, + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 1, + "historic_c": 0e-11, + "funding_ba": "Initial" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.196", + "geometry": { + "type": "Point", + "coordinates": [541132.5225, 6897142.0578] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE1858", + "type": "Hoop_Half", + "material": "Stainless Steel", + "number_of_": 1, + "comments": null, + "documents": "../photos/69/R55p21.jpg", + "inspectors": null, + "inspection": "2012-09-12Z", + "constructi": null, + "record_cre": "2012-09-12Z", + "last_updat": null, + "update_dat": "2012-09-18Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": "TBA", + "project_nu": null, + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 1, + "historic_c": 0e-11, + "funding_ba": "Initial" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.197", + "geometry": { + "type": "Point", + "coordinates": [540770.5629000003, 6898285.345] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE1859", + "type": "Hoop_Half", + "material": "Stainless Steel", + "number_of_": 0, + "comments": null, + "documents": "../photos/70/s11p15.jpg", + "inspectors": null, + "inspection": "2013-01-04Z", + "constructi": null, + "record_cre": "2012-09-12Z", + "last_updat": null, + "update_dat": "2013-01-15Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": "TBA", + "project_nu": null, + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 1, + "historic_c": 0e-11, + "funding_ba": "Initial" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.198", + "geometry": { + "type": "Point", + "coordinates": [541947.8715000004, 6897489.3371] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE1860", + "type": "Hoop_Half", + "material": "Stainless Steel", + "number_of_": 1, + "comments": null, + "documents": "../photos/69/R55p25.jpg", + "inspectors": null, + "inspection": "2012-09-12Z", + "constructi": null, + "record_cre": "2012-09-12Z", + "last_updat": null, + "update_dat": "2012-09-18Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": "TBA", + "project_nu": null, + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 1, + "historic_c": 0e-11, + "funding_ba": "Initial" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.199", + "geometry": { + "type": "Point", + "coordinates": [546433.7180000003, 6887743.6408] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE910", + "type": "Wheel Rack", + "material": "Galvanised Steel", + "number_of_": 6, + "comments": null, + "documents": "../photos/53/A128p262.jpg", + "inspectors": null, + "inspection": "2009-08-18Z", + "constructi": null, + "record_cre": "2009-08-18Z", + "last_updat": null, + "update_dat": "2011-01-31Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": null, + "project_nu": null, + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 3, + "historic_c": 0e-11, + "funding_ba": null + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.200", + "geometry": { + "type": "Point", + "coordinates": [543439.4046, 6896186.8922] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE1630", + "type": "Frame Rack", + "material": "Galvanised Steel", + "number_of_": 4, + "comments": null, + "documents": "../photos/65/x439p71.jpg", + "inspectors": null, + "inspection": "2011-09-22Z", + "constructi": "2011-05-16Z", + "record_cre": "2011-09-22Z", + "last_updat": null, + "update_dat": "2011-09-28Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": "TBA", + "project_nu": "WF48", + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 2, + "historic_c": 0e-11, + "funding_ba": "Capex" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.201", + "geometry": { + "type": "Point", + "coordinates": [542392.0175000001, 6902527.7715] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE1650", + "type": "Hoop_Big", + "material": "Stainless Steel", + "number_of_": 2, + "comments": null, + "documents": "../photos/66/x442p68.jpg", + "inspectors": null, + "inspection": "2011-10-04Z", + "constructi": "2011-03-08Z", + "record_cre": "2011-10-04Z", + "last_updat": null, + "update_dat": "2011-11-01Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": "TBA", + "project_nu": "JN35", + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 2, + "historic_c": 0e-11, + "funding_ba": "Capex" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.202", + "geometry": { + "type": "Point", + "coordinates": [542392.0751999998, 6902526.8017] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE1651", + "type": "Hoop_Big", + "material": "Stainless Steel", + "number_of_": 2, + "comments": null, + "documents": "../photos/66/x442p69.jpg", + "inspectors": null, + "inspection": "2011-10-04Z", + "constructi": "2011-03-08Z", + "record_cre": "2011-10-04Z", + "last_updat": null, + "update_dat": "2011-11-01Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": "TBA", + "project_nu": "JN35", + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 2, + "historic_c": 0e-11, + "funding_ba": "Capex" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.203", + "geometry": { + "type": "Point", + "coordinates": [542392.2236000001, 6902524.3422] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE1652", + "type": "Hoop_Big", + "material": "Stainless Steel", + "number_of_": 2, + "comments": null, + "documents": "../photos/66/x442p70.jpg", + "inspectors": null, + "inspection": "2011-10-04Z", + "constructi": "2011-03-08Z", + "record_cre": "2011-10-04Z", + "last_updat": null, + "update_dat": "2011-11-01Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": "TBA", + "project_nu": "JN35", + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 2, + "historic_c": 0e-11, + "funding_ba": "Capex" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.204", + "geometry": { + "type": "Point", + "coordinates": [542392.1906000003, 6902525.6719] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE1653", + "type": "Hoop_Big", + "material": "Stainless Steel", + "number_of_": 2, + "comments": null, + "documents": "../photos/66/x442p71.jpg", + "inspectors": null, + "inspection": "2011-10-04Z", + "constructi": "2011-03-08Z", + "record_cre": "2011-10-04Z", + "last_updat": null, + "update_dat": "2011-11-01Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": "TBA", + "project_nu": "JN35", + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 2, + "historic_c": 0e-11, + "funding_ba": "Capex" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.205", + "geometry": { + "type": "Point", + "coordinates": [542392.3142999997, 6902523.2724] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE1654", + "type": "Hoop_Big", + "material": "Stainless Steel", + "number_of_": 2, + "comments": null, + "documents": "../photos/66/x442p72.jpg", + "inspectors": null, + "inspection": "2011-10-04Z", + "constructi": "2011-03-08Z", + "record_cre": "2011-10-04Z", + "last_updat": null, + "update_dat": "2011-11-01Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": "TBA", + "project_nu": "JN35", + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 2, + "historic_c": 0e-11, + "funding_ba": "Capex" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.206", + "geometry": { + "type": "Point", + "coordinates": [542392.3307999996, 6902521.2728] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE1655", + "type": "Hoop_Big", + "material": "Stainless Steel", + "number_of_": 2, + "comments": null, + "documents": "../photos/66/x442p73.jpg", + "inspectors": null, + "inspection": "2011-10-04Z", + "constructi": "2011-03-08Z", + "record_cre": "2011-10-04Z", + "last_updat": null, + "update_dat": "2011-11-01Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": "TBA", + "project_nu": "JN35", + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 2, + "historic_c": 0e-11, + "funding_ba": "Capex" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.207", + "geometry": { + "type": "Point", + "coordinates": [542392.3307999996, 6902522.2626] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE1656", + "type": "Hoop_Big", + "material": "Stainless Steel", + "number_of_": 2, + "comments": null, + "documents": "../photos/66/x442p74.jpg", + "inspectors": null, + "inspection": "2011-10-04Z", + "constructi": "2011-03-08Z", + "record_cre": "2011-10-04Z", + "last_updat": null, + "update_dat": "2011-11-01Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": "TBA", + "project_nu": "JN35", + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 2, + "historic_c": 0e-11, + "funding_ba": "Capex" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.208", + "geometry": { + "type": "Point", + "coordinates": [542392.3472999996, 6902520.313] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE1657", + "type": "Hoop_Big", + "material": "Stainless Steel", + "number_of_": 2, + "comments": null, + "documents": "../photos/66/x442p75.jpg", + "inspectors": null, + "inspection": "2011-10-04Z", + "constructi": "2011-03-08Z", + "record_cre": "2011-10-04Z", + "last_updat": null, + "update_dat": "2011-11-01Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": "TBA", + "project_nu": "JN35", + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 2, + "historic_c": 0e-11, + "funding_ba": "Capex" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.209", + "geometry": { + "type": "Point", + "coordinates": [542392.3389999997, 6902519.3332] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE1658", + "type": "Hoop_Big", + "material": "Stainless Steel", + "number_of_": 2, + "comments": null, + "documents": "../photos/66/x442p76.jpg", + "inspectors": null, + "inspection": "2011-10-04Z", + "constructi": "2011-03-08Z", + "record_cre": "2011-10-04Z", + "last_updat": null, + "update_dat": "2011-11-01Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": "TBA", + "project_nu": "JN35", + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 2, + "historic_c": 0e-11, + "funding_ba": "Capex" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.210", + "geometry": { + "type": "Point", + "coordinates": [542392.3389999997, 6902518.1935] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE1659", + "type": "Hoop_Big", + "material": "Stainless Steel", + "number_of_": 2, + "comments": null, + "documents": "../photos/66/x442p77.jpg", + "inspectors": null, + "inspection": "2011-10-04Z", + "constructi": "2011-03-08Z", + "record_cre": "2011-10-04Z", + "last_updat": null, + "update_dat": "2011-11-01Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": "TBA", + "project_nu": "JN35", + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 2, + "historic_c": 0e-11, + "funding_ba": "Capex" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.211", + "geometry": { + "type": "Point", + "coordinates": [539664.5312999999, 6909697.4621] + }, + "geometry_name": "geom", + "properties": { + "status": "LOCKED", + "asset_numb": "BIKE1710", + "type": "Hoop_Big", + "material": "Galvanised Steel", + "number_of_": 2, + "comments": null, + "documents": "../photos/66/j502p92.jpg", + "inspectors": null, + "inspection": "2012-02-06Z", + "constructi": "2011-09-30Z", + "record_cre": "2012-02-06Z", + "last_updat": null, + "update_dat": "2012-02-07Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": "TBA", + "project_nu": "CNJ6", + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 1, + "historic_c": 0e-11, + "funding_ba": "Capex" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.212", + "geometry": { + "type": "Point", + "coordinates": [539664.3828999996, 6909696.2924] + }, + "geometry_name": "geom", + "properties": { + "status": "LOCKED", + "asset_numb": "BIKE1711", + "type": "Hoop_Big", + "material": "Galvanised Steel", + "number_of_": 2, + "comments": null, + "documents": "../photos/66/j502p93.jpg", + "inspectors": null, + "inspection": "2012-02-06Z", + "constructi": "2011-09-30Z", + "record_cre": "2012-02-06Z", + "last_updat": null, + "update_dat": "2012-02-07Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": "TBA", + "project_nu": "CNJ6", + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 1, + "historic_c": 0e-11, + "funding_ba": "Capex" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.213", + "geometry": { + "type": "Point", + "coordinates": [539664.2922, 6909695.2126] + }, + "geometry_name": "geom", + "properties": { + "status": "LOCKED", + "asset_numb": "BIKE1712", + "type": "Hoop_Big", + "material": "Galvanised Steel", + "number_of_": 2, + "comments": null, + "documents": "../photos/66/j502p94.jpg", + "inspectors": null, + "inspection": "2012-02-06Z", + "constructi": "2011-09-30Z", + "record_cre": "2012-02-06Z", + "last_updat": null, + "update_dat": "2012-02-07Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": "TBA", + "project_nu": "CNJ6", + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 1, + "historic_c": 0e-11, + "funding_ba": "Capex" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.214", + "geometry": { + "type": "Point", + "coordinates": [531975.4134, 6922291.6786] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE1890", + "type": "Other", + "material": "Galvanised Steel", + "number_of_": 1, + "comments": null, + "documents": "../photos/69/f29p126.jpg", + "inspectors": null, + "inspection": "2012-11-27Z", + "constructi": "2012-06-06Z", + "record_cre": "2012-11-27Z", + "last_updat": null, + "update_dat": "2012-12-21Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": "TBA", + "project_nu": null, + "file_numbe": "PN304552/03/DA2", + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 1, + "historic_c": 0e-11, + "funding_ba": "Contribute" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.215", + "geometry": { + "type": "Point", + "coordinates": [531974.7290000003, 6922291.8086] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE1891", + "type": "Other", + "material": "Galvanised Steel", + "number_of_": 1, + "comments": null, + "documents": "../photos/69/f29p127.jpg", + "inspectors": null, + "inspection": "2012-11-27Z", + "constructi": "2012-06-06Z", + "record_cre": "2012-11-27Z", + "last_updat": null, + "update_dat": "2012-12-21Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": "TBA", + "project_nu": null, + "file_numbe": "PN304552/03/DA2", + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 1, + "historic_c": 0e-11, + "funding_ba": "Contribute" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.216", + "geometry": { + "type": "Point", + "coordinates": [531974.0694000004, 6922291.9286] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE1892", + "type": "Other", + "material": "Galvanised Steel", + "number_of_": 1, + "comments": null, + "documents": "../photos/69/f29p128.jpg", + "inspectors": null, + "inspection": "2012-11-27Z", + "constructi": "2012-06-06Z", + "record_cre": "2012-11-27Z", + "last_updat": null, + "update_dat": "2012-12-21Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": "TBA", + "project_nu": null, + "file_numbe": "PN304552/03/DA2", + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 1, + "historic_c": 0e-11, + "funding_ba": "Contribute" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.217", + "geometry": { + "type": "Point", + "coordinates": [542215.1276000002, 6905440.1187] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE511", + "type": "Hoop_Half", + "material": "Stainless Steel", + "number_of_": 1, + "comments": null, + "documents": "../photos/36/x128p194.jpg", + "inspectors": null, + "inspection": "2009-11-12Z", + "constructi": null, + "record_cre": "2008-06-16Z", + "last_updat": null, + "update_dat": "2011-05-13Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": null, + "project_nu": null, + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 2, + "historic_c": 0e-11, + "funding_ba": null + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.218", + "geometry": { + "type": "Point", + "coordinates": [542224.6350999996, 6905330.471] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE512", + "type": "Hoop_Half", + "material": "Stainless Steel", + "number_of_": 1, + "comments": null, + "documents": "../photos/36/x128p218.jpg", + "inspectors": null, + "inspection": "2009-11-12Z", + "constructi": null, + "record_cre": "2008-06-16Z", + "last_updat": null, + "update_dat": "2011-05-13Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": "TBA", + "project_nu": null, + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 2, + "historic_c": 0e-11, + "funding_ba": null + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.219", + "geometry": { + "type": "Point", + "coordinates": [542231.2647000002, 6905153.627] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE513", + "type": "Hoop_Half", + "material": "Stainless Steel", + "number_of_": 1, + "comments": null, + "documents": "../photos/36/x128p233.jpg", + "inspectors": null, + "inspection": "2009-11-12Z", + "constructi": null, + "record_cre": "2008-06-16Z", + "last_updat": null, + "update_dat": "2011-05-13Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": null, + "project_nu": null, + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 2, + "historic_c": 0e-11, + "funding_ba": null + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.220", + "geometry": { + "type": "Point", + "coordinates": [538809.2641000003, 6915399.7015] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE1910", + "type": "Hoop_Half", + "material": "Stainless Steel", + "number_of_": 1, + "comments": null, + "documents": "../photos/70/s14p3.jpg", + "inspectors": null, + "inspection": "2013-01-10Z", + "constructi": null, + "record_cre": "2013-01-10Z", + "last_updat": null, + "update_dat": "2013-01-18Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": "TBA", + "project_nu": null, + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 1, + "historic_c": 0e-11, + "funding_ba": "Initial" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.221", + "geometry": { + "type": "Point", + "coordinates": [538808.8269999996, 6915399.7915] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE1911", + "type": "Hoop_Half", + "material": "Stainless Steel", + "number_of_": 1, + "comments": null, + "documents": "../photos/70/s14p6.jpg", + "inspectors": null, + "inspection": "2013-01-10Z", + "constructi": null, + "record_cre": "2013-01-10Z", + "last_updat": null, + "update_dat": "2013-01-18Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": "TBA", + "project_nu": null, + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 1, + "historic_c": 0e-11, + "funding_ba": "Initial" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.222", + "geometry": { + "type": "Point", + "coordinates": [546381.2992000002, 6889544.8541] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE1930", + "type": "Hoop_Big", + "material": "Stainless Steel", + "number_of_": 1, + "comments": null, + "documents": "../photos/70/f39p47.jpg", + "inspectors": null, + "inspection": "2013-02-26Z", + "constructi": "2012-11-23Z", + "record_cre": "2013-02-26Z", + "last_updat": null, + "update_dat": "2013-03-14Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": "TBA", + "project_nu": "30008", + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 1, + "historic_c": 0e-11, + "funding_ba": "Capex" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.223", + "geometry": { + "type": "Point", + "coordinates": [546381.8186999997, 6889543.8044] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE1931", + "type": "Hoop_Big", + "material": "Stainless Steel", + "number_of_": 1, + "comments": null, + "documents": "../photos/70/f39p48.jpg", + "inspectors": null, + "inspection": "2013-02-26Z", + "constructi": "2012-11-23Z", + "record_cre": "2013-02-26Z", + "last_updat": null, + "update_dat": "2013-03-14Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": "TBA", + "project_nu": "30008", + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 1, + "historic_c": 0e-11, + "funding_ba": "Capex" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.224", + "geometry": { + "type": "Point", + "coordinates": [546382.3629000001, 6889542.6246] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE1932", + "type": "Hoop_Big", + "material": "Stainless Steel", + "number_of_": 1, + "comments": null, + "documents": "../photos/70/f39p49.jpg", + "inspectors": null, + "inspection": "2013-02-26Z", + "constructi": "2012-11-23Z", + "record_cre": "2013-02-26Z", + "last_updat": null, + "update_dat": "2013-03-14Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": "TBA", + "project_nu": "30008", + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 1, + "historic_c": 0e-11, + "funding_ba": "Capex" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.225", + "geometry": { + "type": "Point", + "coordinates": [540626.9945, 6894259.9144] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE1950", + "type": "Hoop_Half", + "material": "Stainless Steel", + "number_of_": 1, + "comments": null, + "documents": "../photos/70/r2p13.jpg", + "inspectors": null, + "inspection": "2013-03-20Z", + "constructi": null, + "record_cre": "2013-03-20Z", + "last_updat": null, + "update_dat": "2013-03-21Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": "TBA", + "project_nu": null, + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 1, + "historic_c": 0e-11, + "funding_ba": "Initial" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.226", + "geometry": { + "type": "Point", + "coordinates": [540629.2620999999, 6894257.8748] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE1951", + "type": "Hoop_Half", + "material": "Stainless Steel", + "number_of_": 1, + "comments": null, + "documents": "../photos/70/r2p14.jpg", + "inspectors": null, + "inspection": "2013-03-20Z", + "constructi": null, + "record_cre": "2013-03-20Z", + "last_updat": null, + "update_dat": "2013-03-21Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": "TBA", + "project_nu": null, + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 1, + "historic_c": 0e-11, + "funding_ba": "Initial" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.227", + "geometry": { + "type": "Point", + "coordinates": [542105.2434999999, 6904264.1581] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE1030", + "type": "Hoop_Big", + "material": "Galvanised Steel", + "number_of_": 2, + "comments": null, + "documents": "../photos/55/x273p34.jpg", + "inspectors": null, + "inspection": "2010-01-07Z", + "constructi": "2009-12-17Z", + "record_cre": "2010-01-07Z", + "last_updat": null, + "update_dat": "2011-01-31Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": null, + "project_nu": "CHA2", + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 1, + "historic_c": 0e-11, + "funding_ba": "Capex" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.228", + "geometry": { + "type": "Point", + "coordinates": [542202.5362, 6904874.0539] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE1861", + "type": "Hoop_Half", + "material": "Stainless Steel", + "number_of_": 1, + "comments": null, + "documents": "../photos/69/R55p27.jpg", + "inspectors": null, + "inspection": "2012-09-12Z", + "constructi": null, + "record_cre": "2012-09-12Z", + "last_updat": null, + "update_dat": "2012-09-18Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": "TBA", + "project_nu": null, + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 1, + "historic_c": 0e-11, + "funding_ba": "Initial" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.229", + "geometry": { + "type": "Point", + "coordinates": [542462.7915000003, 6901720.2959] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE490", + "type": "Hoop_Big", + "material": "Stainless Steel", + "number_of_": 2, + "comments": null, + "documents": "../photos/36/k87p17.jpg", + "inspectors": null, + "inspection": "2009-11-13Z", + "constructi": null, + "record_cre": "2008-06-12Z", + "last_updat": null, + "update_dat": "2011-01-31Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": null, + "project_nu": null, + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 2, + "historic_c": 0e-11, + "funding_ba": null + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.230", + "geometry": { + "type": "Point", + "coordinates": [542461.9091999996, 6901720.1359] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE491", + "type": "Hoop_Big", + "material": "Stainless Steel", + "number_of_": 2, + "comments": null, + "documents": "../photos/36/k87p18.jpg", + "inspectors": null, + "inspection": "2009-11-13Z", + "constructi": null, + "record_cre": "2008-06-12Z", + "last_updat": null, + "update_dat": "2011-01-31Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": null, + "project_nu": null, + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 2, + "historic_c": 0e-11, + "funding_ba": null + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.231", + "geometry": { + "type": "Point", + "coordinates": [538808.2911, 6912710.1489] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE810", + "type": "Frame Rack", + "material": "Mild Steel", + "number_of_": 5, + "comments": null, + "documents": "../photos/49/e110p226.jpg", + "inspectors": null, + "inspection": "2009-10-07Z", + "constructi": null, + "record_cre": "2009-06-10Z", + "last_updat": null, + "update_dat": "2011-01-31Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": null, + "project_nu": null, + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 2, + "historic_c": 0e-11, + "funding_ba": null + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.232", + "geometry": { + "type": "Point", + "coordinates": [538258.4664000003, 6912599.9814] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE610", + "type": "Frame Rack", + "material": "Galvanised Steel", + "number_of_": 10, + "comments": null, + "documents": "../photos/43/j71p42.jpg", + "inspectors": null, + "inspection": "2009-10-07Z", + "constructi": null, + "record_cre": "2009-01-13Z", + "last_updat": null, + "update_dat": "2011-08-05Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": null, + "project_nu": "CFB1", + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 2, + "historic_c": 0e-11, + "funding_ba": "Capex" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.233", + "geometry": { + "type": "Point", + "coordinates": [533502.6509999996, 6919964.8923] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE750", + "type": "Hoop_Half", + "material": "Galvanised Steel", + "number_of_": 3, + "comments": null, + "documents": "../photos/47/x229p108.jpg", + "inspectors": null, + "inspection": "2009-09-02Z", + "constructi": null, + "record_cre": "2009-04-14Z", + "last_updat": null, + "update_dat": "2011-01-31Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": null, + "project_nu": null, + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 2, + "historic_c": 0e-11, + "funding_ba": "Contribute" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.234", + "geometry": { + "type": "Point", + "coordinates": [544368.6123000002, 6892924.3563] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE439", + "type": "Hoop_Big", + "material": "Stainless Steel", + "number_of_": 2, + "comments": null, + "documents": "../photos/54/k225p2.jpg", + "inspectors": null, + "inspection": "2009-10-22Z", + "constructi": null, + "record_cre": "2007-08-15Z", + "last_updat": null, + "update_dat": "2011-01-31Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": null, + "project_nu": null, + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 2, + "historic_c": 0e-11, + "funding_ba": null + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.235", + "geometry": { + "type": "Point", + "coordinates": [544452.8024000004, 6892862.9288] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE440", + "type": "Hoop_Big", + "material": "Stainless Steel", + "number_of_": 1, + "comments": null, + "documents": "../photos/33/w28p136.jpg", + "inspectors": null, + "inspection": "2009-10-01Z", + "constructi": null, + "record_cre": "2007-08-20Z", + "last_updat": null, + "update_dat": "2011-01-31Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": null, + "project_nu": null, + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 2, + "historic_c": 0e-11, + "funding_ba": null + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.236", + "geometry": { + "type": "Point", + "coordinates": [542335.3767999997, 6883261.2432] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE570", + "type": "Frame Rack", + "material": "Mild Steel", + "number_of_": 12, + "comments": null, + "documents": "../photos/45/k166p25.jpg", + "inspectors": null, + "inspection": "2010-01-12Z", + "constructi": null, + "record_cre": "2008-07-08Z", + "last_updat": null, + "update_dat": "2011-01-31Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": null, + "project_nu": null, + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 2, + "historic_c": 0e-11, + "funding_ba": null + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.237", + "geometry": { + "type": "Point", + "coordinates": [544549.4024, 6892831.8051] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE550", + "type": "Wheel Rack", + "material": "Galvanised Steel", + "number_of_": 5, + "comments": null, + "documents": "../photos/37/j22p17.jpg", + "inspectors": null, + "inspection": "2009-10-01Z", + "constructi": "2007-05-30Z", + "record_cre": "2008-07-07Z", + "last_updat": null, + "update_dat": "2011-01-31Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": null, + "project_nu": "W771", + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 2, + "historic_c": 0e-11, + "funding_ba": "Capex" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.238", + "geometry": { + "type": "Point", + "coordinates": [544612.6645999998, 6892791.5433] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE551", + "type": "Wheel Rack", + "material": "Galvanised Steel", + "number_of_": 5, + "comments": null, + "documents": "../photos/37/j22p108.jpg", + "inspectors": null, + "inspection": "2009-10-01Z", + "constructi": "2007-05-30Z", + "record_cre": "2008-07-07Z", + "last_updat": null, + "update_dat": "2011-01-31Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": null, + "project_nu": "W771", + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 2, + "historic_c": 0e-11, + "funding_ba": "Capex" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.239", + "geometry": { + "type": "Point", + "coordinates": [541662.9282, 6898739.6326] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE1524", + "type": "Hoop_Big", + "material": "Stainless Steel", + "number_of_": 1, + "comments": null, + "documents": "../photos/47/e104p137.jpg", + "inspectors": null, + "inspection": "2009-11-20Z", + "constructi": "2008-08-26Z", + "record_cre": "2009-05-08Z", + "last_updat": null, + "update_dat": "2011-05-13Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": null, + "project_nu": "CY38", + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 2, + "historic_c": 0e-11, + "funding_ba": "Capex" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.240", + "geometry": { + "type": "Point", + "coordinates": [541662.9528999999, 6898740.7124] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE1525", + "type": "Hoop_Big", + "material": "Stainless Steel", + "number_of_": 1, + "comments": null, + "documents": "../photos/47/e104p137.jpg", + "inspectors": null, + "inspection": "2009-11-20Z", + "constructi": "2008-08-26Z", + "record_cre": "2009-05-08Z", + "last_updat": null, + "update_dat": "2011-05-13Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": null, + "project_nu": "CY38", + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 2, + "historic_c": 0e-11, + "funding_ba": "Capex" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.241", + "geometry": { + "type": "Point", + "coordinates": [541662.8787000002, 6898739.1727] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE1526", + "type": "Hoop_Big", + "material": "Stainless Steel", + "number_of_": 1, + "comments": null, + "documents": "../photos/47/e104p137.jpg", + "inspectors": null, + "inspection": "2009-11-20Z", + "constructi": "2008-08-26Z", + "record_cre": "2009-05-08Z", + "last_updat": null, + "update_dat": "2011-05-13Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": null, + "project_nu": "CY38", + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 2, + "historic_c": 0e-11, + "funding_ba": "Capex" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.242", + "geometry": { + "type": "Point", + "coordinates": [541662.8539000005, 6898738.7328] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE1527", + "type": "Hoop_Big", + "material": "Stainless Steel", + "number_of_": 1, + "comments": null, + "documents": "../photos/47/e104p137.jpg", + "inspectors": null, + "inspection": "2009-11-20Z", + "constructi": "2008-08-26Z", + "record_cre": "2009-05-08Z", + "last_updat": null, + "update_dat": "2011-05-13Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": null, + "project_nu": "CY38", + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 2, + "historic_c": 0e-11, + "funding_ba": "Capex" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.243", + "geometry": { + "type": "Point", + "coordinates": [541662.9282, 6898741.0823] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE1528", + "type": "Hoop_Big", + "material": "Stainless Steel", + "number_of_": 1, + "comments": null, + "documents": "../photos/47/e104p137.jpg", + "inspectors": null, + "inspection": "2009-11-20Z", + "constructi": "2008-08-26Z", + "record_cre": "2009-05-08Z", + "last_updat": null, + "update_dat": "2011-05-13Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": null, + "project_nu": "CY38", + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 2, + "historic_c": 0e-11, + "funding_ba": "Capex" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.244", + "geometry": { + "type": "Point", + "coordinates": [541662.9528999999, 6898741.4822] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE1529", + "type": "Hoop_Big", + "material": "Stainless Steel", + "number_of_": 1, + "comments": null, + "documents": "../photos/47/e104p137.jpg", + "inspectors": null, + "inspection": "2009-11-20Z", + "constructi": "2008-08-26Z", + "record_cre": "2009-05-08Z", + "last_updat": null, + "update_dat": "2011-05-13Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": null, + "project_nu": "CY38", + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 2, + "historic_c": 0e-11, + "funding_ba": "Capex" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.245", + "geometry": { + "type": "Point", + "coordinates": [541662.8044999996, 6898738.3129] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE1530", + "type": "Hoop_Big", + "material": "Stainless Steel", + "number_of_": 1, + "comments": null, + "documents": "../photos/47/e104p137.jpg", + "inspectors": null, + "inspection": "2009-11-20Z", + "constructi": "2008-08-26Z", + "record_cre": "2009-05-08Z", + "last_updat": null, + "update_dat": "2011-05-13Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": null, + "project_nu": "CY38", + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 2, + "historic_c": 0e-11, + "funding_ba": "Capex" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.246", + "geometry": { + "type": "Point", + "coordinates": [541662.7796999998, 6898737.8929] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE1531", + "type": "Hoop_Big", + "material": "Stainless Steel", + "number_of_": 1, + "comments": null, + "documents": "../photos/47/e104p137.jpg", + "inspectors": null, + "inspection": "2009-11-20Z", + "constructi": "2008-08-26Z", + "record_cre": "2009-05-08Z", + "last_updat": null, + "update_dat": "2011-05-13Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": null, + "project_nu": "CY38", + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 2, + "historic_c": 0e-11, + "funding_ba": "Capex" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.247", + "geometry": { + "type": "Point", + "coordinates": [538936.0768999998, 6916514.3146] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE1570", + "type": "Hoop_Half", + "material": "Galvanised Steel", + "number_of_": 1, + "comments": null, + "documents": "../photos/64/x418p109.jpg", + "inspectors": null, + "inspection": "2011-07-04Z", + "constructi": "2011-05-20Z", + "record_cre": "2011-07-04Z", + "last_updat": null, + "update_dat": "2011-07-14Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": "TBA", + "project_nu": "WC08", + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 2, + "historic_c": 0e-11, + "funding_ba": "Capex" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.248", + "geometry": { + "type": "Point", + "coordinates": [538936.7696000002, 6916514.9645] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE1571", + "type": "Hoop_Half", + "material": "Galvanised Steel", + "number_of_": 1, + "comments": null, + "documents": "../photos/64/x418p110.jpg", + "inspectors": null, + "inspection": "2011-07-04Z", + "constructi": "2011-05-20Z", + "record_cre": "2011-07-04Z", + "last_updat": null, + "update_dat": "2011-07-14Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": "TBA", + "project_nu": "WC08", + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 2, + "historic_c": 0e-11, + "funding_ba": "Capex" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.249", + "geometry": { + "type": "Point", + "coordinates": [538937.5116999997, 6916515.5644] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE1572", + "type": "Hoop_Half", + "material": "Galvanised Steel", + "number_of_": 1, + "comments": null, + "documents": "../photos/64/x418p111.jpg", + "inspectors": null, + "inspection": "2011-07-04Z", + "constructi": "2011-05-20Z", + "record_cre": "2011-07-04Z", + "last_updat": null, + "update_dat": "2011-07-14Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": "TBA", + "project_nu": "WC08", + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 2, + "historic_c": 0e-11, + "funding_ba": "Capex" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.250", + "geometry": { + "type": "Point", + "coordinates": [542417.6125999996, 6902134.1317] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE1590", + "type": "Hoop_Big", + "material": "Stainless Steel", + "number_of_": 1, + "comments": "Asset associated with Projects JN29 & JN35", + "documents": "../photos/64/T4P39.jpg", + "inspectors": null, + "inspection": "2011-07-26Z", + "constructi": "2011-04-06Z", + "record_cre": "2011-07-26Z", + "last_updat": null, + "update_dat": "2012-09-15Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": "TBA", + "project_nu": "JN35", + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 1, + "historic_c": 0e-11, + "funding_ba": "Capex" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.251", + "geometry": { + "type": "Point", + "coordinates": [547712.0465000002, 6888558.235] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE230", + "type": "Wheel Rack", + "material": "Stainless Steel", + "number_of_": 10, + "comments": "double sided", + "documents": "../photos/25/k25p1.jpg", + "inspectors": null, + "inspection": "2009-11-26Z", + "constructi": "2006-05-25Z", + "record_cre": "2006-07-12Z", + "last_updat": null, + "update_dat": "2011-01-31Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": null, + "project_nu": "DBM5", + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 2, + "historic_c": 3500, + "funding_ba": "Capex" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.252", + "geometry": { + "type": "Point", + "coordinates": [530448.0274, 6914847.6639] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE590", + "type": "Wheel Rack", + "material": "Galvanised Steel", + "number_of_": 11, + "comments": null, + "documents": "../photos/41/e31p175.jpg", + "inspectors": null, + "inspection": "2009-09-23Z", + "constructi": null, + "record_cre": "2008-09-30Z", + "last_updat": null, + "update_dat": "2011-01-31Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": null, + "project_nu": null, + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 2, + "historic_c": 0e-11, + "funding_ba": null + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.253", + "geometry": { + "type": "Point", + "coordinates": [530449.9486999996, 6914859.5014] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE591", + "type": "Wheel Rack", + "material": "Galvanised Steel", + "number_of_": 11, + "comments": null, + "documents": "../photos/41/e31p183.jpg", + "inspectors": null, + "inspection": "2009-09-23Z", + "constructi": null, + "record_cre": "2008-09-30Z", + "last_updat": null, + "update_dat": "2011-01-31Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": null, + "project_nu": null, + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 2, + "historic_c": 0e-11, + "funding_ba": null + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.254", + "geometry": { + "type": "Point", + "coordinates": [546876.0828999998, 6887596.8507] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE630", + "type": "Hoop_Big", + "material": "Galvanised Steel", + "number_of_": 4, + "comments": null, + "documents": "../photos/45/k156p137.jpg", + "inspectors": null, + "inspection": "2009-02-10Z", + "constructi": null, + "record_cre": "2009-02-10Z", + "last_updat": null, + "update_dat": "2011-01-31Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": null, + "project_nu": null, + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 3, + "historic_c": 0e-11, + "funding_ba": null + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.255", + "geometry": { + "type": "Point", + "coordinates": [543681.7335000001, 6895107.4219] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE730", + "type": "Frame Rack", + "material": "Galvanised Steel", + "number_of_": 2, + "comments": "Relocated under Project No. DLW4 on 5/11/2009", + "documents": "../photos/59/A185p31.jpg", + "inspectors": null, + "inspection": "2010-06-01Z", + "constructi": null, + "record_cre": "2009-05-06Z", + "last_updat": null, + "update_dat": "2011-01-31Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": null, + "project_nu": "DLW4", + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 2, + "historic_c": 0e-11, + "funding_ba": null + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.256", + "geometry": { + "type": "Point", + "coordinates": [542403.1657999996, 6902320.7437] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE1455", + "type": "Hoop_Big", + "material": "Stainless Steel", + "number_of_": 2, + "comments": "Asset associated with Projects JN29 & JN35", + "documents": "../photos/63/j378p143.jpg", + "inspectors": null, + "inspection": "2011-03-08Z", + "constructi": "2010-12-21Z", + "record_cre": "2011-03-08Z", + "last_updat": null, + "update_dat": "2012-02-10Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": "251", + "project_nu": "JN35", + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 1, + "historic_c": 0e-11, + "funding_ba": "Capex" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.257", + "geometry": { + "type": "Point", + "coordinates": [542403.2483000001, 6902319.7539] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE1456", + "type": "Hoop_Big", + "material": "Stainless Steel", + "number_of_": 2, + "comments": "Asset associated with Projects JN29 & JN35", + "documents": "../photos/63/j378p144.jpg", + "inspectors": null, + "inspection": "2011-03-08Z", + "constructi": "2010-12-21Z", + "record_cre": "2011-03-08Z", + "last_updat": null, + "update_dat": "2012-02-10Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": "251", + "project_nu": "JN35", + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 1, + "historic_c": 0e-11, + "funding_ba": "Capex" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.258", + "geometry": { + "type": "Point", + "coordinates": [542403.2812999999, 6902317.6943] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE1457", + "type": "Hoop_Big", + "material": "Stainless Steel", + "number_of_": 2, + "comments": "Asset associated with Projects JN29 & JN35", + "documents": "../photos/63/j378p145.jpg", + "inspectors": null, + "inspection": "2011-03-08Z", + "constructi": "2010-12-21Z", + "record_cre": "2011-03-08Z", + "last_updat": null, + "update_dat": "2012-02-10Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": "251", + "project_nu": "JN35", + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 1, + "historic_c": 0e-11, + "funding_ba": "Capex" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.259", + "geometry": { + "type": "Point", + "coordinates": [542403.273, 6902318.7141] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE1458", + "type": "Hoop_Big", + "material": "Stainless Steel", + "number_of_": 2, + "comments": "Asset associated with Projects JN29 & JN35", + "documents": "../photos/63/j378p146.jpg", + "inspectors": null, + "inspection": "2011-03-08Z", + "constructi": "2010-12-21Z", + "record_cre": "2011-03-08Z", + "last_updat": null, + "update_dat": "2012-02-10Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": "251", + "project_nu": "JN35", + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 1, + "historic_c": 0e-11, + "funding_ba": "Capex" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.260", + "geometry": { + "type": "Point", + "coordinates": [544718.0135000004, 6892784.4547] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE1550", + "type": "Frame Rack", + "material": "Galvanised Steel", + "number_of_": 5, + "comments": null, + "documents": "../photos/64/j400p19.jpg", + "inspectors": null, + "inspection": "2011-06-07Z", + "constructi": "2011-02-10Z", + "record_cre": "2011-06-07Z", + "last_updat": null, + "update_dat": "2011-06-09Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": "TBA", + "project_nu": "CLM6", + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 1, + "historic_c": 0e-11, + "funding_ba": "Capex" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.261", + "geometry": { + "type": "Point", + "coordinates": [545632.6754999999, 6891172.2529] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE1610", + "type": "Hitching Rail", + "material": "Galvanised Steel", + "number_of_": 4, + "comments": null, + "documents": "../photos/65/A267p10.jpg", + "inspectors": null, + "inspection": "2011-09-21Z", + "constructi": "2011-05-20Z", + "record_cre": "2011-09-21Z", + "last_updat": null, + "update_dat": "2011-09-27Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": "TBA", + "project_nu": "WF35", + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 2, + "historic_c": 0e-11, + "funding_ba": "Capex" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.262", + "geometry": { + "type": "Point", + "coordinates": [542872.1316999998, 6897240.8477] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE1790", + "type": "Other", + "material": "Stainless Steel", + "number_of_": 2, + "comments": null, + "documents": "../photos/67/j535p25.jpg", + "inspectors": null, + "inspection": "2012-05-09Z", + "constructi": "2011-11-04Z", + "record_cre": "2012-05-09Z", + "last_updat": null, + "update_dat": "2012-05-15Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": "TBA", + "project_nu": "B789", + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 1, + "historic_c": 0e-11, + "funding_ba": "Capex" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.263", + "geometry": { + "type": "Point", + "coordinates": [542873.0305000003, 6897237.0984] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE1791", + "type": "Other", + "material": "Stainless Steel", + "number_of_": 2, + "comments": null, + "documents": "../photos/67/j535p26.jpg", + "inspectors": null, + "inspection": "2012-05-09Z", + "constructi": "2011-11-04Z", + "record_cre": "2012-05-09Z", + "last_updat": null, + "update_dat": "2012-05-15Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": "TBA", + "project_nu": "B789", + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 1, + "historic_c": 0e-11, + "funding_ba": "Capex" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.264", + "geometry": { + "type": "Point", + "coordinates": [542873.6407000003, 6897234.8589] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE1792", + "type": "Other", + "material": "Stainless Steel", + "number_of_": 2, + "comments": null, + "documents": "../photos/67/j535p27.jpg", + "inspectors": null, + "inspection": "2012-05-09Z", + "constructi": "2011-11-04Z", + "record_cre": "2012-05-09Z", + "last_updat": null, + "update_dat": "2012-05-15Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": "TBA", + "project_nu": "B789", + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 1, + "historic_c": 0e-11, + "funding_ba": "Capex" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.265", + "geometry": { + "type": "Point", + "coordinates": [542874.6715000002, 6897231.3996] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE1793", + "type": "Other", + "material": "Stainless Steel", + "number_of_": 2, + "comments": null, + "documents": "../photos/67/j535p28.jpg", + "inspectors": null, + "inspection": "2012-05-09Z", + "constructi": "2011-11-04Z", + "record_cre": "2012-05-09Z", + "last_updat": null, + "update_dat": "2012-05-15Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": "TBA", + "project_nu": "B789", + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 1, + "historic_c": 0e-11, + "funding_ba": "Capex" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.266", + "geometry": { + "type": "Point", + "coordinates": [542849.5050999997, 6897186.6287] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE1794", + "type": "Other", + "material": "Stainless Steel", + "number_of_": 2, + "comments": null, + "documents": "../photos/67/j535p33.jpg", + "inspectors": null, + "inspection": "2012-05-10Z", + "constructi": "2011-11-04Z", + "record_cre": "2012-05-10Z", + "last_updat": null, + "update_dat": "2012-05-15Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": "TBA", + "project_nu": "B789", + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 1, + "historic_c": 0e-11, + "funding_ba": "Capex" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.267", + "geometry": { + "type": "Point", + "coordinates": [542849.2001, 6897187.8484] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE1795", + "type": "Other", + "material": "Stainless Steel", + "number_of_": 2, + "comments": null, + "documents": "../photos/67/j535p34.jpg", + "inspectors": null, + "inspection": "2012-05-10Z", + "constructi": "2011-11-04Z", + "record_cre": "2012-05-10Z", + "last_updat": null, + "update_dat": "2012-05-15Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": "TBA", + "project_nu": "B789", + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 1, + "historic_c": 0e-11, + "funding_ba": "Capex" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.268", + "geometry": { + "type": "Point", + "coordinates": [542848.9774000002, 6897189.0182] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE1796", + "type": "Other", + "material": "Stainless Steel", + "number_of_": 2, + "comments": null, + "documents": "../photos/67/j535p35.jpg", + "inspectors": null, + "inspection": "2012-05-10Z", + "constructi": "2011-11-04Z", + "record_cre": "2012-05-10Z", + "last_updat": null, + "update_dat": "2012-05-15Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": "TBA", + "project_nu": "B789", + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 1, + "historic_c": 0e-11, + "funding_ba": "Capex" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.269", + "geometry": { + "type": "Point", + "coordinates": [542831.5209999997, 6897269.0319] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE1797", + "type": "Other", + "material": "Stainless Steel", + "number_of_": 2, + "comments": null, + "documents": "../photos/67/j535p47.jpg", + "inspectors": null, + "inspection": "2012-05-10Z", + "constructi": "2011-11-04Z", + "record_cre": "2012-05-10Z", + "last_updat": null, + "update_dat": "2012-05-15Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": "TBA", + "project_nu": "B789", + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 1, + "historic_c": 0e-11, + "funding_ba": "Capex" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.270", + "geometry": { + "type": "Point", + "coordinates": [542831.7023999998, 6897268.2821] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE1798", + "type": "Other", + "material": "Stainless Steel", + "number_of_": 2, + "comments": null, + "documents": "../photos/67/j535p48.jpg", + "inspectors": null, + "inspection": "2012-05-10Z", + "constructi": "2011-11-04Z", + "record_cre": "2012-05-10Z", + "last_updat": null, + "update_dat": "2012-05-15Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": "TBA", + "project_nu": "B789", + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 1, + "historic_c": 0e-11, + "funding_ba": "Capex" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.271", + "geometry": { + "type": "Point", + "coordinates": [542831.9661999997, 6897266.7824] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE1799", + "type": "Other", + "material": "Stainless Steel", + "number_of_": 2, + "comments": null, + "documents": "../photos/67/j535p49.jpg", + "inspectors": null, + "inspection": "2012-05-10Z", + "constructi": "2011-11-04Z", + "record_cre": "2012-05-10Z", + "last_updat": null, + "update_dat": "2012-05-15Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": "TBA", + "project_nu": "B789", + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 1, + "historic_c": 0e-11, + "funding_ba": "Capex" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.272", + "geometry": { + "type": "Point", + "coordinates": [542832.3043, 6897265.7326] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE1800", + "type": "Other", + "material": "Stainless Steel", + "number_of_": 2, + "comments": null, + "documents": "../photos/67/j535p50.jpg", + "inspectors": null, + "inspection": "2012-05-10Z", + "constructi": "2011-11-04Z", + "record_cre": "2012-05-10Z", + "last_updat": null, + "update_dat": "2012-05-15Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": "TBA", + "project_nu": "B789", + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 1, + "historic_c": 0e-11, + "funding_ba": "Capex" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.273", + "geometry": { + "type": "Point", + "coordinates": [533631.8963000001, 6919617.153] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE1870", + "type": "Frame Rack", + "material": "Stainless Steel", + "number_of_": 1, + "comments": null, + "documents": "../photos/69/f26p5.jpg", + "inspectors": null, + "inspection": "2012-11-05Z", + "constructi": "2012-08-13Z", + "record_cre": "2012-11-05Z", + "last_updat": null, + "update_dat": "2012-11-07Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": "TBA", + "project_nu": "00991", + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 1, + "historic_c": 0e-11, + "funding_ba": "Capex" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.274", + "geometry": { + "type": "Point", + "coordinates": [533633.0920000002, 6919617.7029] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE1871", + "type": "Frame Rack", + "material": "Stainless Steel", + "number_of_": 1, + "comments": null, + "documents": "../photos/69/f26p6.jpg", + "inspectors": null, + "inspection": "2012-11-05Z", + "constructi": "2012-08-13Z", + "record_cre": "2012-11-05Z", + "last_updat": null, + "update_dat": "2012-11-07Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": "TBA", + "project_nu": "00991", + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 1, + "historic_c": 0e-11, + "funding_ba": "Capex" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.275", + "geometry": { + "type": "Point", + "coordinates": [537725.7931000004, 6904679.9635] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE59", + "type": "Wheel Rack", + "material": "Galvanised Steel", + "number_of_": 10, + "comments": null, + "documents": "../photos/48/k184p17.jpg", + "inspectors": null, + "inspection": "2009-05-15Z", + "constructi": null, + "record_cre": "2002-12-11Z", + "last_updat": null, + "update_dat": "2011-01-31Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": null, + "project_nu": null, + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 3, + "historic_c": 0e-11, + "funding_ba": null + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.276", + "geometry": { + "type": "Point", + "coordinates": [545869.6776, 6890616.0261] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE16", + "type": "Hitching Rail", + "material": "Mild Steel", + "number_of_": 6, + "comments": null, + "documents": "../photos/24/qa4p5.jpg", + "inspectors": null, + "inspection": "2006-06-26Z", + "constructi": null, + "record_cre": "2002-05-28Z", + "last_updat": null, + "update_dat": "2011-01-31Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": null, + "project_nu": "W457", + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 3, + "historic_c": 0e-11, + "funding_ba": "Capex" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.277", + "geometry": { + "type": "Point", + "coordinates": [531700.9258000003, 6908912.8619] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE110", + "type": "Frame Rack", + "material": "Galvanised Steel", + "number_of_": 9, + "comments": null, + "documents": "../photos/18/f150p75.jpg", + "inspectors": null, + "inspection": "2009-09-25Z", + "constructi": null, + "record_cre": "2005-10-17Z", + "last_updat": null, + "update_dat": "2010-03-13Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": null, + "project_nu": null, + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 2, + "historic_c": 0e-11, + "funding_ba": null + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.278", + "geometry": { + "type": "Point", + "coordinates": [532831.4639999997, 6903923.2575] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE170", + "type": "Wheel Rack", + "material": "Galvanised Steel", + "number_of_": 7, + "comments": null, + "documents": "../photos/57/x290p77.jpg", + "inspectors": null, + "inspection": "2010-02-26Z", + "constructi": null, + "record_cre": "2006-03-08Z", + "last_updat": null, + "update_dat": "2011-01-31Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": null, + "project_nu": "CD96", + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 2, + "historic_c": 0e-11, + "funding_ba": "Capex" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.279", + "geometry": { + "type": "Point", + "coordinates": [532833.2862999998, 6903923.2075] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE171", + "type": "Wheel Rack", + "material": "Galvanised Steel", + "number_of_": 7, + "comments": null, + "documents": "../photos/57/x290p78.jpg", + "inspectors": null, + "inspection": "2010-02-26Z", + "constructi": null, + "record_cre": "2006-03-08Z", + "last_updat": null, + "update_dat": "2011-01-31Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": null, + "project_nu": "CD96", + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 3, + "historic_c": 0e-11, + "funding_ba": "Capex" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.280", + "geometry": { + "type": "Point", + "coordinates": [543855.4568999996, 6894541.6571] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE270", + "type": "Wheel Rack", + "material": "Galvanised Steel", + "number_of_": 8, + "comments": null, + "documents": "../photos/27/S6p8.jpg", + "inspectors": null, + "inspection": "2009-11-23Z", + "constructi": "2006-05-29Z", + "record_cre": "2006-09-15Z", + "last_updat": null, + "update_dat": "2011-01-31Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": null, + "project_nu": "DDD7", + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 2, + "historic_c": 0e-11, + "funding_ba": "Capex" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.281", + "geometry": { + "type": "Point", + "coordinates": [543853.5521, 6894469.5318] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE271", + "type": "Frame Rack", + "material": "Galvanised Steel", + "number_of_": 8, + "comments": null, + "documents": "../photos/50/e117p6.jpg", + "inspectors": null, + "inspection": "2009-11-23Z", + "constructi": "2006-05-29Z", + "record_cre": "2006-09-15Z", + "last_updat": null, + "update_dat": "2011-01-31Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": null, + "project_nu": "DDD7", + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 2, + "historic_c": 0e-11, + "funding_ba": "Capex" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.282", + "geometry": { + "type": "Point", + "coordinates": [535643.9896, 6893503.1984] + }, + "geometry_name": "geom", + "properties": { + "status": "LOCKED", + "asset_numb": "BIKE650", + "type": "Wheel Rack", + "material": "Galvanised Steel", + "number_of_": 5, + "comments": null, + "documents": "../photos/45/x223p105.jpg", + "inspectors": null, + "inspection": "2009-02-26Z", + "constructi": null, + "record_cre": "2009-02-26Z", + "last_updat": null, + "update_dat": "2011-01-31Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": null, + "project_nu": null, + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 2, + "historic_c": 0e-11, + "funding_ba": null + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.283", + "geometry": { + "type": "Point", + "coordinates": [546940.0871000001, 6888513.0242] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE830", + "type": "Wheel Rack", + "material": "Galvanised Steel", + "number_of_": 9, + "comments": null, + "documents": "../photos/50/k202p65.jpg", + "inspectors": null, + "inspection": "2009-11-30Z", + "constructi": null, + "record_cre": "2009-06-26Z", + "last_updat": null, + "update_dat": "2011-01-31Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": null, + "project_nu": null, + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 2, + "historic_c": 0e-11, + "funding_ba": null + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.284", + "geometry": { + "type": "Point", + "coordinates": [546946.1643000003, 6888515.1537] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE831", + "type": "Wheel Rack", + "material": "Galvanised Steel", + "number_of_": 9, + "comments": null, + "documents": "../photos/50/k202p66.jpg", + "inspectors": null, + "inspection": "2009-11-30Z", + "constructi": null, + "record_cre": "2009-06-26Z", + "last_updat": null, + "update_dat": "2011-01-31Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": null, + "project_nu": null, + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 2, + "historic_c": 0e-11, + "funding_ba": null + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.285", + "geometry": { + "type": "Point", + "coordinates": [538931.3026, 6909684.9647] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE850", + "type": "Wheel Rack", + "material": "Mild Steel", + "number_of_": 10, + "comments": null, + "documents": "../photos/51/v34p73.jpg", + "inspectors": null, + "inspection": "2009-07-14Z", + "constructi": null, + "record_cre": "2009-07-14Z", + "last_updat": null, + "update_dat": "2011-01-31Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": null, + "project_nu": null, + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 3, + "historic_c": 0e-11, + "funding_ba": null + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.286", + "geometry": { + "type": "Point", + "coordinates": [538925.1017000005, 6909671.6474] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE851", + "type": "Wheel Rack", + "material": "Mild Steel", + "number_of_": 10, + "comments": null, + "documents": "../photos/51/v34p74.jpg", + "inspectors": null, + "inspection": "2009-07-14Z", + "constructi": null, + "record_cre": "2009-07-14Z", + "last_updat": null, + "update_dat": "2011-01-31Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": null, + "project_nu": null, + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 3, + "historic_c": 0e-11, + "funding_ba": null + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.287", + "geometry": { + "type": "Point", + "coordinates": [542153.0198999997, 6895579.6058] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE890", + "type": "Wheel Rack", + "material": "Galvanised Steel", + "number_of_": 6, + "comments": null, + "documents": "../photos/52/x250p285.jpg", + "inspectors": null, + "inspection": "2009-07-27Z", + "constructi": null, + "record_cre": "2009-07-27Z", + "last_updat": null, + "update_dat": "2011-01-31Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": null, + "project_nu": null, + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 2, + "historic_c": 0e-11, + "funding_ba": null + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.288", + "geometry": { + "type": "Point", + "coordinates": [541219.0790999997, 6906070.4404] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE1390", + "type": "Frame Rack", + "material": "Other", + "number_of_": 1, + "comments": null, + "documents": "../photos/63/j365p50.jpg", + "inspectors": null, + "inspection": "2011-02-10Z", + "constructi": null, + "record_cre": "2011-02-10Z", + "last_updat": null, + "update_dat": "2011-02-17Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": "TBA", + "project_nu": null, + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 1, + "historic_c": 0e-11, + "funding_ba": "Initial" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.289", + "geometry": { + "type": "Point", + "coordinates": [541220.2088000001, 6906069.4706] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE1391", + "type": "Frame Rack", + "material": "Other", + "number_of_": 1, + "comments": null, + "documents": "../photos/63/j365p51.jpg", + "inspectors": null, + "inspection": "2011-02-10Z", + "constructi": null, + "record_cre": "2011-02-10Z", + "last_updat": null, + "update_dat": "2011-02-17Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": "TBA", + "project_nu": null, + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 1, + "historic_c": 0e-11, + "funding_ba": "Initial" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.290", + "geometry": { + "type": "Point", + "coordinates": [541221.1818000004, 6906068.7608] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE1392", + "type": "Frame Rack", + "material": "Other", + "number_of_": 1, + "comments": null, + "documents": "../photos/63/j365p52.jpg", + "inspectors": null, + "inspection": "2011-02-10Z", + "constructi": null, + "record_cre": "2011-02-10Z", + "last_updat": null, + "update_dat": "2011-02-17Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": "TBA", + "project_nu": null, + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 1, + "historic_c": 0e-11, + "funding_ba": "Initial" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.291", + "geometry": { + "type": "Point", + "coordinates": [541222.4929, 6906068.2109] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE1393", + "type": "Frame Rack", + "material": "Other", + "number_of_": 1, + "comments": null, + "documents": "../photos/63/j365p53.jpg", + "inspectors": null, + "inspection": "2011-02-10Z", + "constructi": null, + "record_cre": "2011-02-10Z", + "last_updat": null, + "update_dat": "2011-02-17Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": "TBA", + "project_nu": null, + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 1, + "historic_c": 0e-11, + "funding_ba": "Initial" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.292", + "geometry": { + "type": "Point", + "coordinates": [524230.1166000003, 6929044.3741] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE1970", + "type": "Wheel Rack", + "material": "Galvanised Steel", + "number_of_": 5, + "comments": null, + "documents": "../photos/70/k10p37.jpg", + "inspectors": null, + "inspection": "2013-03-12Z", + "constructi": null, + "record_cre": "2013-03-12Z", + "last_updat": null, + "update_dat": "2013-03-24Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": "TBA", + "project_nu": null, + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 1, + "historic_c": 0e-11, + "funding_ba": "Initial" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.293", + "geometry": { + "type": "Point", + "coordinates": [524187.23000000045, 6929051.8726] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE1971", + "type": "Wheel Rack", + "material": "Galvanised Steel", + "number_of_": 5, + "comments": null, + "documents": "../photos/70/k10p68.jpg", + "inspectors": null, + "inspection": "2013-03-12Z", + "constructi": null, + "record_cre": "2013-03-12Z", + "last_updat": null, + "update_dat": "2013-03-24Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": "TBA", + "project_nu": null, + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 1, + "historic_c": 0e-11, + "funding_ba": "Initial" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.294", + "geometry": { + "type": "Point", + "coordinates": [537511.4835999999, 6894208.005] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE1770", + "type": "Hoop_Big", + "material": "Stainless Steel", + "number_of_": 2, + "comments": null, + "documents": "../photos/67/t85p37.jpg", + "inspectors": null, + "inspection": "2012-03-12Z", + "constructi": "2011-12-06Z", + "record_cre": "2012-03-12Z", + "last_updat": null, + "update_dat": "2012-07-05Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": "TBA", + "project_nu": "CLS1", + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 1, + "historic_c": 0e-11, + "funding_ba": "Capex" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.295", + "geometry": { + "type": "Point", + "coordinates": [537511.6073000003, 6894208.5249] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE1771", + "type": "Hoop_Big", + "material": "Stainless Steel", + "number_of_": 2, + "comments": null, + "documents": "../photos/67/t85p37.jpg", + "inspectors": null, + "inspection": "2012-03-12Z", + "constructi": "2011-12-06Z", + "record_cre": "2012-03-12Z", + "last_updat": null, + "update_dat": "2012-07-05Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": "TBA", + "project_nu": "CLS1", + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 1, + "historic_c": 0e-11, + "funding_ba": "Capex" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.296", + "geometry": { + "type": "Point", + "coordinates": [537511.3682000004, 6894207.4451] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE1772", + "type": "Hoop_Big", + "material": "Stainless Steel", + "number_of_": 2, + "comments": null, + "documents": "../photos/67/t85p37.jpg", + "inspectors": null, + "inspection": "2012-03-12Z", + "constructi": "2011-12-06Z", + "record_cre": "2012-03-12Z", + "last_updat": null, + "update_dat": "2012-07-05Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": "TBA", + "project_nu": "CLS1", + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 1, + "historic_c": 0e-11, + "funding_ba": "Capex" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.297", + "geometry": { + "type": "Point", + "coordinates": [546438.2533, 6889311.8916] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE1810", + "type": "Frame Rack", + "material": "Stainless Steel", + "number_of_": 1, + "comments": null, + "documents": "../photos/62/x371p52.jpg", + "inspectors": null, + "inspection": "2010-11-24Z", + "constructi": null, + "record_cre": "2010-11-24Z", + "last_updat": null, + "update_dat": "2012-11-05Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": "TBA", + "project_nu": null, + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 2, + "historic_c": 0e-11, + "funding_ba": "Initial" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.298", + "geometry": { + "type": "Point", + "coordinates": [546438.3852000004, 6889312.3315] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE1811", + "type": "Frame Rack", + "material": "Stainless Steel", + "number_of_": 1, + "comments": null, + "documents": "../photos/62/x371p52.jpg", + "inspectors": null, + "inspection": "2010-11-24Z", + "constructi": null, + "record_cre": "2010-11-24Z", + "last_updat": null, + "update_dat": "2012-11-05Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": "TBA", + "project_nu": null, + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 2, + "historic_c": 0e-11, + "funding_ba": "Initial" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.299", + "geometry": { + "type": "Point", + "coordinates": [542436.0007999996, 6901932.8926] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE1812", + "type": "Hoop_Half", + "material": "Galvanised Steel", + "number_of_": 12, + "comments": null, + "documents": "../photos/48/A101p2.jpg", + "inspectors": null, + "inspection": "2009-05-13Z", + "constructi": null, + "record_cre": "2006-05-18Z", + "last_updat": null, + "update_dat": "2012-11-05Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": "TBA", + "project_nu": null, + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 2, + "historic_c": 0e-11, + "funding_ba": "Initial" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.300", + "geometry": { + "type": "Point", + "coordinates": [542435.9183, 6901931.7029] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE1813", + "type": "Hoop_Half", + "material": "Galvanised Steel", + "number_of_": 12, + "comments": null, + "documents": "../photos/48/A101p2.jpg", + "inspectors": null, + "inspection": "2009-05-13Z", + "constructi": null, + "record_cre": "2006-05-18Z", + "last_updat": null, + "update_dat": "2012-11-05Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": "TBA", + "project_nu": null, + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 2, + "historic_c": 0e-11, + "funding_ba": "Initial" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.301", + "geometry": { + "type": "Point", + "coordinates": [542435.8606000002, 6901931.153] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE1814", + "type": "Hoop_Half", + "material": "Galvanised Steel", + "number_of_": 12, + "comments": null, + "documents": "../photos/48/A101p2.jpg", + "inspectors": null, + "inspection": "2009-05-13Z", + "constructi": null, + "record_cre": "2006-05-18Z", + "last_updat": null, + "update_dat": "2012-11-05Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": "TBA", + "project_nu": null, + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 2, + "historic_c": 0e-11, + "funding_ba": "Initial" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.302", + "geometry": { + "type": "Point", + "coordinates": [542435.8441000003, 6901930.5431] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE1815", + "type": "Hoop_Half", + "material": "Galvanised Steel", + "number_of_": 12, + "comments": null, + "documents": "../photos/48/A101p2.jpg", + "inspectors": null, + "inspection": "2009-05-13Z", + "constructi": null, + "record_cre": "2006-05-18Z", + "last_updat": null, + "update_dat": "2012-11-05Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": "TBA", + "project_nu": null, + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 2, + "historic_c": 0e-11, + "funding_ba": "Initial" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.303", + "geometry": { + "type": "Point", + "coordinates": [542435.8194000004, 6901930.0332] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE1816", + "type": "Hoop_Half", + "material": "Galvanised Steel", + "number_of_": 12, + "comments": null, + "documents": "../photos/48/A101p2.jpg", + "inspectors": null, + "inspection": "2009-05-13Z", + "constructi": null, + "record_cre": "2006-05-18Z", + "last_updat": null, + "update_dat": "2012-11-05Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": "TBA", + "project_nu": null, + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 2, + "historic_c": 0e-11, + "funding_ba": "Initial" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.304", + "geometry": { + "type": "Point", + "coordinates": [533502.3788999999, 6919965.1822] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE1817", + "type": "Hoop_Half", + "material": "Galvanised Steel", + "number_of_": 3, + "comments": null, + "documents": "../photos/47/x229p108.jpg", + "inspectors": null, + "inspection": "2009-09-02Z", + "constructi": null, + "record_cre": "2009-04-14Z", + "last_updat": null, + "update_dat": "2012-11-05Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": "TBA", + "project_nu": null, + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 2, + "historic_c": 0e-11, + "funding_ba": "Contribute" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.305", + "geometry": { + "type": "Point", + "coordinates": [533502.9231000002, 6919964.6223] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE1818", + "type": "Hoop_Half", + "material": "Galvanised Steel", + "number_of_": 3, + "comments": null, + "documents": "../photos/47/x229p108.jpg", + "inspectors": null, + "inspection": "2009-09-02Z", + "constructi": null, + "record_cre": "2009-04-14Z", + "last_updat": null, + "update_dat": "2012-11-05Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": "TBA", + "project_nu": null, + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 2, + "historic_c": 0e-11, + "funding_ba": "Contribute" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.306", + "geometry": { + "type": "Point", + "coordinates": [542365.9441, 6902775.7011] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE1419", + "type": "Hoop_Big", + "material": "Stainless Steel", + "number_of_": 2, + "comments": "Asset associated with Projects JN29 & JN35", + "documents": "../photos/63/x386p299.jpg", + "inspectors": null, + "inspection": "2011-03-10Z", + "constructi": "2010-09-24Z", + "record_cre": "2011-03-10Z", + "last_updat": null, + "update_dat": "2012-02-10Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": "251", + "project_nu": "JN35", + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 2, + "historic_c": 0e-11, + "funding_ba": "Capex" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.307", + "geometry": { + "type": "Point", + "coordinates": [542417.5219, 6902132.9419] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE1836", + "type": "Hoop_Big", + "material": "Stainless Steel", + "number_of_": 1, + "comments": "Asset associated with Projects JN29 & JN35", + "documents": "../photos/64/T4P39.jpg", + "inspectors": null, + "inspection": "2011-07-26Z", + "constructi": "2011-07-26Z", + "record_cre": "2012-09-15Z", + "last_updat": null, + "update_dat": "2012-09-15Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": "TBA", + "project_nu": "JN35", + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 1, + "historic_c": 0e-11, + "funding_ba": "Capex" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.308", + "geometry": { + "type": "Point", + "coordinates": [542417.4806000004, 6902131.8121] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE1837", + "type": "Hoop_Big", + "material": "Stainless Steel", + "number_of_": 1, + "comments": "Asset associated with Projects JN29 & JN35", + "documents": "../photos/64/T4P39.jpg", + "inspectors": null, + "inspection": "2011-07-26Z", + "constructi": "2011-07-26Z", + "record_cre": "2012-09-15Z", + "last_updat": null, + "update_dat": "2012-09-15Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": "TBA", + "project_nu": "JN35", + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 1, + "historic_c": 0e-11, + "funding_ba": "Capex" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.309", + "geometry": { + "type": "Point", + "coordinates": [552717.7769999998, 6884044.5737] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE1850", + "type": "Hoop_Half", + "material": "Stainless Steel", + "number_of_": 1, + "comments": null, + "documents": "../photos/69/R55p1.jpg", + "inspectors": null, + "inspection": "2012-09-11Z", + "constructi": null, + "record_cre": "2012-09-11Z", + "last_updat": null, + "update_dat": "2012-09-18Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": "TBA", + "project_nu": null, + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 1, + "historic_c": 0e-11, + "funding_ba": "Initial" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.310", + "geometry": { + "type": "Point", + "coordinates": [552982.5510999998, 6883998.3131] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE1851", + "type": "Hoop_Half", + "material": "Stainless Steel", + "number_of_": 1, + "comments": null, + "documents": "../photos/69/R55p4.jpg", + "inspectors": null, + "inspection": "2012-09-11Z", + "constructi": null, + "record_cre": "2012-09-11Z", + "last_updat": null, + "update_dat": "2012-09-18Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": "TBA", + "project_nu": null, + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 1, + "historic_c": 0e-11, + "funding_ba": "Initial" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.311", + "geometry": { + "type": "Point", + "coordinates": [549611.0067999996, 6885561.8549] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE1852", + "type": "Hoop_Half", + "material": "Stainless Steel", + "number_of_": 1, + "comments": null, + "documents": "../photos/69/R55p7.jpg", + "inspectors": null, + "inspection": "2012-09-11Z", + "constructi": null, + "record_cre": "2012-09-11Z", + "last_updat": null, + "update_dat": "2012-09-18Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": "TBA", + "project_nu": null, + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 1, + "historic_c": 0e-11, + "funding_ba": "Initial" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.312", + "geometry": { + "type": "Point", + "coordinates": [548568.5754000004, 6886814.08] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE1853", + "type": "Hoop_Half", + "material": "Stainless Steel", + "number_of_": 1, + "comments": null, + "documents": "../photos/69/R55p10.jpg", + "inspectors": null, + "inspection": "2012-09-11Z", + "constructi": null, + "record_cre": "2012-09-11Z", + "last_updat": null, + "update_dat": "2012-09-18Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": "TBA", + "project_nu": null, + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 1, + "historic_c": 0e-11, + "funding_ba": "Initial" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.313", + "geometry": { + "type": "Point", + "coordinates": [542438.2437000005, 6893609.9267] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE1854", + "type": "Hoop_Half", + "material": "Stainless Steel", + "number_of_": 1, + "comments": null, + "documents": "../photos/69/R55p12.jpg", + "inspectors": null, + "inspection": "2012-09-11Z", + "constructi": null, + "record_cre": "2012-09-11Z", + "last_updat": null, + "update_dat": "2012-09-18Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": "TBA", + "project_nu": null, + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 1, + "historic_c": 0e-11, + "funding_ba": "Initial" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.314", + "geometry": { + "type": "Point", + "coordinates": [541015.7613000004, 6895442.2138] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE1855", + "type": "Hoop_Half", + "material": "Stainless Steel", + "number_of_": 1, + "comments": null, + "documents": "../photos/69/R55p15.jpg", + "inspectors": null, + "inspection": "2012-09-11Z", + "constructi": null, + "record_cre": "2012-09-11Z", + "last_updat": null, + "update_dat": "2012-09-18Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": "TBA", + "project_nu": null, + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 1, + "historic_c": 0e-11, + "funding_ba": "Initial" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.315", + "geometry": { + "type": "Point", + "coordinates": [539568.2610999998, 6895404.4115] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE1856", + "type": "Hoop_Half", + "material": "Stainless Steel", + "number_of_": 1, + "comments": null, + "documents": "../photos/69/R55p17.jpg", + "inspectors": null, + "inspection": "2012-09-11Z", + "constructi": null, + "record_cre": "2012-09-11Z", + "last_updat": null, + "update_dat": "2012-09-18Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": "TBA", + "project_nu": null, + "file_numbe": null, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 1, + "historic_c": 0e-11, + "funding_ba": "Initial" + } + } + ], + "crs": { "type": "EPSG", "properties": { "code": "28356" } } +} diff --git a/wwwroot/test/GeoJSON/cemeteries.geojson b/wwwroot/test/GeoJSON/cemeteries.geojson index d6f619e19ff..a48cceddc6a 100644 --- a/wwwroot/test/GeoJSON/cemeteries.geojson +++ b/wwwroot/test/GeoJSON/cemeteries.geojson @@ -1,65 +1,1189 @@ { -"type": "FeatureCollection", -"crs": { "type": "name", "properties": { "name": "urn:ogc:def:crs:OGC:1.3:CRS84" } }, -"features": [ -{ "type": "Feature", "properties": { "OBJECTID": 1, "FEATTYPE": "Cemetery Point", "NAME": "CORBETTS GRAVE", "FEATREL": "1973\/01\/01", "ATTRREL": "1973\/01\/01", "PLANACC": 100, "SOURCE": "GEOSCIENCE AUSTRALIA", "CREATED": "2006\/05\/09", "RETIRED": null, "PID": 1096166, "SYMBOL": 451, "FEATWIDTH": 0.0, "ORIENTATN": 0, "TEXTNOTE": null }, "geometry": { "type": "Point", "coordinates": [ 143.40801, -18.8145 ] } }, -{ "type": "Feature", "properties": { "OBJECTID": 2, "FEATTYPE": "Cemetery Point", "NAME": "RUTTER GRAVE", "FEATREL": "1983\/01\/01", "ATTRREL": "1983\/01\/01", "PLANACC": 100, "SOURCE": "GEOSCIENCE AUSTRALIA", "CREATED": "2006\/05\/09", "RETIRED": null, "PID": 1096167, "SYMBOL": 451, "FEATWIDTH": 0.0, "ORIENTATN": 0, "TEXTNOTE": null }, "geometry": { "type": "Point", "coordinates": [ 123.43713, -28.01478 ] } }, -{ "type": "Feature", "properties": { "OBJECTID": 3, "FEATTYPE": "Cemetery Point", "NAME": "POOLES GRAVE", "FEATREL": "1985\/01\/01", "ATTRREL": "1985\/01\/01", "PLANACC": 100, "SOURCE": "GEOSCIENCE AUSTRALIA", "CREATED": "2006\/05\/09", "RETIRED": null, "PID": 1096168, "SYMBOL": 451, "FEATWIDTH": 0.0, "ORIENTATN": 0, "TEXTNOTE": null }, "geometry": { "type": "Point", "coordinates": [ 141.7957, -29.66184 ] } }, -{ "type": "Feature", "properties": { "OBJECTID": 4, "FEATTYPE": "Cemetery Point", "NAME": "BULLI CEMETERY", "FEATREL": "1972\/01\/01", "ATTRREL": "1972\/01\/01", "PLANACC": 100, "SOURCE": "GEOSCIENCE AUSTRALIA", "CREATED": "2006\/05\/09", "RETIRED": null, "PID": 1096173, "SYMBOL": 451, "FEATWIDTH": 0.0, "ORIENTATN": 0, "TEXTNOTE": null }, "geometry": { "type": "Point", "coordinates": [ 150.92141, -34.34221 ] } }, -{ "type": "Feature", "properties": { "OBJECTID": 5, "FEATTYPE": "Cemetery Point", "NAME": "WILLS GRAVE", "FEATREL": "1981\/01\/01", "ATTRREL": "1981\/01\/01", "PLANACC": 100, "SOURCE": "GEOSCIENCE AUSTRALIA", "CREATED": "2006\/05\/09", "RETIRED": null, "PID": 1096215, "SYMBOL": 451, "FEATWIDTH": 0.0, "ORIENTATN": 0, "TEXTNOTE": null }, "geometry": { "type": "Point", "coordinates": [ 140.60031, -27.75488 ] } }, -{ "type": "Feature", "properties": { "OBJECTID": 6, "FEATTYPE": "Cemetery Point", "NAME": "KILLABAKH CEMETERY", "FEATREL": "1968\/01\/01", "ATTRREL": "1968\/01\/01", "PLANACC": 100, "SOURCE": "GEOSCIENCE AUSTRALIA", "CREATED": "2006\/05\/09", "RETIRED": null, "PID": 1096218, "SYMBOL": 451, "FEATWIDTH": 0.0, "ORIENTATN": 0, "TEXTNOTE": null }, "geometry": { "type": "Point", "coordinates": [ 152.39647, -31.77828 ] } }, -{ "type": "Feature", "properties": { "OBJECTID": 7, "FEATTYPE": "Cemetery Point", "NAME": "WESTROPPS GRAVE", "FEATREL": "1988\/01\/01", "ATTRREL": "1988\/01\/01", "PLANACC": 100, "SOURCE": "GEOSCIENCE AUSTRALIA", "CREATED": "2006\/05\/09", "RETIRED": null, "PID": 1096188, "SYMBOL": 451, "FEATWIDTH": 0.0, "ORIENTATN": 0, "TEXTNOTE": null }, "geometry": { "type": "Point", "coordinates": [ 139.86757, -25.96538 ] } }, -{ "type": "Feature", "properties": { "OBJECTID": 8, "FEATTYPE": "Cemetery Point", "NAME": "LAKESIDE MEMORIAL CEMETERY", "FEATREL": "1972\/01\/01", "ATTRREL": "1972\/01\/01", "PLANACC": 100, "SOURCE": "GEOSCIENCE AUSTRALIA", "CREATED": "2006\/05\/09", "RETIRED": null, "PID": 1096174, "SYMBOL": 451, "FEATWIDTH": 0.0, "ORIENTATN": 0, "TEXTNOTE": null }, "geometry": { "type": "Point", "coordinates": [ 150.81736, -34.48868 ] } }, -{ "type": "Feature", "properties": { "OBJECTID": 9, "FEATTYPE": "Cemetery Point", "NAME": null, "FEATREL": "1969\/01\/01", "ATTRREL": "1969\/01\/01", "PLANACC": 100, "SOURCE": "GEOSCIENCE AUSTRALIA", "CREATED": "2006\/05\/09", "RETIRED": null, "PID": 1096175, "SYMBOL": 451, "FEATWIDTH": 0.0, "ORIENTATN": 0, "TEXTNOTE": "cemetery" }, "geometry": { "type": "Point", "coordinates": [ 151.5908, -26.16459 ] } }, -{ "type": "Feature", "properties": { "OBJECTID": 10, "FEATTYPE": "Cemetery Point", "NAME": null, "FEATREL": "1982\/01\/01", "ATTRREL": "1982\/01\/01", "PLANACC": 100, "SOURCE": "GEOSCIENCE AUSTRALIA", "CREATED": "2006\/05\/09", "RETIRED": null, "PID": 1096183, "SYMBOL": 451, "FEATWIDTH": 0.0, "ORIENTATN": 0, "TEXTNOTE": "cemetery" }, "geometry": { "type": "Point", "coordinates": [ 135.28896, -32.94265 ] } }, -{ "type": "Feature", "properties": { "OBJECTID": 11, "FEATTYPE": "Cemetery Point", "NAME": "ELSEY CEMETERY", "FEATREL": "1979\/01\/01", "ATTRREL": "1979\/01\/01", "PLANACC": 100, "SOURCE": "GEOSCIENCE AUSTRALIA", "CREATED": "2006\/05\/09", "RETIRED": null, "PID": 1096190, "SYMBOL": 451, "FEATWIDTH": 0.0, "ORIENTATN": 0, "TEXTNOTE": null }, "geometry": { "type": "Point", "coordinates": [ 133.12294, -15.07918 ] } }, -{ "type": "Feature", "properties": { "OBJECTID": 12, "FEATTYPE": "Cemetery Point", "NAME": "PETER FAGANS GRAVE", "FEATREL": "1983\/01\/01", "ATTRREL": "1983\/01\/01", "PLANACC": 100, "SOURCE": "GEOSCIENCE AUSTRALIA", "CREATED": "2006\/05\/09", "RETIRED": null, "PID": 1096189, "SYMBOL": 451, "FEATWIDTH": 0.0, "ORIENTATN": 0, "TEXTNOTE": null }, "geometry": { "type": "Point", "coordinates": [ 139.34337, -30.71978 ] } }, -{ "type": "Feature", "properties": { "OBJECTID": 13, "FEATTYPE": "Cemetery Point", "NAME": null, "FEATREL": "1982\/01\/01", "ATTRREL": "1982\/01\/01", "PLANACC": 100, "SOURCE": "GEOSCIENCE AUSTRALIA", "CREATED": "2006\/05\/09", "RETIRED": null, "PID": 1096196, "SYMBOL": 451, "FEATWIDTH": 0.0, "ORIENTATN": 0, "TEXTNOTE": "cemetery" }, "geometry": { "type": "Point", "coordinates": [ 136.3393, -34.13166 ] } }, -{ "type": "Feature", "properties": { "OBJECTID": 14, "FEATTYPE": "Cemetery Point", "NAME": "PIEDNIPPIE CATHOLIC CEMETERY", "FEATREL": "2005\/05\/09", "ATTRREL": "2005\/05\/09", "PLANACC": 100, "SOURCE": "GEOSCIENCE AUSTRALIA", "CREATED": "2006\/05\/09", "RETIRED": null, "PID": 1096179, "SYMBOL": 451, "FEATWIDTH": 0.0, "ORIENTATN": 0, "TEXTNOTE": null }, "geometry": { "type": "Point", "coordinates": [ 134.45164, -32.73262 ] } }, -{ "type": "Feature", "properties": { "OBJECTID": 15, "FEATTYPE": "Cemetery Point", "NAME": "BERRY GENERAL CEMETERY", "FEATREL": "1982\/01\/01", "ATTRREL": "1982\/01\/01", "PLANACC": 100, "SOURCE": "GEOSCIENCE AUSTRALIA", "CREATED": "2006\/05\/09", "RETIRED": null, "PID": 1096178, "SYMBOL": 451, "FEATWIDTH": 0.0, "ORIENTATN": 0, "TEXTNOTE": null }, "geometry": { "type": "Point", "coordinates": [ 150.68147, -34.77322 ] } }, -{ "type": "Feature", "properties": { "OBJECTID": 16, "FEATTYPE": "Cemetery Point", "NAME": "SANDRIDGE CEMETERY", "FEATREL": "1982\/01\/01", "ATTRREL": "1982\/01\/01", "PLANACC": 100, "SOURCE": "GEOSCIENCE AUSTRALIA", "CREATED": "2006\/05\/09", "RETIRED": null, "PID": 1096181, "SYMBOL": 451, "FEATWIDTH": 0.0, "ORIENTATN": 0, "TEXTNOTE": null }, "geometry": { "type": "Point", "coordinates": [ 150.47095, -35.3379 ] } }, -{ "type": "Feature", "properties": { "OBJECTID": 17, "FEATTYPE": "Cemetery Point", "NAME": null, "FEATREL": "1985\/01\/01", "ATTRREL": "1985\/01\/01", "PLANACC": 100, "SOURCE": "GEOSCIENCE AUSTRALIA", "CREATED": "2006\/05\/09", "RETIRED": null, "PID": 1096192, "SYMBOL": 451, "FEATWIDTH": 0.0, "ORIENTATN": 0, "TEXTNOTE": "grave" }, "geometry": { "type": "Point", "coordinates": [ 143.45539, -30.01952 ] } }, -{ "type": "Feature", "properties": { "OBJECTID": 18, "FEATTYPE": "Cemetery Point", "NAME": null, "FEATREL": "1982\/01\/01", "ATTRREL": "1982\/01\/01", "PLANACC": 100, "SOURCE": "GEOSCIENCE AUSTRALIA", "CREATED": "2006\/05\/09", "RETIRED": null, "PID": 1096182, "SYMBOL": 451, "FEATWIDTH": 0.0, "ORIENTATN": 0, "TEXTNOTE": "cemetery" }, "geometry": { "type": "Point", "coordinates": [ 135.14214, -32.86334 ] } }, -{ "type": "Feature", "properties": { "OBJECTID": 19, "FEATTYPE": "Cemetery Point", "NAME": null, "FEATREL": "2005\/04\/22", "ATTRREL": "2005\/04\/22", "PLANACC": 100, "SOURCE": "GEOSCIENCE AUSTRALIA", "CREATED": "2006\/05\/09", "RETIRED": null, "PID": 1096176, "SYMBOL": 451, "FEATWIDTH": 0.0, "ORIENTATN": 0, "TEXTNOTE": "cemetery" }, "geometry": { "type": "Point", "coordinates": [ 144.55254, -33.26384 ] } }, -{ "type": "Feature", "properties": { "OBJECTID": 20, "FEATTYPE": "Cemetery Point", "NAME": "CORANDERRK ABORIGINAL CEMETERY", "FEATREL": "1979\/01\/01", "ATTRREL": "1979\/01\/01", "PLANACC": 100, "SOURCE": "GEOSCIENCE AUSTRALIA", "CREATED": "2006\/05\/09", "RETIRED": null, "PID": 1096209, "SYMBOL": 451, "FEATWIDTH": 0.0, "ORIENTATN": 0, "TEXTNOTE": null }, "geometry": { "type": "Point", "coordinates": [ 145.5059, -37.68675 ] } }, -{ "type": "Feature", "properties": { "OBJECTID": 21, "FEATTYPE": "Cemetery Point", "NAME": null, "FEATREL": "1986\/01\/01", "ATTRREL": "1986\/01\/01", "PLANACC": 100, "SOURCE": "GEOSCIENCE AUSTRALIA", "CREATED": "2006\/05\/09", "RETIRED": null, "PID": 1096169, "SYMBOL": 451, "FEATWIDTH": 0.0, "ORIENTATN": 0, "TEXTNOTE": "cemetery" }, "geometry": { "type": "Point", "coordinates": [ 136.83587, -31.1736 ] } }, -{ "type": "Feature", "properties": { "OBJECTID": 22, "FEATTYPE": "Cemetery Point", "NAME": null, "FEATREL": "1981\/01\/01", "ATTRREL": "1981\/01\/01", "PLANACC": 100, "SOURCE": "GEOSCIENCE AUSTRALIA", "CREATED": "2006\/05\/09", "RETIRED": null, "PID": 1096191, "SYMBOL": 451, "FEATWIDTH": 0.0, "ORIENTATN": 0, "TEXTNOTE": "cemetery" }, "geometry": { "type": "Point", "coordinates": [ 138.67926, -31.09889 ] } }, -{ "type": "Feature", "properties": { "OBJECTID": 23, "FEATTYPE": "Cemetery Point", "NAME": null, "FEATREL": "1981\/01\/01", "ATTRREL": "1981\/01\/01", "PLANACC": 100, "SOURCE": "GEOSCIENCE AUSTRALIA", "CREATED": "2006\/05\/09", "RETIRED": null, "PID": 1096184, "SYMBOL": 451, "FEATWIDTH": 0.0, "ORIENTATN": 0, "TEXTNOTE": "grave" }, "geometry": { "type": "Point", "coordinates": [ 138.55428, -31.33931 ] } }, -{ "type": "Feature", "properties": { "OBJECTID": 24, "FEATTYPE": "Cemetery Point", "NAME": null, "FEATREL": "1981\/01\/01", "ATTRREL": "1981\/01\/01", "PLANACC": 100, "SOURCE": "GEOSCIENCE AUSTRALIA", "CREATED": "2006\/05\/09", "RETIRED": null, "PID": 1096223, "SYMBOL": 451, "FEATWIDTH": 0.0, "ORIENTATN": 0, "TEXTNOTE": "cemetery" }, "geometry": { "type": "Point", "coordinates": [ 138.34177, -31.74274 ] } }, -{ "type": "Feature", "properties": { "OBJECTID": 25, "FEATTYPE": "Cemetery Point", "NAME": null, "FEATREL": "1981\/01\/01", "ATTRREL": "1981\/01\/01", "PLANACC": 100, "SOURCE": "GEOSCIENCE AUSTRALIA", "CREATED": "2006\/05\/09", "RETIRED": null, "PID": 1096177, "SYMBOL": 451, "FEATWIDTH": 0.0, "ORIENTATN": 0, "TEXTNOTE": "cemetery" }, "geometry": { "type": "Point", "coordinates": [ 138.27347, -31.81438 ] } }, -{ "type": "Feature", "properties": { "OBJECTID": 26, "FEATTYPE": "Cemetery Point", "NAME": "BRUCES GRAVE", "FEATREL": "1981\/01\/01", "ATTRREL": "1981\/01\/01", "PLANACC": 100, "SOURCE": "GEOSCIENCE AUSTRALIA", "CREATED": "2006\/05\/09", "RETIRED": null, "PID": 1096194, "SYMBOL": 451, "FEATWIDTH": 0.0, "ORIENTATN": 0, "TEXTNOTE": null }, "geometry": { "type": "Point", "coordinates": [ 138.39199, -31.83535 ] } }, -{ "type": "Feature", "properties": { "OBJECTID": 27, "FEATTYPE": "Cemetery Point", "NAME": "MCDILL GRAVES", "FEATREL": "1981\/01\/01", "ATTRREL": "1981\/01\/01", "PLANACC": 100, "SOURCE": "GEOSCIENCE AUSTRALIA", "CREATED": "2006\/05\/09", "RETIRED": null, "PID": 1096216, "SYMBOL": 451, "FEATWIDTH": 0.0, "ORIENTATN": 0, "TEXTNOTE": null }, "geometry": { "type": "Point", "coordinates": [ 138.33818, -31.83668 ] } }, -{ "type": "Feature", "properties": { "OBJECTID": 28, "FEATTYPE": "Cemetery Point", "NAME": null, "FEATREL": "1981\/01\/01", "ATTRREL": "1981\/01\/01", "PLANACC": 100, "SOURCE": "GEOSCIENCE AUSTRALIA", "CREATED": "2006\/05\/09", "RETIRED": null, "PID": 1096197, "SYMBOL": 451, "FEATWIDTH": 0.0, "ORIENTATN": 0, "TEXTNOTE": "cemetery" }, "geometry": { "type": "Point", "coordinates": [ 138.42807, -31.90307 ] } }, -{ "type": "Feature", "properties": { "OBJECTID": 29, "FEATTYPE": "Cemetery Point", "NAME": "MADDINGLEY CEMETERY", "FEATREL": "1979\/01\/01", "ATTRREL": "1979\/01\/01", "PLANACC": 100, "SOURCE": "GEOSCIENCE AUSTRALIA", "CREATED": "2006\/05\/09", "RETIRED": null, "PID": 1096210, "SYMBOL": 451, "FEATWIDTH": 0.0, "ORIENTATN": 0, "TEXTNOTE": null }, "geometry": { "type": "Point", "coordinates": [ 144.41725, -37.69179 ] } }, -{ "type": "Feature", "properties": { "OBJECTID": 30, "FEATTYPE": "Cemetery Point", "NAME": null, "FEATREL": "1981\/01\/01", "ATTRREL": "1981\/01\/01", "PLANACC": 100, "SOURCE": "GEOSCIENCE AUSTRALIA", "CREATED": "2006\/05\/09", "RETIRED": null, "PID": 1096186, "SYMBOL": 451, "FEATWIDTH": 0.0, "ORIENTATN": 0, "TEXTNOTE": "cemetery" }, "geometry": { "type": "Point", "coordinates": [ 135.46622, -33.04596 ] } }, -{ "type": "Feature", "properties": { "OBJECTID": 31, "FEATTYPE": "Cemetery Point", "NAME": null, "FEATREL": "1981\/01\/01", "ATTRREL": "1981\/01\/01", "PLANACC": 100, "SOURCE": "GEOSCIENCE AUSTRALIA", "CREATED": "2006\/05\/09", "RETIRED": null, "PID": 1096219, "SYMBOL": 451, "FEATWIDTH": 0.0, "ORIENTATN": 0, "TEXTNOTE": "cemetery" }, "geometry": { "type": "Point", "coordinates": [ 136.42464, -33.15125 ] } }, -{ "type": "Feature", "properties": { "OBJECTID": 32, "FEATTYPE": "Cemetery Point", "NAME": null, "FEATREL": "1981\/01\/01", "ATTRREL": "1981\/01\/01", "PLANACC": 100, "SOURCE": "GEOSCIENCE AUSTRALIA", "CREATED": "2006\/05\/09", "RETIRED": null, "PID": 1096208, "SYMBOL": 451, "FEATWIDTH": 0.0, "ORIENTATN": 0, "TEXTNOTE": "cemetery" }, "geometry": { "type": "Point", "coordinates": [ 135.60565, -33.24516 ] } }, -{ "type": "Feature", "properties": { "OBJECTID": 33, "FEATTYPE": "Cemetery Point", "NAME": "DARKES GRAVE", "FEATREL": "1981\/01\/01", "ATTRREL": "1981\/01\/01", "PLANACC": 100, "SOURCE": "GEOSCIENCE AUSTRALIA", "CREATED": "2006\/05\/09", "RETIRED": null, "PID": 1096220, "SYMBOL": 451, "FEATWIDTH": 0.0, "ORIENTATN": 0, "TEXTNOTE": null }, "geometry": { "type": "Point", "coordinates": [ 136.1581, -33.43105 ] } }, -{ "type": "Feature", "properties": { "OBJECTID": 34, "FEATTYPE": "Cemetery Point", "NAME": null, "FEATREL": "1981\/01\/01", "ATTRREL": "1981\/01\/01", "PLANACC": 100, "SOURCE": "GEOSCIENCE AUSTRALIA", "CREATED": "2006\/05\/09", "RETIRED": null, "PID": 1096193, "SYMBOL": 451, "FEATWIDTH": 0.0, "ORIENTATN": 0, "TEXTNOTE": "cemetery" }, "geometry": { "type": "Point", "coordinates": [ 136.19025, -33.46901 ] } }, -{ "type": "Feature", "properties": { "OBJECTID": 35, "FEATTYPE": "Cemetery Point", "NAME": null, "FEATREL": "1981\/01\/01", "ATTRREL": "1981\/01\/01", "PLANACC": 100, "SOURCE": "GEOSCIENCE AUSTRALIA", "CREATED": "2006\/05\/09", "RETIRED": null, "PID": 1096195, "SYMBOL": 451, "FEATWIDTH": 0.0, "ORIENTATN": 0, "TEXTNOTE": "cemetery" }, "geometry": { "type": "Point", "coordinates": [ 135.7496, -33.58006 ] } }, -{ "type": "Feature", "properties": { "OBJECTID": 36, "FEATTYPE": "Cemetery Point", "NAME": null, "FEATREL": "1981\/01\/01", "ATTRREL": "1981\/01\/01", "PLANACC": 100, "SOURCE": "GEOSCIENCE AUSTRALIA", "CREATED": "2006\/05\/09", "RETIRED": null, "PID": 1096185, "SYMBOL": 451, "FEATWIDTH": 0.0, "ORIENTATN": 0, "TEXTNOTE": "cemetery" }, "geometry": { "type": "Point", "coordinates": [ 135.23874, -33.86309 ] } }, -{ "type": "Feature", "properties": { "OBJECTID": 37, "FEATTYPE": "Cemetery Point", "NAME": null, "FEATREL": "1981\/01\/01", "ATTRREL": "1981\/01\/01", "PLANACC": 100, "SOURCE": "GEOSCIENCE AUSTRALIA", "CREATED": "2006\/05\/09", "RETIRED": null, "PID": 1096206, "SYMBOL": 451, "FEATWIDTH": 0.0, "ORIENTATN": 0, "TEXTNOTE": "grave" }, "geometry": { "type": "Point", "coordinates": [ 135.44408, -33.89091 ] } }, -{ "type": "Feature", "properties": { "OBJECTID": 38, "FEATTYPE": "Cemetery Point", "NAME": null, "FEATREL": "1981\/01\/01", "ATTRREL": "1981\/01\/01", "PLANACC": 100, "SOURCE": "GEOSCIENCE AUSTRALIA", "CREATED": "2006\/05\/09", "RETIRED": null, "PID": 1096187, "SYMBOL": 451, "FEATWIDTH": 0.0, "ORIENTATN": 0, "TEXTNOTE": "cemetery" }, "geometry": { "type": "Point", "coordinates": [ 135.27176, -33.94467 ] } }, -{ "type": "Feature", "properties": { "OBJECTID": 39, "FEATTYPE": "Cemetery Point", "NAME": "PRESTON CEMETERY", "FEATREL": "1979\/01\/01", "ATTRREL": "1979\/01\/01", "PLANACC": 100, "SOURCE": "GEOSCIENCE AUSTRALIA", "CREATED": "2006\/05\/09", "RETIRED": null, "PID": 1096211, "SYMBOL": 451, "FEATWIDTH": 0.0, "ORIENTATN": 0, "TEXTNOTE": null }, "geometry": { "type": "Point", "coordinates": [ 145.04105, -37.72173 ] } }, -{ "type": "Feature", "properties": { "OBJECTID": 40, "FEATTYPE": "Cemetery Point", "NAME": "BOX HILL CEMETERY", "FEATREL": "1979\/01\/01", "ATTRREL": "1979\/01\/01", "PLANACC": 100, "SOURCE": "GEOSCIENCE AUSTRALIA", "CREATED": "2006\/05\/09", "RETIRED": null, "PID": 1096212, "SYMBOL": 451, "FEATWIDTH": 0.0, "ORIENTATN": 0, "TEXTNOTE": null }, "geometry": { "type": "Point", "coordinates": [ 145.13333, -37.82342 ] } }, -{ "type": "Feature", "properties": { "OBJECTID": 41, "FEATTYPE": "Cemetery Point", "NAME": "BURWOOD CEMETERY", "FEATREL": "1979\/01\/01", "ATTRREL": "1979\/01\/01", "PLANACC": 100, "SOURCE": "GEOSCIENCE AUSTRALIA", "CREATED": "2006\/05\/09", "RETIRED": null, "PID": 1096213, "SYMBOL": 451, "FEATWIDTH": 0.0, "ORIENTATN": 0, "TEXTNOTE": null }, "geometry": { "type": "Point", "coordinates": [ 145.10413, -37.85326 ] } }, -{ "type": "Feature", "properties": { "OBJECTID": 42, "FEATTYPE": "Cemetery Point", "NAME": "MORGANS GRAVE", "FEATREL": "1972\/01\/01", "ATTRREL": "1972\/01\/01", "PLANACC": 100, "SOURCE": "GEOSCIENCE AUSTRALIA", "CREATED": "2006\/05\/09", "RETIRED": null, "PID": 1096170, "SYMBOL": 451, "FEATWIDTH": 0.0, "ORIENTATN": 0, "TEXTNOTE": null }, "geometry": { "type": "Point", "coordinates": [ 126.35373, -18.53176 ] } }, -{ "type": "Feature", "properties": { "OBJECTID": 43, "FEATTYPE": "Cemetery Point", "NAME": "HASTYS GRAVE", "FEATREL": "1984\/01\/01", "ATTRREL": "1984\/01\/01", "PLANACC": 100, "SOURCE": "GEOSCIENCE AUSTRALIA", "CREATED": "2006\/05\/09", "RETIRED": null, "PID": 1096171, "SYMBOL": 451, "FEATWIDTH": 0.0, "ORIENTATN": 0, "TEXTNOTE": null }, "geometry": { "type": "Point", "coordinates": [ 118.51832, -28.63369 ] } }, -{ "type": "Feature", "properties": { "OBJECTID": 44, "FEATTYPE": "Cemetery Point", "NAME": "SHARPES GRAVE", "FEATREL": "1986\/01\/01", "ATTRREL": "1986\/01\/01", "PLANACC": 100, "SOURCE": "GEOSCIENCE AUSTRALIA", "CREATED": "2006\/05\/09", "RETIRED": null, "PID": 1096207, "SYMBOL": 451, "FEATWIDTH": 0.0, "ORIENTATN": 0, "TEXTNOTE": null }, "geometry": { "type": "Point", "coordinates": [ 135.08303, -25.96244 ] } }, -{ "type": "Feature", "properties": { "OBJECTID": 45, "FEATTYPE": "Cemetery Point", "NAME": "BOOT HILL CEMETERY", "FEATREL": "1987\/01\/01", "ATTRREL": "1987\/01\/01", "PLANACC": 100, "SOURCE": "GEOSCIENCE AUSTRALIA", "CREATED": "2006\/05\/09", "RETIRED": null, "PID": 1096172, "SYMBOL": 451, "FEATWIDTH": 0.0, "ORIENTATN": 0, "TEXTNOTE": null }, "geometry": { "type": "Point", "coordinates": [ 134.76445, -29.02232 ] } }, -{ "type": "Feature", "properties": { "OBJECTID": 46, "FEATTYPE": "Cemetery Point", "NAME": "OLD CHELTENHAM CEMETERY", "FEATREL": "1979\/01\/01", "ATTRREL": "1979\/01\/01", "PLANACC": 100, "SOURCE": "GEOSCIENCE AUSTRALIA", "CREATED": "2006\/05\/09", "RETIRED": null, "PID": 1096214, "SYMBOL": 451, "FEATWIDTH": 0.0, "ORIENTATN": 0, "TEXTNOTE": null }, "geometry": { "type": "Point", "coordinates": [ 145.05167, -37.96839 ] } }, -{ "type": "Feature", "properties": { "OBJECTID": 47, "FEATTYPE": "Cemetery Point", "NAME": "GUNDILLION CEMETERY", "FEATREL": "1981\/01\/01", "ATTRREL": "1981\/01\/01", "PLANACC": 100, "SOURCE": "GEOSCIENCE AUSTRALIA", "CREATED": "2006\/05\/09", "RETIRED": null, "PID": 1096205, "SYMBOL": 451, "FEATWIDTH": 0.0, "ORIENTATN": 0, "TEXTNOTE": null }, "geometry": { "type": "Point", "coordinates": [ 149.64023, -35.72392 ] } }, -{ "type": "Feature", "properties": { "OBJECTID": 48, "FEATTYPE": "Cemetery Point", "NAME": null, "FEATREL": "1978\/01\/01", "ATTRREL": "1978\/01\/01", "PLANACC": 100, "SOURCE": "GEOSCIENCE AUSTRALIA", "CREATED": "2006\/05\/09", "RETIRED": null, "PID": 1096204, "SYMBOL": 451, "FEATWIDTH": 0.0, "ORIENTATN": 0, "TEXTNOTE": "cemetery" }, "geometry": { "type": "Point", "coordinates": [ 148.79613, -26.58085 ] } }, -{ "type": "Feature", "properties": { "OBJECTID": 49, "FEATTYPE": "Cemetery Point", "NAME": "MOUNT CARBINE CEMETERY", "FEATREL": "1981\/01\/01", "ATTRREL": "1981\/01\/01", "PLANACC": 100, "SOURCE": "GEOSCIENCE AUSTRALIA", "CREATED": "2006\/05\/09", "RETIRED": null, "PID": 1096224, "SYMBOL": 451, "FEATWIDTH": 0.0, "ORIENTATN": 0, "TEXTNOTE": null }, "geometry": { "type": "Point", "coordinates": [ 145.11168, -16.52816 ] } }, -{ "type": "Feature", "properties": { "OBJECTID": 50, "FEATTYPE": "Cemetery Point", "NAME": "KRAEGENS GRAVE", "FEATREL": "1987\/01\/01", "ATTRREL": "1987\/01\/01", "PLANACC": 100, "SOURCE": "GEOSCIENCE AUSTRALIA", "CREATED": "2006\/05\/09", "RETIRED": null, "PID": 1096217, "SYMBOL": 451, "FEATWIDTH": 0.0, "ORIENTATN": 0, "TEXTNOTE": null }, "geometry": { "type": "Point", "coordinates": [ 133.99689, -24.58039 ] } }, -{ "type": "Feature", "properties": { "OBJECTID": 51, "FEATTYPE": "Cemetery Point", "NAME": "PROBYS GRAVE", "FEATREL": "1983\/01\/01", "ATTRREL": "1983\/01\/01", "PLANACC": 100, "SOURCE": "GEOSCIENCE AUSTRALIA", "CREATED": "2006\/05\/09", "RETIRED": null, "PID": 1096180, "SYMBOL": 451, "FEATWIDTH": 0.0, "ORIENTATN": 0, "TEXTNOTE": null }, "geometry": { "type": "Point", "coordinates": [ 138.08989, -32.08335 ] } }, -{ "type": "Feature", "properties": { "OBJECTID": 52, "FEATTYPE": "Cemetery Point", "NAME": "BALDINA CEMETERY", "FEATREL": "1980\/01\/01", "ATTRREL": "1980\/01\/01", "PLANACC": 100, "SOURCE": "GEOSCIENCE AUSTRALIA", "CREATED": "2006\/05\/09", "RETIRED": null, "PID": 1096222, "SYMBOL": 451, "FEATWIDTH": 0.0, "ORIENTATN": 0, "TEXTNOTE": null }, "geometry": { "type": "Point", "coordinates": [ 139.13719, -33.73431 ] } }, -{ "type": "Feature", "properties": { "OBJECTID": 53, "FEATTYPE": "Cemetery Point", "NAME": null, "FEATREL": "1979\/01\/01", "ATTRREL": "1979\/01\/01", "PLANACC": 100, "SOURCE": "GEOSCIENCE AUSTRALIA", "CREATED": "2006\/05\/09", "RETIRED": null, "PID": 1096221, "SYMBOL": 451, "FEATWIDTH": 0.0, "ORIENTATN": 0, "TEXTNOTE": "cemetery" }, "geometry": { "type": "Point", "coordinates": [ 147.54326, -26.45892 ] } }, -{ "type": "Feature", "properties": { "OBJECTID": 54, "FEATTYPE": "Cemetery Point", "NAME": null, "FEATREL": "1970\/01\/01", "ATTRREL": "1970\/01\/01", "PLANACC": 100, "SOURCE": "GEOSCIENCE AUSTRALIA", "CREATED": "2006\/05\/09", "RETIRED": null, "PID": 1096198, "SYMBOL": 451, "FEATWIDTH": 0.0, "ORIENTATN": 0, "TEXTNOTE": "cemetery" }, "geometry": { "type": "Point", "coordinates": [ 137.92075, -35.72118 ] } }, -{ "type": "Feature", "properties": { "OBJECTID": 55, "FEATTYPE": "Cemetery Point", "NAME": null, "FEATREL": "1970\/01\/01", "ATTRREL": "1970\/01\/01", "PLANACC": 100, "SOURCE": "GEOSCIENCE AUSTRALIA", "CREATED": "2006\/05\/09", "RETIRED": null, "PID": 1096199, "SYMBOL": 451, "FEATWIDTH": 0.0, "ORIENTATN": 0, "TEXTNOTE": "cemetery" }, "geometry": { "type": "Point", "coordinates": [ 137.62606, -35.64741 ] } }, -{ "type": "Feature", "properties": { "OBJECTID": 56, "FEATTYPE": "Cemetery Point", "NAME": "HEYWOOD CEMETERY", "FEATREL": "1982\/01\/01", "ATTRREL": "1982\/01\/01", "PLANACC": 100, "SOURCE": "GEOSCIENCE AUSTRALIA", "CREATED": "2006\/05\/09", "RETIRED": null, "PID": 1096200, "SYMBOL": 451, "FEATWIDTH": 0.0, "ORIENTATN": 0, "TEXTNOTE": null }, "geometry": { "type": "Point", "coordinates": [ 141.60544, -37.00425 ] } }, -{ "type": "Feature", "properties": { "OBJECTID": 57, "FEATTYPE": "Cemetery Point", "NAME": "BEULAH CEMETERY", "FEATREL": "1978\/01\/01", "ATTRREL": "1978\/01\/01", "PLANACC": 100, "SOURCE": "GEOSCIENCE AUSTRALIA", "CREATED": "2006\/05\/09", "RETIRED": null, "PID": 1096201, "SYMBOL": 451, "FEATWIDTH": 0.0, "ORIENTATN": 0, "TEXTNOTE": null }, "geometry": { "type": "Point", "coordinates": [ 142.45078, -35.9333 ] } }, -{ "type": "Feature", "properties": { "OBJECTID": 58, "FEATTYPE": "Cemetery Point", "NAME": "ROSEBERRY CEMETERY", "FEATREL": "1978\/01\/01", "ATTRREL": "1978\/01\/01", "PLANACC": 100, "SOURCE": "GEOSCIENCE AUSTRALIA", "CREATED": "2006\/05\/09", "RETIRED": null, "PID": 1096202, "SYMBOL": 451, "FEATWIDTH": 0.0, "ORIENTATN": 0, "TEXTNOTE": null }, "geometry": { "type": "Point", "coordinates": [ 142.45226, -35.82088 ] } }, -{ "type": "Feature", "properties": { "OBJECTID": 59, "FEATTYPE": "Cemetery Point", "NAME": "PENNYWEIGHT FLAT CHILDRENS CEMETERY", "FEATREL": "1982\/01\/01", "ATTRREL": "1982\/01\/01", "PLANACC": 100, "SOURCE": "GEOSCIENCE AUSTRALIA", "CREATED": "2006\/05\/09", "RETIRED": null, "PID": 1096203, "SYMBOL": 451, "FEATWIDTH": 0.0, "ORIENTATN": 0, "TEXTNOTE": null }, "geometry": { "type": "Point", "coordinates": [ 144.23811, -37.06775 ] } } -] + "type": "FeatureCollection", + "crs": { + "type": "name", + "properties": { "name": "urn:ogc:def:crs:OGC:1.3:CRS84" } + }, + "features": [ + { + "type": "Feature", + "properties": { + "OBJECTID": 1, + "FEATTYPE": "Cemetery Point", + "NAME": "CORBETTS GRAVE", + "FEATREL": "1973/01/01", + "ATTRREL": "1973/01/01", + "PLANACC": 100, + "SOURCE": "GEOSCIENCE AUSTRALIA", + "CREATED": "2006/05/09", + "RETIRED": null, + "PID": 1096166, + "SYMBOL": 451, + "FEATWIDTH": 0.0, + "ORIENTATN": 0, + "TEXTNOTE": null + }, + "geometry": { "type": "Point", "coordinates": [143.40801, -18.8145] } + }, + { + "type": "Feature", + "properties": { + "OBJECTID": 2, + "FEATTYPE": "Cemetery Point", + "NAME": "RUTTER GRAVE", + "FEATREL": "1983/01/01", + "ATTRREL": "1983/01/01", + "PLANACC": 100, + "SOURCE": "GEOSCIENCE AUSTRALIA", + "CREATED": "2006/05/09", + "RETIRED": null, + "PID": 1096167, + "SYMBOL": 451, + "FEATWIDTH": 0.0, + "ORIENTATN": 0, + "TEXTNOTE": null + }, + "geometry": { "type": "Point", "coordinates": [123.43713, -28.01478] } + }, + { + "type": "Feature", + "properties": { + "OBJECTID": 3, + "FEATTYPE": "Cemetery Point", + "NAME": "POOLES GRAVE", + "FEATREL": "1985/01/01", + "ATTRREL": "1985/01/01", + "PLANACC": 100, + "SOURCE": "GEOSCIENCE AUSTRALIA", + "CREATED": "2006/05/09", + "RETIRED": null, + "PID": 1096168, + "SYMBOL": 451, + "FEATWIDTH": 0.0, + "ORIENTATN": 0, + "TEXTNOTE": null + }, + "geometry": { "type": "Point", "coordinates": [141.7957, -29.66184] } + }, + { + "type": "Feature", + "properties": { + "OBJECTID": 4, + "FEATTYPE": "Cemetery Point", + "NAME": "BULLI CEMETERY", + "FEATREL": "1972/01/01", + "ATTRREL": "1972/01/01", + "PLANACC": 100, + "SOURCE": "GEOSCIENCE AUSTRALIA", + "CREATED": "2006/05/09", + "RETIRED": null, + "PID": 1096173, + "SYMBOL": 451, + "FEATWIDTH": 0.0, + "ORIENTATN": 0, + "TEXTNOTE": null + }, + "geometry": { "type": "Point", "coordinates": [150.92141, -34.34221] } + }, + { + "type": "Feature", + "properties": { + "OBJECTID": 5, + "FEATTYPE": "Cemetery Point", + "NAME": "WILLS GRAVE", + "FEATREL": "1981/01/01", + "ATTRREL": "1981/01/01", + "PLANACC": 100, + "SOURCE": "GEOSCIENCE AUSTRALIA", + "CREATED": "2006/05/09", + "RETIRED": null, + "PID": 1096215, + "SYMBOL": 451, + "FEATWIDTH": 0.0, + "ORIENTATN": 0, + "TEXTNOTE": null + }, + "geometry": { "type": "Point", "coordinates": [140.60031, -27.75488] } + }, + { + "type": "Feature", + "properties": { + "OBJECTID": 6, + "FEATTYPE": "Cemetery Point", + "NAME": "KILLABAKH CEMETERY", + "FEATREL": "1968/01/01", + "ATTRREL": "1968/01/01", + "PLANACC": 100, + "SOURCE": "GEOSCIENCE AUSTRALIA", + "CREATED": "2006/05/09", + "RETIRED": null, + "PID": 1096218, + "SYMBOL": 451, + "FEATWIDTH": 0.0, + "ORIENTATN": 0, + "TEXTNOTE": null + }, + "geometry": { "type": "Point", "coordinates": [152.39647, -31.77828] } + }, + { + "type": "Feature", + "properties": { + "OBJECTID": 7, + "FEATTYPE": "Cemetery Point", + "NAME": "WESTROPPS GRAVE", + "FEATREL": "1988/01/01", + "ATTRREL": "1988/01/01", + "PLANACC": 100, + "SOURCE": "GEOSCIENCE AUSTRALIA", + "CREATED": "2006/05/09", + "RETIRED": null, + "PID": 1096188, + "SYMBOL": 451, + "FEATWIDTH": 0.0, + "ORIENTATN": 0, + "TEXTNOTE": null + }, + "geometry": { "type": "Point", "coordinates": [139.86757, -25.96538] } + }, + { + "type": "Feature", + "properties": { + "OBJECTID": 8, + "FEATTYPE": "Cemetery Point", + "NAME": "LAKESIDE MEMORIAL CEMETERY", + "FEATREL": "1972/01/01", + "ATTRREL": "1972/01/01", + "PLANACC": 100, + "SOURCE": "GEOSCIENCE AUSTRALIA", + "CREATED": "2006/05/09", + "RETIRED": null, + "PID": 1096174, + "SYMBOL": 451, + "FEATWIDTH": 0.0, + "ORIENTATN": 0, + "TEXTNOTE": null + }, + "geometry": { "type": "Point", "coordinates": [150.81736, -34.48868] } + }, + { + "type": "Feature", + "properties": { + "OBJECTID": 9, + "FEATTYPE": "Cemetery Point", + "NAME": null, + "FEATREL": "1969/01/01", + "ATTRREL": "1969/01/01", + "PLANACC": 100, + "SOURCE": "GEOSCIENCE AUSTRALIA", + "CREATED": "2006/05/09", + "RETIRED": null, + "PID": 1096175, + "SYMBOL": 451, + "FEATWIDTH": 0.0, + "ORIENTATN": 0, + "TEXTNOTE": "cemetery" + }, + "geometry": { "type": "Point", "coordinates": [151.5908, -26.16459] } + }, + { + "type": "Feature", + "properties": { + "OBJECTID": 10, + "FEATTYPE": "Cemetery Point", + "NAME": null, + "FEATREL": "1982/01/01", + "ATTRREL": "1982/01/01", + "PLANACC": 100, + "SOURCE": "GEOSCIENCE AUSTRALIA", + "CREATED": "2006/05/09", + "RETIRED": null, + "PID": 1096183, + "SYMBOL": 451, + "FEATWIDTH": 0.0, + "ORIENTATN": 0, + "TEXTNOTE": "cemetery" + }, + "geometry": { "type": "Point", "coordinates": [135.28896, -32.94265] } + }, + { + "type": "Feature", + "properties": { + "OBJECTID": 11, + "FEATTYPE": "Cemetery Point", + "NAME": "ELSEY CEMETERY", + "FEATREL": "1979/01/01", + "ATTRREL": "1979/01/01", + "PLANACC": 100, + "SOURCE": "GEOSCIENCE AUSTRALIA", + "CREATED": "2006/05/09", + "RETIRED": null, + "PID": 1096190, + "SYMBOL": 451, + "FEATWIDTH": 0.0, + "ORIENTATN": 0, + "TEXTNOTE": null + }, + "geometry": { "type": "Point", "coordinates": [133.12294, -15.07918] } + }, + { + "type": "Feature", + "properties": { + "OBJECTID": 12, + "FEATTYPE": "Cemetery Point", + "NAME": "PETER FAGANS GRAVE", + "FEATREL": "1983/01/01", + "ATTRREL": "1983/01/01", + "PLANACC": 100, + "SOURCE": "GEOSCIENCE AUSTRALIA", + "CREATED": "2006/05/09", + "RETIRED": null, + "PID": 1096189, + "SYMBOL": 451, + "FEATWIDTH": 0.0, + "ORIENTATN": 0, + "TEXTNOTE": null + }, + "geometry": { "type": "Point", "coordinates": [139.34337, -30.71978] } + }, + { + "type": "Feature", + "properties": { + "OBJECTID": 13, + "FEATTYPE": "Cemetery Point", + "NAME": null, + "FEATREL": "1982/01/01", + "ATTRREL": "1982/01/01", + "PLANACC": 100, + "SOURCE": "GEOSCIENCE AUSTRALIA", + "CREATED": "2006/05/09", + "RETIRED": null, + "PID": 1096196, + "SYMBOL": 451, + "FEATWIDTH": 0.0, + "ORIENTATN": 0, + "TEXTNOTE": "cemetery" + }, + "geometry": { "type": "Point", "coordinates": [136.3393, -34.13166] } + }, + { + "type": "Feature", + "properties": { + "OBJECTID": 14, + "FEATTYPE": "Cemetery Point", + "NAME": "PIEDNIPPIE CATHOLIC CEMETERY", + "FEATREL": "2005/05/09", + "ATTRREL": "2005/05/09", + "PLANACC": 100, + "SOURCE": "GEOSCIENCE AUSTRALIA", + "CREATED": "2006/05/09", + "RETIRED": null, + "PID": 1096179, + "SYMBOL": 451, + "FEATWIDTH": 0.0, + "ORIENTATN": 0, + "TEXTNOTE": null + }, + "geometry": { "type": "Point", "coordinates": [134.45164, -32.73262] } + }, + { + "type": "Feature", + "properties": { + "OBJECTID": 15, + "FEATTYPE": "Cemetery Point", + "NAME": "BERRY GENERAL CEMETERY", + "FEATREL": "1982/01/01", + "ATTRREL": "1982/01/01", + "PLANACC": 100, + "SOURCE": "GEOSCIENCE AUSTRALIA", + "CREATED": "2006/05/09", + "RETIRED": null, + "PID": 1096178, + "SYMBOL": 451, + "FEATWIDTH": 0.0, + "ORIENTATN": 0, + "TEXTNOTE": null + }, + "geometry": { "type": "Point", "coordinates": [150.68147, -34.77322] } + }, + { + "type": "Feature", + "properties": { + "OBJECTID": 16, + "FEATTYPE": "Cemetery Point", + "NAME": "SANDRIDGE CEMETERY", + "FEATREL": "1982/01/01", + "ATTRREL": "1982/01/01", + "PLANACC": 100, + "SOURCE": "GEOSCIENCE AUSTRALIA", + "CREATED": "2006/05/09", + "RETIRED": null, + "PID": 1096181, + "SYMBOL": 451, + "FEATWIDTH": 0.0, + "ORIENTATN": 0, + "TEXTNOTE": null + }, + "geometry": { "type": "Point", "coordinates": [150.47095, -35.3379] } + }, + { + "type": "Feature", + "properties": { + "OBJECTID": 17, + "FEATTYPE": "Cemetery Point", + "NAME": null, + "FEATREL": "1985/01/01", + "ATTRREL": "1985/01/01", + "PLANACC": 100, + "SOURCE": "GEOSCIENCE AUSTRALIA", + "CREATED": "2006/05/09", + "RETIRED": null, + "PID": 1096192, + "SYMBOL": 451, + "FEATWIDTH": 0.0, + "ORIENTATN": 0, + "TEXTNOTE": "grave" + }, + "geometry": { "type": "Point", "coordinates": [143.45539, -30.01952] } + }, + { + "type": "Feature", + "properties": { + "OBJECTID": 18, + "FEATTYPE": "Cemetery Point", + "NAME": null, + "FEATREL": "1982/01/01", + "ATTRREL": "1982/01/01", + "PLANACC": 100, + "SOURCE": "GEOSCIENCE AUSTRALIA", + "CREATED": "2006/05/09", + "RETIRED": null, + "PID": 1096182, + "SYMBOL": 451, + "FEATWIDTH": 0.0, + "ORIENTATN": 0, + "TEXTNOTE": "cemetery" + }, + "geometry": { "type": "Point", "coordinates": [135.14214, -32.86334] } + }, + { + "type": "Feature", + "properties": { + "OBJECTID": 19, + "FEATTYPE": "Cemetery Point", + "NAME": null, + "FEATREL": "2005/04/22", + "ATTRREL": "2005/04/22", + "PLANACC": 100, + "SOURCE": "GEOSCIENCE AUSTRALIA", + "CREATED": "2006/05/09", + "RETIRED": null, + "PID": 1096176, + "SYMBOL": 451, + "FEATWIDTH": 0.0, + "ORIENTATN": 0, + "TEXTNOTE": "cemetery" + }, + "geometry": { "type": "Point", "coordinates": [144.55254, -33.26384] } + }, + { + "type": "Feature", + "properties": { + "OBJECTID": 20, + "FEATTYPE": "Cemetery Point", + "NAME": "CORANDERRK ABORIGINAL CEMETERY", + "FEATREL": "1979/01/01", + "ATTRREL": "1979/01/01", + "PLANACC": 100, + "SOURCE": "GEOSCIENCE AUSTRALIA", + "CREATED": "2006/05/09", + "RETIRED": null, + "PID": 1096209, + "SYMBOL": 451, + "FEATWIDTH": 0.0, + "ORIENTATN": 0, + "TEXTNOTE": null + }, + "geometry": { "type": "Point", "coordinates": [145.5059, -37.68675] } + }, + { + "type": "Feature", + "properties": { + "OBJECTID": 21, + "FEATTYPE": "Cemetery Point", + "NAME": null, + "FEATREL": "1986/01/01", + "ATTRREL": "1986/01/01", + "PLANACC": 100, + "SOURCE": "GEOSCIENCE AUSTRALIA", + "CREATED": "2006/05/09", + "RETIRED": null, + "PID": 1096169, + "SYMBOL": 451, + "FEATWIDTH": 0.0, + "ORIENTATN": 0, + "TEXTNOTE": "cemetery" + }, + "geometry": { "type": "Point", "coordinates": [136.83587, -31.1736] } + }, + { + "type": "Feature", + "properties": { + "OBJECTID": 22, + "FEATTYPE": "Cemetery Point", + "NAME": null, + "FEATREL": "1981/01/01", + "ATTRREL": "1981/01/01", + "PLANACC": 100, + "SOURCE": "GEOSCIENCE AUSTRALIA", + "CREATED": "2006/05/09", + "RETIRED": null, + "PID": 1096191, + "SYMBOL": 451, + "FEATWIDTH": 0.0, + "ORIENTATN": 0, + "TEXTNOTE": "cemetery" + }, + "geometry": { "type": "Point", "coordinates": [138.67926, -31.09889] } + }, + { + "type": "Feature", + "properties": { + "OBJECTID": 23, + "FEATTYPE": "Cemetery Point", + "NAME": null, + "FEATREL": "1981/01/01", + "ATTRREL": "1981/01/01", + "PLANACC": 100, + "SOURCE": "GEOSCIENCE AUSTRALIA", + "CREATED": "2006/05/09", + "RETIRED": null, + "PID": 1096184, + "SYMBOL": 451, + "FEATWIDTH": 0.0, + "ORIENTATN": 0, + "TEXTNOTE": "grave" + }, + "geometry": { "type": "Point", "coordinates": [138.55428, -31.33931] } + }, + { + "type": "Feature", + "properties": { + "OBJECTID": 24, + "FEATTYPE": "Cemetery Point", + "NAME": null, + "FEATREL": "1981/01/01", + "ATTRREL": "1981/01/01", + "PLANACC": 100, + "SOURCE": "GEOSCIENCE AUSTRALIA", + "CREATED": "2006/05/09", + "RETIRED": null, + "PID": 1096223, + "SYMBOL": 451, + "FEATWIDTH": 0.0, + "ORIENTATN": 0, + "TEXTNOTE": "cemetery" + }, + "geometry": { "type": "Point", "coordinates": [138.34177, -31.74274] } + }, + { + "type": "Feature", + "properties": { + "OBJECTID": 25, + "FEATTYPE": "Cemetery Point", + "NAME": null, + "FEATREL": "1981/01/01", + "ATTRREL": "1981/01/01", + "PLANACC": 100, + "SOURCE": "GEOSCIENCE AUSTRALIA", + "CREATED": "2006/05/09", + "RETIRED": null, + "PID": 1096177, + "SYMBOL": 451, + "FEATWIDTH": 0.0, + "ORIENTATN": 0, + "TEXTNOTE": "cemetery" + }, + "geometry": { "type": "Point", "coordinates": [138.27347, -31.81438] } + }, + { + "type": "Feature", + "properties": { + "OBJECTID": 26, + "FEATTYPE": "Cemetery Point", + "NAME": "BRUCES GRAVE", + "FEATREL": "1981/01/01", + "ATTRREL": "1981/01/01", + "PLANACC": 100, + "SOURCE": "GEOSCIENCE AUSTRALIA", + "CREATED": "2006/05/09", + "RETIRED": null, + "PID": 1096194, + "SYMBOL": 451, + "FEATWIDTH": 0.0, + "ORIENTATN": 0, + "TEXTNOTE": null + }, + "geometry": { "type": "Point", "coordinates": [138.39199, -31.83535] } + }, + { + "type": "Feature", + "properties": { + "OBJECTID": 27, + "FEATTYPE": "Cemetery Point", + "NAME": "MCDILL GRAVES", + "FEATREL": "1981/01/01", + "ATTRREL": "1981/01/01", + "PLANACC": 100, + "SOURCE": "GEOSCIENCE AUSTRALIA", + "CREATED": "2006/05/09", + "RETIRED": null, + "PID": 1096216, + "SYMBOL": 451, + "FEATWIDTH": 0.0, + "ORIENTATN": 0, + "TEXTNOTE": null + }, + "geometry": { "type": "Point", "coordinates": [138.33818, -31.83668] } + }, + { + "type": "Feature", + "properties": { + "OBJECTID": 28, + "FEATTYPE": "Cemetery Point", + "NAME": null, + "FEATREL": "1981/01/01", + "ATTRREL": "1981/01/01", + "PLANACC": 100, + "SOURCE": "GEOSCIENCE AUSTRALIA", + "CREATED": "2006/05/09", + "RETIRED": null, + "PID": 1096197, + "SYMBOL": 451, + "FEATWIDTH": 0.0, + "ORIENTATN": 0, + "TEXTNOTE": "cemetery" + }, + "geometry": { "type": "Point", "coordinates": [138.42807, -31.90307] } + }, + { + "type": "Feature", + "properties": { + "OBJECTID": 29, + "FEATTYPE": "Cemetery Point", + "NAME": "MADDINGLEY CEMETERY", + "FEATREL": "1979/01/01", + "ATTRREL": "1979/01/01", + "PLANACC": 100, + "SOURCE": "GEOSCIENCE AUSTRALIA", + "CREATED": "2006/05/09", + "RETIRED": null, + "PID": 1096210, + "SYMBOL": 451, + "FEATWIDTH": 0.0, + "ORIENTATN": 0, + "TEXTNOTE": null + }, + "geometry": { "type": "Point", "coordinates": [144.41725, -37.69179] } + }, + { + "type": "Feature", + "properties": { + "OBJECTID": 30, + "FEATTYPE": "Cemetery Point", + "NAME": null, + "FEATREL": "1981/01/01", + "ATTRREL": "1981/01/01", + "PLANACC": 100, + "SOURCE": "GEOSCIENCE AUSTRALIA", + "CREATED": "2006/05/09", + "RETIRED": null, + "PID": 1096186, + "SYMBOL": 451, + "FEATWIDTH": 0.0, + "ORIENTATN": 0, + "TEXTNOTE": "cemetery" + }, + "geometry": { "type": "Point", "coordinates": [135.46622, -33.04596] } + }, + { + "type": "Feature", + "properties": { + "OBJECTID": 31, + "FEATTYPE": "Cemetery Point", + "NAME": null, + "FEATREL": "1981/01/01", + "ATTRREL": "1981/01/01", + "PLANACC": 100, + "SOURCE": "GEOSCIENCE AUSTRALIA", + "CREATED": "2006/05/09", + "RETIRED": null, + "PID": 1096219, + "SYMBOL": 451, + "FEATWIDTH": 0.0, + "ORIENTATN": 0, + "TEXTNOTE": "cemetery" + }, + "geometry": { "type": "Point", "coordinates": [136.42464, -33.15125] } + }, + { + "type": "Feature", + "properties": { + "OBJECTID": 32, + "FEATTYPE": "Cemetery Point", + "NAME": null, + "FEATREL": "1981/01/01", + "ATTRREL": "1981/01/01", + "PLANACC": 100, + "SOURCE": "GEOSCIENCE AUSTRALIA", + "CREATED": "2006/05/09", + "RETIRED": null, + "PID": 1096208, + "SYMBOL": 451, + "FEATWIDTH": 0.0, + "ORIENTATN": 0, + "TEXTNOTE": "cemetery" + }, + "geometry": { "type": "Point", "coordinates": [135.60565, -33.24516] } + }, + { + "type": "Feature", + "properties": { + "OBJECTID": 33, + "FEATTYPE": "Cemetery Point", + "NAME": "DARKES GRAVE", + "FEATREL": "1981/01/01", + "ATTRREL": "1981/01/01", + "PLANACC": 100, + "SOURCE": "GEOSCIENCE AUSTRALIA", + "CREATED": "2006/05/09", + "RETIRED": null, + "PID": 1096220, + "SYMBOL": 451, + "FEATWIDTH": 0.0, + "ORIENTATN": 0, + "TEXTNOTE": null + }, + "geometry": { "type": "Point", "coordinates": [136.1581, -33.43105] } + }, + { + "type": "Feature", + "properties": { + "OBJECTID": 34, + "FEATTYPE": "Cemetery Point", + "NAME": null, + "FEATREL": "1981/01/01", + "ATTRREL": "1981/01/01", + "PLANACC": 100, + "SOURCE": "GEOSCIENCE AUSTRALIA", + "CREATED": "2006/05/09", + "RETIRED": null, + "PID": 1096193, + "SYMBOL": 451, + "FEATWIDTH": 0.0, + "ORIENTATN": 0, + "TEXTNOTE": "cemetery" + }, + "geometry": { "type": "Point", "coordinates": [136.19025, -33.46901] } + }, + { + "type": "Feature", + "properties": { + "OBJECTID": 35, + "FEATTYPE": "Cemetery Point", + "NAME": null, + "FEATREL": "1981/01/01", + "ATTRREL": "1981/01/01", + "PLANACC": 100, + "SOURCE": "GEOSCIENCE AUSTRALIA", + "CREATED": "2006/05/09", + "RETIRED": null, + "PID": 1096195, + "SYMBOL": 451, + "FEATWIDTH": 0.0, + "ORIENTATN": 0, + "TEXTNOTE": "cemetery" + }, + "geometry": { "type": "Point", "coordinates": [135.7496, -33.58006] } + }, + { + "type": "Feature", + "properties": { + "OBJECTID": 36, + "FEATTYPE": "Cemetery Point", + "NAME": null, + "FEATREL": "1981/01/01", + "ATTRREL": "1981/01/01", + "PLANACC": 100, + "SOURCE": "GEOSCIENCE AUSTRALIA", + "CREATED": "2006/05/09", + "RETIRED": null, + "PID": 1096185, + "SYMBOL": 451, + "FEATWIDTH": 0.0, + "ORIENTATN": 0, + "TEXTNOTE": "cemetery" + }, + "geometry": { "type": "Point", "coordinates": [135.23874, -33.86309] } + }, + { + "type": "Feature", + "properties": { + "OBJECTID": 37, + "FEATTYPE": "Cemetery Point", + "NAME": null, + "FEATREL": "1981/01/01", + "ATTRREL": "1981/01/01", + "PLANACC": 100, + "SOURCE": "GEOSCIENCE AUSTRALIA", + "CREATED": "2006/05/09", + "RETIRED": null, + "PID": 1096206, + "SYMBOL": 451, + "FEATWIDTH": 0.0, + "ORIENTATN": 0, + "TEXTNOTE": "grave" + }, + "geometry": { "type": "Point", "coordinates": [135.44408, -33.89091] } + }, + { + "type": "Feature", + "properties": { + "OBJECTID": 38, + "FEATTYPE": "Cemetery Point", + "NAME": null, + "FEATREL": "1981/01/01", + "ATTRREL": "1981/01/01", + "PLANACC": 100, + "SOURCE": "GEOSCIENCE AUSTRALIA", + "CREATED": "2006/05/09", + "RETIRED": null, + "PID": 1096187, + "SYMBOL": 451, + "FEATWIDTH": 0.0, + "ORIENTATN": 0, + "TEXTNOTE": "cemetery" + }, + "geometry": { "type": "Point", "coordinates": [135.27176, -33.94467] } + }, + { + "type": "Feature", + "properties": { + "OBJECTID": 39, + "FEATTYPE": "Cemetery Point", + "NAME": "PRESTON CEMETERY", + "FEATREL": "1979/01/01", + "ATTRREL": "1979/01/01", + "PLANACC": 100, + "SOURCE": "GEOSCIENCE AUSTRALIA", + "CREATED": "2006/05/09", + "RETIRED": null, + "PID": 1096211, + "SYMBOL": 451, + "FEATWIDTH": 0.0, + "ORIENTATN": 0, + "TEXTNOTE": null + }, + "geometry": { "type": "Point", "coordinates": [145.04105, -37.72173] } + }, + { + "type": "Feature", + "properties": { + "OBJECTID": 40, + "FEATTYPE": "Cemetery Point", + "NAME": "BOX HILL CEMETERY", + "FEATREL": "1979/01/01", + "ATTRREL": "1979/01/01", + "PLANACC": 100, + "SOURCE": "GEOSCIENCE AUSTRALIA", + "CREATED": "2006/05/09", + "RETIRED": null, + "PID": 1096212, + "SYMBOL": 451, + "FEATWIDTH": 0.0, + "ORIENTATN": 0, + "TEXTNOTE": null + }, + "geometry": { "type": "Point", "coordinates": [145.13333, -37.82342] } + }, + { + "type": "Feature", + "properties": { + "OBJECTID": 41, + "FEATTYPE": "Cemetery Point", + "NAME": "BURWOOD CEMETERY", + "FEATREL": "1979/01/01", + "ATTRREL": "1979/01/01", + "PLANACC": 100, + "SOURCE": "GEOSCIENCE AUSTRALIA", + "CREATED": "2006/05/09", + "RETIRED": null, + "PID": 1096213, + "SYMBOL": 451, + "FEATWIDTH": 0.0, + "ORIENTATN": 0, + "TEXTNOTE": null + }, + "geometry": { "type": "Point", "coordinates": [145.10413, -37.85326] } + }, + { + "type": "Feature", + "properties": { + "OBJECTID": 42, + "FEATTYPE": "Cemetery Point", + "NAME": "MORGANS GRAVE", + "FEATREL": "1972/01/01", + "ATTRREL": "1972/01/01", + "PLANACC": 100, + "SOURCE": "GEOSCIENCE AUSTRALIA", + "CREATED": "2006/05/09", + "RETIRED": null, + "PID": 1096170, + "SYMBOL": 451, + "FEATWIDTH": 0.0, + "ORIENTATN": 0, + "TEXTNOTE": null + }, + "geometry": { "type": "Point", "coordinates": [126.35373, -18.53176] } + }, + { + "type": "Feature", + "properties": { + "OBJECTID": 43, + "FEATTYPE": "Cemetery Point", + "NAME": "HASTYS GRAVE", + "FEATREL": "1984/01/01", + "ATTRREL": "1984/01/01", + "PLANACC": 100, + "SOURCE": "GEOSCIENCE AUSTRALIA", + "CREATED": "2006/05/09", + "RETIRED": null, + "PID": 1096171, + "SYMBOL": 451, + "FEATWIDTH": 0.0, + "ORIENTATN": 0, + "TEXTNOTE": null + }, + "geometry": { "type": "Point", "coordinates": [118.51832, -28.63369] } + }, + { + "type": "Feature", + "properties": { + "OBJECTID": 44, + "FEATTYPE": "Cemetery Point", + "NAME": "SHARPES GRAVE", + "FEATREL": "1986/01/01", + "ATTRREL": "1986/01/01", + "PLANACC": 100, + "SOURCE": "GEOSCIENCE AUSTRALIA", + "CREATED": "2006/05/09", + "RETIRED": null, + "PID": 1096207, + "SYMBOL": 451, + "FEATWIDTH": 0.0, + "ORIENTATN": 0, + "TEXTNOTE": null + }, + "geometry": { "type": "Point", "coordinates": [135.08303, -25.96244] } + }, + { + "type": "Feature", + "properties": { + "OBJECTID": 45, + "FEATTYPE": "Cemetery Point", + "NAME": "BOOT HILL CEMETERY", + "FEATREL": "1987/01/01", + "ATTRREL": "1987/01/01", + "PLANACC": 100, + "SOURCE": "GEOSCIENCE AUSTRALIA", + "CREATED": "2006/05/09", + "RETIRED": null, + "PID": 1096172, + "SYMBOL": 451, + "FEATWIDTH": 0.0, + "ORIENTATN": 0, + "TEXTNOTE": null + }, + "geometry": { "type": "Point", "coordinates": [134.76445, -29.02232] } + }, + { + "type": "Feature", + "properties": { + "OBJECTID": 46, + "FEATTYPE": "Cemetery Point", + "NAME": "OLD CHELTENHAM CEMETERY", + "FEATREL": "1979/01/01", + "ATTRREL": "1979/01/01", + "PLANACC": 100, + "SOURCE": "GEOSCIENCE AUSTRALIA", + "CREATED": "2006/05/09", + "RETIRED": null, + "PID": 1096214, + "SYMBOL": 451, + "FEATWIDTH": 0.0, + "ORIENTATN": 0, + "TEXTNOTE": null + }, + "geometry": { "type": "Point", "coordinates": [145.05167, -37.96839] } + }, + { + "type": "Feature", + "properties": { + "OBJECTID": 47, + "FEATTYPE": "Cemetery Point", + "NAME": "GUNDILLION CEMETERY", + "FEATREL": "1981/01/01", + "ATTRREL": "1981/01/01", + "PLANACC": 100, + "SOURCE": "GEOSCIENCE AUSTRALIA", + "CREATED": "2006/05/09", + "RETIRED": null, + "PID": 1096205, + "SYMBOL": 451, + "FEATWIDTH": 0.0, + "ORIENTATN": 0, + "TEXTNOTE": null + }, + "geometry": { "type": "Point", "coordinates": [149.64023, -35.72392] } + }, + { + "type": "Feature", + "properties": { + "OBJECTID": 48, + "FEATTYPE": "Cemetery Point", + "NAME": null, + "FEATREL": "1978/01/01", + "ATTRREL": "1978/01/01", + "PLANACC": 100, + "SOURCE": "GEOSCIENCE AUSTRALIA", + "CREATED": "2006/05/09", + "RETIRED": null, + "PID": 1096204, + "SYMBOL": 451, + "FEATWIDTH": 0.0, + "ORIENTATN": 0, + "TEXTNOTE": "cemetery" + }, + "geometry": { "type": "Point", "coordinates": [148.79613, -26.58085] } + }, + { + "type": "Feature", + "properties": { + "OBJECTID": 49, + "FEATTYPE": "Cemetery Point", + "NAME": "MOUNT CARBINE CEMETERY", + "FEATREL": "1981/01/01", + "ATTRREL": "1981/01/01", + "PLANACC": 100, + "SOURCE": "GEOSCIENCE AUSTRALIA", + "CREATED": "2006/05/09", + "RETIRED": null, + "PID": 1096224, + "SYMBOL": 451, + "FEATWIDTH": 0.0, + "ORIENTATN": 0, + "TEXTNOTE": null + }, + "geometry": { "type": "Point", "coordinates": [145.11168, -16.52816] } + }, + { + "type": "Feature", + "properties": { + "OBJECTID": 50, + "FEATTYPE": "Cemetery Point", + "NAME": "KRAEGENS GRAVE", + "FEATREL": "1987/01/01", + "ATTRREL": "1987/01/01", + "PLANACC": 100, + "SOURCE": "GEOSCIENCE AUSTRALIA", + "CREATED": "2006/05/09", + "RETIRED": null, + "PID": 1096217, + "SYMBOL": 451, + "FEATWIDTH": 0.0, + "ORIENTATN": 0, + "TEXTNOTE": null + }, + "geometry": { "type": "Point", "coordinates": [133.99689, -24.58039] } + }, + { + "type": "Feature", + "properties": { + "OBJECTID": 51, + "FEATTYPE": "Cemetery Point", + "NAME": "PROBYS GRAVE", + "FEATREL": "1983/01/01", + "ATTRREL": "1983/01/01", + "PLANACC": 100, + "SOURCE": "GEOSCIENCE AUSTRALIA", + "CREATED": "2006/05/09", + "RETIRED": null, + "PID": 1096180, + "SYMBOL": 451, + "FEATWIDTH": 0.0, + "ORIENTATN": 0, + "TEXTNOTE": null + }, + "geometry": { "type": "Point", "coordinates": [138.08989, -32.08335] } + }, + { + "type": "Feature", + "properties": { + "OBJECTID": 52, + "FEATTYPE": "Cemetery Point", + "NAME": "BALDINA CEMETERY", + "FEATREL": "1980/01/01", + "ATTRREL": "1980/01/01", + "PLANACC": 100, + "SOURCE": "GEOSCIENCE AUSTRALIA", + "CREATED": "2006/05/09", + "RETIRED": null, + "PID": 1096222, + "SYMBOL": 451, + "FEATWIDTH": 0.0, + "ORIENTATN": 0, + "TEXTNOTE": null + }, + "geometry": { "type": "Point", "coordinates": [139.13719, -33.73431] } + }, + { + "type": "Feature", + "properties": { + "OBJECTID": 53, + "FEATTYPE": "Cemetery Point", + "NAME": null, + "FEATREL": "1979/01/01", + "ATTRREL": "1979/01/01", + "PLANACC": 100, + "SOURCE": "GEOSCIENCE AUSTRALIA", + "CREATED": "2006/05/09", + "RETIRED": null, + "PID": 1096221, + "SYMBOL": 451, + "FEATWIDTH": 0.0, + "ORIENTATN": 0, + "TEXTNOTE": "cemetery" + }, + "geometry": { "type": "Point", "coordinates": [147.54326, -26.45892] } + }, + { + "type": "Feature", + "properties": { + "OBJECTID": 54, + "FEATTYPE": "Cemetery Point", + "NAME": null, + "FEATREL": "1970/01/01", + "ATTRREL": "1970/01/01", + "PLANACC": 100, + "SOURCE": "GEOSCIENCE AUSTRALIA", + "CREATED": "2006/05/09", + "RETIRED": null, + "PID": 1096198, + "SYMBOL": 451, + "FEATWIDTH": 0.0, + "ORIENTATN": 0, + "TEXTNOTE": "cemetery" + }, + "geometry": { "type": "Point", "coordinates": [137.92075, -35.72118] } + }, + { + "type": "Feature", + "properties": { + "OBJECTID": 55, + "FEATTYPE": "Cemetery Point", + "NAME": null, + "FEATREL": "1970/01/01", + "ATTRREL": "1970/01/01", + "PLANACC": 100, + "SOURCE": "GEOSCIENCE AUSTRALIA", + "CREATED": "2006/05/09", + "RETIRED": null, + "PID": 1096199, + "SYMBOL": 451, + "FEATWIDTH": 0.0, + "ORIENTATN": 0, + "TEXTNOTE": "cemetery" + }, + "geometry": { "type": "Point", "coordinates": [137.62606, -35.64741] } + }, + { + "type": "Feature", + "properties": { + "OBJECTID": 56, + "FEATTYPE": "Cemetery Point", + "NAME": "HEYWOOD CEMETERY", + "FEATREL": "1982/01/01", + "ATTRREL": "1982/01/01", + "PLANACC": 100, + "SOURCE": "GEOSCIENCE AUSTRALIA", + "CREATED": "2006/05/09", + "RETIRED": null, + "PID": 1096200, + "SYMBOL": 451, + "FEATWIDTH": 0.0, + "ORIENTATN": 0, + "TEXTNOTE": null + }, + "geometry": { "type": "Point", "coordinates": [141.60544, -37.00425] } + }, + { + "type": "Feature", + "properties": { + "OBJECTID": 57, + "FEATTYPE": "Cemetery Point", + "NAME": "BEULAH CEMETERY", + "FEATREL": "1978/01/01", + "ATTRREL": "1978/01/01", + "PLANACC": 100, + "SOURCE": "GEOSCIENCE AUSTRALIA", + "CREATED": "2006/05/09", + "RETIRED": null, + "PID": 1096201, + "SYMBOL": 451, + "FEATWIDTH": 0.0, + "ORIENTATN": 0, + "TEXTNOTE": null + }, + "geometry": { "type": "Point", "coordinates": [142.45078, -35.9333] } + }, + { + "type": "Feature", + "properties": { + "OBJECTID": 58, + "FEATTYPE": "Cemetery Point", + "NAME": "ROSEBERRY CEMETERY", + "FEATREL": "1978/01/01", + "ATTRREL": "1978/01/01", + "PLANACC": 100, + "SOURCE": "GEOSCIENCE AUSTRALIA", + "CREATED": "2006/05/09", + "RETIRED": null, + "PID": 1096202, + "SYMBOL": 451, + "FEATWIDTH": 0.0, + "ORIENTATN": 0, + "TEXTNOTE": null + }, + "geometry": { "type": "Point", "coordinates": [142.45226, -35.82088] } + }, + { + "type": "Feature", + "properties": { + "OBJECTID": 59, + "FEATTYPE": "Cemetery Point", + "NAME": "PENNYWEIGHT FLAT CHILDRENS CEMETERY", + "FEATREL": "1982/01/01", + "ATTRREL": "1982/01/01", + "PLANACC": 100, + "SOURCE": "GEOSCIENCE AUSTRALIA", + "CREATED": "2006/05/09", + "RETIRED": null, + "PID": 1096203, + "SYMBOL": 451, + "FEATWIDTH": 0.0, + "ORIENTATN": 0, + "TEXTNOTE": null + }, + "geometry": { "type": "Point", "coordinates": [144.23811, -37.06775] } + } + ] } diff --git a/wwwroot/test/GeoJSON/gme.geojson b/wwwroot/test/GeoJSON/gme.geojson index 4c564992bec..997492a4ada 100644 --- a/wwwroot/test/GeoJSON/gme.geojson +++ b/wwwroot/test/GeoJSON/gme.geojson @@ -1,6922 +1,6181 @@ { - "type": "FeatureCollection", - "features": [ - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 149.23531999999997, - -35.352484 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "NSW", - "Fcilty_nam": "Queanbeyan", - "Shp_num_an": "Shop 47", - "Shp_centre": "Riverside Plaza", - "Street_add": "131 Monaro Street", - "Locality": "Queanbeyan", - "Postcode": "2620", - "Hrs_of_bus": "09:00-17:00 Monday to Friday, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "67", - "result": "999", - "Audio": "", - "gx_id": "1" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 150.152845, - -33.485573 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "NSW", - "Fcilty_nam": "Lithgow", - "Shp_num_an": "Shop 49", - "Shp_centre": "Lithgow Valley Shopping Centre", - "Street_add": "Lithgow Street", - "Locality": "Lithgow", - "Postcode": "2790", - "Hrs_of_bus": "09:00-16:30 Monday to Friday, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "45", - "result": "200002", - "Audio": "", - "gx_id": "10" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 148.162253, - -23.524792 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "QLD", - "Fcilty_nam": "Emerald - EFT only", - "Shp_num_an": "", - "Shp_centre": "Widebay Capricorn House", - "Street_add": "50 Borilla Street", - "Locality": "Emerald", - "Postcode": "4720", - "Hrs_of_bus": "08:30-16:30 Monday to Friday, excluding Public Holidays", - "Wheelchair": "", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "266", - "result": "10", - "Audio": "", - "gx_id": "100" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 138.68569099999996, - -34.831851 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "SA", - "Fcilty_nam": "Modbury", - "Shp_num_an": "Shop 216", - "Shp_centre": "Westfield Tea Tree Plaza", - "Street_add": "976 North East Road", - "Locality": "Modbury", - "Postcode": "5092", - "Hrs_of_bus": "09:00-17:00 Monday to Friday, 9:00-19:00 Thursdays, 09:00-12:30 Saturdays, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "144", - "result": "100001", - "Audio": "YES", - "gx_id": "101" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 138.749247, - -34.598676 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "SA", - "Fcilty_nam": "Gawler", - "Shp_num_an": "Shop 4", - "Shp_centre": "", - "Street_add": "103-107 Murray Street", - "Locality": "Gawler", - "Postcode": "5118", - "Hrs_of_bus": "09:00-17:00 Monday to Friday, 09:00-12:30 Saturdays, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "142", - "result": "10", - "Audio": "", - "gx_id": "102" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 139.494399, - -20.725590999999998 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "QLD", - "Fcilty_nam": "Mt Isa", - "Shp_num_an": "Shop 7b", - "Shp_centre": "Isa Square", - "Street_add": "29 Simpson Street", - "Locality": "Mount Isa", - "Postcode": "4825", - "Hrs_of_bus": "09:00-16:30 Monday to Friday, excluding Public Holidays", - "Wheelchair": "NO", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "120", - "result": "100000", - "Audio": "", - "gx_id": "103" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 140.601162, - -34.284181 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "SA", - "Fcilty_nam": "Berri", - "Shp_num_an": "", - "Shp_centre": "", - "Street_add": "22 Vaughan Terrace", - "Locality": "Berri", - "Postcode": "5343", - "Hrs_of_bus": "09:00-16:30 Monday to Friday, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "138", - "result": "100000", - "Audio": "", - "gx_id": "104" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 140.783421, - -37.831071 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "SA", - "Fcilty_nam": "Mt Gambier", - "Shp_num_an": "Shop 1 & 2", - "Shp_centre": "Savings & Loan Plaza", - "Street_add": "7-3 Compton Street", - "Locality": "Mt Gambier", - "Postcode": "5290", - "Hrs_of_bus": "09:00-16:30 Monday to Friday, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "145", - "result": "10", - "Audio": "", - "gx_id": "105" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 141.46569, - -31.958137 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "NSW", - "Fcilty_nam": "Broken Hill", - "Shp_num_an": "Shop 9", - "Shp_centre": "Exchange Arcade", - "Street_add": "324 Argent Street", - "Locality": "Broken Hill", - "Postcode": "2880", - "Hrs_of_bus": "09:00-16:30 Monday to Friday, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "134", - "result": "100000", - "Audio": "", - "gx_id": "106" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 141.60158205, - -38.34492219 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "VIC", - "Fcilty_nam": "Portland", - "Shp_num_an": "Shop T2", - "Shp_centre": "", - "Street_add": "Fredericks Court", - "Locality": "Portland", - "Postcode": "3305", - "Hrs_of_bus": "09:00-17:00 Monday to Friday, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "196", - "result": "999", - "Audio": "", - "gx_id": "107" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 142.025785, - -37.74252 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "VIC", - "Fcilty_nam": "Hamilton", - "Shp_num_an": "", - "Shp_centre": "", - "Street_add": "184 Gray Street", - "Locality": "Hamilton", - "Postcode": "3300", - "Hrs_of_bus": "09:00-17:00 Monday to Friday, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "185", - "result": "100000", - "Audio": "", - "gx_id": "108" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 142.162225, - -34.184836 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "VIC", - "Fcilty_nam": "Mildura", - "Shp_num_an": "", - "Shp_centre": "", - "Street_add": "129 Eighth Street", - "Locality": "Mildura", - "Postcode": "3500", - "Hrs_of_bus": "09:00-17:00 Monday to Friday, 09:00-12:30 Saturdays, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "190", - "result": "100000", - "Audio": "", - "gx_id": "109" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 151.005526, - -33.731878 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "NSW", - "Fcilty_nam": "Castle Hill", - "Shp_num_an": "Shop 518", - "Shp_centre": "Castle Towers Shopping Centre", - "Street_add": "6-14 Castle Street", - "Locality": "Castle Hill", - "Postcode": "2154", - "Hrs_of_bus": "09:00-17:00 Monday to Friday, 9:00-19:00 Thursdays, 09:00-12:30 Saturdays, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "20", - "result": "10", - "Audio": "", - "gx_id": "11" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 142.197115, - -36.71312399999999 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "VIC", - "Fcilty_nam": "Horsham", - "Shp_num_an": "", - "Shp_centre": "", - "Street_add": "Cnr Darlot & McLachlan Streets", - "Locality": "Horsham", - "Postcode": "3400", - "Hrs_of_bus": "09:00-17:00 Monday to Friday, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "187", - "result": "10", - "Audio": "", - "gx_id": "110" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 142.485646, - -38.382203 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "VIC", - "Fcilty_nam": "Warrnambool", - "Shp_num_an": "", - "Shp_centre": "", - "Street_add": "109 Lava Street", - "Locality": "Warrnambool", - "Postcode": "3280", - "Hrs_of_bus": "09:00-17:00 Monday to Friday, 09:00-12:30 Saturdays, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "206", - "result": "10", - "Audio": "", - "gx_id": "111" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 142.929806, - -37.28385 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "VIC", - "Fcilty_nam": "Ararat", - "Shp_num_an": "", - "Shp_centre": "", - "Street_add": "135 Barkly Street", - "Locality": "Ararat", - "Postcode": "3377", - "Hrs_of_bus": "09:00-17:00 Monday to Friday, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "160", - "result": "100000", - "Audio": "", - "gx_id": "112" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 143.562081, - -35.345529 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "VIC", - "Fcilty_nam": "Swan Hill", - "Shp_num_an": "", - "Shp_centre": "", - "Street_add": "270 Campbell Street", - "Locality": "Swan Hill", - "Postcode": "3585", - "Hrs_of_bus": "09:00-17:00 Monday to Friday, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "202", - "result": "100000", - "Audio": "", - "gx_id": "113" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 143.58852144, - -38.33825147 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "VIC", - "Fcilty_nam": "Colac", - "Shp_num_an": "", - "Shp_centre": "", - "Street_add": "55 Dennis Street", - "Locality": "Colac", - "Postcode": "3250", - "Hrs_of_bus": "09:00-17:00 Monday to Friday, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "173", - "result": "999", - "Audio": "", - "gx_id": "114" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 143.856336, - -37.560788 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "VIC", - "Fcilty_nam": "Ballarat", - "Shp_num_an": "", - "Shp_centre": "", - "Street_add": "11a Armstrong Street North", - "Locality": "Ballarat", - "Postcode": "3350", - "Hrs_of_bus": "09:00-17:00 Monday to Friday, 09:00-12:30 Saturdays, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "162", - "result": "999", - "Audio": "", - "gx_id": "115" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 144.279353, - -36.761909 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "VIC", - "Fcilty_nam": "Bendigo", - "Shp_num_an": "", - "Shp_centre": "", - "Street_add": "56 Queen Street", - "Locality": "Bendigo", - "Postcode": "3550", - "Hrs_of_bus": "09:00-17:00 Monday to Friday, 09:00-12:30 Saturdays, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "163", - "result": "100000", - "Audio": "", - "gx_id": "116" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 144.278586, - -38.207802 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "VIC", - "Fcilty_nam": "Waurn Ponds", - "Shp_num_an": "Shop 702", - "Shp_centre": "Waurn Ponds Shopping Centre", - "Street_add": "Cnr Pioneer Road & Princes Highway", - "Locality": "Waurn Ponds", - "Postcode": "3221", - "Hrs_of_bus": "09:00-17:00 Monday to Friday, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "207", - "result": "200002", - "Audio": "", - "gx_id": "117" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 144.358645, - -38.065907 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "VIC", - "Fcilty_nam": "Corio", - "Shp_num_an": "Shop 12", - "Shp_centre": "Corio Shopping Centre", - "Street_add": "Bacchus Marsh Road", - "Locality": "Corio", - "Postcode": "3214", - "Hrs_of_bus": "09:00-17:00 Monday to Friday, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "175", - "result": "200002", - "Audio": "", - "gx_id": "118" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 144.993863, - -37.847036 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "VIC", - "Fcilty_nam": "Prahran", - "Shp_num_an": "Shop M53, Mezzanine level", - "Shp_centre": "Pran Central", - "Street_add": "Cnr Chapel Street and Commercial Road", - "Locality": "Prahran", - "Postcode": "3181", - "Hrs_of_bus": "09:00-17:00 Monday to Friday, 09:00-12:30 Saturdays, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "197", - "result": "999", - "Audio": "", - "gx_id": "119" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 151.01464599999997, - -34.06554 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "NSW", - "Fcilty_nam": "Engadine", - "Shp_num_an": "Shop 14", - "Shp_centre": "Engadine Court", - "Street_add": "101 Caldarra Avenue", - "Locality": "Engadine", - "Postcode": "2233", - "Hrs_of_bus": "09:00-17:00 Monday to Friday, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "29", - "result": "100000", - "Audio": "", - "gx_id": "12" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 145.000147, - -37.769003 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "VIC", - "Fcilty_nam": "Northcote", - "Shp_num_an": "Shop 22/23", - "Shp_centre": "Northcote Central Shopping Ctr", - "Street_add": "17 Separation Street", - "Locality": "Northcote", - "Postcode": "3070", - "Hrs_of_bus": "09:00-17:00 Monday to Friday, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "194", - "result": "999", - "Audio": "", - "gx_id": "120" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 145.004204, - -37.884814 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "VIC", - "Fcilty_nam": "Elsternwick", - "Shp_num_an": "", - "Shp_centre": "", - "Street_add": "384 Glen Huntly Road", - "Locality": "Elsternwick", - "Postcode": "3185", - "Hrs_of_bus": "09:00-17:00 Monday to Friday, 09:00-12:30 Saturdays, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "179", - "result": "100000", - "Audio": "", - "gx_id": "121" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 145.025241, - -37.740269 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "VIC", - "Fcilty_nam": "Preston - Northland", - "Shp_num_an": "Shop F07,", - "Shp_centre": "Northland Shopping Centre,", - "Street_add": "50 Murray Road", - "Locality": "Preston", - "Postcode": "3072", - "Hrs_of_bus": "09:00-17:00 Monday to Friday, 09:00-12:30 Saturdays, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "195", - "result": "10", - "Audio": "", - "gx_id": "122" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 145.038547, - -37.918511 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "VIC", - "Fcilty_nam": "Bentleigh", - "Shp_num_an": "", - "Shp_centre": "", - "Street_add": "440 Centre Road", - "Locality": "Bentleigh", - "Postcode": "3204", - "Hrs_of_bus": "09:00-17:00 Monday to Friday, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "164", - "result": "100000", - "Audio": "YES", - "gx_id": "123" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 145.040785, - -38.22310099999999 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "VIC", - "Fcilty_nam": "Mornington", - "Shp_num_an": "Shop 105", - "Shp_centre": "Village Shopping Centre", - "Street_add": "Main Street", - "Locality": "Mornington", - "Postcode": "3931", - "Hrs_of_bus": "09:00-17:00 Monday to Friday, 09:00-12:30 Saturdays, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "192", - "result": "200002", - "Audio": "", - "gx_id": "124" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 145.054595, - -37.960986999999996 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "VIC", - "Fcilty_nam": "Cheltenham - Southland", - "Shp_num_an": "Shop 3044, Level 3", - "Shp_centre": "Southland Shoppingtown", - "Street_add": "1239 Nepean Highway", - "Locality": "Cheltenham", - "Postcode": "3192", - "Hrs_of_bus": "09:00-17:00 Monday to Friday, 9:00-19:00 Thursday, 09:00-12:30 Saturday, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "201", - "result": "100001", - "Audio": "", - "gx_id": "125" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 145.057273, - -37.831345 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "VIC", - "Fcilty_nam": "Camberwell", - "Shp_num_an": "", - "Shp_centre": "", - "Street_add": "527 Riversdale Road", - "Locality": "Camberwell", - "Postcode": "3124", - "Hrs_of_bus": "09:00-17:00 Monday to Friday, 09:00-12:30 Saturdays, excluding Public Holidays,", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "168", - "result": "100000", - "Audio": "YES", - "gx_id": "126" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 145.08131064, - -37.88635881 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "VIC", - "Fcilty_nam": "Chadstone", - "Shp_num_an": "Shop B158, Lower Level", - "Shp_centre": "Chadstone Shopping Centre", - "Street_add": "1341 Dandenong Road", - "Locality": "Chadstone", - "Postcode": "3148", - "Hrs_of_bus": "09:00-17:00 Monday to Friday, 9:00-19:00 Thursdays, 09:00-12:30 Saturdays, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "170", - "result": "999", - "Audio": "", - "gx_id": "127" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 145.103282, - -37.703998 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "VIC", - "Fcilty_nam": "Greensborough", - "Shp_num_an": "Shop 110-111, Level 1", - "Shp_centre": "Greensborough Plaza", - "Street_add": "25 Main Street", - "Locality": "Greensborough", - "Postcode": "3088", - "Hrs_of_bus": "09:00-17:00 Monday to Friday, 9:00-19:00 Thursdays, 09:00-12:30 Saturdays, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "184", - "result": "10", - "Audio": "", - "gx_id": "128" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 145.122547, - -37.818999 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "VIC", - "Fcilty_nam": "Box Hill", - "Shp_num_an": "Shop South 15", - "Shp_centre": "Centro Box Hill", - "Street_add": "Main Street", - "Locality": "Box Hill", - "Postcode": "3128", - "Hrs_of_bus": "09:00-17:00 Monday to Friday, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "166", - "result": "999", - "Audio": "", - "gx_id": "129" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 151.040138, - -33.917178 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "NSW", - "Fcilty_nam": "Bankstown", - "Shp_num_an": "Shop 219b", - "Shp_centre": "Bankstown Centro", - "Street_add": "Cnr Lady Cutler Avenue & North Terrace", - "Locality": "Bankstown", - "Postcode": "2200", - "Hrs_of_bus": "09:00-17:00 Monday to Friday, 09:00-12:30 Saturdays, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "8", - "result": "10", - "Audio": "", - "gx_id": "13" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 145.12370803999997, - -38.14062238 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "VIC", - "Fcilty_nam": "Frankston", - "Shp_num_an": "Shop G001Q", - "Shp_centre": "Bayside Shopping Centre", - "Street_add": "Olsen Street", - "Locality": "Frankston", - "Postcode": "3199", - "Hrs_of_bus": "09:00-17:00 Monday to Friday, 9:00-19:00 Thursdays, 09:00-12:30 Saturdays, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "181", - "result": "999", - "Audio": "", - "gx_id": "130" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 145.125791, - -37.775535 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "VIC", - "Fcilty_nam": "Doncaster", - "Shp_num_an": "Suite 1001", - "Shp_centre": "Doncaster Shoppingtown", - "Street_add": "Williamsons Road", - "Locality": "Doncaster", - "Postcode": "3108", - "Hrs_of_bus": "09:00-17:00 Monday to Friday, 09:00-12:30 Saturdays, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "177", - "result": "200002", - "Audio": "", - "gx_id": "131" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 145.184646, - -37.93664199999999 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "VIC", - "Fcilty_nam": "Waverley Gardens", - "Shp_num_an": "Shop 58", - "Shp_centre": "Waverley Gardens Shopping Ctr", - "Street_add": "Police Road", - "Locality": "Mulgrave", - "Postcode": "3170", - "Hrs_of_bus": "09:00-17:00 Monday to Friday, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "208", - "result": "200002", - "Audio": "", - "gx_id": "132" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 145.166304, - -37.87668099999999 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "VIC", - "Fcilty_nam": "Glen Waverley", - "Shp_num_an": "Shop 5, Level 1", - "Shp_centre": "The Glen Shopping Centre", - "Street_add": "235 Springvale Road", - "Locality": "Glen Waverley", - "Postcode": "3150", - "Hrs_of_bus": "09:00-17:00 Monday to Friday, 9:00-18:00 Thursdays, 09:00-12:30 Saturdays, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "183", - "result": "100000", - "Audio": "YES", - "gx_id": "133" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 145.16532097999996, - -37.83470177 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "VIC", - "Fcilty_nam": "Forest Hill", - "Shp_num_an": "Shop T142", - "Shp_centre": "Forest Hill Chase Shopping Ctr", - "Street_add": "Canterbury Road", - "Locality": "Forest Hill", - "Postcode": "3131", - "Hrs_of_bus": "09:00-17:00 Monday to Friday, 09:00-12:30 Saturdays, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "180", - "result": "999", - "Audio": "", - "gx_id": "134" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 145.21956, - -37.990225 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "VIC", - "Fcilty_nam": "Dandenong", - "Shp_num_an": "Shop 115", - "Shp_centre": "Dandenong Palm Plaza", - "Street_add": "Mccrae Street", - "Locality": "Dandenong", - "Postcode": "3175", - "Hrs_of_bus": "09:00-17:00 Monday to Friday, 9:00-19:00 Thursdays and 09:00-12:30 Saturdays, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "176", - "result": "200002", - "Audio": "", - "gx_id": "135" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 145.22952299999997, - -37.815148 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "VIC", - "Fcilty_nam": "Ringwood", - "Shp_num_an": "Shop L108", - "Shp_centre": "Eastland Shopping Centre", - "Street_add": "171 Maroondah Highway", - "Locality": "Ringwood", - "Postcode": "3134", - "Hrs_of_bus": "09:00-17:00 Monday to Friday, 9:00-19:00 Thursdays, 09:00-12:30 Saturdays, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "198", - "result": "10", - "Audio": "", - "gx_id": "136" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 145.235211, - -37.868979 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "VIC", - "Fcilty_nam": "Wantirna South - Knox City", - "Shp_num_an": "Shop 1091", - "Shp_centre": "Knox City Shopping Centre", - "Street_add": "Cnr Burwood Hwy & Stud Rd", - "Locality": "Wantirna South", - "Postcode": "3152", - "Hrs_of_bus": "09:00-17:00 Monday to Friday, 9:00-19:00 Thursdays, 09:00-12:30 Saturdays, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "188", - "result": "100000", - "Audio": "", - "gx_id": "137" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 145.282415, - -38.10175199999999 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "VIC", - "Fcilty_nam": "Cranbourne", - "Shp_num_an": "Shop 61,", - "Shp_centre": "Centro Cranbourne Shopping Centre,", - "Street_add": "High Street", - "Locality": "Cranbourne", - "Postcode": "3977", - "Hrs_of_bus": "09:00-17:00 Monday to Friday, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "249", - "result": "200002", - "Audio": "", - "gx_id": "138" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 145.302884, - -38.023447 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "VIC", - "Fcilty_nam": "Narre Warren - Fountain Gate", - "Shp_num_an": "1158", - "Shp_centre": "Westfield Fountain Gate Shopping Centre", - "Street_add": "352 Princes Highway", - "Locality": "Narre Warren", - "Postcode": "3805", - "Hrs_of_bus": "09:00-17:00 Monday to Friday, 9:00-19:00 Thursdays, 09:00-12:30 Saturdays, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "242", - "result": "100000", - "Audio": "", - "gx_id": "139" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 151.068843, - -33.935046 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "NSW", - "Fcilty_nam": "Roselands", - "Shp_num_an": "Shop 92, Lower Ground Floor", - "Shp_centre": "Centro Roselands", - "Street_add": "Roselands Drive", - "Locality": "Roselands", - "Postcode": "2196", - "Hrs_of_bus": "09:00-17:00 Monday to Friday, 09:00-12:30 Saturdays, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "70", - "result": "999", - "Audio": "", - "gx_id": "14" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 145.328297, - -37.760394 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "VIC", - "Fcilty_nam": "Chirnside Park", - "Shp_num_an": "Shop 713", - "Shp_centre": "Chirnside Park Shopping Centre", - "Street_add": "Maroondah Highway", - "Locality": "Chirnside Park", - "Postcode": "3116", - "Hrs_of_bus": "09:00-17:00 Monday to Friday, 9:00-18:00 Thursdays, 09:00-12:30 Saturdays, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "171", - "result": "200002", - "Audio": "", - "gx_id": "140" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 145.400015, - -36.37982999999999 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "VIC", - "Fcilty_nam": "Shepparton", - "Shp_num_an": "Shop 3", - "Shp_centre": "City Walk Arcade", - "Street_add": "306 Wyndham Street", - "Locality": "Shepparton", - "Postcode": "3630", - "Hrs_of_bus": "09:00-17:00 Monday to Friday, 09:00-12:30 Saturdays, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "200", - "result": "999", - "Audio": "", - "gx_id": "141" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 145.47792, - -17.265034 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "Qld", - "Fcilty_nam": "Atherton", - "Shp_num_an": "", - "Shp_centre": "", - "Street_add": "30 Mabel Street", - "Locality": "Atherton", - "Postcode": "4883", - "Hrs_of_bus": "09:00-16:30 Monday to Friday, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "91", - "result": "100000", - "Audio": "", - "gx_id": "142" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 145.69201716, - -16.83848737 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "QLD", - "Fcilty_nam": "Smithfield", - "Shp_num_an": "Shop 77", - "Shp_centre": "Smithfield Shopping Centre", - "Street_add": "Cnr Kennedy & Captain Cook Highways", - "Locality": "Smithfield", - "Postcode": "4878", - "Hrs_of_bus": "09:00-17:00 Monday to Friday, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "125", - "result": "999", - "Audio": "", - "gx_id": "143" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 145.774177, - -16.926226 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "QLD", - "Fcilty_nam": "Cairns", - "Shp_num_an": "Shop QL 15-19", - "Shp_centre": "Cairns Central", - "Street_add": "Cnr McLeod & Spence Streets", - "Locality": "Cairns", - "Postcode": "4870", - "Hrs_of_bus": "09:00-17:00 Monday to Friday, 9:00-18:00 Thursdays, 09:00-12:30 Saturdays, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "97", - "result": "10", - "Audio": "", - "gx_id": "144" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 145.907662, - -41.051096 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "TAS", - "Fcilty_nam": "Burnie", - "Shp_num_an": "Shop 2", - "Shp_centre": "Columnar Shopping Centre", - "Street_add": "22 Wilmot Street", - "Locality": "Burnie", - "Postcode": "7320", - "Hrs_of_bus": "09:00-17:00 Monday to Friday, 09:00-12:30 Saturdays, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "151", - "result": "10", - "Audio": "", - "gx_id": "145" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 145.928879, - -38.163253 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "VIC", - "Fcilty_nam": "Warragul", - "Shp_num_an": "", - "Shp_centre": "", - "Street_add": "42 Queen Street", - "Locality": "Warragul", - "Postcode": "3820", - "Hrs_of_bus": "08:30-16:30 Monday to Friday, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "205", - "result": "10", - "Audio": "", - "gx_id": "146" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 146.031315, - -17.524061 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "Qld", - "Fcilty_nam": "Innisfail", - "Shp_num_an": "Shop 30", - "Shp_centre": "The Central Shopping Centre", - "Street_add": "20 Edith Street", - "Locality": "Innisfail", - "Postcode": "4860", - "Hrs_of_bus": "09:00-16:30 Monday to Friday, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "112", - "result": "100000", - "Audio": "", - "gx_id": "147" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 146.044251, - -34.28791 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "NSW", - "Fcilty_nam": "Griffith", - "Shp_num_an": "", - "Shp_centre": "", - "Street_add": "352-354 Banna Avenue", - "Locality": "Griffith", - "Postcode": "2680", - "Hrs_of_bus": "09:00-16:30 Monday to Friday, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "35", - "result": "10", - "Audio": "", - "gx_id": "148" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 146.160517, - -18.647932 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "QLD", - "Fcilty_nam": "Ingham", - "Shp_num_an": "Shop 9/10", - "Shp_centre": "Hinchinbrook Central", - "Street_add": "86-92 Herbert Street", - "Locality": "Ingham", - "Postcode": "4850", - "Hrs_of_bus": "09:00-16:30 Monday to Friday, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "111", - "result": "10", - "Audio": "", - "gx_id": "149" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 151.081161, - -33.791683 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "NSW", - "Fcilty_nam": "Eastwood", - "Shp_num_an": "Shop 25", - "Shp_centre": "Eastwood Centre", - "Street_add": "160 Rowe Street", - "Locality": "Eastwood", - "Postcode": "2122", - "Hrs_of_bus": "09:00-17:00 Monday to Friday, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "28", - "result": "100000", - "Audio": "YES", - "gx_id": "15" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 146.325502, - -36.356378 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "VIC", - "Fcilty_nam": "Wangaratta", - "Shp_num_an": "", - "Shp_centre": "", - "Street_add": "28-30 Murphy Street", - "Locality": "Wangaratta", - "Postcode": "3677", - "Hrs_of_bus": "09:00-17:00 Monday to Friday, 09:00-12:30 Saturdays, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "204", - "result": "100000", - "Audio": "", - "gx_id": "150" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 146.360468, - -41.181044 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "TAS", - "Fcilty_nam": "Devonport", - "Shp_num_an": "", - "Shp_centre": "", - "Street_add": "18 Rooke Street", - "Locality": "Devonport", - "Postcode": "7310", - "Hrs_of_bus": "09:00-17:00 Monday to Friday, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "152", - "result": "100000", - "Audio": "", - "gx_id": "151" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 146.399519, - -38.23804499999999 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "VIC", - "Fcilty_nam": "Morwell", - "Shp_num_an": "", - "Shp_centre": "", - "Street_add": "246 Commercial Road", - "Locality": "Morwell", - "Postcode": "3840", - "Hrs_of_bus": "09:00-17:00 Monday to Friday, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "193", - "result": "100000", - "Audio": "", - "gx_id": "152" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 146.536736, - -38.197385 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "VIC", - "Fcilty_nam": "Traralgon", - "Shp_num_an": "Shop 1", - "Shp_centre": "", - "Street_add": "81 Hotham Street", - "Locality": "Traralgon", - "Postcode": "3844", - "Hrs_of_bus": "09:00-17:00 Monday to Friday, 09:00-12:30 Saturdays, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "203", - "result": "100000", - "Audio": "", - "gx_id": "153" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 146.764721, - -19.298838 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "QLD", - "Fcilty_nam": "Aitkenvale", - "Shp_num_an": "6s", - "Shp_centre": "Sunvale Shopping Centre", - "Street_add": "61-63 Elizabeth Street", - "Locality": "Aitkenvale", - "Postcode": "4814", - "Hrs_of_bus": "09:00-17:00 Monday to Friday, 9:00-18:00 Thursdays, 09:00-12:30 Saturdays, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "89", - "result": "10", - "Audio": "", - "gx_id": "154" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 146.8176287, - -19.25945453 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "QLD", - "Fcilty_nam": "Townsville", - "Shp_num_an": "Shop 1", - "Shp_centre": "Northtown On The Mall", - "Street_add": "Flinders Street", - "Locality": "Townsville", - "Postcode": "4810", - "Hrs_of_bus": "09:00-16:30 Monday to Friday, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "130", - "result": "999", - "Audio": "", - "gx_id": "155" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 146.888076, - -36.121221 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "VIC", - "Fcilty_nam": "Wodonga", - "Shp_num_an": "Shop 4", - "Shp_centre": "", - "Street_add": "123-125 High Street", - "Locality": "Wodonga", - "Postcode": "3690", - "Hrs_of_bus": "09:00-17:00 Monday to Friday, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "210", - "result": "10", - "Audio": "", - "gx_id": "156" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 146.91907, - -36.081193 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "NSW", - "Fcilty_nam": "Albury", - "Shp_num_an": "", - "Shp_centre": "", - "Street_add": "489 Dean Street", - "Locality": "Albury", - "Postcode": "2640", - "Hrs_of_bus": "09:00-17:00 Monday to Friday, 09:00-12:30 Saturdays, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "5", - "result": "100000", - "Audio": "", - "gx_id": "157" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 147.065449, - -38.106913 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "VIC", - "Fcilty_nam": "Sale", - "Shp_num_an": "", - "Shp_centre": "", - "Street_add": "301 Raymond Street", - "Locality": "Sale", - "Postcode": "3850", - "Hrs_of_bus": "09:00-17:00 Monday to Friday, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "199", - "result": "100000", - "Audio": "", - "gx_id": "158" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 147.139445, - -41.43824 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "TAS", - "Fcilty_nam": "Launceston", - "Shp_num_an": "", - "Shp_centre": "", - "Street_add": "90 St John Street", - "Locality": "Launceston", - "Postcode": "7250", - "Hrs_of_bus": "08:30-17:00 Monday to Friday, 09:00-12:30 Saturdays, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "157", - "result": "100000", - "Audio": "", - "gx_id": "159" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 151.098693, - -33.704617 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "NSW", - "Fcilty_nam": "Hornsby", - "Shp_num_an": "Shop 3111, Level 3", - "Shp_centre": "Westfield Hornsby", - "Street_add": "Cnr Florence & Hunter Streets", - "Locality": "Hornsby", - "Postcode": "2077", - "Hrs_of_bus": "09:00-17:00 Monday to Friday, 09:00-19:00 Thursdays, 09:00-12:30 Saturdays, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "37", - "result": "100000", - "Audio": "", - "gx_id": "16" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 147.27380499999998, - -42.832723 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "TAS", - "Fcilty_nam": "Glenorchy", - "Shp_num_an": "Shop 52", - "Shp_centre": "Northgate Shopping Centre", - "Street_add": "387 Main Road", - "Locality": "Glenorchy", - "Postcode": "7010", - "Hrs_of_bus": "09:00-17:00 Monday to Fridays, 09:00-12:30 Saturdays, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "154", - "result": "100000", - "Audio": "", - "gx_id": "160" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 147.308703, - -42.975709 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "TAS", - "Fcilty_nam": "Kingston", - "Shp_num_an": "Shop 52/53", - "Shp_centre": "Channel Court Shopping Centre", - "Street_add": "Channel Highway", - "Locality": "Kingston", - "Postcode": "7050", - "Hrs_of_bus": "09:00-17:00 Monday to Friday, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "156", - "result": "999", - "Audio": "", - "gx_id": "161" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 147.328923, - -42.882189 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "TAS", - "Fcilty_nam": "Hobart", - "Shp_num_an": "Shop 7", - "Shp_centre": "Trafalgar Centre", - "Street_add": "110 Collins Street", - "Locality": "Hobart", - "Postcode": "7000", - "Hrs_of_bus": "08:30-17:00 Monday to Friday, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "155", - "result": "100000", - "Audio": "YES", - "gx_id": "162" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 147.369074, - -35.117087 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "NSW", - "Fcilty_nam": "Wagga Wagga", - "Shp_num_an": "Shop 1", - "Shp_centre": "The Piazza", - "Street_add": "46-50 Baylis Street", - "Locality": "Wagga Wagga", - "Postcode": "2650", - "Hrs_of_bus": "09:00-17:00 Monday to Friday, 9:00-18:00 Thursdays, 09:00-12:30 Saturdays, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "82", - "result": "10", - "Audio": "", - "gx_id": "163" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 147.370203, - -42.866406999999995 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "TAS", - "Fcilty_nam": "Rosny Park", - "Shp_num_an": "", - "Shp_centre": "", - "Street_add": "8 Bayfield Street", - "Locality": "Rosny Park", - "Postcode": "7018", - "Hrs_of_bus": "09:00-17:00 Monday to Friday, 09:00-12:30 Saturdays, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "153", - "result": "100000", - "Audio": "", - "gx_id": "164" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 147.40808799999996, - -19.572817 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "QLD", - "Fcilty_nam": "Ayr", - "Shp_num_an": "Shop 11", - "Shp_centre": "East End Centre", - "Street_add": "Parker Street", - "Locality": "Ayr", - "Postcode": "4807", - "Hrs_of_bus": "09:00-16:30 Monday to Friday, excluding Public Holidays", - "Wheelchair": "NO", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "92", - "result": "200000", - "Audio": "", - "gx_id": "165" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 147.62946999999997, - -37.826265 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "VIC", - "Fcilty_nam": "Bairnsdale", - "Shp_num_an": "", - "Shp_centre": "", - "Street_add": "23 Service Street", - "Locality": "Bairnsdale", - "Postcode": "3875", - "Hrs_of_bus": "09:00-17:00 Monday to Friday, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "161", - "result": "100000", - "Audio": "", - "gx_id": "166" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 148.17595642, - -33.13431983 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "NSW", - "Fcilty_nam": "Parkes", - "Shp_num_an": "", - "Shp_centre": "", - "Street_add": "57 Currajong St", - "Locality": "Parkes", - "Postcode": "2870", - "Hrs_of_bus": "09:00-16:30 Monday to Friday, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "63", - "result": "999", - "Audio": "", - "gx_id": "167" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 148.23987486, - -20.00192125 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "QLD", - "Fcilty_nam": "Bowen", - "Shp_num_an": "Shop 1", - "Shp_centre": "Centrepoint Plaza", - "Street_add": "16 Richmond Road", - "Locality": "Bowen", - "Postcode": "4805", - "Hrs_of_bus": "09:00-16:30 Monday to Friday, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "94", - "result": "999", - "Audio": "", - "gx_id": "168" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 148.29205119, - -34.31099923 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "NSW", - "Fcilty_nam": "Young", - "Shp_num_an": "", - "Shp_centre": "", - "Street_add": "130 Lovell Street", - "Locality": "Young", - "Postcode": "2594", - "Hrs_of_bus": "09:00-16:30 Monday to Friday, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "87", - "result": "999", - "Audio": "", - "gx_id": "169" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 151.100428, - -34.034014 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "NSW", - "Fcilty_nam": "Miranda", - "Shp_num_an": "Shop 1006, Level 1", - "Shp_centre": "Westfield Miranda", - "Street_add": "600 The Kingsway", - "Locality": "Miranda", - "Postcode": "2228", - "Hrs_of_bus": "08:30-17:00 Monday to Friday, 8:30-18:00 Thursdays, 08:30-12:30 Saturdays, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "51", - "result": "80", - "Audio": "", - "gx_id": "17" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 148.600657, - -32.25034 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "NSW", - "Fcilty_nam": "Dubbo", - "Shp_num_an": "Shop 14a", - "Shp_centre": "Centro Dubbo", - "Street_add": "177 Macquarie Street", - "Locality": "Dubbo", - "Postcode": "2830", - "Hrs_of_bus": "09:00-17:00 Monday to Friday, 09:00-12:30 Saturdays, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "27", - "result": "10", - "Audio": "", - "gx_id": "170" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 148.68871, - -33.834412 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "NSW", - "Fcilty_nam": "Cowra", - "Shp_num_an": "Shop 16-17", - "Shp_centre": "Cowra Plaza", - "Street_add": "59 Kendall Street", - "Locality": "Cowra", - "Postcode": "2794", - "Hrs_of_bus": "09:00-16:30 Monday to Friday, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "26", - "result": "100110", - "Audio": "", - "gx_id": "171" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 149.06605699999997, - -35.237818 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "ACT", - "Fcilty_nam": "Belconnen", - "Shp_num_an": "Shop 167, Level 3", - "Shp_centre": "Westfield Belconnen", - "Street_add": "Benjamin Way", - "Locality": "Belconnen", - "Postcode": "2617", - "Hrs_of_bus": "09:00-17:00 Monday to Thursday, 9:00-18:00 Fridays, 09:00-12:30 Saturdays, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "2", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "1", - "result": "999", - "Audio": "YES", - "gx_id": "172" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 149.066728, - -35.416214 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "ACT", - "Fcilty_nam": "Greenway - Tuggeranong", - "Shp_num_an": "Shop 73, Ground Floor", - "Shp_centre": "Tuggeranong Hyperdome", - "Street_add": "Anketell Street", - "Locality": "Greenway", - "Postcode": "2900", - "Hrs_of_bus": "09:00-17:00 Monday to Friday, 09:00-12:30 Saturdays, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "3", - "result": "999", - "Audio": "", - "gx_id": "173" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 149.086487, - -35.345735 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "ACT", - "Fcilty_nam": "Phillip - Woden", - "Shp_num_an": "Shop 66 Ground Level", - "Shp_centre": "Westfield Woden", - "Street_add": "Keltie Street", - "Locality": "Woden", - "Postcode": "2606", - "Hrs_of_bus": "09:00-17:00 Monday to Thursday, 9:00-19:00 Fridays, 09:00-12:30 Saturdays, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "4", - "result": "999", - "Audio": "YES", - "gx_id": "174" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 149.098612, - -33.28449199999999 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "NSW", - "Fcilty_nam": "Orange", - "Shp_num_an": "Shops V6 & V7,", - "Shp_centre": "Orange City Centre,", - "Street_add": "190 Anson Street", - "Locality": "Orange", - "Postcode": "2800", - "Hrs_of_bus": "09:00-17:00 Monday to Friday, 09:00-12:30 Saturdays, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "61", - "result": "100000", - "Audio": "", - "gx_id": "175" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 149.124956, - -36.23603899999999 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "NSW", - "Fcilty_nam": "Cooma", - "Shp_num_an": "", - "Shp_centre": "", - "Street_add": "57 Vale Street", - "Locality": "Cooma", - "Postcode": "2630", - "Hrs_of_bus": "09:00-16:30 Monday to Friday, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "25", - "result": "100000", - "Audio": "", - "gx_id": "176" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 149.13133, - -35.279986 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "ACT", - "Fcilty_nam": "Canberra City - Civic", - "Shp_num_an": "Shop 2", - "Shp_centre": "Savings House", - "Street_add": "8 Petrie Plaza", - "Locality": "Canberra City", - "Postcode": "2600", - "Hrs_of_bus": "08:30-17:00 Monday to Friday, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "2", - "result": "104000", - "Audio": "", - "gx_id": "177" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 149.134843, - -35.184555 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "ACT", - "Fcilty_nam": "Gungahlin", - "Shp_num_an": "Shop 33 (entry via Gungahlin Place West)", - "Shp_centre": "Gungahlin Market Place", - "Street_add": "33 Hibberson Street", - "Locality": "Gungahlin", - "Postcode": "2912", - "Hrs_of_bus": "09:00-17:00 Monday to Friday, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "257", - "result": "999", - "Audio": "", - "gx_id": "178" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 149.180477, - -21.13838 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "QLD", - "Fcilty_nam": "Mackay", - "Shp_num_an": "Shop 125, Ground Level", - "Shp_centre": "Caneland Central", - "Street_add": "Mangrove Road", - "Locality": "Mackay", - "Postcode": "4740", - "Hrs_of_bus": "09:00-17:00 Monday to Friday, 09:00-12:30 Saturdays, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "117", - "result": "200002", - "Audio": "", - "gx_id": "179" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 151.10463499999997, - -33.874246 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "NSW", - "Fcilty_nam": "Burwood", - "Shp_num_an": "Shop 334-335, Level 2", - "Shp_centre": "Westfield Burwood", - "Street_add": "100 Burwood Road", - "Locality": "Burwood", - "Postcode": "2134", - "Hrs_of_bus": "09:00-17:00 Monday to Friday, 09:00-12:30 Saturdays, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "16", - "result": "100000", - "Audio": "", - "gx_id": "18" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 150.177443, - -35.709362 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "NSW", - "Fcilty_nam": "Batemans Bay", - "Shp_num_an": "Shop 3-4", - "Shp_centre": "Fenning Arcade", - "Street_add": "Orient Street", - "Locality": "Batemans Bay", - "Postcode": "2536", - "Hrs_of_bus": "09:00-16:30 Monday to Friday, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "9", - "result": "999", - "Audio": "", - "gx_id": "180" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 150.252346, - -30.977253 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "NSW", - "Fcilty_nam": "Gunnedah", - "Shp_num_an": "", - "Shp_centre": "", - "Street_add": "183 Conadilly Street", - "Locality": "Gunnedah", - "Postcode": "2380", - "Hrs_of_bus": "09:00-16:30 Monday to Friday, excluding Public Holidays", - "Wheelchair": "NO", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "36", - "result": "100000", - "Audio": "", - "gx_id": "181" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 150.309526, - -33.717119 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "NSW", - "Fcilty_nam": "Katoomba", - "Shp_num_an": "", - "Shp_centre": "", - "Street_add": "33-35 Waratah Street", - "Locality": "Katoomba", - "Postcode": "2780", - "Hrs_of_bus": "08:30-16:30 Monday to Friday, excluding Public Holidays", - "Wheelchair": "NO", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "40", - "result": "10", - "Audio": "", - "gx_id": "182" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 150.41820299999998, - -34.476913 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "NSW", - "Fcilty_nam": "Bowral", - "Shp_num_an": "", - "Shp_centre": "", - "Street_add": "266 Bong Bong Street", - "Locality": "Bowral", - "Postcode": "2576", - "Hrs_of_bus": "09:00-17:00 Monday to Friday, 09:00-12:30 Saturdays, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "14", - "result": "200002", - "Audio": "", - "gx_id": "183" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 150.472546, - -35.356925 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "NSW", - "Fcilty_nam": "Ulladulla", - "Shp_num_an": "", - "Shp_centre": "", - "Street_add": "270 Green Street", - "Locality": "Ulladulla", - "Postcode": "2539", - "Hrs_of_bus": "08:30-16:30 Monday to Friday, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "80", - "result": "10", - "Audio": "", - "gx_id": "184" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 150.510143, - -23.376918 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "Qld", - "Fcilty_nam": "Rockhampton", - "Shp_num_an": "Shop 20A", - "Shp_centre": "City Centre Plaza", - "Street_add": "Cnr Bolsover and Fitzroy Street", - "Locality": "Rockhampton", - "Postcode": "4700", - "Hrs_of_bus": "09:00-17:00 Monday to Friday, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "124", - "result": "999", - "Audio": "", - "gx_id": "185" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 150.52395232999996, - -23.35196747 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "QLD", - "Fcilty_nam": "Nth Rockhampton", - "Shp_num_an": "Shop 001LA", - "Shp_centre": "Stockland Rockhampton", - "Street_add": "Cnr Yaamba Road & Bruce Hwy", - "Locality": "North Rockhampton", - "Postcode": "4701", - "Hrs_of_bus": "09:00-17:00 Monday to Friday, 09:00-12:30 Saturdays, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "122", - "result": "999", - "Audio": "", - "gx_id": "186" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 150.567137, - -33.699002 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "NSW", - "Fcilty_nam": "Springwood", - "Shp_num_an": "Shop 5", - "Shp_centre": "Macquarie Centre", - "Street_add": "125 Macquarie Road", - "Locality": "Springwood", - "Postcode": "2777", - "Hrs_of_bus": "09:00-16:30 Monday to Friday, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "74", - "result": "100000", - "Audio": "", - "gx_id": "187" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 150.599981, - -34.874156 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "NSW", - "Fcilty_nam": "Nowra", - "Shp_num_an": "Shop 3,", - "Shp_centre": "", - "Street_add": "59 Junction Street (Access From Berry Street)", - "Locality": "Nowra", - "Postcode": "2541", - "Hrs_of_bus": "09:00-17:00 Monday to Friday, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "60", - "result": "100000", - "Audio": "", - "gx_id": "188" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 150.693972, - -33.752039 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "NSW", - "Fcilty_nam": "Penrith", - "Shp_num_an": "Shop 260, Level 2", - "Shp_centre": "Westfield Penrith", - "Street_add": "585 High Street", - "Locality": "Penrith", - "Postcode": "2750", - "Hrs_of_bus": "09:00-17:00 Monday to Friday, 9:00-18:00 Thursdays, 09:00-12:30 Saturdays, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "65", - "result": "999", - "Audio": "", - "gx_id": "189" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 151.104756, - -33.965065 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "NSW", - "Fcilty_nam": "Hurstville", - "Shp_num_an": "Shop 218b, Level 1", - "Shp_centre": "Westfield Hurstville", - "Street_add": "Cnr Cross Street & Park Road", - "Locality": "Hurstville", - "Postcode": "2220", - "Hrs_of_bus": "09:00-17:00 Monday to Friday, 9:00-19:00 Thursdays, 09:00-12:30 Saturdays, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "38", - "result": "999", - "Audio": "YES", - "gx_id": "19" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 150.69436455, - -34.05525719 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "NSW", - "Fcilty_nam": "Camden", - "Shp_num_an": "Shop 24", - "Shp_centre": "Village Court", - "Street_add": "180-186 Argyle Street", - "Locality": "Camden", - "Postcode": "2570", - "Hrs_of_bus": "09:00-17:00 Monday to Friday, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "17", - "result": "999", - "Audio": "", - "gx_id": "190" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 150.755686, - -33.600902 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "NSW", - "Fcilty_nam": "Richmond", - "Shp_num_an": "Shop 48", - "Shp_centre": "Richmond Marketplace", - "Street_add": "27 March Street", - "Locality": "Richmond", - "Postcode": "2753", - "Hrs_of_bus": "09:00-17:00 Monday to Friday, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "69", - "result": "10", - "Audio": "", - "gx_id": "191" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 150.811413, - -34.069712 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "NSW", - "Fcilty_nam": "Campbelltown", - "Shp_num_an": "Shop U67", - "Shp_centre": "Campelltown Mall", - "Street_add": "271 Queen Street", - "Locality": "Campbelltown", - "Postcode": "2560", - "Hrs_of_bus": "09:00-17:00 Monday to Friday, 9:00-18:00 Thursdays, 09:00-12:30 Saturdays, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "18", - "result": "999", - "Audio": "", - "gx_id": "192" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 150.83885055, - -34.56228517 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "NSW", - "Fcilty_nam": "Barrack Heights - Shellharbour", - "Shp_num_an": "Shop 109", - "Shp_centre": "Stockland Shellharbour", - "Street_add": "Lake Entrance Road", - "Locality": "Barrack Heights", - "Postcode": "2528", - "Hrs_of_bus": "09:00-17:00 Monday to Friday, 09:00-12:30 Saturdays, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "71", - "result": "999", - "Audio": "", - "gx_id": "193" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 150.892826, - -32.254617 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "NSW", - "Fcilty_nam": "Muswellbrook", - "Shp_num_an": "Shop 12-13", - "Shp_centre": "Muswellbrook Marketplace", - "Street_add": "22 Sowerby Street", - "Locality": "Muswellbrook", - "Postcode": "2333", - "Hrs_of_bus": "09:00-16:30 Monday to Friday, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "54", - "result": "100000", - "Audio": "", - "gx_id": "194" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 150.893122, - -34.424834 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "NSW", - "Fcilty_nam": "Wollongong", - "Shp_num_an": "Shop N106, Level 1", - "Shp_centre": "Wollongong Central", - "Street_add": "200 Crown Street", - "Locality": "Wollongong", - "Postcode": "2500", - "Hrs_of_bus": "09:00-17:00 Monday to Friday, 09:00-12:30 Saturdays, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "85", - "result": "100001", - "Audio": "", - "gx_id": "195" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 150.906374, - -33.77007 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "NSW", - "Fcilty_nam": "Blacktown", - "Shp_num_an": "Shop 3008, Level 3", - "Shp_centre": "Westpoint Shopping Centre", - "Street_add": "Patrick Street", - "Locality": "Blacktown", - "Postcode": "2148", - "Hrs_of_bus": "09:00-17:00 Monday to Friday, 09:00-12:30 Saturdays, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "12", - "result": "10", - "Audio": "", - "gx_id": "196" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 150.926709, - -31.091342 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "NSW", - "Fcilty_nam": "Tamworth", - "Shp_num_an": "Shop 22", - "Shp_centre": "Tamworth Shoppingworld", - "Street_add": "Bridge Street", - "Locality": "Tamworth", - "Postcode": "2340", - "Hrs_of_bus": "09:00-17:00 Monday to Friday, 09:00-12:30 Saturdays, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "75", - "result": "200002", - "Audio": "", - "gx_id": "197" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 150.924383, - -33.919935 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "NSW", - "Fcilty_nam": "Liverpool", - "Shp_num_an": "Shop 2090, Level 2", - "Shp_centre": "Westfield Liverpool", - "Street_add": "Cnr Elizabeth Drive & Macquarie Street", - "Locality": "Liverpool", - "Postcode": "2170", - "Hrs_of_bus": "09:00-17:00 Monday to Friday, 09:00-12:30 Saturdays, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "46", - "result": "999", - "Audio": "", - "gx_id": "198" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 150.955512, - -33.868529 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "NSW", - "Fcilty_nam": "Fairfield", - "Shp_num_an": "Suite 1, Level 2", - "Shp_centre": "Neeta City Shopping Centre", - "Street_add": "Cnr Smart & Nelson Streets", - "Locality": "Fairfield", - "Postcode": "2165", - "Hrs_of_bus": "09:00-17:00 Monday to Friday, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "31", - "result": "10", - "Audio": "", - "gx_id": "199" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 149.583193, - -33.41619 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "NSW", - "Fcilty_nam": "Bathurst", - "Shp_num_an": "Shop 25", - "Shp_centre": "Bathurst Chase", - "Street_add": "39 William Street", - "Locality": "Bathurst", - "Postcode": "2795", - "Hrs_of_bus": "09:00-17:00 Monday to Friday, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "10", - "result": "10", - "Audio": "", - "gx_id": "2" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 151.113963, - -29.771806 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "NSW", - "Fcilty_nam": "Inverell", - "Shp_num_an": "", - "Shp_centre": "", - "Street_add": "166 Byron Street", - "Locality": "Inverell", - "Postcode": "2360", - "Hrs_of_bus": "09:00-16:30 Monday to Friday, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "39", - "result": "100000", - "Audio": "", - "gx_id": "20" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 151.003471, - -33.817487 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "NSW", - "Fcilty_nam": "Parramatta", - "Shp_num_an": "Shop 1115, Level 1", - "Shp_centre": "Westfield Parramatta", - "Street_add": "159 Church Street", - "Locality": "Parramatta", - "Postcode": "2150", - "Hrs_of_bus": "09:00-17:00 Monday to Friday, 09:00-12:30 Saturdays, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "64", - "result": "100000", - "Audio": "", - "gx_id": "200" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 114.615766, - -28.766760999999995 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "WA", - "Fcilty_nam": "Geraldton", - "Shp_num_an": "Shop 25", - "Shp_centre": "Centro Northgate", - "Street_add": "110 Chapman Road", - "Locality": "Geraldton", - "Postcode": "6530", - "Hrs_of_bus": "09:00-17:00 Monday to Friday, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "217", - "result": "10", - "Audio": "", - "gx_id": "201" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 115.63804064, - -33.32607645 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "WA", - "Fcilty_nam": "Bunbury", - "Shp_num_an": "Shop 32", - "Shp_centre": "Stirling Centre", - "Street_add": "22 Stephen Street", - "Locality": "Bunbury", - "Postcode": "6230", - "Hrs_of_bus": "09:00-17:00 Monday to Friday, 09:00-12:30 Saturdays, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "214", - "result": "999", - "Audio": "", - "gx_id": "202" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 115.743412, - -32.291143 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "WA", - "Fcilty_nam": "Rockingham", - "Shp_num_an": "Shop G023", - "Shp_centre": "Rockingham City Shopping Centre", - "Street_add": "1 Council Avenue", - "Locality": "Rockingham", - "Postcode": "6168", - "Hrs_of_bus": "09:00-17:00 Monday to Friday, 09:00-12:30 Saturdays, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "224", - "result": "10", - "Audio": "", - "gx_id": "203" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 115.74208, - -32.53680899999999 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "WA", - "Fcilty_nam": "Mandurah", - "Shp_num_an": "Shop 109", - "Shp_centre": "Mandurah Forum", - "Street_add": "330 Pinjarra Road", - "Locality": "Mandurah", - "Postcode": "6210", - "Hrs_of_bus": "09:00-17:00 Monday to Friday, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "221", - "result": "10", - "Audio": "", - "gx_id": "204" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 115.749319, - -32.051368 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "WA", - "Fcilty_nam": "Fremantle", - "Shp_num_an": "Shop 12", - "Shp_centre": "", - "Street_add": "39 Adelaide Street", - "Locality": "Fremantle", - "Postcode": "6160", - "Hrs_of_bus": "09:00-17:00 Monday to Friday, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "216", - "result": "10", - "Audio": "", - "gx_id": "205" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 115.73830499999998, - -31.814814000000002 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "WA", - "Fcilty_nam": "Hillarys", - "Shp_num_an": "Shop 44", - "Shp_centre": "Whitfords City Shopping Centre", - "Street_add": "Whitfords Ave", - "Locality": "Hillarys", - "Postcode": "6025", - "Hrs_of_bus": "09:00-17:00 Monday to Friday, 9:00-19:00 Thursdays, 09:00-12:30 Saturdays, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "218", - "result": "200002", - "Audio": "", - "gx_id": "206" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 115.76984199999998, - -31.741759 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "WA", - "Fcilty_nam": "Joondalup", - "Shp_num_an": "Tenancy G3,", - "Shp_centre": "Sanori House,", - "Street_add": "126 Grand Boulevard", - "Locality": "Joondalup", - "Postcode": "6027", - "Hrs_of_bus": "09:00-17:00 Monday to Friday, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "246", - "result": "100000", - "Audio": "", - "gx_id": "207" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 115.776288, - -31.877944999999997 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "WA", - "Fcilty_nam": "Karrinyup", - "Shp_num_an": "Shop 152", - "Shp_centre": "Karrinyup Shopping Centre", - "Street_add": "Karrinyup Road", - "Locality": "Karrinyup", - "Postcode": "6018", - "Hrs_of_bus": "09:00-17:00 Monday to Friday, 9:00-18:00 Thursdays, 9:00-12:30 Saturdays, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "220", - "result": "200002", - "Audio": "", - "gx_id": "208" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 115.821919, - -31.94711 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "WA", - "Fcilty_nam": "Subiaco", - "Shp_num_an": "Shop 1", - "Shp_centre": "Subiaco Village", - "Street_add": "531 Hay Street", - "Locality": "Subiaco", - "Postcode": "6008", - "Hrs_of_bus": "08:30-17:00 Monday to Friday, 09:00-12:30 Saturdays, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "225", - "result": "100000", - "Audio": "", - "gx_id": "209" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 151.118735, - -33.776959999999995 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "NSW", - "Fcilty_nam": "North Ryde", - "Shp_num_an": "Shop 46, Level 2", - "Shp_centre": "Macquarie Centre", - "Street_add": "Cnr Herring & Waterloo Road", - "Locality": "North Ryde", - "Postcode": "2133", - "Hrs_of_bus": "09:00-17:00 Monday to Friday, 9:00-19:00 Thursdays, 09:00-12:30 Saturdays, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "58", - "result": "999", - "Audio": "YES", - "gx_id": "21" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 115.83263742, - -32.0366794 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "WA", - "Fcilty_nam": "Booragoon", - "Shp_num_an": "Shop 13-14", - "Shp_centre": "Gateway Business Centre", - "Street_add": "Marmion Street", - "Locality": "Booragoon", - "Postcode": "6154", - "Hrs_of_bus": "08:30-17:00 Monday to Friday, 09:00-12:30 Saturdays, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "213", - "result": "999", - "Audio": "", - "gx_id": "210" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 115.857768, - -31.955185 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "WA", - "Fcilty_nam": "Perth - The Terrace", - "Shp_num_an": "", - "Shp_centre": "", - "Street_add": "81 St Georges Terrace", - "Locality": "Perth", - "Postcode": "6000", - "Hrs_of_bus": "08:30-17:00 Monday to Friday, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "226", - "result": "10", - "Audio": "", - "gx_id": "211" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 115.902203, - -31.894904 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "WA", - "Fcilty_nam": "Morley", - "Shp_num_an": "Shop 2177", - "Shp_centre": "Centro Galleria", - "Street_add": "Cnr Walter & Collier Roads", - "Locality": "Morley", - "Postcode": "6062", - "Hrs_of_bus": "09:00-17:00 Monday to Friday, 9:00-19:00 Thursdays, 09:00-12:30 Saturdays, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "223", - "result": "999", - "Audio": "", - "gx_id": "212" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 115.93748523999999, - -32.01906404 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "WA", - "Fcilty_nam": "Cannington", - "Shp_num_an": "Shop 1044a", - "Shp_centre": "Westfield Carousel", - "Street_add": "1382 Albany Highway", - "Locality": "Cannington", - "Postcode": "6107", - "Hrs_of_bus": "09:00-17:00 Monday to Friday, 9:00-19:00 Thursdays, 09:00-12:30 Saturdays, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "215", - "result": "999", - "Audio": "YES", - "gx_id": "213" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 116.00740799999998, - -31.890742999999997 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "WA", - "Fcilty_nam": "Midland", - "Shp_num_an": "Shop T053A", - "Shp_centre": "Midland Gate Shopping Centre", - "Street_add": "Cale Street", - "Locality": "Midland", - "Postcode": "6056", - "Hrs_of_bus": "09:00-17:00 Monday to Friday, 09:00-12:30 Saturdays, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "222", - "result": "50", - "Audio": "", - "gx_id": "214" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 116.01624999999999, - -32.151299 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "WA", - "Fcilty_nam": "Armadale", - "Shp_num_an": "Shop 67 T2", - "Shp_centre": "Armadale Shopping Centre", - "Street_add": "Jull Street", - "Locality": "Armadale", - "Postcode": "6112", - "Hrs_of_bus": "09:00-17:00 Monday to Friday, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "212", - "result": "200002", - "Audio": "", - "gx_id": "215" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 117.88398599999998, - -35.025945 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "WA", - "Fcilty_nam": "Albany", - "Shp_num_an": "", - "Shp_centre": "", - "Street_add": "15 Peels Place", - "Locality": "Albany", - "Postcode": "6330", - "Hrs_of_bus": "08:30 -16:30 Monday to Friday, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "211", - "result": "10", - "Audio": "", - "gx_id": "216" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 121.476815, - -30.745425 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "WA", - "Fcilty_nam": "Kalgoorlie", - "Shp_num_an": "", - "Shp_centre": "", - "Street_add": "Cnr Porter & Egan Streets", - "Locality": "Kalgoorlie", - "Postcode": "6430", - "Hrs_of_bus": "08:30-16:30 Monday to Friday, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "219", - "result": "10", - "Audio": "", - "gx_id": "217" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 130.84250585, - -12.46373121 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "NT", - "Fcilty_nam": "Darwin", - "Shp_num_an": "Shop 14 & 15", - "Shp_centre": "The Galleria", - "Street_add": "Smith Street Mall", - "Locality": "Darwin", - "Postcode": "800", - "Hrs_of_bus": "09:00-17:00 Monday to Friday, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "137", - "result": "999", - "Audio": "", - "gx_id": "218" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 130.882216, - -12.377027 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "NT", - "Fcilty_nam": "Casuarina", - "Shp_num_an": "Shop 30, Ground Floor", - "Shp_centre": "Casuarina Square", - "Street_add": "247 Trower Road", - "Locality": "Casuarina", - "Postcode": "810", - "Hrs_of_bus": "09:00-17:00 Monday to Friday, 9:00-18:00 Fridays, 09:00-12:30 Saturdays, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "136", - "result": "100000", - "Audio": "", - "gx_id": "219" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 151.149902, - -33.884404 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "NSW", - "Fcilty_nam": "Leichhardt", - "Shp_num_an": "Shop 31,", - "Shp_centre": "Leichhardt Marketplace,", - "Street_add": "138 Flood Street", - "Locality": "Leichhardt", - "Postcode": "2040", - "Hrs_of_bus": "09:00-17:00 Monday to Friday, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "247", - "result": "100000", - "Audio": "", - "gx_id": "22" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 130.98591, - -12.480801 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "NT", - "Fcilty_nam": "Palmerston", - "Shp_num_an": "Shop T02,", - "Shp_centre": "Palmerston Shopping Centre,", - "Street_add": "10 Temple Terrace", - "Locality": "Palmerston", - "Postcode": "830", - "Hrs_of_bus": "09:00-17:00 Monday to Friday, 09:00-12:30 Saturdays, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "245", - "result": "200000", - "Audio": "", - "gx_id": "220" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 133.881616, - -23.698858 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "NT", - "Fcilty_nam": "Alice Springs", - "Shp_num_an": "Shop 38", - "Shp_centre": "Yeperenye Shopping Centre", - "Street_add": "36-38 Hartley Street", - "Locality": "Alice Springs", - "Postcode": "870", - "Hrs_of_bus": "09:00-17:00 Monday to Friday, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "135", - "result": "10", - "Audio": "", - "gx_id": "221" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 135.858159, - -34.720184 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "SA", - "Fcilty_nam": "Port Lincoln", - "Shp_num_an": "Suite 6", - "Shp_centre": "Stamford House", - "Street_add": "80 Tasman Terrace", - "Locality": "Port Lincoln", - "Postcode": "5606", - "Hrs_of_bus": "09:00-16:30 Monday to Friday, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "147", - "result": "50", - "Audio": "", - "gx_id": "222" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 137.531341, - -33.026659 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "SA", - "Fcilty_nam": "Whyalla", - "Shp_num_an": "Shop 48", - "Shp_centre": "Westland Shopping Centre", - "Street_add": "Nicolson Avenue", - "Locality": "Whyalla Norrie", - "Postcode": "5608", - "Hrs_of_bus": "09:00-16:30 Monday to Friday, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "150", - "result": "200110", - "Audio": "", - "gx_id": "223" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 137.763512, - -32.493718 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "SA", - "Fcilty_nam": "Port Augusta", - "Shp_num_an": "", - "Shp_centre": "", - "Street_add": "93 Commercial Road", - "Locality": "Port Augusta", - "Postcode": "5700", - "Hrs_of_bus": "09:00-16:30 Monday to Friday, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "146", - "result": "100000", - "Audio": "", - "gx_id": "224" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 138.010496, - -33.17609999999999 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "SA", - "Fcilty_nam": "Port Pirie", - "Shp_num_an": "Shop 10 & 11", - "Shp_centre": "Flinders Arcade", - "Street_add": "82 Ellen Street", - "Locality": "Port Pirie", - "Postcode": "5540", - "Hrs_of_bus": "09:00-16.30 Monday to Friday, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "148", - "result": "100001", - "Audio": "", - "gx_id": "225" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 138.49536199999997, - -35.142056999999994 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "SA", - "Fcilty_nam": "Noarlunga Centre - Colonnades", - "Shp_num_an": "Shop 75", - "Shp_centre": "Colonnades Shopping Centre", - "Street_add": "Beach Road", - "Locality": "Noarlunga Centre", - "Postcode": "5168", - "Hrs_of_bus": "09:00-17:00 Monday to Friday, 9:00-19:00 Thursdays,09:00-12:30 Saturdays, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "243", - "result": "200000", - "Audio": "", - "gx_id": "226" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 138.493552, - -34.877219999999994 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "SA", - "Fcilty_nam": "West Lakes", - "Shp_num_an": "Shop 297-298, Ground Floor", - "Shp_centre": "Westfield West Lakes", - "Street_add": "111 West Lakes Boulevarde", - "Locality": "West Lakes", - "Postcode": "5021", - "Hrs_of_bus": "09:00-17:00 Monday to Friday, 09:00-19:00 Thursdays, 09:00-12:30 Saturdays, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "149", - "result": "100000", - "Audio": "YES", - "gx_id": "227" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 138.54400499999997, - -35.013446 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "SA", - "Fcilty_nam": "Oaklands Park - Marion", - "Shp_num_an": "Shop 1036, Ground Floor", - "Shp_centre": "Westfield Shoppingtown", - "Street_add": "297 Diagonal Road", - "Locality": "Oaklands Park", - "Postcode": "5046", - "Hrs_of_bus": "09:00-17:00 Monday to Friday, 9:00-19:00 Thursdays, 09:00-12:30 Saturdays, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "143", - "result": "100000", - "Audio": "YES", - "gx_id": "228" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 138.598551, - -34.92435699999999 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "SA", - "Fcilty_nam": "Adelaide - Currie Street", - "Shp_num_an": "", - "Shp_centre": "", - "Street_add": "30 Currie Street", - "Locality": "Adelaide", - "Postcode": "5000", - "Hrs_of_bus": "08:30-17:00 Monday to Friday, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "140", - "result": "100000", - "Audio": "", - "gx_id": "229" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 151.16962312, - -32.56410816 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "NSW", - "Fcilty_nam": "Singleton", - "Shp_num_an": "", - "Shp_centre": "", - "Street_add": "6 William Street", - "Locality": "Singleton", - "Postcode": "2330", - "Hrs_of_bus": "8:30-16:30 Monday to Friday, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "72", - "result": "999", - "Audio": "", - "gx_id": "23" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 138.668589, - -34.715725 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "SA", - "Fcilty_nam": "Elizabeth", - "Shp_num_an": "Shop 55 Oxenham Mall", - "Shp_centre": "Elizabeth Shopping Centre", - "Street_add": "50 Elizabeth Way", - "Locality": "Elizabeth", - "Postcode": "5112", - "Hrs_of_bus": "09:00-17:00 Monday to Friday, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "141", - "result": "50", - "Audio": "", - "gx_id": "230" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 144.359328, - -38.150358 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "VIC", - "Fcilty_nam": "Geelong", - "Shp_num_an": "Shop 60-61, Level 1", - "Shp_centre": "Market Square Shopping Centre", - "Street_add": "Moorabool Street", - "Locality": "Geelong", - "Postcode": "3220", - "Hrs_of_bus": "09:00-17:00 Monday to Friday, 9:00-18:00 Friday, 09:00-12:30 Saturdays, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "182", - "result": "200002", - "Audio": "", - "gx_id": "231" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 144.563386, - -37.68592699999999 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "VIC", - "Fcilty_nam": "Melton", - "Shp_num_an": "Shop T68", - "Shp_centre": "Woodgrove Shopping Centre", - "Street_add": "533 High Street", - "Locality": "Melton", - "Postcode": "3337", - "Hrs_of_bus": "09:00-17:00 Monday to Friday, 09:00-12:30 Saturdays, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "2", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "189", - "result": "999", - "Audio": "", - "gx_id": "232" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 144.65867, - -37.90272099999999 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "VIC", - "Fcilty_nam": "Werribee", - "Shp_num_an": "", - "Shp_centre": "", - "Street_add": "72 Watton Street", - "Locality": "Werribee", - "Postcode": "3030", - "Hrs_of_bus": "09:00-17:00 Monday to Friday, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "209", - "result": "100000", - "Audio": "", - "gx_id": "233" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 144.746341, - -36.124839 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "VIC", - "Fcilty_nam": "Echuca", - "Shp_num_an": "", - "Shp_centre": "", - "Street_add": "69 Heygarth Stree", - "Locality": "Echuca", - "Postcode": "3564", - "Hrs_of_bus": "8:30 -16:30 Monday to Friday, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "178", - "result": "999", - "Audio": "", - "gx_id": "234" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 144.848706, - -37.828011 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "VIC", - "Fcilty_nam": "Altona Gate", - "Shp_num_an": "Shop U9, Level 2", - "Shp_centre": "Altona Gate Shopping Centre", - "Street_add": "124-134 Millers Road", - "Locality": "Altona North", - "Postcode": "3025", - "Hrs_of_bus": "09:00-17:00 Monday to Friday, 9:00-18:00 Thursdays, 09:00-12:30 Saturdays, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "159", - "result": "999", - "Audio": "", - "gx_id": "235" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 144.886593, - -37.770177 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "VIC", - "Fcilty_nam": "Highpoint", - "Shp_num_an": "Shop 2011, Level 2", - "Shp_centre": "Highpoint City", - "Street_add": "200 Rosamond Road", - "Locality": "Maribyrnong", - "Postcode": "3032", - "Hrs_of_bus": "09:00-17:00 Monday to Friday, 9:00-19:00 Thursdays, 09:00-12:30 Saturdays, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "186", - "result": "100000", - "Audio": "", - "gx_id": "236" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 144.888161, - -37.716657 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "VIC", - "Fcilty_nam": "Airport West", - "Shp_num_an": "Shop 77", - "Shp_centre": "Westfield Shoppingtown", - "Street_add": "Louis Street", - "Locality": "Airport West", - "Postcode": "3042", - "Hrs_of_bus": "09:00-17:00 Monday to Friday, 09:00-18:00 Thursday, 09:00-12:30 Saturday, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "158", - "result": "200002", - "Audio": "", - "gx_id": "237" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 144.907529, - -38.35498299999999 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "VIC", - "Fcilty_nam": "Rosebud", - "Shp_num_an": "Shop 15", - "Shp_centre": "Rosebud Village Shopping Centre", - "Street_add": "967 Point Nepean Road", - "Locality": "Rosebud", - "Postcode": "3939", - "Hrs_of_bus": "09:00-17:00 Monday to Friday, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "15", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "239", - "result": "100000", - "Audio": "YES", - "gx_id": "238" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 144.921564, - -37.679886 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "VIC", - "Fcilty_nam": "Broadmeadows", - "Shp_num_an": "Shop 42", - "Shp_centre": "Broadmeadows Shopping Centre", - "Street_add": "Pascoe Vale Road", - "Locality": "Broadmeadows", - "Postcode": "3047", - "Hrs_of_bus": "09:00-17:00 Monday to Friday, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "167", - "result": "200002", - "Audio": "", - "gx_id": "239" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 151.18308599999997, - -33.796794 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "NSW", - "Fcilty_nam": "Chatswood", - "Shp_num_an": "Shop 527-528, Level 5", - "Shp_centre": "Westfield Chatswood", - "Street_add": "1 Anderson Street", - "Locality": "Chatswood", - "Postcode": "2067", - "Hrs_of_bus": "09:00-17:00 Monday to Friday, 9:00-19:00 Thursdays, 09:00-12:30 Saturdays, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "23", - "result": "999", - "Audio": "", - "gx_id": "24" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 144.921037, - -37.766646 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "VIC", - "Fcilty_nam": "Moonee Ponds", - "Shp_num_an": "", - "Shp_centre": "", - "Street_add": "122A Puckle Street", - "Locality": "Moonee Ponds", - "Postcode": "3039", - "Hrs_of_bus": "09:00-17:00 Monday to Friday, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "191", - "result": "100000", - "Audio": "", - "gx_id": "240" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 144.954746, - -37.818571 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "VIC", - "Fcilty_nam": "Melbourne - City West", - "Shp_num_an": "Shop 11,", - "Shp_centre": "", - "Street_add": "600 Collins Street", - "Locality": "Melbourne", - "Postcode": "3000", - "Hrs_of_bus": "08:30-17:00 Monday to Friday, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "165", - "result": "999", - "Audio": "", - "gx_id": "241" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 144.962588, - -37.814496 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "VIC", - "Fcilty_nam": "Melbourne - Galleria", - "Shp_num_an": "Shop E17", - "Shp_centre": "The Galleria Shopping Plaza", - "Street_add": "385 Bourke Street", - "Locality": "Melbourne", - "Postcode": "3000", - "Hrs_of_bus": "08:30-17:00 Monday to Friday, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "169", - "result": "10", - "Audio": "", - "gx_id": "242" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 144.96637, - -37.742098 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "VIC", - "Fcilty_nam": "Coburg", - "Shp_num_an": "Shop 16", - "Shp_centre": "Walkers Arcade", - "Street_add": "471 Sydney Road", - "Locality": "Coburg", - "Postcode": "3058", - "Hrs_of_bus": "09:00-17:00 Monday to Friday, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "172", - "result": "100000", - "Audio": "", - "gx_id": "243" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 144.969795, - -37.812421 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "VIC", - "Fcilty_nam": "Melbourne - City East", - "Shp_num_an": "Shop 7,", - "Shp_centre": "Southern Cross 1,", - "Street_add": "121 Exhibition Street (Access via Bourke Street)", - "Locality": "Melbourne", - "Postcode": "3000", - "Hrs_of_bus": "08:30-17:00 Monday to Friday, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "174", - "result": "100000", - "Audio": "", - "gx_id": "244" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 151.659139, - -33.036597 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "NSW", - "Fcilty_nam": "Belmont NSW", - "Shp_num_an": "Shop 17-18", - "Shp_centre": "Belmont Central Shopping Centre", - "Street_add": "1 Singleton Street", - "Locality": "Belmont", - "Postcode": "2280", - "Hrs_of_bus": "09:00-17:00 Monday to Friday, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "0", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "268", - "result": "10", - "Audio": "NO", - "gx_id": "245" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 115.933677, - -31.965845 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "WA", - "Fcilty_nam": "Belmont WA", - "Shp_num_an": "Shop 30", - "Shp_centre": "Belmont Forum Shopping Centre", - "Street_add": "227 Belmont Avenue", - "Locality": "Cloverdale", - "Postcode": "6105", - "Hrs_of_bus": "09:00-17:00 Monday to Friday, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "0", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "269", - "result": "10", - "Audio": "NO", - "gx_id": "246" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 150.888213, - -34.485521999999996 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "NSW", - "Fcilty_nam": "Warrawong - EFT only", - "Shp_num_an": "Suite 1, Gallery Level", - "Shp_centre": "Westfield Warrawong", - "Street_add": "Cnr King and Cowper Streets", - "Locality": "Warrawong", - "Postcode": "2502", - "Hrs_of_bus": "08:30-16:30 Monday to Friday, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "0", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "270", - "result": "999", - "Audio": "NO", - "gx_id": "247" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 151.20541, - -33.873782 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "NSW", - "Fcilty_nam": "Sydney - Town Hall", - "Shp_num_an": "Shop 30-31", - "Shp_centre": "Town Hall Arcade", - "Street_add": "464-480 Kent Street", - "Locality": "Sydney", - "Postcode": "2000", - "Hrs_of_bus": "08:30-17:00 Monday to Friday, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "79", - "result": "100000", - "Audio": "", - "gx_id": "25" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 151.206677, - -33.83795799999999 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "NSW", - "Fcilty_nam": "North Sydney", - "Shp_num_an": "Shop P40-P41, Gound Floor", - "Shp_centre": "Northpoint", - "Street_add": "100 Miller Street", - "Locality": "North Sydney", - "Postcode": "2060", - "Hrs_of_bus": "09:00-17:00 Monday-Friday, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "2", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "59", - "result": "999", - "Audio": "", - "gx_id": "26" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 151.207224, - -33.865072 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "NSW", - "Fcilty_nam": "Sydney - Wynyard", - "Shp_num_an": "Shop G23", - "Shp_centre": "Metcentre", - "Street_add": "273 George Street", - "Locality": "Sydney", - "Postcode": "2000", - "Hrs_of_bus": "08:30-17:00 Monday to Friday, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "2", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "86", - "result": "100000", - "Audio": "", - "gx_id": "27" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 151.209007, - -33.869063999999995 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "NSW", - "Fcilty_nam": "Sydney - King Street", - "Shp_num_an": "Shop 5R 07-09", - "Shp_centre": "Glasshouse Shopping Centre", - "Street_add": "135 King Street", - "Locality": "Sydney", - "Postcode": "2000", - "Hrs_of_bus": "08:30-17:00 Monday to Friday, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "49", - "result": "100000", - "Audio": "", - "gx_id": "28" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 151.226913, - -33.945879 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "NSW", - "Fcilty_nam": "Pagewood", - "Shp_num_an": "Shop 131B, Ground Floor", - "Shp_centre": "Westfield Eastgardens", - "Street_add": "152 Bunnerong Road", - "Locality": "Eastgardens", - "Postcode": "2036", - "Hrs_of_bus": "09:00-17:00 Monday to Friday, 09:00-12:30 Saturdays, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "62", - "result": "101000", - "Audio": "", - "gx_id": "29" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 149.58612099999996, - -32.592757 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "NSW", - "Fcilty_nam": "Mudgee", - "Shp_num_an": "Shop 6", - "Shp_centre": "The Mortimer Centre", - "Street_add": "90-96 Mortimer Street", - "Locality": "Mudgee", - "Postcode": "2850", - "Hrs_of_bus": "09:00-16:30 Monday to Friday, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "53", - "result": "100000", - "Audio": "", - "gx_id": "3" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 151.240435, - -33.823701 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "NSW", - "Fcilty_nam": "Spit Junction", - "Shp_num_an": "Shop 23", - "Shp_centre": "Bridgepoint Centre", - "Street_add": "Cnr Military & Brady Roads", - "Locality": "Spit Junction", - "Postcode": "2088", - "Hrs_of_bus": "09:00-17:00 Monday to Friday, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "73", - "result": "999", - "Audio": "", - "gx_id": "30" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 151.248356, - -33.891875 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "NSW", - "Fcilty_nam": "Bondi Junction", - "Shp_num_an": "Shop 7-8", - "Shp_centre": "Tiffany Plaza,", - "Street_add": "422 Oxford Street (above Bondi Junction Interchange)", - "Locality": "Bondi Junction", - "Postcode": "2022", - "Hrs_of_bus": "09:00-17:00 Monday to Friday, 09:00-12:30 Saturdays, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "13", - "result": "100000", - "Audio": "", - "gx_id": "31" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 151.24887853, - -23.85534942 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "", - "Fcilty_nam": "Gladstone", - "Shp_num_an": "Shop 31", - "Shp_centre": "Gladstone Central Shopping Centre", - "Street_add": "45 Dawson Road", - "Locality": "Gladstone", - "Postcode": "4680", - "Hrs_of_bus": "09:00-17:00 Monday to Friday, 09:00-12:30 Saturdays, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "107", - "result": "999", - "Audio": "", - "gx_id": "32" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 151.265961, - -33.768201 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "NSW", - "Fcilty_nam": "Brookvale", - "Shp_num_an": "Shop 188, Level 1", - "Shp_centre": "Warringah Mall", - "Street_add": "Cnr Old Pittwater Rd & Condamine St", - "Locality": "Brookvale", - "Postcode": "2100", - "Hrs_of_bus": "09:00-17:00 Monday to Friday, 9:00-19:00 Thursdays, 09:00-12:30 Saturdays, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "15", - "result": "999", - "Audio": "", - "gx_id": "33" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 151.262977, - -27.183903 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "Qld", - "Fcilty_nam": "Dalby", - "Shp_num_an": "Shop 23", - "Shp_centre": "Dalby Shoppingworld", - "Street_add": "Cunningham Street", - "Locality": "Dalby", - "Postcode": "4405", - "Hrs_of_bus": "09:00-16:30 Monday to Friday, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "105", - "result": "100000", - "Audio": "", - "gx_id": "34" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 151.296208, - -33.696624 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "NSW", - "Fcilty_nam": "Warriewood", - "Shp_num_an": "Shop 20", - "Shp_centre": "Centro Warriewood", - "Street_add": "Jacksons Road", - "Locality": "Warriewood", - "Postcode": "2102", - "Hrs_of_bus": "09:00-17:00 Monday to Friday, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "84", - "result": "999", - "Audio": "", - "gx_id": "35" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 151.31508499999998, - -33.492793 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "NSW", - "Fcilty_nam": "Woy Woy", - "Shp_num_an": "Shop 32", - "Shp_centre": "Deepwater Plaza", - "Street_add": "Railway Street", - "Locality": "Woy Woy", - "Postcode": "2256", - "Hrs_of_bus": "09:00-17:00 Monday to Friday, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "81", - "result": "200002", - "Audio": "", - "gx_id": "36" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 151.343674, - -33.424362 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "NSW", - "Fcilty_nam": "Gosford", - "Shp_num_an": "", - "Shp_centre": "", - "Street_add": "9 Watt Street", - "Locality": "Gosford", - "Postcode": "2250", - "Hrs_of_bus": "08:30-17:00 Monday to Friday, 09:00-12:30 Saturdays, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "32", - "result": "10", - "Audio": "", - "gx_id": "37" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 151.35470299999997, - -32.832744 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "NSW", - "Fcilty_nam": "Cessnock", - "Shp_num_an": "Shop G008", - "Shp_centre": "Cessnock Market Place", - "Street_add": "205 Wollombi Rd", - "Locality": "Cessnock", - "Postcode": "2325", - "Hrs_of_bus": "09:00-16:30 Monday to Friday, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "2", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "21", - "result": "10", - "Audio": "", - "gx_id": "38" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 151.393275, - -33.437331 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "NSW", - "Fcilty_nam": "Erina", - "Shp_num_an": "Shop T334", - "Shp_centre": "Erina Fair", - "Street_add": "Terrigal Drive", - "Locality": "Erina", - "Postcode": "2250", - "Hrs_of_bus": "09:00-17:00 Monday to Friday, 09:00-12:30 Saturdays, excluding Public Holiday", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "30", - "result": "999", - "Audio": "", - "gx_id": "39" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 149.717725, - -34.755285 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "NSW", - "Fcilty_nam": "Goulburn", - "Shp_num_an": "Shop 7", - "Shp_centre": "Central Arcade", - "Street_add": "158-162 Auburn Street", - "Locality": "Goulburn", - "Postcode": "2580", - "Hrs_of_bus": "09:00-17:00 Monday to Friday, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "33", - "result": "10", - "Audio": "", - "gx_id": "4" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 151.415573, - -33.306914 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "NSW", - "Fcilty_nam": "Tuggerah", - "Shp_num_an": "Shop 1142,", - "Shp_centre": "Westfield Tuggerah,", - "Street_add": "Corner Of Wyong Road And Gavenlock Road", - "Locality": "Tuggerah", - "Postcode": "2259", - "Hrs_of_bus": "09:00-17:00 Monday to Friday, 09:00-12:30 Saturdays, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "250", - "result": "999", - "Audio": "", - "gx_id": "40" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 151.496104, - -33.344202 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "NSW", - "Fcilty_nam": "The Entrance", - "Shp_num_an": "Shop 16", - "Shp_centre": "Lakeside Plaza", - "Street_add": "Cnr Denning St & Entrance Rd", - "Locality": "The Entrance", - "Postcode": "2261", - "Hrs_of_bus": "09:00-16:30 Monday to Friday, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "77", - "result": "999", - "Audio": "", - "gx_id": "41" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 151.498198, - -33.245474 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "NSW", - "Fcilty_nam": "Lake Haven", - "Shp_num_an": "Shop 27", - "Shp_centre": "Lake Haven Shopping Centre", - "Street_add": "Lake Haven Drive", - "Locality": "Lake Haven", - "Postcode": "2263", - "Hrs_of_bus": "09:00-17:00 Monday to Friday, 09:00-12:30 Saturdays, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "43", - "result": "999", - "Audio": "", - "gx_id": "42" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 151.554105, - -32.734323 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "NSW", - "Fcilty_nam": "Maitland", - "Shp_num_an": "Shop 6", - "Shp_centre": "Pender Place Shopping Centre", - "Street_add": "44 Elgin Street", - "Locality": "Maitland", - "Postcode": "2320", - "Hrs_of_bus": "09:00-17:00 Monday to Friday, 09:00-12:30 Saturdays, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "48", - "result": "100000", - "Audio": "", - "gx_id": "43" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 151.594681, - -33.011657 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "NSW", - "Fcilty_nam": "Toronto", - "Shp_num_an": "", - "Shp_centre": "", - "Street_add": "2 - 6 Donnelly Avenue", - "Locality": "Toronto", - "Postcode": "2283", - "Hrs_of_bus": "08:30 - 17:00 Monday to Friday, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "2", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "78", - "result": "999", - "Audio": "NO", - "gx_id": "44" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 151.664145, - -30.512740999999995 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "NSW", - "Fcilty_nam": "Armidale", - "Shp_num_an": "Shop 1A", - "Shp_centre": "K-Mart Plaza", - "Street_add": "201 - 203 Beardy Street", - "Locality": "Armidale", - "Postcode": "2350", - "Hrs_of_bus": "09:00-17:00 Monday to Friday, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "6", - "result": "100000", - "Audio": "", - "gx_id": "45" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 151.666596, - -32.903739 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "NSW", - "Fcilty_nam": "Wallsend", - "Shp_num_an": "Shop 15", - "Shp_centre": "Wallsend Plaza", - "Street_add": "24 Kokera Street", - "Locality": "Wallsend", - "Postcode": "2287", - "Hrs_of_bus": "09:00-17:00 Monday to Friday, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "83", - "result": "100000", - "Audio": "", - "gx_id": "46" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 151.695144, - -32.963406 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "NSW", - "Fcilty_nam": "Charlestown", - "Shp_num_an": "Shop 122", - "Shp_centre": "Charlestown Square", - "Street_add": "Cnr Smart and Pearson Streets", - "Locality": "Charlestown", - "Postcode": "2290", - "Hrs_of_bus": "09:00-17:00 Monday to Friday, 9:00-18:00 Thursdays, 09:00-12:30 Saturdays, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "22", - "result": "100000", - "Audio": "", - "gx_id": "47" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 151.71115899999998, - -32.942052 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "NSW", - "Fcilty_nam": "Kotara", - "Shp_num_an": "Shop 1012a, Level 1", - "Shp_centre": "Westfield Kotara", - "Street_add": "Cnr Park Ave & Northcott Drive", - "Locality": "Kotara", - "Postcode": "2289", - "Hrs_of_bus": "09:00-17:00 Monday to Friday, 09:00-12:30 Saturdays, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "42", - "result": "999", - "Audio": "", - "gx_id": "48" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 151.74191703, - -32.7634128 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "NSW", - "Fcilty_nam": "Raymond Terrace", - "Shp_num_an": "Shop 21", - "Shp_centre": "Centro Raymond Terrace", - "Street_add": "Cnr Sturgeon and Glenelg Streets", - "Locality": "Raymond Terrace", - "Postcode": "2324", - "Hrs_of_bus": "09:00-17:00 Monday to Friday, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "68", - "result": "999", - "Audio": "", - "gx_id": "49" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 149.782247, - -30.323996 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "NSW", - "Fcilty_nam": "Narrabri", - "Shp_num_an": "", - "Shp_centre": "", - "Street_add": "153-155 Maitland Street", - "Locality": "Narrabri", - "Postcode": "2390", - "Hrs_of_bus": "09:00-16:30 Monday to Friday, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "56", - "result": "100000", - "Audio": "", - "gx_id": "5" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 151.779724, - -32.926775 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "NSW", - "Fcilty_nam": "Newcastle", - "Shp_num_an": "", - "Shp_centre": "Hunter Street Mall", - "Street_add": "159 Hunter Street", - "Locality": "Newcastle", - "Postcode": "2300", - "Hrs_of_bus": "09:00-17:00 Monday to Friday, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "57", - "result": "100000", - "Audio": "", - "gx_id": "50" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 151.836117, - -26.540599999999998 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "Qld", - "Fcilty_nam": "Kingaroy", - "Shp_num_an": "Shop 26", - "Shp_centre": "Kingaroy Shopping World", - "Street_add": "Cnr Alford & Youngman Streets", - "Locality": "Kingaroy", - "Postcode": "4610", - "Hrs_of_bus": "09:00-16:30 Monday to Friday, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "115", - "result": "100000", - "Audio": "", - "gx_id": "51" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 151.9323835, - -27.564541779999995 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "Qld", - "Fcilty_nam": "Toowoomba - Clifford Gardens", - "Shp_num_an": "Shop 87", - "Shp_centre": "Clifford Gardens Shopping Ctr", - "Street_add": "Cnr James Street & Anzac Ave", - "Locality": "Toowoomba", - "Postcode": "4350", - "Hrs_of_bus": "09:00-17:00 Monday to Friday, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "104", - "result": "999", - "Audio": "", - "gx_id": "52" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 151.947533, - -27.560203 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "Qld", - "Fcilty_nam": "Toowoomba", - "Shp_num_an": "Shop 56", - "Shp_centre": "Grand Central Shopping Centre", - "Street_add": "Cnr Clifford And Margaret Streets", - "Locality": "Toowoomba", - "Postcode": "4350", - "Hrs_of_bus": "09:00-17:00 Monday to Friday, 9:00-19:00 Thursdays, 09:00-12:30 Saturdays, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "129", - "result": "100000", - "Audio": "", - "gx_id": "53" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 152.033735, - -28.223176 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "QLD", - "Fcilty_nam": "Warwick", - "Shp_num_an": "", - "Shp_centre": "", - "Street_add": "37 Albion Street", - "Locality": "Warwick", - "Postcode": "4370", - "Hrs_of_bus": "08:30-16:30 Monday to Friday, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "131", - "result": "50", - "Audio": "", - "gx_id": "54" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 152.348176, - -24.871269 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "QLD", - "Fcilty_nam": "Bundaberg", - "Shp_num_an": "Shop 45", - "Shp_centre": "Hinkler Central", - "Street_add": "16 Maryborough Street", - "Locality": "Bundaberg", - "Postcode": "4670", - "Hrs_of_bus": "09:00-17:00 Monday to Friday, 09:00-12:30 Saturdays, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "96", - "result": "10", - "Audio": "", - "gx_id": "55" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 152.461071, - -31.913554999999995 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "NSW", - "Fcilty_nam": "Taree", - "Shp_num_an": "Shop 1", - "Shp_centre": "", - "Street_add": "184-188 Victoria Street", - "Locality": "Taree", - "Postcode": "2430", - "Hrs_of_bus": "08:30-17:00 Monday to Friday, 09:00-12:30 Saturdays, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "76", - "result": "10", - "Audio": "", - "gx_id": "56" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 152.500338, - -32.176453 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "NSW", - "Fcilty_nam": "Tuncurry", - "Shp_num_an": "Shop 8,", - "Shp_centre": "Bridgepoint Building,", - "Street_add": "7-9 Manning Street", - "Locality": "Tuncurry", - "Postcode": "2428", - "Hrs_of_bus": "09:00-17:00 Monday to Friday, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "258", - "result": "100000", - "Audio": "", - "gx_id": "57" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 152.662584, - -26.190296 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "QLD", - "Fcilty_nam": "Gympie", - "Shp_num_an": "Shop 13", - "Shp_centre": "Cullinanes Centre", - "Street_add": "104 Mary Street", - "Locality": "Gympie", - "Postcode": "4570", - "Hrs_of_bus": "09:00-16:30 Monday to Friday, 09:00-12:30 Saturdays, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "108", - "result": "100000", - "Audio": "", - "gx_id": "58" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 152.699538, - -25.539147 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "Qld", - "Fcilty_nam": "Maryborough", - "Shp_num_an": "Shop 3", - "Shp_centre": "Station Square Shopping Centre", - "Street_add": "142 Lennox Street", - "Locality": "Maryborough", - "Postcode": "4650", - "Hrs_of_bus": "09:00-16:30 Monday to Friday, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "118", - "result": "100000", - "Audio": "", - "gx_id": "59" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 149.839888, - -36.674033 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "NSW", - "Fcilty_nam": "Bega", - "Shp_num_an": "Shop 6", - "Shp_centre": "", - "Street_add": "248 Carp Street", - "Locality": "Bega", - "Postcode": "2550", - "Hrs_of_bus": "09:00-16:30 Monday to Friday, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "11", - "result": "100000", - "Audio": "", - "gx_id": "6" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 152.76117099999996, - -27.60897 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "Qld", - "Fcilty_nam": "Ipswich", - "Shp_num_an": "Shop BD7", - "Shp_centre": "Ipswich Riverlink Shopping Centre", - "Street_add": "Cnr Pine Street and The Terrace", - "Locality": "Ipswich", - "Postcode": "4305", - "Hrs_of_bus": "09:00-17:00 Monday to Friday, 09:00-12:30 Saturdays, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "113", - "result": "999", - "Audio": "", - "gx_id": "60" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 152.83770443, - -25.288639889999995 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "Qld", - "Fcilty_nam": "Pialba - Hervey Bay", - "Shp_num_an": "Shop 44", - "Shp_centre": "Pialba Place Shopping Centre", - "Street_add": "30 Main Street", - "Locality": "Pialba", - "Postcode": "4655", - "Hrs_of_bus": "09:00-16:30 Monday to Friday, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "109", - "result": "999", - "Audio": "", - "gx_id": "61" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 152.839815, - -31.080317 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "NSW", - "Fcilty_nam": "Kempsey", - "Shp_num_an": "Shop 3B", - "Shp_centre": "Kempsey Mall", - "Street_add": "15-27 Belgrave Street", - "Locality": "Kempsey", - "Postcode": "2440", - "Hrs_of_bus": "09:00-16:30 Monday to Friday, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "41", - "result": "100000", - "Audio": "", - "gx_id": "62" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 152.896955, - -31.427359 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "NSW", - "Fcilty_nam": "Port Macquarie", - "Shp_num_an": "Shop 3", - "Shp_centre": "Settlement City Shopping Centre", - "Street_add": "Cnr Park & Bay Streets", - "Locality": "Port Macquarie", - "Postcode": "2444", - "Hrs_of_bus": "08:30-17:00 Monday to Friday, 09:00-12:30 Saturdays, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "66", - "result": "10", - "Audio": "", - "gx_id": "63" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 152.921115, - -30.707182 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "NSW", - "Fcilty_nam": "Macksville", - "Shp_num_an": "", - "Shp_centre": "", - "Street_add": "9 Cooper Street", - "Locality": "Macksville", - "Postcode": "2447", - "Hrs_of_bus": "09:00-16:30 Monday to Friday, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "47", - "result": "100001", - "Audio": "", - "gx_id": "64" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 152.93268999999998, - -29.689934999999995 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "NSW", - "Fcilty_nam": "Grafton", - "Shp_num_an": "", - "Shp_centre": "", - "Street_add": "4-8 King Street", - "Locality": "Grafton", - "Postcode": "2460", - "Hrs_of_bus": "08:30-16:30 Monday to Friday, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "34", - "result": "10", - "Audio": "", - "gx_id": "65" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 152.938644, - -27.549524 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "Qld", - "Fcilty_nam": "Mount Ommaney", - "Shp_num_an": "Shop 78", - "Shp_centre": "Mount Ommaney Centre", - "Street_add": "171 Dandenong Rd", - "Locality": "Mount Ommaney", - "Postcode": "4074", - "Hrs_of_bus": "09:00-17:00 Monday to Friday, 09:00-12:30 Saturdays, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "2", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "229", - "result": "100000", - "Audio": "", - "gx_id": "66" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 152.94826, - -27.102883999999996 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "QLD", - "Fcilty_nam": "Morayfield", - "Shp_num_an": "Shop 85", - "Shp_centre": "Morayfield Shopping Centre", - "Street_add": "165-171 Morayfield Road", - "Locality": "Morayfield", - "Postcode": "4506", - "Hrs_of_bus": "09:00-17:00 Monday to Friday, 09:00-12:30 Saturdays, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "119", - "result": "10", - "Audio": "", - "gx_id": "67" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 152.959571, - -26.628406 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "QLD", - "Fcilty_nam": "Nambour", - "Shp_num_an": "", - "Shp_centre": "", - "Street_add": "Cnr Maud and Currie Streets", - "Locality": "Nambour", - "Postcode": "4560", - "Hrs_of_bus": "08:30-16:30 Monday to Friday, 09:00-12:30 Saturdays, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "121", - "result": "10", - "Audio": "", - "gx_id": "68" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 152.971976, - -27.497760999999997 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "QLD", - "Fcilty_nam": "Indooroopilly", - "Shp_num_an": "Shop 1028", - "Shp_centre": "Indooroopilly Shopping Centre", - "Street_add": "322 Moggill Road", - "Locality": "Indooroopilly", - "Postcode": "4068", - "Hrs_of_bus": "09:00-17:00 Monday to Friday, 9:00-19:00 Thursdays, 09:00-12:30 Saturdays, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "110", - "result": "100000", - "Audio": "", - "gx_id": "69" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 149.840086, - -29.460718 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "NSW", - "Fcilty_nam": "Moree", - "Shp_num_an": "", - "Shp_centre": "", - "Street_add": "11 Auburn Street", - "Locality": "Moree", - "Postcode": "2400", - "Hrs_of_bus": "08:30 -16:30 Monday to Friday, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "52", - "result": "10", - "Audio": "", - "gx_id": "7" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 152.978069, - -27.407566 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "Qld", - "Fcilty_nam": "Mitchelton - Brookside", - "Shp_num_an": "Shop 114A", - "Shp_centre": "Brookside Shopping Centre", - "Street_add": "159 Osborne Road", - "Locality": "Mitchelton", - "Postcode": "4053", - "Hrs_of_bus": "09:00-17:00 Monday to Friday, 9:00-19:00 Thursdays, 09:00-12:30 Saturdays, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "95", - "result": "100000", - "Audio": "", - "gx_id": "70" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 152.990178, - -27.307401 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "QLD", - "Fcilty_nam": "Strathpine", - "Shp_num_an": "Shop 145", - "Shp_centre": "Westfield Strathpine", - "Street_add": "295 Gympie Road", - "Locality": "Strathpine", - "Postcode": "4500", - "Hrs_of_bus": "09:00-17:00 Monday to Friday, 9:00-19:00 Thursdays, 09:00-12:30 Saturdays, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "127", - "result": "10", - "Audio": "", - "gx_id": "71" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 153.024822, - -27.470496 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "Qld", - "Fcilty_nam": "Brisbane - Queen Street", - "Shp_num_an": "Shop 225, Level 2,", - "Shp_centre": "Myer Centre, Queen Street Mall", - "Street_add": "91 Queen Street", - "Locality": "Brisbane", - "Postcode": "4000", - "Hrs_of_bus": "08:30-17:00 Monday to Friday, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "132", - "result": "999", - "Audio": "", - "gx_id": "72" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 153.03099899999998, - -27.385905 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "QLD", - "Fcilty_nam": "Chermside", - "Shp_num_an": "Shop 87", - "Shp_centre": "Westfield Chermside", - "Street_add": "Cnr Gympie & Hamilton Road", - "Locality": "Chermside", - "Postcode": "4032", - "Hrs_of_bus": "09:00-17:00 Monday to Friday, 09:00-19:00 Thursdays, 09:00-12:30 Saturdays, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "101", - "result": "10", - "Audio": "YES", - "gx_id": "73" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 153.050544, - -28.863504 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "NSW", - "Fcilty_nam": "Casino", - "Shp_num_an": "", - "Shp_centre": "", - "Street_add": "46 Hickey Street", - "Locality": "Casino", - "Postcode": "2470", - "Hrs_of_bus": "08:30 -16:30 Monday to Friday, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "19", - "result": "10", - "Audio": "", - "gx_id": "74" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 153.05996397, - -27.408429199999997 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "QLD", - "Fcilty_nam": "Toombul", - "Shp_num_an": "Shop 80", - "Shp_centre": "Centro Toombul", - "Street_add": "1015 Sandgate Road", - "Locality": "Toombul", - "Postcode": "4012", - "Hrs_of_bus": "09:00-17:00 Monday to Friday, 09:00-12:30 Saturdays, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "128", - "result": "999", - "Audio": "", - "gx_id": "75" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 153.081084, - -27.560035 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "QLD", - "Fcilty_nam": "Upper Mount Gravatt - Garden City", - "Shp_num_an": "Shop 1023", - "Shp_centre": "Garden City Shopping Centre", - "Street_add": "Cnr Kessels & Logan Road", - "Locality": "Upper Mount Gravatt", - "Postcode": "4122", - "Hrs_of_bus": "09:00-17:00 Monday to Friday, 9:00-19:00 Thursdays, 09:00-12:30 Saturdays, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "106", - "result": "10", - "Audio": "", - "gx_id": "76" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 153.087773, - -27.226718 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "QLD", - "Fcilty_nam": "Kippa-ring", - "Shp_num_an": "Shop A3", - "Shp_centre": "Peninsula Fair Shopping City", - "Street_add": "272 Anzac Avenue", - "Locality": "Kippa-Ring", - "Postcode": "4021", - "Hrs_of_bus": "09:00-17:00 Monday to Friday, 09:00-12:30 Saturdays, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "116", - "result": "10", - "Audio": "YES", - "gx_id": "77" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 153.090664, - -26.654233 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "Qld", - "Fcilty_nam": "Maroochydore", - "Shp_num_an": "Shop 323, level 1,", - "Shp_centre": "Sunshine Plaza,", - "Street_add": "Horton Parade", - "Locality": "Maroochydore", - "Postcode": "4558", - "Hrs_of_bus": "09:00-17:00 Monday to Friday, 9:00-19:00 Thursdays, 09:00-12:30 Saturdays, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "254", - "result": "200002", - "Audio": "", - "gx_id": "78" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 153.10093699999996, - -27.498755 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "QLD", - "Fcilty_nam": "Carindale", - "Shp_num_an": "Shop 1027,Ground Floor", - "Shp_centre": "Westfield Carindale", - "Street_add": "1151 Creek Road", - "Locality": "Carindale", - "Postcode": "4152", - "Hrs_of_bus": "09:00-17:00 Monday to Friday, 9:00-19:00 Thursdays, 09:00-12:30 Saturdays, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "100", - "result": "999", - "Audio": "", - "gx_id": "79" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 149.909232, - -36.887751 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "NSW", - "Fcilty_nam": "Merimbula", - "Shp_num_an": "Shop 2", - "Shp_centre": "", - "Street_add": "11 Merimbula Drive", - "Locality": "Merimbula", - "Postcode": "2548", - "Hrs_of_bus": "09:00-16:30 Monday to Friday, excluding Public Holidays", - "Wheelchair": "NO", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "50", - "result": "100000", - "Audio": "", - "gx_id": "8" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 153.113548, - -27.642923 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "Qld", - "Fcilty_nam": "Woodridge", - "Shp_num_an": "Shop 3, Ground Floor", - "Shp_centre": "Logan Central Plaza", - "Street_add": "38 Wembley Road", - "Locality": "Woodridge", - "Postcode": "4114", - "Hrs_of_bus": "09:00-17:00 Monday to Friday, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "133", - "result": "101000", - "Audio": "", - "gx_id": "80" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 153.125954, - -26.803062 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "QLD", - "Fcilty_nam": "Caloundra", - "Shp_num_an": "Shop 19", - "Shp_centre": "Stockland Caloundra", - "Street_add": "47 Bowman Road", - "Locality": "Caloundra", - "Postcode": "4551", - "Hrs_of_bus": "09:00-17:00 Monday to Friday, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "98", - "result": "100000", - "Audio": "", - "gx_id": "81" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 153.130653, - -26.700943999999996 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "QLD", - "Fcilty_nam": "Buddina - Kawana Waters", - "Shp_num_an": "Shop 416", - "Shp_centre": "Kawana Waters Shoppingworld", - "Street_add": "119 Point Cartwright Drive", - "Locality": "Buddina", - "Postcode": "4575", - "Hrs_of_bus": "09:00-17:00 Monday to Friday, 09:00-12:30 Saturdays, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "114", - "result": "100000", - "Audio": "", - "gx_id": "82" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 153.133021, - -30.285734999999995 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "NSW", - "Fcilty_nam": "Coffs Harbour", - "Shp_num_an": "Shop 83", - "Shp_centre": "Park Beach Plaza", - "Street_add": "253 Park Beach Road", - "Locality": "Coffs Harbour", - "Postcode": "2450", - "Hrs_of_bus": "09:00-17:00 Monday to Friday, 9:00-18:00 Thursday, 09:00-12:30 Saturdays, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "24", - "result": "50", - "Audio": "", - "gx_id": "83" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 153.172331, - -27.44671 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "QLD", - "Fcilty_nam": "Wynnum", - "Shp_num_an": "", - "Shp_centre": "", - "Street_add": "89 Tingal Road (Cnr Clara Street)", - "Locality": "Wynnum", - "Postcode": "4178", - "Hrs_of_bus": "08:30-16:30 Monday to Friday, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "255", - "result": "10", - "Audio": "", - "gx_id": "84" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 153.190099, - -27.521537 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "QLD", - "Fcilty_nam": "Capalaba", - "Shp_num_an": "Shop 95", - "Shp_centre": "Capalaba Park Shopping Centre", - "Street_add": "Cnr Mt Cotton & Redland Bay Road", - "Locality": "Capalaba", - "Postcode": "4157", - "Hrs_of_bus": "09:00-17:00 Monday to Friday, 09:00-12:30 Saturdays, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "99", - "result": "999", - "Audio": "", - "gx_id": "85" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 153.206616, - -27.716316 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "Qld", - "Fcilty_nam": "Beenleigh", - "Shp_num_an": "Shop 6A", - "Shp_centre": "Beenleigh Marketplace", - "Street_add": "George Street", - "Locality": "Beenleigh", - "Postcode": "4207", - "Hrs_of_bus": "09:00-17:00 Monday to Friday, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "93", - "result": "999", - "Audio": "", - "gx_id": "86" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 153.268443, - -27.526063 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "QLD", - "Fcilty_nam": "Cleveland", - "Shp_num_an": "Shop 76", - "Shp_centre": "Stockland Cleveland North Mall", - "Street_add": "90 Middle Street", - "Locality": "Cleveland", - "Postcode": "4163", - "Hrs_of_bus": "09:00-17:00 Monday to Friday, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "103", - "result": "100000", - "Audio": "", - "gx_id": "87" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 153.285535, - -28.809506 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "NSW", - "Fcilty_nam": "Lismore", - "Shp_num_an": "Shop 78,", - "Shp_centre": "Lismore Shopping Square,", - "Street_add": "Cnr Brewster St & Uralba St", - "Locality": "Lismore", - "Postcode": "2480", - "Hrs_of_bus": "09:00-17:00 Monday to Friday, 09:00-12:30 Saturdays, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "44", - "result": "999", - "Audio": "", - "gx_id": "88" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 153.380844, - -27.977129 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "Qld", - "Fcilty_nam": "Ashmore", - "Shp_num_an": "Shop 7", - "Shp_centre": "Ashmore City Shopping Centre", - "Street_add": "Cnr Nerang & Currumburra Rds", - "Locality": "Ashmore", - "Postcode": "4214", - "Hrs_of_bus": "09:00-17:00 Monday to Friday, 09:00-12:30 Saturdays, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "90", - "result": "999", - "Audio": "", - "gx_id": "89" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 150.126247, - -36.22330099999999 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "NSW", - "Fcilty_nam": "Narooma", - "Shp_num_an": "Shop 35", - "Shp_centre": "Narooma Plaza", - "Street_add": "185 Princes Highway", - "Locality": "Narooma", - "Postcode": "2546", - "Hrs_of_bus": "09:00-16:30 Monday to Friday, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "55", - "result": "200002", - "Audio": "", - "gx_id": "9" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 153.41704, - -27.969399 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "QLD", - "Fcilty_nam": "Southport", - "Shp_num_an": "Shop 1047", - "Shp_centre": "Australia Fair Shopping Centre", - "Street_add": "42 Marine Parade", - "Locality": "Southport", - "Postcode": "4215", - "Hrs_of_bus": "09:00-17:00 Monday to Friday, 09:00-12:30 Saturdays, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "126", - "result": "10", - "Audio": "", - "gx_id": "90" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 153.42838799999998, - -28.035252 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "QLD", - "Fcilty_nam": "Broadbeach - Pacific Fair", - "Shp_num_an": "Shop 301a", - "Shp_centre": "Pacific Fair Shopping Centre", - "Street_add": "Hooker Boulevarde", - "Locality": "Broadbeach", - "Postcode": "4218", - "Hrs_of_bus": "09:00-17:00 Monday to Friday, 9:00-18:00 Thursdays, 09:00-12:30 Saturdays, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "123", - "result": "999", - "Audio": "", - "gx_id": "91" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 153.46904199999997, - -28.13551 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "Qld", - "Fcilty_nam": "Elanora", - "Shp_num_an": "Shop 26,", - "Shp_centre": "The Pines Shopping Centre,", - "Street_add": "313 K P Mcgrath Drive", - "Locality": "Elanora", - "Postcode": "4221", - "Hrs_of_bus": "09:00-17:00 Monday to Friday, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "248", - "result": "200000", - "Audio": "", - "gx_id": "92" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 153.544038, - -28.199979999999996 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "NSW", - "Fcilty_nam": "Tweed Heads", - "Shp_num_an": "Shop 23", - "Shp_centre": "Tweed City Shopping Centre", - "Street_add": "54 Minjungbal Drive", - "Locality": "Tweed Heads South", - "Postcode": "2486", - "Hrs_of_bus": "09:00-17:00 Monday to Friday, 09:00-12:30 Saturdays, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "88", - "result": "100000", - "Audio": "", - "gx_id": "93" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 153.557166, - -28.867655 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "NSW", - "Fcilty_nam": "Ballina", - "Shp_num_an": "", - "Shp_centre": "", - "Street_add": "117-121 Tamar Street", - "Locality": "Ballina", - "Postcode": "2478", - "Hrs_of_bus": "08:30-16:30 Monday to Friday, 09:00-12:30 Saturdays, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "7", - "result": "10", - "Audio": "", - "gx_id": "94" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 151.058952, - -34.031886 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "NSW", - "Fcilty_nam": "Sutherland - Limited Services - EFT only (Centrelink)", - "Shp_num_an": "", - "Shp_centre": "", - "Street_add": "36 Eton Street", - "Locality": "Sutherland", - "Postcode": "2232", - "Hrs_of_bus": "08:00-17:00 Monday to Friday, excluding Public Holidays", - "Wheelchair": "", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "259", - "result": "0", - "Audio": "", - "gx_id": "95" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 145.186676, - -38.307719 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "VIC", - "Fcilty_nam": "Hastings - Limited Services - EFT Only (Centrelink)", - "Shp_num_an": "", - "Shp_centre": "", - "Street_add": "125 High Street", - "Locality": "Hastings", - "Postcode": "3915", - "Hrs_of_bus": "08:15-16:45 Monday to Friday, excluding Public Holidays", - "Wheelchair": "", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "260", - "result": "10", - "Audio": "", - "gx_id": "96" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 145.740351, - -16.94132 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "QLD", - "Fcilty_nam": "Earlville - Limited Services - EFT Only (Centrelink)", - "Shp_num_an": "", - "Shp_centre": "", - "Street_add": "480 Mulgrave Road", - "Locality": "Earlville", - "Postcode": "4870", - "Hrs_of_bus": "08:30-17:00 Monday to Friday, excluding Public Holidays", - "Wheelchair": "", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "261", - "result": "999", - "Audio": "", - "gx_id": "97" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 122.239912, - -17.954772999999996 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "WA", - "Fcilty_nam": "Broome - Limited Services - EFT Only (Centrelink)", - "Shp_num_an": "Centrelink Building", - "Shp_centre": "", - "Street_add": "14 Napier Terrace", - "Locality": "Broome", - "Postcode": "6725", - "Hrs_of_bus": "07:45-16:45 Monday to Friday, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "262", - "result": "30", - "Audio": "", - "gx_id": "98" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - 147.14148063, - -41.43081154 - ] - }, - "properties": { - "Fcilty_typ": "MO", - "State": "TAS", - "Fcilty_nam": "Launceston - Limited Services - EFT Only (Centrelink)", - "Shp_num_an": "", - "Shp_centre": "", - "Street_add": "8 Boland Street", - "Locality": "Launceston", - "Postcode": "7250", - "Hrs_of_bus": "08:30 - 17:00 Monday to Friday, excluding Public Holidays", - "Wheelchair": "YES", - "Display_wd": "1.5", - "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", - "uuid": "263", - "result": "999", - "Audio": "", - "gx_id": "99" - } - } - ], - "allowedQueriesPerSecond": 150.0 + "type": "FeatureCollection", + "features": [ + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [149.23531999999997, -35.352484] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "NSW", + "Fcilty_nam": "Queanbeyan", + "Shp_num_an": "Shop 47", + "Shp_centre": "Riverside Plaza", + "Street_add": "131 Monaro Street", + "Locality": "Queanbeyan", + "Postcode": "2620", + "Hrs_of_bus": "09:00-17:00 Monday to Friday, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "67", + "result": "999", + "Audio": "", + "gx_id": "1" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [150.152845, -33.485573] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "NSW", + "Fcilty_nam": "Lithgow", + "Shp_num_an": "Shop 49", + "Shp_centre": "Lithgow Valley Shopping Centre", + "Street_add": "Lithgow Street", + "Locality": "Lithgow", + "Postcode": "2790", + "Hrs_of_bus": "09:00-16:30 Monday to Friday, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "45", + "result": "200002", + "Audio": "", + "gx_id": "10" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [148.162253, -23.524792] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "QLD", + "Fcilty_nam": "Emerald - EFT only", + "Shp_num_an": "", + "Shp_centre": "Widebay Capricorn House", + "Street_add": "50 Borilla Street", + "Locality": "Emerald", + "Postcode": "4720", + "Hrs_of_bus": "08:30-16:30 Monday to Friday, excluding Public Holidays", + "Wheelchair": "", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "266", + "result": "10", + "Audio": "", + "gx_id": "100" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [138.68569099999996, -34.831851] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "SA", + "Fcilty_nam": "Modbury", + "Shp_num_an": "Shop 216", + "Shp_centre": "Westfield Tea Tree Plaza", + "Street_add": "976 North East Road", + "Locality": "Modbury", + "Postcode": "5092", + "Hrs_of_bus": "09:00-17:00 Monday to Friday, 9:00-19:00 Thursdays, 09:00-12:30 Saturdays, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "144", + "result": "100001", + "Audio": "YES", + "gx_id": "101" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [138.749247, -34.598676] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "SA", + "Fcilty_nam": "Gawler", + "Shp_num_an": "Shop 4", + "Shp_centre": "", + "Street_add": "103-107 Murray Street", + "Locality": "Gawler", + "Postcode": "5118", + "Hrs_of_bus": "09:00-17:00 Monday to Friday, 09:00-12:30 Saturdays, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "142", + "result": "10", + "Audio": "", + "gx_id": "102" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [139.494399, -20.725590999999998] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "QLD", + "Fcilty_nam": "Mt Isa", + "Shp_num_an": "Shop 7b", + "Shp_centre": "Isa Square", + "Street_add": "29 Simpson Street", + "Locality": "Mount Isa", + "Postcode": "4825", + "Hrs_of_bus": "09:00-16:30 Monday to Friday, excluding Public Holidays", + "Wheelchair": "NO", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "120", + "result": "100000", + "Audio": "", + "gx_id": "103" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [140.601162, -34.284181] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "SA", + "Fcilty_nam": "Berri", + "Shp_num_an": "", + "Shp_centre": "", + "Street_add": "22 Vaughan Terrace", + "Locality": "Berri", + "Postcode": "5343", + "Hrs_of_bus": "09:00-16:30 Monday to Friday, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "138", + "result": "100000", + "Audio": "", + "gx_id": "104" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [140.783421, -37.831071] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "SA", + "Fcilty_nam": "Mt Gambier", + "Shp_num_an": "Shop 1 & 2", + "Shp_centre": "Savings & Loan Plaza", + "Street_add": "7-3 Compton Street", + "Locality": "Mt Gambier", + "Postcode": "5290", + "Hrs_of_bus": "09:00-16:30 Monday to Friday, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "145", + "result": "10", + "Audio": "", + "gx_id": "105" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [141.46569, -31.958137] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "NSW", + "Fcilty_nam": "Broken Hill", + "Shp_num_an": "Shop 9", + "Shp_centre": "Exchange Arcade", + "Street_add": "324 Argent Street", + "Locality": "Broken Hill", + "Postcode": "2880", + "Hrs_of_bus": "09:00-16:30 Monday to Friday, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "134", + "result": "100000", + "Audio": "", + "gx_id": "106" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [141.60158205, -38.34492219] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "VIC", + "Fcilty_nam": "Portland", + "Shp_num_an": "Shop T2", + "Shp_centre": "", + "Street_add": "Fredericks Court", + "Locality": "Portland", + "Postcode": "3305", + "Hrs_of_bus": "09:00-17:00 Monday to Friday, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "196", + "result": "999", + "Audio": "", + "gx_id": "107" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [142.025785, -37.74252] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "VIC", + "Fcilty_nam": "Hamilton", + "Shp_num_an": "", + "Shp_centre": "", + "Street_add": "184 Gray Street", + "Locality": "Hamilton", + "Postcode": "3300", + "Hrs_of_bus": "09:00-17:00 Monday to Friday, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "185", + "result": "100000", + "Audio": "", + "gx_id": "108" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [142.162225, -34.184836] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "VIC", + "Fcilty_nam": "Mildura", + "Shp_num_an": "", + "Shp_centre": "", + "Street_add": "129 Eighth Street", + "Locality": "Mildura", + "Postcode": "3500", + "Hrs_of_bus": "09:00-17:00 Monday to Friday, 09:00-12:30 Saturdays, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "190", + "result": "100000", + "Audio": "", + "gx_id": "109" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [151.005526, -33.731878] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "NSW", + "Fcilty_nam": "Castle Hill", + "Shp_num_an": "Shop 518", + "Shp_centre": "Castle Towers Shopping Centre", + "Street_add": "6-14 Castle Street", + "Locality": "Castle Hill", + "Postcode": "2154", + "Hrs_of_bus": "09:00-17:00 Monday to Friday, 9:00-19:00 Thursdays, 09:00-12:30 Saturdays, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "20", + "result": "10", + "Audio": "", + "gx_id": "11" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [142.197115, -36.71312399999999] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "VIC", + "Fcilty_nam": "Horsham", + "Shp_num_an": "", + "Shp_centre": "", + "Street_add": "Cnr Darlot & McLachlan Streets", + "Locality": "Horsham", + "Postcode": "3400", + "Hrs_of_bus": "09:00-17:00 Monday to Friday, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "187", + "result": "10", + "Audio": "", + "gx_id": "110" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [142.485646, -38.382203] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "VIC", + "Fcilty_nam": "Warrnambool", + "Shp_num_an": "", + "Shp_centre": "", + "Street_add": "109 Lava Street", + "Locality": "Warrnambool", + "Postcode": "3280", + "Hrs_of_bus": "09:00-17:00 Monday to Friday, 09:00-12:30 Saturdays, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "206", + "result": "10", + "Audio": "", + "gx_id": "111" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [142.929806, -37.28385] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "VIC", + "Fcilty_nam": "Ararat", + "Shp_num_an": "", + "Shp_centre": "", + "Street_add": "135 Barkly Street", + "Locality": "Ararat", + "Postcode": "3377", + "Hrs_of_bus": "09:00-17:00 Monday to Friday, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "160", + "result": "100000", + "Audio": "", + "gx_id": "112" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [143.562081, -35.345529] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "VIC", + "Fcilty_nam": "Swan Hill", + "Shp_num_an": "", + "Shp_centre": "", + "Street_add": "270 Campbell Street", + "Locality": "Swan Hill", + "Postcode": "3585", + "Hrs_of_bus": "09:00-17:00 Monday to Friday, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "202", + "result": "100000", + "Audio": "", + "gx_id": "113" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [143.58852144, -38.33825147] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "VIC", + "Fcilty_nam": "Colac", + "Shp_num_an": "", + "Shp_centre": "", + "Street_add": "55 Dennis Street", + "Locality": "Colac", + "Postcode": "3250", + "Hrs_of_bus": "09:00-17:00 Monday to Friday, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "173", + "result": "999", + "Audio": "", + "gx_id": "114" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [143.856336, -37.560788] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "VIC", + "Fcilty_nam": "Ballarat", + "Shp_num_an": "", + "Shp_centre": "", + "Street_add": "11a Armstrong Street North", + "Locality": "Ballarat", + "Postcode": "3350", + "Hrs_of_bus": "09:00-17:00 Monday to Friday, 09:00-12:30 Saturdays, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "162", + "result": "999", + "Audio": "", + "gx_id": "115" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [144.279353, -36.761909] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "VIC", + "Fcilty_nam": "Bendigo", + "Shp_num_an": "", + "Shp_centre": "", + "Street_add": "56 Queen Street", + "Locality": "Bendigo", + "Postcode": "3550", + "Hrs_of_bus": "09:00-17:00 Monday to Friday, 09:00-12:30 Saturdays, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "163", + "result": "100000", + "Audio": "", + "gx_id": "116" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [144.278586, -38.207802] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "VIC", + "Fcilty_nam": "Waurn Ponds", + "Shp_num_an": "Shop 702", + "Shp_centre": "Waurn Ponds Shopping Centre", + "Street_add": "Cnr Pioneer Road & Princes Highway", + "Locality": "Waurn Ponds", + "Postcode": "3221", + "Hrs_of_bus": "09:00-17:00 Monday to Friday, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "207", + "result": "200002", + "Audio": "", + "gx_id": "117" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [144.358645, -38.065907] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "VIC", + "Fcilty_nam": "Corio", + "Shp_num_an": "Shop 12", + "Shp_centre": "Corio Shopping Centre", + "Street_add": "Bacchus Marsh Road", + "Locality": "Corio", + "Postcode": "3214", + "Hrs_of_bus": "09:00-17:00 Monday to Friday, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "175", + "result": "200002", + "Audio": "", + "gx_id": "118" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [144.993863, -37.847036] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "VIC", + "Fcilty_nam": "Prahran", + "Shp_num_an": "Shop M53, Mezzanine level", + "Shp_centre": "Pran Central", + "Street_add": "Cnr Chapel Street and Commercial Road", + "Locality": "Prahran", + "Postcode": "3181", + "Hrs_of_bus": "09:00-17:00 Monday to Friday, 09:00-12:30 Saturdays, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "197", + "result": "999", + "Audio": "", + "gx_id": "119" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [151.01464599999997, -34.06554] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "NSW", + "Fcilty_nam": "Engadine", + "Shp_num_an": "Shop 14", + "Shp_centre": "Engadine Court", + "Street_add": "101 Caldarra Avenue", + "Locality": "Engadine", + "Postcode": "2233", + "Hrs_of_bus": "09:00-17:00 Monday to Friday, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "29", + "result": "100000", + "Audio": "", + "gx_id": "12" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [145.000147, -37.769003] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "VIC", + "Fcilty_nam": "Northcote", + "Shp_num_an": "Shop 22/23", + "Shp_centre": "Northcote Central Shopping Ctr", + "Street_add": "17 Separation Street", + "Locality": "Northcote", + "Postcode": "3070", + "Hrs_of_bus": "09:00-17:00 Monday to Friday, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "194", + "result": "999", + "Audio": "", + "gx_id": "120" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [145.004204, -37.884814] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "VIC", + "Fcilty_nam": "Elsternwick", + "Shp_num_an": "", + "Shp_centre": "", + "Street_add": "384 Glen Huntly Road", + "Locality": "Elsternwick", + "Postcode": "3185", + "Hrs_of_bus": "09:00-17:00 Monday to Friday, 09:00-12:30 Saturdays, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "179", + "result": "100000", + "Audio": "", + "gx_id": "121" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [145.025241, -37.740269] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "VIC", + "Fcilty_nam": "Preston - Northland", + "Shp_num_an": "Shop F07,", + "Shp_centre": "Northland Shopping Centre,", + "Street_add": "50 Murray Road", + "Locality": "Preston", + "Postcode": "3072", + "Hrs_of_bus": "09:00-17:00 Monday to Friday, 09:00-12:30 Saturdays, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "195", + "result": "10", + "Audio": "", + "gx_id": "122" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [145.038547, -37.918511] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "VIC", + "Fcilty_nam": "Bentleigh", + "Shp_num_an": "", + "Shp_centre": "", + "Street_add": "440 Centre Road", + "Locality": "Bentleigh", + "Postcode": "3204", + "Hrs_of_bus": "09:00-17:00 Monday to Friday, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "164", + "result": "100000", + "Audio": "YES", + "gx_id": "123" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [145.040785, -38.22310099999999] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "VIC", + "Fcilty_nam": "Mornington", + "Shp_num_an": "Shop 105", + "Shp_centre": "Village Shopping Centre", + "Street_add": "Main Street", + "Locality": "Mornington", + "Postcode": "3931", + "Hrs_of_bus": "09:00-17:00 Monday to Friday, 09:00-12:30 Saturdays, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "192", + "result": "200002", + "Audio": "", + "gx_id": "124" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [145.054595, -37.960986999999996] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "VIC", + "Fcilty_nam": "Cheltenham - Southland", + "Shp_num_an": "Shop 3044, Level 3", + "Shp_centre": "Southland Shoppingtown", + "Street_add": "1239 Nepean Highway", + "Locality": "Cheltenham", + "Postcode": "3192", + "Hrs_of_bus": "09:00-17:00 Monday to Friday, 9:00-19:00 Thursday, 09:00-12:30 Saturday, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "201", + "result": "100001", + "Audio": "", + "gx_id": "125" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [145.057273, -37.831345] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "VIC", + "Fcilty_nam": "Camberwell", + "Shp_num_an": "", + "Shp_centre": "", + "Street_add": "527 Riversdale Road", + "Locality": "Camberwell", + "Postcode": "3124", + "Hrs_of_bus": "09:00-17:00 Monday to Friday, 09:00-12:30 Saturdays, excluding Public Holidays,", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "168", + "result": "100000", + "Audio": "YES", + "gx_id": "126" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [145.08131064, -37.88635881] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "VIC", + "Fcilty_nam": "Chadstone", + "Shp_num_an": "Shop B158, Lower Level", + "Shp_centre": "Chadstone Shopping Centre", + "Street_add": "1341 Dandenong Road", + "Locality": "Chadstone", + "Postcode": "3148", + "Hrs_of_bus": "09:00-17:00 Monday to Friday, 9:00-19:00 Thursdays, 09:00-12:30 Saturdays, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "170", + "result": "999", + "Audio": "", + "gx_id": "127" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [145.103282, -37.703998] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "VIC", + "Fcilty_nam": "Greensborough", + "Shp_num_an": "Shop 110-111, Level 1", + "Shp_centre": "Greensborough Plaza", + "Street_add": "25 Main Street", + "Locality": "Greensborough", + "Postcode": "3088", + "Hrs_of_bus": "09:00-17:00 Monday to Friday, 9:00-19:00 Thursdays, 09:00-12:30 Saturdays, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "184", + "result": "10", + "Audio": "", + "gx_id": "128" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [145.122547, -37.818999] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "VIC", + "Fcilty_nam": "Box Hill", + "Shp_num_an": "Shop South 15", + "Shp_centre": "Centro Box Hill", + "Street_add": "Main Street", + "Locality": "Box Hill", + "Postcode": "3128", + "Hrs_of_bus": "09:00-17:00 Monday to Friday, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "166", + "result": "999", + "Audio": "", + "gx_id": "129" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [151.040138, -33.917178] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "NSW", + "Fcilty_nam": "Bankstown", + "Shp_num_an": "Shop 219b", + "Shp_centre": "Bankstown Centro", + "Street_add": "Cnr Lady Cutler Avenue & North Terrace", + "Locality": "Bankstown", + "Postcode": "2200", + "Hrs_of_bus": "09:00-17:00 Monday to Friday, 09:00-12:30 Saturdays, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "8", + "result": "10", + "Audio": "", + "gx_id": "13" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [145.12370803999997, -38.14062238] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "VIC", + "Fcilty_nam": "Frankston", + "Shp_num_an": "Shop G001Q", + "Shp_centre": "Bayside Shopping Centre", + "Street_add": "Olsen Street", + "Locality": "Frankston", + "Postcode": "3199", + "Hrs_of_bus": "09:00-17:00 Monday to Friday, 9:00-19:00 Thursdays, 09:00-12:30 Saturdays, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "181", + "result": "999", + "Audio": "", + "gx_id": "130" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [145.125791, -37.775535] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "VIC", + "Fcilty_nam": "Doncaster", + "Shp_num_an": "Suite 1001", + "Shp_centre": "Doncaster Shoppingtown", + "Street_add": "Williamsons Road", + "Locality": "Doncaster", + "Postcode": "3108", + "Hrs_of_bus": "09:00-17:00 Monday to Friday, 09:00-12:30 Saturdays, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "177", + "result": "200002", + "Audio": "", + "gx_id": "131" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [145.184646, -37.93664199999999] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "VIC", + "Fcilty_nam": "Waverley Gardens", + "Shp_num_an": "Shop 58", + "Shp_centre": "Waverley Gardens Shopping Ctr", + "Street_add": "Police Road", + "Locality": "Mulgrave", + "Postcode": "3170", + "Hrs_of_bus": "09:00-17:00 Monday to Friday, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "208", + "result": "200002", + "Audio": "", + "gx_id": "132" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [145.166304, -37.87668099999999] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "VIC", + "Fcilty_nam": "Glen Waverley", + "Shp_num_an": "Shop 5, Level 1", + "Shp_centre": "The Glen Shopping Centre", + "Street_add": "235 Springvale Road", + "Locality": "Glen Waverley", + "Postcode": "3150", + "Hrs_of_bus": "09:00-17:00 Monday to Friday, 9:00-18:00 Thursdays, 09:00-12:30 Saturdays, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "183", + "result": "100000", + "Audio": "YES", + "gx_id": "133" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [145.16532097999996, -37.83470177] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "VIC", + "Fcilty_nam": "Forest Hill", + "Shp_num_an": "Shop T142", + "Shp_centre": "Forest Hill Chase Shopping Ctr", + "Street_add": "Canterbury Road", + "Locality": "Forest Hill", + "Postcode": "3131", + "Hrs_of_bus": "09:00-17:00 Monday to Friday, 09:00-12:30 Saturdays, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "180", + "result": "999", + "Audio": "", + "gx_id": "134" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [145.21956, -37.990225] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "VIC", + "Fcilty_nam": "Dandenong", + "Shp_num_an": "Shop 115", + "Shp_centre": "Dandenong Palm Plaza", + "Street_add": "Mccrae Street", + "Locality": "Dandenong", + "Postcode": "3175", + "Hrs_of_bus": "09:00-17:00 Monday to Friday, 9:00-19:00 Thursdays and 09:00-12:30 Saturdays, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "176", + "result": "200002", + "Audio": "", + "gx_id": "135" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [145.22952299999997, -37.815148] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "VIC", + "Fcilty_nam": "Ringwood", + "Shp_num_an": "Shop L108", + "Shp_centre": "Eastland Shopping Centre", + "Street_add": "171 Maroondah Highway", + "Locality": "Ringwood", + "Postcode": "3134", + "Hrs_of_bus": "09:00-17:00 Monday to Friday, 9:00-19:00 Thursdays, 09:00-12:30 Saturdays, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "198", + "result": "10", + "Audio": "", + "gx_id": "136" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [145.235211, -37.868979] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "VIC", + "Fcilty_nam": "Wantirna South - Knox City", + "Shp_num_an": "Shop 1091", + "Shp_centre": "Knox City Shopping Centre", + "Street_add": "Cnr Burwood Hwy & Stud Rd", + "Locality": "Wantirna South", + "Postcode": "3152", + "Hrs_of_bus": "09:00-17:00 Monday to Friday, 9:00-19:00 Thursdays, 09:00-12:30 Saturdays, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "188", + "result": "100000", + "Audio": "", + "gx_id": "137" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [145.282415, -38.10175199999999] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "VIC", + "Fcilty_nam": "Cranbourne", + "Shp_num_an": "Shop 61,", + "Shp_centre": "Centro Cranbourne Shopping Centre,", + "Street_add": "High Street", + "Locality": "Cranbourne", + "Postcode": "3977", + "Hrs_of_bus": "09:00-17:00 Monday to Friday, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "249", + "result": "200002", + "Audio": "", + "gx_id": "138" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [145.302884, -38.023447] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "VIC", + "Fcilty_nam": "Narre Warren - Fountain Gate", + "Shp_num_an": "1158", + "Shp_centre": "Westfield Fountain Gate Shopping Centre", + "Street_add": "352 Princes Highway", + "Locality": "Narre Warren", + "Postcode": "3805", + "Hrs_of_bus": "09:00-17:00 Monday to Friday, 9:00-19:00 Thursdays, 09:00-12:30 Saturdays, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "242", + "result": "100000", + "Audio": "", + "gx_id": "139" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [151.068843, -33.935046] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "NSW", + "Fcilty_nam": "Roselands", + "Shp_num_an": "Shop 92, Lower Ground Floor", + "Shp_centre": "Centro Roselands", + "Street_add": "Roselands Drive", + "Locality": "Roselands", + "Postcode": "2196", + "Hrs_of_bus": "09:00-17:00 Monday to Friday, 09:00-12:30 Saturdays, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "70", + "result": "999", + "Audio": "", + "gx_id": "14" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [145.328297, -37.760394] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "VIC", + "Fcilty_nam": "Chirnside Park", + "Shp_num_an": "Shop 713", + "Shp_centre": "Chirnside Park Shopping Centre", + "Street_add": "Maroondah Highway", + "Locality": "Chirnside Park", + "Postcode": "3116", + "Hrs_of_bus": "09:00-17:00 Monday to Friday, 9:00-18:00 Thursdays, 09:00-12:30 Saturdays, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "171", + "result": "200002", + "Audio": "", + "gx_id": "140" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [145.400015, -36.37982999999999] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "VIC", + "Fcilty_nam": "Shepparton", + "Shp_num_an": "Shop 3", + "Shp_centre": "City Walk Arcade", + "Street_add": "306 Wyndham Street", + "Locality": "Shepparton", + "Postcode": "3630", + "Hrs_of_bus": "09:00-17:00 Monday to Friday, 09:00-12:30 Saturdays, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "200", + "result": "999", + "Audio": "", + "gx_id": "141" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [145.47792, -17.265034] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "Qld", + "Fcilty_nam": "Atherton", + "Shp_num_an": "", + "Shp_centre": "", + "Street_add": "30 Mabel Street", + "Locality": "Atherton", + "Postcode": "4883", + "Hrs_of_bus": "09:00-16:30 Monday to Friday, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "91", + "result": "100000", + "Audio": "", + "gx_id": "142" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [145.69201716, -16.83848737] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "QLD", + "Fcilty_nam": "Smithfield", + "Shp_num_an": "Shop 77", + "Shp_centre": "Smithfield Shopping Centre", + "Street_add": "Cnr Kennedy & Captain Cook Highways", + "Locality": "Smithfield", + "Postcode": "4878", + "Hrs_of_bus": "09:00-17:00 Monday to Friday, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "125", + "result": "999", + "Audio": "", + "gx_id": "143" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [145.774177, -16.926226] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "QLD", + "Fcilty_nam": "Cairns", + "Shp_num_an": "Shop QL 15-19", + "Shp_centre": "Cairns Central", + "Street_add": "Cnr McLeod & Spence Streets", + "Locality": "Cairns", + "Postcode": "4870", + "Hrs_of_bus": "09:00-17:00 Monday to Friday, 9:00-18:00 Thursdays, 09:00-12:30 Saturdays, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "97", + "result": "10", + "Audio": "", + "gx_id": "144" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [145.907662, -41.051096] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "TAS", + "Fcilty_nam": "Burnie", + "Shp_num_an": "Shop 2", + "Shp_centre": "Columnar Shopping Centre", + "Street_add": "22 Wilmot Street", + "Locality": "Burnie", + "Postcode": "7320", + "Hrs_of_bus": "09:00-17:00 Monday to Friday, 09:00-12:30 Saturdays, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "151", + "result": "10", + "Audio": "", + "gx_id": "145" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [145.928879, -38.163253] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "VIC", + "Fcilty_nam": "Warragul", + "Shp_num_an": "", + "Shp_centre": "", + "Street_add": "42 Queen Street", + "Locality": "Warragul", + "Postcode": "3820", + "Hrs_of_bus": "08:30-16:30 Monday to Friday, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "205", + "result": "10", + "Audio": "", + "gx_id": "146" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [146.031315, -17.524061] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "Qld", + "Fcilty_nam": "Innisfail", + "Shp_num_an": "Shop 30", + "Shp_centre": "The Central Shopping Centre", + "Street_add": "20 Edith Street", + "Locality": "Innisfail", + "Postcode": "4860", + "Hrs_of_bus": "09:00-16:30 Monday to Friday, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "112", + "result": "100000", + "Audio": "", + "gx_id": "147" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [146.044251, -34.28791] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "NSW", + "Fcilty_nam": "Griffith", + "Shp_num_an": "", + "Shp_centre": "", + "Street_add": "352-354 Banna Avenue", + "Locality": "Griffith", + "Postcode": "2680", + "Hrs_of_bus": "09:00-16:30 Monday to Friday, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "35", + "result": "10", + "Audio": "", + "gx_id": "148" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [146.160517, -18.647932] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "QLD", + "Fcilty_nam": "Ingham", + "Shp_num_an": "Shop 9/10", + "Shp_centre": "Hinchinbrook Central", + "Street_add": "86-92 Herbert Street", + "Locality": "Ingham", + "Postcode": "4850", + "Hrs_of_bus": "09:00-16:30 Monday to Friday, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "111", + "result": "10", + "Audio": "", + "gx_id": "149" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [151.081161, -33.791683] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "NSW", + "Fcilty_nam": "Eastwood", + "Shp_num_an": "Shop 25", + "Shp_centre": "Eastwood Centre", + "Street_add": "160 Rowe Street", + "Locality": "Eastwood", + "Postcode": "2122", + "Hrs_of_bus": "09:00-17:00 Monday to Friday, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "28", + "result": "100000", + "Audio": "YES", + "gx_id": "15" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [146.325502, -36.356378] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "VIC", + "Fcilty_nam": "Wangaratta", + "Shp_num_an": "", + "Shp_centre": "", + "Street_add": "28-30 Murphy Street", + "Locality": "Wangaratta", + "Postcode": "3677", + "Hrs_of_bus": "09:00-17:00 Monday to Friday, 09:00-12:30 Saturdays, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "204", + "result": "100000", + "Audio": "", + "gx_id": "150" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [146.360468, -41.181044] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "TAS", + "Fcilty_nam": "Devonport", + "Shp_num_an": "", + "Shp_centre": "", + "Street_add": "18 Rooke Street", + "Locality": "Devonport", + "Postcode": "7310", + "Hrs_of_bus": "09:00-17:00 Monday to Friday, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "152", + "result": "100000", + "Audio": "", + "gx_id": "151" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [146.399519, -38.23804499999999] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "VIC", + "Fcilty_nam": "Morwell", + "Shp_num_an": "", + "Shp_centre": "", + "Street_add": "246 Commercial Road", + "Locality": "Morwell", + "Postcode": "3840", + "Hrs_of_bus": "09:00-17:00 Monday to Friday, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "193", + "result": "100000", + "Audio": "", + "gx_id": "152" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [146.536736, -38.197385] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "VIC", + "Fcilty_nam": "Traralgon", + "Shp_num_an": "Shop 1", + "Shp_centre": "", + "Street_add": "81 Hotham Street", + "Locality": "Traralgon", + "Postcode": "3844", + "Hrs_of_bus": "09:00-17:00 Monday to Friday, 09:00-12:30 Saturdays, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "203", + "result": "100000", + "Audio": "", + "gx_id": "153" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [146.764721, -19.298838] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "QLD", + "Fcilty_nam": "Aitkenvale", + "Shp_num_an": "6s", + "Shp_centre": "Sunvale Shopping Centre", + "Street_add": "61-63 Elizabeth Street", + "Locality": "Aitkenvale", + "Postcode": "4814", + "Hrs_of_bus": "09:00-17:00 Monday to Friday, 9:00-18:00 Thursdays, 09:00-12:30 Saturdays, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "89", + "result": "10", + "Audio": "", + "gx_id": "154" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [146.8176287, -19.25945453] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "QLD", + "Fcilty_nam": "Townsville", + "Shp_num_an": "Shop 1", + "Shp_centre": "Northtown On The Mall", + "Street_add": "Flinders Street", + "Locality": "Townsville", + "Postcode": "4810", + "Hrs_of_bus": "09:00-16:30 Monday to Friday, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "130", + "result": "999", + "Audio": "", + "gx_id": "155" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [146.888076, -36.121221] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "VIC", + "Fcilty_nam": "Wodonga", + "Shp_num_an": "Shop 4", + "Shp_centre": "", + "Street_add": "123-125 High Street", + "Locality": "Wodonga", + "Postcode": "3690", + "Hrs_of_bus": "09:00-17:00 Monday to Friday, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "210", + "result": "10", + "Audio": "", + "gx_id": "156" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [146.91907, -36.081193] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "NSW", + "Fcilty_nam": "Albury", + "Shp_num_an": "", + "Shp_centre": "", + "Street_add": "489 Dean Street", + "Locality": "Albury", + "Postcode": "2640", + "Hrs_of_bus": "09:00-17:00 Monday to Friday, 09:00-12:30 Saturdays, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "5", + "result": "100000", + "Audio": "", + "gx_id": "157" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [147.065449, -38.106913] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "VIC", + "Fcilty_nam": "Sale", + "Shp_num_an": "", + "Shp_centre": "", + "Street_add": "301 Raymond Street", + "Locality": "Sale", + "Postcode": "3850", + "Hrs_of_bus": "09:00-17:00 Monday to Friday, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "199", + "result": "100000", + "Audio": "", + "gx_id": "158" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [147.139445, -41.43824] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "TAS", + "Fcilty_nam": "Launceston", + "Shp_num_an": "", + "Shp_centre": "", + "Street_add": "90 St John Street", + "Locality": "Launceston", + "Postcode": "7250", + "Hrs_of_bus": "08:30-17:00 Monday to Friday, 09:00-12:30 Saturdays, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "157", + "result": "100000", + "Audio": "", + "gx_id": "159" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [151.098693, -33.704617] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "NSW", + "Fcilty_nam": "Hornsby", + "Shp_num_an": "Shop 3111, Level 3", + "Shp_centre": "Westfield Hornsby", + "Street_add": "Cnr Florence & Hunter Streets", + "Locality": "Hornsby", + "Postcode": "2077", + "Hrs_of_bus": "09:00-17:00 Monday to Friday, 09:00-19:00 Thursdays, 09:00-12:30 Saturdays, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "37", + "result": "100000", + "Audio": "", + "gx_id": "16" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [147.27380499999998, -42.832723] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "TAS", + "Fcilty_nam": "Glenorchy", + "Shp_num_an": "Shop 52", + "Shp_centre": "Northgate Shopping Centre", + "Street_add": "387 Main Road", + "Locality": "Glenorchy", + "Postcode": "7010", + "Hrs_of_bus": "09:00-17:00 Monday to Fridays, 09:00-12:30 Saturdays, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "154", + "result": "100000", + "Audio": "", + "gx_id": "160" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [147.308703, -42.975709] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "TAS", + "Fcilty_nam": "Kingston", + "Shp_num_an": "Shop 52/53", + "Shp_centre": "Channel Court Shopping Centre", + "Street_add": "Channel Highway", + "Locality": "Kingston", + "Postcode": "7050", + "Hrs_of_bus": "09:00-17:00 Monday to Friday, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "156", + "result": "999", + "Audio": "", + "gx_id": "161" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [147.328923, -42.882189] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "TAS", + "Fcilty_nam": "Hobart", + "Shp_num_an": "Shop 7", + "Shp_centre": "Trafalgar Centre", + "Street_add": "110 Collins Street", + "Locality": "Hobart", + "Postcode": "7000", + "Hrs_of_bus": "08:30-17:00 Monday to Friday, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "155", + "result": "100000", + "Audio": "YES", + "gx_id": "162" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [147.369074, -35.117087] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "NSW", + "Fcilty_nam": "Wagga Wagga", + "Shp_num_an": "Shop 1", + "Shp_centre": "The Piazza", + "Street_add": "46-50 Baylis Street", + "Locality": "Wagga Wagga", + "Postcode": "2650", + "Hrs_of_bus": "09:00-17:00 Monday to Friday, 9:00-18:00 Thursdays, 09:00-12:30 Saturdays, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "82", + "result": "10", + "Audio": "", + "gx_id": "163" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [147.370203, -42.866406999999995] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "TAS", + "Fcilty_nam": "Rosny Park", + "Shp_num_an": "", + "Shp_centre": "", + "Street_add": "8 Bayfield Street", + "Locality": "Rosny Park", + "Postcode": "7018", + "Hrs_of_bus": "09:00-17:00 Monday to Friday, 09:00-12:30 Saturdays, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "153", + "result": "100000", + "Audio": "", + "gx_id": "164" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [147.40808799999996, -19.572817] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "QLD", + "Fcilty_nam": "Ayr", + "Shp_num_an": "Shop 11", + "Shp_centre": "East End Centre", + "Street_add": "Parker Street", + "Locality": "Ayr", + "Postcode": "4807", + "Hrs_of_bus": "09:00-16:30 Monday to Friday, excluding Public Holidays", + "Wheelchair": "NO", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "92", + "result": "200000", + "Audio": "", + "gx_id": "165" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [147.62946999999997, -37.826265] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "VIC", + "Fcilty_nam": "Bairnsdale", + "Shp_num_an": "", + "Shp_centre": "", + "Street_add": "23 Service Street", + "Locality": "Bairnsdale", + "Postcode": "3875", + "Hrs_of_bus": "09:00-17:00 Monday to Friday, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "161", + "result": "100000", + "Audio": "", + "gx_id": "166" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [148.17595642, -33.13431983] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "NSW", + "Fcilty_nam": "Parkes", + "Shp_num_an": "", + "Shp_centre": "", + "Street_add": "57 Currajong St", + "Locality": "Parkes", + "Postcode": "2870", + "Hrs_of_bus": "09:00-16:30 Monday to Friday, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "63", + "result": "999", + "Audio": "", + "gx_id": "167" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [148.23987486, -20.00192125] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "QLD", + "Fcilty_nam": "Bowen", + "Shp_num_an": "Shop 1", + "Shp_centre": "Centrepoint Plaza", + "Street_add": "16 Richmond Road", + "Locality": "Bowen", + "Postcode": "4805", + "Hrs_of_bus": "09:00-16:30 Monday to Friday, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "94", + "result": "999", + "Audio": "", + "gx_id": "168" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [148.29205119, -34.31099923] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "NSW", + "Fcilty_nam": "Young", + "Shp_num_an": "", + "Shp_centre": "", + "Street_add": "130 Lovell Street", + "Locality": "Young", + "Postcode": "2594", + "Hrs_of_bus": "09:00-16:30 Monday to Friday, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "87", + "result": "999", + "Audio": "", + "gx_id": "169" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [151.100428, -34.034014] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "NSW", + "Fcilty_nam": "Miranda", + "Shp_num_an": "Shop 1006, Level 1", + "Shp_centre": "Westfield Miranda", + "Street_add": "600 The Kingsway", + "Locality": "Miranda", + "Postcode": "2228", + "Hrs_of_bus": "08:30-17:00 Monday to Friday, 8:30-18:00 Thursdays, 08:30-12:30 Saturdays, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "51", + "result": "80", + "Audio": "", + "gx_id": "17" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [148.600657, -32.25034] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "NSW", + "Fcilty_nam": "Dubbo", + "Shp_num_an": "Shop 14a", + "Shp_centre": "Centro Dubbo", + "Street_add": "177 Macquarie Street", + "Locality": "Dubbo", + "Postcode": "2830", + "Hrs_of_bus": "09:00-17:00 Monday to Friday, 09:00-12:30 Saturdays, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "27", + "result": "10", + "Audio": "", + "gx_id": "170" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [148.68871, -33.834412] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "NSW", + "Fcilty_nam": "Cowra", + "Shp_num_an": "Shop 16-17", + "Shp_centre": "Cowra Plaza", + "Street_add": "59 Kendall Street", + "Locality": "Cowra", + "Postcode": "2794", + "Hrs_of_bus": "09:00-16:30 Monday to Friday, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "26", + "result": "100110", + "Audio": "", + "gx_id": "171" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [149.06605699999997, -35.237818] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "ACT", + "Fcilty_nam": "Belconnen", + "Shp_num_an": "Shop 167, Level 3", + "Shp_centre": "Westfield Belconnen", + "Street_add": "Benjamin Way", + "Locality": "Belconnen", + "Postcode": "2617", + "Hrs_of_bus": "09:00-17:00 Monday to Thursday, 9:00-18:00 Fridays, 09:00-12:30 Saturdays, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "2", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "1", + "result": "999", + "Audio": "YES", + "gx_id": "172" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [149.066728, -35.416214] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "ACT", + "Fcilty_nam": "Greenway - Tuggeranong", + "Shp_num_an": "Shop 73, Ground Floor", + "Shp_centre": "Tuggeranong Hyperdome", + "Street_add": "Anketell Street", + "Locality": "Greenway", + "Postcode": "2900", + "Hrs_of_bus": "09:00-17:00 Monday to Friday, 09:00-12:30 Saturdays, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "3", + "result": "999", + "Audio": "", + "gx_id": "173" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [149.086487, -35.345735] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "ACT", + "Fcilty_nam": "Phillip - Woden", + "Shp_num_an": "Shop 66 Ground Level", + "Shp_centre": "Westfield Woden", + "Street_add": "Keltie Street", + "Locality": "Woden", + "Postcode": "2606", + "Hrs_of_bus": "09:00-17:00 Monday to Thursday, 9:00-19:00 Fridays, 09:00-12:30 Saturdays, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "4", + "result": "999", + "Audio": "YES", + "gx_id": "174" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [149.098612, -33.28449199999999] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "NSW", + "Fcilty_nam": "Orange", + "Shp_num_an": "Shops V6 & V7,", + "Shp_centre": "Orange City Centre,", + "Street_add": "190 Anson Street", + "Locality": "Orange", + "Postcode": "2800", + "Hrs_of_bus": "09:00-17:00 Monday to Friday, 09:00-12:30 Saturdays, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "61", + "result": "100000", + "Audio": "", + "gx_id": "175" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [149.124956, -36.23603899999999] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "NSW", + "Fcilty_nam": "Cooma", + "Shp_num_an": "", + "Shp_centre": "", + "Street_add": "57 Vale Street", + "Locality": "Cooma", + "Postcode": "2630", + "Hrs_of_bus": "09:00-16:30 Monday to Friday, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "25", + "result": "100000", + "Audio": "", + "gx_id": "176" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [149.13133, -35.279986] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "ACT", + "Fcilty_nam": "Canberra City - Civic", + "Shp_num_an": "Shop 2", + "Shp_centre": "Savings House", + "Street_add": "8 Petrie Plaza", + "Locality": "Canberra City", + "Postcode": "2600", + "Hrs_of_bus": "08:30-17:00 Monday to Friday, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "2", + "result": "104000", + "Audio": "", + "gx_id": "177" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [149.134843, -35.184555] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "ACT", + "Fcilty_nam": "Gungahlin", + "Shp_num_an": "Shop 33 (entry via Gungahlin Place West)", + "Shp_centre": "Gungahlin Market Place", + "Street_add": "33 Hibberson Street", + "Locality": "Gungahlin", + "Postcode": "2912", + "Hrs_of_bus": "09:00-17:00 Monday to Friday, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "257", + "result": "999", + "Audio": "", + "gx_id": "178" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [149.180477, -21.13838] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "QLD", + "Fcilty_nam": "Mackay", + "Shp_num_an": "Shop 125, Ground Level", + "Shp_centre": "Caneland Central", + "Street_add": "Mangrove Road", + "Locality": "Mackay", + "Postcode": "4740", + "Hrs_of_bus": "09:00-17:00 Monday to Friday, 09:00-12:30 Saturdays, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "117", + "result": "200002", + "Audio": "", + "gx_id": "179" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [151.10463499999997, -33.874246] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "NSW", + "Fcilty_nam": "Burwood", + "Shp_num_an": "Shop 334-335, Level 2", + "Shp_centre": "Westfield Burwood", + "Street_add": "100 Burwood Road", + "Locality": "Burwood", + "Postcode": "2134", + "Hrs_of_bus": "09:00-17:00 Monday to Friday, 09:00-12:30 Saturdays, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "16", + "result": "100000", + "Audio": "", + "gx_id": "18" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [150.177443, -35.709362] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "NSW", + "Fcilty_nam": "Batemans Bay", + "Shp_num_an": "Shop 3-4", + "Shp_centre": "Fenning Arcade", + "Street_add": "Orient Street", + "Locality": "Batemans Bay", + "Postcode": "2536", + "Hrs_of_bus": "09:00-16:30 Monday to Friday, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "9", + "result": "999", + "Audio": "", + "gx_id": "180" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [150.252346, -30.977253] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "NSW", + "Fcilty_nam": "Gunnedah", + "Shp_num_an": "", + "Shp_centre": "", + "Street_add": "183 Conadilly Street", + "Locality": "Gunnedah", + "Postcode": "2380", + "Hrs_of_bus": "09:00-16:30 Monday to Friday, excluding Public Holidays", + "Wheelchair": "NO", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "36", + "result": "100000", + "Audio": "", + "gx_id": "181" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [150.309526, -33.717119] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "NSW", + "Fcilty_nam": "Katoomba", + "Shp_num_an": "", + "Shp_centre": "", + "Street_add": "33-35 Waratah Street", + "Locality": "Katoomba", + "Postcode": "2780", + "Hrs_of_bus": "08:30-16:30 Monday to Friday, excluding Public Holidays", + "Wheelchair": "NO", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "40", + "result": "10", + "Audio": "", + "gx_id": "182" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [150.41820299999998, -34.476913] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "NSW", + "Fcilty_nam": "Bowral", + "Shp_num_an": "", + "Shp_centre": "", + "Street_add": "266 Bong Bong Street", + "Locality": "Bowral", + "Postcode": "2576", + "Hrs_of_bus": "09:00-17:00 Monday to Friday, 09:00-12:30 Saturdays, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "14", + "result": "200002", + "Audio": "", + "gx_id": "183" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [150.472546, -35.356925] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "NSW", + "Fcilty_nam": "Ulladulla", + "Shp_num_an": "", + "Shp_centre": "", + "Street_add": "270 Green Street", + "Locality": "Ulladulla", + "Postcode": "2539", + "Hrs_of_bus": "08:30-16:30 Monday to Friday, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "80", + "result": "10", + "Audio": "", + "gx_id": "184" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [150.510143, -23.376918] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "Qld", + "Fcilty_nam": "Rockhampton", + "Shp_num_an": "Shop 20A", + "Shp_centre": "City Centre Plaza", + "Street_add": "Cnr Bolsover and Fitzroy Street", + "Locality": "Rockhampton", + "Postcode": "4700", + "Hrs_of_bus": "09:00-17:00 Monday to Friday, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "124", + "result": "999", + "Audio": "", + "gx_id": "185" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [150.52395232999996, -23.35196747] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "QLD", + "Fcilty_nam": "Nth Rockhampton", + "Shp_num_an": "Shop 001LA", + "Shp_centre": "Stockland Rockhampton", + "Street_add": "Cnr Yaamba Road & Bruce Hwy", + "Locality": "North Rockhampton", + "Postcode": "4701", + "Hrs_of_bus": "09:00-17:00 Monday to Friday, 09:00-12:30 Saturdays, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "122", + "result": "999", + "Audio": "", + "gx_id": "186" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [150.567137, -33.699002] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "NSW", + "Fcilty_nam": "Springwood", + "Shp_num_an": "Shop 5", + "Shp_centre": "Macquarie Centre", + "Street_add": "125 Macquarie Road", + "Locality": "Springwood", + "Postcode": "2777", + "Hrs_of_bus": "09:00-16:30 Monday to Friday, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "74", + "result": "100000", + "Audio": "", + "gx_id": "187" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [150.599981, -34.874156] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "NSW", + "Fcilty_nam": "Nowra", + "Shp_num_an": "Shop 3,", + "Shp_centre": "", + "Street_add": "59 Junction Street (Access From Berry Street)", + "Locality": "Nowra", + "Postcode": "2541", + "Hrs_of_bus": "09:00-17:00 Monday to Friday, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "60", + "result": "100000", + "Audio": "", + "gx_id": "188" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [150.693972, -33.752039] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "NSW", + "Fcilty_nam": "Penrith", + "Shp_num_an": "Shop 260, Level 2", + "Shp_centre": "Westfield Penrith", + "Street_add": "585 High Street", + "Locality": "Penrith", + "Postcode": "2750", + "Hrs_of_bus": "09:00-17:00 Monday to Friday, 9:00-18:00 Thursdays, 09:00-12:30 Saturdays, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "65", + "result": "999", + "Audio": "", + "gx_id": "189" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [151.104756, -33.965065] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "NSW", + "Fcilty_nam": "Hurstville", + "Shp_num_an": "Shop 218b, Level 1", + "Shp_centre": "Westfield Hurstville", + "Street_add": "Cnr Cross Street & Park Road", + "Locality": "Hurstville", + "Postcode": "2220", + "Hrs_of_bus": "09:00-17:00 Monday to Friday, 9:00-19:00 Thursdays, 09:00-12:30 Saturdays, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "38", + "result": "999", + "Audio": "YES", + "gx_id": "19" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [150.69436455, -34.05525719] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "NSW", + "Fcilty_nam": "Camden", + "Shp_num_an": "Shop 24", + "Shp_centre": "Village Court", + "Street_add": "180-186 Argyle Street", + "Locality": "Camden", + "Postcode": "2570", + "Hrs_of_bus": "09:00-17:00 Monday to Friday, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "17", + "result": "999", + "Audio": "", + "gx_id": "190" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [150.755686, -33.600902] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "NSW", + "Fcilty_nam": "Richmond", + "Shp_num_an": "Shop 48", + "Shp_centre": "Richmond Marketplace", + "Street_add": "27 March Street", + "Locality": "Richmond", + "Postcode": "2753", + "Hrs_of_bus": "09:00-17:00 Monday to Friday, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "69", + "result": "10", + "Audio": "", + "gx_id": "191" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [150.811413, -34.069712] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "NSW", + "Fcilty_nam": "Campbelltown", + "Shp_num_an": "Shop U67", + "Shp_centre": "Campelltown Mall", + "Street_add": "271 Queen Street", + "Locality": "Campbelltown", + "Postcode": "2560", + "Hrs_of_bus": "09:00-17:00 Monday to Friday, 9:00-18:00 Thursdays, 09:00-12:30 Saturdays, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "18", + "result": "999", + "Audio": "", + "gx_id": "192" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [150.83885055, -34.56228517] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "NSW", + "Fcilty_nam": "Barrack Heights - Shellharbour", + "Shp_num_an": "Shop 109", + "Shp_centre": "Stockland Shellharbour", + "Street_add": "Lake Entrance Road", + "Locality": "Barrack Heights", + "Postcode": "2528", + "Hrs_of_bus": "09:00-17:00 Monday to Friday, 09:00-12:30 Saturdays, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "71", + "result": "999", + "Audio": "", + "gx_id": "193" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [150.892826, -32.254617] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "NSW", + "Fcilty_nam": "Muswellbrook", + "Shp_num_an": "Shop 12-13", + "Shp_centre": "Muswellbrook Marketplace", + "Street_add": "22 Sowerby Street", + "Locality": "Muswellbrook", + "Postcode": "2333", + "Hrs_of_bus": "09:00-16:30 Monday to Friday, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "54", + "result": "100000", + "Audio": "", + "gx_id": "194" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [150.893122, -34.424834] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "NSW", + "Fcilty_nam": "Wollongong", + "Shp_num_an": "Shop N106, Level 1", + "Shp_centre": "Wollongong Central", + "Street_add": "200 Crown Street", + "Locality": "Wollongong", + "Postcode": "2500", + "Hrs_of_bus": "09:00-17:00 Monday to Friday, 09:00-12:30 Saturdays, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "85", + "result": "100001", + "Audio": "", + "gx_id": "195" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [150.906374, -33.77007] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "NSW", + "Fcilty_nam": "Blacktown", + "Shp_num_an": "Shop 3008, Level 3", + "Shp_centre": "Westpoint Shopping Centre", + "Street_add": "Patrick Street", + "Locality": "Blacktown", + "Postcode": "2148", + "Hrs_of_bus": "09:00-17:00 Monday to Friday, 09:00-12:30 Saturdays, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "12", + "result": "10", + "Audio": "", + "gx_id": "196" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [150.926709, -31.091342] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "NSW", + "Fcilty_nam": "Tamworth", + "Shp_num_an": "Shop 22", + "Shp_centre": "Tamworth Shoppingworld", + "Street_add": "Bridge Street", + "Locality": "Tamworth", + "Postcode": "2340", + "Hrs_of_bus": "09:00-17:00 Monday to Friday, 09:00-12:30 Saturdays, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "75", + "result": "200002", + "Audio": "", + "gx_id": "197" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [150.924383, -33.919935] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "NSW", + "Fcilty_nam": "Liverpool", + "Shp_num_an": "Shop 2090, Level 2", + "Shp_centre": "Westfield Liverpool", + "Street_add": "Cnr Elizabeth Drive & Macquarie Street", + "Locality": "Liverpool", + "Postcode": "2170", + "Hrs_of_bus": "09:00-17:00 Monday to Friday, 09:00-12:30 Saturdays, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "46", + "result": "999", + "Audio": "", + "gx_id": "198" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [150.955512, -33.868529] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "NSW", + "Fcilty_nam": "Fairfield", + "Shp_num_an": "Suite 1, Level 2", + "Shp_centre": "Neeta City Shopping Centre", + "Street_add": "Cnr Smart & Nelson Streets", + "Locality": "Fairfield", + "Postcode": "2165", + "Hrs_of_bus": "09:00-17:00 Monday to Friday, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "31", + "result": "10", + "Audio": "", + "gx_id": "199" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [149.583193, -33.41619] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "NSW", + "Fcilty_nam": "Bathurst", + "Shp_num_an": "Shop 25", + "Shp_centre": "Bathurst Chase", + "Street_add": "39 William Street", + "Locality": "Bathurst", + "Postcode": "2795", + "Hrs_of_bus": "09:00-17:00 Monday to Friday, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "10", + "result": "10", + "Audio": "", + "gx_id": "2" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [151.113963, -29.771806] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "NSW", + "Fcilty_nam": "Inverell", + "Shp_num_an": "", + "Shp_centre": "", + "Street_add": "166 Byron Street", + "Locality": "Inverell", + "Postcode": "2360", + "Hrs_of_bus": "09:00-16:30 Monday to Friday, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "39", + "result": "100000", + "Audio": "", + "gx_id": "20" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [151.003471, -33.817487] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "NSW", + "Fcilty_nam": "Parramatta", + "Shp_num_an": "Shop 1115, Level 1", + "Shp_centre": "Westfield Parramatta", + "Street_add": "159 Church Street", + "Locality": "Parramatta", + "Postcode": "2150", + "Hrs_of_bus": "09:00-17:00 Monday to Friday, 09:00-12:30 Saturdays, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "64", + "result": "100000", + "Audio": "", + "gx_id": "200" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [114.615766, -28.766760999999995] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "WA", + "Fcilty_nam": "Geraldton", + "Shp_num_an": "Shop 25", + "Shp_centre": "Centro Northgate", + "Street_add": "110 Chapman Road", + "Locality": "Geraldton", + "Postcode": "6530", + "Hrs_of_bus": "09:00-17:00 Monday to Friday, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "217", + "result": "10", + "Audio": "", + "gx_id": "201" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [115.63804064, -33.32607645] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "WA", + "Fcilty_nam": "Bunbury", + "Shp_num_an": "Shop 32", + "Shp_centre": "Stirling Centre", + "Street_add": "22 Stephen Street", + "Locality": "Bunbury", + "Postcode": "6230", + "Hrs_of_bus": "09:00-17:00 Monday to Friday, 09:00-12:30 Saturdays, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "214", + "result": "999", + "Audio": "", + "gx_id": "202" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [115.743412, -32.291143] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "WA", + "Fcilty_nam": "Rockingham", + "Shp_num_an": "Shop G023", + "Shp_centre": "Rockingham City Shopping Centre", + "Street_add": "1 Council Avenue", + "Locality": "Rockingham", + "Postcode": "6168", + "Hrs_of_bus": "09:00-17:00 Monday to Friday, 09:00-12:30 Saturdays, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "224", + "result": "10", + "Audio": "", + "gx_id": "203" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [115.74208, -32.53680899999999] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "WA", + "Fcilty_nam": "Mandurah", + "Shp_num_an": "Shop 109", + "Shp_centre": "Mandurah Forum", + "Street_add": "330 Pinjarra Road", + "Locality": "Mandurah", + "Postcode": "6210", + "Hrs_of_bus": "09:00-17:00 Monday to Friday, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "221", + "result": "10", + "Audio": "", + "gx_id": "204" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [115.749319, -32.051368] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "WA", + "Fcilty_nam": "Fremantle", + "Shp_num_an": "Shop 12", + "Shp_centre": "", + "Street_add": "39 Adelaide Street", + "Locality": "Fremantle", + "Postcode": "6160", + "Hrs_of_bus": "09:00-17:00 Monday to Friday, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "216", + "result": "10", + "Audio": "", + "gx_id": "205" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [115.73830499999998, -31.814814000000002] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "WA", + "Fcilty_nam": "Hillarys", + "Shp_num_an": "Shop 44", + "Shp_centre": "Whitfords City Shopping Centre", + "Street_add": "Whitfords Ave", + "Locality": "Hillarys", + "Postcode": "6025", + "Hrs_of_bus": "09:00-17:00 Monday to Friday, 9:00-19:00 Thursdays, 09:00-12:30 Saturdays, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "218", + "result": "200002", + "Audio": "", + "gx_id": "206" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [115.76984199999998, -31.741759] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "WA", + "Fcilty_nam": "Joondalup", + "Shp_num_an": "Tenancy G3,", + "Shp_centre": "Sanori House,", + "Street_add": "126 Grand Boulevard", + "Locality": "Joondalup", + "Postcode": "6027", + "Hrs_of_bus": "09:00-17:00 Monday to Friday, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "246", + "result": "100000", + "Audio": "", + "gx_id": "207" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [115.776288, -31.877944999999997] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "WA", + "Fcilty_nam": "Karrinyup", + "Shp_num_an": "Shop 152", + "Shp_centre": "Karrinyup Shopping Centre", + "Street_add": "Karrinyup Road", + "Locality": "Karrinyup", + "Postcode": "6018", + "Hrs_of_bus": "09:00-17:00 Monday to Friday, 9:00-18:00 Thursdays, 9:00-12:30 Saturdays, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "220", + "result": "200002", + "Audio": "", + "gx_id": "208" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [115.821919, -31.94711] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "WA", + "Fcilty_nam": "Subiaco", + "Shp_num_an": "Shop 1", + "Shp_centre": "Subiaco Village", + "Street_add": "531 Hay Street", + "Locality": "Subiaco", + "Postcode": "6008", + "Hrs_of_bus": "08:30-17:00 Monday to Friday, 09:00-12:30 Saturdays, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "225", + "result": "100000", + "Audio": "", + "gx_id": "209" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [151.118735, -33.776959999999995] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "NSW", + "Fcilty_nam": "North Ryde", + "Shp_num_an": "Shop 46, Level 2", + "Shp_centre": "Macquarie Centre", + "Street_add": "Cnr Herring & Waterloo Road", + "Locality": "North Ryde", + "Postcode": "2133", + "Hrs_of_bus": "09:00-17:00 Monday to Friday, 9:00-19:00 Thursdays, 09:00-12:30 Saturdays, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "58", + "result": "999", + "Audio": "YES", + "gx_id": "21" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [115.83263742, -32.0366794] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "WA", + "Fcilty_nam": "Booragoon", + "Shp_num_an": "Shop 13-14", + "Shp_centre": "Gateway Business Centre", + "Street_add": "Marmion Street", + "Locality": "Booragoon", + "Postcode": "6154", + "Hrs_of_bus": "08:30-17:00 Monday to Friday, 09:00-12:30 Saturdays, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "213", + "result": "999", + "Audio": "", + "gx_id": "210" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [115.857768, -31.955185] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "WA", + "Fcilty_nam": "Perth - The Terrace", + "Shp_num_an": "", + "Shp_centre": "", + "Street_add": "81 St Georges Terrace", + "Locality": "Perth", + "Postcode": "6000", + "Hrs_of_bus": "08:30-17:00 Monday to Friday, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "226", + "result": "10", + "Audio": "", + "gx_id": "211" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [115.902203, -31.894904] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "WA", + "Fcilty_nam": "Morley", + "Shp_num_an": "Shop 2177", + "Shp_centre": "Centro Galleria", + "Street_add": "Cnr Walter & Collier Roads", + "Locality": "Morley", + "Postcode": "6062", + "Hrs_of_bus": "09:00-17:00 Monday to Friday, 9:00-19:00 Thursdays, 09:00-12:30 Saturdays, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "223", + "result": "999", + "Audio": "", + "gx_id": "212" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [115.93748523999999, -32.01906404] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "WA", + "Fcilty_nam": "Cannington", + "Shp_num_an": "Shop 1044a", + "Shp_centre": "Westfield Carousel", + "Street_add": "1382 Albany Highway", + "Locality": "Cannington", + "Postcode": "6107", + "Hrs_of_bus": "09:00-17:00 Monday to Friday, 9:00-19:00 Thursdays, 09:00-12:30 Saturdays, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "215", + "result": "999", + "Audio": "YES", + "gx_id": "213" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [116.00740799999998, -31.890742999999997] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "WA", + "Fcilty_nam": "Midland", + "Shp_num_an": "Shop T053A", + "Shp_centre": "Midland Gate Shopping Centre", + "Street_add": "Cale Street", + "Locality": "Midland", + "Postcode": "6056", + "Hrs_of_bus": "09:00-17:00 Monday to Friday, 09:00-12:30 Saturdays, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "222", + "result": "50", + "Audio": "", + "gx_id": "214" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [116.01624999999999, -32.151299] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "WA", + "Fcilty_nam": "Armadale", + "Shp_num_an": "Shop 67 T2", + "Shp_centre": "Armadale Shopping Centre", + "Street_add": "Jull Street", + "Locality": "Armadale", + "Postcode": "6112", + "Hrs_of_bus": "09:00-17:00 Monday to Friday, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "212", + "result": "200002", + "Audio": "", + "gx_id": "215" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [117.88398599999998, -35.025945] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "WA", + "Fcilty_nam": "Albany", + "Shp_num_an": "", + "Shp_centre": "", + "Street_add": "15 Peels Place", + "Locality": "Albany", + "Postcode": "6330", + "Hrs_of_bus": "08:30 -16:30 Monday to Friday, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "211", + "result": "10", + "Audio": "", + "gx_id": "216" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [121.476815, -30.745425] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "WA", + "Fcilty_nam": "Kalgoorlie", + "Shp_num_an": "", + "Shp_centre": "", + "Street_add": "Cnr Porter & Egan Streets", + "Locality": "Kalgoorlie", + "Postcode": "6430", + "Hrs_of_bus": "08:30-16:30 Monday to Friday, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "219", + "result": "10", + "Audio": "", + "gx_id": "217" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [130.84250585, -12.46373121] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "NT", + "Fcilty_nam": "Darwin", + "Shp_num_an": "Shop 14 & 15", + "Shp_centre": "The Galleria", + "Street_add": "Smith Street Mall", + "Locality": "Darwin", + "Postcode": "800", + "Hrs_of_bus": "09:00-17:00 Monday to Friday, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "137", + "result": "999", + "Audio": "", + "gx_id": "218" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [130.882216, -12.377027] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "NT", + "Fcilty_nam": "Casuarina", + "Shp_num_an": "Shop 30, Ground Floor", + "Shp_centre": "Casuarina Square", + "Street_add": "247 Trower Road", + "Locality": "Casuarina", + "Postcode": "810", + "Hrs_of_bus": "09:00-17:00 Monday to Friday, 9:00-18:00 Fridays, 09:00-12:30 Saturdays, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "136", + "result": "100000", + "Audio": "", + "gx_id": "219" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [151.149902, -33.884404] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "NSW", + "Fcilty_nam": "Leichhardt", + "Shp_num_an": "Shop 31,", + "Shp_centre": "Leichhardt Marketplace,", + "Street_add": "138 Flood Street", + "Locality": "Leichhardt", + "Postcode": "2040", + "Hrs_of_bus": "09:00-17:00 Monday to Friday, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "247", + "result": "100000", + "Audio": "", + "gx_id": "22" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [130.98591, -12.480801] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "NT", + "Fcilty_nam": "Palmerston", + "Shp_num_an": "Shop T02,", + "Shp_centre": "Palmerston Shopping Centre,", + "Street_add": "10 Temple Terrace", + "Locality": "Palmerston", + "Postcode": "830", + "Hrs_of_bus": "09:00-17:00 Monday to Friday, 09:00-12:30 Saturdays, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "245", + "result": "200000", + "Audio": "", + "gx_id": "220" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [133.881616, -23.698858] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "NT", + "Fcilty_nam": "Alice Springs", + "Shp_num_an": "Shop 38", + "Shp_centre": "Yeperenye Shopping Centre", + "Street_add": "36-38 Hartley Street", + "Locality": "Alice Springs", + "Postcode": "870", + "Hrs_of_bus": "09:00-17:00 Monday to Friday, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "135", + "result": "10", + "Audio": "", + "gx_id": "221" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [135.858159, -34.720184] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "SA", + "Fcilty_nam": "Port Lincoln", + "Shp_num_an": "Suite 6", + "Shp_centre": "Stamford House", + "Street_add": "80 Tasman Terrace", + "Locality": "Port Lincoln", + "Postcode": "5606", + "Hrs_of_bus": "09:00-16:30 Monday to Friday, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "147", + "result": "50", + "Audio": "", + "gx_id": "222" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [137.531341, -33.026659] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "SA", + "Fcilty_nam": "Whyalla", + "Shp_num_an": "Shop 48", + "Shp_centre": "Westland Shopping Centre", + "Street_add": "Nicolson Avenue", + "Locality": "Whyalla Norrie", + "Postcode": "5608", + "Hrs_of_bus": "09:00-16:30 Monday to Friday, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "150", + "result": "200110", + "Audio": "", + "gx_id": "223" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [137.763512, -32.493718] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "SA", + "Fcilty_nam": "Port Augusta", + "Shp_num_an": "", + "Shp_centre": "", + "Street_add": "93 Commercial Road", + "Locality": "Port Augusta", + "Postcode": "5700", + "Hrs_of_bus": "09:00-16:30 Monday to Friday, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "146", + "result": "100000", + "Audio": "", + "gx_id": "224" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [138.010496, -33.17609999999999] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "SA", + "Fcilty_nam": "Port Pirie", + "Shp_num_an": "Shop 10 & 11", + "Shp_centre": "Flinders Arcade", + "Street_add": "82 Ellen Street", + "Locality": "Port Pirie", + "Postcode": "5540", + "Hrs_of_bus": "09:00-16.30 Monday to Friday, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "148", + "result": "100001", + "Audio": "", + "gx_id": "225" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [138.49536199999997, -35.142056999999994] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "SA", + "Fcilty_nam": "Noarlunga Centre - Colonnades", + "Shp_num_an": "Shop 75", + "Shp_centre": "Colonnades Shopping Centre", + "Street_add": "Beach Road", + "Locality": "Noarlunga Centre", + "Postcode": "5168", + "Hrs_of_bus": "09:00-17:00 Monday to Friday, 9:00-19:00 Thursdays,09:00-12:30 Saturdays, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "243", + "result": "200000", + "Audio": "", + "gx_id": "226" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [138.493552, -34.877219999999994] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "SA", + "Fcilty_nam": "West Lakes", + "Shp_num_an": "Shop 297-298, Ground Floor", + "Shp_centre": "Westfield West Lakes", + "Street_add": "111 West Lakes Boulevarde", + "Locality": "West Lakes", + "Postcode": "5021", + "Hrs_of_bus": "09:00-17:00 Monday to Friday, 09:00-19:00 Thursdays, 09:00-12:30 Saturdays, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "149", + "result": "100000", + "Audio": "YES", + "gx_id": "227" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [138.54400499999997, -35.013446] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "SA", + "Fcilty_nam": "Oaklands Park - Marion", + "Shp_num_an": "Shop 1036, Ground Floor", + "Shp_centre": "Westfield Shoppingtown", + "Street_add": "297 Diagonal Road", + "Locality": "Oaklands Park", + "Postcode": "5046", + "Hrs_of_bus": "09:00-17:00 Monday to Friday, 9:00-19:00 Thursdays, 09:00-12:30 Saturdays, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "143", + "result": "100000", + "Audio": "YES", + "gx_id": "228" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [138.598551, -34.92435699999999] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "SA", + "Fcilty_nam": "Adelaide - Currie Street", + "Shp_num_an": "", + "Shp_centre": "", + "Street_add": "30 Currie Street", + "Locality": "Adelaide", + "Postcode": "5000", + "Hrs_of_bus": "08:30-17:00 Monday to Friday, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "140", + "result": "100000", + "Audio": "", + "gx_id": "229" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [151.16962312, -32.56410816] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "NSW", + "Fcilty_nam": "Singleton", + "Shp_num_an": "", + "Shp_centre": "", + "Street_add": "6 William Street", + "Locality": "Singleton", + "Postcode": "2330", + "Hrs_of_bus": "8:30-16:30 Monday to Friday, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "72", + "result": "999", + "Audio": "", + "gx_id": "23" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [138.668589, -34.715725] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "SA", + "Fcilty_nam": "Elizabeth", + "Shp_num_an": "Shop 55 Oxenham Mall", + "Shp_centre": "Elizabeth Shopping Centre", + "Street_add": "50 Elizabeth Way", + "Locality": "Elizabeth", + "Postcode": "5112", + "Hrs_of_bus": "09:00-17:00 Monday to Friday, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "141", + "result": "50", + "Audio": "", + "gx_id": "230" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [144.359328, -38.150358] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "VIC", + "Fcilty_nam": "Geelong", + "Shp_num_an": "Shop 60-61, Level 1", + "Shp_centre": "Market Square Shopping Centre", + "Street_add": "Moorabool Street", + "Locality": "Geelong", + "Postcode": "3220", + "Hrs_of_bus": "09:00-17:00 Monday to Friday, 9:00-18:00 Friday, 09:00-12:30 Saturdays, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "182", + "result": "200002", + "Audio": "", + "gx_id": "231" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [144.563386, -37.68592699999999] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "VIC", + "Fcilty_nam": "Melton", + "Shp_num_an": "Shop T68", + "Shp_centre": "Woodgrove Shopping Centre", + "Street_add": "533 High Street", + "Locality": "Melton", + "Postcode": "3337", + "Hrs_of_bus": "09:00-17:00 Monday to Friday, 09:00-12:30 Saturdays, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "2", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "189", + "result": "999", + "Audio": "", + "gx_id": "232" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [144.65867, -37.90272099999999] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "VIC", + "Fcilty_nam": "Werribee", + "Shp_num_an": "", + "Shp_centre": "", + "Street_add": "72 Watton Street", + "Locality": "Werribee", + "Postcode": "3030", + "Hrs_of_bus": "09:00-17:00 Monday to Friday, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "209", + "result": "100000", + "Audio": "", + "gx_id": "233" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [144.746341, -36.124839] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "VIC", + "Fcilty_nam": "Echuca", + "Shp_num_an": "", + "Shp_centre": "", + "Street_add": "69 Heygarth Stree", + "Locality": "Echuca", + "Postcode": "3564", + "Hrs_of_bus": "8:30 -16:30 Monday to Friday, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "178", + "result": "999", + "Audio": "", + "gx_id": "234" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [144.848706, -37.828011] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "VIC", + "Fcilty_nam": "Altona Gate", + "Shp_num_an": "Shop U9, Level 2", + "Shp_centre": "Altona Gate Shopping Centre", + "Street_add": "124-134 Millers Road", + "Locality": "Altona North", + "Postcode": "3025", + "Hrs_of_bus": "09:00-17:00 Monday to Friday, 9:00-18:00 Thursdays, 09:00-12:30 Saturdays, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "159", + "result": "999", + "Audio": "", + "gx_id": "235" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [144.886593, -37.770177] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "VIC", + "Fcilty_nam": "Highpoint", + "Shp_num_an": "Shop 2011, Level 2", + "Shp_centre": "Highpoint City", + "Street_add": "200 Rosamond Road", + "Locality": "Maribyrnong", + "Postcode": "3032", + "Hrs_of_bus": "09:00-17:00 Monday to Friday, 9:00-19:00 Thursdays, 09:00-12:30 Saturdays, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "186", + "result": "100000", + "Audio": "", + "gx_id": "236" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [144.888161, -37.716657] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "VIC", + "Fcilty_nam": "Airport West", + "Shp_num_an": "Shop 77", + "Shp_centre": "Westfield Shoppingtown", + "Street_add": "Louis Street", + "Locality": "Airport West", + "Postcode": "3042", + "Hrs_of_bus": "09:00-17:00 Monday to Friday, 09:00-18:00 Thursday, 09:00-12:30 Saturday, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "158", + "result": "200002", + "Audio": "", + "gx_id": "237" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [144.907529, -38.35498299999999] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "VIC", + "Fcilty_nam": "Rosebud", + "Shp_num_an": "Shop 15", + "Shp_centre": "Rosebud Village Shopping Centre", + "Street_add": "967 Point Nepean Road", + "Locality": "Rosebud", + "Postcode": "3939", + "Hrs_of_bus": "09:00-17:00 Monday to Friday, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "15", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "239", + "result": "100000", + "Audio": "YES", + "gx_id": "238" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [144.921564, -37.679886] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "VIC", + "Fcilty_nam": "Broadmeadows", + "Shp_num_an": "Shop 42", + "Shp_centre": "Broadmeadows Shopping Centre", + "Street_add": "Pascoe Vale Road", + "Locality": "Broadmeadows", + "Postcode": "3047", + "Hrs_of_bus": "09:00-17:00 Monday to Friday, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "167", + "result": "200002", + "Audio": "", + "gx_id": "239" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [151.18308599999997, -33.796794] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "NSW", + "Fcilty_nam": "Chatswood", + "Shp_num_an": "Shop 527-528, Level 5", + "Shp_centre": "Westfield Chatswood", + "Street_add": "1 Anderson Street", + "Locality": "Chatswood", + "Postcode": "2067", + "Hrs_of_bus": "09:00-17:00 Monday to Friday, 9:00-19:00 Thursdays, 09:00-12:30 Saturdays, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "23", + "result": "999", + "Audio": "", + "gx_id": "24" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [144.921037, -37.766646] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "VIC", + "Fcilty_nam": "Moonee Ponds", + "Shp_num_an": "", + "Shp_centre": "", + "Street_add": "122A Puckle Street", + "Locality": "Moonee Ponds", + "Postcode": "3039", + "Hrs_of_bus": "09:00-17:00 Monday to Friday, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "191", + "result": "100000", + "Audio": "", + "gx_id": "240" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [144.954746, -37.818571] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "VIC", + "Fcilty_nam": "Melbourne - City West", + "Shp_num_an": "Shop 11,", + "Shp_centre": "", + "Street_add": "600 Collins Street", + "Locality": "Melbourne", + "Postcode": "3000", + "Hrs_of_bus": "08:30-17:00 Monday to Friday, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "165", + "result": "999", + "Audio": "", + "gx_id": "241" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [144.962588, -37.814496] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "VIC", + "Fcilty_nam": "Melbourne - Galleria", + "Shp_num_an": "Shop E17", + "Shp_centre": "The Galleria Shopping Plaza", + "Street_add": "385 Bourke Street", + "Locality": "Melbourne", + "Postcode": "3000", + "Hrs_of_bus": "08:30-17:00 Monday to Friday, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "169", + "result": "10", + "Audio": "", + "gx_id": "242" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [144.96637, -37.742098] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "VIC", + "Fcilty_nam": "Coburg", + "Shp_num_an": "Shop 16", + "Shp_centre": "Walkers Arcade", + "Street_add": "471 Sydney Road", + "Locality": "Coburg", + "Postcode": "3058", + "Hrs_of_bus": "09:00-17:00 Monday to Friday, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "172", + "result": "100000", + "Audio": "", + "gx_id": "243" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [144.969795, -37.812421] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "VIC", + "Fcilty_nam": "Melbourne - City East", + "Shp_num_an": "Shop 7,", + "Shp_centre": "Southern Cross 1,", + "Street_add": "121 Exhibition Street (Access via Bourke Street)", + "Locality": "Melbourne", + "Postcode": "3000", + "Hrs_of_bus": "08:30-17:00 Monday to Friday, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "174", + "result": "100000", + "Audio": "", + "gx_id": "244" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [151.659139, -33.036597] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "NSW", + "Fcilty_nam": "Belmont NSW", + "Shp_num_an": "Shop 17-18", + "Shp_centre": "Belmont Central Shopping Centre", + "Street_add": "1 Singleton Street", + "Locality": "Belmont", + "Postcode": "2280", + "Hrs_of_bus": "09:00-17:00 Monday to Friday, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "0", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "268", + "result": "10", + "Audio": "NO", + "gx_id": "245" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [115.933677, -31.965845] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "WA", + "Fcilty_nam": "Belmont WA", + "Shp_num_an": "Shop 30", + "Shp_centre": "Belmont Forum Shopping Centre", + "Street_add": "227 Belmont Avenue", + "Locality": "Cloverdale", + "Postcode": "6105", + "Hrs_of_bus": "09:00-17:00 Monday to Friday, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "0", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "269", + "result": "10", + "Audio": "NO", + "gx_id": "246" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [150.888213, -34.485521999999996] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "NSW", + "Fcilty_nam": "Warrawong - EFT only", + "Shp_num_an": "Suite 1, Gallery Level", + "Shp_centre": "Westfield Warrawong", + "Street_add": "Cnr King and Cowper Streets", + "Locality": "Warrawong", + "Postcode": "2502", + "Hrs_of_bus": "08:30-16:30 Monday to Friday, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "0", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "270", + "result": "999", + "Audio": "NO", + "gx_id": "247" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [151.20541, -33.873782] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "NSW", + "Fcilty_nam": "Sydney - Town Hall", + "Shp_num_an": "Shop 30-31", + "Shp_centre": "Town Hall Arcade", + "Street_add": "464-480 Kent Street", + "Locality": "Sydney", + "Postcode": "2000", + "Hrs_of_bus": "08:30-17:00 Monday to Friday, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "79", + "result": "100000", + "Audio": "", + "gx_id": "25" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [151.206677, -33.83795799999999] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "NSW", + "Fcilty_nam": "North Sydney", + "Shp_num_an": "Shop P40-P41, Gound Floor", + "Shp_centre": "Northpoint", + "Street_add": "100 Miller Street", + "Locality": "North Sydney", + "Postcode": "2060", + "Hrs_of_bus": "09:00-17:00 Monday-Friday, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "2", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "59", + "result": "999", + "Audio": "", + "gx_id": "26" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [151.207224, -33.865072] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "NSW", + "Fcilty_nam": "Sydney - Wynyard", + "Shp_num_an": "Shop G23", + "Shp_centre": "Metcentre", + "Street_add": "273 George Street", + "Locality": "Sydney", + "Postcode": "2000", + "Hrs_of_bus": "08:30-17:00 Monday to Friday, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "2", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "86", + "result": "100000", + "Audio": "", + "gx_id": "27" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [151.209007, -33.869063999999995] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "NSW", + "Fcilty_nam": "Sydney - King Street", + "Shp_num_an": "Shop 5R 07-09", + "Shp_centre": "Glasshouse Shopping Centre", + "Street_add": "135 King Street", + "Locality": "Sydney", + "Postcode": "2000", + "Hrs_of_bus": "08:30-17:00 Monday to Friday, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "49", + "result": "100000", + "Audio": "", + "gx_id": "28" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [151.226913, -33.945879] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "NSW", + "Fcilty_nam": "Pagewood", + "Shp_num_an": "Shop 131B, Ground Floor", + "Shp_centre": "Westfield Eastgardens", + "Street_add": "152 Bunnerong Road", + "Locality": "Eastgardens", + "Postcode": "2036", + "Hrs_of_bus": "09:00-17:00 Monday to Friday, 09:00-12:30 Saturdays, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "62", + "result": "101000", + "Audio": "", + "gx_id": "29" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [149.58612099999996, -32.592757] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "NSW", + "Fcilty_nam": "Mudgee", + "Shp_num_an": "Shop 6", + "Shp_centre": "The Mortimer Centre", + "Street_add": "90-96 Mortimer Street", + "Locality": "Mudgee", + "Postcode": "2850", + "Hrs_of_bus": "09:00-16:30 Monday to Friday, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "53", + "result": "100000", + "Audio": "", + "gx_id": "3" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [151.240435, -33.823701] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "NSW", + "Fcilty_nam": "Spit Junction", + "Shp_num_an": "Shop 23", + "Shp_centre": "Bridgepoint Centre", + "Street_add": "Cnr Military & Brady Roads", + "Locality": "Spit Junction", + "Postcode": "2088", + "Hrs_of_bus": "09:00-17:00 Monday to Friday, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "73", + "result": "999", + "Audio": "", + "gx_id": "30" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [151.248356, -33.891875] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "NSW", + "Fcilty_nam": "Bondi Junction", + "Shp_num_an": "Shop 7-8", + "Shp_centre": "Tiffany Plaza,", + "Street_add": "422 Oxford Street (above Bondi Junction Interchange)", + "Locality": "Bondi Junction", + "Postcode": "2022", + "Hrs_of_bus": "09:00-17:00 Monday to Friday, 09:00-12:30 Saturdays, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "13", + "result": "100000", + "Audio": "", + "gx_id": "31" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [151.24887853, -23.85534942] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "", + "Fcilty_nam": "Gladstone", + "Shp_num_an": "Shop 31", + "Shp_centre": "Gladstone Central Shopping Centre", + "Street_add": "45 Dawson Road", + "Locality": "Gladstone", + "Postcode": "4680", + "Hrs_of_bus": "09:00-17:00 Monday to Friday, 09:00-12:30 Saturdays, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "107", + "result": "999", + "Audio": "", + "gx_id": "32" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [151.265961, -33.768201] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "NSW", + "Fcilty_nam": "Brookvale", + "Shp_num_an": "Shop 188, Level 1", + "Shp_centre": "Warringah Mall", + "Street_add": "Cnr Old Pittwater Rd & Condamine St", + "Locality": "Brookvale", + "Postcode": "2100", + "Hrs_of_bus": "09:00-17:00 Monday to Friday, 9:00-19:00 Thursdays, 09:00-12:30 Saturdays, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "15", + "result": "999", + "Audio": "", + "gx_id": "33" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [151.262977, -27.183903] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "Qld", + "Fcilty_nam": "Dalby", + "Shp_num_an": "Shop 23", + "Shp_centre": "Dalby Shoppingworld", + "Street_add": "Cunningham Street", + "Locality": "Dalby", + "Postcode": "4405", + "Hrs_of_bus": "09:00-16:30 Monday to Friday, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "105", + "result": "100000", + "Audio": "", + "gx_id": "34" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [151.296208, -33.696624] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "NSW", + "Fcilty_nam": "Warriewood", + "Shp_num_an": "Shop 20", + "Shp_centre": "Centro Warriewood", + "Street_add": "Jacksons Road", + "Locality": "Warriewood", + "Postcode": "2102", + "Hrs_of_bus": "09:00-17:00 Monday to Friday, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "84", + "result": "999", + "Audio": "", + "gx_id": "35" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [151.31508499999998, -33.492793] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "NSW", + "Fcilty_nam": "Woy Woy", + "Shp_num_an": "Shop 32", + "Shp_centre": "Deepwater Plaza", + "Street_add": "Railway Street", + "Locality": "Woy Woy", + "Postcode": "2256", + "Hrs_of_bus": "09:00-17:00 Monday to Friday, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "81", + "result": "200002", + "Audio": "", + "gx_id": "36" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [151.343674, -33.424362] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "NSW", + "Fcilty_nam": "Gosford", + "Shp_num_an": "", + "Shp_centre": "", + "Street_add": "9 Watt Street", + "Locality": "Gosford", + "Postcode": "2250", + "Hrs_of_bus": "08:30-17:00 Monday to Friday, 09:00-12:30 Saturdays, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "32", + "result": "10", + "Audio": "", + "gx_id": "37" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [151.35470299999997, -32.832744] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "NSW", + "Fcilty_nam": "Cessnock", + "Shp_num_an": "Shop G008", + "Shp_centre": "Cessnock Market Place", + "Street_add": "205 Wollombi Rd", + "Locality": "Cessnock", + "Postcode": "2325", + "Hrs_of_bus": "09:00-16:30 Monday to Friday, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "2", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "21", + "result": "10", + "Audio": "", + "gx_id": "38" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [151.393275, -33.437331] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "NSW", + "Fcilty_nam": "Erina", + "Shp_num_an": "Shop T334", + "Shp_centre": "Erina Fair", + "Street_add": "Terrigal Drive", + "Locality": "Erina", + "Postcode": "2250", + "Hrs_of_bus": "09:00-17:00 Monday to Friday, 09:00-12:30 Saturdays, excluding Public Holiday", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "30", + "result": "999", + "Audio": "", + "gx_id": "39" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [149.717725, -34.755285] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "NSW", + "Fcilty_nam": "Goulburn", + "Shp_num_an": "Shop 7", + "Shp_centre": "Central Arcade", + "Street_add": "158-162 Auburn Street", + "Locality": "Goulburn", + "Postcode": "2580", + "Hrs_of_bus": "09:00-17:00 Monday to Friday, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "33", + "result": "10", + "Audio": "", + "gx_id": "4" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [151.415573, -33.306914] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "NSW", + "Fcilty_nam": "Tuggerah", + "Shp_num_an": "Shop 1142,", + "Shp_centre": "Westfield Tuggerah,", + "Street_add": "Corner Of Wyong Road And Gavenlock Road", + "Locality": "Tuggerah", + "Postcode": "2259", + "Hrs_of_bus": "09:00-17:00 Monday to Friday, 09:00-12:30 Saturdays, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "250", + "result": "999", + "Audio": "", + "gx_id": "40" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [151.496104, -33.344202] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "NSW", + "Fcilty_nam": "The Entrance", + "Shp_num_an": "Shop 16", + "Shp_centre": "Lakeside Plaza", + "Street_add": "Cnr Denning St & Entrance Rd", + "Locality": "The Entrance", + "Postcode": "2261", + "Hrs_of_bus": "09:00-16:30 Monday to Friday, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "77", + "result": "999", + "Audio": "", + "gx_id": "41" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [151.498198, -33.245474] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "NSW", + "Fcilty_nam": "Lake Haven", + "Shp_num_an": "Shop 27", + "Shp_centre": "Lake Haven Shopping Centre", + "Street_add": "Lake Haven Drive", + "Locality": "Lake Haven", + "Postcode": "2263", + "Hrs_of_bus": "09:00-17:00 Monday to Friday, 09:00-12:30 Saturdays, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "43", + "result": "999", + "Audio": "", + "gx_id": "42" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [151.554105, -32.734323] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "NSW", + "Fcilty_nam": "Maitland", + "Shp_num_an": "Shop 6", + "Shp_centre": "Pender Place Shopping Centre", + "Street_add": "44 Elgin Street", + "Locality": "Maitland", + "Postcode": "2320", + "Hrs_of_bus": "09:00-17:00 Monday to Friday, 09:00-12:30 Saturdays, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "48", + "result": "100000", + "Audio": "", + "gx_id": "43" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [151.594681, -33.011657] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "NSW", + "Fcilty_nam": "Toronto", + "Shp_num_an": "", + "Shp_centre": "", + "Street_add": "2 - 6 Donnelly Avenue", + "Locality": "Toronto", + "Postcode": "2283", + "Hrs_of_bus": "08:30 - 17:00 Monday to Friday, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "2", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "78", + "result": "999", + "Audio": "NO", + "gx_id": "44" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [151.664145, -30.512740999999995] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "NSW", + "Fcilty_nam": "Armidale", + "Shp_num_an": "Shop 1A", + "Shp_centre": "K-Mart Plaza", + "Street_add": "201 - 203 Beardy Street", + "Locality": "Armidale", + "Postcode": "2350", + "Hrs_of_bus": "09:00-17:00 Monday to Friday, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "6", + "result": "100000", + "Audio": "", + "gx_id": "45" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [151.666596, -32.903739] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "NSW", + "Fcilty_nam": "Wallsend", + "Shp_num_an": "Shop 15", + "Shp_centre": "Wallsend Plaza", + "Street_add": "24 Kokera Street", + "Locality": "Wallsend", + "Postcode": "2287", + "Hrs_of_bus": "09:00-17:00 Monday to Friday, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "83", + "result": "100000", + "Audio": "", + "gx_id": "46" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [151.695144, -32.963406] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "NSW", + "Fcilty_nam": "Charlestown", + "Shp_num_an": "Shop 122", + "Shp_centre": "Charlestown Square", + "Street_add": "Cnr Smart and Pearson Streets", + "Locality": "Charlestown", + "Postcode": "2290", + "Hrs_of_bus": "09:00-17:00 Monday to Friday, 9:00-18:00 Thursdays, 09:00-12:30 Saturdays, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "22", + "result": "100000", + "Audio": "", + "gx_id": "47" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [151.71115899999998, -32.942052] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "NSW", + "Fcilty_nam": "Kotara", + "Shp_num_an": "Shop 1012a, Level 1", + "Shp_centre": "Westfield Kotara", + "Street_add": "Cnr Park Ave & Northcott Drive", + "Locality": "Kotara", + "Postcode": "2289", + "Hrs_of_bus": "09:00-17:00 Monday to Friday, 09:00-12:30 Saturdays, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "42", + "result": "999", + "Audio": "", + "gx_id": "48" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [151.74191703, -32.7634128] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "NSW", + "Fcilty_nam": "Raymond Terrace", + "Shp_num_an": "Shop 21", + "Shp_centre": "Centro Raymond Terrace", + "Street_add": "Cnr Sturgeon and Glenelg Streets", + "Locality": "Raymond Terrace", + "Postcode": "2324", + "Hrs_of_bus": "09:00-17:00 Monday to Friday, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "68", + "result": "999", + "Audio": "", + "gx_id": "49" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [149.782247, -30.323996] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "NSW", + "Fcilty_nam": "Narrabri", + "Shp_num_an": "", + "Shp_centre": "", + "Street_add": "153-155 Maitland Street", + "Locality": "Narrabri", + "Postcode": "2390", + "Hrs_of_bus": "09:00-16:30 Monday to Friday, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "56", + "result": "100000", + "Audio": "", + "gx_id": "5" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [151.779724, -32.926775] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "NSW", + "Fcilty_nam": "Newcastle", + "Shp_num_an": "", + "Shp_centre": "Hunter Street Mall", + "Street_add": "159 Hunter Street", + "Locality": "Newcastle", + "Postcode": "2300", + "Hrs_of_bus": "09:00-17:00 Monday to Friday, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "57", + "result": "100000", + "Audio": "", + "gx_id": "50" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [151.836117, -26.540599999999998] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "Qld", + "Fcilty_nam": "Kingaroy", + "Shp_num_an": "Shop 26", + "Shp_centre": "Kingaroy Shopping World", + "Street_add": "Cnr Alford & Youngman Streets", + "Locality": "Kingaroy", + "Postcode": "4610", + "Hrs_of_bus": "09:00-16:30 Monday to Friday, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "115", + "result": "100000", + "Audio": "", + "gx_id": "51" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [151.9323835, -27.564541779999995] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "Qld", + "Fcilty_nam": "Toowoomba - Clifford Gardens", + "Shp_num_an": "Shop 87", + "Shp_centre": "Clifford Gardens Shopping Ctr", + "Street_add": "Cnr James Street & Anzac Ave", + "Locality": "Toowoomba", + "Postcode": "4350", + "Hrs_of_bus": "09:00-17:00 Monday to Friday, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "104", + "result": "999", + "Audio": "", + "gx_id": "52" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [151.947533, -27.560203] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "Qld", + "Fcilty_nam": "Toowoomba", + "Shp_num_an": "Shop 56", + "Shp_centre": "Grand Central Shopping Centre", + "Street_add": "Cnr Clifford And Margaret Streets", + "Locality": "Toowoomba", + "Postcode": "4350", + "Hrs_of_bus": "09:00-17:00 Monday to Friday, 9:00-19:00 Thursdays, 09:00-12:30 Saturdays, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "129", + "result": "100000", + "Audio": "", + "gx_id": "53" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [152.033735, -28.223176] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "QLD", + "Fcilty_nam": "Warwick", + "Shp_num_an": "", + "Shp_centre": "", + "Street_add": "37 Albion Street", + "Locality": "Warwick", + "Postcode": "4370", + "Hrs_of_bus": "08:30-16:30 Monday to Friday, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "131", + "result": "50", + "Audio": "", + "gx_id": "54" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [152.348176, -24.871269] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "QLD", + "Fcilty_nam": "Bundaberg", + "Shp_num_an": "Shop 45", + "Shp_centre": "Hinkler Central", + "Street_add": "16 Maryborough Street", + "Locality": "Bundaberg", + "Postcode": "4670", + "Hrs_of_bus": "09:00-17:00 Monday to Friday, 09:00-12:30 Saturdays, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "96", + "result": "10", + "Audio": "", + "gx_id": "55" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [152.461071, -31.913554999999995] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "NSW", + "Fcilty_nam": "Taree", + "Shp_num_an": "Shop 1", + "Shp_centre": "", + "Street_add": "184-188 Victoria Street", + "Locality": "Taree", + "Postcode": "2430", + "Hrs_of_bus": "08:30-17:00 Monday to Friday, 09:00-12:30 Saturdays, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "76", + "result": "10", + "Audio": "", + "gx_id": "56" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [152.500338, -32.176453] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "NSW", + "Fcilty_nam": "Tuncurry", + "Shp_num_an": "Shop 8,", + "Shp_centre": "Bridgepoint Building,", + "Street_add": "7-9 Manning Street", + "Locality": "Tuncurry", + "Postcode": "2428", + "Hrs_of_bus": "09:00-17:00 Monday to Friday, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "258", + "result": "100000", + "Audio": "", + "gx_id": "57" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [152.662584, -26.190296] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "QLD", + "Fcilty_nam": "Gympie", + "Shp_num_an": "Shop 13", + "Shp_centre": "Cullinanes Centre", + "Street_add": "104 Mary Street", + "Locality": "Gympie", + "Postcode": "4570", + "Hrs_of_bus": "09:00-16:30 Monday to Friday, 09:00-12:30 Saturdays, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "108", + "result": "100000", + "Audio": "", + "gx_id": "58" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [152.699538, -25.539147] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "Qld", + "Fcilty_nam": "Maryborough", + "Shp_num_an": "Shop 3", + "Shp_centre": "Station Square Shopping Centre", + "Street_add": "142 Lennox Street", + "Locality": "Maryborough", + "Postcode": "4650", + "Hrs_of_bus": "09:00-16:30 Monday to Friday, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "118", + "result": "100000", + "Audio": "", + "gx_id": "59" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [149.839888, -36.674033] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "NSW", + "Fcilty_nam": "Bega", + "Shp_num_an": "Shop 6", + "Shp_centre": "", + "Street_add": "248 Carp Street", + "Locality": "Bega", + "Postcode": "2550", + "Hrs_of_bus": "09:00-16:30 Monday to Friday, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "11", + "result": "100000", + "Audio": "", + "gx_id": "6" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [152.76117099999996, -27.60897] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "Qld", + "Fcilty_nam": "Ipswich", + "Shp_num_an": "Shop BD7", + "Shp_centre": "Ipswich Riverlink Shopping Centre", + "Street_add": "Cnr Pine Street and The Terrace", + "Locality": "Ipswich", + "Postcode": "4305", + "Hrs_of_bus": "09:00-17:00 Monday to Friday, 09:00-12:30 Saturdays, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "113", + "result": "999", + "Audio": "", + "gx_id": "60" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [152.83770443, -25.288639889999995] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "Qld", + "Fcilty_nam": "Pialba - Hervey Bay", + "Shp_num_an": "Shop 44", + "Shp_centre": "Pialba Place Shopping Centre", + "Street_add": "30 Main Street", + "Locality": "Pialba", + "Postcode": "4655", + "Hrs_of_bus": "09:00-16:30 Monday to Friday, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "109", + "result": "999", + "Audio": "", + "gx_id": "61" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [152.839815, -31.080317] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "NSW", + "Fcilty_nam": "Kempsey", + "Shp_num_an": "Shop 3B", + "Shp_centre": "Kempsey Mall", + "Street_add": "15-27 Belgrave Street", + "Locality": "Kempsey", + "Postcode": "2440", + "Hrs_of_bus": "09:00-16:30 Monday to Friday, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "41", + "result": "100000", + "Audio": "", + "gx_id": "62" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [152.896955, -31.427359] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "NSW", + "Fcilty_nam": "Port Macquarie", + "Shp_num_an": "Shop 3", + "Shp_centre": "Settlement City Shopping Centre", + "Street_add": "Cnr Park & Bay Streets", + "Locality": "Port Macquarie", + "Postcode": "2444", + "Hrs_of_bus": "08:30-17:00 Monday to Friday, 09:00-12:30 Saturdays, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "66", + "result": "10", + "Audio": "", + "gx_id": "63" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [152.921115, -30.707182] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "NSW", + "Fcilty_nam": "Macksville", + "Shp_num_an": "", + "Shp_centre": "", + "Street_add": "9 Cooper Street", + "Locality": "Macksville", + "Postcode": "2447", + "Hrs_of_bus": "09:00-16:30 Monday to Friday, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "47", + "result": "100001", + "Audio": "", + "gx_id": "64" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [152.93268999999998, -29.689934999999995] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "NSW", + "Fcilty_nam": "Grafton", + "Shp_num_an": "", + "Shp_centre": "", + "Street_add": "4-8 King Street", + "Locality": "Grafton", + "Postcode": "2460", + "Hrs_of_bus": "08:30-16:30 Monday to Friday, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "34", + "result": "10", + "Audio": "", + "gx_id": "65" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [152.938644, -27.549524] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "Qld", + "Fcilty_nam": "Mount Ommaney", + "Shp_num_an": "Shop 78", + "Shp_centre": "Mount Ommaney Centre", + "Street_add": "171 Dandenong Rd", + "Locality": "Mount Ommaney", + "Postcode": "4074", + "Hrs_of_bus": "09:00-17:00 Monday to Friday, 09:00-12:30 Saturdays, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "2", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "229", + "result": "100000", + "Audio": "", + "gx_id": "66" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [152.94826, -27.102883999999996] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "QLD", + "Fcilty_nam": "Morayfield", + "Shp_num_an": "Shop 85", + "Shp_centre": "Morayfield Shopping Centre", + "Street_add": "165-171 Morayfield Road", + "Locality": "Morayfield", + "Postcode": "4506", + "Hrs_of_bus": "09:00-17:00 Monday to Friday, 09:00-12:30 Saturdays, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "119", + "result": "10", + "Audio": "", + "gx_id": "67" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [152.959571, -26.628406] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "QLD", + "Fcilty_nam": "Nambour", + "Shp_num_an": "", + "Shp_centre": "", + "Street_add": "Cnr Maud and Currie Streets", + "Locality": "Nambour", + "Postcode": "4560", + "Hrs_of_bus": "08:30-16:30 Monday to Friday, 09:00-12:30 Saturdays, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "121", + "result": "10", + "Audio": "", + "gx_id": "68" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [152.971976, -27.497760999999997] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "QLD", + "Fcilty_nam": "Indooroopilly", + "Shp_num_an": "Shop 1028", + "Shp_centre": "Indooroopilly Shopping Centre", + "Street_add": "322 Moggill Road", + "Locality": "Indooroopilly", + "Postcode": "4068", + "Hrs_of_bus": "09:00-17:00 Monday to Friday, 9:00-19:00 Thursdays, 09:00-12:30 Saturdays, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "110", + "result": "100000", + "Audio": "", + "gx_id": "69" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [149.840086, -29.460718] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "NSW", + "Fcilty_nam": "Moree", + "Shp_num_an": "", + "Shp_centre": "", + "Street_add": "11 Auburn Street", + "Locality": "Moree", + "Postcode": "2400", + "Hrs_of_bus": "08:30 -16:30 Monday to Friday, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "52", + "result": "10", + "Audio": "", + "gx_id": "7" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [152.978069, -27.407566] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "Qld", + "Fcilty_nam": "Mitchelton - Brookside", + "Shp_num_an": "Shop 114A", + "Shp_centre": "Brookside Shopping Centre", + "Street_add": "159 Osborne Road", + "Locality": "Mitchelton", + "Postcode": "4053", + "Hrs_of_bus": "09:00-17:00 Monday to Friday, 9:00-19:00 Thursdays, 09:00-12:30 Saturdays, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "95", + "result": "100000", + "Audio": "", + "gx_id": "70" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [152.990178, -27.307401] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "QLD", + "Fcilty_nam": "Strathpine", + "Shp_num_an": "Shop 145", + "Shp_centre": "Westfield Strathpine", + "Street_add": "295 Gympie Road", + "Locality": "Strathpine", + "Postcode": "4500", + "Hrs_of_bus": "09:00-17:00 Monday to Friday, 9:00-19:00 Thursdays, 09:00-12:30 Saturdays, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "127", + "result": "10", + "Audio": "", + "gx_id": "71" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [153.024822, -27.470496] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "Qld", + "Fcilty_nam": "Brisbane - Queen Street", + "Shp_num_an": "Shop 225, Level 2,", + "Shp_centre": "Myer Centre, Queen Street Mall", + "Street_add": "91 Queen Street", + "Locality": "Brisbane", + "Postcode": "4000", + "Hrs_of_bus": "08:30-17:00 Monday to Friday, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "132", + "result": "999", + "Audio": "", + "gx_id": "72" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [153.03099899999998, -27.385905] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "QLD", + "Fcilty_nam": "Chermside", + "Shp_num_an": "Shop 87", + "Shp_centre": "Westfield Chermside", + "Street_add": "Cnr Gympie & Hamilton Road", + "Locality": "Chermside", + "Postcode": "4032", + "Hrs_of_bus": "09:00-17:00 Monday to Friday, 09:00-19:00 Thursdays, 09:00-12:30 Saturdays, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "101", + "result": "10", + "Audio": "YES", + "gx_id": "73" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [153.050544, -28.863504] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "NSW", + "Fcilty_nam": "Casino", + "Shp_num_an": "", + "Shp_centre": "", + "Street_add": "46 Hickey Street", + "Locality": "Casino", + "Postcode": "2470", + "Hrs_of_bus": "08:30 -16:30 Monday to Friday, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "19", + "result": "10", + "Audio": "", + "gx_id": "74" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [153.05996397, -27.408429199999997] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "QLD", + "Fcilty_nam": "Toombul", + "Shp_num_an": "Shop 80", + "Shp_centre": "Centro Toombul", + "Street_add": "1015 Sandgate Road", + "Locality": "Toombul", + "Postcode": "4012", + "Hrs_of_bus": "09:00-17:00 Monday to Friday, 09:00-12:30 Saturdays, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "128", + "result": "999", + "Audio": "", + "gx_id": "75" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [153.081084, -27.560035] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "QLD", + "Fcilty_nam": "Upper Mount Gravatt - Garden City", + "Shp_num_an": "Shop 1023", + "Shp_centre": "Garden City Shopping Centre", + "Street_add": "Cnr Kessels & Logan Road", + "Locality": "Upper Mount Gravatt", + "Postcode": "4122", + "Hrs_of_bus": "09:00-17:00 Monday to Friday, 9:00-19:00 Thursdays, 09:00-12:30 Saturdays, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "106", + "result": "10", + "Audio": "", + "gx_id": "76" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [153.087773, -27.226718] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "QLD", + "Fcilty_nam": "Kippa-ring", + "Shp_num_an": "Shop A3", + "Shp_centre": "Peninsula Fair Shopping City", + "Street_add": "272 Anzac Avenue", + "Locality": "Kippa-Ring", + "Postcode": "4021", + "Hrs_of_bus": "09:00-17:00 Monday to Friday, 09:00-12:30 Saturdays, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "116", + "result": "10", + "Audio": "YES", + "gx_id": "77" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [153.090664, -26.654233] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "Qld", + "Fcilty_nam": "Maroochydore", + "Shp_num_an": "Shop 323, level 1,", + "Shp_centre": "Sunshine Plaza,", + "Street_add": "Horton Parade", + "Locality": "Maroochydore", + "Postcode": "4558", + "Hrs_of_bus": "09:00-17:00 Monday to Friday, 9:00-19:00 Thursdays, 09:00-12:30 Saturdays, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "254", + "result": "200002", + "Audio": "", + "gx_id": "78" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [153.10093699999996, -27.498755] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "QLD", + "Fcilty_nam": "Carindale", + "Shp_num_an": "Shop 1027,Ground Floor", + "Shp_centre": "Westfield Carindale", + "Street_add": "1151 Creek Road", + "Locality": "Carindale", + "Postcode": "4152", + "Hrs_of_bus": "09:00-17:00 Monday to Friday, 9:00-19:00 Thursdays, 09:00-12:30 Saturdays, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "100", + "result": "999", + "Audio": "", + "gx_id": "79" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [149.909232, -36.887751] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "NSW", + "Fcilty_nam": "Merimbula", + "Shp_num_an": "Shop 2", + "Shp_centre": "", + "Street_add": "11 Merimbula Drive", + "Locality": "Merimbula", + "Postcode": "2548", + "Hrs_of_bus": "09:00-16:30 Monday to Friday, excluding Public Holidays", + "Wheelchair": "NO", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "50", + "result": "100000", + "Audio": "", + "gx_id": "8" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [153.113548, -27.642923] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "Qld", + "Fcilty_nam": "Woodridge", + "Shp_num_an": "Shop 3, Ground Floor", + "Shp_centre": "Logan Central Plaza", + "Street_add": "38 Wembley Road", + "Locality": "Woodridge", + "Postcode": "4114", + "Hrs_of_bus": "09:00-17:00 Monday to Friday, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "133", + "result": "101000", + "Audio": "", + "gx_id": "80" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [153.125954, -26.803062] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "QLD", + "Fcilty_nam": "Caloundra", + "Shp_num_an": "Shop 19", + "Shp_centre": "Stockland Caloundra", + "Street_add": "47 Bowman Road", + "Locality": "Caloundra", + "Postcode": "4551", + "Hrs_of_bus": "09:00-17:00 Monday to Friday, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "98", + "result": "100000", + "Audio": "", + "gx_id": "81" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [153.130653, -26.700943999999996] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "QLD", + "Fcilty_nam": "Buddina - Kawana Waters", + "Shp_num_an": "Shop 416", + "Shp_centre": "Kawana Waters Shoppingworld", + "Street_add": "119 Point Cartwright Drive", + "Locality": "Buddina", + "Postcode": "4575", + "Hrs_of_bus": "09:00-17:00 Monday to Friday, 09:00-12:30 Saturdays, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "114", + "result": "100000", + "Audio": "", + "gx_id": "82" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [153.133021, -30.285734999999995] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "NSW", + "Fcilty_nam": "Coffs Harbour", + "Shp_num_an": "Shop 83", + "Shp_centre": "Park Beach Plaza", + "Street_add": "253 Park Beach Road", + "Locality": "Coffs Harbour", + "Postcode": "2450", + "Hrs_of_bus": "09:00-17:00 Monday to Friday, 9:00-18:00 Thursday, 09:00-12:30 Saturdays, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "24", + "result": "50", + "Audio": "", + "gx_id": "83" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [153.172331, -27.44671] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "QLD", + "Fcilty_nam": "Wynnum", + "Shp_num_an": "", + "Shp_centre": "", + "Street_add": "89 Tingal Road (Cnr Clara Street)", + "Locality": "Wynnum", + "Postcode": "4178", + "Hrs_of_bus": "08:30-16:30 Monday to Friday, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "255", + "result": "10", + "Audio": "", + "gx_id": "84" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [153.190099, -27.521537] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "QLD", + "Fcilty_nam": "Capalaba", + "Shp_num_an": "Shop 95", + "Shp_centre": "Capalaba Park Shopping Centre", + "Street_add": "Cnr Mt Cotton & Redland Bay Road", + "Locality": "Capalaba", + "Postcode": "4157", + "Hrs_of_bus": "09:00-17:00 Monday to Friday, 09:00-12:30 Saturdays, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "99", + "result": "999", + "Audio": "", + "gx_id": "85" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [153.206616, -27.716316] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "Qld", + "Fcilty_nam": "Beenleigh", + "Shp_num_an": "Shop 6A", + "Shp_centre": "Beenleigh Marketplace", + "Street_add": "George Street", + "Locality": "Beenleigh", + "Postcode": "4207", + "Hrs_of_bus": "09:00-17:00 Monday to Friday, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "93", + "result": "999", + "Audio": "", + "gx_id": "86" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [153.268443, -27.526063] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "QLD", + "Fcilty_nam": "Cleveland", + "Shp_num_an": "Shop 76", + "Shp_centre": "Stockland Cleveland North Mall", + "Street_add": "90 Middle Street", + "Locality": "Cleveland", + "Postcode": "4163", + "Hrs_of_bus": "09:00-17:00 Monday to Friday, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "103", + "result": "100000", + "Audio": "", + "gx_id": "87" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [153.285535, -28.809506] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "NSW", + "Fcilty_nam": "Lismore", + "Shp_num_an": "Shop 78,", + "Shp_centre": "Lismore Shopping Square,", + "Street_add": "Cnr Brewster St & Uralba St", + "Locality": "Lismore", + "Postcode": "2480", + "Hrs_of_bus": "09:00-17:00 Monday to Friday, 09:00-12:30 Saturdays, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "44", + "result": "999", + "Audio": "", + "gx_id": "88" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [153.380844, -27.977129] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "Qld", + "Fcilty_nam": "Ashmore", + "Shp_num_an": "Shop 7", + "Shp_centre": "Ashmore City Shopping Centre", + "Street_add": "Cnr Nerang & Currumburra Rds", + "Locality": "Ashmore", + "Postcode": "4214", + "Hrs_of_bus": "09:00-17:00 Monday to Friday, 09:00-12:30 Saturdays, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "90", + "result": "999", + "Audio": "", + "gx_id": "89" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [150.126247, -36.22330099999999] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "NSW", + "Fcilty_nam": "Narooma", + "Shp_num_an": "Shop 35", + "Shp_centre": "Narooma Plaza", + "Street_add": "185 Princes Highway", + "Locality": "Narooma", + "Postcode": "2546", + "Hrs_of_bus": "09:00-16:30 Monday to Friday, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "55", + "result": "200002", + "Audio": "", + "gx_id": "9" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [153.41704, -27.969399] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "QLD", + "Fcilty_nam": "Southport", + "Shp_num_an": "Shop 1047", + "Shp_centre": "Australia Fair Shopping Centre", + "Street_add": "42 Marine Parade", + "Locality": "Southport", + "Postcode": "4215", + "Hrs_of_bus": "09:00-17:00 Monday to Friday, 09:00-12:30 Saturdays, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "126", + "result": "10", + "Audio": "", + "gx_id": "90" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [153.42838799999998, -28.035252] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "QLD", + "Fcilty_nam": "Broadbeach - Pacific Fair", + "Shp_num_an": "Shop 301a", + "Shp_centre": "Pacific Fair Shopping Centre", + "Street_add": "Hooker Boulevarde", + "Locality": "Broadbeach", + "Postcode": "4218", + "Hrs_of_bus": "09:00-17:00 Monday to Friday, 9:00-18:00 Thursdays, 09:00-12:30 Saturdays, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "123", + "result": "999", + "Audio": "", + "gx_id": "91" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [153.46904199999997, -28.13551] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "Qld", + "Fcilty_nam": "Elanora", + "Shp_num_an": "Shop 26,", + "Shp_centre": "The Pines Shopping Centre,", + "Street_add": "313 K P Mcgrath Drive", + "Locality": "Elanora", + "Postcode": "4221", + "Hrs_of_bus": "09:00-17:00 Monday to Friday, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "248", + "result": "200000", + "Audio": "", + "gx_id": "92" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [153.544038, -28.199979999999996] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "NSW", + "Fcilty_nam": "Tweed Heads", + "Shp_num_an": "Shop 23", + "Shp_centre": "Tweed City Shopping Centre", + "Street_add": "54 Minjungbal Drive", + "Locality": "Tweed Heads South", + "Postcode": "2486", + "Hrs_of_bus": "09:00-17:00 Monday to Friday, 09:00-12:30 Saturdays, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "88", + "result": "100000", + "Audio": "", + "gx_id": "93" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [153.557166, -28.867655] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "NSW", + "Fcilty_nam": "Ballina", + "Shp_num_an": "", + "Shp_centre": "", + "Street_add": "117-121 Tamar Street", + "Locality": "Ballina", + "Postcode": "2478", + "Hrs_of_bus": "08:30-16:30 Monday to Friday, 09:00-12:30 Saturdays, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "7", + "result": "10", + "Audio": "", + "gx_id": "94" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [151.058952, -34.031886] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "NSW", + "Fcilty_nam": "Sutherland - Limited Services - EFT only (Centrelink)", + "Shp_num_an": "", + "Shp_centre": "", + "Street_add": "36 Eton Street", + "Locality": "Sutherland", + "Postcode": "2232", + "Hrs_of_bus": "08:00-17:00 Monday to Friday, excluding Public Holidays", + "Wheelchair": "", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "259", + "result": "0", + "Audio": "", + "gx_id": "95" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [145.186676, -38.307719] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "VIC", + "Fcilty_nam": "Hastings - Limited Services - EFT Only (Centrelink)", + "Shp_num_an": "", + "Shp_centre": "", + "Street_add": "125 High Street", + "Locality": "Hastings", + "Postcode": "3915", + "Hrs_of_bus": "08:15-16:45 Monday to Friday, excluding Public Holidays", + "Wheelchair": "", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "260", + "result": "10", + "Audio": "", + "gx_id": "96" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [145.740351, -16.94132] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "QLD", + "Fcilty_nam": "Earlville - Limited Services - EFT Only (Centrelink)", + "Shp_num_an": "", + "Shp_centre": "", + "Street_add": "480 Mulgrave Road", + "Locality": "Earlville", + "Postcode": "4870", + "Hrs_of_bus": "08:30-17:00 Monday to Friday, excluding Public Holidays", + "Wheelchair": "", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "261", + "result": "999", + "Audio": "", + "gx_id": "97" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [122.239912, -17.954772999999996] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "WA", + "Fcilty_nam": "Broome - Limited Services - EFT Only (Centrelink)", + "Shp_num_an": "Centrelink Building", + "Shp_centre": "", + "Street_add": "14 Napier Terrace", + "Locality": "Broome", + "Postcode": "6725", + "Hrs_of_bus": "07:45-16:45 Monday to Friday, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "262", + "result": "30", + "Audio": "", + "gx_id": "98" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [147.14148063, -41.43081154] + }, + "properties": { + "Fcilty_typ": "MO", + "State": "TAS", + "Fcilty_nam": "Launceston - Limited Services - EFT Only (Centrelink)", + "Shp_num_an": "", + "Shp_centre": "", + "Street_add": "8 Boland Street", + "Locality": "Launceston", + "Postcode": "7250", + "Hrs_of_bus": "08:30 - 17:00 Monday to Friday, excluding Public Holidays", + "Wheelchair": "YES", + "Display_wd": "1.5", + "Fcilty_typ_2": "http://www.medicareaustralia.gov.au/public/claims/offices.jsp", + "uuid": "263", + "result": "999", + "Audio": "", + "gx_id": "99" + } + } + ], + "allowedQueriesPerSecond": 150.0 } diff --git a/wwwroot/test/GeoJSON/height.geojson b/wwwroot/test/GeoJSON/height.geojson index 6439edef478..b07f3696b85 100644 --- a/wwwroot/test/GeoJSON/height.geojson +++ b/wwwroot/test/GeoJSON/height.geojson @@ -10,26 +10,11 @@ "type": "Polygon", "coordinates": [ [ - [ - 145.0130295753479, - -37.77042639061412 - ], - [ - 145.0200891494751, - -37.77042639061412 - ], - [ - 145.0200891494751, - -37.76543949054887 - ], - [ - 145.0130295753479, - -37.76543949054887 - ], - [ - 145.0130295753479, - -37.77042639061412 - ] + [145.0130295753479, -37.77042639061412], + [145.0200891494751, -37.77042639061412], + [145.0200891494751, -37.76543949054887], + [145.0130295753479, -37.76543949054887], + [145.0130295753479, -37.77042639061412] ] ] } @@ -37,28 +22,16 @@ { "type": "Feature", "properties": { - "someProperty": 20 + "someProperty": 20 }, "geometry": { "type": "Polygon", "coordinates": [ [ - [ - 145.0100040435791, - -37.76080849651723 - ], - [ - 145.00873804092407, - -37.76342088777352 - ], - [ - 145.0157332420349, - -37.76292895101701 - ], - [ - 145.0100040435791, - -37.76080849651723 - ] + [145.0100040435791, -37.76080849651723], + [145.00873804092407, -37.76342088777352], + [145.0157332420349, -37.76292895101701], + [145.0100040435791, -37.76080849651723] ] ] } diff --git a/wwwroot/test/GeoJSON/points.geojson b/wwwroot/test/GeoJSON/points.geojson index 5a956fe14c0..3901308530e 100644 --- a/wwwroot/test/GeoJSON/points.geojson +++ b/wwwroot/test/GeoJSON/points.geojson @@ -10,10 +10,7 @@ }, "geometry": { "type": "Point", - "coordinates": [ - 144.91734981536865, - -37.824700770115996 - ] + "coordinates": [144.91734981536865, -37.824700770115996] } }, { @@ -25,10 +22,7 @@ }, "geometry": { "type": "Point", - "coordinates": [ - 144.92305755615234, - -37.82453127776299 - ] + "coordinates": [144.92305755615234, -37.82453127776299] } }, { @@ -39,10 +33,7 @@ }, "geometry": { "type": "Point", - "coordinates": [ - 144.92249965667725, - -37.82798884473596 - ] + "coordinates": [144.92249965667725, -37.82798884473596] } }, { @@ -53,10 +44,7 @@ }, "geometry": { "type": "Point", - "coordinates": [ - 144.92855072021484, - -37.82537873563539 - ] + "coordinates": [144.92855072021484, -37.82537873563539] } }, { @@ -67,10 +55,7 @@ }, "geometry": { "type": "Point", - "coordinates": [ - 144.91262912750244, - -37.827615977659555 - ] + "coordinates": [144.91262912750244, -37.827615977659555] } } ] diff --git a/wwwroot/test/GeoJSON/polygon.geojson b/wwwroot/test/GeoJSON/polygon.geojson index 8d15317d10e..852585b23a0 100644 --- a/wwwroot/test/GeoJSON/polygon.geojson +++ b/wwwroot/test/GeoJSON/polygon.geojson @@ -1,15 +1,27 @@ { - "type": "Feature", - "bbox": [-10.0, -10.0, 10.0, 10.0], - "properties": { - "foo": "hi", - "bar": "bye" - }, - "geometry": { - "type": "Polygon", - "coordinates": [ - [ [100.0, 0.0], [101.0, 0.0], [101.0, 1.0], [100.0, 1.0], [100.0, 0.0] ], - [ [100.2, 0.2], [100.8, 0.2], [100.8, 0.8], [100.2, 0.8], [100.2, 0.2] ] - ] - } + "type": "Feature", + "bbox": [-10.0, -10.0, 10.0, 10.0], + "properties": { + "foo": "hi", + "bar": "bye" + }, + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [100.0, 0.0], + [101.0, 0.0], + [101.0, 1.0], + [100.0, 1.0], + [100.0, 0.0] + ], + [ + [100.2, 0.2], + [100.8, 0.2], + [100.8, 0.8], + [100.2, 0.8], + [100.2, 0.2] + ] + ] + } } diff --git a/wwwroot/test/GeoJSON/polygon.topojson b/wwwroot/test/GeoJSON/polygon.topojson index 1f6e8643660..ae3d779e40c 100644 --- a/wwwroot/test/GeoJSON/polygon.topojson +++ b/wwwroot/test/GeoJSON/polygon.topojson @@ -7,12 +7,16 @@ "objects": { "polygon": { "type": "Polygon", - "arcs": [ - [0] - ] + "arcs": [[0]] } }, "arcs": [ - [[0, 0], [0, 9999], [9999, 0], [0, -9999], [-9999, 0]] + [ + [0, 0], + [0, 9999], + [9999, 0], + [0, -9999], + [-9999, 0] + ] ] } diff --git a/wwwroot/test/GeoJSON/polyline.geojson b/wwwroot/test/GeoJSON/polyline.geojson index 4ab7619fe82..c28b5eebe1e 100644 --- a/wwwroot/test/GeoJSON/polyline.geojson +++ b/wwwroot/test/GeoJSON/polyline.geojson @@ -1,16 +1,22 @@ { - "type": "Feature", - "bbox": [-10.0, -10.0, 10.0, 10.0], - "properties": { - "foo": "hi", - "bar": "bye", - "stroke-width": 1 - }, - "geometry": { - "type": "MultiLineString", - "coordinates": [ - [ [100.0, 0.0], [101.0, 1.0] ], - [ [102.0, 2.0], [103.0, 3.0] ] - ] - } + "type": "Feature", + "bbox": [-10.0, -10.0, 10.0, 10.0], + "properties": { + "foo": "hi", + "bar": "bye", + "stroke-width": 1 + }, + "geometry": { + "type": "MultiLineString", + "coordinates": [ + [ + [100.0, 0.0], + [101.0, 1.0] + ], + [ + [102.0, 2.0], + [103.0, 3.0] + ] + ] + } } diff --git a/wwwroot/test/GeoJSON/test-descriptions.geojson b/wwwroot/test/GeoJSON/test-descriptions.geojson index 273588f45bd..51fc6fe4cc9 100644 --- a/wwwroot/test/GeoJSON/test-descriptions.geojson +++ b/wwwroot/test/GeoJSON/test-descriptions.geojson @@ -1,65 +1,1192 @@ { -"type": "FeatureCollection", -"crs": { "type": "name", "properties": { "name": "urn:ogc:def:crs:OGC:1.3:CRS84", "description": "Site 1 description" } }, -"features": [ -{ "type": "Feature", "properties": { "OBJECTID": 1, "FEATTYPE": "Cemetery Point", "NAME": "CORBETTS GRAVE", "FEATREL": "1973\/01\/01", "ATTRREL": "1973\/01\/01", "PLANACC": 100, "SOURCE": "GEOSCIENCE AUSTRALIA", "CREATED": "2006\/05\/09", "RETIRED": null, "PID": 1096166, "SYMBOL": 451, "FEATWIDTH": 0.0, "ORIENTATN": 0, "TEXTNOTE": null }, "geometry": { "type": "Point", "coordinates": [ 143.40801, -18.8145 ] } }, -{ "type": "Feature", "properties": { "OBJECTID": 2, "FEATTYPE": "Cemetery Point", "NAME": "RUTTER GRAVE", "FEATREL": "1983\/01\/01", "ATTRREL": "1983\/01\/01", "PLANACC": 100, "SOURCE": "GEOSCIENCE AUSTRALIA", "CREATED": "2006\/05\/09", "RETIRED": null, "PID": 1096167, "SYMBOL": 451, "FEATWIDTH": 0.0, "ORIENTATN": 0, "TEXTNOTE": null }, "geometry": { "type": "Point", "coordinates": [ 123.43713, -28.01478 ] } }, -{ "type": "Feature", "properties": { "OBJECTID": 3, "FEATTYPE": "Cemetery Point", "NAME": "POOLES GRAVE", "FEATREL": "1985\/01\/01", "ATTRREL": "1985\/01\/01", "PLANACC": 100, "SOURCE": "GEOSCIENCE AUSTRALIA", "CREATED": "2006\/05\/09", "RETIRED": null, "PID": 1096168, "SYMBOL": 451, "FEATWIDTH": 0.0, "ORIENTATN": 0, "TEXTNOTE": null }, "geometry": { "type": "Point", "coordinates": [ 141.7957, -29.66184 ] } }, -{ "type": "Feature", "properties": { "OBJECTID": 4, "FEATTYPE": "Cemetery Point", "NAME": "BULLI CEMETERY", "FEATREL": "1972\/01\/01", "ATTRREL": "1972\/01\/01", "PLANACC": 100, "SOURCE": "GEOSCIENCE AUSTRALIA", "CREATED": "2006\/05\/09", "RETIRED": null, "PID": 1096173, "SYMBOL": 451, "FEATWIDTH": 0.0, "ORIENTATN": 0, "TEXTNOTE": null }, "geometry": { "type": "Point", "coordinates": [ 150.92141, -34.34221 ] } }, -{ "type": "Feature", "properties": { "OBJECTID": 5, "FEATTYPE": "Cemetery Point", "NAME": "WILLS GRAVE", "FEATREL": "1981\/01\/01", "ATTRREL": "1981\/01\/01", "PLANACC": 100, "SOURCE": "GEOSCIENCE AUSTRALIA", "CREATED": "2006\/05\/09", "RETIRED": null, "PID": 1096215, "SYMBOL": 451, "FEATWIDTH": 0.0, "ORIENTATN": 0, "TEXTNOTE": null }, "geometry": { "type": "Point", "coordinates": [ 140.60031, -27.75488 ] } }, -{ "type": "Feature", "properties": { "OBJECTID": 6, "FEATTYPE": "Cemetery Point", "NAME": "KILLABAKH CEMETERY", "FEATREL": "1968\/01\/01", "ATTRREL": "1968\/01\/01", "PLANACC": 100, "SOURCE": "GEOSCIENCE AUSTRALIA", "CREATED": "2006\/05\/09", "RETIRED": null, "PID": 1096218, "SYMBOL": 451, "FEATWIDTH": 0.0, "ORIENTATN": 0, "TEXTNOTE": null }, "geometry": { "type": "Point", "coordinates": [ 152.39647, -31.77828 ] } }, -{ "type": "Feature", "properties": { "OBJECTID": 7, "FEATTYPE": "Cemetery Point", "NAME": "WESTROPPS GRAVE", "FEATREL": "1988\/01\/01", "ATTRREL": "1988\/01\/01", "PLANACC": 100, "SOURCE": "GEOSCIENCE AUSTRALIA", "CREATED": "2006\/05\/09", "RETIRED": null, "PID": 1096188, "SYMBOL": 451, "FEATWIDTH": 0.0, "ORIENTATN": 0, "TEXTNOTE": null }, "geometry": { "type": "Point", "coordinates": [ 139.86757, -25.96538 ] } }, -{ "type": "Feature", "properties": { "OBJECTID": 8, "FEATTYPE": "Cemetery Point", "NAME": "LAKESIDE MEMORIAL CEMETERY", "FEATREL": "1972\/01\/01", "ATTRREL": "1972\/01\/01", "PLANACC": 100, "SOURCE": "GEOSCIENCE AUSTRALIA", "CREATED": "2006\/05\/09", "RETIRED": null, "PID": 1096174, "SYMBOL": 451, "FEATWIDTH": 0.0, "ORIENTATN": 0, "TEXTNOTE": null }, "geometry": { "type": "Point", "coordinates": [ 150.81736, -34.48868 ] } }, -{ "type": "Feature", "properties": { "OBJECTID": 9, "FEATTYPE": "Cemetery Point", "NAME": null, "FEATREL": "1969\/01\/01", "ATTRREL": "1969\/01\/01", "PLANACC": 100, "SOURCE": "GEOSCIENCE AUSTRALIA", "CREATED": "2006\/05\/09", "RETIRED": null, "PID": 1096175, "SYMBOL": 451, "FEATWIDTH": 0.0, "ORIENTATN": 0, "TEXTNOTE": "cemetery" }, "geometry": { "type": "Point", "coordinates": [ 151.5908, -26.16459 ] } }, -{ "type": "Feature", "properties": { "OBJECTID": 10, "FEATTYPE": "Cemetery Point", "NAME": null, "FEATREL": "1982\/01\/01", "ATTRREL": "1982\/01\/01", "PLANACC": 100, "SOURCE": "GEOSCIENCE AUSTRALIA", "CREATED": "2006\/05\/09", "RETIRED": null, "PID": 1096183, "SYMBOL": 451, "FEATWIDTH": 0.0, "ORIENTATN": 0, "TEXTNOTE": "cemetery" }, "geometry": { "type": "Point", "coordinates": [ 135.28896, -32.94265 ] } }, -{ "type": "Feature", "properties": { "OBJECTID": 11, "FEATTYPE": "Cemetery Point", "NAME": "ELSEY CEMETERY", "FEATREL": "1979\/01\/01", "ATTRREL": "1979\/01\/01", "PLANACC": 100, "SOURCE": "GEOSCIENCE AUSTRALIA", "CREATED": "2006\/05\/09", "RETIRED": null, "PID": 1096190, "SYMBOL": 451, "FEATWIDTH": 0.0, "ORIENTATN": 0, "TEXTNOTE": null }, "geometry": { "type": "Point", "coordinates": [ 133.12294, -15.07918 ] } }, -{ "type": "Feature", "properties": { "OBJECTID": 12, "FEATTYPE": "Cemetery Point", "NAME": "PETER FAGANS GRAVE", "FEATREL": "1983\/01\/01", "ATTRREL": "1983\/01\/01", "PLANACC": 100, "SOURCE": "GEOSCIENCE AUSTRALIA", "CREATED": "2006\/05\/09", "RETIRED": null, "PID": 1096189, "SYMBOL": 451, "FEATWIDTH": 0.0, "ORIENTATN": 0, "TEXTNOTE": null }, "geometry": { "type": "Point", "coordinates": [ 139.34337, -30.71978 ] } }, -{ "type": "Feature", "properties": { "OBJECTID": 13, "FEATTYPE": "Cemetery Point", "NAME": null, "FEATREL": "1982\/01\/01", "ATTRREL": "1982\/01\/01", "PLANACC": 100, "SOURCE": "GEOSCIENCE AUSTRALIA", "CREATED": "2006\/05\/09", "RETIRED": null, "PID": 1096196, "SYMBOL": 451, "FEATWIDTH": 0.0, "ORIENTATN": 0, "TEXTNOTE": "cemetery" }, "geometry": { "type": "Point", "coordinates": [ 136.3393, -34.13166 ] } }, -{ "type": "Feature", "properties": { "OBJECTID": 14, "FEATTYPE": "Cemetery Point", "NAME": "PIEDNIPPIE CATHOLIC CEMETERY", "FEATREL": "2005\/05\/09", "ATTRREL": "2005\/05\/09", "PLANACC": 100, "SOURCE": "GEOSCIENCE AUSTRALIA", "CREATED": "2006\/05\/09", "RETIRED": null, "PID": 1096179, "SYMBOL": 451, "FEATWIDTH": 0.0, "ORIENTATN": 0, "TEXTNOTE": null }, "geometry": { "type": "Point", "coordinates": [ 134.45164, -32.73262 ] } }, -{ "type": "Feature", "properties": { "OBJECTID": 15, "FEATTYPE": "Cemetery Point", "NAME": "BERRY GENERAL CEMETERY", "FEATREL": "1982\/01\/01", "ATTRREL": "1982\/01\/01", "PLANACC": 100, "SOURCE": "GEOSCIENCE AUSTRALIA", "CREATED": "2006\/05\/09", "RETIRED": null, "PID": 1096178, "SYMBOL": 451, "FEATWIDTH": 0.0, "ORIENTATN": 0, "TEXTNOTE": null }, "geometry": { "type": "Point", "coordinates": [ 150.68147, -34.77322 ] } }, -{ "type": "Feature", "properties": { "OBJECTID": 16, "FEATTYPE": "Cemetery Point", "NAME": "SANDRIDGE CEMETERY", "FEATREL": "1982\/01\/01", "ATTRREL": "1982\/01\/01", "PLANACC": 100, "SOURCE": "GEOSCIENCE AUSTRALIA", "CREATED": "2006\/05\/09", "RETIRED": null, "PID": 1096181, "SYMBOL": 451, "FEATWIDTH": 0.0, "ORIENTATN": 0, "TEXTNOTE": null }, "geometry": { "type": "Point", "coordinates": [ 150.47095, -35.3379 ] } }, -{ "type": "Feature", "properties": { "OBJECTID": 17, "FEATTYPE": "Cemetery Point", "NAME": null, "FEATREL": "1985\/01\/01", "ATTRREL": "1985\/01\/01", "PLANACC": 100, "SOURCE": "GEOSCIENCE AUSTRALIA", "CREATED": "2006\/05\/09", "RETIRED": null, "PID": 1096192, "SYMBOL": 451, "FEATWIDTH": 0.0, "ORIENTATN": 0, "TEXTNOTE": "grave" }, "geometry": { "type": "Point", "coordinates": [ 143.45539, -30.01952 ] } }, -{ "type": "Feature", "properties": { "OBJECTID": 18, "FEATTYPE": "Cemetery Point", "NAME": null, "FEATREL": "1982\/01\/01", "ATTRREL": "1982\/01\/01", "PLANACC": 100, "SOURCE": "GEOSCIENCE AUSTRALIA", "CREATED": "2006\/05\/09", "RETIRED": null, "PID": 1096182, "SYMBOL": 451, "FEATWIDTH": 0.0, "ORIENTATN": 0, "TEXTNOTE": "cemetery" }, "geometry": { "type": "Point", "coordinates": [ 135.14214, -32.86334 ] } }, -{ "type": "Feature", "properties": { "OBJECTID": 19, "FEATTYPE": "Cemetery Point", "NAME": null, "FEATREL": "2005\/04\/22", "ATTRREL": "2005\/04\/22", "PLANACC": 100, "SOURCE": "GEOSCIENCE AUSTRALIA", "CREATED": "2006\/05\/09", "RETIRED": null, "PID": 1096176, "SYMBOL": 451, "FEATWIDTH": 0.0, "ORIENTATN": 0, "TEXTNOTE": "cemetery" }, "geometry": { "type": "Point", "coordinates": [ 144.55254, -33.26384 ] } }, -{ "type": "Feature", "properties": { "OBJECTID": 20, "FEATTYPE": "Cemetery Point", "NAME": "CORANDERRK ABORIGINAL CEMETERY", "FEATREL": "1979\/01\/01", "ATTRREL": "1979\/01\/01", "PLANACC": 100, "SOURCE": "GEOSCIENCE AUSTRALIA", "CREATED": "2006\/05\/09", "RETIRED": null, "PID": 1096209, "SYMBOL": 451, "FEATWIDTH": 0.0, "ORIENTATN": 0, "TEXTNOTE": null }, "geometry": { "type": "Point", "coordinates": [ 145.5059, -37.68675 ] } }, -{ "type": "Feature", "properties": { "OBJECTID": 21, "FEATTYPE": "Cemetery Point", "NAME": null, "FEATREL": "1986\/01\/01", "ATTRREL": "1986\/01\/01", "PLANACC": 100, "SOURCE": "GEOSCIENCE AUSTRALIA", "CREATED": "2006\/05\/09", "RETIRED": null, "PID": 1096169, "SYMBOL": 451, "FEATWIDTH": 0.0, "ORIENTATN": 0, "TEXTNOTE": "cemetery" }, "geometry": { "type": "Point", "coordinates": [ 136.83587, -31.1736 ] } }, -{ "type": "Feature", "properties": { "OBJECTID": 22, "FEATTYPE": "Cemetery Point", "NAME": null, "FEATREL": "1981\/01\/01", "ATTRREL": "1981\/01\/01", "PLANACC": 100, "SOURCE": "GEOSCIENCE AUSTRALIA", "CREATED": "2006\/05\/09", "RETIRED": null, "PID": 1096191, "SYMBOL": 451, "FEATWIDTH": 0.0, "ORIENTATN": 0, "TEXTNOTE": "cemetery" }, "geometry": { "type": "Point", "coordinates": [ 138.67926, -31.09889 ] } }, -{ "type": "Feature", "properties": { "OBJECTID": 23, "FEATTYPE": "Cemetery Point", "NAME": null, "FEATREL": "1981\/01\/01", "ATTRREL": "1981\/01\/01", "PLANACC": 100, "SOURCE": "GEOSCIENCE AUSTRALIA", "CREATED": "2006\/05\/09", "RETIRED": null, "PID": 1096184, "SYMBOL": 451, "FEATWIDTH": 0.0, "ORIENTATN": 0, "TEXTNOTE": "grave" }, "geometry": { "type": "Point", "coordinates": [ 138.55428, -31.33931 ] } }, -{ "type": "Feature", "properties": { "OBJECTID": 24, "FEATTYPE": "Cemetery Point", "NAME": null, "FEATREL": "1981\/01\/01", "ATTRREL": "1981\/01\/01", "PLANACC": 100, "SOURCE": "GEOSCIENCE AUSTRALIA", "CREATED": "2006\/05\/09", "RETIRED": null, "PID": 1096223, "SYMBOL": 451, "FEATWIDTH": 0.0, "ORIENTATN": 0, "TEXTNOTE": "cemetery" }, "geometry": { "type": "Point", "coordinates": [ 138.34177, -31.74274 ] } }, -{ "type": "Feature", "properties": { "OBJECTID": 25, "FEATTYPE": "Cemetery Point", "NAME": null, "FEATREL": "1981\/01\/01", "ATTRREL": "1981\/01\/01", "PLANACC": 100, "SOURCE": "GEOSCIENCE AUSTRALIA", "CREATED": "2006\/05\/09", "RETIRED": null, "PID": 1096177, "SYMBOL": 451, "FEATWIDTH": 0.0, "ORIENTATN": 0, "TEXTNOTE": "cemetery" }, "geometry": { "type": "Point", "coordinates": [ 138.27347, -31.81438 ] } }, -{ "type": "Feature", "properties": { "OBJECTID": 26, "FEATTYPE": "Cemetery Point", "NAME": "BRUCES GRAVE", "FEATREL": "1981\/01\/01", "ATTRREL": "1981\/01\/01", "PLANACC": 100, "SOURCE": "GEOSCIENCE AUSTRALIA", "CREATED": "2006\/05\/09", "RETIRED": null, "PID": 1096194, "SYMBOL": 451, "FEATWIDTH": 0.0, "ORIENTATN": 0, "TEXTNOTE": null }, "geometry": { "type": "Point", "coordinates": [ 138.39199, -31.83535 ] } }, -{ "type": "Feature", "properties": { "OBJECTID": 27, "FEATTYPE": "Cemetery Point", "NAME": "MCDILL GRAVES", "FEATREL": "1981\/01\/01", "ATTRREL": "1981\/01\/01", "PLANACC": 100, "SOURCE": "GEOSCIENCE AUSTRALIA", "CREATED": "2006\/05\/09", "RETIRED": null, "PID": 1096216, "SYMBOL": 451, "FEATWIDTH": 0.0, "ORIENTATN": 0, "TEXTNOTE": null }, "geometry": { "type": "Point", "coordinates": [ 138.33818, -31.83668 ] } }, -{ "type": "Feature", "properties": { "OBJECTID": 28, "FEATTYPE": "Cemetery Point", "NAME": null, "FEATREL": "1981\/01\/01", "ATTRREL": "1981\/01\/01", "PLANACC": 100, "SOURCE": "GEOSCIENCE AUSTRALIA", "CREATED": "2006\/05\/09", "RETIRED": null, "PID": 1096197, "SYMBOL": 451, "FEATWIDTH": 0.0, "ORIENTATN": 0, "TEXTNOTE": "cemetery" }, "geometry": { "type": "Point", "coordinates": [ 138.42807, -31.90307 ] } }, -{ "type": "Feature", "properties": { "OBJECTID": 29, "FEATTYPE": "Cemetery Point", "NAME": "MADDINGLEY CEMETERY", "FEATREL": "1979\/01\/01", "ATTRREL": "1979\/01\/01", "PLANACC": 100, "SOURCE": "GEOSCIENCE AUSTRALIA", "CREATED": "2006\/05\/09", "RETIRED": null, "PID": 1096210, "SYMBOL": 451, "FEATWIDTH": 0.0, "ORIENTATN": 0, "TEXTNOTE": null }, "geometry": { "type": "Point", "coordinates": [ 144.41725, -37.69179 ] } }, -{ "type": "Feature", "properties": { "OBJECTID": 30, "FEATTYPE": "Cemetery Point", "NAME": null, "FEATREL": "1981\/01\/01", "ATTRREL": "1981\/01\/01", "PLANACC": 100, "SOURCE": "GEOSCIENCE AUSTRALIA", "CREATED": "2006\/05\/09", "RETIRED": null, "PID": 1096186, "SYMBOL": 451, "FEATWIDTH": 0.0, "ORIENTATN": 0, "TEXTNOTE": "cemetery" }, "geometry": { "type": "Point", "coordinates": [ 135.46622, -33.04596 ] } }, -{ "type": "Feature", "properties": { "OBJECTID": 31, "FEATTYPE": "Cemetery Point", "NAME": null, "FEATREL": "1981\/01\/01", "ATTRREL": "1981\/01\/01", "PLANACC": 100, "SOURCE": "GEOSCIENCE AUSTRALIA", "CREATED": "2006\/05\/09", "RETIRED": null, "PID": 1096219, "SYMBOL": 451, "FEATWIDTH": 0.0, "ORIENTATN": 0, "TEXTNOTE": "cemetery" }, "geometry": { "type": "Point", "coordinates": [ 136.42464, -33.15125 ] } }, -{ "type": "Feature", "properties": { "OBJECTID": 32, "FEATTYPE": "Cemetery Point", "NAME": null, "FEATREL": "1981\/01\/01", "ATTRREL": "1981\/01\/01", "PLANACC": 100, "SOURCE": "GEOSCIENCE AUSTRALIA", "CREATED": "2006\/05\/09", "RETIRED": null, "PID": 1096208, "SYMBOL": 451, "FEATWIDTH": 0.0, "ORIENTATN": 0, "TEXTNOTE": "cemetery" }, "geometry": { "type": "Point", "coordinates": [ 135.60565, -33.24516 ] } }, -{ "type": "Feature", "properties": { "OBJECTID": 33, "FEATTYPE": "Cemetery Point", "NAME": "DARKES GRAVE", "FEATREL": "1981\/01\/01", "ATTRREL": "1981\/01\/01", "PLANACC": 100, "SOURCE": "GEOSCIENCE AUSTRALIA", "CREATED": "2006\/05\/09", "RETIRED": null, "PID": 1096220, "SYMBOL": 451, "FEATWIDTH": 0.0, "ORIENTATN": 0, "TEXTNOTE": null }, "geometry": { "type": "Point", "coordinates": [ 136.1581, -33.43105 ] } }, -{ "type": "Feature", "properties": { "OBJECTID": 34, "FEATTYPE": "Cemetery Point", "NAME": null, "FEATREL": "1981\/01\/01", "ATTRREL": "1981\/01\/01", "PLANACC": 100, "SOURCE": "GEOSCIENCE AUSTRALIA", "CREATED": "2006\/05\/09", "RETIRED": null, "PID": 1096193, "SYMBOL": 451, "FEATWIDTH": 0.0, "ORIENTATN": 0, "TEXTNOTE": "cemetery" }, "geometry": { "type": "Point", "coordinates": [ 136.19025, -33.46901 ] } }, -{ "type": "Feature", "properties": { "OBJECTID": 35, "FEATTYPE": "Cemetery Point", "NAME": null, "FEATREL": "1981\/01\/01", "ATTRREL": "1981\/01\/01", "PLANACC": 100, "SOURCE": "GEOSCIENCE AUSTRALIA", "CREATED": "2006\/05\/09", "RETIRED": null, "PID": 1096195, "SYMBOL": 451, "FEATWIDTH": 0.0, "ORIENTATN": 0, "TEXTNOTE": "cemetery" }, "geometry": { "type": "Point", "coordinates": [ 135.7496, -33.58006 ] } }, -{ "type": "Feature", "properties": { "OBJECTID": 36, "FEATTYPE": "Cemetery Point", "NAME": null, "FEATREL": "1981\/01\/01", "ATTRREL": "1981\/01\/01", "PLANACC": 100, "SOURCE": "GEOSCIENCE AUSTRALIA", "CREATED": "2006\/05\/09", "RETIRED": null, "PID": 1096185, "SYMBOL": 451, "FEATWIDTH": 0.0, "ORIENTATN": 0, "TEXTNOTE": "cemetery" }, "geometry": { "type": "Point", "coordinates": [ 135.23874, -33.86309 ] } }, -{ "type": "Feature", "properties": { "OBJECTID": 37, "FEATTYPE": "Cemetery Point", "NAME": null, "FEATREL": "1981\/01\/01", "ATTRREL": "1981\/01\/01", "PLANACC": 100, "SOURCE": "GEOSCIENCE AUSTRALIA", "CREATED": "2006\/05\/09", "RETIRED": null, "PID": 1096206, "SYMBOL": 451, "FEATWIDTH": 0.0, "ORIENTATN": 0, "TEXTNOTE": "grave" }, "geometry": { "type": "Point", "coordinates": [ 135.44408, -33.89091 ] } }, -{ "type": "Feature", "properties": { "OBJECTID": 38, "FEATTYPE": "Cemetery Point", "NAME": null, "FEATREL": "1981\/01\/01", "ATTRREL": "1981\/01\/01", "PLANACC": 100, "SOURCE": "GEOSCIENCE AUSTRALIA", "CREATED": "2006\/05\/09", "RETIRED": null, "PID": 1096187, "SYMBOL": 451, "FEATWIDTH": 0.0, "ORIENTATN": 0, "TEXTNOTE": "cemetery" }, "geometry": { "type": "Point", "coordinates": [ 135.27176, -33.94467 ] } }, -{ "type": "Feature", "properties": { "OBJECTID": 39, "FEATTYPE": "Cemetery Point", "NAME": "PRESTON CEMETERY", "FEATREL": "1979\/01\/01", "ATTRREL": "1979\/01\/01", "PLANACC": 100, "SOURCE": "GEOSCIENCE AUSTRALIA", "CREATED": "2006\/05\/09", "RETIRED": null, "PID": 1096211, "SYMBOL": 451, "FEATWIDTH": 0.0, "ORIENTATN": 0, "TEXTNOTE": null }, "geometry": { "type": "Point", "coordinates": [ 145.04105, -37.72173 ] } }, -{ "type": "Feature", "properties": { "OBJECTID": 40, "FEATTYPE": "Cemetery Point", "NAME": "BOX HILL CEMETERY", "FEATREL": "1979\/01\/01", "ATTRREL": "1979\/01\/01", "PLANACC": 100, "SOURCE": "GEOSCIENCE AUSTRALIA", "CREATED": "2006\/05\/09", "RETIRED": null, "PID": 1096212, "SYMBOL": 451, "FEATWIDTH": 0.0, "ORIENTATN": 0, "TEXTNOTE": null }, "geometry": { "type": "Point", "coordinates": [ 145.13333, -37.82342 ] } }, -{ "type": "Feature", "properties": { "OBJECTID": 41, "FEATTYPE": "Cemetery Point", "NAME": "BURWOOD CEMETERY", "FEATREL": "1979\/01\/01", "ATTRREL": "1979\/01\/01", "PLANACC": 100, "SOURCE": "GEOSCIENCE AUSTRALIA", "CREATED": "2006\/05\/09", "RETIRED": null, "PID": 1096213, "SYMBOL": 451, "FEATWIDTH": 0.0, "ORIENTATN": 0, "TEXTNOTE": null }, "geometry": { "type": "Point", "coordinates": [ 145.10413, -37.85326 ] } }, -{ "type": "Feature", "properties": { "OBJECTID": 42, "FEATTYPE": "Cemetery Point", "NAME": "MORGANS GRAVE", "FEATREL": "1972\/01\/01", "ATTRREL": "1972\/01\/01", "PLANACC": 100, "SOURCE": "GEOSCIENCE AUSTRALIA", "CREATED": "2006\/05\/09", "RETIRED": null, "PID": 1096170, "SYMBOL": 451, "FEATWIDTH": 0.0, "ORIENTATN": 0, "TEXTNOTE": null }, "geometry": { "type": "Point", "coordinates": [ 126.35373, -18.53176 ] } }, -{ "type": "Feature", "properties": { "OBJECTID": 43, "FEATTYPE": "Cemetery Point", "NAME": "HASTYS GRAVE", "FEATREL": "1984\/01\/01", "ATTRREL": "1984\/01\/01", "PLANACC": 100, "SOURCE": "GEOSCIENCE AUSTRALIA", "CREATED": "2006\/05\/09", "RETIRED": null, "PID": 1096171, "SYMBOL": 451, "FEATWIDTH": 0.0, "ORIENTATN": 0, "TEXTNOTE": null }, "geometry": { "type": "Point", "coordinates": [ 118.51832, -28.63369 ] } }, -{ "type": "Feature", "properties": { "OBJECTID": 44, "FEATTYPE": "Cemetery Point", "NAME": "SHARPES GRAVE", "FEATREL": "1986\/01\/01", "ATTRREL": "1986\/01\/01", "PLANACC": 100, "SOURCE": "GEOSCIENCE AUSTRALIA", "CREATED": "2006\/05\/09", "RETIRED": null, "PID": 1096207, "SYMBOL": 451, "FEATWIDTH": 0.0, "ORIENTATN": 0, "TEXTNOTE": null }, "geometry": { "type": "Point", "coordinates": [ 135.08303, -25.96244 ] } }, -{ "type": "Feature", "properties": { "OBJECTID": 45, "FEATTYPE": "Cemetery Point", "NAME": "BOOT HILL CEMETERY", "FEATREL": "1987\/01\/01", "ATTRREL": "1987\/01\/01", "PLANACC": 100, "SOURCE": "GEOSCIENCE AUSTRALIA", "CREATED": "2006\/05\/09", "RETIRED": null, "PID": 1096172, "SYMBOL": 451, "FEATWIDTH": 0.0, "ORIENTATN": 0, "TEXTNOTE": null }, "geometry": { "type": "Point", "coordinates": [ 134.76445, -29.02232 ] } }, -{ "type": "Feature", "properties": { "OBJECTID": 46, "FEATTYPE": "Cemetery Point", "NAME": "OLD CHELTENHAM CEMETERY", "FEATREL": "1979\/01\/01", "ATTRREL": "1979\/01\/01", "PLANACC": 100, "SOURCE": "GEOSCIENCE AUSTRALIA", "CREATED": "2006\/05\/09", "RETIRED": null, "PID": 1096214, "SYMBOL": 451, "FEATWIDTH": 0.0, "ORIENTATN": 0, "TEXTNOTE": null }, "geometry": { "type": "Point", "coordinates": [ 145.05167, -37.96839 ] } }, -{ "type": "Feature", "properties": { "OBJECTID": 47, "FEATTYPE": "Cemetery Point", "NAME": "GUNDILLION CEMETERY", "FEATREL": "1981\/01\/01", "ATTRREL": "1981\/01\/01", "PLANACC": 100, "SOURCE": "GEOSCIENCE AUSTRALIA", "CREATED": "2006\/05\/09", "RETIRED": null, "PID": 1096205, "SYMBOL": 451, "FEATWIDTH": 0.0, "ORIENTATN": 0, "TEXTNOTE": null }, "geometry": { "type": "Point", "coordinates": [ 149.64023, -35.72392 ] } }, -{ "type": "Feature", "properties": { "OBJECTID": 48, "FEATTYPE": "Cemetery Point", "NAME": null, "FEATREL": "1978\/01\/01", "ATTRREL": "1978\/01\/01", "PLANACC": 100, "SOURCE": "GEOSCIENCE AUSTRALIA", "CREATED": "2006\/05\/09", "RETIRED": null, "PID": 1096204, "SYMBOL": 451, "FEATWIDTH": 0.0, "ORIENTATN": 0, "TEXTNOTE": "cemetery" }, "geometry": { "type": "Point", "coordinates": [ 148.79613, -26.58085 ] } }, -{ "type": "Feature", "properties": { "OBJECTID": 49, "FEATTYPE": "Cemetery Point", "NAME": "MOUNT CARBINE CEMETERY", "FEATREL": "1981\/01\/01", "ATTRREL": "1981\/01\/01", "PLANACC": 100, "SOURCE": "GEOSCIENCE AUSTRALIA", "CREATED": "2006\/05\/09", "RETIRED": null, "PID": 1096224, "SYMBOL": 451, "FEATWIDTH": 0.0, "ORIENTATN": 0, "TEXTNOTE": null }, "geometry": { "type": "Point", "coordinates": [ 145.11168, -16.52816 ] } }, -{ "type": "Feature", "properties": { "OBJECTID": 50, "FEATTYPE": "Cemetery Point", "NAME": "KRAEGENS GRAVE", "FEATREL": "1987\/01\/01", "ATTRREL": "1987\/01\/01", "PLANACC": 100, "SOURCE": "GEOSCIENCE AUSTRALIA", "CREATED": "2006\/05\/09", "RETIRED": null, "PID": 1096217, "SYMBOL": 451, "FEATWIDTH": 0.0, "ORIENTATN": 0, "TEXTNOTE": null }, "geometry": { "type": "Point", "coordinates": [ 133.99689, -24.58039 ] } }, -{ "type": "Feature", "properties": { "OBJECTID": 51, "FEATTYPE": "Cemetery Point", "NAME": "PROBYS GRAVE", "FEATREL": "1983\/01\/01", "ATTRREL": "1983\/01\/01", "PLANACC": 100, "SOURCE": "GEOSCIENCE AUSTRALIA", "CREATED": "2006\/05\/09", "RETIRED": null, "PID": 1096180, "SYMBOL": 451, "FEATWIDTH": 0.0, "ORIENTATN": 0, "TEXTNOTE": null }, "geometry": { "type": "Point", "coordinates": [ 138.08989, -32.08335 ] } }, -{ "type": "Feature", "properties": { "OBJECTID": 52, "FEATTYPE": "Cemetery Point", "NAME": "BALDINA CEMETERY", "FEATREL": "1980\/01\/01", "ATTRREL": "1980\/01\/01", "PLANACC": 100, "SOURCE": "GEOSCIENCE AUSTRALIA", "CREATED": "2006\/05\/09", "RETIRED": null, "PID": 1096222, "SYMBOL": 451, "FEATWIDTH": 0.0, "ORIENTATN": 0, "TEXTNOTE": null }, "geometry": { "type": "Point", "coordinates": [ 139.13719, -33.73431 ] } }, -{ "type": "Feature", "properties": { "OBJECTID": 53, "FEATTYPE": "Cemetery Point", "NAME": null, "FEATREL": "1979\/01\/01", "ATTRREL": "1979\/01\/01", "PLANACC": 100, "SOURCE": "GEOSCIENCE AUSTRALIA", "CREATED": "2006\/05\/09", "RETIRED": null, "PID": 1096221, "SYMBOL": 451, "FEATWIDTH": 0.0, "ORIENTATN": 0, "TEXTNOTE": "cemetery" }, "geometry": { "type": "Point", "coordinates": [ 147.54326, -26.45892 ] } }, -{ "type": "Feature", "properties": { "OBJECTID": 54, "FEATTYPE": "Cemetery Point", "NAME": null, "FEATREL": "1970\/01\/01", "ATTRREL": "1970\/01\/01", "PLANACC": 100, "SOURCE": "GEOSCIENCE AUSTRALIA", "CREATED": "2006\/05\/09", "RETIRED": null, "PID": 1096198, "SYMBOL": 451, "FEATWIDTH": 0.0, "ORIENTATN": 0, "TEXTNOTE": "cemetery" }, "geometry": { "type": "Point", "coordinates": [ 137.92075, -35.72118 ] } }, -{ "type": "Feature", "properties": { "OBJECTID": 55, "FEATTYPE": "Cemetery Point", "NAME": null, "FEATREL": "1970\/01\/01", "ATTRREL": "1970\/01\/01", "PLANACC": 100, "SOURCE": "GEOSCIENCE AUSTRALIA", "CREATED": "2006\/05\/09", "RETIRED": null, "PID": 1096199, "SYMBOL": 451, "FEATWIDTH": 0.0, "ORIENTATN": 0, "TEXTNOTE": "cemetery" }, "geometry": { "type": "Point", "coordinates": [ 137.62606, -35.64741 ] } }, -{ "type": "Feature", "properties": { "OBJECTID": 56, "FEATTYPE": "Cemetery Point", "NAME": "HEYWOOD CEMETERY", "FEATREL": "1982\/01\/01", "ATTRREL": "1982\/01\/01", "PLANACC": 100, "SOURCE": "GEOSCIENCE AUSTRALIA", "CREATED": "2006\/05\/09", "RETIRED": null, "PID": 1096200, "SYMBOL": 451, "FEATWIDTH": 0.0, "ORIENTATN": 0, "TEXTNOTE": null }, "geometry": { "type": "Point", "coordinates": [ 141.60544, -37.00425 ] } }, -{ "type": "Feature", "properties": { "OBJECTID": 57, "FEATTYPE": "Cemetery Point", "NAME": "BEULAH CEMETERY", "FEATREL": "1978\/01\/01", "ATTRREL": "1978\/01\/01", "PLANACC": 100, "SOURCE": "GEOSCIENCE AUSTRALIA", "CREATED": "2006\/05\/09", "RETIRED": null, "PID": 1096201, "SYMBOL": 451, "FEATWIDTH": 0.0, "ORIENTATN": 0, "TEXTNOTE": null }, "geometry": { "type": "Point", "coordinates": [ 142.45078, -35.9333 ] } }, -{ "type": "Feature", "properties": { "OBJECTID": 58, "FEATTYPE": "Cemetery Point", "NAME": "ROSEBERRY CEMETERY", "FEATREL": "1978\/01\/01", "ATTRREL": "1978\/01\/01", "PLANACC": 100, "SOURCE": "GEOSCIENCE AUSTRALIA", "CREATED": "2006\/05\/09", "RETIRED": null, "PID": 1096202, "SYMBOL": 451, "FEATWIDTH": 0.0, "ORIENTATN": 0, "TEXTNOTE": null }, "geometry": { "type": "Point", "coordinates": [ 142.45226, -35.82088 ] } }, -{ "type": "Feature", "properties": { "OBJECTID": 59, "FEATTYPE": "Cemetery Point", "NAME": "PENNYWEIGHT FLAT CHILDRENS CEMETERY", "FEATREL": "1982\/01\/01", "ATTRREL": "1982\/01\/01", "PLANACC": 100, "SOURCE": "GEOSCIENCE AUSTRALIA", "CREATED": "2006\/05\/09", "RETIRED": null, "PID": 1096203, "SYMBOL": 451, "FEATWIDTH": 0.0, "ORIENTATN": 0, "TEXTNOTE": null }, "geometry": { "type": "Point", "coordinates": [ 144.23811, -37.06775 ] } } -] + "type": "FeatureCollection", + "crs": { + "type": "name", + "properties": { + "name": "urn:ogc:def:crs:OGC:1.3:CRS84", + "description": "Site 1 description" + } + }, + "features": [ + { + "type": "Feature", + "properties": { + "OBJECTID": 1, + "FEATTYPE": "Cemetery Point", + "NAME": "CORBETTS GRAVE", + "FEATREL": "1973/01/01", + "ATTRREL": "1973/01/01", + "PLANACC": 100, + "SOURCE": "GEOSCIENCE AUSTRALIA", + "CREATED": "2006/05/09", + "RETIRED": null, + "PID": 1096166, + "SYMBOL": 451, + "FEATWIDTH": 0.0, + "ORIENTATN": 0, + "TEXTNOTE": null + }, + "geometry": { "type": "Point", "coordinates": [143.40801, -18.8145] } + }, + { + "type": "Feature", + "properties": { + "OBJECTID": 2, + "FEATTYPE": "Cemetery Point", + "NAME": "RUTTER GRAVE", + "FEATREL": "1983/01/01", + "ATTRREL": "1983/01/01", + "PLANACC": 100, + "SOURCE": "GEOSCIENCE AUSTRALIA", + "CREATED": "2006/05/09", + "RETIRED": null, + "PID": 1096167, + "SYMBOL": 451, + "FEATWIDTH": 0.0, + "ORIENTATN": 0, + "TEXTNOTE": null + }, + "geometry": { "type": "Point", "coordinates": [123.43713, -28.01478] } + }, + { + "type": "Feature", + "properties": { + "OBJECTID": 3, + "FEATTYPE": "Cemetery Point", + "NAME": "POOLES GRAVE", + "FEATREL": "1985/01/01", + "ATTRREL": "1985/01/01", + "PLANACC": 100, + "SOURCE": "GEOSCIENCE AUSTRALIA", + "CREATED": "2006/05/09", + "RETIRED": null, + "PID": 1096168, + "SYMBOL": 451, + "FEATWIDTH": 0.0, + "ORIENTATN": 0, + "TEXTNOTE": null + }, + "geometry": { "type": "Point", "coordinates": [141.7957, -29.66184] } + }, + { + "type": "Feature", + "properties": { + "OBJECTID": 4, + "FEATTYPE": "Cemetery Point", + "NAME": "BULLI CEMETERY", + "FEATREL": "1972/01/01", + "ATTRREL": "1972/01/01", + "PLANACC": 100, + "SOURCE": "GEOSCIENCE AUSTRALIA", + "CREATED": "2006/05/09", + "RETIRED": null, + "PID": 1096173, + "SYMBOL": 451, + "FEATWIDTH": 0.0, + "ORIENTATN": 0, + "TEXTNOTE": null + }, + "geometry": { "type": "Point", "coordinates": [150.92141, -34.34221] } + }, + { + "type": "Feature", + "properties": { + "OBJECTID": 5, + "FEATTYPE": "Cemetery Point", + "NAME": "WILLS GRAVE", + "FEATREL": "1981/01/01", + "ATTRREL": "1981/01/01", + "PLANACC": 100, + "SOURCE": "GEOSCIENCE AUSTRALIA", + "CREATED": "2006/05/09", + "RETIRED": null, + "PID": 1096215, + "SYMBOL": 451, + "FEATWIDTH": 0.0, + "ORIENTATN": 0, + "TEXTNOTE": null + }, + "geometry": { "type": "Point", "coordinates": [140.60031, -27.75488] } + }, + { + "type": "Feature", + "properties": { + "OBJECTID": 6, + "FEATTYPE": "Cemetery Point", + "NAME": "KILLABAKH CEMETERY", + "FEATREL": "1968/01/01", + "ATTRREL": "1968/01/01", + "PLANACC": 100, + "SOURCE": "GEOSCIENCE AUSTRALIA", + "CREATED": "2006/05/09", + "RETIRED": null, + "PID": 1096218, + "SYMBOL": 451, + "FEATWIDTH": 0.0, + "ORIENTATN": 0, + "TEXTNOTE": null + }, + "geometry": { "type": "Point", "coordinates": [152.39647, -31.77828] } + }, + { + "type": "Feature", + "properties": { + "OBJECTID": 7, + "FEATTYPE": "Cemetery Point", + "NAME": "WESTROPPS GRAVE", + "FEATREL": "1988/01/01", + "ATTRREL": "1988/01/01", + "PLANACC": 100, + "SOURCE": "GEOSCIENCE AUSTRALIA", + "CREATED": "2006/05/09", + "RETIRED": null, + "PID": 1096188, + "SYMBOL": 451, + "FEATWIDTH": 0.0, + "ORIENTATN": 0, + "TEXTNOTE": null + }, + "geometry": { "type": "Point", "coordinates": [139.86757, -25.96538] } + }, + { + "type": "Feature", + "properties": { + "OBJECTID": 8, + "FEATTYPE": "Cemetery Point", + "NAME": "LAKESIDE MEMORIAL CEMETERY", + "FEATREL": "1972/01/01", + "ATTRREL": "1972/01/01", + "PLANACC": 100, + "SOURCE": "GEOSCIENCE AUSTRALIA", + "CREATED": "2006/05/09", + "RETIRED": null, + "PID": 1096174, + "SYMBOL": 451, + "FEATWIDTH": 0.0, + "ORIENTATN": 0, + "TEXTNOTE": null + }, + "geometry": { "type": "Point", "coordinates": [150.81736, -34.48868] } + }, + { + "type": "Feature", + "properties": { + "OBJECTID": 9, + "FEATTYPE": "Cemetery Point", + "NAME": null, + "FEATREL": "1969/01/01", + "ATTRREL": "1969/01/01", + "PLANACC": 100, + "SOURCE": "GEOSCIENCE AUSTRALIA", + "CREATED": "2006/05/09", + "RETIRED": null, + "PID": 1096175, + "SYMBOL": 451, + "FEATWIDTH": 0.0, + "ORIENTATN": 0, + "TEXTNOTE": "cemetery" + }, + "geometry": { "type": "Point", "coordinates": [151.5908, -26.16459] } + }, + { + "type": "Feature", + "properties": { + "OBJECTID": 10, + "FEATTYPE": "Cemetery Point", + "NAME": null, + "FEATREL": "1982/01/01", + "ATTRREL": "1982/01/01", + "PLANACC": 100, + "SOURCE": "GEOSCIENCE AUSTRALIA", + "CREATED": "2006/05/09", + "RETIRED": null, + "PID": 1096183, + "SYMBOL": 451, + "FEATWIDTH": 0.0, + "ORIENTATN": 0, + "TEXTNOTE": "cemetery" + }, + "geometry": { "type": "Point", "coordinates": [135.28896, -32.94265] } + }, + { + "type": "Feature", + "properties": { + "OBJECTID": 11, + "FEATTYPE": "Cemetery Point", + "NAME": "ELSEY CEMETERY", + "FEATREL": "1979/01/01", + "ATTRREL": "1979/01/01", + "PLANACC": 100, + "SOURCE": "GEOSCIENCE AUSTRALIA", + "CREATED": "2006/05/09", + "RETIRED": null, + "PID": 1096190, + "SYMBOL": 451, + "FEATWIDTH": 0.0, + "ORIENTATN": 0, + "TEXTNOTE": null + }, + "geometry": { "type": "Point", "coordinates": [133.12294, -15.07918] } + }, + { + "type": "Feature", + "properties": { + "OBJECTID": 12, + "FEATTYPE": "Cemetery Point", + "NAME": "PETER FAGANS GRAVE", + "FEATREL": "1983/01/01", + "ATTRREL": "1983/01/01", + "PLANACC": 100, + "SOURCE": "GEOSCIENCE AUSTRALIA", + "CREATED": "2006/05/09", + "RETIRED": null, + "PID": 1096189, + "SYMBOL": 451, + "FEATWIDTH": 0.0, + "ORIENTATN": 0, + "TEXTNOTE": null + }, + "geometry": { "type": "Point", "coordinates": [139.34337, -30.71978] } + }, + { + "type": "Feature", + "properties": { + "OBJECTID": 13, + "FEATTYPE": "Cemetery Point", + "NAME": null, + "FEATREL": "1982/01/01", + "ATTRREL": "1982/01/01", + "PLANACC": 100, + "SOURCE": "GEOSCIENCE AUSTRALIA", + "CREATED": "2006/05/09", + "RETIRED": null, + "PID": 1096196, + "SYMBOL": 451, + "FEATWIDTH": 0.0, + "ORIENTATN": 0, + "TEXTNOTE": "cemetery" + }, + "geometry": { "type": "Point", "coordinates": [136.3393, -34.13166] } + }, + { + "type": "Feature", + "properties": { + "OBJECTID": 14, + "FEATTYPE": "Cemetery Point", + "NAME": "PIEDNIPPIE CATHOLIC CEMETERY", + "FEATREL": "2005/05/09", + "ATTRREL": "2005/05/09", + "PLANACC": 100, + "SOURCE": "GEOSCIENCE AUSTRALIA", + "CREATED": "2006/05/09", + "RETIRED": null, + "PID": 1096179, + "SYMBOL": 451, + "FEATWIDTH": 0.0, + "ORIENTATN": 0, + "TEXTNOTE": null + }, + "geometry": { "type": "Point", "coordinates": [134.45164, -32.73262] } + }, + { + "type": "Feature", + "properties": { + "OBJECTID": 15, + "FEATTYPE": "Cemetery Point", + "NAME": "BERRY GENERAL CEMETERY", + "FEATREL": "1982/01/01", + "ATTRREL": "1982/01/01", + "PLANACC": 100, + "SOURCE": "GEOSCIENCE AUSTRALIA", + "CREATED": "2006/05/09", + "RETIRED": null, + "PID": 1096178, + "SYMBOL": 451, + "FEATWIDTH": 0.0, + "ORIENTATN": 0, + "TEXTNOTE": null + }, + "geometry": { "type": "Point", "coordinates": [150.68147, -34.77322] } + }, + { + "type": "Feature", + "properties": { + "OBJECTID": 16, + "FEATTYPE": "Cemetery Point", + "NAME": "SANDRIDGE CEMETERY", + "FEATREL": "1982/01/01", + "ATTRREL": "1982/01/01", + "PLANACC": 100, + "SOURCE": "GEOSCIENCE AUSTRALIA", + "CREATED": "2006/05/09", + "RETIRED": null, + "PID": 1096181, + "SYMBOL": 451, + "FEATWIDTH": 0.0, + "ORIENTATN": 0, + "TEXTNOTE": null + }, + "geometry": { "type": "Point", "coordinates": [150.47095, -35.3379] } + }, + { + "type": "Feature", + "properties": { + "OBJECTID": 17, + "FEATTYPE": "Cemetery Point", + "NAME": null, + "FEATREL": "1985/01/01", + "ATTRREL": "1985/01/01", + "PLANACC": 100, + "SOURCE": "GEOSCIENCE AUSTRALIA", + "CREATED": "2006/05/09", + "RETIRED": null, + "PID": 1096192, + "SYMBOL": 451, + "FEATWIDTH": 0.0, + "ORIENTATN": 0, + "TEXTNOTE": "grave" + }, + "geometry": { "type": "Point", "coordinates": [143.45539, -30.01952] } + }, + { + "type": "Feature", + "properties": { + "OBJECTID": 18, + "FEATTYPE": "Cemetery Point", + "NAME": null, + "FEATREL": "1982/01/01", + "ATTRREL": "1982/01/01", + "PLANACC": 100, + "SOURCE": "GEOSCIENCE AUSTRALIA", + "CREATED": "2006/05/09", + "RETIRED": null, + "PID": 1096182, + "SYMBOL": 451, + "FEATWIDTH": 0.0, + "ORIENTATN": 0, + "TEXTNOTE": "cemetery" + }, + "geometry": { "type": "Point", "coordinates": [135.14214, -32.86334] } + }, + { + "type": "Feature", + "properties": { + "OBJECTID": 19, + "FEATTYPE": "Cemetery Point", + "NAME": null, + "FEATREL": "2005/04/22", + "ATTRREL": "2005/04/22", + "PLANACC": 100, + "SOURCE": "GEOSCIENCE AUSTRALIA", + "CREATED": "2006/05/09", + "RETIRED": null, + "PID": 1096176, + "SYMBOL": 451, + "FEATWIDTH": 0.0, + "ORIENTATN": 0, + "TEXTNOTE": "cemetery" + }, + "geometry": { "type": "Point", "coordinates": [144.55254, -33.26384] } + }, + { + "type": "Feature", + "properties": { + "OBJECTID": 20, + "FEATTYPE": "Cemetery Point", + "NAME": "CORANDERRK ABORIGINAL CEMETERY", + "FEATREL": "1979/01/01", + "ATTRREL": "1979/01/01", + "PLANACC": 100, + "SOURCE": "GEOSCIENCE AUSTRALIA", + "CREATED": "2006/05/09", + "RETIRED": null, + "PID": 1096209, + "SYMBOL": 451, + "FEATWIDTH": 0.0, + "ORIENTATN": 0, + "TEXTNOTE": null + }, + "geometry": { "type": "Point", "coordinates": [145.5059, -37.68675] } + }, + { + "type": "Feature", + "properties": { + "OBJECTID": 21, + "FEATTYPE": "Cemetery Point", + "NAME": null, + "FEATREL": "1986/01/01", + "ATTRREL": "1986/01/01", + "PLANACC": 100, + "SOURCE": "GEOSCIENCE AUSTRALIA", + "CREATED": "2006/05/09", + "RETIRED": null, + "PID": 1096169, + "SYMBOL": 451, + "FEATWIDTH": 0.0, + "ORIENTATN": 0, + "TEXTNOTE": "cemetery" + }, + "geometry": { "type": "Point", "coordinates": [136.83587, -31.1736] } + }, + { + "type": "Feature", + "properties": { + "OBJECTID": 22, + "FEATTYPE": "Cemetery Point", + "NAME": null, + "FEATREL": "1981/01/01", + "ATTRREL": "1981/01/01", + "PLANACC": 100, + "SOURCE": "GEOSCIENCE AUSTRALIA", + "CREATED": "2006/05/09", + "RETIRED": null, + "PID": 1096191, + "SYMBOL": 451, + "FEATWIDTH": 0.0, + "ORIENTATN": 0, + "TEXTNOTE": "cemetery" + }, + "geometry": { "type": "Point", "coordinates": [138.67926, -31.09889] } + }, + { + "type": "Feature", + "properties": { + "OBJECTID": 23, + "FEATTYPE": "Cemetery Point", + "NAME": null, + "FEATREL": "1981/01/01", + "ATTRREL": "1981/01/01", + "PLANACC": 100, + "SOURCE": "GEOSCIENCE AUSTRALIA", + "CREATED": "2006/05/09", + "RETIRED": null, + "PID": 1096184, + "SYMBOL": 451, + "FEATWIDTH": 0.0, + "ORIENTATN": 0, + "TEXTNOTE": "grave" + }, + "geometry": { "type": "Point", "coordinates": [138.55428, -31.33931] } + }, + { + "type": "Feature", + "properties": { + "OBJECTID": 24, + "FEATTYPE": "Cemetery Point", + "NAME": null, + "FEATREL": "1981/01/01", + "ATTRREL": "1981/01/01", + "PLANACC": 100, + "SOURCE": "GEOSCIENCE AUSTRALIA", + "CREATED": "2006/05/09", + "RETIRED": null, + "PID": 1096223, + "SYMBOL": 451, + "FEATWIDTH": 0.0, + "ORIENTATN": 0, + "TEXTNOTE": "cemetery" + }, + "geometry": { "type": "Point", "coordinates": [138.34177, -31.74274] } + }, + { + "type": "Feature", + "properties": { + "OBJECTID": 25, + "FEATTYPE": "Cemetery Point", + "NAME": null, + "FEATREL": "1981/01/01", + "ATTRREL": "1981/01/01", + "PLANACC": 100, + "SOURCE": "GEOSCIENCE AUSTRALIA", + "CREATED": "2006/05/09", + "RETIRED": null, + "PID": 1096177, + "SYMBOL": 451, + "FEATWIDTH": 0.0, + "ORIENTATN": 0, + "TEXTNOTE": "cemetery" + }, + "geometry": { "type": "Point", "coordinates": [138.27347, -31.81438] } + }, + { + "type": "Feature", + "properties": { + "OBJECTID": 26, + "FEATTYPE": "Cemetery Point", + "NAME": "BRUCES GRAVE", + "FEATREL": "1981/01/01", + "ATTRREL": "1981/01/01", + "PLANACC": 100, + "SOURCE": "GEOSCIENCE AUSTRALIA", + "CREATED": "2006/05/09", + "RETIRED": null, + "PID": 1096194, + "SYMBOL": 451, + "FEATWIDTH": 0.0, + "ORIENTATN": 0, + "TEXTNOTE": null + }, + "geometry": { "type": "Point", "coordinates": [138.39199, -31.83535] } + }, + { + "type": "Feature", + "properties": { + "OBJECTID": 27, + "FEATTYPE": "Cemetery Point", + "NAME": "MCDILL GRAVES", + "FEATREL": "1981/01/01", + "ATTRREL": "1981/01/01", + "PLANACC": 100, + "SOURCE": "GEOSCIENCE AUSTRALIA", + "CREATED": "2006/05/09", + "RETIRED": null, + "PID": 1096216, + "SYMBOL": 451, + "FEATWIDTH": 0.0, + "ORIENTATN": 0, + "TEXTNOTE": null + }, + "geometry": { "type": "Point", "coordinates": [138.33818, -31.83668] } + }, + { + "type": "Feature", + "properties": { + "OBJECTID": 28, + "FEATTYPE": "Cemetery Point", + "NAME": null, + "FEATREL": "1981/01/01", + "ATTRREL": "1981/01/01", + "PLANACC": 100, + "SOURCE": "GEOSCIENCE AUSTRALIA", + "CREATED": "2006/05/09", + "RETIRED": null, + "PID": 1096197, + "SYMBOL": 451, + "FEATWIDTH": 0.0, + "ORIENTATN": 0, + "TEXTNOTE": "cemetery" + }, + "geometry": { "type": "Point", "coordinates": [138.42807, -31.90307] } + }, + { + "type": "Feature", + "properties": { + "OBJECTID": 29, + "FEATTYPE": "Cemetery Point", + "NAME": "MADDINGLEY CEMETERY", + "FEATREL": "1979/01/01", + "ATTRREL": "1979/01/01", + "PLANACC": 100, + "SOURCE": "GEOSCIENCE AUSTRALIA", + "CREATED": "2006/05/09", + "RETIRED": null, + "PID": 1096210, + "SYMBOL": 451, + "FEATWIDTH": 0.0, + "ORIENTATN": 0, + "TEXTNOTE": null + }, + "geometry": { "type": "Point", "coordinates": [144.41725, -37.69179] } + }, + { + "type": "Feature", + "properties": { + "OBJECTID": 30, + "FEATTYPE": "Cemetery Point", + "NAME": null, + "FEATREL": "1981/01/01", + "ATTRREL": "1981/01/01", + "PLANACC": 100, + "SOURCE": "GEOSCIENCE AUSTRALIA", + "CREATED": "2006/05/09", + "RETIRED": null, + "PID": 1096186, + "SYMBOL": 451, + "FEATWIDTH": 0.0, + "ORIENTATN": 0, + "TEXTNOTE": "cemetery" + }, + "geometry": { "type": "Point", "coordinates": [135.46622, -33.04596] } + }, + { + "type": "Feature", + "properties": { + "OBJECTID": 31, + "FEATTYPE": "Cemetery Point", + "NAME": null, + "FEATREL": "1981/01/01", + "ATTRREL": "1981/01/01", + "PLANACC": 100, + "SOURCE": "GEOSCIENCE AUSTRALIA", + "CREATED": "2006/05/09", + "RETIRED": null, + "PID": 1096219, + "SYMBOL": 451, + "FEATWIDTH": 0.0, + "ORIENTATN": 0, + "TEXTNOTE": "cemetery" + }, + "geometry": { "type": "Point", "coordinates": [136.42464, -33.15125] } + }, + { + "type": "Feature", + "properties": { + "OBJECTID": 32, + "FEATTYPE": "Cemetery Point", + "NAME": null, + "FEATREL": "1981/01/01", + "ATTRREL": "1981/01/01", + "PLANACC": 100, + "SOURCE": "GEOSCIENCE AUSTRALIA", + "CREATED": "2006/05/09", + "RETIRED": null, + "PID": 1096208, + "SYMBOL": 451, + "FEATWIDTH": 0.0, + "ORIENTATN": 0, + "TEXTNOTE": "cemetery" + }, + "geometry": { "type": "Point", "coordinates": [135.60565, -33.24516] } + }, + { + "type": "Feature", + "properties": { + "OBJECTID": 33, + "FEATTYPE": "Cemetery Point", + "NAME": "DARKES GRAVE", + "FEATREL": "1981/01/01", + "ATTRREL": "1981/01/01", + "PLANACC": 100, + "SOURCE": "GEOSCIENCE AUSTRALIA", + "CREATED": "2006/05/09", + "RETIRED": null, + "PID": 1096220, + "SYMBOL": 451, + "FEATWIDTH": 0.0, + "ORIENTATN": 0, + "TEXTNOTE": null + }, + "geometry": { "type": "Point", "coordinates": [136.1581, -33.43105] } + }, + { + "type": "Feature", + "properties": { + "OBJECTID": 34, + "FEATTYPE": "Cemetery Point", + "NAME": null, + "FEATREL": "1981/01/01", + "ATTRREL": "1981/01/01", + "PLANACC": 100, + "SOURCE": "GEOSCIENCE AUSTRALIA", + "CREATED": "2006/05/09", + "RETIRED": null, + "PID": 1096193, + "SYMBOL": 451, + "FEATWIDTH": 0.0, + "ORIENTATN": 0, + "TEXTNOTE": "cemetery" + }, + "geometry": { "type": "Point", "coordinates": [136.19025, -33.46901] } + }, + { + "type": "Feature", + "properties": { + "OBJECTID": 35, + "FEATTYPE": "Cemetery Point", + "NAME": null, + "FEATREL": "1981/01/01", + "ATTRREL": "1981/01/01", + "PLANACC": 100, + "SOURCE": "GEOSCIENCE AUSTRALIA", + "CREATED": "2006/05/09", + "RETIRED": null, + "PID": 1096195, + "SYMBOL": 451, + "FEATWIDTH": 0.0, + "ORIENTATN": 0, + "TEXTNOTE": "cemetery" + }, + "geometry": { "type": "Point", "coordinates": [135.7496, -33.58006] } + }, + { + "type": "Feature", + "properties": { + "OBJECTID": 36, + "FEATTYPE": "Cemetery Point", + "NAME": null, + "FEATREL": "1981/01/01", + "ATTRREL": "1981/01/01", + "PLANACC": 100, + "SOURCE": "GEOSCIENCE AUSTRALIA", + "CREATED": "2006/05/09", + "RETIRED": null, + "PID": 1096185, + "SYMBOL": 451, + "FEATWIDTH": 0.0, + "ORIENTATN": 0, + "TEXTNOTE": "cemetery" + }, + "geometry": { "type": "Point", "coordinates": [135.23874, -33.86309] } + }, + { + "type": "Feature", + "properties": { + "OBJECTID": 37, + "FEATTYPE": "Cemetery Point", + "NAME": null, + "FEATREL": "1981/01/01", + "ATTRREL": "1981/01/01", + "PLANACC": 100, + "SOURCE": "GEOSCIENCE AUSTRALIA", + "CREATED": "2006/05/09", + "RETIRED": null, + "PID": 1096206, + "SYMBOL": 451, + "FEATWIDTH": 0.0, + "ORIENTATN": 0, + "TEXTNOTE": "grave" + }, + "geometry": { "type": "Point", "coordinates": [135.44408, -33.89091] } + }, + { + "type": "Feature", + "properties": { + "OBJECTID": 38, + "FEATTYPE": "Cemetery Point", + "NAME": null, + "FEATREL": "1981/01/01", + "ATTRREL": "1981/01/01", + "PLANACC": 100, + "SOURCE": "GEOSCIENCE AUSTRALIA", + "CREATED": "2006/05/09", + "RETIRED": null, + "PID": 1096187, + "SYMBOL": 451, + "FEATWIDTH": 0.0, + "ORIENTATN": 0, + "TEXTNOTE": "cemetery" + }, + "geometry": { "type": "Point", "coordinates": [135.27176, -33.94467] } + }, + { + "type": "Feature", + "properties": { + "OBJECTID": 39, + "FEATTYPE": "Cemetery Point", + "NAME": "PRESTON CEMETERY", + "FEATREL": "1979/01/01", + "ATTRREL": "1979/01/01", + "PLANACC": 100, + "SOURCE": "GEOSCIENCE AUSTRALIA", + "CREATED": "2006/05/09", + "RETIRED": null, + "PID": 1096211, + "SYMBOL": 451, + "FEATWIDTH": 0.0, + "ORIENTATN": 0, + "TEXTNOTE": null + }, + "geometry": { "type": "Point", "coordinates": [145.04105, -37.72173] } + }, + { + "type": "Feature", + "properties": { + "OBJECTID": 40, + "FEATTYPE": "Cemetery Point", + "NAME": "BOX HILL CEMETERY", + "FEATREL": "1979/01/01", + "ATTRREL": "1979/01/01", + "PLANACC": 100, + "SOURCE": "GEOSCIENCE AUSTRALIA", + "CREATED": "2006/05/09", + "RETIRED": null, + "PID": 1096212, + "SYMBOL": 451, + "FEATWIDTH": 0.0, + "ORIENTATN": 0, + "TEXTNOTE": null + }, + "geometry": { "type": "Point", "coordinates": [145.13333, -37.82342] } + }, + { + "type": "Feature", + "properties": { + "OBJECTID": 41, + "FEATTYPE": "Cemetery Point", + "NAME": "BURWOOD CEMETERY", + "FEATREL": "1979/01/01", + "ATTRREL": "1979/01/01", + "PLANACC": 100, + "SOURCE": "GEOSCIENCE AUSTRALIA", + "CREATED": "2006/05/09", + "RETIRED": null, + "PID": 1096213, + "SYMBOL": 451, + "FEATWIDTH": 0.0, + "ORIENTATN": 0, + "TEXTNOTE": null + }, + "geometry": { "type": "Point", "coordinates": [145.10413, -37.85326] } + }, + { + "type": "Feature", + "properties": { + "OBJECTID": 42, + "FEATTYPE": "Cemetery Point", + "NAME": "MORGANS GRAVE", + "FEATREL": "1972/01/01", + "ATTRREL": "1972/01/01", + "PLANACC": 100, + "SOURCE": "GEOSCIENCE AUSTRALIA", + "CREATED": "2006/05/09", + "RETIRED": null, + "PID": 1096170, + "SYMBOL": 451, + "FEATWIDTH": 0.0, + "ORIENTATN": 0, + "TEXTNOTE": null + }, + "geometry": { "type": "Point", "coordinates": [126.35373, -18.53176] } + }, + { + "type": "Feature", + "properties": { + "OBJECTID": 43, + "FEATTYPE": "Cemetery Point", + "NAME": "HASTYS GRAVE", + "FEATREL": "1984/01/01", + "ATTRREL": "1984/01/01", + "PLANACC": 100, + "SOURCE": "GEOSCIENCE AUSTRALIA", + "CREATED": "2006/05/09", + "RETIRED": null, + "PID": 1096171, + "SYMBOL": 451, + "FEATWIDTH": 0.0, + "ORIENTATN": 0, + "TEXTNOTE": null + }, + "geometry": { "type": "Point", "coordinates": [118.51832, -28.63369] } + }, + { + "type": "Feature", + "properties": { + "OBJECTID": 44, + "FEATTYPE": "Cemetery Point", + "NAME": "SHARPES GRAVE", + "FEATREL": "1986/01/01", + "ATTRREL": "1986/01/01", + "PLANACC": 100, + "SOURCE": "GEOSCIENCE AUSTRALIA", + "CREATED": "2006/05/09", + "RETIRED": null, + "PID": 1096207, + "SYMBOL": 451, + "FEATWIDTH": 0.0, + "ORIENTATN": 0, + "TEXTNOTE": null + }, + "geometry": { "type": "Point", "coordinates": [135.08303, -25.96244] } + }, + { + "type": "Feature", + "properties": { + "OBJECTID": 45, + "FEATTYPE": "Cemetery Point", + "NAME": "BOOT HILL CEMETERY", + "FEATREL": "1987/01/01", + "ATTRREL": "1987/01/01", + "PLANACC": 100, + "SOURCE": "GEOSCIENCE AUSTRALIA", + "CREATED": "2006/05/09", + "RETIRED": null, + "PID": 1096172, + "SYMBOL": 451, + "FEATWIDTH": 0.0, + "ORIENTATN": 0, + "TEXTNOTE": null + }, + "geometry": { "type": "Point", "coordinates": [134.76445, -29.02232] } + }, + { + "type": "Feature", + "properties": { + "OBJECTID": 46, + "FEATTYPE": "Cemetery Point", + "NAME": "OLD CHELTENHAM CEMETERY", + "FEATREL": "1979/01/01", + "ATTRREL": "1979/01/01", + "PLANACC": 100, + "SOURCE": "GEOSCIENCE AUSTRALIA", + "CREATED": "2006/05/09", + "RETIRED": null, + "PID": 1096214, + "SYMBOL": 451, + "FEATWIDTH": 0.0, + "ORIENTATN": 0, + "TEXTNOTE": null + }, + "geometry": { "type": "Point", "coordinates": [145.05167, -37.96839] } + }, + { + "type": "Feature", + "properties": { + "OBJECTID": 47, + "FEATTYPE": "Cemetery Point", + "NAME": "GUNDILLION CEMETERY", + "FEATREL": "1981/01/01", + "ATTRREL": "1981/01/01", + "PLANACC": 100, + "SOURCE": "GEOSCIENCE AUSTRALIA", + "CREATED": "2006/05/09", + "RETIRED": null, + "PID": 1096205, + "SYMBOL": 451, + "FEATWIDTH": 0.0, + "ORIENTATN": 0, + "TEXTNOTE": null + }, + "geometry": { "type": "Point", "coordinates": [149.64023, -35.72392] } + }, + { + "type": "Feature", + "properties": { + "OBJECTID": 48, + "FEATTYPE": "Cemetery Point", + "NAME": null, + "FEATREL": "1978/01/01", + "ATTRREL": "1978/01/01", + "PLANACC": 100, + "SOURCE": "GEOSCIENCE AUSTRALIA", + "CREATED": "2006/05/09", + "RETIRED": null, + "PID": 1096204, + "SYMBOL": 451, + "FEATWIDTH": 0.0, + "ORIENTATN": 0, + "TEXTNOTE": "cemetery" + }, + "geometry": { "type": "Point", "coordinates": [148.79613, -26.58085] } + }, + { + "type": "Feature", + "properties": { + "OBJECTID": 49, + "FEATTYPE": "Cemetery Point", + "NAME": "MOUNT CARBINE CEMETERY", + "FEATREL": "1981/01/01", + "ATTRREL": "1981/01/01", + "PLANACC": 100, + "SOURCE": "GEOSCIENCE AUSTRALIA", + "CREATED": "2006/05/09", + "RETIRED": null, + "PID": 1096224, + "SYMBOL": 451, + "FEATWIDTH": 0.0, + "ORIENTATN": 0, + "TEXTNOTE": null + }, + "geometry": { "type": "Point", "coordinates": [145.11168, -16.52816] } + }, + { + "type": "Feature", + "properties": { + "OBJECTID": 50, + "FEATTYPE": "Cemetery Point", + "NAME": "KRAEGENS GRAVE", + "FEATREL": "1987/01/01", + "ATTRREL": "1987/01/01", + "PLANACC": 100, + "SOURCE": "GEOSCIENCE AUSTRALIA", + "CREATED": "2006/05/09", + "RETIRED": null, + "PID": 1096217, + "SYMBOL": 451, + "FEATWIDTH": 0.0, + "ORIENTATN": 0, + "TEXTNOTE": null + }, + "geometry": { "type": "Point", "coordinates": [133.99689, -24.58039] } + }, + { + "type": "Feature", + "properties": { + "OBJECTID": 51, + "FEATTYPE": "Cemetery Point", + "NAME": "PROBYS GRAVE", + "FEATREL": "1983/01/01", + "ATTRREL": "1983/01/01", + "PLANACC": 100, + "SOURCE": "GEOSCIENCE AUSTRALIA", + "CREATED": "2006/05/09", + "RETIRED": null, + "PID": 1096180, + "SYMBOL": 451, + "FEATWIDTH": 0.0, + "ORIENTATN": 0, + "TEXTNOTE": null + }, + "geometry": { "type": "Point", "coordinates": [138.08989, -32.08335] } + }, + { + "type": "Feature", + "properties": { + "OBJECTID": 52, + "FEATTYPE": "Cemetery Point", + "NAME": "BALDINA CEMETERY", + "FEATREL": "1980/01/01", + "ATTRREL": "1980/01/01", + "PLANACC": 100, + "SOURCE": "GEOSCIENCE AUSTRALIA", + "CREATED": "2006/05/09", + "RETIRED": null, + "PID": 1096222, + "SYMBOL": 451, + "FEATWIDTH": 0.0, + "ORIENTATN": 0, + "TEXTNOTE": null + }, + "geometry": { "type": "Point", "coordinates": [139.13719, -33.73431] } + }, + { + "type": "Feature", + "properties": { + "OBJECTID": 53, + "FEATTYPE": "Cemetery Point", + "NAME": null, + "FEATREL": "1979/01/01", + "ATTRREL": "1979/01/01", + "PLANACC": 100, + "SOURCE": "GEOSCIENCE AUSTRALIA", + "CREATED": "2006/05/09", + "RETIRED": null, + "PID": 1096221, + "SYMBOL": 451, + "FEATWIDTH": 0.0, + "ORIENTATN": 0, + "TEXTNOTE": "cemetery" + }, + "geometry": { "type": "Point", "coordinates": [147.54326, -26.45892] } + }, + { + "type": "Feature", + "properties": { + "OBJECTID": 54, + "FEATTYPE": "Cemetery Point", + "NAME": null, + "FEATREL": "1970/01/01", + "ATTRREL": "1970/01/01", + "PLANACC": 100, + "SOURCE": "GEOSCIENCE AUSTRALIA", + "CREATED": "2006/05/09", + "RETIRED": null, + "PID": 1096198, + "SYMBOL": 451, + "FEATWIDTH": 0.0, + "ORIENTATN": 0, + "TEXTNOTE": "cemetery" + }, + "geometry": { "type": "Point", "coordinates": [137.92075, -35.72118] } + }, + { + "type": "Feature", + "properties": { + "OBJECTID": 55, + "FEATTYPE": "Cemetery Point", + "NAME": null, + "FEATREL": "1970/01/01", + "ATTRREL": "1970/01/01", + "PLANACC": 100, + "SOURCE": "GEOSCIENCE AUSTRALIA", + "CREATED": "2006/05/09", + "RETIRED": null, + "PID": 1096199, + "SYMBOL": 451, + "FEATWIDTH": 0.0, + "ORIENTATN": 0, + "TEXTNOTE": "cemetery" + }, + "geometry": { "type": "Point", "coordinates": [137.62606, -35.64741] } + }, + { + "type": "Feature", + "properties": { + "OBJECTID": 56, + "FEATTYPE": "Cemetery Point", + "NAME": "HEYWOOD CEMETERY", + "FEATREL": "1982/01/01", + "ATTRREL": "1982/01/01", + "PLANACC": 100, + "SOURCE": "GEOSCIENCE AUSTRALIA", + "CREATED": "2006/05/09", + "RETIRED": null, + "PID": 1096200, + "SYMBOL": 451, + "FEATWIDTH": 0.0, + "ORIENTATN": 0, + "TEXTNOTE": null + }, + "geometry": { "type": "Point", "coordinates": [141.60544, -37.00425] } + }, + { + "type": "Feature", + "properties": { + "OBJECTID": 57, + "FEATTYPE": "Cemetery Point", + "NAME": "BEULAH CEMETERY", + "FEATREL": "1978/01/01", + "ATTRREL": "1978/01/01", + "PLANACC": 100, + "SOURCE": "GEOSCIENCE AUSTRALIA", + "CREATED": "2006/05/09", + "RETIRED": null, + "PID": 1096201, + "SYMBOL": 451, + "FEATWIDTH": 0.0, + "ORIENTATN": 0, + "TEXTNOTE": null + }, + "geometry": { "type": "Point", "coordinates": [142.45078, -35.9333] } + }, + { + "type": "Feature", + "properties": { + "OBJECTID": 58, + "FEATTYPE": "Cemetery Point", + "NAME": "ROSEBERRY CEMETERY", + "FEATREL": "1978/01/01", + "ATTRREL": "1978/01/01", + "PLANACC": 100, + "SOURCE": "GEOSCIENCE AUSTRALIA", + "CREATED": "2006/05/09", + "RETIRED": null, + "PID": 1096202, + "SYMBOL": 451, + "FEATWIDTH": 0.0, + "ORIENTATN": 0, + "TEXTNOTE": null + }, + "geometry": { "type": "Point", "coordinates": [142.45226, -35.82088] } + }, + { + "type": "Feature", + "properties": { + "OBJECTID": 59, + "FEATTYPE": "Cemetery Point", + "NAME": "PENNYWEIGHT FLAT CHILDRENS CEMETERY", + "FEATREL": "1982/01/01", + "ATTRREL": "1982/01/01", + "PLANACC": 100, + "SOURCE": "GEOSCIENCE AUSTRALIA", + "CREATED": "2006/05/09", + "RETIRED": null, + "PID": 1096203, + "SYMBOL": 451, + "FEATWIDTH": 0.0, + "ORIENTATN": 0, + "TEXTNOTE": null + }, + "geometry": { "type": "Point", "coordinates": [144.23811, -37.06775] } + } + ] } diff --git a/wwwroot/test/GeoJSON/test-styles.geojson b/wwwroot/test/GeoJSON/test-styles.geojson index 5fc1875a313..821abc75e88 100644 --- a/wwwroot/test/GeoJSON/test-styles.geojson +++ b/wwwroot/test/GeoJSON/test-styles.geojson @@ -10,22 +10,10 @@ "type": "Polygon", "coordinates": [ [ - [ - 144.173583984375, - -38.706946051593846 - ], - [ - 144.1571044921875, - -38.9380483825641 - ], - [ - 144.4097900390625, - -38.736946065676 - ], - [ - 144.173583984375, - -38.706946051593846 - ] + [144.173583984375, -38.706946051593846], + [144.1571044921875, -38.9380483825641], + [144.4097900390625, -38.736946065676], + [144.173583984375, -38.706946051593846] ] ] } @@ -37,10 +25,7 @@ }, "geometry": { "type": "Point", - "coordinates": [ - 144.9810791015625, - -38.882481197550796 - ] + "coordinates": [144.9810791015625, -38.882481197550796] } }, { @@ -51,18 +36,9 @@ "geometry": { "type": "LineString", "coordinates": [ - [ - 144.4757080078125, - -38.86537485161164 - ], - [ - 144.700927734375, - -38.86537485161164 - ], - [ - 144.7064208984375, - -38.664067044569435 - ] + [144.4757080078125, -38.86537485161164], + [144.700927734375, -38.86537485161164], + [144.7064208984375, -38.664067044569435] ] } }, @@ -80,22 +56,10 @@ "type": "Polygon", "coordinates": [ [ - [ - 143.8330078125, - -39.58452390500422 - ], - [ - 144.1680908203125, - -39.75787999202175 - ], - [ - 144.25048828125, - -39.478605568922085 - ], - [ - 143.8330078125, - -39.58452390500422 - ] + [143.8330078125, -39.58452390500422], + [144.1680908203125, -39.75787999202175], + [144.25048828125, -39.478605568922085], + [143.8330078125, -39.58452390500422] ] ] } @@ -111,18 +75,9 @@ "geometry": { "type": "LineString", "coordinates": [ - [ - 143.7286376953125, - -39.800095956348386 - ], - [ - 144.854736328125, - -39.82119422647454 - ], - [ - 144.8492431640625, - -39.44043541908485 - ] + [143.7286376953125, -39.800095956348386], + [144.854736328125, -39.82119422647454], + [144.8492431640625, -39.44043541908485] ] } }, @@ -136,10 +91,7 @@ }, "geometry": { "type": "Point", - "coordinates": [ - 145.12939453125, - -39.61415207700264 - ] + "coordinates": [145.12939453125, -39.61415207700264] } }, { @@ -151,26 +103,11 @@ "type": "Polygon", "coordinates": [ [ - [ - 143.85223388671875, - -38.719804742642374 - ], - [ - 143.7451171875, - -38.820451107114714 - ], - [ - 143.87969970703125, - -38.925229047140526 - ], - [ - 143.98681640625, - -38.79904887985135 - ], - [ - 143.85223388671875, - -38.719804742642374 - ] + [143.85223388671875, -38.719804742642374], + [143.7451171875, -38.820451107114714], + [143.87969970703125, -38.925229047140526], + [143.98681640625, -38.79904887985135], + [143.85223388671875, -38.719804742642374] ] ] } @@ -189,26 +126,11 @@ "type": "Polygon", "coordinates": [ [ - [ - 143.41552734375, - -39.43195032116862 - ], - [ - 143.2452392578125, - -39.63107677008365 - ], - [ - 143.50341796875, - -39.77476948529546 - ], - [ - 143.6846923828125, - -39.58029027440865 - ], - [ - 143.41552734375, - -39.43195032116862 - ] + [143.41552734375, -39.43195032116862], + [143.2452392578125, -39.63107677008365], + [143.50341796875, -39.77476948529546], + [143.6846923828125, -39.58029027440865], + [143.41552734375, -39.43195032116862] ] ] } @@ -223,10 +145,7 @@ }, "geometry": { "type": "Point", - "coordinates": [ - 144.97283935546872, - -39.612036199336934 - ] + "coordinates": [144.97283935546872, -39.612036199336934] } }, { @@ -240,11 +159,8 @@ }, "geometry": { "type": "Point", - "coordinates": [ - 145.31616210937497, - -39.59933957529531 - ] + "coordinates": [145.31616210937497, -39.59933957529531] } } ] -} \ No newline at end of file +} diff --git a/wwwroot/test/GeoJSON/time-based.geojson b/wwwroot/test/GeoJSON/time-based.geojson index d7ec603fb80..37526f3f34d 100644 --- a/wwwroot/test/GeoJSON/time-based.geojson +++ b/wwwroot/test/GeoJSON/time-based.geojson @@ -10,26 +10,11 @@ "type": "Polygon", "coordinates": [ [ - [ - 145.0130295753479, - -37.77042639061412 - ], - [ - 145.0200891494751, - -37.77042639061412 - ], - [ - 145.0200891494751, - -37.76543949054887 - ], - [ - 145.0130295753479, - -37.76543949054887 - ], - [ - 145.0130295753479, - -37.77042639061412 - ] + [145.0130295753479, -37.77042639061412], + [145.0200891494751, -37.77042639061412], + [145.0200891494751, -37.76543949054887], + [145.0130295753479, -37.76543949054887], + [145.0130295753479, -37.77042639061412] ] ] } @@ -37,31 +22,19 @@ { "type": "Feature", "properties": { - "year": 2019 + "year": 2019 }, "geometry": { "type": "Polygon", "coordinates": [ [ - [ - 145.0100040435791, - -37.76080849651723 - ], - [ - 145.00873804092407, - -37.76342088777352 - ], - [ - 145.0157332420349, - -37.76292895101701 - ], - [ - 145.0100040435791, - -37.76080849651723 - ] + [145.0100040435791, -37.76080849651723], + [145.00873804092407, -37.76342088777352], + [145.0157332420349, -37.76292895101701], + [145.0100040435791, -37.76080849651723] ] ] } } ] -} \ No newline at end of file +} diff --git a/wwwroot/test/GeoJSON/two_features.geojson b/wwwroot/test/GeoJSON/two_features.geojson index 28f372b4009..f9333adbcf7 100644 --- a/wwwroot/test/GeoJSON/two_features.geojson +++ b/wwwroot/test/GeoJSON/two_features.geojson @@ -1,80 +1,80 @@ { - "type":"FeatureCollection", - "totalFeatures":315, - "features": [ - { - "type":"Feature", - "id":"a58544a9_86de_4c26_90db_3e7c103ded50.1", - "geometry":{ - "type":"Point", - "coordinates":[542876.9802999999,6898697.6111] - }, - "geometry_name":"geom", - "properties":{ - "status":"CURRENT", - "asset_numb":"BIKE970", - "type":"Hoop_Big", - "material":"Stainless Steel", - "number_of_":2, - "comments":"Also associated with projects CCR6 and CKE6", - "documents":{"#1":4, "#2":5}, - "inspectors":null, - "inspection":"2009-12-14Z", - "constructi":"2009-12-17Z", - "record_cre":"2009-12-14Z", - "last_updat":null, - "update_dat":"2010-11-19Z", - "disposal_d":null, - "positional":"GPS Corrected 1.0M", - "owner":"Jay
    ", - "project_nu":"CLE5", - "file.number.":10, - "folder_num":null, - "drawing_nu":null, - "survey_num":null, - "condition":2, - "historic#.":-12, - "big":1234567, - "decimal":3.1415926, - "funding_ba":"Capex" - } - }, - { - "type":"Feature", - "id":"a58544a9_86de_4c26_90db_3e7c103ded50.314", - "geometry":{ - "type":"Point", - "coordinates":[541015.7613000004,6895442.2138] - }, - "geometry_name":"geom", - "properties":{ - "status":"CURRENT", - "asset_numb":"BIKE1855", - "type":"Hoop_Half", - "material":"Stainless Steel", - "number_of_":1, - "comments":null, - "documents":{"#1":-4, "#2":15}, - "inspectors":null, - "inspection":"2012-09-11Z", - "constructi":null, - "record_cre":"2012-09-11Z", - "last_updat":null, - "update_dat":"2012-09-18Z", - "disposal_d":null, - "positional":"GPS Corrected 1.0M", - "owner":"TBA", - "project_nu":null, - "file.number.":11, - "folder_num":null, - "drawing_nu":null, - "survey_num":null, - "condition":1, - "historic#.":-11, - "big":234567, - "decimal":2.7182818, - "funding_ba":"Initial" - } - } - ] + "type": "FeatureCollection", + "totalFeatures": 315, + "features": [ + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.1", + "geometry": { + "type": "Point", + "coordinates": [542876.9802999999, 6898697.6111] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE970", + "type": "Hoop_Big", + "material": "Stainless Steel", + "number_of_": 2, + "comments": "Also associated with projects CCR6 and CKE6", + "documents": { "#1": 4, "#2": 5 }, + "inspectors": null, + "inspection": "2009-12-14Z", + "constructi": "2009-12-17Z", + "record_cre": "2009-12-14Z", + "last_updat": null, + "update_dat": "2010-11-19Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": "Jay
    ", + "project_nu": "CLE5", + "file.number.": 10, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 2, + "historic#.": -12, + "big": 1234567, + "decimal": 3.1415926, + "funding_ba": "Capex" + } + }, + { + "type": "Feature", + "id": "a58544a9_86de_4c26_90db_3e7c103ded50.314", + "geometry": { + "type": "Point", + "coordinates": [541015.7613000004, 6895442.2138] + }, + "geometry_name": "geom", + "properties": { + "status": "CURRENT", + "asset_numb": "BIKE1855", + "type": "Hoop_Half", + "material": "Stainless Steel", + "number_of_": 1, + "comments": null, + "documents": { "#1": -4, "#2": 15 }, + "inspectors": null, + "inspection": "2012-09-11Z", + "constructi": null, + "record_cre": "2012-09-11Z", + "last_updat": null, + "update_dat": "2012-09-18Z", + "disposal_d": null, + "positional": "GPS Corrected 1.0M", + "owner": "TBA", + "project_nu": null, + "file.number.": 11, + "folder_num": null, + "drawing_nu": null, + "survey_num": null, + "condition": 1, + "historic#.": -11, + "big": 234567, + "decimal": 2.7182818, + "funding_ba": "Initial" + } + } + ] } diff --git a/wwwroot/test/JSON-api/position_api_response.json b/wwwroot/test/JSON-api/position_api_response.json index 469d8683eaa..bed37b4abf7 100644 --- a/wwwroot/test/JSON-api/position_api_response.json +++ b/wwwroot/test/JSON-api/position_api_response.json @@ -1,17 +1,17 @@ [ - { - "id": 1, - "latitude": -37.25, - "longitude": 145.25 - }, - { - "id": 2, - "latitude": -37, - "longitude": 145.5 - }, - { - "id": 3, - "latitude": -37.1, - "longitude": 145.7 - } -] \ No newline at end of file + { + "id": 1, + "latitude": -37.25, + "longitude": 145.25 + }, + { + "id": 2, + "latitude": -37, + "longitude": 145.5 + }, + { + "id": 3, + "latitude": -37.1, + "longitude": 145.7 + } +] diff --git a/wwwroot/test/JSON-api/value_api_response.json b/wwwroot/test/JSON-api/value_api_response.json index 412b69274e0..e12da659d70 100644 --- a/wwwroot/test/JSON-api/value_api_response.json +++ b/wwwroot/test/JSON-api/value_api_response.json @@ -1,14 +1,14 @@ [ - { - "id": 1, - "value": 8 - }, - { - "id": 2, - "value": 9 - }, - { - "id": 3, - "value": 7 - } -] \ No newline at end of file + { + "id": 1, + "value": 8 + }, + { + "id": 2, + "value": 9 + }, + { + "id": 3, + "value": 7 + } +] diff --git a/wwwroot/test/Magda/map-config-basic.json b/wwwroot/test/Magda/map-config-basic.json index 61a439331ca..323a0a6b0b5 100644 --- a/wwwroot/test/Magda/map-config-basic.json +++ b/wwwroot/test/Magda/map-config-basic.json @@ -1,17 +1,13 @@ { "aspects": { "terria-config": { - "initializationUrls": [ - "https://example.foo.bar/init.json" - ], + "initializationUrls": ["https://example.foo.bar/init.json"], "parameters": { "appName": "TestTerriaMap" } }, "group": { - "members": [ - "a-member" - ] + "members": ["a-member"] } }, "id": "map-config-basic", diff --git a/wwwroot/test/Magda/map-config-dereferenced-new.json b/wwwroot/test/Magda/map-config-dereferenced-new.json index ad4ee5ce743..9424525a871 100644 --- a/wwwroot/test/Magda/map-config-dereferenced-new.json +++ b/wwwroot/test/Magda/map-config-dereferenced-new.json @@ -1,27 +1,24 @@ { "aspects": { - "group": { - "members": [ - { - "aspects": { - "terria": { - "definition": { - "description": "Some description", - "members": [ - "deeper-1", - "deeper-2" - ], - "name": "A dereferenced member" - }, - "id": "mochi-new", - "type": "group" - } - }, - "id": "mochi-new", - "name": "A dereferenced member" - } - ] - } + "group": { + "members": [ + { + "aspects": { + "terria": { + "definition": { + "description": "Some description", + "members": ["deeper-1", "deeper-2"], + "name": "A dereferenced member" + }, + "id": "mochi-new", + "type": "group" + } + }, + "id": "mochi-new", + "name": "A dereferenced member" + } + ] + } }, "id": "map-config-dereferenced-new", "name": "Terria Configuration", diff --git a/wwwroot/test/Magda/map-config-dereferenced.json b/wwwroot/test/Magda/map-config-dereferenced.json index d5624a832cc..e0a4d16bce6 100644 --- a/wwwroot/test/Magda/map-config-dereferenced.json +++ b/wwwroot/test/Magda/map-config-dereferenced.json @@ -1,45 +1,39 @@ { "aspects": { - "group": { - "members": [ - { - "aspects": { - "terria": { - "definition": { - "description": "Some description", - "members": [ - "deeper-1", - "deeper-2" - ], - "name": "A dereferenced member" - }, - "id": "mochi", - "type": "group" - } - }, - "id": "mochi", - "name": "A dereferenced member" + "group": { + "members": [ + { + "aspects": { + "terria": { + "definition": { + "description": "Some description", + "members": ["deeper-1", "deeper-2"], + "name": "A dereferenced member" }, - { - "aspects": { - "terria": { - "definition": { - "description": "Some description", - "members": [ - "deeper-3", - "deeper-4" - ], - "name": "A second dereferenced member" - }, - "id": "neko", - "type": "group" - } - }, - "id": "neko", - "name": "A second dereferenced member" - } - ] - } + "id": "mochi", + "type": "group" + } + }, + "id": "mochi", + "name": "A dereferenced member" + }, + { + "aspects": { + "terria": { + "definition": { + "description": "Some description", + "members": ["deeper-3", "deeper-4"], + "name": "A second dereferenced member" + }, + "id": "neko", + "type": "group" + } + }, + "id": "neko", + "name": "A second dereferenced member" + } + ] + } }, "id": "map-config-dereferenced", "name": "Terria Configuration", diff --git a/wwwroot/test/Magda/map-config-inline-init.json b/wwwroot/test/Magda/map-config-inline-init.json index d7e580de8d2..14d45ae3f54 100644 --- a/wwwroot/test/Magda/map-config-inline-init.json +++ b/wwwroot/test/Magda/map-config-inline-init.json @@ -1,35 +1,30 @@ { - "aspects": { - "terria-config": { - "parameters": { - "appName": "TestTerriaMap" - } - }, - "terria-init": { - "catalog": [ - { - "type": "csv", - "url": "build/TerriaJS/test/csv/lat_lon_date_value.csv" - } - ], - "corsDomains": [ - "a-cors.domainz", - "mochi.other.domainz" - ], - "homeCamera": { - "east": 2, - "north": 1, - "south": -2, - "west": 1 - } - }, - "group": { - "members": [ - "a-member" - ] + "aspects": { + "terria-config": { + "parameters": { + "appName": "TestTerriaMap" + } + }, + "terria-init": { + "catalog": [ + { + "type": "csv", + "url": "build/TerriaJS/test/csv/lat_lon_date_value.csv" } + ], + "corsDomains": ["a-cors.domainz", "mochi.other.domainz"], + "homeCamera": { + "east": 2, + "north": 1, + "south": -2, + "west": 1 + } }, - "id": "map-config-inline-init", - "name": "Terria Configuration", - "tenantId": 0 + "group": { + "members": ["a-member"] + } + }, + "id": "map-config-inline-init", + "name": "Terria Configuration", + "tenantId": 0 } diff --git a/wwwroot/test/Magda/map-config-v7.json b/wwwroot/test/Magda/map-config-v7.json index a4e94d4516f..ffd09e9781d 100644 --- a/wwwroot/test/Magda/map-config-v7.json +++ b/wwwroot/test/Magda/map-config-v7.json @@ -1,17 +1,13 @@ { "aspects": { "terria-config": { - "v7initializationUrls": [ - "https://example.foo.bar/initv7.json" - ], + "v7initializationUrls": ["https://example.foo.bar/initv7.json"], "parameters": { "appName": "TestTerriaMap" } }, "group": { - "members": [ - "a-member" - ] + "members": ["a-member"] } }, "id": "map-config-basic", diff --git a/wwwroot/test/SDMX-JSON/agency-scheme.json b/wwwroot/test/SDMX-JSON/agency-scheme.json index 3efd0a2c536..66e1454c0f1 100644 --- a/wwwroot/test/SDMX-JSON/agency-scheme.json +++ b/wwwroot/test/SDMX-JSON/agency-scheme.json @@ -37,9 +37,7 @@ }, "meta": { "schema": "https://raw.githubusercontent.com/sdmx-twg/sdmx-json/develop/structure-message/tools/schemas/1.0/sdmx-json-structure-schema.json", - "content-languages": [ - "en" - ], + "content-languages": ["en"], "id": "IDREF2927", "prepared": "2020-09-22T03:36:47.2551975Z", "test": false, diff --git a/wwwroot/test/SDMX-JSON/category-scheme.json b/wwwroot/test/SDMX-JSON/category-scheme.json index 7c71981a837..135582c5b14 100644 --- a/wwwroot/test/SDMX-JSON/category-scheme.json +++ b/wwwroot/test/SDMX-JSON/category-scheme.json @@ -2974,9 +2974,7 @@ }, "meta": { "schema": "https://raw.githubusercontent.com/sdmx-twg/sdmx-json/develop/structure-message/tools/schemas/1.0/sdmx-json-structure-schema.json", - "content-languages": [ - "en" - ], + "content-languages": ["en"], "id": "IDREF2928", "prepared": "2020-09-22T03:36:47.5803137Z", "test": false, diff --git a/wwwroot/test/SDMX-JSON/dataflow-noregion.json b/wwwroot/test/SDMX-JSON/dataflow-noregion.json index 5c1c57216ba..dfa89f1107a 100644 --- a/wwwroot/test/SDMX-JSON/dataflow-noregion.json +++ b/wwwroot/test/SDMX-JSON/dataflow-noregion.json @@ -1 +1,1804 @@ -{"data":{"dataflows":[{"id":"DF_COMMODITY_PRICES","links":[{"rel":"self","type":"dataflow"},{"rel":"structure","type":"datastructure"}],"version":"1.0","agencyID":"SPC","isFinal":false,"name":"Selected International Commodity Prices","names":{"en":"Selected International Commodity Prices"},"description":"Nominal prices in USD for selected key international commodity prices relevant to Pacific Island Countries and Territories, extracted from World bank Commodity Prices (« pink sheets ») and from FAO GLOBEFISH European Fish Price Report.","descriptions":{"en":"Nominal prices in USD for selected key international commodity prices relevant to Pacific Island Countries and Territories, extracted from World bank Commodity Prices (« pink sheets ») and from FAO GLOBEFISH European Fish Price Report."},"annotations":[{"type":"NonProductionDataflow","text":"true","texts":{"en":"true"}},{"title":"COMMODITY","type":"LAYOUT_ROW"},{"title":"TIME_PERIOD","type":"LAYOUT_COLUMN"},{"title":"FREQ=A,INDICATOR=COMPRICE,TIME_PERIOD_START=2010,TIME_PERIOD_END=2020","type":"DEFAULT"},{"type":"EXT_RESOURCE","text":"Metadata|http://purl.org/spc/digilib/doc/vbwmj|https://sdd.spc.int/themes/custom/sdd/images/icons/metadata.png","texts":{"en":"Metadata|http://purl.org/spc/digilib/doc/vbwmj|https://sdd.spc.int/themes/custom/sdd/images/icons/metadata.png"}}],"structure":"urn:sdmx:org.sdmx.infomodel.datastructure.DataStructure=SPC:DSD_COMMODITY_PRICES(1.0)"}],"categorySchemes":[{"id":"CAS_COM_TOPIC","links":[{"rel":"self","type":"categoryscheme"}],"version":"1.0","agencyID":"SPC","isFinal":false,"name":"Topic","names":{"en":"Topic"},"isPartial":false,"categories":[{"id":"ECO","name":"Economy","names":{"en":"Economy"},"annotations":[{"type":"ORDER","text":"10","texts":{"en":"10"}}],"links":[{"rel":"self","type":"category"}]},{"id":"ENV","name":"Environment","names":{"en":"Environment"},"annotations":[{"type":"ORDER","text":"20","texts":{"en":"20"}}],"links":[{"rel":"self","type":"category"}]},{"id":"HEA","name":"Health","names":{"en":"Health"},"annotations":[{"type":"ORDER","text":"30","texts":{"en":"30"}}],"links":[{"rel":"self","type":"category"}]},{"id":"IND","name":"Industry and Services","names":{"en":"Industry and Services"},"annotations":[{"type":"ORDER","text":"40","texts":{"en":"40"}}],"links":[{"rel":"self","type":"category"}]},{"id":"POP","name":"Population","names":{"en":"Population"},"annotations":[{"type":"ORDER","text":"50","texts":{"en":"50"}}],"links":[{"rel":"self","type":"category"}]},{"id":"SOC","name":"Social","names":{"en":"Social"},"annotations":[{"type":"ORDER","text":"60","texts":{"en":"60"}}],"links":[{"rel":"self","type":"category"}]},{"id":"XDO","name":"Multi-domain","names":{"en":"Multi-domain"},"annotations":[{"type":"ORDER","text":"70","texts":{"en":"70"}}],"links":[{"rel":"self","type":"category"}]}]}],"categorisations":[{"id":"CAT_COMMODITY_PRICES","links":[{"rel":"self","type":"categorisation"}],"version":"1.0","agencyID":"SPC","isFinal":false,"name":"Categorisation for the Costal Population dataflow","names":{"en":"Categorisation for the Costal Population dataflow"},"source":"urn:sdmx:org.sdmx.infomodel.datastructure.Dataflow=SPC:DF_COMMODITY_PRICES(1.0)","target":"urn:sdmx:org.sdmx.infomodel.categoryscheme.Category=SPC:CAS_COM_TOPIC(1.0).ECO"}],"conceptSchemes":[{"id":"CS_COMMON","links":[{"rel":"self","type":"conceptscheme"}],"version":"2.0","agencyID":"SPC","isFinal":false,"name":"Common concepts for SPC .Stat data","names":{"en":"Common concepts for SPC .Stat data"},"isPartial":false,"concepts":[{"id":"TIME_PERIOD","name":"Time","names":{"en":"Time"},"links":[{"rel":"self","type":"concept"}]},{"id":"FREQ","name":"Frequency","names":{"en":"Frequency"},"links":[{"rel":"self","type":"concept"}]},{"id":"OBS_VALUE","name":"Observation value","names":{"en":"Observation value"},"links":[{"rel":"self","type":"concept"}]},{"id":"OBS_SATUS","name":"Observation Status","names":{"en":"Observation Status"},"links":[{"rel":"self","type":"concept"}]},{"id":"CONF_STATUS","name":"Confidentiality status","names":{"en":"Confidentiality status"},"links":[{"rel":"self","type":"concept"}]},{"id":"UNIT_MEASURE","name":"Unit of measure","names":{"en":"Unit of measure"},"links":[{"rel":"self","type":"concept"}]},{"id":"UNIT_MULT","name":"Unit multiplier","names":{"en":"Unit multiplier"},"links":[{"rel":"self","type":"concept"}]},{"id":"COMMENT","name":"Comment","names":{"en":"Comment"},"links":[{"rel":"self","type":"concept"}]},{"id":"DECIMALS","name":"Decimals","names":{"en":"Decimals"},"links":[{"rel":"self","type":"concept"}]},{"id":"GEO_AREA","name":"Geographical area","names":{"en":"Geographical area"},"links":[{"rel":"self","type":"concept"}]},{"id":"GEO_PICT","name":"Pacific Island Countries and territories","names":{"en":"Pacific Island Countries and territories"},"links":[{"rel":"self","type":"concept"}]},{"id":"SEX","name":"Sex","names":{"en":"Sex"},"links":[{"rel":"self","type":"concept"}]},{"id":"AGE","name":"Age","names":{"en":"Age"},"links":[{"rel":"self","type":"concept"}]},{"id":"CURRENCY","name":"Currency","names":{"en":"Currency"},"links":[{"rel":"self","type":"concept"}]},{"id":"DATA_SOURCE","name":"Data source","names":{"en":"Data source"},"links":[{"rel":"self","type":"concept"}]},{"id":"INDICATOR","name":"Indicator","names":{"en":"Indicator"},"links":[{"rel":"self","type":"concept"}]},{"id":"COMMODITY","name":"Commodity","names":{"en":"Commodity"},"links":[{"rel":"self","type":"concept"}]},{"id":"URBANIZATION","name":"Urbanization","names":{"en":"Urbanization"},"links":[{"rel":"self","type":"concept"}]},{"id":"EDUCATION","name":"Education level","names":{"en":"Education level"},"links":[{"rel":"self","type":"concept"}]},{"id":"OCCUPATION","name":"Occupation","names":{"en":"Occupation"},"links":[{"rel":"self","type":"concept"}]},{"id":"DISABILITY","name":"Disability","names":{"en":"Disability"},"links":[{"rel":"self","type":"concept"}]},{"id":"INCOME","name":"Income","names":{"en":"Income"},"links":[{"rel":"self","type":"concept"}]},{"id":"COMPOSITE_BREAKDOWN","name":"Composite breakdown","names":{"en":"Composite breakdown"},"links":[{"rel":"self","type":"concept"}]},{"id":"ECONOMIC_SECTOR","name":"Economic sector","names":{"en":"Economic sector"},"links":[{"rel":"self","type":"concept"}]},{"id":"LABOUR_FORCE_STATUS","name":"Labour force status","names":{"en":"Labour force status"},"links":[{"rel":"self","type":"concept"}]},{"id":"EMPLOYMENT_STATUS","name":"Employment status","names":{"en":"Employment status"},"links":[{"rel":"self","type":"concept"}]},{"id":"BASE_PER","name":"Base period","names":{"en":"Base period"},"links":[{"rel":"self","type":"concept"}]},{"id":"TIME_FORMAT","name":"Time format","names":{"en":"Time format"},"links":[{"rel":"self","type":"concept"}]}]}],"codelists":[{"id":"CL_COMMODITY_PRICES","links":[{"rel":"self","type":"codelist"}],"version":"1.0","agencyID":"SPC","isFinal":false,"name":"Code list for commodity prices","names":{"en":"Code list for commodity prices"},"isPartial":false,"codes":[{"id":"ALUMINUM","name":"Aluminum","names":{"en":"Aluminum"},"annotations":[{"type":"ORDER","text":"10","texts":{"en":"10"}}],"links":[{"rel":"self","type":"code"}]},{"id":"BANANA_EU","name":"Banana, Europe","names":{"en":"Banana, Europe"},"annotations":[{"type":"ORDER","text":"20","texts":{"en":"20"}}],"links":[{"rel":"self","type":"code"}]},{"id":"BANANA_US","name":"Banana, US","names":{"en":"Banana, US"},"annotations":[{"type":"ORDER","text":"30","texts":{"en":"30"}}],"links":[{"rel":"self","type":"code"}]},{"id":"BARLEY","name":"Barley","names":{"en":"Barley"},"annotations":[{"type":"ORDER","text":"40","texts":{"en":"40"}}],"links":[{"rel":"self","type":"code"}]},{"id":"BEEF","name":"Beef","names":{"en":"Beef"},"annotations":[{"type":"ORDER","text":"50","texts":{"en":"50"}}],"links":[{"rel":"self","type":"code"}]},{"id":"CHICKEN","name":"Meat, chicken","names":{"en":"Meat, chicken"},"annotations":[{"type":"ORDER","text":"320","texts":{"en":"320"}}],"links":[{"rel":"self","type":"code"}]},{"id":"COAL_AUS","name":"Coal, Australian","names":{"en":"Coal, Australian"},"annotations":[{"type":"ORDER","text":"60","texts":{"en":"60"}}],"links":[{"rel":"self","type":"code"}]},{"id":"COAL_COL","name":"Coal, Colombian","names":{"en":"Coal, Colombian"},"annotations":[{"type":"ORDER","text":"70","texts":{"en":"70"}}],"links":[{"rel":"self","type":"code"}]},{"id":"COAL_SAFRICA","name":"Coal, South Afican","names":{"en":"Coal, South Afican"},"annotations":[{"type":"ORDER","text":"80","texts":{"en":"80"}}],"links":[{"rel":"self","type":"code"}]},{"id":"COCOA","name":"Cocoa","names":{"en":"Cocoa"},"annotations":[{"type":"ORDER","text":"90","texts":{"en":"90"}}],"links":[{"rel":"self","type":"code"}]},{"id":"COCONUT_OIL","name":"Coconut oil","names":{"en":"Coconut oil"},"annotations":[{"type":"ORDER","text":"100","texts":{"en":"100"}}],"links":[{"rel":"self","type":"code"}]},{"id":"COFFEE_ARABIC","name":"Coffee, Arabica","names":{"en":"Coffee, Arabica"},"annotations":[{"type":"ORDER","text":"110","texts":{"en":"110"}}],"links":[{"rel":"self","type":"code"}]},{"id":"COFFEE_ROBUS","name":"Coffee, Robusta","names":{"en":"Coffee, Robusta"},"annotations":[{"type":"ORDER","text":"120","texts":{"en":"120"}}],"links":[{"rel":"self","type":"code"}]},{"id":"COPPER","name":"Copper","names":{"en":"Copper"},"annotations":[{"type":"ORDER","text":"130","texts":{"en":"130"}}],"links":[{"rel":"self","type":"code"}]},{"id":"COPRA","name":"Copra","names":{"en":"Copra"},"annotations":[{"type":"ORDER","text":"140","texts":{"en":"140"}}],"links":[{"rel":"self","type":"code"}]},{"id":"COTTON_A_INDX","name":"Cotton, A Index","names":{"en":"Cotton, A Index"},"annotations":[{"type":"ORDER","text":"150","texts":{"en":"150"}}],"links":[{"rel":"self","type":"code"}]},{"id":"COTTON_MEMPH","name":"Cotton, Memphis","names":{"en":"Cotton, Memphis"},"annotations":[{"type":"ORDER","text":"160","texts":{"en":"160"}}],"links":[{"rel":"self","type":"code"}]},{"id":"CRUDE_BRENT","name":"Crude oil, Brent","names":{"en":"Crude oil, Brent"},"annotations":[{"type":"ORDER","text":"180","texts":{"en":"180"}}],"links":[{"rel":"self","type":"code"}]},{"id":"CRUDE_DUBAI","name":"Crude oil, Dubai","names":{"en":"Crude oil, Dubai"},"annotations":[{"type":"ORDER","text":"190","texts":{"en":"190"}}],"links":[{"rel":"self","type":"code"}]},{"id":"CRUDE_PETRO","name":"Crude oil, average","names":{"en":"Crude oil, average"},"annotations":[{"type":"ORDER","text":"170","texts":{"en":"170"}}],"links":[{"rel":"self","type":"code"}]},{"id":"CRUDE_WTI","name":"Crude oil, WTI","names":{"en":"Crude oil, WTI"},"annotations":[{"type":"ORDER","text":"200","texts":{"en":"200"}}],"links":[{"rel":"self","type":"code"}]},{"id":"DAP","name":"DAP","names":{"en":"DAP"},"annotations":[{"type":"ORDER","text":"210","texts":{"en":"210"}}],"links":[{"rel":"self","type":"code"}]},{"id":"FISH_MEAL","name":"Fish meal","names":{"en":"Fish meal"},"annotations":[{"type":"ORDER","text":"220","texts":{"en":"220"}}],"links":[{"rel":"self","type":"code"}]},{"id":"GOLD","name":"Gold","names":{"en":"Gold"},"annotations":[{"type":"ORDER","text":"230","texts":{"en":"230"}}],"links":[{"rel":"self","type":"code"}]},{"id":"GRNUT","name":"Groundnuts","names":{"en":"Groundnuts"},"annotations":[{"type":"ORDER","text":"250","texts":{"en":"250"}}],"links":[{"rel":"self","type":"code"}]},{"id":"GRNUT_OIL","name":"Groundnut oil","names":{"en":"Groundnut oil"},"annotations":[{"type":"ORDER","text":"240","texts":{"en":"240"}}],"links":[{"rel":"self","type":"code"}]},{"id":"iNATGAS","name":"Natural gas index","names":{"en":"Natural gas index"},"annotations":[{"type":"ORDER","text":"340","texts":{"en":"340"}}],"links":[{"rel":"self","type":"code"}]},{"id":"IRON_ORE","name":"Iron ore, cfr spot","names":{"en":"Iron ore, cfr spot"},"annotations":[{"type":"ORDER","text":"260","texts":{"en":"260"}}],"links":[{"rel":"self","type":"code"}]},{"id":"iSTL_JP_INDX","name":"Steel Index","names":{"en":"Steel Index"},"annotations":[{"type":"ORDER","text":"600","texts":{"en":"600"}}],"links":[{"rel":"self","type":"code"}]},{"id":"LAMB","name":"Meat, sheep","names":{"en":"Meat, sheep"},"annotations":[{"type":"ORDER","text":"330","texts":{"en":"330"}}],"links":[{"rel":"self","type":"code"}]},{"id":"LEAD","name":"Lead","names":{"en":"Lead"},"annotations":[{"type":"ORDER","text":"270","texts":{"en":"270"}}],"links":[{"rel":"self","type":"code"}]},{"id":"LOGS_CMR","name":"Logs, Cameroon","names":{"en":"Logs, Cameroon"},"annotations":[{"type":"ORDER","text":"290","texts":{"en":"290"}}],"links":[{"rel":"self","type":"code"}]},{"id":"LOGS_MYS","name":"Logs, Malaysian","names":{"en":"Logs, Malaysian"},"annotations":[{"type":"ORDER","text":"300","texts":{"en":"300"}}],"links":[{"rel":"self","type":"code"}]},{"id":"MAIZE","name":"Maize","names":{"en":"Maize"},"annotations":[{"type":"ORDER","text":"310","texts":{"en":"310"}}],"links":[{"rel":"self","type":"code"}]},{"id":"NGAS_EUR","name":"Natural gas, Europe","names":{"en":"Natural gas, Europe"},"annotations":[{"type":"ORDER","text":"350","texts":{"en":"350"}}],"links":[{"rel":"self","type":"code"}]},{"id":"NGAS_JP","name":"Liquefied natural gas, Japan","names":{"en":"Liquefied natural gas, Japan"},"annotations":[{"type":"ORDER","text":"280","texts":{"en":"280"}}],"links":[{"rel":"self","type":"code"}]},{"id":"NGAS_US","name":"Natural gas, US","names":{"en":"Natural gas, US"},"annotations":[{"type":"ORDER","text":"360","texts":{"en":"360"}}],"links":[{"rel":"self","type":"code"}]},{"id":"NICKEL","name":"Nickel","names":{"en":"Nickel"},"annotations":[{"type":"ORDER","text":"370","texts":{"en":"370"}}],"links":[{"rel":"self","type":"code"}]},{"id":"ORANGE","name":"Orange","names":{"en":"Orange"},"annotations":[{"type":"ORDER","text":"380","texts":{"en":"380"}}],"links":[{"rel":"self","type":"code"}]},{"id":"PALM_OIL","name":"Palm oil","names":{"en":"Palm oil"},"annotations":[{"type":"ORDER","text":"400","texts":{"en":"400"}}],"links":[{"rel":"self","type":"code"}]},{"id":"PHOSROCK","name":"Phosphate rock","names":{"en":"Phosphate rock"},"annotations":[{"type":"ORDER","text":"410","texts":{"en":"410"}}],"links":[{"rel":"self","type":"code"}]},{"id":"PLATINUM","name":"Platinum","names":{"en":"Platinum"},"annotations":[{"type":"ORDER","text":"420","texts":{"en":"420"}}],"links":[{"rel":"self","type":"code"}]},{"id":"PLMKRNL_OIL","name":"Palm kernel oil","names":{"en":"Palm kernel oil"},"annotations":[{"type":"ORDER","text":"390","texts":{"en":"390"}}],"links":[{"rel":"self","type":"code"}]},{"id":"PLYWOOD","name":"Plywood","names":{"en":"Plywood"},"annotations":[{"type":"ORDER","text":"430","texts":{"en":"430"}}],"links":[{"rel":"self","type":"code"}]},{"id":"POTASH","name":"Potassium chloride","names":{"en":"Potassium chloride"},"annotations":[{"type":"ORDER","text":"440","texts":{"en":"440"}}],"links":[{"rel":"self","type":"code"}]},{"id":"RICE_05","name":"Rice, Thai 5%","names":{"en":"Rice, Thai 5%"},"annotations":[{"type":"ORDER","text":"460","texts":{"en":"460"}}],"links":[{"rel":"self","type":"code"}]},{"id":"RICE_05_VNM","name":"Rice, Vietnamese 5%","names":{"en":"Rice, Vietnamese 5%"},"annotations":[{"type":"ORDER","text":"480","texts":{"en":"480"}}],"links":[{"rel":"self","type":"code"}]},{"id":"RICE_25","name":"Rice, Thai 25%","names":{"en":"Rice, Thai 25%"},"annotations":[{"type":"ORDER","text":"450","texts":{"en":"450"}}],"links":[{"rel":"self","type":"code"}]},{"id":"RICE_A1","name":"Rice, Thai A.1","names":{"en":"Rice, Thai A.1"},"annotations":[{"type":"ORDER","text":"470","texts":{"en":"470"}}],"links":[{"rel":"self","type":"code"}]},{"id":"RUBBER_TSR20","name":"Rubber, TSR20","names":{"en":"Rubber, TSR20"},"annotations":[{"type":"ORDER","text":"500","texts":{"en":"500"}}],"links":[{"rel":"self","type":"code"}]},{"id":"RUBBER1_MYSG","name":"Rubber, SGP/MYS","names":{"en":"Rubber, SGP/MYS"},"annotations":[{"type":"ORDER","text":"490","texts":{"en":"490"}}],"links":[{"rel":"self","type":"code"}]},{"id":"RUBBER1_US","name":"Rubber, US","names":{"en":"Rubber, US"},"annotations":[{"type":"ORDER","text":"510","texts":{"en":"510"}}],"links":[{"rel":"self","type":"code"}]},{"id":"SAWNWD_CMR","name":"Sawnwood, Cameroon","names":{"en":"Sawnwood, Cameroon"},"annotations":[{"type":"ORDER","text":"520","texts":{"en":"520"}}],"links":[{"rel":"self","type":"code"}]},{"id":"SAWNWD_MYS","name":"Sawnwood, Malaysian","names":{"en":"Sawnwood, Malaysian"},"annotations":[{"type":"ORDER","text":"530","texts":{"en":"530"}}],"links":[{"rel":"self","type":"code"}]},{"id":"SHRIMP_MEX","name":"Shrimps, Mexican","names":{"en":"Shrimps, Mexican"},"annotations":[{"type":"ORDER","text":"540","texts":{"en":"540"}}],"links":[{"rel":"self","type":"code"}]},{"id":"SILVER","name":"Silver","names":{"en":"Silver"},"annotations":[{"type":"ORDER","text":"550","texts":{"en":"550"}}],"links":[{"rel":"self","type":"code"}]},{"id":"SORGHUM","name":"Sorghum","names":{"en":"Sorghum"},"annotations":[{"type":"ORDER","text":"560","texts":{"en":"560"}}],"links":[{"rel":"self","type":"code"}]},{"id":"SOYBEAN_MEAL","name":"Soybean meal","names":{"en":"Soybean meal"},"annotations":[{"type":"ORDER","text":"570","texts":{"en":"570"}}],"links":[{"rel":"self","type":"code"}]},{"id":"SOYBEAN_OIL","name":"Soybean oil","names":{"en":"Soybean oil"},"annotations":[{"type":"ORDER","text":"580","texts":{"en":"580"}}],"links":[{"rel":"self","type":"code"}]},{"id":"SOYBEANS","name":"Soybeans","names":{"en":"Soybeans"},"annotations":[{"type":"ORDER","text":"590","texts":{"en":"590"}}],"links":[{"rel":"self","type":"code"}]},{"id":"STL_JP_CROLL","name":"Steel, cold rolled coilsheet","names":{"en":"Steel, cold rolled coilsheet"},"annotations":[{"type":"ORDER","text":"630","texts":{"en":"630"}}],"links":[{"rel":"self","type":"code"}]},{"id":"STL_JP_HROLL","name":"Steel, hot rolled coilsheet","names":{"en":"Steel, hot rolled coilsheet"},"annotations":[{"type":"ORDER","text":"640","texts":{"en":"640"}}],"links":[{"rel":"self","type":"code"}]},{"id":"STL_JP_REBAR","name":"Steel rebar","names":{"en":"Steel rebar"},"annotations":[{"type":"ORDER","text":"610","texts":{"en":"610"}}],"links":[{"rel":"self","type":"code"}]},{"id":"STL_JP_WIROD","name":"Steel wire rod","names":{"en":"Steel wire rod"},"annotations":[{"type":"ORDER","text":"620","texts":{"en":"620"}}],"links":[{"rel":"self","type":"code"}]},{"id":"SUGAR_EU","name":"Sugar, EU","names":{"en":"Sugar, EU"},"annotations":[{"type":"ORDER","text":"650","texts":{"en":"650"}}],"links":[{"rel":"self","type":"code"}]},{"id":"SUGAR_US","name":"Sugar, US","names":{"en":"Sugar, US"},"annotations":[{"type":"ORDER","text":"660","texts":{"en":"660"}}],"links":[{"rel":"self","type":"code"}]},{"id":"SUGAR_WLD","name":"Sugar, world","names":{"en":"Sugar, world"},"annotations":[{"type":"ORDER","text":"670","texts":{"en":"670"}}],"links":[{"rel":"self","type":"code"}]},{"id":"TEA_AVG","name":"Tea, avg 3 auctions","names":{"en":"Tea, avg 3 auctions"},"annotations":[{"type":"ORDER","text":"680","texts":{"en":"680"}}],"links":[{"rel":"self","type":"code"}]},{"id":"TEA_COLOMBO","name":"Tea, Colombo","names":{"en":"Tea, Colombo"},"annotations":[{"type":"ORDER","text":"690","texts":{"en":"690"}}],"links":[{"rel":"self","type":"code"}]},{"id":"TEA_KOLKATA","name":"Tea, Kolkata","names":{"en":"Tea, Kolkata"},"annotations":[{"type":"ORDER","text":"700","texts":{"en":"700"}}],"links":[{"rel":"self","type":"code"}]},{"id":"TEA_MOMBASA","name":"Tea, Mombasa","names":{"en":"Tea, Mombasa"},"annotations":[{"type":"ORDER","text":"710","texts":{"en":"710"}}],"links":[{"rel":"self","type":"code"}]},{"id":"Tin","name":"Tin","names":{"en":"Tin"},"annotations":[{"type":"ORDER","text":"720","texts":{"en":"720"}}],"links":[{"rel":"self","type":"code"}]},{"id":"TOBAC_US","name":"Tobacco, US import u.v.","names":{"en":"Tobacco, US import u.v."},"annotations":[{"type":"ORDER","text":"730","texts":{"en":"730"}}],"links":[{"rel":"self","type":"code"}]},{"id":"TSP","name":"TSP","names":{"en":"TSP"},"annotations":[{"type":"ORDER","text":"740","texts":{"en":"740"}}],"links":[{"rel":"self","type":"code"}]},{"id":"TUNA_SJCSI","name":"Tuna- Skipjack (loins cooked, from Solomon Islands)","names":{"en":"Tuna- Skipjack (loins cooked, from Solomon Islands)"},"annotations":[{"type":"ORDER","text":"750","texts":{"en":"750"}}],"links":[{"rel":"self","type":"code"}]},{"id":"TUNA_SJFEP","name":"Tuna-Yellow fin (loins frozen, from Eastern Pacific)","names":{"en":"Tuna-Yellow fin (loins frozen, from Eastern Pacific)"},"annotations":[{"type":"ORDER","text":"790","texts":{"en":"790"}}],"links":[{"rel":"self","type":"code"}]},{"id":"TUNA_SJWPO","name":"Tuna-Skipjack (whole, from Pacific Ocean)","names":{"en":"Tuna-Skipjack (whole, from Pacific Ocean)"},"annotations":[{"type":"ORDER","text":"770","texts":{"en":"770"}}],"links":[{"rel":"self","type":"code"}]},{"id":"TUNA_YFCSI","name":"Tuna-Yellow fin (loins cooked, from Solomon Islands)","names":{"en":"Tuna-Yellow fin (loins cooked, from Solomon Islands)"},"annotations":[{"type":"ORDER","text":"780","texts":{"en":"780"}}],"links":[{"rel":"self","type":"code"}]},{"id":"TUNA_YFFEP","name":"Tuna-Skipjack (loins frozen, from Eastern Pacific)","names":{"en":"Tuna-Skipjack (loins frozen, from Eastern Pacific)"},"annotations":[{"type":"ORDER","text":"760","texts":{"en":"760"}}],"links":[{"rel":"self","type":"code"}]},{"id":"TUNA_YFWPO","name":"Tuna-Yellow fin (whole, from Pacific Ocean)","names":{"en":"Tuna-Yellow fin (whole, from Pacific Ocean)"},"annotations":[{"type":"ORDER","text":"800","texts":{"en":"800"}}],"links":[{"rel":"self","type":"code"}]},{"id":"UREA_EE_BULK","name":"Urea","names":{"en":"Urea"},"annotations":[{"type":"ORDER","text":"810","texts":{"en":"810"}}],"links":[{"rel":"self","type":"code"}]},{"id":"WHEAT_CANADI","name":"Wheat, Canadian","names":{"en":"Wheat, Canadian"},"annotations":[{"type":"ORDER","text":"820","texts":{"en":"820"}}],"links":[{"rel":"self","type":"code"}]},{"id":"WHEAT_US_HRW","name":"Wheat, US HRW","names":{"en":"Wheat, US HRW"},"annotations":[{"type":"ORDER","text":"830","texts":{"en":"830"}}],"links":[{"rel":"self","type":"code"}]},{"id":"WHEAT_US_SRW","name":"Wheat, US SRW","names":{"en":"Wheat, US SRW"},"annotations":[{"type":"ORDER","text":"840","texts":{"en":"840"}}],"links":[{"rel":"self","type":"code"}]},{"id":"WOODPULP","name":"Woodpulp","names":{"en":"Woodpulp"},"annotations":[{"type":"ORDER","text":"850","texts":{"en":"850"}}],"links":[{"rel":"self","type":"code"}]},{"id":"Zinc","name":"Zinc","names":{"en":"Zinc"},"annotations":[{"type":"ORDER","text":"860","texts":{"en":"860"}}],"links":[{"rel":"self","type":"code"}]}]},{"id":"CL_COMMODITY_PRICES_INDICATORS","links":[{"rel":"self","type":"codelist"}],"version":"1.0","agencyID":"SPC","isFinal":false,"name":"Codelist for commodity prices indicators","names":{"en":"Codelist for commodity prices indicators"},"isPartial":false,"codes":[{"id":"COMPRICE","name":"Commodity price","names":{"en":"Commodity price"},"links":[{"rel":"self","type":"code"}]},{"id":"PRICEVAR","name":"Price variation rate","names":{"en":"Price variation rate"},"links":[{"rel":"self","type":"code"}]}]},{"id":"CL_COM_FREQ","links":[{"rel":"self","type":"codelist"}],"version":"1.0","agencyID":"SPC","isFinal":false,"name":"Common codelist for data frequencies","names":{"en":"Common codelist for data frequencies"},"isPartial":false,"codes":[{"id":"X","name":"Non-periodic","names":{"en":"Non-periodic"},"links":[{"rel":"self","type":"code"}]},{"id":"A","name":"Annual","names":{"en":"Annual"},"links":[{"rel":"self","type":"code"}]},{"id":"Q","name":"Quarterly","names":{"en":"Quarterly"},"links":[{"rel":"self","type":"code"}]},{"id":"M","name":"Monthly","names":{"en":"Monthly"},"links":[{"rel":"self","type":"code"}]}]},{"id":"CL_COM_UNIT_MEASURE","links":[{"rel":"self","type":"codelist"}],"version":"1.0","agencyID":"SPC","isFinal":false,"name":"Common codelist for units of measure","names":{"en":"Common codelist for units of measure"},"isPartial":false,"codes":[{"id":"N","name":"units","names":{"en":"units"},"links":[{"rel":"self","type":"code"}]},{"id":"PERCENT","name":"percent","names":{"en":"percent"},"links":[{"rel":"self","type":"code"}]},{"id":"KM2","name":"square kilometre","names":{"en":"square kilometre"},"links":[{"rel":"self","type":"code"}]},{"id":"POP_KM2","name":"persons per square kilometre","names":{"en":"persons per square kilometre"},"links":[{"rel":"self","type":"code"}]},{"id":"RATIO_POP","name":"ratio to total population","names":{"en":"ratio to total population"},"links":[{"rel":"self","type":"code"}]},{"id":"INDEX","name":"index","names":{"en":"index"},"links":[{"rel":"self","type":"code"}]},{"id":"PER_100000_LIVE_BIRTHS","name":"per 100,000 live births","names":{"en":"per 100,000 live births"},"links":[{"rel":"self","type":"code"}]},{"id":"PER_100000_POP","name":"per 100,000 population","names":{"en":"per 100,000 population"},"links":[{"rel":"self","type":"code"}]},{"id":"PER_1000_POP","name":"per 1,000 population","names":{"en":"per 1,000 population"},"links":[{"rel":"self","type":"code"}]},{"id":"LITRES_PURE_ALCOHOL","name":"litres pure alcohol","names":{"en":"litres pure alcohol"},"links":[{"rel":"self","type":"code"}]},{"id":"PER_100_POP","name":"per 100 population","names":{"en":"per 100 population"},"links":[{"rel":"self","type":"code"}]},{"id":"USD_MILLIONS","name":"usd in millions","names":{"en":"usd in millions"},"links":[{"rel":"self","type":"code"}]},{"id":"USD","name":"USD","names":{"en":"USD"},"links":[{"rel":"self","type":"code"}]},{"id":"T","name":"metric tons","names":{"en":"metric tons"},"links":[{"rel":"self","type":"code"}]},{"id":"CUR_LCU","name":"local currency","names":{"en":"local currency"},"links":[{"rel":"self","type":"code"}]},{"id":"USDBBL","name":"$/bbl","names":{"en":"$/bbl"},"links":[{"rel":"self","type":"code"}]},{"id":"USDMT","name":"$/mt","names":{"en":"$/mt"},"links":[{"rel":"self","type":"code"}]},{"id":"USDMMBTU","name":"$/mmbtu","names":{"en":"$/mmbtu"},"links":[{"rel":"self","type":"code"}]},{"id":"BASE2010","name":"2010=100","names":{"en":"2010=100"},"links":[{"rel":"self","type":"code"}]},{"id":"USDKG","name":"$/kg","names":{"en":"$/kg"},"links":[{"rel":"self","type":"code"}]},{"id":"USDCM","name":"$/cubic meter","names":{"en":"$/cubic meter"},"links":[{"rel":"self","type":"code"}]},{"id":"USHSHEET","name":"¢/sheet","names":{"en":"¢/sheet"},"links":[{"rel":"self","type":"code"}]},{"id":"USDDMTU","name":"$/dmtu","names":{"en":"$/dmtu"},"links":[{"rel":"self","type":"code"}]},{"id":"USDTROYOZ","name":"$/troy oz","names":{"en":"$/troy oz"},"links":[{"rel":"self","type":"code"}]},{"id":"BASE2005","name":"2005=100","names":{"en":"2005=100"},"links":[{"rel":"self","type":"code"}]},{"id":"CENTSKG","name":"cents/kg","names":{"en":"cents/kg"},"links":[{"rel":"self","type":"code"}]},{"id":"NZD","name":"New Zealand Dollar","names":{"en":"New Zealand Dollar"},"links":[{"rel":"self","type":"code"}]},{"id":"FJD","name":"Fiji Dollar","names":{"en":"Fiji Dollar"},"links":[{"rel":"self","type":"code"}]},{"id":"AUD","name":"Australian Dollar","names":{"en":"Australian Dollar"},"links":[{"rel":"self","type":"code"}]},{"id":"XPF","name":"CFP Franc","names":{"en":"CFP Franc"},"links":[{"rel":"self","type":"code"}]},{"id":"PGK","name":"Kina","names":{"en":"Kina"},"links":[{"rel":"self","type":"code"}]},{"id":"SBD","name":"Solomon Islands Dollar","names":{"en":"Solomon Islands Dollar"},"links":[{"rel":"self","type":"code"}]},{"id":"TOP","name":"Pa’anga","names":{"en":"Pa’anga"},"links":[{"rel":"self","type":"code"}]},{"id":"VUV","name":"Vatu","names":{"en":"Vatu"},"links":[{"rel":"self","type":"code"}]},{"id":"WST","name":"Tala","names":{"en":"Tala"},"links":[{"rel":"self","type":"code"}]},{"id":"USD_POP","name":"USD per person","names":{"en":"USD per person"},"links":[{"rel":"self","type":"code"}]},{"id":"NZD_POP","name":"New Zealand Dollar per person","names":{"en":"New Zealand Dollar per person"},"links":[{"rel":"self","type":"code"}]},{"id":"FJD_POP","name":"Fiji Dollar per person","names":{"en":"Fiji Dollar per person"},"links":[{"rel":"self","type":"code"}]},{"id":"AUD_POP","name":"Australian Dollar per person","names":{"en":"Australian Dollar per person"},"links":[{"rel":"self","type":"code"}]},{"id":"XPF_POP","name":"CFP Franc per person","names":{"en":"CFP Franc per person"},"links":[{"rel":"self","type":"code"}]},{"id":"PGK_POP","name":"Kina per person","names":{"en":"Kina per person"},"links":[{"rel":"self","type":"code"}]},{"id":"SBD_POP","name":"Solomon Islands Dollar per person","names":{"en":"Solomon Islands Dollar per person"},"links":[{"rel":"self","type":"code"}]},{"id":"TOP_POP","name":"Pa’anga per person","names":{"en":"Pa’anga per person"},"links":[{"rel":"self","type":"code"}]},{"id":"VUV_POP","name":"Vatu per person","names":{"en":"Vatu per person"},"links":[{"rel":"self","type":"code"}]},{"id":"WST_POP","name":"Tala per person","names":{"en":"Tala per person"},"links":[{"rel":"self","type":"code"}]},{"id":"GY","name":"Growth Rate, Over 1 Year","names":{"en":"Growth Rate, Over 1 Year"},"links":[{"rel":"self","type":"code"}]},{"id":"USD_R_POP","name":"Per Capita, US $, Exchange Rates Converted","names":{"en":"Per Capita, US $, Exchange Rates Converted"},"links":[{"rel":"self","type":"code"}]},{"id":"PERCENT_GDP","name":"As a % of GDP","names":{"en":"As a % of GDP"},"links":[{"rel":"self","type":"code"}]},{"id":"YR","name":"Years","names":{"en":"Years"},"links":[{"rel":"self","type":"code"}]},{"id":"PER_1000_LIVE_BIRTHS","name":"per 1,000 live births","names":{"en":"per 1,000 live births"},"links":[{"rel":"self","type":"code"}]},{"id":"RF","name":"Relative frequency (% of total)","names":{"en":"Relative frequency (% of total)"},"links":[{"rel":"self","type":"code"}]},{"id":"g","name":"g","names":{"en":"g"},"links":[{"rel":"self","type":"code"}]},{"id":"kcal","name":"kcal","names":{"en":"kcal"},"links":[{"rel":"self","type":"code"}]},{"id":"kj","name":"kj","names":{"en":"kj"},"links":[{"rel":"self","type":"code"}]},{"id":"mg","name":"mg","names":{"en":"mg"},"links":[{"rel":"self","type":"code"}]},{"id":"YEAR","name":"years","names":{"en":"years"},"links":[{"rel":"self","type":"code"}]},{"id":"BOOL","name":"Boolean or binary measure","names":{"en":"Boolean or binary measure"},"links":[{"rel":"self","type":"code"}]},{"id":"CON_USD","name":"Constant USD","names":{"en":"Constant USD"},"links":[{"rel":"self","type":"code"}]},{"id":"HA","name":"Hectares","names":{"en":"Hectares"},"links":[{"rel":"self","type":"code"}]},{"id":"MJ_PER_GDP_CON_PPP_USD","name":"Megajoules per USD constant PPP GDP","names":{"en":"Megajoules per USD constant PPP GDP"},"links":[{"rel":"self","type":"code"}]}]}],"dataStructures":[{"id":"DSD_COMMODITY_PRICES","links":[{"rel":"self","type":"datastructure"}],"version":"1.0","agencyID":"SPC","isFinal":false,"name":"DSD for commodity prices","names":{"en":"DSD for commodity prices"},"dataStructureComponents":{"attributeList":{"id":"AttributeDescriptor","links":[{"rel":"self","type":"attributedescriptor"}],"attributes":[{"id":"DATA_SOURCE","links":[{"rel":"self","type":"dataattribute"}],"conceptIdentity":"urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=SPC:CS_COMMON(2.0).DATA_SOURCE","localRepresentation":{"textFormat":{"textType":"String","isSequence":false,"isMultiLingual":false}},"assignmentStatus":"Conditional","attributeRelationship":{"dimensions":["FREQ","COMMODITY","INDICATOR"]}},{"id":"UNIT_MEASURE","links":[{"rel":"self","type":"dataattribute"}],"conceptIdentity":"urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=SPC:CS_COMMON(2.0).UNIT_MEASURE","localRepresentation":{"enumeration":"urn:sdmx:org.sdmx.infomodel.codelist.Codelist=SPC:CL_COM_UNIT_MEASURE(1.0)"},"assignmentStatus":"Conditional","attributeRelationship":{"dimensions":["COMMODITY","INDICATOR"]}},{"id":"OBS_COMMENT","links":[{"rel":"self","type":"dataattribute"}],"conceptIdentity":"urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=SPC:CS_COMMON(2.0).COMMENT","localRepresentation":{"textFormat":{"textType":"String","isSequence":false,"isMultiLingual":false}},"assignmentStatus":"Conditional","attributeRelationship":{"primaryMeasure":"OBS_VALUE"}}]},"dimensionList":{"id":"DimensionDescriptor","links":[{"rel":"self","type":"dimensiondescriptor"}],"dimensions":[{"id":"FREQ","links":[{"rel":"self","type":"dimension"}],"position":0,"type":"Dimension","conceptIdentity":"urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=SPC:CS_COMMON(2.0).FREQ","localRepresentation":{"enumeration":"urn:sdmx:org.sdmx.infomodel.codelist.Codelist=SPC:CL_COM_FREQ(1.0)"}},{"id":"COMMODITY","links":[{"rel":"self","type":"dimension"}],"position":1,"type":"Dimension","conceptIdentity":"urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=SPC:CS_COMMON(2.0).COMMODITY","localRepresentation":{"enumeration":"urn:sdmx:org.sdmx.infomodel.codelist.Codelist=SPC:CL_COMMODITY_PRICES(1.0)"}},{"id":"INDICATOR","links":[{"rel":"self","type":"dimension"}],"position":2,"type":"Dimension","conceptIdentity":"urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=SPC:CS_COMMON(2.0).INDICATOR","localRepresentation":{"enumeration":"urn:sdmx:org.sdmx.infomodel.codelist.Codelist=SPC:CL_COMMODITY_PRICES_INDICATORS(1.0)"}}],"timeDimensions":[{"id":"TIME_PERIOD","links":[{"rel":"self","type":"timedimension"}],"position":3,"type":"TimeDimension","conceptIdentity":"urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=SPC:CS_COMMON(2.0).TIME_PERIOD","localRepresentation":{"textFormat":{"textType":"ObservationalTimePeriod","isSequence":false,"isMultiLingual":false}}}]},"measureList":{"id":"MeasureDescriptor","links":[{"rel":"self","type":"measuredescriptor"}],"primaryMeasure":{"id":"OBS_VALUE","links":[{"rel":"self","type":"primarymeasure"}],"conceptIdentity":"urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=SPC:CS_COMMON(2.0).OBS_VALUE"}}}}],"contentConstraints":[{"id":"CON_COMMODITY_PRICES","links":[{"rel":"self","type":"contentconstraint"}],"version":"1.0","agencyID":"SPC","isFinal":false,"name":"Content constraint for DF_COMMODITY_PRICES","names":{"en":"Content constraint for DF_COMMODITY_PRICES"},"type":"Allowed","constraintAttachment":{"dataflows":["urn:sdmx:org.sdmx.infomodel.datastructure.Dataflow=SPC:DF_COMMODITY_PRICES(1.0)"]},"cubeRegions":[{"isIncluded":true,"keyValues":[{"id":"FREQ","values":["A","M"]},{"id":"INDICATOR","values":["COMPRICE","PRICEVAR"]},{"id":"COMMODITY","values":["COCOA","COCONUT_OIL","COPRA","CRUDE_BRENT","CRUDE_PETRO","GOLD","LOGS_CMR","LOGS_MYS","NGAS_JP","NICKEL","PALM_OIL","RICE_05","RICE_05_VNM","RICE_25","RICE_A1","SILVER","SUGAR_EU","SUGAR_US","SUGAR_WLD","TUNA_SJCSI","TUNA_SJFEP","TUNA_SJWPO","TUNA_YFCSI","TUNA_YFFEP","TUNA_YFWPO","WHEAT_US_HRW","WHEAT_US_SRW","WOODPULP"]}]}]},{"id":"CR_A_DF_COMMODITY_PRICES","links":[{"rel":"self","type":"contentconstraint"}],"version":"1.0","agencyID":"SPC","isFinal":false,"name":"Availability (A) for DF_COMMODITY_PRICES","names":{"en":"Availability (A) for DF_COMMODITY_PRICES"},"annotations":[{"title":"A","type":"ReleaseVersion"}],"type":"Actual","constraintAttachment":{"dataflows":["urn:sdmx:org.sdmx.infomodel.datastructure.Dataflow=SPC:DF_COMMODITY_PRICES(1.0)"]},"cubeRegions":[{"isIncluded":true,"keyValues":[{"id":"FREQ","values":["A","M"]},{"id":"COMMODITY","values":["COCOA","COCONUT_OIL","COPRA","CRUDE_BRENT","CRUDE_PETRO","GOLD","LOGS_CMR","LOGS_MYS","NGAS_JP","NICKEL","PALM_OIL","RICE_05","RICE_05_VNM","RICE_25","RICE_A1","SILVER","SUGAR_EU","SUGAR_US","SUGAR_WLD","TUNA_SJCSI","TUNA_SJFEP","TUNA_SJWPO","TUNA_YFCSI","TUNA_YFFEP","TUNA_YFWPO","WHEAT_US_HRW","WHEAT_US_SRW","WOODPULP"]},{"id":"INDICATOR","values":["COMPRICE","PRICEVAR"]},{"id":"TIME_PERIOD","timeRange":{"startPeriod":{"period":"1960-01-01T00:00:00Z","isInclusive":true},"endPeriod":{"period":"2020-08-31T23:59:59Z","isInclusive":true}}}]}]}]},"meta":{"schema":"https://raw.githubusercontent.com/sdmx-twg/sdmx-json/develop/structure-message/tools/schemas/1.0/sdmx-json-structure-schema.json","content-languages":["en"],"id":"IDREF2929","prepared":"2020-09-22T03:36:52.0923177Z","test":false,"sender":{"id":"Unknown"},"receiver":[{"id":"Unknown"}]}} +{ + "data": { + "dataflows": [ + { + "id": "DF_COMMODITY_PRICES", + "links": [ + { "rel": "self", "type": "dataflow" }, + { "rel": "structure", "type": "datastructure" } + ], + "version": "1.0", + "agencyID": "SPC", + "isFinal": false, + "name": "Selected International Commodity Prices", + "names": { "en": "Selected International Commodity Prices" }, + "description": "Nominal prices in USD for selected key international commodity prices relevant to Pacific Island Countries and Territories, extracted from World bank Commodity Prices (« pink sheets ») and from FAO GLOBEFISH European Fish Price Report.", + "descriptions": { + "en": "Nominal prices in USD for selected key international commodity prices relevant to Pacific Island Countries and Territories, extracted from World bank Commodity Prices (« pink sheets ») and from FAO GLOBEFISH European Fish Price Report." + }, + "annotations": [ + { + "type": "NonProductionDataflow", + "text": "true", + "texts": { "en": "true" } + }, + { "title": "COMMODITY", "type": "LAYOUT_ROW" }, + { "title": "TIME_PERIOD", "type": "LAYOUT_COLUMN" }, + { + "title": "FREQ=A,INDICATOR=COMPRICE,TIME_PERIOD_START=2010,TIME_PERIOD_END=2020", + "type": "DEFAULT" + }, + { + "type": "EXT_RESOURCE", + "text": "Metadata|http://purl.org/spc/digilib/doc/vbwmj|https://sdd.spc.int/themes/custom/sdd/images/icons/metadata.png", + "texts": { + "en": "Metadata|http://purl.org/spc/digilib/doc/vbwmj|https://sdd.spc.int/themes/custom/sdd/images/icons/metadata.png" + } + } + ], + "structure": "urn:sdmx:org.sdmx.infomodel.datastructure.DataStructure=SPC:DSD_COMMODITY_PRICES(1.0)" + } + ], + "categorySchemes": [ + { + "id": "CAS_COM_TOPIC", + "links": [{ "rel": "self", "type": "categoryscheme" }], + "version": "1.0", + "agencyID": "SPC", + "isFinal": false, + "name": "Topic", + "names": { "en": "Topic" }, + "isPartial": false, + "categories": [ + { + "id": "ECO", + "name": "Economy", + "names": { "en": "Economy" }, + "annotations": [ + { "type": "ORDER", "text": "10", "texts": { "en": "10" } } + ], + "links": [{ "rel": "self", "type": "category" }] + }, + { + "id": "ENV", + "name": "Environment", + "names": { "en": "Environment" }, + "annotations": [ + { "type": "ORDER", "text": "20", "texts": { "en": "20" } } + ], + "links": [{ "rel": "self", "type": "category" }] + }, + { + "id": "HEA", + "name": "Health", + "names": { "en": "Health" }, + "annotations": [ + { "type": "ORDER", "text": "30", "texts": { "en": "30" } } + ], + "links": [{ "rel": "self", "type": "category" }] + }, + { + "id": "IND", + "name": "Industry and Services", + "names": { "en": "Industry and Services" }, + "annotations": [ + { "type": "ORDER", "text": "40", "texts": { "en": "40" } } + ], + "links": [{ "rel": "self", "type": "category" }] + }, + { + "id": "POP", + "name": "Population", + "names": { "en": "Population" }, + "annotations": [ + { "type": "ORDER", "text": "50", "texts": { "en": "50" } } + ], + "links": [{ "rel": "self", "type": "category" }] + }, + { + "id": "SOC", + "name": "Social", + "names": { "en": "Social" }, + "annotations": [ + { "type": "ORDER", "text": "60", "texts": { "en": "60" } } + ], + "links": [{ "rel": "self", "type": "category" }] + }, + { + "id": "XDO", + "name": "Multi-domain", + "names": { "en": "Multi-domain" }, + "annotations": [ + { "type": "ORDER", "text": "70", "texts": { "en": "70" } } + ], + "links": [{ "rel": "self", "type": "category" }] + } + ] + } + ], + "categorisations": [ + { + "id": "CAT_COMMODITY_PRICES", + "links": [{ "rel": "self", "type": "categorisation" }], + "version": "1.0", + "agencyID": "SPC", + "isFinal": false, + "name": "Categorisation for the Costal Population dataflow", + "names": { "en": "Categorisation for the Costal Population dataflow" }, + "source": "urn:sdmx:org.sdmx.infomodel.datastructure.Dataflow=SPC:DF_COMMODITY_PRICES(1.0)", + "target": "urn:sdmx:org.sdmx.infomodel.categoryscheme.Category=SPC:CAS_COM_TOPIC(1.0).ECO" + } + ], + "conceptSchemes": [ + { + "id": "CS_COMMON", + "links": [{ "rel": "self", "type": "conceptscheme" }], + "version": "2.0", + "agencyID": "SPC", + "isFinal": false, + "name": "Common concepts for SPC .Stat data", + "names": { "en": "Common concepts for SPC .Stat data" }, + "isPartial": false, + "concepts": [ + { + "id": "TIME_PERIOD", + "name": "Time", + "names": { "en": "Time" }, + "links": [{ "rel": "self", "type": "concept" }] + }, + { + "id": "FREQ", + "name": "Frequency", + "names": { "en": "Frequency" }, + "links": [{ "rel": "self", "type": "concept" }] + }, + { + "id": "OBS_VALUE", + "name": "Observation value", + "names": { "en": "Observation value" }, + "links": [{ "rel": "self", "type": "concept" }] + }, + { + "id": "OBS_SATUS", + "name": "Observation Status", + "names": { "en": "Observation Status" }, + "links": [{ "rel": "self", "type": "concept" }] + }, + { + "id": "CONF_STATUS", + "name": "Confidentiality status", + "names": { "en": "Confidentiality status" }, + "links": [{ "rel": "self", "type": "concept" }] + }, + { + "id": "UNIT_MEASURE", + "name": "Unit of measure", + "names": { "en": "Unit of measure" }, + "links": [{ "rel": "self", "type": "concept" }] + }, + { + "id": "UNIT_MULT", + "name": "Unit multiplier", + "names": { "en": "Unit multiplier" }, + "links": [{ "rel": "self", "type": "concept" }] + }, + { + "id": "COMMENT", + "name": "Comment", + "names": { "en": "Comment" }, + "links": [{ "rel": "self", "type": "concept" }] + }, + { + "id": "DECIMALS", + "name": "Decimals", + "names": { "en": "Decimals" }, + "links": [{ "rel": "self", "type": "concept" }] + }, + { + "id": "GEO_AREA", + "name": "Geographical area", + "names": { "en": "Geographical area" }, + "links": [{ "rel": "self", "type": "concept" }] + }, + { + "id": "GEO_PICT", + "name": "Pacific Island Countries and territories", + "names": { "en": "Pacific Island Countries and territories" }, + "links": [{ "rel": "self", "type": "concept" }] + }, + { + "id": "SEX", + "name": "Sex", + "names": { "en": "Sex" }, + "links": [{ "rel": "self", "type": "concept" }] + }, + { + "id": "AGE", + "name": "Age", + "names": { "en": "Age" }, + "links": [{ "rel": "self", "type": "concept" }] + }, + { + "id": "CURRENCY", + "name": "Currency", + "names": { "en": "Currency" }, + "links": [{ "rel": "self", "type": "concept" }] + }, + { + "id": "DATA_SOURCE", + "name": "Data source", + "names": { "en": "Data source" }, + "links": [{ "rel": "self", "type": "concept" }] + }, + { + "id": "INDICATOR", + "name": "Indicator", + "names": { "en": "Indicator" }, + "links": [{ "rel": "self", "type": "concept" }] + }, + { + "id": "COMMODITY", + "name": "Commodity", + "names": { "en": "Commodity" }, + "links": [{ "rel": "self", "type": "concept" }] + }, + { + "id": "URBANIZATION", + "name": "Urbanization", + "names": { "en": "Urbanization" }, + "links": [{ "rel": "self", "type": "concept" }] + }, + { + "id": "EDUCATION", + "name": "Education level", + "names": { "en": "Education level" }, + "links": [{ "rel": "self", "type": "concept" }] + }, + { + "id": "OCCUPATION", + "name": "Occupation", + "names": { "en": "Occupation" }, + "links": [{ "rel": "self", "type": "concept" }] + }, + { + "id": "DISABILITY", + "name": "Disability", + "names": { "en": "Disability" }, + "links": [{ "rel": "self", "type": "concept" }] + }, + { + "id": "INCOME", + "name": "Income", + "names": { "en": "Income" }, + "links": [{ "rel": "self", "type": "concept" }] + }, + { + "id": "COMPOSITE_BREAKDOWN", + "name": "Composite breakdown", + "names": { "en": "Composite breakdown" }, + "links": [{ "rel": "self", "type": "concept" }] + }, + { + "id": "ECONOMIC_SECTOR", + "name": "Economic sector", + "names": { "en": "Economic sector" }, + "links": [{ "rel": "self", "type": "concept" }] + }, + { + "id": "LABOUR_FORCE_STATUS", + "name": "Labour force status", + "names": { "en": "Labour force status" }, + "links": [{ "rel": "self", "type": "concept" }] + }, + { + "id": "EMPLOYMENT_STATUS", + "name": "Employment status", + "names": { "en": "Employment status" }, + "links": [{ "rel": "self", "type": "concept" }] + }, + { + "id": "BASE_PER", + "name": "Base period", + "names": { "en": "Base period" }, + "links": [{ "rel": "self", "type": "concept" }] + }, + { + "id": "TIME_FORMAT", + "name": "Time format", + "names": { "en": "Time format" }, + "links": [{ "rel": "self", "type": "concept" }] + } + ] + } + ], + "codelists": [ + { + "id": "CL_COMMODITY_PRICES", + "links": [{ "rel": "self", "type": "codelist" }], + "version": "1.0", + "agencyID": "SPC", + "isFinal": false, + "name": "Code list for commodity prices", + "names": { "en": "Code list for commodity prices" }, + "isPartial": false, + "codes": [ + { + "id": "ALUMINUM", + "name": "Aluminum", + "names": { "en": "Aluminum" }, + "annotations": [ + { "type": "ORDER", "text": "10", "texts": { "en": "10" } } + ], + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "BANANA_EU", + "name": "Banana, Europe", + "names": { "en": "Banana, Europe" }, + "annotations": [ + { "type": "ORDER", "text": "20", "texts": { "en": "20" } } + ], + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "BANANA_US", + "name": "Banana, US", + "names": { "en": "Banana, US" }, + "annotations": [ + { "type": "ORDER", "text": "30", "texts": { "en": "30" } } + ], + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "BARLEY", + "name": "Barley", + "names": { "en": "Barley" }, + "annotations": [ + { "type": "ORDER", "text": "40", "texts": { "en": "40" } } + ], + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "BEEF", + "name": "Beef", + "names": { "en": "Beef" }, + "annotations": [ + { "type": "ORDER", "text": "50", "texts": { "en": "50" } } + ], + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "CHICKEN", + "name": "Meat, chicken", + "names": { "en": "Meat, chicken" }, + "annotations": [ + { "type": "ORDER", "text": "320", "texts": { "en": "320" } } + ], + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "COAL_AUS", + "name": "Coal, Australian", + "names": { "en": "Coal, Australian" }, + "annotations": [ + { "type": "ORDER", "text": "60", "texts": { "en": "60" } } + ], + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "COAL_COL", + "name": "Coal, Colombian", + "names": { "en": "Coal, Colombian" }, + "annotations": [ + { "type": "ORDER", "text": "70", "texts": { "en": "70" } } + ], + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "COAL_SAFRICA", + "name": "Coal, South Afican", + "names": { "en": "Coal, South Afican" }, + "annotations": [ + { "type": "ORDER", "text": "80", "texts": { "en": "80" } } + ], + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "COCOA", + "name": "Cocoa", + "names": { "en": "Cocoa" }, + "annotations": [ + { "type": "ORDER", "text": "90", "texts": { "en": "90" } } + ], + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "COCONUT_OIL", + "name": "Coconut oil", + "names": { "en": "Coconut oil" }, + "annotations": [ + { "type": "ORDER", "text": "100", "texts": { "en": "100" } } + ], + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "COFFEE_ARABIC", + "name": "Coffee, Arabica", + "names": { "en": "Coffee, Arabica" }, + "annotations": [ + { "type": "ORDER", "text": "110", "texts": { "en": "110" } } + ], + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "COFFEE_ROBUS", + "name": "Coffee, Robusta", + "names": { "en": "Coffee, Robusta" }, + "annotations": [ + { "type": "ORDER", "text": "120", "texts": { "en": "120" } } + ], + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "COPPER", + "name": "Copper", + "names": { "en": "Copper" }, + "annotations": [ + { "type": "ORDER", "text": "130", "texts": { "en": "130" } } + ], + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "COPRA", + "name": "Copra", + "names": { "en": "Copra" }, + "annotations": [ + { "type": "ORDER", "text": "140", "texts": { "en": "140" } } + ], + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "COTTON_A_INDX", + "name": "Cotton, A Index", + "names": { "en": "Cotton, A Index" }, + "annotations": [ + { "type": "ORDER", "text": "150", "texts": { "en": "150" } } + ], + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "COTTON_MEMPH", + "name": "Cotton, Memphis", + "names": { "en": "Cotton, Memphis" }, + "annotations": [ + { "type": "ORDER", "text": "160", "texts": { "en": "160" } } + ], + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "CRUDE_BRENT", + "name": "Crude oil, Brent", + "names": { "en": "Crude oil, Brent" }, + "annotations": [ + { "type": "ORDER", "text": "180", "texts": { "en": "180" } } + ], + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "CRUDE_DUBAI", + "name": "Crude oil, Dubai", + "names": { "en": "Crude oil, Dubai" }, + "annotations": [ + { "type": "ORDER", "text": "190", "texts": { "en": "190" } } + ], + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "CRUDE_PETRO", + "name": "Crude oil, average", + "names": { "en": "Crude oil, average" }, + "annotations": [ + { "type": "ORDER", "text": "170", "texts": { "en": "170" } } + ], + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "CRUDE_WTI", + "name": "Crude oil, WTI", + "names": { "en": "Crude oil, WTI" }, + "annotations": [ + { "type": "ORDER", "text": "200", "texts": { "en": "200" } } + ], + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "DAP", + "name": "DAP", + "names": { "en": "DAP" }, + "annotations": [ + { "type": "ORDER", "text": "210", "texts": { "en": "210" } } + ], + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "FISH_MEAL", + "name": "Fish meal", + "names": { "en": "Fish meal" }, + "annotations": [ + { "type": "ORDER", "text": "220", "texts": { "en": "220" } } + ], + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "GOLD", + "name": "Gold", + "names": { "en": "Gold" }, + "annotations": [ + { "type": "ORDER", "text": "230", "texts": { "en": "230" } } + ], + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "GRNUT", + "name": "Groundnuts", + "names": { "en": "Groundnuts" }, + "annotations": [ + { "type": "ORDER", "text": "250", "texts": { "en": "250" } } + ], + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "GRNUT_OIL", + "name": "Groundnut oil", + "names": { "en": "Groundnut oil" }, + "annotations": [ + { "type": "ORDER", "text": "240", "texts": { "en": "240" } } + ], + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "iNATGAS", + "name": "Natural gas index", + "names": { "en": "Natural gas index" }, + "annotations": [ + { "type": "ORDER", "text": "340", "texts": { "en": "340" } } + ], + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "IRON_ORE", + "name": "Iron ore, cfr spot", + "names": { "en": "Iron ore, cfr spot" }, + "annotations": [ + { "type": "ORDER", "text": "260", "texts": { "en": "260" } } + ], + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "iSTL_JP_INDX", + "name": "Steel Index", + "names": { "en": "Steel Index" }, + "annotations": [ + { "type": "ORDER", "text": "600", "texts": { "en": "600" } } + ], + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "LAMB", + "name": "Meat, sheep", + "names": { "en": "Meat, sheep" }, + "annotations": [ + { "type": "ORDER", "text": "330", "texts": { "en": "330" } } + ], + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "LEAD", + "name": "Lead", + "names": { "en": "Lead" }, + "annotations": [ + { "type": "ORDER", "text": "270", "texts": { "en": "270" } } + ], + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "LOGS_CMR", + "name": "Logs, Cameroon", + "names": { "en": "Logs, Cameroon" }, + "annotations": [ + { "type": "ORDER", "text": "290", "texts": { "en": "290" } } + ], + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "LOGS_MYS", + "name": "Logs, Malaysian", + "names": { "en": "Logs, Malaysian" }, + "annotations": [ + { "type": "ORDER", "text": "300", "texts": { "en": "300" } } + ], + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "MAIZE", + "name": "Maize", + "names": { "en": "Maize" }, + "annotations": [ + { "type": "ORDER", "text": "310", "texts": { "en": "310" } } + ], + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "NGAS_EUR", + "name": "Natural gas, Europe", + "names": { "en": "Natural gas, Europe" }, + "annotations": [ + { "type": "ORDER", "text": "350", "texts": { "en": "350" } } + ], + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "NGAS_JP", + "name": "Liquefied natural gas, Japan", + "names": { "en": "Liquefied natural gas, Japan" }, + "annotations": [ + { "type": "ORDER", "text": "280", "texts": { "en": "280" } } + ], + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "NGAS_US", + "name": "Natural gas, US", + "names": { "en": "Natural gas, US" }, + "annotations": [ + { "type": "ORDER", "text": "360", "texts": { "en": "360" } } + ], + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "NICKEL", + "name": "Nickel", + "names": { "en": "Nickel" }, + "annotations": [ + { "type": "ORDER", "text": "370", "texts": { "en": "370" } } + ], + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "ORANGE", + "name": "Orange", + "names": { "en": "Orange" }, + "annotations": [ + { "type": "ORDER", "text": "380", "texts": { "en": "380" } } + ], + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "PALM_OIL", + "name": "Palm oil", + "names": { "en": "Palm oil" }, + "annotations": [ + { "type": "ORDER", "text": "400", "texts": { "en": "400" } } + ], + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "PHOSROCK", + "name": "Phosphate rock", + "names": { "en": "Phosphate rock" }, + "annotations": [ + { "type": "ORDER", "text": "410", "texts": { "en": "410" } } + ], + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "PLATINUM", + "name": "Platinum", + "names": { "en": "Platinum" }, + "annotations": [ + { "type": "ORDER", "text": "420", "texts": { "en": "420" } } + ], + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "PLMKRNL_OIL", + "name": "Palm kernel oil", + "names": { "en": "Palm kernel oil" }, + "annotations": [ + { "type": "ORDER", "text": "390", "texts": { "en": "390" } } + ], + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "PLYWOOD", + "name": "Plywood", + "names": { "en": "Plywood" }, + "annotations": [ + { "type": "ORDER", "text": "430", "texts": { "en": "430" } } + ], + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "POTASH", + "name": "Potassium chloride", + "names": { "en": "Potassium chloride" }, + "annotations": [ + { "type": "ORDER", "text": "440", "texts": { "en": "440" } } + ], + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "RICE_05", + "name": "Rice, Thai 5%", + "names": { "en": "Rice, Thai 5%" }, + "annotations": [ + { "type": "ORDER", "text": "460", "texts": { "en": "460" } } + ], + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "RICE_05_VNM", + "name": "Rice, Vietnamese 5%", + "names": { "en": "Rice, Vietnamese 5%" }, + "annotations": [ + { "type": "ORDER", "text": "480", "texts": { "en": "480" } } + ], + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "RICE_25", + "name": "Rice, Thai 25%", + "names": { "en": "Rice, Thai 25%" }, + "annotations": [ + { "type": "ORDER", "text": "450", "texts": { "en": "450" } } + ], + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "RICE_A1", + "name": "Rice, Thai A.1", + "names": { "en": "Rice, Thai A.1" }, + "annotations": [ + { "type": "ORDER", "text": "470", "texts": { "en": "470" } } + ], + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "RUBBER_TSR20", + "name": "Rubber, TSR20", + "names": { "en": "Rubber, TSR20" }, + "annotations": [ + { "type": "ORDER", "text": "500", "texts": { "en": "500" } } + ], + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "RUBBER1_MYSG", + "name": "Rubber, SGP/MYS", + "names": { "en": "Rubber, SGP/MYS" }, + "annotations": [ + { "type": "ORDER", "text": "490", "texts": { "en": "490" } } + ], + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "RUBBER1_US", + "name": "Rubber, US", + "names": { "en": "Rubber, US" }, + "annotations": [ + { "type": "ORDER", "text": "510", "texts": { "en": "510" } } + ], + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "SAWNWD_CMR", + "name": "Sawnwood, Cameroon", + "names": { "en": "Sawnwood, Cameroon" }, + "annotations": [ + { "type": "ORDER", "text": "520", "texts": { "en": "520" } } + ], + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "SAWNWD_MYS", + "name": "Sawnwood, Malaysian", + "names": { "en": "Sawnwood, Malaysian" }, + "annotations": [ + { "type": "ORDER", "text": "530", "texts": { "en": "530" } } + ], + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "SHRIMP_MEX", + "name": "Shrimps, Mexican", + "names": { "en": "Shrimps, Mexican" }, + "annotations": [ + { "type": "ORDER", "text": "540", "texts": { "en": "540" } } + ], + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "SILVER", + "name": "Silver", + "names": { "en": "Silver" }, + "annotations": [ + { "type": "ORDER", "text": "550", "texts": { "en": "550" } } + ], + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "SORGHUM", + "name": "Sorghum", + "names": { "en": "Sorghum" }, + "annotations": [ + { "type": "ORDER", "text": "560", "texts": { "en": "560" } } + ], + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "SOYBEAN_MEAL", + "name": "Soybean meal", + "names": { "en": "Soybean meal" }, + "annotations": [ + { "type": "ORDER", "text": "570", "texts": { "en": "570" } } + ], + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "SOYBEAN_OIL", + "name": "Soybean oil", + "names": { "en": "Soybean oil" }, + "annotations": [ + { "type": "ORDER", "text": "580", "texts": { "en": "580" } } + ], + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "SOYBEANS", + "name": "Soybeans", + "names": { "en": "Soybeans" }, + "annotations": [ + { "type": "ORDER", "text": "590", "texts": { "en": "590" } } + ], + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "STL_JP_CROLL", + "name": "Steel, cold rolled coilsheet", + "names": { "en": "Steel, cold rolled coilsheet" }, + "annotations": [ + { "type": "ORDER", "text": "630", "texts": { "en": "630" } } + ], + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "STL_JP_HROLL", + "name": "Steel, hot rolled coilsheet", + "names": { "en": "Steel, hot rolled coilsheet" }, + "annotations": [ + { "type": "ORDER", "text": "640", "texts": { "en": "640" } } + ], + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "STL_JP_REBAR", + "name": "Steel rebar", + "names": { "en": "Steel rebar" }, + "annotations": [ + { "type": "ORDER", "text": "610", "texts": { "en": "610" } } + ], + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "STL_JP_WIROD", + "name": "Steel wire rod", + "names": { "en": "Steel wire rod" }, + "annotations": [ + { "type": "ORDER", "text": "620", "texts": { "en": "620" } } + ], + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "SUGAR_EU", + "name": "Sugar, EU", + "names": { "en": "Sugar, EU" }, + "annotations": [ + { "type": "ORDER", "text": "650", "texts": { "en": "650" } } + ], + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "SUGAR_US", + "name": "Sugar, US", + "names": { "en": "Sugar, US" }, + "annotations": [ + { "type": "ORDER", "text": "660", "texts": { "en": "660" } } + ], + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "SUGAR_WLD", + "name": "Sugar, world", + "names": { "en": "Sugar, world" }, + "annotations": [ + { "type": "ORDER", "text": "670", "texts": { "en": "670" } } + ], + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "TEA_AVG", + "name": "Tea, avg 3 auctions", + "names": { "en": "Tea, avg 3 auctions" }, + "annotations": [ + { "type": "ORDER", "text": "680", "texts": { "en": "680" } } + ], + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "TEA_COLOMBO", + "name": "Tea, Colombo", + "names": { "en": "Tea, Colombo" }, + "annotations": [ + { "type": "ORDER", "text": "690", "texts": { "en": "690" } } + ], + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "TEA_KOLKATA", + "name": "Tea, Kolkata", + "names": { "en": "Tea, Kolkata" }, + "annotations": [ + { "type": "ORDER", "text": "700", "texts": { "en": "700" } } + ], + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "TEA_MOMBASA", + "name": "Tea, Mombasa", + "names": { "en": "Tea, Mombasa" }, + "annotations": [ + { "type": "ORDER", "text": "710", "texts": { "en": "710" } } + ], + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "Tin", + "name": "Tin", + "names": { "en": "Tin" }, + "annotations": [ + { "type": "ORDER", "text": "720", "texts": { "en": "720" } } + ], + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "TOBAC_US", + "name": "Tobacco, US import u.v.", + "names": { "en": "Tobacco, US import u.v." }, + "annotations": [ + { "type": "ORDER", "text": "730", "texts": { "en": "730" } } + ], + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "TSP", + "name": "TSP", + "names": { "en": "TSP" }, + "annotations": [ + { "type": "ORDER", "text": "740", "texts": { "en": "740" } } + ], + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "TUNA_SJCSI", + "name": "Tuna- Skipjack (loins cooked, from Solomon Islands)", + "names": { + "en": "Tuna- Skipjack (loins cooked, from Solomon Islands)" + }, + "annotations": [ + { "type": "ORDER", "text": "750", "texts": { "en": "750" } } + ], + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "TUNA_SJFEP", + "name": "Tuna-Yellow fin (loins frozen, from Eastern Pacific)", + "names": { + "en": "Tuna-Yellow fin (loins frozen, from Eastern Pacific)" + }, + "annotations": [ + { "type": "ORDER", "text": "790", "texts": { "en": "790" } } + ], + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "TUNA_SJWPO", + "name": "Tuna-Skipjack (whole, from Pacific Ocean)", + "names": { "en": "Tuna-Skipjack (whole, from Pacific Ocean)" }, + "annotations": [ + { "type": "ORDER", "text": "770", "texts": { "en": "770" } } + ], + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "TUNA_YFCSI", + "name": "Tuna-Yellow fin (loins cooked, from Solomon Islands)", + "names": { + "en": "Tuna-Yellow fin (loins cooked, from Solomon Islands)" + }, + "annotations": [ + { "type": "ORDER", "text": "780", "texts": { "en": "780" } } + ], + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "TUNA_YFFEP", + "name": "Tuna-Skipjack (loins frozen, from Eastern Pacific)", + "names": { + "en": "Tuna-Skipjack (loins frozen, from Eastern Pacific)" + }, + "annotations": [ + { "type": "ORDER", "text": "760", "texts": { "en": "760" } } + ], + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "TUNA_YFWPO", + "name": "Tuna-Yellow fin (whole, from Pacific Ocean)", + "names": { "en": "Tuna-Yellow fin (whole, from Pacific Ocean)" }, + "annotations": [ + { "type": "ORDER", "text": "800", "texts": { "en": "800" } } + ], + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "UREA_EE_BULK", + "name": "Urea", + "names": { "en": "Urea" }, + "annotations": [ + { "type": "ORDER", "text": "810", "texts": { "en": "810" } } + ], + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "WHEAT_CANADI", + "name": "Wheat, Canadian", + "names": { "en": "Wheat, Canadian" }, + "annotations": [ + { "type": "ORDER", "text": "820", "texts": { "en": "820" } } + ], + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "WHEAT_US_HRW", + "name": "Wheat, US HRW", + "names": { "en": "Wheat, US HRW" }, + "annotations": [ + { "type": "ORDER", "text": "830", "texts": { "en": "830" } } + ], + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "WHEAT_US_SRW", + "name": "Wheat, US SRW", + "names": { "en": "Wheat, US SRW" }, + "annotations": [ + { "type": "ORDER", "text": "840", "texts": { "en": "840" } } + ], + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "WOODPULP", + "name": "Woodpulp", + "names": { "en": "Woodpulp" }, + "annotations": [ + { "type": "ORDER", "text": "850", "texts": { "en": "850" } } + ], + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "Zinc", + "name": "Zinc", + "names": { "en": "Zinc" }, + "annotations": [ + { "type": "ORDER", "text": "860", "texts": { "en": "860" } } + ], + "links": [{ "rel": "self", "type": "code" }] + } + ] + }, + { + "id": "CL_COMMODITY_PRICES_INDICATORS", + "links": [{ "rel": "self", "type": "codelist" }], + "version": "1.0", + "agencyID": "SPC", + "isFinal": false, + "name": "Codelist for commodity prices indicators", + "names": { "en": "Codelist for commodity prices indicators" }, + "isPartial": false, + "codes": [ + { + "id": "COMPRICE", + "name": "Commodity price", + "names": { "en": "Commodity price" }, + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "PRICEVAR", + "name": "Price variation rate", + "names": { "en": "Price variation rate" }, + "links": [{ "rel": "self", "type": "code" }] + } + ] + }, + { + "id": "CL_COM_FREQ", + "links": [{ "rel": "self", "type": "codelist" }], + "version": "1.0", + "agencyID": "SPC", + "isFinal": false, + "name": "Common codelist for data frequencies", + "names": { "en": "Common codelist for data frequencies" }, + "isPartial": false, + "codes": [ + { + "id": "X", + "name": "Non-periodic", + "names": { "en": "Non-periodic" }, + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "A", + "name": "Annual", + "names": { "en": "Annual" }, + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "Q", + "name": "Quarterly", + "names": { "en": "Quarterly" }, + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "M", + "name": "Monthly", + "names": { "en": "Monthly" }, + "links": [{ "rel": "self", "type": "code" }] + } + ] + }, + { + "id": "CL_COM_UNIT_MEASURE", + "links": [{ "rel": "self", "type": "codelist" }], + "version": "1.0", + "agencyID": "SPC", + "isFinal": false, + "name": "Common codelist for units of measure", + "names": { "en": "Common codelist for units of measure" }, + "isPartial": false, + "codes": [ + { + "id": "N", + "name": "units", + "names": { "en": "units" }, + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "PERCENT", + "name": "percent", + "names": { "en": "percent" }, + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "KM2", + "name": "square kilometre", + "names": { "en": "square kilometre" }, + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "POP_KM2", + "name": "persons per square kilometre", + "names": { "en": "persons per square kilometre" }, + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "RATIO_POP", + "name": "ratio to total population", + "names": { "en": "ratio to total population" }, + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "INDEX", + "name": "index", + "names": { "en": "index" }, + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "PER_100000_LIVE_BIRTHS", + "name": "per 100,000 live births", + "names": { "en": "per 100,000 live births" }, + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "PER_100000_POP", + "name": "per 100,000 population", + "names": { "en": "per 100,000 population" }, + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "PER_1000_POP", + "name": "per 1,000 population", + "names": { "en": "per 1,000 population" }, + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "LITRES_PURE_ALCOHOL", + "name": "litres pure alcohol", + "names": { "en": "litres pure alcohol" }, + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "PER_100_POP", + "name": "per 100 population", + "names": { "en": "per 100 population" }, + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "USD_MILLIONS", + "name": "usd in millions", + "names": { "en": "usd in millions" }, + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "USD", + "name": "USD", + "names": { "en": "USD" }, + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "T", + "name": "metric tons", + "names": { "en": "metric tons" }, + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "CUR_LCU", + "name": "local currency", + "names": { "en": "local currency" }, + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "USDBBL", + "name": "$/bbl", + "names": { "en": "$/bbl" }, + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "USDMT", + "name": "$/mt", + "names": { "en": "$/mt" }, + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "USDMMBTU", + "name": "$/mmbtu", + "names": { "en": "$/mmbtu" }, + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "BASE2010", + "name": "2010=100", + "names": { "en": "2010=100" }, + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "USDKG", + "name": "$/kg", + "names": { "en": "$/kg" }, + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "USDCM", + "name": "$/cubic meter", + "names": { "en": "$/cubic meter" }, + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "USHSHEET", + "name": "¢/sheet", + "names": { "en": "¢/sheet" }, + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "USDDMTU", + "name": "$/dmtu", + "names": { "en": "$/dmtu" }, + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "USDTROYOZ", + "name": "$/troy oz", + "names": { "en": "$/troy oz" }, + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "BASE2005", + "name": "2005=100", + "names": { "en": "2005=100" }, + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "CENTSKG", + "name": "cents/kg", + "names": { "en": "cents/kg" }, + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "NZD", + "name": "New Zealand Dollar", + "names": { "en": "New Zealand Dollar" }, + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "FJD", + "name": "Fiji Dollar", + "names": { "en": "Fiji Dollar" }, + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "AUD", + "name": "Australian Dollar", + "names": { "en": "Australian Dollar" }, + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "XPF", + "name": "CFP Franc", + "names": { "en": "CFP Franc" }, + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "PGK", + "name": "Kina", + "names": { "en": "Kina" }, + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "SBD", + "name": "Solomon Islands Dollar", + "names": { "en": "Solomon Islands Dollar" }, + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "TOP", + "name": "Pa’anga", + "names": { "en": "Pa’anga" }, + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "VUV", + "name": "Vatu", + "names": { "en": "Vatu" }, + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "WST", + "name": "Tala", + "names": { "en": "Tala" }, + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "USD_POP", + "name": "USD per person", + "names": { "en": "USD per person" }, + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "NZD_POP", + "name": "New Zealand Dollar per person", + "names": { "en": "New Zealand Dollar per person" }, + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "FJD_POP", + "name": "Fiji Dollar per person", + "names": { "en": "Fiji Dollar per person" }, + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "AUD_POP", + "name": "Australian Dollar per person", + "names": { "en": "Australian Dollar per person" }, + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "XPF_POP", + "name": "CFP Franc per person", + "names": { "en": "CFP Franc per person" }, + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "PGK_POP", + "name": "Kina per person", + "names": { "en": "Kina per person" }, + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "SBD_POP", + "name": "Solomon Islands Dollar per person", + "names": { "en": "Solomon Islands Dollar per person" }, + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "TOP_POP", + "name": "Pa’anga per person", + "names": { "en": "Pa’anga per person" }, + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "VUV_POP", + "name": "Vatu per person", + "names": { "en": "Vatu per person" }, + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "WST_POP", + "name": "Tala per person", + "names": { "en": "Tala per person" }, + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "GY", + "name": "Growth Rate, Over 1 Year", + "names": { "en": "Growth Rate, Over 1 Year" }, + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "USD_R_POP", + "name": "Per Capita, US $, Exchange Rates Converted", + "names": { "en": "Per Capita, US $, Exchange Rates Converted" }, + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "PERCENT_GDP", + "name": "As a % of GDP", + "names": { "en": "As a % of GDP" }, + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "YR", + "name": "Years", + "names": { "en": "Years" }, + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "PER_1000_LIVE_BIRTHS", + "name": "per 1,000 live births", + "names": { "en": "per 1,000 live births" }, + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "RF", + "name": "Relative frequency (% of total)", + "names": { "en": "Relative frequency (% of total)" }, + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "g", + "name": "g", + "names": { "en": "g" }, + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "kcal", + "name": "kcal", + "names": { "en": "kcal" }, + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "kj", + "name": "kj", + "names": { "en": "kj" }, + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "mg", + "name": "mg", + "names": { "en": "mg" }, + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "YEAR", + "name": "years", + "names": { "en": "years" }, + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "BOOL", + "name": "Boolean or binary measure", + "names": { "en": "Boolean or binary measure" }, + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "CON_USD", + "name": "Constant USD", + "names": { "en": "Constant USD" }, + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "HA", + "name": "Hectares", + "names": { "en": "Hectares" }, + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "MJ_PER_GDP_CON_PPP_USD", + "name": "Megajoules per USD constant PPP GDP", + "names": { "en": "Megajoules per USD constant PPP GDP" }, + "links": [{ "rel": "self", "type": "code" }] + } + ] + } + ], + "dataStructures": [ + { + "id": "DSD_COMMODITY_PRICES", + "links": [{ "rel": "self", "type": "datastructure" }], + "version": "1.0", + "agencyID": "SPC", + "isFinal": false, + "name": "DSD for commodity prices", + "names": { "en": "DSD for commodity prices" }, + "dataStructureComponents": { + "attributeList": { + "id": "AttributeDescriptor", + "links": [{ "rel": "self", "type": "attributedescriptor" }], + "attributes": [ + { + "id": "DATA_SOURCE", + "links": [{ "rel": "self", "type": "dataattribute" }], + "conceptIdentity": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=SPC:CS_COMMON(2.0).DATA_SOURCE", + "localRepresentation": { + "textFormat": { + "textType": "String", + "isSequence": false, + "isMultiLingual": false + } + }, + "assignmentStatus": "Conditional", + "attributeRelationship": { + "dimensions": ["FREQ", "COMMODITY", "INDICATOR"] + } + }, + { + "id": "UNIT_MEASURE", + "links": [{ "rel": "self", "type": "dataattribute" }], + "conceptIdentity": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=SPC:CS_COMMON(2.0).UNIT_MEASURE", + "localRepresentation": { + "enumeration": "urn:sdmx:org.sdmx.infomodel.codelist.Codelist=SPC:CL_COM_UNIT_MEASURE(1.0)" + }, + "assignmentStatus": "Conditional", + "attributeRelationship": { + "dimensions": ["COMMODITY", "INDICATOR"] + } + }, + { + "id": "OBS_COMMENT", + "links": [{ "rel": "self", "type": "dataattribute" }], + "conceptIdentity": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=SPC:CS_COMMON(2.0).COMMENT", + "localRepresentation": { + "textFormat": { + "textType": "String", + "isSequence": false, + "isMultiLingual": false + } + }, + "assignmentStatus": "Conditional", + "attributeRelationship": { "primaryMeasure": "OBS_VALUE" } + } + ] + }, + "dimensionList": { + "id": "DimensionDescriptor", + "links": [{ "rel": "self", "type": "dimensiondescriptor" }], + "dimensions": [ + { + "id": "FREQ", + "links": [{ "rel": "self", "type": "dimension" }], + "position": 0, + "type": "Dimension", + "conceptIdentity": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=SPC:CS_COMMON(2.0).FREQ", + "localRepresentation": { + "enumeration": "urn:sdmx:org.sdmx.infomodel.codelist.Codelist=SPC:CL_COM_FREQ(1.0)" + } + }, + { + "id": "COMMODITY", + "links": [{ "rel": "self", "type": "dimension" }], + "position": 1, + "type": "Dimension", + "conceptIdentity": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=SPC:CS_COMMON(2.0).COMMODITY", + "localRepresentation": { + "enumeration": "urn:sdmx:org.sdmx.infomodel.codelist.Codelist=SPC:CL_COMMODITY_PRICES(1.0)" + } + }, + { + "id": "INDICATOR", + "links": [{ "rel": "self", "type": "dimension" }], + "position": 2, + "type": "Dimension", + "conceptIdentity": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=SPC:CS_COMMON(2.0).INDICATOR", + "localRepresentation": { + "enumeration": "urn:sdmx:org.sdmx.infomodel.codelist.Codelist=SPC:CL_COMMODITY_PRICES_INDICATORS(1.0)" + } + } + ], + "timeDimensions": [ + { + "id": "TIME_PERIOD", + "links": [{ "rel": "self", "type": "timedimension" }], + "position": 3, + "type": "TimeDimension", + "conceptIdentity": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=SPC:CS_COMMON(2.0).TIME_PERIOD", + "localRepresentation": { + "textFormat": { + "textType": "ObservationalTimePeriod", + "isSequence": false, + "isMultiLingual": false + } + } + } + ] + }, + "measureList": { + "id": "MeasureDescriptor", + "links": [{ "rel": "self", "type": "measuredescriptor" }], + "primaryMeasure": { + "id": "OBS_VALUE", + "links": [{ "rel": "self", "type": "primarymeasure" }], + "conceptIdentity": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=SPC:CS_COMMON(2.0).OBS_VALUE" + } + } + } + } + ], + "contentConstraints": [ + { + "id": "CON_COMMODITY_PRICES", + "links": [{ "rel": "self", "type": "contentconstraint" }], + "version": "1.0", + "agencyID": "SPC", + "isFinal": false, + "name": "Content constraint for DF_COMMODITY_PRICES", + "names": { "en": "Content constraint for DF_COMMODITY_PRICES" }, + "type": "Allowed", + "constraintAttachment": { + "dataflows": [ + "urn:sdmx:org.sdmx.infomodel.datastructure.Dataflow=SPC:DF_COMMODITY_PRICES(1.0)" + ] + }, + "cubeRegions": [ + { + "isIncluded": true, + "keyValues": [ + { "id": "FREQ", "values": ["A", "M"] }, + { "id": "INDICATOR", "values": ["COMPRICE", "PRICEVAR"] }, + { + "id": "COMMODITY", + "values": [ + "COCOA", + "COCONUT_OIL", + "COPRA", + "CRUDE_BRENT", + "CRUDE_PETRO", + "GOLD", + "LOGS_CMR", + "LOGS_MYS", + "NGAS_JP", + "NICKEL", + "PALM_OIL", + "RICE_05", + "RICE_05_VNM", + "RICE_25", + "RICE_A1", + "SILVER", + "SUGAR_EU", + "SUGAR_US", + "SUGAR_WLD", + "TUNA_SJCSI", + "TUNA_SJFEP", + "TUNA_SJWPO", + "TUNA_YFCSI", + "TUNA_YFFEP", + "TUNA_YFWPO", + "WHEAT_US_HRW", + "WHEAT_US_SRW", + "WOODPULP" + ] + } + ] + } + ] + }, + { + "id": "CR_A_DF_COMMODITY_PRICES", + "links": [{ "rel": "self", "type": "contentconstraint" }], + "version": "1.0", + "agencyID": "SPC", + "isFinal": false, + "name": "Availability (A) for DF_COMMODITY_PRICES", + "names": { "en": "Availability (A) for DF_COMMODITY_PRICES" }, + "annotations": [{ "title": "A", "type": "ReleaseVersion" }], + "type": "Actual", + "constraintAttachment": { + "dataflows": [ + "urn:sdmx:org.sdmx.infomodel.datastructure.Dataflow=SPC:DF_COMMODITY_PRICES(1.0)" + ] + }, + "cubeRegions": [ + { + "isIncluded": true, + "keyValues": [ + { "id": "FREQ", "values": ["A", "M"] }, + { + "id": "COMMODITY", + "values": [ + "COCOA", + "COCONUT_OIL", + "COPRA", + "CRUDE_BRENT", + "CRUDE_PETRO", + "GOLD", + "LOGS_CMR", + "LOGS_MYS", + "NGAS_JP", + "NICKEL", + "PALM_OIL", + "RICE_05", + "RICE_05_VNM", + "RICE_25", + "RICE_A1", + "SILVER", + "SUGAR_EU", + "SUGAR_US", + "SUGAR_WLD", + "TUNA_SJCSI", + "TUNA_SJFEP", + "TUNA_SJWPO", + "TUNA_YFCSI", + "TUNA_YFFEP", + "TUNA_YFWPO", + "WHEAT_US_HRW", + "WHEAT_US_SRW", + "WOODPULP" + ] + }, + { "id": "INDICATOR", "values": ["COMPRICE", "PRICEVAR"] }, + { + "id": "TIME_PERIOD", + "timeRange": { + "startPeriod": { + "period": "1960-01-01T00:00:00Z", + "isInclusive": true + }, + "endPeriod": { + "period": "2020-08-31T23:59:59Z", + "isInclusive": true + } + } + } + ] + } + ] + } + ] + }, + "meta": { + "schema": "https://raw.githubusercontent.com/sdmx-twg/sdmx-json/develop/structure-message/tools/schemas/1.0/sdmx-json-structure-schema.json", + "content-languages": ["en"], + "id": "IDREF2929", + "prepared": "2020-09-22T03:36:52.0923177Z", + "test": false, + "sender": { "id": "Unknown" }, + "receiver": [{ "id": "Unknown" }] + } +} diff --git a/wwwroot/test/SDMX-JSON/dataflow-region-time.json b/wwwroot/test/SDMX-JSON/dataflow-region-time.json index ab7c931f2be..dccb23451ad 100644 --- a/wwwroot/test/SDMX-JSON/dataflow-region-time.json +++ b/wwwroot/test/SDMX-JSON/dataflow-region-time.json @@ -1 +1,3087 @@ -{"data":{"dataflows":[{"id":"RT","links":[{"rel":"self","type":"dataflow"},{"rel":"structure","type":"datastructure"}],"version":"1.0.0","agencyID":"ABS","isFinal":true,"name":"Retail Trade","names":{"en":"Retail Trade"},"annotations":[{"type":"NonProductionDataflow","text":"true","texts":{"en":"true"}},{"title":"INDUSTRY","type":"LAYOUT_COLUMN"},{"title":"TIME_PERIOD","type":"LAYOUT_ROW"},{"title":"MEASURE,TSEST","type":"LAYOUT_ROW_SECTION"},{"title":"REGION=AUS,INDUSTRY=41+42+43+44+45+46+20,FREQ=M,LASTNOBSERVATIONS=12","type":"DEFAULT"}],"structure":"urn:sdmx:org.sdmx.infomodel.datastructure.DataStructure=ABS:RT(1.0.0)"}],"categorySchemes":[{"id":"ABS_TOPICS","links":[{"rel":"self","type":"categoryscheme"}],"version":"1.0.0","agencyID":"ABS","isFinal":true,"name":"ABS Topics","names":{"en":"ABS Topics"},"description":"Australian Bureau of Statistics - Topics Framework","descriptions":{"en":"Australian Bureau of Statistics - Topics Framework"},"isPartial":false,"categories":[{"id":"ECONOMY","name":"ECONOMY","names":{"en":"ECONOMY"},"links":[{"rel":"self","type":"category"}],"categories":[{"id":"PRICE_INDEX_INFLATION","name":"Price Indexes and Inflation","names":{"en":"Price Indexes and Inflation"},"links":[{"rel":"self","type":"category"}]},{"id":"INTERNATIONAL_TRADE","name":"International Trade","names":{"en":"International Trade"},"links":[{"rel":"self","type":"category"}],"categories":[{"id":"IMPORTS","name":"Imports","names":{"en":"Imports"},"links":[{"rel":"self","type":"category"}]},{"id":"BOP_IIP","name":"Balance of Payments and International Investment Position","names":{"en":"Balance of Payments and International Investment Position"},"links":[{"rel":"self","type":"category"}]},{"id":"EXPORTS","name":"Exports","names":{"en":"Exports"},"links":[{"rel":"self","type":"category"}]}]},{"id":"BUSINESS_INDICATORS","name":"Business Indicators","names":{"en":"Business Indicators"},"links":[{"rel":"self","type":"category"}],"categories":[{"id":"COUNTS_OF_BUSINESSES","name":"Counts of Businesses","names":{"en":"Counts of Businesses"},"links":[{"rel":"self","type":"category"}]}]},{"id":"NATIONAL_ACCOUNTS","name":"National Accounts","names":{"en":"National Accounts"},"links":[{"rel":"self","type":"category"}]},{"id":"FINANCE","name":"Finance","names":{"en":"Finance"},"links":[{"rel":"self","type":"category"}],"categories":[{"id":"LENDING_FINANCE","name":"Lending Income","names":{"en":"Lending Income"},"links":[{"rel":"self","type":"category"}]}]},{"id":"INDICATORS","name":"Key Economic Indicators","names":{"en":"Key Economic Indicators"},"links":[{"rel":"self","type":"category"}]}]},{"id":"INDUSTRY","name":"INDUSTRY","names":{"en":"INDUSTRY"},"links":[{"rel":"self","type":"category"}],"categories":[{"id":"TECHNOLOGY","name":"Technology and Innovation","names":{"en":"Technology and Innovation"},"links":[{"rel":"self","type":"category"}],"categories":[{"id":"INTERNET","name":"Internet","names":{"en":"Internet"},"links":[{"rel":"self","type":"category"}]},{"id":"RESEARCH","name":"Research","names":{"en":"Research"},"links":[{"rel":"self","type":"category"}]}]},{"id":"MINING","name":"Mining","names":{"en":"Mining"},"links":[{"rel":"self","type":"category"}]},{"id":"BUILDING_CONSTRUCTION","name":"Building and Construction","names":{"en":"Building and Construction"},"links":[{"rel":"self","type":"category"}],"categories":[{"id":"BUILDING_ACTIVITY","name":"Building Activity","names":{"en":"Building Activity"},"links":[{"rel":"self","type":"category"}]},{"id":"ENGINEERING_CONSTRUCTION","name":"Engineering Construction","names":{"en":"Engineering Construction"},"links":[{"rel":"self","type":"category"}]},{"id":"BUILDING_APPROVALS","name":"Building Approvals","names":{"en":"Building Approvals"},"links":[{"rel":"self","type":"category"}]}]},{"id":"TOURISM_TRANSPORT","name":"Tourism and Transport","names":{"en":"Tourism and Transport"},"links":[{"rel":"self","type":"category"}],"categories":[{"id":"ACCOMODATION","name":"Accomodation","names":{"en":"Accomodation"},"links":[{"rel":"self","type":"category"}]},{"id":"VEHICE_USAGE","name":"Vehicle Usage","names":{"en":"Vehicle Usage"},"links":[{"rel":"self","type":"category"}]}]},{"id":"RETAIL_WHOLESALE","name":"Retail and Wholesale Trade","names":{"en":"Retail and Wholesale Trade"},"links":[{"rel":"self","type":"category"}]},{"id":"ENERGY","name":"Energy","names":{"en":"Energy"},"links":[{"rel":"self","type":"category"}]},{"id":"AGRICULTURE","name":"Agriculture","names":{"en":"Agriculture"},"links":[{"rel":"self","type":"category"}],"categories":[{"id":"LAND_USE","name":"Land Use","names":{"en":"Land Use"},"links":[{"rel":"self","type":"category"}]},{"id":"LAND_COVER","name":"Land Cover","names":{"en":"Land Cover"},"links":[{"rel":"self","type":"category"}]}]}]},{"id":"PEOPLE","name":"PEOPLE","names":{"en":"PEOPLE"},"links":[{"rel":"self","type":"category"}],"categories":[{"id":"PEOPLE_COMMUNITIES","name":"People and Communities","names":{"en":"People and Communities"},"links":[{"rel":"self","type":"category"}],"categories":[{"id":"ANCESTRY","name":"Ancestry","names":{"en":"Ancestry"},"links":[{"rel":"self","type":"category"}]},{"id":"MARITAL_STATUS","name":"Marital Status","names":{"en":"Marital Status"},"links":[{"rel":"self","type":"category"}]},{"id":"RELIGION","name":"Religion","names":{"en":"Religion"},"links":[{"rel":"self","type":"category"}]},{"id":"HOUSEHOLD_COMPOSITION","name":"Household Composition","names":{"en":"Household Composition"},"links":[{"rel":"self","type":"category"}]},{"id":"PERSON_CHARACTERISTICS","name":"Person Characteristics","names":{"en":"Person Characteristics"},"links":[{"rel":"self","type":"category"}]},{"id":"LANGUAGE","name":"Language","names":{"en":"Language"},"links":[{"rel":"self","type":"category"}]},{"id":"FAMILY","name":"Family","names":{"en":"Family"},"links":[{"rel":"self","type":"category"}]}]},{"id":"INCOME","name":"Income","names":{"en":"Income"},"links":[{"rel":"self","type":"category"}],"categories":[{"id":"FAMILY_INCOME","name":"Family Income","names":{"en":"Family Income"},"links":[{"rel":"self","type":"category"}]},{"id":"PERSONAL_INCOME","name":"Personal Income","names":{"en":"Personal Income"},"links":[{"rel":"self","type":"category"}]},{"id":"HOUSEHOLD_INCOME","name":"Household Income","names":{"en":"Household Income"},"links":[{"rel":"self","type":"category"}]}]},{"id":"ATSIP","name":"Aboriginal and Torres Strait Islander Peoples","names":{"en":"Aboriginal and Torres Strait Islander Peoples"},"links":[{"rel":"self","type":"category"}],"categories":[{"id":"INDIGENOUS_STATUS","name":"Indigenous Status","names":{"en":"Indigenous Status"},"links":[{"rel":"self","type":"category"}]},{"id":"POPULATION_PROJECTIONS","name":"Aboriginal and Torres Strait Islander Population Projections","names":{"en":"Aboriginal and Torres Strait Islander Population Projections"},"links":[{"rel":"self","type":"category"}]}]},{"id":"EDUCATION","name":"Education","names":{"en":"Education"},"links":[{"rel":"self","type":"category"}],"categories":[{"id":"CHILD_EDUCATION_CARE","name":"Child Education and Care","names":{"en":"Child Education and Care"},"links":[{"rel":"self","type":"category"}]},{"id":"SCHOOLS","name":"Schools","names":{"en":"Schools"},"links":[{"rel":"self","type":"category"}]},{"id":"TYPE_EDUCATION","name":"Type of Education","names":{"en":"Type of Education"},"links":[{"rel":"self","type":"category"}]},{"id":"LEVEL_EDUCATION","name":"Level of Education","names":{"en":"Level of Education"},"links":[{"rel":"self","type":"category"}]}]},{"id":"POPULATION","name":"Population","names":{"en":"Population"},"links":[{"rel":"self","type":"category"}],"categories":[{"id":"RIM","name":"Regional Internal Migration","names":{"en":"Regional Internal Migration"},"links":[{"rel":"self","type":"category"}]},{"id":"ERP","name":"Estimated Resident Population","names":{"en":"Estimated Resident Population"},"links":[{"rel":"self","type":"category"}]},{"id":"OVERSEAS_MIGRATION","name":"Overseas Migration","names":{"en":"Overseas Migration"},"links":[{"rel":"self","type":"category"}]},{"id":"BIRTHS","name":"Births","names":{"en":"Births"},"links":[{"rel":"self","type":"category"}]},{"id":"USUAL_HOME","name":"Usual Home","names":{"en":"Usual Home"},"links":[{"rel":"self","type":"category"}]},{"id":"POP_PROJ","name":"Population Projections","names":{"en":"Population Projections"},"links":[{"rel":"self","type":"category"}]},{"id":"INTERSTATE_MIGRATION","name":"Interstate Migration","names":{"en":"Interstate Migration"},"links":[{"rel":"self","type":"category"}]},{"id":"DEATHS","name":"Deaths","names":{"en":"Deaths"},"links":[{"rel":"self","type":"category"}]}]},{"id":"HOUSING","name":"Housing","names":{"en":"Housing"},"links":[{"rel":"self","type":"category"}],"categories":[{"id":"DWELLING_STRUCTURE","name":"Dwelling Structure","names":{"en":"Dwelling Structure"},"links":[{"rel":"self","type":"category"}]},{"id":"RENT","name":"Rent","names":{"en":"Rent"},"links":[{"rel":"self","type":"category"}]},{"id":"TENURE_LANDLORD","name":"Tenure and Landlord Type","names":{"en":"Tenure and Landlord Type"},"links":[{"rel":"self","type":"category"}]},{"id":"MORTGAGE","name":"Mortgage","names":{"en":"Mortgage"},"links":[{"rel":"self","type":"category"}]},{"id":"INTERNET_ACCESS","name":"Internet Access","names":{"en":"Internet Access"},"links":[{"rel":"self","type":"category"}]}]},{"id":"CRIME_JUSTICE","name":"Crime and Justice","names":{"en":"Crime and Justice"},"links":[{"rel":"self","type":"category"}]}]},{"id":"LABOUR","name":"LABOUR","names":{"en":"LABOUR"},"links":[{"rel":"self","type":"category"}],"categories":[{"id":"TRAVEL","name":"Travel to Work","names":{"en":"Travel to Work"},"links":[{"rel":"self","type":"category"}]},{"id":"EARNINGS_HOURS","name":"Earnings and Work Hours","names":{"en":"Earnings and Work Hours"},"links":[{"rel":"self","type":"category"}]},{"id":"INDUSTRY_EMPLOYMENT","name":"Industry of Employment","names":{"en":"Industry of Employment"},"links":[{"rel":"self","type":"category"}]},{"id":"EMPLOYMENT_UNEMPLOYMENT","name":"Employment and Unemployment","names":{"en":"Employment and Unemployment"},"links":[{"rel":"self","type":"category"}]},{"id":"UNPAID_WORK","name":"Unpaid Work","names":{"en":"Unpaid Work"},"links":[{"rel":"self","type":"category"}]},{"id":"OCCUPATION","name":"Occupation","names":{"en":"Occupation"},"links":[{"rel":"self","type":"category"}]},{"id":"INDUSTRIAL_DISPUTES","name":"Industrial Disputes","names":{"en":"Industrial Disputes"},"links":[{"rel":"self","type":"category"}]},{"id":"LABOUR_FORCE_STATUS","name":"Labour Force Status","names":{"en":"Labour Force Status"},"links":[{"rel":"self","type":"category"}]}]},{"id":"HEALTH","name":"HEALTH","names":{"en":"HEALTH"},"links":[{"rel":"self","type":"category"}],"categories":[{"id":"HEALTH_CONDITIONS","name":"Health Conditions and Risk Factors","names":{"en":"Health Conditions and Risk Factors"},"links":[{"rel":"self","type":"category"}]},{"id":"MENTAL_HEALTH","name":"Mental Health","names":{"en":"Mental Health"},"links":[{"rel":"self","type":"category"}]},{"id":"CAUSE_DEATH","name":"Causes of Death","names":{"en":"Causes of Death"},"links":[{"rel":"self","type":"category"}]},{"id":"FERTILITY_BIRTHS","name":"Fertility and Births","names":{"en":"Fertility and Births"},"links":[{"rel":"self","type":"category"}]},{"id":"HEALTH_SERVICES","name":"Health Services","names":{"en":"Health Services"},"links":[{"rel":"self","type":"category"}]},{"id":"DISABILITY","name":"Disability","names":{"en":"Disability"},"links":[{"rel":"self","type":"category"}]}]},{"id":"ENVIRONMENT","name":"ENVIRONMENT","names":{"en":"ENVIRONMENT"},"links":[{"rel":"self","type":"category"}],"categories":[{"id":"ENVIRONMENTAL_MANAGEMENT","name":"Environmental Management","names":{"en":"Environmental Management"},"links":[{"rel":"self","type":"category"}]}]},{"id":"SNAPSHOTS","name":"SNAPSHOTS","names":{"en":"SNAPSHOTS"},"links":[{"rel":"self","type":"category"}],"categories":[{"id":"SEIFA","name":"Socio-Economic Indexes for Areas (SEIFA)","names":{"en":"Socio-Economic Indexes for Areas (SEIFA)"},"links":[{"rel":"self","type":"category"}]},{"id":"REGIONAL_STATISTICS","name":"Regional Statistics","names":{"en":"Regional Statistics"},"links":[{"rel":"self","type":"category"}]}]},{"id":"CENSUS","name":"CENSUS","names":{"en":"CENSUS"},"links":[{"rel":"self","type":"category"}],"categories":[{"id":"CENSUS_2021","name":"2021 Census of Population and Housing","names":{"en":"2021 Census of Population and Housing"},"links":[{"rel":"self","type":"category"}],"categories":[{"id":"2021_COMM_PROFILE","name":"Basic Community Profiles","names":{"en":"Basic Community Profiles"},"links":[{"rel":"self","type":"category"}]},{"id":"2021_TIME_PROFILE_LGA","name":"Time Series Profiles (Local Government Areas)","names":{"en":"Time Series Profiles (Local Government Areas)"},"links":[{"rel":"self","type":"category"}]},{"id":"2021_COMM_PROFILE_SA1","name":"Basic Community Profiles (South Australia SA1)","names":{"en":"Basic Community Profiles (South Australia SA1)"},"links":[{"rel":"self","type":"category"}]},{"id":"2021_TIME_PROFILE","name":"Time Series Profiles","names":{"en":"Time Series Profiles"},"links":[{"rel":"self","type":"category"}]},{"id":"2021_COMM_PROFILE_LGA","name":"Basic Community Profiles (Local Government Areas)","names":{"en":"Basic Community Profiles (Local Government Areas)"},"links":[{"rel":"self","type":"category"}]}]},{"id":"CENSUS_2016","name":"2016 Census of Population and Housing","names":{"en":"2016 Census of Population and Housing"},"links":[{"rel":"self","type":"category"}],"categories":[{"id":"2016_COMM_PROFILE_SA1","name":"Basic Community Profiles (South Australia SA1)","names":{"en":"Basic Community Profiles (South Australia SA1)"},"links":[{"rel":"self","type":"category"}]},{"id":"2016_TIME_PROFILE_LGA","name":"Time Series Profiles (Local Government Areas)","names":{"en":"Time Series Profiles (Local Government Areas)"},"links":[{"rel":"self","type":"category"}]},{"id":"2016_COMM_PROFILE","name":"Basic Community Profiles","names":{"en":"Basic Community Profiles"},"links":[{"rel":"self","type":"category"}]},{"id":"2016_TIME_PROFILE","name":"Time Series Profiles","names":{"en":"Time Series Profiles"},"links":[{"rel":"self","type":"category"}]},{"id":"2016_COMM_PROFILE_LGA","name":"Basic Community Profiles (Local Government Areas)","names":{"en":"Basic Community Profiles (Local Government Areas)"},"links":[{"rel":"self","type":"category"}]}]},{"id":"CENSUS_2011","name":"2011 Census of Population and Housing","names":{"en":"2011 Census of Population and Housing"},"links":[{"rel":"self","type":"category"}],"categories":[{"id":"2011_TIME_PROFILE_LGA","name":"Time Series Profiles (Local Government Areas)","names":{"en":"Time Series Profiles (Local Government Areas)"},"links":[{"rel":"self","type":"category"}]},{"id":"2011_COMM_PROFILE","name":"Basic Community Profiles","names":{"en":"Basic Community Profiles"},"links":[{"rel":"self","type":"category"}]},{"id":"2011_COMM_PROFILE_SA1","name":"Basic Community Profiles (South Australia SA1)","names":{"en":"Basic Community Profiles (South Australia SA1)"},"links":[{"rel":"self","type":"category"}]},{"id":"2011_TIME_PROFILE","name":"Time Series Profiles","names":{"en":"Time Series Profiles"},"links":[{"rel":"self","type":"category"}]},{"id":"2011_COMM_PROFILE_LGA","name":"Basic Community Profiles (Local Government Areas)","names":{"en":"Basic Community Profiles (Local Government Areas)"},"links":[{"rel":"self","type":"category"}]}]}]}]}],"categorisations":[{"id":"CAT_RT","links":[{"rel":"self","type":"categorisation"}],"version":"1.0.0","agencyID":"ABS","isFinal":true,"name":"Retail Trade Categorisation","names":{"en":"Retail Trade Categorisation"},"source":"urn:sdmx:org.sdmx.infomodel.datastructure.Dataflow=ABS:RT(1.0.0)","target":"urn:sdmx:org.sdmx.infomodel.categoryscheme.Category=ABS:ABS_TOPICS(1.0.0).INDUSTRY.RETAIL_WHOLESALE"}],"conceptSchemes":[{"id":"CS_ATTRIBUTE","links":[{"rel":"self","type":"conceptscheme"}],"version":"1.0.0","agencyID":"ABS","isFinal":true,"name":"Attribute Concepts","names":{"en":"Attribute Concepts"},"isPartial":false,"concepts":[{"id":"UNIT_MEASURE","name":"Unit of Measure","names":{"en":"Unit of Measure"},"description":"Base unit in which the observation value is expressed.","descriptions":{"en":"Base unit in which the observation value is expressed."},"annotations":[{"type":"CONTEXT","text":"If a unit multiplier exists the data is recorded according to the combination of the unit multiplier and the unit of measure.","texts":{"en":"If a unit multiplier exists the data is recorded according to the combination of the unit multiplier and the unit of measure."}}],"links":[{"rel":"self","type":"concept"}]},{"id":"UNIT_MULT","name":"Unit of Multiplier","names":{"en":"Unit of Multiplier"},"description":"The multiple of the unit of measure for which the data is expressed.","descriptions":{"en":"The multiple of the unit of measure for which the data is expressed."},"annotations":[{"type":"CONTEXT","text":"Codes for unit of multiplier are the exponent in base 10 so that multiplying the observation by 10^UNIT_MULT gives a value expressed in the unit of measure.","texts":{"en":"Codes for unit of multiplier are the exponent in base 10 so that multiplying the observation by 10^UNIT_MULT gives a value expressed in the unit of measure."}}],"links":[{"rel":"self","type":"concept"}]},{"id":"OBS_STATUS","name":"Observation Status","names":{"en":"Observation Status"},"links":[{"rel":"self","type":"concept"}]},{"id":"OBS_COMMENT","name":"Observation Comment","names":{"en":"Observation Comment"},"links":[{"rel":"self","type":"concept"}]},{"id":"REPYEAREND","name":"Reporting Year End Day","names":{"en":"Reporting Year End Day"},"description":"A month day that specifies the ending day of the reporting periods (e.g. YYYY-A1) within the datastucture.","descriptions":{"en":"A month day that specifies the ending day of the reporting periods (e.g. YYYY-A1) within the datastucture."},"annotations":[{"type":"CONTEXT","text":"The use of reporting year end day also specifies that the reporting period of YYYY-A1 references an earlier period (e.g. 2018-A1 will be equivalent to 2017/18 and not 2018/19).","texts":{"en":"The use of reporting year end day also specifies that the reporting period of YYYY-A1 references an earlier period (e.g. 2018-A1 will be equivalent to 2017/18 and not 2018/19)."}}],"links":[{"rel":"self","type":"concept"}]},{"id":"BASE_PERIOD","name":"Reference Base Period","names":{"en":"Reference Base Period"},"description":"Reference Period that the value has been based against.","descriptions":{"en":"Reference Period that the value has been based against."},"links":[{"rel":"self","type":"concept"}]}]},{"id":"CS_COMMON","links":[{"rel":"self","type":"conceptscheme"}],"version":"1.0.0","agencyID":"ABS","isFinal":true,"name":"Common Concepts","names":{"en":"Common Concepts"},"isPartial":false,"concepts":[{"id":"OBS_VALUE","name":"Observation Value","names":{"en":"Observation Value"},"description":"The observed value of the variable identified by the series dimension values.","descriptions":{"en":"The observed value of the variable identified by the series dimension values."},"links":[{"rel":"self","type":"concept"}]},{"id":"TIME_PERIOD","name":"Time Period","names":{"en":"Time Period"},"description":"Timespan or point in time for which the observation refers.","descriptions":{"en":"Timespan or point in time for which the observation refers."},"annotations":[{"type":"CONTEXT","text":"The measurement represented by each observation corresponds to a specific point in time (e.g. a single day) or a period (e.g. a month, a fiscal year, or a calendar year).","texts":{"en":"The measurement represented by each observation corresponds to a specific point in time (e.g. a single day) or a period (e.g. a month, a fiscal year, or a calendar year)."}}],"links":[{"rel":"self","type":"concept"}]},{"id":"FREQ","name":"Frequency","names":{"en":"Frequency"},"description":"Rate at which data is collated.","descriptions":{"en":"Rate at which data is collated."},"links":[{"rel":"self","type":"concept"}]},{"id":"MEASURE","name":"Measure","names":{"en":"Measure"},"links":[{"rel":"self","type":"concept"}]},{"id":"TSEST","name":"Adjustment Type","names":{"en":"Adjustment Type"},"description":"An original time series can be decomposed into three components: the trend (the general direction of the series), the seasonal component (systematic, calendar related movements) and the irregular component (unsystematic, short term fluctuations). Seasonally adjusted series are produced by estimating the seasonal component and removing this from the original series. In most economic data the seasonal component is a combination of seasonal influences (e.g. the effect of the weather or social traditions) plus other kinds of calendar related variations such as Chinese New Year and Christmas. The seasonal adjustment methodology takes into account both seasonal and other calendar related factors that evolve over time to reflect changes in activity patterns.","descriptions":{"en":"An original time series can be decomposed into three components: the trend (the general direction of the series), the seasonal component (systematic, calendar related movements) and the irregular component (unsystematic, short term fluctuations). Seasonally adjusted series are produced by estimating the seasonal component and removing this from the original series. In most economic data the seasonal component is a combination of seasonal influences (e.g. the effect of the weather or social traditions) plus other kinds of calendar related variations such as Chinese New Year and Christmas. The seasonal adjustment methodology takes into account both seasonal and other calendar related factors that evolve over time to reflect changes in activity patterns."},"annotations":[{"type":"OTHER_LINKS","text":"https://www.abs.gov.au/websitedbs/D3310114.nsf/home/Time+Series+Analysis:+The+Basics","texts":{"en":"https://www.abs.gov.au/websitedbs/D3310114.nsf/home/Time+Series+Analysis:+The+Basics"}}],"links":[{"rel":"self","type":"concept"}]}]},{"id":"CS_GEOGRAPHY","links":[{"rel":"self","type":"conceptscheme"}],"version":"1.0.0","agencyID":"ABS","isFinal":true,"name":"Geography Concepts","names":{"en":"Geography Concepts"},"isPartial":false,"concepts":[{"id":"REGION","name":"Region","names":{"en":"Region"},"links":[{"rel":"self","type":"concept"}]},{"id":"REGION_ARR","name":"Region of Arrival","names":{"en":"Region of Arrival"},"links":[{"rel":"self","type":"concept"}],"parent":"REGION"},{"id":"REGION_DEP","name":"Region of Departure","names":{"en":"Region of Departure"},"links":[{"rel":"self","type":"concept"}],"parent":"REGION"},{"id":"REGION_TYPE","name":"Region Type","names":{"en":"Region Type"},"links":[{"rel":"self","type":"concept"}]},{"id":"GEO_LEVEL","name":"Geography Level","names":{"en":"Geography Level"},"links":[{"rel":"self","type":"concept"}]},{"id":"STATE","name":"State","names":{"en":"State"},"links":[{"rel":"self","type":"concept"}]},{"id":"STATE_ORIGIN","name":"State of Origin","names":{"en":"State of Origin"},"links":[{"rel":"self","type":"concept"}],"parent":"STATE"},{"id":"STATE_DEST","name":"State of Destination","names":{"en":"State of Destination"},"links":[{"rel":"self","type":"concept"}],"parent":"STATE"},{"id":"STATE_ARR","name":"State of Arrival","names":{"en":"State of Arrival"},"links":[{"rel":"self","type":"concept"}],"parent":"STATE"},{"id":"STATE_DEP","name":"State of Departure","names":{"en":"State of Departure"},"links":[{"rel":"self","type":"concept"}],"parent":"STATE"},{"id":"STATE_TERR","name":"States and Territories","names":{"en":"States and Territories"},"links":[{"rel":"self","type":"concept"}]},{"id":"COUNTRY","name":"Country","names":{"en":"Country"},"links":[{"rel":"self","type":"concept"}]},{"id":"COUNTRY_ORIGIN","name":"Country of Origin","names":{"en":"Country of Origin"},"links":[{"rel":"self","type":"concept"}],"parent":"COUNTRY"},{"id":"COUNTRY_DEST","name":"Country of Destination","names":{"en":"Country of Destination"},"links":[{"rel":"self","type":"concept"}],"parent":"COUNTRY"},{"id":"COUNTRY_BIRTH","name":"Country of Birth","names":{"en":"Country of Birth"},"links":[{"rel":"self","type":"concept"}],"parent":"COUNTRY"},{"id":"COUNTRY_RESID","name":"Country of Stay/Residence","names":{"en":"Country of Stay/Residence"},"links":[{"rel":"self","type":"concept"}],"parent":"COUNTRY"},{"id":"FED","name":"Federal Electoral Division","names":{"en":"Federal Electoral Division"},"links":[{"rel":"self","type":"concept"}]},{"id":"IND_REGION","name":"Indigenous Region","names":{"en":"Indigenous Region"},"links":[{"rel":"self","type":"concept"}]},{"id":"LGA","name":"Local Government Area","names":{"en":"Local Government Area"},"links":[{"rel":"self","type":"concept"}]},{"id":"LGA_2011","name":"Local Government Areas - 2011","names":{"en":"Local Government Areas - 2011"},"links":[{"rel":"self","type":"concept"}],"parent":"LGA"},{"id":"LGA_2016","name":"Local Government Areas - 2016","names":{"en":"Local Government Areas - 2016"},"links":[{"rel":"self","type":"concept"}],"parent":"LGA"},{"id":"POA","name":"Postal Area Code","names":{"en":"Postal Area Code"},"links":[{"rel":"self","type":"concept"}]},{"id":"REMOTE","name":"Remoteness Area","names":{"en":"Remoteness Area"},"links":[{"rel":"self","type":"concept"}]},{"id":"SA2","name":"Statistical Area Level 2 (SA2)","names":{"en":"Statistical Area Level 2 (SA2)"},"links":[{"rel":"self","type":"concept"}]},{"id":"SSC","name":"State Suburb","names":{"en":"State Suburb"},"links":[{"rel":"self","type":"concept"}]}]},{"id":"CS_INDUSTRY","links":[{"rel":"self","type":"conceptscheme"}],"version":"1.0.0","agencyID":"ABS","isFinal":true,"name":"Industry Concepts","names":{"en":"Industry Concepts"},"isPartial":false,"concepts":[{"id":"INDUSTRY","name":"Industry","names":{"en":"Industry"},"links":[{"rel":"self","type":"concept"}]},{"id":"INDUSTRY_ORIGIN","name":"Industry of Origin","names":{"en":"Industry of Origin"},"links":[{"rel":"self","type":"concept"}],"parent":"INDUSTRY"},{"id":"INDUSTRY_EMP","name":"Industry of Employment","names":{"en":"Industry of Employment"},"links":[{"rel":"self","type":"concept"}],"parent":"INDUSTRY"},{"id":"INDUSTRY_RETAIL","name":"Retail Industry","names":{"en":"Retail Industry"},"links":[{"rel":"self","type":"concept"}]}]}],"codelists":[{"id":"CL_FREQ","links":[{"rel":"self","type":"codelist"}],"version":"1.0.0","agencyID":"ABS","isFinal":true,"name":"Frequency","names":{"en":"Frequency"},"isPartial":false,"codes":[{"id":"H","name":"Hourly","names":{"en":"Hourly"},"description":"To be used for data collected or disseminated every hour.","descriptions":{"en":"To be used for data collected or disseminated every hour."},"links":[{"rel":"self","type":"code"}]},{"id":"D","name":"Daily","names":{"en":"Daily"},"description":"To be used for data collected or disseminated every day.","descriptions":{"en":"To be used for data collected or disseminated every day."},"links":[{"rel":"self","type":"code"}]},{"id":"N","name":"Minutely","names":{"en":"Minutely"},"description":"While N denotes \"minutely\", usually, there may be no observations every minute (for several series the frequency is usually \"irregular\" within a day/days). And though observations may be sparse (not collected or disseminated every minute), missing values do not need to be given for the minutes when no observations exist: in any case the time stamp determines when an observation is observed.","descriptions":{"en":"While N denotes \"minutely\", usually, there may be no observations every minute (for several series the frequency is usually \"irregular\" within a day/days). And though observations may be sparse (not collected or disseminated every minute), missing values do not need to be given for the minutes when no observations exist: in any case the time stamp determines when an observation is observed."},"links":[{"rel":"self","type":"code"}]},{"id":"B","name":"Daily or businessweek","names":{"en":"Daily or businessweek"},"description":"Similar to \"daily\", however there are no observations for Saturdays and Sundays (so, neither \"missing values\" nor \"numeric values\" should be provided for Saturday and Sunday). This treatment (\"business\") is one way to deal with such cases, but it is not the only option. Such a time series could alternatively be considered daily (\"D\"), thus, with missing values in the weekend.","descriptions":{"en":"Similar to \"daily\", however there are no observations for Saturdays and Sundays (so, neither \"missing values\" nor \"numeric values\" should be provided for Saturday and Sunday). This treatment (\"business\") is one way to deal with such cases, but it is not the only option. Such a time series could alternatively be considered daily (\"D\"), thus, with missing values in the weekend."},"links":[{"rel":"self","type":"code"}]},{"id":"W","name":"Weekly","names":{"en":"Weekly"},"description":"To be used for data collected or disseminated every week.","descriptions":{"en":"To be used for data collected or disseminated every week."},"links":[{"rel":"self","type":"code"}]},{"id":"S","name":"Half-yearly, semester","names":{"en":"Half-yearly, semester"},"description":"To be used for data collected or disseminated every semester.","descriptions":{"en":"To be used for data collected or disseminated every semester."},"links":[{"rel":"self","type":"code"}]},{"id":"A","name":"Annual","names":{"en":"Annual"},"description":"To be used for data collected or disseminated every year.","descriptions":{"en":"To be used for data collected or disseminated every year."},"links":[{"rel":"self","type":"code"}]},{"id":"M","name":"Monthly","names":{"en":"Monthly"},"description":"To be used for data collected or disseminated every month.","descriptions":{"en":"To be used for data collected or disseminated every month."},"links":[{"rel":"self","type":"code"}]},{"id":"Q","name":"Quarterly","names":{"en":"Quarterly"},"description":"To be used for data collected or disseminated every quarter.","descriptions":{"en":"To be used for data collected or disseminated every quarter."},"links":[{"rel":"self","type":"code"}]}]},{"id":"CL_OBS_STATUS","links":[{"rel":"self","type":"codelist"}],"version":"1.0.0","agencyID":"ABS","isFinal":true,"name":"Observation Status","names":{"en":"Observation Status"},"isPartial":false,"codes":[{"id":"k","name":"estimate","names":{"en":"estimate"},"links":[{"rel":"self","type":"code"}]},{"id":"l","name":"not elsewhere included","names":{"en":"not elsewhere included"},"links":[{"rel":"self","type":"code"}]},{"id":"m","name":"not recorded","names":{"en":"not recorded"},"links":[{"rel":"self","type":"code"}]},{"id":"n","name":"not available for publication but included in totals where applicable, unless otherwise indicated","names":{"en":"not available for publication but included in totals where applicable, unless otherwise indicated"},"links":[{"rel":"self","type":"code"}]},{"id":"o","name":"nil or rounded to zero, including null cells","names":{"en":"nil or rounded to zero, including null cells"},"links":[{"rel":"self","type":"code"}]},{"id":"p","name":"preliminary figure or series subject to revision","names":{"en":"preliminary figure or series subject to revision"},"links":[{"rel":"self","type":"code"}]},{"id":"q","name":"not available","names":{"en":"not available"},"links":[{"rel":"self","type":"code"}]},{"id":"r","name":"revised","names":{"en":"revised"},"links":[{"rel":"self","type":"code"}]},{"id":"s","name":"not currently available due to break in time series","names":{"en":"not currently available due to break in time series"},"links":[{"rel":"self","type":"code"}]},{"id":"t","name":"not yet available","names":{"en":"not yet available"},"links":[{"rel":"self","type":"code"}]},{"id":"u","name":"not applicable","names":{"en":"not applicable"},"links":[{"rel":"self","type":"code"}]},{"id":"v","name":"not available for publication but included in totals where applicable, unless otherwise indicated","names":{"en":"not available for publication but included in totals where applicable, unless otherwise indicated"},"links":[{"rel":"self","type":"code"}]},{"id":"w","name":"estimate is subject to sampling variability too high for most practical purposes","names":{"en":"estimate is subject to sampling variability too high for most practical purposes"},"links":[{"rel":"self","type":"code"}]},{"id":"x","name":"estimate has a relative standard error of 10% to less than 25% and should be used with caution","names":{"en":"estimate has a relative standard error of 10% to less than 25% and should be used with caution"},"links":[{"rel":"self","type":"code"}]},{"id":"y","name":"estimate has a relative standard error between 25% and 50% and should be used with caution","names":{"en":"estimate has a relative standard error between 25% and 50% and should be used with caution"},"links":[{"rel":"self","type":"code"}]},{"id":"z","name":"estimate has a relative standard error greater than 50% and is considered too unreliable for general use","names":{"en":"estimate has a relative standard error greater than 50% and is considered too unreliable for general use"},"links":[{"rel":"self","type":"code"}]}]},{"id":"CL_RT_IND","links":[{"rel":"self","type":"codelist"}],"version":"1.0.0","agencyID":"ABS","isFinal":true,"name":"Retail Sales Industry (Introduction of ANZSIC 2006 - July 2009 redesign)","names":{"en":"Retail Sales Industry (Introduction of ANZSIC 2006 - July 2009 redesign)"},"isPartial":false,"codes":[{"id":"20","name":"Total","names":{"en":"Total"},"description":"Total","descriptions":{"en":"Total"},"annotations":[{"type":"ORDER","text":"220","texts":{"en":"220"}},{"type":"FULL_NAME","text":"Total","texts":{"en":"Total"}}],"links":[{"rel":"self","type":"code"}]},{"id":"41","name":"Food retailing","names":{"en":"Food retailing"},"description":"Food retailing","descriptions":{"en":"Food retailing"},"annotations":[{"type":"ORDER","text":"40","texts":{"en":"40"}},{"type":"FULL_NAME","text":"Food retailing","texts":{"en":"Food retailing"}}],"links":[{"rel":"self","type":"code"}],"parent":"20"},{"id":"01","name":"Supermarket and grocery stores","names":{"en":"Supermarket and grocery stores"},"description":"Supermarket and grocery stores","descriptions":{"en":"Supermarket and grocery stores"},"annotations":[{"type":"ORDER","text":"10","texts":{"en":"10"}},{"type":"FULL_NAME","text":"Supermarket and grocery stores","texts":{"en":"Supermarket and grocery stores"}}],"links":[{"rel":"self","type":"code"}],"parent":"41"},{"id":"02","name":"Liquor retailing","names":{"en":"Liquor retailing"},"description":"Liquor retailing","descriptions":{"en":"Liquor retailing"},"annotations":[{"type":"ORDER","text":"20","texts":{"en":"20"}},{"type":"FULL_NAME","text":"Liquor retailing","texts":{"en":"Liquor retailing"}}],"links":[{"rel":"self","type":"code"}],"parent":"41"},{"id":"03","name":"Other specialised food retailing","names":{"en":"Other specialised food retailing"},"description":"Other specialised food retailing","descriptions":{"en":"Other specialised food retailing"},"annotations":[{"type":"ORDER","text":"30","texts":{"en":"30"}},{"type":"FULL_NAME","text":"Other specialised food retailing","texts":{"en":"Other specialised food retailing"}}],"links":[{"rel":"self","type":"code"}],"parent":"41"},{"id":"42","name":"Household goods retailing","names":{"en":"Household goods retailing"},"description":"Household goods retailing","descriptions":{"en":"Household goods retailing"},"annotations":[{"type":"ORDER","text":"80","texts":{"en":"80"}},{"type":"FULL_NAME","text":"Household goods retailing","texts":{"en":"Household goods retailing"}}],"links":[{"rel":"self","type":"code"}],"parent":"20"},{"id":"04","name":"Furniture, floor coverings, houseware and textile goods retailing","names":{"en":"Furniture, floor coverings, houseware and textile goods retailing"},"description":"Furniture, floor coverings, houseware and textile goods retailing","descriptions":{"en":"Furniture, floor coverings, houseware and textile goods retailing"},"annotations":[{"type":"ORDER","text":"50","texts":{"en":"50"}},{"type":"FULL_NAME","text":"Furniture, floor coverings, houseware and textile goods retailing","texts":{"en":"Furniture, floor coverings, houseware and textile goods retailing"}}],"links":[{"rel":"self","type":"code"}],"parent":"42"},{"id":"05","name":"Electrical and electronic goods retailing","names":{"en":"Electrical and electronic goods retailing"},"description":"Electrical and electronic goods retailing","descriptions":{"en":"Electrical and electronic goods retailing"},"annotations":[{"type":"ORDER","text":"60","texts":{"en":"60"}},{"type":"FULL_NAME","text":"Electrical and electronic goods retailing","texts":{"en":"Electrical and electronic goods retailing"}}],"links":[{"rel":"self","type":"code"}],"parent":"42"},{"id":"06","name":"Hardware, building and garden supplies retailing","names":{"en":"Hardware, building and garden supplies retailing"},"description":"Hardware, building and garden supplies retailing","descriptions":{"en":"Hardware, building and garden supplies retailing"},"annotations":[{"type":"ORDER","text":"70","texts":{"en":"70"}},{"type":"FULL_NAME","text":"Hardware, building and garden supplies retailing","texts":{"en":"Hardware, building and garden supplies retailing"}}],"links":[{"rel":"self","type":"code"}],"parent":"42"},{"id":"43","name":"Clothing, footwear and personal accessory retailing","names":{"en":"Clothing, footwear and personal accessory retailing"},"description":"Clothing, footwear and personal accessory retailing","descriptions":{"en":"Clothing, footwear and personal accessory retailing"},"annotations":[{"type":"ORDER","text":"110","texts":{"en":"110"}},{"type":"FULL_NAME","text":"Clothing, footwear and personal accessory retailing","texts":{"en":"Clothing, footwear and personal accessory retailing"}}],"links":[{"rel":"self","type":"code"}],"parent":"20"},{"id":"07","name":"Clothing retailing","names":{"en":"Clothing retailing"},"description":"Clothing retailing","descriptions":{"en":"Clothing retailing"},"annotations":[{"type":"ORDER","text":"90","texts":{"en":"90"}},{"type":"FULL_NAME","text":"Clothing retailing","texts":{"en":"Clothing retailing"}}],"links":[{"rel":"self","type":"code"}],"parent":"43"},{"id":"08","name":"Footwear and other personal accessory retailing","names":{"en":"Footwear and other personal accessory retailing"},"description":"Footwear and other personal accessory retailing","descriptions":{"en":"Footwear and other personal accessory retailing"},"annotations":[{"type":"ORDER","text":"100","texts":{"en":"100"}},{"type":"FULL_NAME","text":"Footwear and other personal accessory retailing","texts":{"en":"Footwear and other personal accessory retailing"}}],"links":[{"rel":"self","type":"code"}],"parent":"43"},{"id":"44","name":"Department stores","names":{"en":"Department stores"},"description":"Department stores","descriptions":{"en":"Department stores"},"annotations":[{"type":"ORDER","text":"130","texts":{"en":"130"}},{"type":"FULL_NAME","text":"Department stores","texts":{"en":"Department stores"}}],"links":[{"rel":"self","type":"code"}],"parent":"20"},{"id":"09","name":"Department stores","names":{"en":"Department stores"},"description":"Department stores","descriptions":{"en":"Department stores"},"annotations":[{"type":"ORDER","text":"120","texts":{"en":"120"}},{"type":"FULL_NAME","text":"Department stores","texts":{"en":"Department stores"}}],"links":[{"rel":"self","type":"code"}],"parent":"44"},{"id":"45","name":"Other retailing","names":{"en":"Other retailing"},"description":"Other retailing","descriptions":{"en":"Other retailing"},"annotations":[{"type":"ORDER","text":"180","texts":{"en":"180"}},{"type":"FULL_NAME","text":"Other retailing","texts":{"en":"Other retailing"}}],"links":[{"rel":"self","type":"code"}],"parent":"20"},{"id":"10","name":"Newspaper and book retailing","names":{"en":"Newspaper and book retailing"},"description":"Newspaper and book retailing","descriptions":{"en":"Newspaper and book retailing"},"annotations":[{"type":"ORDER","text":"140","texts":{"en":"140"}},{"type":"FULL_NAME","text":"Newspaper and book retailing","texts":{"en":"Newspaper and book retailing"}}],"links":[{"rel":"self","type":"code"}],"parent":"45"},{"id":"11","name":"Other recreational goods retailing","names":{"en":"Other recreational goods retailing"},"description":"Other recreational goods retailing","descriptions":{"en":"Other recreational goods retailing"},"annotations":[{"type":"ORDER","text":"150","texts":{"en":"150"}},{"type":"FULL_NAME","text":"Other recreational goods retailing","texts":{"en":"Other recreational goods retailing"}}],"links":[{"rel":"self","type":"code"}],"parent":"45"},{"id":"12","name":"Pharmaceutical, cosmetic and toiletry goods retailing","names":{"en":"Pharmaceutical, cosmetic and toiletry goods retailing"},"description":"Pharmaceutical, cosmetic and toiletry goods retailing","descriptions":{"en":"Pharmaceutical, cosmetic and toiletry goods retailing"},"annotations":[{"type":"ORDER","text":"160","texts":{"en":"160"}},{"type":"FULL_NAME","text":"Pharmaceutical, cosmetic and toiletry goods retailing","texts":{"en":"Pharmaceutical, cosmetic and toiletry goods retailing"}}],"links":[{"rel":"self","type":"code"}],"parent":"45"},{"id":"13","name":"Other retailing n.e.c.","names":{"en":"Other retailing n.e.c."},"description":"Other retailing n.e.c.","descriptions":{"en":"Other retailing n.e.c."},"annotations":[{"type":"ORDER","text":"170","texts":{"en":"170"}},{"type":"FULL_NAME","text":"Other retailing n.e.c.","texts":{"en":"Other retailing n.e.c."}}],"links":[{"rel":"self","type":"code"}],"parent":"45"},{"id":"46","name":"Cafes, restaurants and takeaway food services","names":{"en":"Cafes, restaurants and takeaway food services"},"description":"Cafes, restaurants and takeaway food services","descriptions":{"en":"Cafes, restaurants and takeaway food services"},"annotations":[{"type":"ORDER","text":"210","texts":{"en":"210"}},{"type":"FULL_NAME","text":"Cafes, restaurants and takeaway food services","texts":{"en":"Cafes, restaurants and takeaway food services"}}],"links":[{"rel":"self","type":"code"}],"parent":"20"},{"id":"14","name":"Cafes, restaurants and catering services","names":{"en":"Cafes, restaurants and catering services"},"description":"Cafes, restaurants and catering services","descriptions":{"en":"Cafes, restaurants and catering services"},"annotations":[{"type":"ORDER","text":"190","texts":{"en":"190"}},{"type":"FULL_NAME","text":"Cafes, restaurants and catering services","texts":{"en":"Cafes, restaurants and catering services"}}],"links":[{"rel":"self","type":"code"}],"parent":"46"},{"id":"15","name":"Takeaway food services","names":{"en":"Takeaway food services"},"description":"Takeaway food services","descriptions":{"en":"Takeaway food services"},"annotations":[{"type":"ORDER","text":"200","texts":{"en":"200"}},{"type":"FULL_NAME","text":"Takeaway food services","texts":{"en":"Takeaway food services"}}],"links":[{"rel":"self","type":"code"}],"parent":"46"}]},{"id":"CL_RT_MEASURE","links":[{"rel":"self","type":"codelist"}],"version":"1.0.0","agencyID":"ABS","isFinal":true,"name":"Retail Trade Measures","names":{"en":"Retail Trade Measures"},"isPartial":false,"codes":[{"id":"M1","name":"Current Prices","names":{"en":"Current Prices"},"annotations":[{"type":"ORDER","text":"10","texts":{"en":"10"}}],"links":[{"rel":"self","type":"code"}]},{"id":"M2","name":"Current Prices Percantage Change from Previous Period","names":{"en":"Current Prices Percantage Change from Previous Period"},"annotations":[{"type":"ORDER","text":"20","texts":{"en":"20"}}],"links":[{"rel":"self","type":"code"}]},{"id":"M3","name":"Chain Volume Measures","names":{"en":"Chain Volume Measures"},"annotations":[{"type":"ORDER","text":"30","texts":{"en":"30"}}],"links":[{"rel":"self","type":"code"}]},{"id":"M4","name":"Chain Volume Measures Percentage Change from Previous Period","names":{"en":"Chain Volume Measures Percentage Change from Previous Period"},"annotations":[{"type":"ORDER","text":"40","texts":{"en":"40"}}],"links":[{"rel":"self","type":"code"}]}]},{"id":"CL_STATE","links":[{"rel":"self","type":"codelist"}],"version":"1.0.0","agencyID":"ABS","isFinal":true,"name":"State","names":{"en":"State"},"isPartial":false,"codes":[{"id":"AUS","name":"Australia","names":{"en":"Australia"},"annotations":[{"type":"ORDER","text":"10","texts":{"en":"10"}}],"links":[{"rel":"self","type":"code"}]},{"id":"1","name":"New South Wales","names":{"en":"New South Wales"},"annotations":[{"type":"ORDER","text":"20","texts":{"en":"20"}}],"links":[{"rel":"self","type":"code"}],"parent":"AUS"},{"id":"2","name":"Victoria","names":{"en":"Victoria"},"annotations":[{"type":"ORDER","text":"30","texts":{"en":"30"}}],"links":[{"rel":"self","type":"code"}],"parent":"AUS"},{"id":"3","name":"Queensland","names":{"en":"Queensland"},"annotations":[{"type":"ORDER","text":"40","texts":{"en":"40"}}],"links":[{"rel":"self","type":"code"}],"parent":"AUS"},{"id":"4","name":"South Australia","names":{"en":"South Australia"},"annotations":[{"type":"ORDER","text":"50","texts":{"en":"50"}}],"links":[{"rel":"self","type":"code"}],"parent":"AUS"},{"id":"5","name":"Western Australia","names":{"en":"Western Australia"},"annotations":[{"type":"ORDER","text":"60","texts":{"en":"60"}}],"links":[{"rel":"self","type":"code"}],"parent":"AUS"},{"id":"6","name":"Tasmania","names":{"en":"Tasmania"},"annotations":[{"type":"ORDER","text":"70","texts":{"en":"70"}}],"links":[{"rel":"self","type":"code"}],"parent":"AUS"},{"id":"7","name":"Northern Territory","names":{"en":"Northern Territory"},"annotations":[{"type":"ORDER","text":"80","texts":{"en":"80"}}],"links":[{"rel":"self","type":"code"}],"parent":"AUS"},{"id":"8","name":"Australian Capital Territory","names":{"en":"Australian Capital Territory"},"annotations":[{"type":"ORDER","text":"90","texts":{"en":"90"}}],"links":[{"rel":"self","type":"code"}],"parent":"AUS"},{"id":"9","name":"Other Territories","names":{"en":"Other Territories"},"annotations":[{"type":"ORDER","text":"100","texts":{"en":"100"}}],"links":[{"rel":"self","type":"code"}],"parent":"AUS"}]},{"id":"CL_TSEST","links":[{"rel":"self","type":"codelist"}],"version":"1.0.0","agencyID":"ABS","isFinal":true,"name":"Time Series Estimates","names":{"en":"Time Series Estimates"},"isPartial":false,"codes":[{"id":"10","name":"Original","names":{"en":"Original"},"description":"Original","descriptions":{"en":"Original"},"annotations":[{"type":"ORDER","text":"1","texts":{"en":"1"}},{"type":"FULL_NAME","text":"Original","texts":{"en":"Original"}}],"links":[{"rel":"self","type":"code"}]},{"id":"20","name":"Seasonally Adjusted","names":{"en":"Seasonally Adjusted"},"description":"Seasonally Adjusted","descriptions":{"en":"Seasonally Adjusted"},"annotations":[{"type":"ORDER","text":"2","texts":{"en":"2"}},{"type":"FULL_NAME","text":"Seasonally Adjusted","texts":{"en":"Seasonally Adjusted"}}],"links":[{"rel":"self","type":"code"}]},{"id":"30","name":"Trend","names":{"en":"Trend"},"description":"Trend","descriptions":{"en":"Trend"},"annotations":[{"type":"ORDER","text":"3","texts":{"en":"3"}},{"type":"FULL_NAME","text":"Trend","texts":{"en":"Trend"}}],"links":[{"rel":"self","type":"code"}]},{"id":"40","name":"Sensitivity Upper","names":{"en":"Sensitivity Upper"},"description":"Sensitivity Upper","descriptions":{"en":"Sensitivity Upper"},"annotations":[{"type":"ORDER","text":"4","texts":{"en":"4"}},{"type":"FULL_NAME","text":"Sensitivity Upper","texts":{"en":"Sensitivity Upper"}}],"links":[{"rel":"self","type":"code"}]},{"id":"50","name":"Sensitivity Lower","names":{"en":"Sensitivity Lower"},"description":"Sensitivity Lower","descriptions":{"en":"Sensitivity Lower"},"annotations":[{"type":"ORDER","text":"5","texts":{"en":"5"}},{"type":"FULL_NAME","text":"Sensitivity Lower","texts":{"en":"Sensitivity Lower"}}],"links":[{"rel":"self","type":"code"}]}]},{"id":"CL_UNIT_MEASURE","links":[{"rel":"self","type":"codelist"}],"version":"1.0.0","agencyID":"ABS","isFinal":true,"name":"Unit of Measure","names":{"en":"Unit of Measure"},"isPartial":false,"codes":[{"id":"AUD","name":"Australian Dollars","names":{"en":"Australian Dollars"},"links":[{"rel":"self","type":"code"}]},{"id":"NUM","name":"Number","names":{"en":"Number"},"links":[{"rel":"self","type":"code"}]},{"id":"PCT","name":"Percent","names":{"en":"Percent"},"links":[{"rel":"self","type":"code"}]},{"id":"PCT_PTS","name":"Percentage Points","names":{"en":"Percentage Points"},"links":[{"rel":"self","type":"code"}]},{"id":"PROP","name":"Proportion","names":{"en":"Proportion"},"links":[{"rel":"self","type":"code"}]},{"id":"IN","name":"Index Numbers","names":{"en":"Index Numbers"},"links":[{"rel":"self","type":"code"}]},{"id":"IP","name":"Index Points","names":{"en":"Index Points"},"links":[{"rel":"self","type":"code"}]},{"id":"VAR","name":"Variance","names":{"en":"Variance"},"links":[{"rel":"self","type":"code"}]},{"id":"NA","name":"Not Applicable","names":{"en":"Not Applicable"},"links":[{"rel":"self","type":"code"}]},{"id":"PSNS","name":"Persons","names":{"en":"Persons"},"links":[{"rel":"self","type":"code"}]},{"id":"PSN_YR","name":"Person Years","names":{"en":"Person Years"},"links":[{"rel":"self","type":"code"}]},{"id":"JOB","name":"Jobs","names":{"en":"Jobs"},"links":[{"rel":"self","type":"code"}]},{"id":"M_G","name":"Milligrams","names":{"en":"Milligrams"},"links":[{"rel":"self","type":"code"}]},{"id":"G","name":"Grams","names":{"en":"Grams"},"links":[{"rel":"self","type":"code"}]},{"id":"KG","name":"Kilograms","names":{"en":"Kilograms"},"links":[{"rel":"self","type":"code"}]},{"id":"CT","name":"Carat (metric)","names":{"en":"Carat (metric)"},"links":[{"rel":"self","type":"code"}]},{"id":"MCT","name":"Megacarat (metric)","names":{"en":"Megacarat (metric)"},"links":[{"rel":"self","type":"code"}]},{"id":"T","name":"Tonnes","names":{"en":"Tonnes"},"links":[{"rel":"self","type":"code"}]},{"id":"MT","name":"Megatonnes","names":{"en":"Megatonnes"},"links":[{"rel":"self","type":"code"}]},{"id":"GT","name":"Gigatonnes","names":{"en":"Gigatonnes"},"links":[{"rel":"self","type":"code"}]},{"id":"TKM","name":"Tonnes-kilometres","names":{"en":"Tonnes-kilometres"},"links":[{"rel":"self","type":"code"}]},{"id":"M_M","name":"Millimetres","names":{"en":"Millimetres"},"links":[{"rel":"self","type":"code"}]},{"id":"M","name":"Metres","names":{"en":"Metres"},"links":[{"rel":"self","type":"code"}]},{"id":"KM","name":"Kilometres","names":{"en":"Kilometres"},"links":[{"rel":"self","type":"code"}]},{"id":"SQM","name":"Square Metres","names":{"en":"Square Metres"},"links":[{"rel":"self","type":"code"}]},{"id":"SQKM","name":"Square Kilometres","names":{"en":"Square Kilometres"},"links":[{"rel":"self","type":"code"}]},{"id":"HA","name":"Hectares","names":{"en":"Hectares"},"links":[{"rel":"self","type":"code"}]},{"id":"CBM","name":"Cubic Metres","names":{"en":"Cubic Metres"},"links":[{"rel":"self","type":"code"}]},{"id":"L","name":"Litres","names":{"en":"Litres"},"links":[{"rel":"self","type":"code"}]},{"id":"KL","name":"Kilolitres","names":{"en":"Kilolitres"},"links":[{"rel":"self","type":"code"}]},{"id":"ML","name":"Megalitres","names":{"en":"Megalitres"},"links":[{"rel":"self","type":"code"}]},{"id":"GL","name":"Gigalitres","names":{"en":"Gigalitres"},"links":[{"rel":"self","type":"code"}]},{"id":"A","name":"Ampere","names":{"en":"Ampere"},"links":[{"rel":"self","type":"code"}]},{"id":"KVA","name":"Kilovolt Amperes","names":{"en":"Kilovolt Amperes"},"links":[{"rel":"self","type":"code"}]},{"id":"W","name":"Watts","names":{"en":"Watts"},"links":[{"rel":"self","type":"code"}]},{"id":"KW","name":"Kilowatts","names":{"en":"Kilowatts"},"links":[{"rel":"self","type":"code"}]},{"id":"KWH","name":"Kilowatt Hours","names":{"en":"Kilowatt Hours"},"links":[{"rel":"self","type":"code"}]},{"id":"GWH","name":"Gigawatt Hours","names":{"en":"Gigawatt Hours"},"links":[{"rel":"self","type":"code"}]},{"id":"J","name":"Joules","names":{"en":"Joules"},"links":[{"rel":"self","type":"code"}]},{"id":"KJ","name":"Kilojoules","names":{"en":"Kilojoules"},"links":[{"rel":"self","type":"code"}]},{"id":"MJ","name":"Megajoules","names":{"en":"Megajoules"},"links":[{"rel":"self","type":"code"}]},{"id":"GJ","name":"Gigajoules","names":{"en":"Gigajoules"},"links":[{"rel":"self","type":"code"}]},{"id":"TJ","name":"Terajoules","names":{"en":"Terajoules"},"links":[{"rel":"self","type":"code"}]},{"id":"PJ","name":"Petajoules","names":{"en":"Petajoules"},"links":[{"rel":"self","type":"code"}]},{"id":"C","name":"Coulumb","names":{"en":"Coulumb"},"links":[{"rel":"self","type":"code"}]},{"id":"CD","name":"Candela","names":{"en":"Candela"},"links":[{"rel":"self","type":"code"}]},{"id":"K","name":"Kelvin","names":{"en":"Kelvin"},"links":[{"rel":"self","type":"code"}]},{"id":"DEG_CEL","name":"Degrees Celsius","names":{"en":"Degrees Celsius"},"links":[{"rel":"self","type":"code"}]},{"id":"S","name":"Seconds","names":{"en":"Seconds"},"links":[{"rel":"self","type":"code"}]},{"id":"MIN","name":"Minutes","names":{"en":"Minutes"},"links":[{"rel":"self","type":"code"}]},{"id":"HR","name":"Hours","names":{"en":"Hours"},"links":[{"rel":"self","type":"code"}]},{"id":"DAY","name":"Days","names":{"en":"Days"},"links":[{"rel":"self","type":"code"}]},{"id":"WK","name":"Weeks","names":{"en":"Weeks"},"links":[{"rel":"self","type":"code"}]},{"id":"MTH","name":"Months","names":{"en":"Months"},"links":[{"rel":"self","type":"code"}]},{"id":"YR","name":"Years","names":{"en":"Years"},"links":[{"rel":"self","type":"code"}]},{"id":"B","name":"Bytes","names":{"en":"Bytes"},"links":[{"rel":"self","type":"code"}]},{"id":"KB","name":"Kilobytes","names":{"en":"Kilobytes"},"links":[{"rel":"self","type":"code"}]},{"id":"MB","name":"Megabytes","names":{"en":"Megabytes"},"links":[{"rel":"self","type":"code"}]},{"id":"GB","name":"Gigabytes","names":{"en":"Gigabytes"},"links":[{"rel":"self","type":"code"}]},{"id":"TB","name":"Terabytes","names":{"en":"Terabytes"},"links":[{"rel":"self","type":"code"}]},{"id":"DEG","name":"Degrees","names":{"en":"Degrees"},"links":[{"rel":"self","type":"code"}]},{"id":"RAD","name":"Radians","names":{"en":"Radians"},"links":[{"rel":"self","type":"code"}]},{"id":"DOZ","name":"Dozen","names":{"en":"Dozen"},"links":[{"rel":"self","type":"code"}]},{"id":"PR","name":"Pairs","names":{"en":"Pairs"},"links":[{"rel":"self","type":"code"}]},{"id":"ROOM","name":"Rooms","names":{"en":"Rooms"},"links":[{"rel":"self","type":"code"}]},{"id":"SITE","name":"Sites","names":{"en":"Sites"},"links":[{"rel":"self","type":"code"}]},{"id":"BUNDLE","name":"Bundles","names":{"en":"Bundles"},"links":[{"rel":"self","type":"code"}]},{"id":"CARTON","name":"Cartons","names":{"en":"Cartons"},"links":[{"rel":"self","type":"code"}]},{"id":"UNK","name":"Unknown","names":{"en":"Unknown"},"links":[{"rel":"self","type":"code"}]},{"id":"GBP","name":"Pound Sterling","names":{"en":"Pound Sterling"},"links":[{"rel":"self","type":"code"}]},{"id":"CENT","name":"Cents","names":{"en":"Cents"},"links":[{"rel":"self","type":"code"}]},{"id":"FAM","name":"Families","names":{"en":"Families"},"links":[{"rel":"self","type":"code"}]},{"id":"HH","name":"Households","names":{"en":"Households"},"links":[{"rel":"self","type":"code"}]},{"id":"RATE","name":"Rate","names":{"en":"Rate"},"links":[{"rel":"self","type":"code"}]},{"id":"AUD_PER_EMP","name":"Australian Dollars per Employee","names":{"en":"Australian Dollars per Employee"},"links":[{"rel":"self","type":"code"}]},{"id":"AUD_PER_PSN","name":"Australian Dollars per Person","names":{"en":"Australian Dollars per Person"},"links":[{"rel":"self","type":"code"}]},{"id":"AUD_PER_KL","name":"Australian Dollars per Kilolitre","names":{"en":"Australian Dollars per Kilolitre"},"links":[{"rel":"self","type":"code"}]},{"id":"AUD_PER_KG","name":"Australian Dollars per Kilogram","names":{"en":"Australian Dollars per Kilogram"},"links":[{"rel":"self","type":"code"}]},{"id":"AUD_PER_T","name":"Australian Dollars per Tonne","names":{"en":"Australian Dollars per Tonne"},"links":[{"rel":"self","type":"code"}]},{"id":"AUD_PER_CT","name":"Australian Dollars per Carat","names":{"en":"Australian Dollars per Carat"},"links":[{"rel":"self","type":"code"}]},{"id":"AUD_PER_SQM","name":"Australian Dollars per Square Metre","names":{"en":"Australian Dollars per Square Metre"},"links":[{"rel":"self","type":"code"}]},{"id":"AUD_PER_1000CBM","name":"Australian Dollars per thousand cubic metres","names":{"en":"Australian Dollars per thousand cubic metres"},"links":[{"rel":"self","type":"code"}]},{"id":"L_PER_100KM","name":"Litres per 100 Kilometres","names":{"en":"Litres per 100 Kilometres"},"links":[{"rel":"self","type":"code"}]},{"id":"L_PER_KM","name":"Litres per Kilometre","names":{"en":"Litres per Kilometre"},"links":[{"rel":"self","type":"code"}]},{"id":"ML_PER_HA","name":"Megalitres per Hectare","names":{"en":"Megalitres per Hectare"},"links":[{"rel":"self","type":"code"}]},{"id":"T_PER_HA","name":"Tonnes per Hectare","names":{"en":"Tonnes per Hectare"},"links":[{"rel":"self","type":"code"}]},{"id":"PSNS_PER_SQKM","name":"Persons per Square Kilometre","names":{"en":"Persons per Square Kilometre"},"links":[{"rel":"self","type":"code"}]},{"id":"KG_PER_TREE","name":"Kilograms per Tree","names":{"en":"Kilograms per Tree"},"links":[{"rel":"self","type":"code"}]}]},{"id":"CL_UNIT_MULT","links":[{"rel":"self","type":"codelist"}],"version":"1.0.0","agencyID":"ABS","isFinal":true,"name":"Unit Multiplier","names":{"en":"Unit Multiplier"},"isPartial":false,"codes":[{"id":"0","name":"Units","names":{"en":"Units"},"links":[{"rel":"self","type":"code"}]},{"id":"1","name":"Tens","names":{"en":"Tens"},"links":[{"rel":"self","type":"code"}]},{"id":"2","name":"Hundreds","names":{"en":"Hundreds"},"links":[{"rel":"self","type":"code"}]},{"id":"3","name":"Thousands","names":{"en":"Thousands"},"links":[{"rel":"self","type":"code"}]},{"id":"4","name":"Tens of thousands","names":{"en":"Tens of thousands"},"links":[{"rel":"self","type":"code"}]},{"id":"5","name":"Hundreds of thousands","names":{"en":"Hundreds of thousands"},"links":[{"rel":"self","type":"code"}]},{"id":"6","name":"Millions","names":{"en":"Millions"},"links":[{"rel":"self","type":"code"}]},{"id":"7","name":"Tens of millions","names":{"en":"Tens of millions"},"links":[{"rel":"self","type":"code"}]},{"id":"8","name":"Hundreds of millions","names":{"en":"Hundreds of millions"},"links":[{"rel":"self","type":"code"}]},{"id":"9","name":"Billions","names":{"en":"Billions"},"links":[{"rel":"self","type":"code"}]},{"id":"10","name":"Tens of billions","names":{"en":"Tens of billions"},"links":[{"rel":"self","type":"code"}]},{"id":"11","name":"Hundreds of billions","names":{"en":"Hundreds of billions"},"links":[{"rel":"self","type":"code"}]},{"id":"12","name":"Trillions","names":{"en":"Trillions"},"links":[{"rel":"self","type":"code"}]},{"id":"13","name":"Tens of trillions","names":{"en":"Tens of trillions"},"links":[{"rel":"self","type":"code"}]},{"id":"14","name":"Hundred of trillions","names":{"en":"Hundred of trillions"},"links":[{"rel":"self","type":"code"}]},{"id":"15","name":"Quadrillions","names":{"en":"Quadrillions"},"links":[{"rel":"self","type":"code"}]},{"id":"-1","name":"Tenths","names":{"en":"Tenths"},"links":[{"rel":"self","type":"code"}]},{"id":"-2","name":"Hundredths","names":{"en":"Hundredths"},"links":[{"rel":"self","type":"code"}]},{"id":"-3","name":"Thousandths","names":{"en":"Thousandths"},"links":[{"rel":"self","type":"code"}]},{"id":"-4","name":"Ten-thousandths","names":{"en":"Ten-thousandths"},"links":[{"rel":"self","type":"code"}]},{"id":"-5","name":"Hundred-thousandths","names":{"en":"Hundred-thousandths"},"links":[{"rel":"self","type":"code"}]},{"id":"-6","name":"Millionths","names":{"en":"Millionths"},"links":[{"rel":"self","type":"code"}]},{"id":"-7","name":"Ten-millionths","names":{"en":"Ten-millionths"},"links":[{"rel":"self","type":"code"}]},{"id":"-8","name":"Hundred-millionths","names":{"en":"Hundred-millionths"},"links":[{"rel":"self","type":"code"}]},{"id":"-9","name":"Billionths","names":{"en":"Billionths"},"links":[{"rel":"self","type":"code"}]},{"id":"-10","name":"Ten-billionths","names":{"en":"Ten-billionths"},"links":[{"rel":"self","type":"code"}]},{"id":"-11","name":"Hundred-billionths","names":{"en":"Hundred-billionths"},"links":[{"rel":"self","type":"code"}]},{"id":"-12","name":"Trillionths","names":{"en":"Trillionths"},"links":[{"rel":"self","type":"code"}]},{"id":"-13","name":"Ten-trillionths","names":{"en":"Ten-trillionths"},"links":[{"rel":"self","type":"code"}]},{"id":"-14","name":"Hundred-trillionths","names":{"en":"Hundred-trillionths"},"links":[{"rel":"self","type":"code"}]},{"id":"-15","name":"Quadrillionths","names":{"en":"Quadrillionths"},"links":[{"rel":"self","type":"code"}]}]}],"dataStructures":[{"id":"RT","links":[{"rel":"self","type":"datastructure"}],"version":"1.0.0","agencyID":"ABS","isFinal":true,"name":"Retail Trade Datastructure","names":{"en":"Retail Trade Datastructure"},"dataStructureComponents":{"attributeList":{"id":"AttributeDescriptor","links":[{"rel":"self","type":"attributedescriptor"}],"attributes":[{"id":"UNIT_MEASURE","links":[{"rel":"self","type":"dataattribute"}],"conceptIdentity":"urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ABS:CS_ATTRIBUTE(1.0.0).UNIT_MEASURE","localRepresentation":{"enumeration":"urn:sdmx:org.sdmx.infomodel.codelist.Codelist=ABS:CL_UNIT_MEASURE(1.0.0)"},"assignmentStatus":"Mandatory","attributeRelationship":{"dimensions":["MEASURE"]}},{"id":"UNIT_MULT","links":[{"rel":"self","type":"dataattribute"}],"conceptIdentity":"urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ABS:CS_ATTRIBUTE(1.0.0).UNIT_MULT","localRepresentation":{"enumeration":"urn:sdmx:org.sdmx.infomodel.codelist.Codelist=ABS:CL_UNIT_MULT(1.0.0)"},"assignmentStatus":"Conditional","attributeRelationship":{"dimensions":["MEASURE"]}},{"id":"OBS_STATUS","links":[{"rel":"self","type":"dataattribute"}],"conceptIdentity":"urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ABS:CS_ATTRIBUTE(1.0.0).OBS_STATUS","localRepresentation":{"enumeration":"urn:sdmx:org.sdmx.infomodel.codelist.Codelist=ABS:CL_OBS_STATUS(1.0.0)"},"assignmentStatus":"Conditional","attributeRelationship":{"primaryMeasure":"OBS_VALUE"}},{"id":"OBS_COMMENT","links":[{"rel":"self","type":"dataattribute"}],"conceptIdentity":"urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ABS:CS_ATTRIBUTE(1.0.0).OBS_COMMENT","assignmentStatus":"Conditional","attributeRelationship":{"primaryMeasure":"OBS_VALUE"}}]},"dimensionList":{"id":"DimensionDescriptor","links":[{"rel":"self","type":"dimensiondescriptor"}],"dimensions":[{"id":"MEASURE","links":[{"rel":"self","type":"dimension"}],"position":0,"type":"Dimension","conceptIdentity":"urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ABS:CS_COMMON(1.0.0).MEASURE","localRepresentation":{"enumeration":"urn:sdmx:org.sdmx.infomodel.codelist.Codelist=ABS:CL_RT_MEASURE(1.0.0)"}},{"id":"INDUSTRY","links":[{"rel":"self","type":"dimension"}],"position":1,"type":"Dimension","conceptIdentity":"urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ABS:CS_INDUSTRY(1.0.0).INDUSTRY","localRepresentation":{"enumeration":"urn:sdmx:org.sdmx.infomodel.codelist.Codelist=ABS:CL_RT_IND(1.0.0)"}},{"id":"TSEST","links":[{"rel":"self","type":"dimension"}],"position":2,"type":"Dimension","conceptIdentity":"urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ABS:CS_COMMON(1.0.0).TSEST","localRepresentation":{"enumeration":"urn:sdmx:org.sdmx.infomodel.codelist.Codelist=ABS:CL_TSEST(1.0.0)"}},{"id":"REGION","links":[{"rel":"self","type":"dimension"}],"position":3,"type":"Dimension","conceptIdentity":"urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ABS:CS_GEOGRAPHY(1.0.0).REGION","localRepresentation":{"enumeration":"urn:sdmx:org.sdmx.infomodel.codelist.Codelist=ABS:CL_STATE(1.0.0)"}},{"id":"FREQ","links":[{"rel":"self","type":"dimension"}],"position":4,"type":"Dimension","conceptIdentity":"urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ABS:CS_COMMON(1.0.0).FREQ","localRepresentation":{"enumeration":"urn:sdmx:org.sdmx.infomodel.codelist.Codelist=ABS:CL_FREQ(1.0.0)"}}],"timeDimensions":[{"id":"TIME_PERIOD","links":[{"rel":"self","type":"timedimension"}],"position":5,"type":"TimeDimension","conceptIdentity":"urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ABS:CS_COMMON(1.0.0).TIME_PERIOD","localRepresentation":{"textFormat":{"textType":"ObservationalTimePeriod","isSequence":false,"isMultiLingual":false}}}]},"measureList":{"id":"MeasureDescriptor","links":[{"rel":"self","type":"measuredescriptor"}],"primaryMeasure":{"id":"OBS_VALUE","links":[{"rel":"self","type":"primarymeasure"}],"conceptIdentity":"urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ABS:CS_COMMON(1.0.0).OBS_VALUE"}}}}],"contentConstraints":[{"id":"CR_A_RT","links":[{"rel":"self","type":"contentconstraint"}],"version":"1.0.0","agencyID":"ABS","isFinal":false,"validFrom":"2021-04-08T16:00:00","name":"Availability (A) for RT","names":{"en":"Availability (A) for RT"},"annotations":[{"title":"A","type":"ReleaseVersion"}],"type":"Actual","constraintAttachment":{"dataflows":["urn:sdmx:org.sdmx.infomodel.datastructure.Dataflow=ABS:RT(1.0.0)"]},"cubeRegions":[{"isIncluded":true,"keyValues":[{"id":"MEASURE","values":["M1","M2","M3","M4"]},{"id":"INDUSTRY","values":["01","02","03","04","05","06","07","08","09","10","11","12","13","14","15","20","41","42","43","44","45","46"]},{"id":"TSEST","values":["10","20"]},{"id":"REGION","values":["1","2","3","4","5","6","7","8","AUS"]},{"id":"FREQ","values":["M","Q"]},{"id":"TIME_PERIOD","timeRange":{"startPeriod":{"period":"1982-04-01T00:00:00Z","isInclusive":true},"endPeriod":{"period":"2021-02-28T23:59:59Z","isInclusive":true}}}]}]},{"id":"CR_B_RT","links":[{"rel":"self","type":"contentconstraint"}],"version":"1.0.0","agencyID":"ABS","isFinal":false,"validTo":"2021-04-08T15:59:59","name":"Availability (B) for RT","names":{"en":"Availability (B) for RT"},"annotations":[{"title":"B","type":"ReleaseVersion"}],"type":"Actual","constraintAttachment":{"dataflows":["urn:sdmx:org.sdmx.infomodel.datastructure.Dataflow=ABS:RT(1.0.0)"]},"cubeRegions":[{"isIncluded":true,"keyValues":[{"id":"MEASURE","values":["M1","M2","M3","M4"]},{"id":"INDUSTRY","values":["01","02","03","04","05","06","07","08","09","10","11","12","13","14","15","20","41","42","43","44","45","46"]},{"id":"TSEST","values":["10","20"]},{"id":"REGION","values":["1","2","3","4","5","6","7","8","AUS"]},{"id":"FREQ","values":["M","Q"]},{"id":"TIME_PERIOD","timeRange":{"startPeriod":{"period":"1982-04-01T00:00:00Z","isInclusive":true},"endPeriod":{"period":"2021-01-31T23:59:59Z","isInclusive":true}}}]}]}]},"meta":{"schema":"https://raw.githubusercontent.com/sdmx-twg/sdmx-json/develop/structure-message/tools/schemas/1.0/sdmx-json-structure-schema.json","content-languages":["en"],"id":"IDREF73591","prepared":"2021-05-11T08:15:38.9274167Z","test":false,"sender":{"id":"Unknown"},"receiver":[{"id":"Unknown"}]}} +{ + "data": { + "dataflows": [ + { + "id": "RT", + "links": [ + { "rel": "self", "type": "dataflow" }, + { "rel": "structure", "type": "datastructure" } + ], + "version": "1.0.0", + "agencyID": "ABS", + "isFinal": true, + "name": "Retail Trade", + "names": { "en": "Retail Trade" }, + "annotations": [ + { + "type": "NonProductionDataflow", + "text": "true", + "texts": { "en": "true" } + }, + { "title": "INDUSTRY", "type": "LAYOUT_COLUMN" }, + { "title": "TIME_PERIOD", "type": "LAYOUT_ROW" }, + { "title": "MEASURE,TSEST", "type": "LAYOUT_ROW_SECTION" }, + { + "title": "REGION=AUS,INDUSTRY=41+42+43+44+45+46+20,FREQ=M,LASTNOBSERVATIONS=12", + "type": "DEFAULT" + } + ], + "structure": "urn:sdmx:org.sdmx.infomodel.datastructure.DataStructure=ABS:RT(1.0.0)" + } + ], + "categorySchemes": [ + { + "id": "ABS_TOPICS", + "links": [{ "rel": "self", "type": "categoryscheme" }], + "version": "1.0.0", + "agencyID": "ABS", + "isFinal": true, + "name": "ABS Topics", + "names": { "en": "ABS Topics" }, + "description": "Australian Bureau of Statistics - Topics Framework", + "descriptions": { + "en": "Australian Bureau of Statistics - Topics Framework" + }, + "isPartial": false, + "categories": [ + { + "id": "ECONOMY", + "name": "ECONOMY", + "names": { "en": "ECONOMY" }, + "links": [{ "rel": "self", "type": "category" }], + "categories": [ + { + "id": "PRICE_INDEX_INFLATION", + "name": "Price Indexes and Inflation", + "names": { "en": "Price Indexes and Inflation" }, + "links": [{ "rel": "self", "type": "category" }] + }, + { + "id": "INTERNATIONAL_TRADE", + "name": "International Trade", + "names": { "en": "International Trade" }, + "links": [{ "rel": "self", "type": "category" }], + "categories": [ + { + "id": "IMPORTS", + "name": "Imports", + "names": { "en": "Imports" }, + "links": [{ "rel": "self", "type": "category" }] + }, + { + "id": "BOP_IIP", + "name": "Balance of Payments and International Investment Position", + "names": { + "en": "Balance of Payments and International Investment Position" + }, + "links": [{ "rel": "self", "type": "category" }] + }, + { + "id": "EXPORTS", + "name": "Exports", + "names": { "en": "Exports" }, + "links": [{ "rel": "self", "type": "category" }] + } + ] + }, + { + "id": "BUSINESS_INDICATORS", + "name": "Business Indicators", + "names": { "en": "Business Indicators" }, + "links": [{ "rel": "self", "type": "category" }], + "categories": [ + { + "id": "COUNTS_OF_BUSINESSES", + "name": "Counts of Businesses", + "names": { "en": "Counts of Businesses" }, + "links": [{ "rel": "self", "type": "category" }] + } + ] + }, + { + "id": "NATIONAL_ACCOUNTS", + "name": "National Accounts", + "names": { "en": "National Accounts" }, + "links": [{ "rel": "self", "type": "category" }] + }, + { + "id": "FINANCE", + "name": "Finance", + "names": { "en": "Finance" }, + "links": [{ "rel": "self", "type": "category" }], + "categories": [ + { + "id": "LENDING_FINANCE", + "name": "Lending Income", + "names": { "en": "Lending Income" }, + "links": [{ "rel": "self", "type": "category" }] + } + ] + }, + { + "id": "INDICATORS", + "name": "Key Economic Indicators", + "names": { "en": "Key Economic Indicators" }, + "links": [{ "rel": "self", "type": "category" }] + } + ] + }, + { + "id": "INDUSTRY", + "name": "INDUSTRY", + "names": { "en": "INDUSTRY" }, + "links": [{ "rel": "self", "type": "category" }], + "categories": [ + { + "id": "TECHNOLOGY", + "name": "Technology and Innovation", + "names": { "en": "Technology and Innovation" }, + "links": [{ "rel": "self", "type": "category" }], + "categories": [ + { + "id": "INTERNET", + "name": "Internet", + "names": { "en": "Internet" }, + "links": [{ "rel": "self", "type": "category" }] + }, + { + "id": "RESEARCH", + "name": "Research", + "names": { "en": "Research" }, + "links": [{ "rel": "self", "type": "category" }] + } + ] + }, + { + "id": "MINING", + "name": "Mining", + "names": { "en": "Mining" }, + "links": [{ "rel": "self", "type": "category" }] + }, + { + "id": "BUILDING_CONSTRUCTION", + "name": "Building and Construction", + "names": { "en": "Building and Construction" }, + "links": [{ "rel": "self", "type": "category" }], + "categories": [ + { + "id": "BUILDING_ACTIVITY", + "name": "Building Activity", + "names": { "en": "Building Activity" }, + "links": [{ "rel": "self", "type": "category" }] + }, + { + "id": "ENGINEERING_CONSTRUCTION", + "name": "Engineering Construction", + "names": { "en": "Engineering Construction" }, + "links": [{ "rel": "self", "type": "category" }] + }, + { + "id": "BUILDING_APPROVALS", + "name": "Building Approvals", + "names": { "en": "Building Approvals" }, + "links": [{ "rel": "self", "type": "category" }] + } + ] + }, + { + "id": "TOURISM_TRANSPORT", + "name": "Tourism and Transport", + "names": { "en": "Tourism and Transport" }, + "links": [{ "rel": "self", "type": "category" }], + "categories": [ + { + "id": "ACCOMODATION", + "name": "Accomodation", + "names": { "en": "Accomodation" }, + "links": [{ "rel": "self", "type": "category" }] + }, + { + "id": "VEHICE_USAGE", + "name": "Vehicle Usage", + "names": { "en": "Vehicle Usage" }, + "links": [{ "rel": "self", "type": "category" }] + } + ] + }, + { + "id": "RETAIL_WHOLESALE", + "name": "Retail and Wholesale Trade", + "names": { "en": "Retail and Wholesale Trade" }, + "links": [{ "rel": "self", "type": "category" }] + }, + { + "id": "ENERGY", + "name": "Energy", + "names": { "en": "Energy" }, + "links": [{ "rel": "self", "type": "category" }] + }, + { + "id": "AGRICULTURE", + "name": "Agriculture", + "names": { "en": "Agriculture" }, + "links": [{ "rel": "self", "type": "category" }], + "categories": [ + { + "id": "LAND_USE", + "name": "Land Use", + "names": { "en": "Land Use" }, + "links": [{ "rel": "self", "type": "category" }] + }, + { + "id": "LAND_COVER", + "name": "Land Cover", + "names": { "en": "Land Cover" }, + "links": [{ "rel": "self", "type": "category" }] + } + ] + } + ] + }, + { + "id": "PEOPLE", + "name": "PEOPLE", + "names": { "en": "PEOPLE" }, + "links": [{ "rel": "self", "type": "category" }], + "categories": [ + { + "id": "PEOPLE_COMMUNITIES", + "name": "People and Communities", + "names": { "en": "People and Communities" }, + "links": [{ "rel": "self", "type": "category" }], + "categories": [ + { + "id": "ANCESTRY", + "name": "Ancestry", + "names": { "en": "Ancestry" }, + "links": [{ "rel": "self", "type": "category" }] + }, + { + "id": "MARITAL_STATUS", + "name": "Marital Status", + "names": { "en": "Marital Status" }, + "links": [{ "rel": "self", "type": "category" }] + }, + { + "id": "RELIGION", + "name": "Religion", + "names": { "en": "Religion" }, + "links": [{ "rel": "self", "type": "category" }] + }, + { + "id": "HOUSEHOLD_COMPOSITION", + "name": "Household Composition", + "names": { "en": "Household Composition" }, + "links": [{ "rel": "self", "type": "category" }] + }, + { + "id": "PERSON_CHARACTERISTICS", + "name": "Person Characteristics", + "names": { "en": "Person Characteristics" }, + "links": [{ "rel": "self", "type": "category" }] + }, + { + "id": "LANGUAGE", + "name": "Language", + "names": { "en": "Language" }, + "links": [{ "rel": "self", "type": "category" }] + }, + { + "id": "FAMILY", + "name": "Family", + "names": { "en": "Family" }, + "links": [{ "rel": "self", "type": "category" }] + } + ] + }, + { + "id": "INCOME", + "name": "Income", + "names": { "en": "Income" }, + "links": [{ "rel": "self", "type": "category" }], + "categories": [ + { + "id": "FAMILY_INCOME", + "name": "Family Income", + "names": { "en": "Family Income" }, + "links": [{ "rel": "self", "type": "category" }] + }, + { + "id": "PERSONAL_INCOME", + "name": "Personal Income", + "names": { "en": "Personal Income" }, + "links": [{ "rel": "self", "type": "category" }] + }, + { + "id": "HOUSEHOLD_INCOME", + "name": "Household Income", + "names": { "en": "Household Income" }, + "links": [{ "rel": "self", "type": "category" }] + } + ] + }, + { + "id": "ATSIP", + "name": "Aboriginal and Torres Strait Islander Peoples", + "names": { + "en": "Aboriginal and Torres Strait Islander Peoples" + }, + "links": [{ "rel": "self", "type": "category" }], + "categories": [ + { + "id": "INDIGENOUS_STATUS", + "name": "Indigenous Status", + "names": { "en": "Indigenous Status" }, + "links": [{ "rel": "self", "type": "category" }] + }, + { + "id": "POPULATION_PROJECTIONS", + "name": "Aboriginal and Torres Strait Islander Population Projections", + "names": { + "en": "Aboriginal and Torres Strait Islander Population Projections" + }, + "links": [{ "rel": "self", "type": "category" }] + } + ] + }, + { + "id": "EDUCATION", + "name": "Education", + "names": { "en": "Education" }, + "links": [{ "rel": "self", "type": "category" }], + "categories": [ + { + "id": "CHILD_EDUCATION_CARE", + "name": "Child Education and Care", + "names": { "en": "Child Education and Care" }, + "links": [{ "rel": "self", "type": "category" }] + }, + { + "id": "SCHOOLS", + "name": "Schools", + "names": { "en": "Schools" }, + "links": [{ "rel": "self", "type": "category" }] + }, + { + "id": "TYPE_EDUCATION", + "name": "Type of Education", + "names": { "en": "Type of Education" }, + "links": [{ "rel": "self", "type": "category" }] + }, + { + "id": "LEVEL_EDUCATION", + "name": "Level of Education", + "names": { "en": "Level of Education" }, + "links": [{ "rel": "self", "type": "category" }] + } + ] + }, + { + "id": "POPULATION", + "name": "Population", + "names": { "en": "Population" }, + "links": [{ "rel": "self", "type": "category" }], + "categories": [ + { + "id": "RIM", + "name": "Regional Internal Migration", + "names": { "en": "Regional Internal Migration" }, + "links": [{ "rel": "self", "type": "category" }] + }, + { + "id": "ERP", + "name": "Estimated Resident Population", + "names": { "en": "Estimated Resident Population" }, + "links": [{ "rel": "self", "type": "category" }] + }, + { + "id": "OVERSEAS_MIGRATION", + "name": "Overseas Migration", + "names": { "en": "Overseas Migration" }, + "links": [{ "rel": "self", "type": "category" }] + }, + { + "id": "BIRTHS", + "name": "Births", + "names": { "en": "Births" }, + "links": [{ "rel": "self", "type": "category" }] + }, + { + "id": "USUAL_HOME", + "name": "Usual Home", + "names": { "en": "Usual Home" }, + "links": [{ "rel": "self", "type": "category" }] + }, + { + "id": "POP_PROJ", + "name": "Population Projections", + "names": { "en": "Population Projections" }, + "links": [{ "rel": "self", "type": "category" }] + }, + { + "id": "INTERSTATE_MIGRATION", + "name": "Interstate Migration", + "names": { "en": "Interstate Migration" }, + "links": [{ "rel": "self", "type": "category" }] + }, + { + "id": "DEATHS", + "name": "Deaths", + "names": { "en": "Deaths" }, + "links": [{ "rel": "self", "type": "category" }] + } + ] + }, + { + "id": "HOUSING", + "name": "Housing", + "names": { "en": "Housing" }, + "links": [{ "rel": "self", "type": "category" }], + "categories": [ + { + "id": "DWELLING_STRUCTURE", + "name": "Dwelling Structure", + "names": { "en": "Dwelling Structure" }, + "links": [{ "rel": "self", "type": "category" }] + }, + { + "id": "RENT", + "name": "Rent", + "names": { "en": "Rent" }, + "links": [{ "rel": "self", "type": "category" }] + }, + { + "id": "TENURE_LANDLORD", + "name": "Tenure and Landlord Type", + "names": { "en": "Tenure and Landlord Type" }, + "links": [{ "rel": "self", "type": "category" }] + }, + { + "id": "MORTGAGE", + "name": "Mortgage", + "names": { "en": "Mortgage" }, + "links": [{ "rel": "self", "type": "category" }] + }, + { + "id": "INTERNET_ACCESS", + "name": "Internet Access", + "names": { "en": "Internet Access" }, + "links": [{ "rel": "self", "type": "category" }] + } + ] + }, + { + "id": "CRIME_JUSTICE", + "name": "Crime and Justice", + "names": { "en": "Crime and Justice" }, + "links": [{ "rel": "self", "type": "category" }] + } + ] + }, + { + "id": "LABOUR", + "name": "LABOUR", + "names": { "en": "LABOUR" }, + "links": [{ "rel": "self", "type": "category" }], + "categories": [ + { + "id": "TRAVEL", + "name": "Travel to Work", + "names": { "en": "Travel to Work" }, + "links": [{ "rel": "self", "type": "category" }] + }, + { + "id": "EARNINGS_HOURS", + "name": "Earnings and Work Hours", + "names": { "en": "Earnings and Work Hours" }, + "links": [{ "rel": "self", "type": "category" }] + }, + { + "id": "INDUSTRY_EMPLOYMENT", + "name": "Industry of Employment", + "names": { "en": "Industry of Employment" }, + "links": [{ "rel": "self", "type": "category" }] + }, + { + "id": "EMPLOYMENT_UNEMPLOYMENT", + "name": "Employment and Unemployment", + "names": { "en": "Employment and Unemployment" }, + "links": [{ "rel": "self", "type": "category" }] + }, + { + "id": "UNPAID_WORK", + "name": "Unpaid Work", + "names": { "en": "Unpaid Work" }, + "links": [{ "rel": "self", "type": "category" }] + }, + { + "id": "OCCUPATION", + "name": "Occupation", + "names": { "en": "Occupation" }, + "links": [{ "rel": "self", "type": "category" }] + }, + { + "id": "INDUSTRIAL_DISPUTES", + "name": "Industrial Disputes", + "names": { "en": "Industrial Disputes" }, + "links": [{ "rel": "self", "type": "category" }] + }, + { + "id": "LABOUR_FORCE_STATUS", + "name": "Labour Force Status", + "names": { "en": "Labour Force Status" }, + "links": [{ "rel": "self", "type": "category" }] + } + ] + }, + { + "id": "HEALTH", + "name": "HEALTH", + "names": { "en": "HEALTH" }, + "links": [{ "rel": "self", "type": "category" }], + "categories": [ + { + "id": "HEALTH_CONDITIONS", + "name": "Health Conditions and Risk Factors", + "names": { "en": "Health Conditions and Risk Factors" }, + "links": [{ "rel": "self", "type": "category" }] + }, + { + "id": "MENTAL_HEALTH", + "name": "Mental Health", + "names": { "en": "Mental Health" }, + "links": [{ "rel": "self", "type": "category" }] + }, + { + "id": "CAUSE_DEATH", + "name": "Causes of Death", + "names": { "en": "Causes of Death" }, + "links": [{ "rel": "self", "type": "category" }] + }, + { + "id": "FERTILITY_BIRTHS", + "name": "Fertility and Births", + "names": { "en": "Fertility and Births" }, + "links": [{ "rel": "self", "type": "category" }] + }, + { + "id": "HEALTH_SERVICES", + "name": "Health Services", + "names": { "en": "Health Services" }, + "links": [{ "rel": "self", "type": "category" }] + }, + { + "id": "DISABILITY", + "name": "Disability", + "names": { "en": "Disability" }, + "links": [{ "rel": "self", "type": "category" }] + } + ] + }, + { + "id": "ENVIRONMENT", + "name": "ENVIRONMENT", + "names": { "en": "ENVIRONMENT" }, + "links": [{ "rel": "self", "type": "category" }], + "categories": [ + { + "id": "ENVIRONMENTAL_MANAGEMENT", + "name": "Environmental Management", + "names": { "en": "Environmental Management" }, + "links": [{ "rel": "self", "type": "category" }] + } + ] + }, + { + "id": "SNAPSHOTS", + "name": "SNAPSHOTS", + "names": { "en": "SNAPSHOTS" }, + "links": [{ "rel": "self", "type": "category" }], + "categories": [ + { + "id": "SEIFA", + "name": "Socio-Economic Indexes for Areas (SEIFA)", + "names": { "en": "Socio-Economic Indexes for Areas (SEIFA)" }, + "links": [{ "rel": "self", "type": "category" }] + }, + { + "id": "REGIONAL_STATISTICS", + "name": "Regional Statistics", + "names": { "en": "Regional Statistics" }, + "links": [{ "rel": "self", "type": "category" }] + } + ] + }, + { + "id": "CENSUS", + "name": "CENSUS", + "names": { "en": "CENSUS" }, + "links": [{ "rel": "self", "type": "category" }], + "categories": [ + { + "id": "CENSUS_2021", + "name": "2021 Census of Population and Housing", + "names": { "en": "2021 Census of Population and Housing" }, + "links": [{ "rel": "self", "type": "category" }], + "categories": [ + { + "id": "2021_COMM_PROFILE", + "name": "Basic Community Profiles", + "names": { "en": "Basic Community Profiles" }, + "links": [{ "rel": "self", "type": "category" }] + }, + { + "id": "2021_TIME_PROFILE_LGA", + "name": "Time Series Profiles (Local Government Areas)", + "names": { + "en": "Time Series Profiles (Local Government Areas)" + }, + "links": [{ "rel": "self", "type": "category" }] + }, + { + "id": "2021_COMM_PROFILE_SA1", + "name": "Basic Community Profiles (South Australia SA1)", + "names": { + "en": "Basic Community Profiles (South Australia SA1)" + }, + "links": [{ "rel": "self", "type": "category" }] + }, + { + "id": "2021_TIME_PROFILE", + "name": "Time Series Profiles", + "names": { "en": "Time Series Profiles" }, + "links": [{ "rel": "self", "type": "category" }] + }, + { + "id": "2021_COMM_PROFILE_LGA", + "name": "Basic Community Profiles (Local Government Areas)", + "names": { + "en": "Basic Community Profiles (Local Government Areas)" + }, + "links": [{ "rel": "self", "type": "category" }] + } + ] + }, + { + "id": "CENSUS_2016", + "name": "2016 Census of Population and Housing", + "names": { "en": "2016 Census of Population and Housing" }, + "links": [{ "rel": "self", "type": "category" }], + "categories": [ + { + "id": "2016_COMM_PROFILE_SA1", + "name": "Basic Community Profiles (South Australia SA1)", + "names": { + "en": "Basic Community Profiles (South Australia SA1)" + }, + "links": [{ "rel": "self", "type": "category" }] + }, + { + "id": "2016_TIME_PROFILE_LGA", + "name": "Time Series Profiles (Local Government Areas)", + "names": { + "en": "Time Series Profiles (Local Government Areas)" + }, + "links": [{ "rel": "self", "type": "category" }] + }, + { + "id": "2016_COMM_PROFILE", + "name": "Basic Community Profiles", + "names": { "en": "Basic Community Profiles" }, + "links": [{ "rel": "self", "type": "category" }] + }, + { + "id": "2016_TIME_PROFILE", + "name": "Time Series Profiles", + "names": { "en": "Time Series Profiles" }, + "links": [{ "rel": "self", "type": "category" }] + }, + { + "id": "2016_COMM_PROFILE_LGA", + "name": "Basic Community Profiles (Local Government Areas)", + "names": { + "en": "Basic Community Profiles (Local Government Areas)" + }, + "links": [{ "rel": "self", "type": "category" }] + } + ] + }, + { + "id": "CENSUS_2011", + "name": "2011 Census of Population and Housing", + "names": { "en": "2011 Census of Population and Housing" }, + "links": [{ "rel": "self", "type": "category" }], + "categories": [ + { + "id": "2011_TIME_PROFILE_LGA", + "name": "Time Series Profiles (Local Government Areas)", + "names": { + "en": "Time Series Profiles (Local Government Areas)" + }, + "links": [{ "rel": "self", "type": "category" }] + }, + { + "id": "2011_COMM_PROFILE", + "name": "Basic Community Profiles", + "names": { "en": "Basic Community Profiles" }, + "links": [{ "rel": "self", "type": "category" }] + }, + { + "id": "2011_COMM_PROFILE_SA1", + "name": "Basic Community Profiles (South Australia SA1)", + "names": { + "en": "Basic Community Profiles (South Australia SA1)" + }, + "links": [{ "rel": "self", "type": "category" }] + }, + { + "id": "2011_TIME_PROFILE", + "name": "Time Series Profiles", + "names": { "en": "Time Series Profiles" }, + "links": [{ "rel": "self", "type": "category" }] + }, + { + "id": "2011_COMM_PROFILE_LGA", + "name": "Basic Community Profiles (Local Government Areas)", + "names": { + "en": "Basic Community Profiles (Local Government Areas)" + }, + "links": [{ "rel": "self", "type": "category" }] + } + ] + } + ] + } + ] + } + ], + "categorisations": [ + { + "id": "CAT_RT", + "links": [{ "rel": "self", "type": "categorisation" }], + "version": "1.0.0", + "agencyID": "ABS", + "isFinal": true, + "name": "Retail Trade Categorisation", + "names": { "en": "Retail Trade Categorisation" }, + "source": "urn:sdmx:org.sdmx.infomodel.datastructure.Dataflow=ABS:RT(1.0.0)", + "target": "urn:sdmx:org.sdmx.infomodel.categoryscheme.Category=ABS:ABS_TOPICS(1.0.0).INDUSTRY.RETAIL_WHOLESALE" + } + ], + "conceptSchemes": [ + { + "id": "CS_ATTRIBUTE", + "links": [{ "rel": "self", "type": "conceptscheme" }], + "version": "1.0.0", + "agencyID": "ABS", + "isFinal": true, + "name": "Attribute Concepts", + "names": { "en": "Attribute Concepts" }, + "isPartial": false, + "concepts": [ + { + "id": "UNIT_MEASURE", + "name": "Unit of Measure", + "names": { "en": "Unit of Measure" }, + "description": "Base unit in which the observation value is expressed.", + "descriptions": { + "en": "Base unit in which the observation value is expressed." + }, + "annotations": [ + { + "type": "CONTEXT", + "text": "If a unit multiplier exists the data is recorded according to the combination of the unit multiplier and the unit of measure.", + "texts": { + "en": "If a unit multiplier exists the data is recorded according to the combination of the unit multiplier and the unit of measure." + } + } + ], + "links": [{ "rel": "self", "type": "concept" }] + }, + { + "id": "UNIT_MULT", + "name": "Unit of Multiplier", + "names": { "en": "Unit of Multiplier" }, + "description": "The multiple of the unit of measure for which the data is expressed.", + "descriptions": { + "en": "The multiple of the unit of measure for which the data is expressed." + }, + "annotations": [ + { + "type": "CONTEXT", + "text": "Codes for unit of multiplier are the exponent in base 10 so that multiplying the observation by 10^UNIT_MULT gives a value expressed in the unit of measure.", + "texts": { + "en": "Codes for unit of multiplier are the exponent in base 10 so that multiplying the observation by 10^UNIT_MULT gives a value expressed in the unit of measure." + } + } + ], + "links": [{ "rel": "self", "type": "concept" }] + }, + { + "id": "OBS_STATUS", + "name": "Observation Status", + "names": { "en": "Observation Status" }, + "links": [{ "rel": "self", "type": "concept" }] + }, + { + "id": "OBS_COMMENT", + "name": "Observation Comment", + "names": { "en": "Observation Comment" }, + "links": [{ "rel": "self", "type": "concept" }] + }, + { + "id": "REPYEAREND", + "name": "Reporting Year End Day", + "names": { "en": "Reporting Year End Day" }, + "description": "A month day that specifies the ending day of the reporting periods (e.g. YYYY-A1) within the datastucture.", + "descriptions": { + "en": "A month day that specifies the ending day of the reporting periods (e.g. YYYY-A1) within the datastucture." + }, + "annotations": [ + { + "type": "CONTEXT", + "text": "The use of reporting year end day also specifies that the reporting period of YYYY-A1 references an earlier period (e.g. 2018-A1 will be equivalent to 2017/18 and not 2018/19).", + "texts": { + "en": "The use of reporting year end day also specifies that the reporting period of YYYY-A1 references an earlier period (e.g. 2018-A1 will be equivalent to 2017/18 and not 2018/19)." + } + } + ], + "links": [{ "rel": "self", "type": "concept" }] + }, + { + "id": "BASE_PERIOD", + "name": "Reference Base Period", + "names": { "en": "Reference Base Period" }, + "description": "Reference Period that the value has been based against.", + "descriptions": { + "en": "Reference Period that the value has been based against." + }, + "links": [{ "rel": "self", "type": "concept" }] + } + ] + }, + { + "id": "CS_COMMON", + "links": [{ "rel": "self", "type": "conceptscheme" }], + "version": "1.0.0", + "agencyID": "ABS", + "isFinal": true, + "name": "Common Concepts", + "names": { "en": "Common Concepts" }, + "isPartial": false, + "concepts": [ + { + "id": "OBS_VALUE", + "name": "Observation Value", + "names": { "en": "Observation Value" }, + "description": "The observed value of the variable identified by the series dimension values.", + "descriptions": { + "en": "The observed value of the variable identified by the series dimension values." + }, + "links": [{ "rel": "self", "type": "concept" }] + }, + { + "id": "TIME_PERIOD", + "name": "Time Period", + "names": { "en": "Time Period" }, + "description": "Timespan or point in time for which the observation refers.", + "descriptions": { + "en": "Timespan or point in time for which the observation refers." + }, + "annotations": [ + { + "type": "CONTEXT", + "text": "The measurement represented by each observation corresponds to a specific point in time (e.g. a single day) or a period (e.g. a month, a fiscal year, or a calendar year).", + "texts": { + "en": "The measurement represented by each observation corresponds to a specific point in time (e.g. a single day) or a period (e.g. a month, a fiscal year, or a calendar year)." + } + } + ], + "links": [{ "rel": "self", "type": "concept" }] + }, + { + "id": "FREQ", + "name": "Frequency", + "names": { "en": "Frequency" }, + "description": "Rate at which data is collated.", + "descriptions": { "en": "Rate at which data is collated." }, + "links": [{ "rel": "self", "type": "concept" }] + }, + { + "id": "MEASURE", + "name": "Measure", + "names": { "en": "Measure" }, + "links": [{ "rel": "self", "type": "concept" }] + }, + { + "id": "TSEST", + "name": "Adjustment Type", + "names": { "en": "Adjustment Type" }, + "description": "An original time series can be decomposed into three components: the trend (the general direction of the series), the seasonal component (systematic, calendar related movements) and the irregular component (unsystematic, short term fluctuations). Seasonally adjusted series are produced by estimating the seasonal component and removing this from the original series. In most economic data the seasonal component is a combination of seasonal influences (e.g. the effect of the weather or social traditions) plus other kinds of calendar related variations such as Chinese New Year and Christmas. The seasonal adjustment methodology takes into account both seasonal and other calendar related factors that evolve over time to reflect changes in activity patterns.", + "descriptions": { + "en": "An original time series can be decomposed into three components: the trend (the general direction of the series), the seasonal component (systematic, calendar related movements) and the irregular component (unsystematic, short term fluctuations). Seasonally adjusted series are produced by estimating the seasonal component and removing this from the original series. In most economic data the seasonal component is a combination of seasonal influences (e.g. the effect of the weather or social traditions) plus other kinds of calendar related variations such as Chinese New Year and Christmas. The seasonal adjustment methodology takes into account both seasonal and other calendar related factors that evolve over time to reflect changes in activity patterns." + }, + "annotations": [ + { + "type": "OTHER_LINKS", + "text": "https://www.abs.gov.au/websitedbs/D3310114.nsf/home/Time+Series+Analysis:+The+Basics", + "texts": { + "en": "https://www.abs.gov.au/websitedbs/D3310114.nsf/home/Time+Series+Analysis:+The+Basics" + } + } + ], + "links": [{ "rel": "self", "type": "concept" }] + } + ] + }, + { + "id": "CS_GEOGRAPHY", + "links": [{ "rel": "self", "type": "conceptscheme" }], + "version": "1.0.0", + "agencyID": "ABS", + "isFinal": true, + "name": "Geography Concepts", + "names": { "en": "Geography Concepts" }, + "isPartial": false, + "concepts": [ + { + "id": "REGION", + "name": "Region", + "names": { "en": "Region" }, + "links": [{ "rel": "self", "type": "concept" }] + }, + { + "id": "REGION_ARR", + "name": "Region of Arrival", + "names": { "en": "Region of Arrival" }, + "links": [{ "rel": "self", "type": "concept" }], + "parent": "REGION" + }, + { + "id": "REGION_DEP", + "name": "Region of Departure", + "names": { "en": "Region of Departure" }, + "links": [{ "rel": "self", "type": "concept" }], + "parent": "REGION" + }, + { + "id": "REGION_TYPE", + "name": "Region Type", + "names": { "en": "Region Type" }, + "links": [{ "rel": "self", "type": "concept" }] + }, + { + "id": "GEO_LEVEL", + "name": "Geography Level", + "names": { "en": "Geography Level" }, + "links": [{ "rel": "self", "type": "concept" }] + }, + { + "id": "STATE", + "name": "State", + "names": { "en": "State" }, + "links": [{ "rel": "self", "type": "concept" }] + }, + { + "id": "STATE_ORIGIN", + "name": "State of Origin", + "names": { "en": "State of Origin" }, + "links": [{ "rel": "self", "type": "concept" }], + "parent": "STATE" + }, + { + "id": "STATE_DEST", + "name": "State of Destination", + "names": { "en": "State of Destination" }, + "links": [{ "rel": "self", "type": "concept" }], + "parent": "STATE" + }, + { + "id": "STATE_ARR", + "name": "State of Arrival", + "names": { "en": "State of Arrival" }, + "links": [{ "rel": "self", "type": "concept" }], + "parent": "STATE" + }, + { + "id": "STATE_DEP", + "name": "State of Departure", + "names": { "en": "State of Departure" }, + "links": [{ "rel": "self", "type": "concept" }], + "parent": "STATE" + }, + { + "id": "STATE_TERR", + "name": "States and Territories", + "names": { "en": "States and Territories" }, + "links": [{ "rel": "self", "type": "concept" }] + }, + { + "id": "COUNTRY", + "name": "Country", + "names": { "en": "Country" }, + "links": [{ "rel": "self", "type": "concept" }] + }, + { + "id": "COUNTRY_ORIGIN", + "name": "Country of Origin", + "names": { "en": "Country of Origin" }, + "links": [{ "rel": "self", "type": "concept" }], + "parent": "COUNTRY" + }, + { + "id": "COUNTRY_DEST", + "name": "Country of Destination", + "names": { "en": "Country of Destination" }, + "links": [{ "rel": "self", "type": "concept" }], + "parent": "COUNTRY" + }, + { + "id": "COUNTRY_BIRTH", + "name": "Country of Birth", + "names": { "en": "Country of Birth" }, + "links": [{ "rel": "self", "type": "concept" }], + "parent": "COUNTRY" + }, + { + "id": "COUNTRY_RESID", + "name": "Country of Stay/Residence", + "names": { "en": "Country of Stay/Residence" }, + "links": [{ "rel": "self", "type": "concept" }], + "parent": "COUNTRY" + }, + { + "id": "FED", + "name": "Federal Electoral Division", + "names": { "en": "Federal Electoral Division" }, + "links": [{ "rel": "self", "type": "concept" }] + }, + { + "id": "IND_REGION", + "name": "Indigenous Region", + "names": { "en": "Indigenous Region" }, + "links": [{ "rel": "self", "type": "concept" }] + }, + { + "id": "LGA", + "name": "Local Government Area", + "names": { "en": "Local Government Area" }, + "links": [{ "rel": "self", "type": "concept" }] + }, + { + "id": "LGA_2011", + "name": "Local Government Areas - 2011", + "names": { "en": "Local Government Areas - 2011" }, + "links": [{ "rel": "self", "type": "concept" }], + "parent": "LGA" + }, + { + "id": "LGA_2016", + "name": "Local Government Areas - 2016", + "names": { "en": "Local Government Areas - 2016" }, + "links": [{ "rel": "self", "type": "concept" }], + "parent": "LGA" + }, + { + "id": "POA", + "name": "Postal Area Code", + "names": { "en": "Postal Area Code" }, + "links": [{ "rel": "self", "type": "concept" }] + }, + { + "id": "REMOTE", + "name": "Remoteness Area", + "names": { "en": "Remoteness Area" }, + "links": [{ "rel": "self", "type": "concept" }] + }, + { + "id": "SA2", + "name": "Statistical Area Level 2 (SA2)", + "names": { "en": "Statistical Area Level 2 (SA2)" }, + "links": [{ "rel": "self", "type": "concept" }] + }, + { + "id": "SSC", + "name": "State Suburb", + "names": { "en": "State Suburb" }, + "links": [{ "rel": "self", "type": "concept" }] + } + ] + }, + { + "id": "CS_INDUSTRY", + "links": [{ "rel": "self", "type": "conceptscheme" }], + "version": "1.0.0", + "agencyID": "ABS", + "isFinal": true, + "name": "Industry Concepts", + "names": { "en": "Industry Concepts" }, + "isPartial": false, + "concepts": [ + { + "id": "INDUSTRY", + "name": "Industry", + "names": { "en": "Industry" }, + "links": [{ "rel": "self", "type": "concept" }] + }, + { + "id": "INDUSTRY_ORIGIN", + "name": "Industry of Origin", + "names": { "en": "Industry of Origin" }, + "links": [{ "rel": "self", "type": "concept" }], + "parent": "INDUSTRY" + }, + { + "id": "INDUSTRY_EMP", + "name": "Industry of Employment", + "names": { "en": "Industry of Employment" }, + "links": [{ "rel": "self", "type": "concept" }], + "parent": "INDUSTRY" + }, + { + "id": "INDUSTRY_RETAIL", + "name": "Retail Industry", + "names": { "en": "Retail Industry" }, + "links": [{ "rel": "self", "type": "concept" }] + } + ] + } + ], + "codelists": [ + { + "id": "CL_FREQ", + "links": [{ "rel": "self", "type": "codelist" }], + "version": "1.0.0", + "agencyID": "ABS", + "isFinal": true, + "name": "Frequency", + "names": { "en": "Frequency" }, + "isPartial": false, + "codes": [ + { + "id": "H", + "name": "Hourly", + "names": { "en": "Hourly" }, + "description": "To be used for data collected or disseminated every hour.", + "descriptions": { + "en": "To be used for data collected or disseminated every hour." + }, + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "D", + "name": "Daily", + "names": { "en": "Daily" }, + "description": "To be used for data collected or disseminated every day.", + "descriptions": { + "en": "To be used for data collected or disseminated every day." + }, + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "N", + "name": "Minutely", + "names": { "en": "Minutely" }, + "description": "While N denotes \"minutely\", usually, there may be no observations every minute (for several series the frequency is usually \"irregular\" within a day/days). And though observations may be sparse (not collected or disseminated every minute), missing values do not need to be given for the minutes when no observations exist: in any case the time stamp determines when an observation is observed.", + "descriptions": { + "en": "While N denotes \"minutely\", usually, there may be no observations every minute (for several series the frequency is usually \"irregular\" within a day/days). And though observations may be sparse (not collected or disseminated every minute), missing values do not need to be given for the minutes when no observations exist: in any case the time stamp determines when an observation is observed." + }, + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "B", + "name": "Daily or businessweek", + "names": { "en": "Daily or businessweek" }, + "description": "Similar to \"daily\", however there are no observations for Saturdays and Sundays (so, neither \"missing values\" nor \"numeric values\" should be provided for Saturday and Sunday). This treatment (\"business\") is one way to deal with such cases, but it is not the only option. Such a time series could alternatively be considered daily (\"D\"), thus, with missing values in the weekend.", + "descriptions": { + "en": "Similar to \"daily\", however there are no observations for Saturdays and Sundays (so, neither \"missing values\" nor \"numeric values\" should be provided for Saturday and Sunday). This treatment (\"business\") is one way to deal with such cases, but it is not the only option. Such a time series could alternatively be considered daily (\"D\"), thus, with missing values in the weekend." + }, + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "W", + "name": "Weekly", + "names": { "en": "Weekly" }, + "description": "To be used for data collected or disseminated every week.", + "descriptions": { + "en": "To be used for data collected or disseminated every week." + }, + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "S", + "name": "Half-yearly, semester", + "names": { "en": "Half-yearly, semester" }, + "description": "To be used for data collected or disseminated every semester.", + "descriptions": { + "en": "To be used for data collected or disseminated every semester." + }, + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "A", + "name": "Annual", + "names": { "en": "Annual" }, + "description": "To be used for data collected or disseminated every year.", + "descriptions": { + "en": "To be used for data collected or disseminated every year." + }, + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "M", + "name": "Monthly", + "names": { "en": "Monthly" }, + "description": "To be used for data collected or disseminated every month.", + "descriptions": { + "en": "To be used for data collected or disseminated every month." + }, + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "Q", + "name": "Quarterly", + "names": { "en": "Quarterly" }, + "description": "To be used for data collected or disseminated every quarter.", + "descriptions": { + "en": "To be used for data collected or disseminated every quarter." + }, + "links": [{ "rel": "self", "type": "code" }] + } + ] + }, + { + "id": "CL_OBS_STATUS", + "links": [{ "rel": "self", "type": "codelist" }], + "version": "1.0.0", + "agencyID": "ABS", + "isFinal": true, + "name": "Observation Status", + "names": { "en": "Observation Status" }, + "isPartial": false, + "codes": [ + { + "id": "k", + "name": "estimate", + "names": { "en": "estimate" }, + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "l", + "name": "not elsewhere included", + "names": { "en": "not elsewhere included" }, + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "m", + "name": "not recorded", + "names": { "en": "not recorded" }, + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "n", + "name": "not available for publication but included in totals where applicable, unless otherwise indicated", + "names": { + "en": "not available for publication but included in totals where applicable, unless otherwise indicated" + }, + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "o", + "name": "nil or rounded to zero, including null cells", + "names": { "en": "nil or rounded to zero, including null cells" }, + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "p", + "name": "preliminary figure or series subject to revision", + "names": { + "en": "preliminary figure or series subject to revision" + }, + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "q", + "name": "not available", + "names": { "en": "not available" }, + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "r", + "name": "revised", + "names": { "en": "revised" }, + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "s", + "name": "not currently available due to break in time series", + "names": { + "en": "not currently available due to break in time series" + }, + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "t", + "name": "not yet available", + "names": { "en": "not yet available" }, + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "u", + "name": "not applicable", + "names": { "en": "not applicable" }, + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "v", + "name": "not available for publication but included in totals where applicable, unless otherwise indicated", + "names": { + "en": "not available for publication but included in totals where applicable, unless otherwise indicated" + }, + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "w", + "name": "estimate is subject to sampling variability too high for most practical purposes", + "names": { + "en": "estimate is subject to sampling variability too high for most practical purposes" + }, + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "x", + "name": "estimate has a relative standard error of 10% to less than 25% and should be used with caution", + "names": { + "en": "estimate has a relative standard error of 10% to less than 25% and should be used with caution" + }, + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "y", + "name": "estimate has a relative standard error between 25% and 50% and should be used with caution", + "names": { + "en": "estimate has a relative standard error between 25% and 50% and should be used with caution" + }, + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "z", + "name": "estimate has a relative standard error greater than 50% and is considered too unreliable for general use", + "names": { + "en": "estimate has a relative standard error greater than 50% and is considered too unreliable for general use" + }, + "links": [{ "rel": "self", "type": "code" }] + } + ] + }, + { + "id": "CL_RT_IND", + "links": [{ "rel": "self", "type": "codelist" }], + "version": "1.0.0", + "agencyID": "ABS", + "isFinal": true, + "name": "Retail Sales Industry (Introduction of ANZSIC 2006 - July 2009 redesign)", + "names": { + "en": "Retail Sales Industry (Introduction of ANZSIC 2006 - July 2009 redesign)" + }, + "isPartial": false, + "codes": [ + { + "id": "20", + "name": "Total", + "names": { "en": "Total" }, + "description": "Total", + "descriptions": { "en": "Total" }, + "annotations": [ + { "type": "ORDER", "text": "220", "texts": { "en": "220" } }, + { + "type": "FULL_NAME", + "text": "Total", + "texts": { "en": "Total" } + } + ], + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "41", + "name": "Food retailing", + "names": { "en": "Food retailing" }, + "description": "Food retailing", + "descriptions": { "en": "Food retailing" }, + "annotations": [ + { "type": "ORDER", "text": "40", "texts": { "en": "40" } }, + { + "type": "FULL_NAME", + "text": "Food retailing", + "texts": { "en": "Food retailing" } + } + ], + "links": [{ "rel": "self", "type": "code" }], + "parent": "20" + }, + { + "id": "01", + "name": "Supermarket and grocery stores", + "names": { "en": "Supermarket and grocery stores" }, + "description": "Supermarket and grocery stores", + "descriptions": { "en": "Supermarket and grocery stores" }, + "annotations": [ + { "type": "ORDER", "text": "10", "texts": { "en": "10" } }, + { + "type": "FULL_NAME", + "text": "Supermarket and grocery stores", + "texts": { "en": "Supermarket and grocery stores" } + } + ], + "links": [{ "rel": "self", "type": "code" }], + "parent": "41" + }, + { + "id": "02", + "name": "Liquor retailing", + "names": { "en": "Liquor retailing" }, + "description": "Liquor retailing", + "descriptions": { "en": "Liquor retailing" }, + "annotations": [ + { "type": "ORDER", "text": "20", "texts": { "en": "20" } }, + { + "type": "FULL_NAME", + "text": "Liquor retailing", + "texts": { "en": "Liquor retailing" } + } + ], + "links": [{ "rel": "self", "type": "code" }], + "parent": "41" + }, + { + "id": "03", + "name": "Other specialised food retailing", + "names": { "en": "Other specialised food retailing" }, + "description": "Other specialised food retailing", + "descriptions": { "en": "Other specialised food retailing" }, + "annotations": [ + { "type": "ORDER", "text": "30", "texts": { "en": "30" } }, + { + "type": "FULL_NAME", + "text": "Other specialised food retailing", + "texts": { "en": "Other specialised food retailing" } + } + ], + "links": [{ "rel": "self", "type": "code" }], + "parent": "41" + }, + { + "id": "42", + "name": "Household goods retailing", + "names": { "en": "Household goods retailing" }, + "description": "Household goods retailing", + "descriptions": { "en": "Household goods retailing" }, + "annotations": [ + { "type": "ORDER", "text": "80", "texts": { "en": "80" } }, + { + "type": "FULL_NAME", + "text": "Household goods retailing", + "texts": { "en": "Household goods retailing" } + } + ], + "links": [{ "rel": "self", "type": "code" }], + "parent": "20" + }, + { + "id": "04", + "name": "Furniture, floor coverings, houseware and textile goods retailing", + "names": { + "en": "Furniture, floor coverings, houseware and textile goods retailing" + }, + "description": "Furniture, floor coverings, houseware and textile goods retailing", + "descriptions": { + "en": "Furniture, floor coverings, houseware and textile goods retailing" + }, + "annotations": [ + { "type": "ORDER", "text": "50", "texts": { "en": "50" } }, + { + "type": "FULL_NAME", + "text": "Furniture, floor coverings, houseware and textile goods retailing", + "texts": { + "en": "Furniture, floor coverings, houseware and textile goods retailing" + } + } + ], + "links": [{ "rel": "self", "type": "code" }], + "parent": "42" + }, + { + "id": "05", + "name": "Electrical and electronic goods retailing", + "names": { "en": "Electrical and electronic goods retailing" }, + "description": "Electrical and electronic goods retailing", + "descriptions": { + "en": "Electrical and electronic goods retailing" + }, + "annotations": [ + { "type": "ORDER", "text": "60", "texts": { "en": "60" } }, + { + "type": "FULL_NAME", + "text": "Electrical and electronic goods retailing", + "texts": { "en": "Electrical and electronic goods retailing" } + } + ], + "links": [{ "rel": "self", "type": "code" }], + "parent": "42" + }, + { + "id": "06", + "name": "Hardware, building and garden supplies retailing", + "names": { + "en": "Hardware, building and garden supplies retailing" + }, + "description": "Hardware, building and garden supplies retailing", + "descriptions": { + "en": "Hardware, building and garden supplies retailing" + }, + "annotations": [ + { "type": "ORDER", "text": "70", "texts": { "en": "70" } }, + { + "type": "FULL_NAME", + "text": "Hardware, building and garden supplies retailing", + "texts": { + "en": "Hardware, building and garden supplies retailing" + } + } + ], + "links": [{ "rel": "self", "type": "code" }], + "parent": "42" + }, + { + "id": "43", + "name": "Clothing, footwear and personal accessory retailing", + "names": { + "en": "Clothing, footwear and personal accessory retailing" + }, + "description": "Clothing, footwear and personal accessory retailing", + "descriptions": { + "en": "Clothing, footwear and personal accessory retailing" + }, + "annotations": [ + { "type": "ORDER", "text": "110", "texts": { "en": "110" } }, + { + "type": "FULL_NAME", + "text": "Clothing, footwear and personal accessory retailing", + "texts": { + "en": "Clothing, footwear and personal accessory retailing" + } + } + ], + "links": [{ "rel": "self", "type": "code" }], + "parent": "20" + }, + { + "id": "07", + "name": "Clothing retailing", + "names": { "en": "Clothing retailing" }, + "description": "Clothing retailing", + "descriptions": { "en": "Clothing retailing" }, + "annotations": [ + { "type": "ORDER", "text": "90", "texts": { "en": "90" } }, + { + "type": "FULL_NAME", + "text": "Clothing retailing", + "texts": { "en": "Clothing retailing" } + } + ], + "links": [{ "rel": "self", "type": "code" }], + "parent": "43" + }, + { + "id": "08", + "name": "Footwear and other personal accessory retailing", + "names": { + "en": "Footwear and other personal accessory retailing" + }, + "description": "Footwear and other personal accessory retailing", + "descriptions": { + "en": "Footwear and other personal accessory retailing" + }, + "annotations": [ + { "type": "ORDER", "text": "100", "texts": { "en": "100" } }, + { + "type": "FULL_NAME", + "text": "Footwear and other personal accessory retailing", + "texts": { + "en": "Footwear and other personal accessory retailing" + } + } + ], + "links": [{ "rel": "self", "type": "code" }], + "parent": "43" + }, + { + "id": "44", + "name": "Department stores", + "names": { "en": "Department stores" }, + "description": "Department stores", + "descriptions": { "en": "Department stores" }, + "annotations": [ + { "type": "ORDER", "text": "130", "texts": { "en": "130" } }, + { + "type": "FULL_NAME", + "text": "Department stores", + "texts": { "en": "Department stores" } + } + ], + "links": [{ "rel": "self", "type": "code" }], + "parent": "20" + }, + { + "id": "09", + "name": "Department stores", + "names": { "en": "Department stores" }, + "description": "Department stores", + "descriptions": { "en": "Department stores" }, + "annotations": [ + { "type": "ORDER", "text": "120", "texts": { "en": "120" } }, + { + "type": "FULL_NAME", + "text": "Department stores", + "texts": { "en": "Department stores" } + } + ], + "links": [{ "rel": "self", "type": "code" }], + "parent": "44" + }, + { + "id": "45", + "name": "Other retailing", + "names": { "en": "Other retailing" }, + "description": "Other retailing", + "descriptions": { "en": "Other retailing" }, + "annotations": [ + { "type": "ORDER", "text": "180", "texts": { "en": "180" } }, + { + "type": "FULL_NAME", + "text": "Other retailing", + "texts": { "en": "Other retailing" } + } + ], + "links": [{ "rel": "self", "type": "code" }], + "parent": "20" + }, + { + "id": "10", + "name": "Newspaper and book retailing", + "names": { "en": "Newspaper and book retailing" }, + "description": "Newspaper and book retailing", + "descriptions": { "en": "Newspaper and book retailing" }, + "annotations": [ + { "type": "ORDER", "text": "140", "texts": { "en": "140" } }, + { + "type": "FULL_NAME", + "text": "Newspaper and book retailing", + "texts": { "en": "Newspaper and book retailing" } + } + ], + "links": [{ "rel": "self", "type": "code" }], + "parent": "45" + }, + { + "id": "11", + "name": "Other recreational goods retailing", + "names": { "en": "Other recreational goods retailing" }, + "description": "Other recreational goods retailing", + "descriptions": { "en": "Other recreational goods retailing" }, + "annotations": [ + { "type": "ORDER", "text": "150", "texts": { "en": "150" } }, + { + "type": "FULL_NAME", + "text": "Other recreational goods retailing", + "texts": { "en": "Other recreational goods retailing" } + } + ], + "links": [{ "rel": "self", "type": "code" }], + "parent": "45" + }, + { + "id": "12", + "name": "Pharmaceutical, cosmetic and toiletry goods retailing", + "names": { + "en": "Pharmaceutical, cosmetic and toiletry goods retailing" + }, + "description": "Pharmaceutical, cosmetic and toiletry goods retailing", + "descriptions": { + "en": "Pharmaceutical, cosmetic and toiletry goods retailing" + }, + "annotations": [ + { "type": "ORDER", "text": "160", "texts": { "en": "160" } }, + { + "type": "FULL_NAME", + "text": "Pharmaceutical, cosmetic and toiletry goods retailing", + "texts": { + "en": "Pharmaceutical, cosmetic and toiletry goods retailing" + } + } + ], + "links": [{ "rel": "self", "type": "code" }], + "parent": "45" + }, + { + "id": "13", + "name": "Other retailing n.e.c.", + "names": { "en": "Other retailing n.e.c." }, + "description": "Other retailing n.e.c.", + "descriptions": { "en": "Other retailing n.e.c." }, + "annotations": [ + { "type": "ORDER", "text": "170", "texts": { "en": "170" } }, + { + "type": "FULL_NAME", + "text": "Other retailing n.e.c.", + "texts": { "en": "Other retailing n.e.c." } + } + ], + "links": [{ "rel": "self", "type": "code" }], + "parent": "45" + }, + { + "id": "46", + "name": "Cafes, restaurants and takeaway food services", + "names": { "en": "Cafes, restaurants and takeaway food services" }, + "description": "Cafes, restaurants and takeaway food services", + "descriptions": { + "en": "Cafes, restaurants and takeaway food services" + }, + "annotations": [ + { "type": "ORDER", "text": "210", "texts": { "en": "210" } }, + { + "type": "FULL_NAME", + "text": "Cafes, restaurants and takeaway food services", + "texts": { + "en": "Cafes, restaurants and takeaway food services" + } + } + ], + "links": [{ "rel": "self", "type": "code" }], + "parent": "20" + }, + { + "id": "14", + "name": "Cafes, restaurants and catering services", + "names": { "en": "Cafes, restaurants and catering services" }, + "description": "Cafes, restaurants and catering services", + "descriptions": { + "en": "Cafes, restaurants and catering services" + }, + "annotations": [ + { "type": "ORDER", "text": "190", "texts": { "en": "190" } }, + { + "type": "FULL_NAME", + "text": "Cafes, restaurants and catering services", + "texts": { "en": "Cafes, restaurants and catering services" } + } + ], + "links": [{ "rel": "self", "type": "code" }], + "parent": "46" + }, + { + "id": "15", + "name": "Takeaway food services", + "names": { "en": "Takeaway food services" }, + "description": "Takeaway food services", + "descriptions": { "en": "Takeaway food services" }, + "annotations": [ + { "type": "ORDER", "text": "200", "texts": { "en": "200" } }, + { + "type": "FULL_NAME", + "text": "Takeaway food services", + "texts": { "en": "Takeaway food services" } + } + ], + "links": [{ "rel": "self", "type": "code" }], + "parent": "46" + } + ] + }, + { + "id": "CL_RT_MEASURE", + "links": [{ "rel": "self", "type": "codelist" }], + "version": "1.0.0", + "agencyID": "ABS", + "isFinal": true, + "name": "Retail Trade Measures", + "names": { "en": "Retail Trade Measures" }, + "isPartial": false, + "codes": [ + { + "id": "M1", + "name": "Current Prices", + "names": { "en": "Current Prices" }, + "annotations": [ + { "type": "ORDER", "text": "10", "texts": { "en": "10" } } + ], + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "M2", + "name": "Current Prices Percantage Change from Previous Period", + "names": { + "en": "Current Prices Percantage Change from Previous Period" + }, + "annotations": [ + { "type": "ORDER", "text": "20", "texts": { "en": "20" } } + ], + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "M3", + "name": "Chain Volume Measures", + "names": { "en": "Chain Volume Measures" }, + "annotations": [ + { "type": "ORDER", "text": "30", "texts": { "en": "30" } } + ], + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "M4", + "name": "Chain Volume Measures Percentage Change from Previous Period", + "names": { + "en": "Chain Volume Measures Percentage Change from Previous Period" + }, + "annotations": [ + { "type": "ORDER", "text": "40", "texts": { "en": "40" } } + ], + "links": [{ "rel": "self", "type": "code" }] + } + ] + }, + { + "id": "CL_STATE", + "links": [{ "rel": "self", "type": "codelist" }], + "version": "1.0.0", + "agencyID": "ABS", + "isFinal": true, + "name": "State", + "names": { "en": "State" }, + "isPartial": false, + "codes": [ + { + "id": "AUS", + "name": "Australia", + "names": { "en": "Australia" }, + "annotations": [ + { "type": "ORDER", "text": "10", "texts": { "en": "10" } } + ], + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "1", + "name": "New South Wales", + "names": { "en": "New South Wales" }, + "annotations": [ + { "type": "ORDER", "text": "20", "texts": { "en": "20" } } + ], + "links": [{ "rel": "self", "type": "code" }], + "parent": "AUS" + }, + { + "id": "2", + "name": "Victoria", + "names": { "en": "Victoria" }, + "annotations": [ + { "type": "ORDER", "text": "30", "texts": { "en": "30" } } + ], + "links": [{ "rel": "self", "type": "code" }], + "parent": "AUS" + }, + { + "id": "3", + "name": "Queensland", + "names": { "en": "Queensland" }, + "annotations": [ + { "type": "ORDER", "text": "40", "texts": { "en": "40" } } + ], + "links": [{ "rel": "self", "type": "code" }], + "parent": "AUS" + }, + { + "id": "4", + "name": "South Australia", + "names": { "en": "South Australia" }, + "annotations": [ + { "type": "ORDER", "text": "50", "texts": { "en": "50" } } + ], + "links": [{ "rel": "self", "type": "code" }], + "parent": "AUS" + }, + { + "id": "5", + "name": "Western Australia", + "names": { "en": "Western Australia" }, + "annotations": [ + { "type": "ORDER", "text": "60", "texts": { "en": "60" } } + ], + "links": [{ "rel": "self", "type": "code" }], + "parent": "AUS" + }, + { + "id": "6", + "name": "Tasmania", + "names": { "en": "Tasmania" }, + "annotations": [ + { "type": "ORDER", "text": "70", "texts": { "en": "70" } } + ], + "links": [{ "rel": "self", "type": "code" }], + "parent": "AUS" + }, + { + "id": "7", + "name": "Northern Territory", + "names": { "en": "Northern Territory" }, + "annotations": [ + { "type": "ORDER", "text": "80", "texts": { "en": "80" } } + ], + "links": [{ "rel": "self", "type": "code" }], + "parent": "AUS" + }, + { + "id": "8", + "name": "Australian Capital Territory", + "names": { "en": "Australian Capital Territory" }, + "annotations": [ + { "type": "ORDER", "text": "90", "texts": { "en": "90" } } + ], + "links": [{ "rel": "self", "type": "code" }], + "parent": "AUS" + }, + { + "id": "9", + "name": "Other Territories", + "names": { "en": "Other Territories" }, + "annotations": [ + { "type": "ORDER", "text": "100", "texts": { "en": "100" } } + ], + "links": [{ "rel": "self", "type": "code" }], + "parent": "AUS" + } + ] + }, + { + "id": "CL_TSEST", + "links": [{ "rel": "self", "type": "codelist" }], + "version": "1.0.0", + "agencyID": "ABS", + "isFinal": true, + "name": "Time Series Estimates", + "names": { "en": "Time Series Estimates" }, + "isPartial": false, + "codes": [ + { + "id": "10", + "name": "Original", + "names": { "en": "Original" }, + "description": "Original", + "descriptions": { "en": "Original" }, + "annotations": [ + { "type": "ORDER", "text": "1", "texts": { "en": "1" } }, + { + "type": "FULL_NAME", + "text": "Original", + "texts": { "en": "Original" } + } + ], + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "20", + "name": "Seasonally Adjusted", + "names": { "en": "Seasonally Adjusted" }, + "description": "Seasonally Adjusted", + "descriptions": { "en": "Seasonally Adjusted" }, + "annotations": [ + { "type": "ORDER", "text": "2", "texts": { "en": "2" } }, + { + "type": "FULL_NAME", + "text": "Seasonally Adjusted", + "texts": { "en": "Seasonally Adjusted" } + } + ], + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "30", + "name": "Trend", + "names": { "en": "Trend" }, + "description": "Trend", + "descriptions": { "en": "Trend" }, + "annotations": [ + { "type": "ORDER", "text": "3", "texts": { "en": "3" } }, + { + "type": "FULL_NAME", + "text": "Trend", + "texts": { "en": "Trend" } + } + ], + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "40", + "name": "Sensitivity Upper", + "names": { "en": "Sensitivity Upper" }, + "description": "Sensitivity Upper", + "descriptions": { "en": "Sensitivity Upper" }, + "annotations": [ + { "type": "ORDER", "text": "4", "texts": { "en": "4" } }, + { + "type": "FULL_NAME", + "text": "Sensitivity Upper", + "texts": { "en": "Sensitivity Upper" } + } + ], + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "50", + "name": "Sensitivity Lower", + "names": { "en": "Sensitivity Lower" }, + "description": "Sensitivity Lower", + "descriptions": { "en": "Sensitivity Lower" }, + "annotations": [ + { "type": "ORDER", "text": "5", "texts": { "en": "5" } }, + { + "type": "FULL_NAME", + "text": "Sensitivity Lower", + "texts": { "en": "Sensitivity Lower" } + } + ], + "links": [{ "rel": "self", "type": "code" }] + } + ] + }, + { + "id": "CL_UNIT_MEASURE", + "links": [{ "rel": "self", "type": "codelist" }], + "version": "1.0.0", + "agencyID": "ABS", + "isFinal": true, + "name": "Unit of Measure", + "names": { "en": "Unit of Measure" }, + "isPartial": false, + "codes": [ + { + "id": "AUD", + "name": "Australian Dollars", + "names": { "en": "Australian Dollars" }, + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "NUM", + "name": "Number", + "names": { "en": "Number" }, + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "PCT", + "name": "Percent", + "names": { "en": "Percent" }, + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "PCT_PTS", + "name": "Percentage Points", + "names": { "en": "Percentage Points" }, + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "PROP", + "name": "Proportion", + "names": { "en": "Proportion" }, + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "IN", + "name": "Index Numbers", + "names": { "en": "Index Numbers" }, + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "IP", + "name": "Index Points", + "names": { "en": "Index Points" }, + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "VAR", + "name": "Variance", + "names": { "en": "Variance" }, + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "NA", + "name": "Not Applicable", + "names": { "en": "Not Applicable" }, + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "PSNS", + "name": "Persons", + "names": { "en": "Persons" }, + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "PSN_YR", + "name": "Person Years", + "names": { "en": "Person Years" }, + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "JOB", + "name": "Jobs", + "names": { "en": "Jobs" }, + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "M_G", + "name": "Milligrams", + "names": { "en": "Milligrams" }, + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "G", + "name": "Grams", + "names": { "en": "Grams" }, + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "KG", + "name": "Kilograms", + "names": { "en": "Kilograms" }, + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "CT", + "name": "Carat (metric)", + "names": { "en": "Carat (metric)" }, + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "MCT", + "name": "Megacarat (metric)", + "names": { "en": "Megacarat (metric)" }, + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "T", + "name": "Tonnes", + "names": { "en": "Tonnes" }, + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "MT", + "name": "Megatonnes", + "names": { "en": "Megatonnes" }, + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "GT", + "name": "Gigatonnes", + "names": { "en": "Gigatonnes" }, + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "TKM", + "name": "Tonnes-kilometres", + "names": { "en": "Tonnes-kilometres" }, + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "M_M", + "name": "Millimetres", + "names": { "en": "Millimetres" }, + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "M", + "name": "Metres", + "names": { "en": "Metres" }, + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "KM", + "name": "Kilometres", + "names": { "en": "Kilometres" }, + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "SQM", + "name": "Square Metres", + "names": { "en": "Square Metres" }, + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "SQKM", + "name": "Square Kilometres", + "names": { "en": "Square Kilometres" }, + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "HA", + "name": "Hectares", + "names": { "en": "Hectares" }, + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "CBM", + "name": "Cubic Metres", + "names": { "en": "Cubic Metres" }, + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "L", + "name": "Litres", + "names": { "en": "Litres" }, + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "KL", + "name": "Kilolitres", + "names": { "en": "Kilolitres" }, + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "ML", + "name": "Megalitres", + "names": { "en": "Megalitres" }, + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "GL", + "name": "Gigalitres", + "names": { "en": "Gigalitres" }, + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "A", + "name": "Ampere", + "names": { "en": "Ampere" }, + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "KVA", + "name": "Kilovolt Amperes", + "names": { "en": "Kilovolt Amperes" }, + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "W", + "name": "Watts", + "names": { "en": "Watts" }, + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "KW", + "name": "Kilowatts", + "names": { "en": "Kilowatts" }, + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "KWH", + "name": "Kilowatt Hours", + "names": { "en": "Kilowatt Hours" }, + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "GWH", + "name": "Gigawatt Hours", + "names": { "en": "Gigawatt Hours" }, + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "J", + "name": "Joules", + "names": { "en": "Joules" }, + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "KJ", + "name": "Kilojoules", + "names": { "en": "Kilojoules" }, + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "MJ", + "name": "Megajoules", + "names": { "en": "Megajoules" }, + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "GJ", + "name": "Gigajoules", + "names": { "en": "Gigajoules" }, + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "TJ", + "name": "Terajoules", + "names": { "en": "Terajoules" }, + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "PJ", + "name": "Petajoules", + "names": { "en": "Petajoules" }, + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "C", + "name": "Coulumb", + "names": { "en": "Coulumb" }, + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "CD", + "name": "Candela", + "names": { "en": "Candela" }, + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "K", + "name": "Kelvin", + "names": { "en": "Kelvin" }, + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "DEG_CEL", + "name": "Degrees Celsius", + "names": { "en": "Degrees Celsius" }, + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "S", + "name": "Seconds", + "names": { "en": "Seconds" }, + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "MIN", + "name": "Minutes", + "names": { "en": "Minutes" }, + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "HR", + "name": "Hours", + "names": { "en": "Hours" }, + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "DAY", + "name": "Days", + "names": { "en": "Days" }, + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "WK", + "name": "Weeks", + "names": { "en": "Weeks" }, + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "MTH", + "name": "Months", + "names": { "en": "Months" }, + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "YR", + "name": "Years", + "names": { "en": "Years" }, + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "B", + "name": "Bytes", + "names": { "en": "Bytes" }, + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "KB", + "name": "Kilobytes", + "names": { "en": "Kilobytes" }, + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "MB", + "name": "Megabytes", + "names": { "en": "Megabytes" }, + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "GB", + "name": "Gigabytes", + "names": { "en": "Gigabytes" }, + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "TB", + "name": "Terabytes", + "names": { "en": "Terabytes" }, + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "DEG", + "name": "Degrees", + "names": { "en": "Degrees" }, + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "RAD", + "name": "Radians", + "names": { "en": "Radians" }, + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "DOZ", + "name": "Dozen", + "names": { "en": "Dozen" }, + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "PR", + "name": "Pairs", + "names": { "en": "Pairs" }, + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "ROOM", + "name": "Rooms", + "names": { "en": "Rooms" }, + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "SITE", + "name": "Sites", + "names": { "en": "Sites" }, + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "BUNDLE", + "name": "Bundles", + "names": { "en": "Bundles" }, + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "CARTON", + "name": "Cartons", + "names": { "en": "Cartons" }, + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "UNK", + "name": "Unknown", + "names": { "en": "Unknown" }, + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "GBP", + "name": "Pound Sterling", + "names": { "en": "Pound Sterling" }, + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "CENT", + "name": "Cents", + "names": { "en": "Cents" }, + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "FAM", + "name": "Families", + "names": { "en": "Families" }, + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "HH", + "name": "Households", + "names": { "en": "Households" }, + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "RATE", + "name": "Rate", + "names": { "en": "Rate" }, + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "AUD_PER_EMP", + "name": "Australian Dollars per Employee", + "names": { "en": "Australian Dollars per Employee" }, + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "AUD_PER_PSN", + "name": "Australian Dollars per Person", + "names": { "en": "Australian Dollars per Person" }, + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "AUD_PER_KL", + "name": "Australian Dollars per Kilolitre", + "names": { "en": "Australian Dollars per Kilolitre" }, + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "AUD_PER_KG", + "name": "Australian Dollars per Kilogram", + "names": { "en": "Australian Dollars per Kilogram" }, + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "AUD_PER_T", + "name": "Australian Dollars per Tonne", + "names": { "en": "Australian Dollars per Tonne" }, + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "AUD_PER_CT", + "name": "Australian Dollars per Carat", + "names": { "en": "Australian Dollars per Carat" }, + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "AUD_PER_SQM", + "name": "Australian Dollars per Square Metre", + "names": { "en": "Australian Dollars per Square Metre" }, + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "AUD_PER_1000CBM", + "name": "Australian Dollars per thousand cubic metres", + "names": { "en": "Australian Dollars per thousand cubic metres" }, + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "L_PER_100KM", + "name": "Litres per 100 Kilometres", + "names": { "en": "Litres per 100 Kilometres" }, + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "L_PER_KM", + "name": "Litres per Kilometre", + "names": { "en": "Litres per Kilometre" }, + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "ML_PER_HA", + "name": "Megalitres per Hectare", + "names": { "en": "Megalitres per Hectare" }, + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "T_PER_HA", + "name": "Tonnes per Hectare", + "names": { "en": "Tonnes per Hectare" }, + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "PSNS_PER_SQKM", + "name": "Persons per Square Kilometre", + "names": { "en": "Persons per Square Kilometre" }, + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "KG_PER_TREE", + "name": "Kilograms per Tree", + "names": { "en": "Kilograms per Tree" }, + "links": [{ "rel": "self", "type": "code" }] + } + ] + }, + { + "id": "CL_UNIT_MULT", + "links": [{ "rel": "self", "type": "codelist" }], + "version": "1.0.0", + "agencyID": "ABS", + "isFinal": true, + "name": "Unit Multiplier", + "names": { "en": "Unit Multiplier" }, + "isPartial": false, + "codes": [ + { + "id": "0", + "name": "Units", + "names": { "en": "Units" }, + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "1", + "name": "Tens", + "names": { "en": "Tens" }, + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "2", + "name": "Hundreds", + "names": { "en": "Hundreds" }, + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "3", + "name": "Thousands", + "names": { "en": "Thousands" }, + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "4", + "name": "Tens of thousands", + "names": { "en": "Tens of thousands" }, + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "5", + "name": "Hundreds of thousands", + "names": { "en": "Hundreds of thousands" }, + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "6", + "name": "Millions", + "names": { "en": "Millions" }, + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "7", + "name": "Tens of millions", + "names": { "en": "Tens of millions" }, + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "8", + "name": "Hundreds of millions", + "names": { "en": "Hundreds of millions" }, + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "9", + "name": "Billions", + "names": { "en": "Billions" }, + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "10", + "name": "Tens of billions", + "names": { "en": "Tens of billions" }, + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "11", + "name": "Hundreds of billions", + "names": { "en": "Hundreds of billions" }, + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "12", + "name": "Trillions", + "names": { "en": "Trillions" }, + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "13", + "name": "Tens of trillions", + "names": { "en": "Tens of trillions" }, + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "14", + "name": "Hundred of trillions", + "names": { "en": "Hundred of trillions" }, + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "15", + "name": "Quadrillions", + "names": { "en": "Quadrillions" }, + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "-1", + "name": "Tenths", + "names": { "en": "Tenths" }, + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "-2", + "name": "Hundredths", + "names": { "en": "Hundredths" }, + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "-3", + "name": "Thousandths", + "names": { "en": "Thousandths" }, + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "-4", + "name": "Ten-thousandths", + "names": { "en": "Ten-thousandths" }, + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "-5", + "name": "Hundred-thousandths", + "names": { "en": "Hundred-thousandths" }, + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "-6", + "name": "Millionths", + "names": { "en": "Millionths" }, + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "-7", + "name": "Ten-millionths", + "names": { "en": "Ten-millionths" }, + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "-8", + "name": "Hundred-millionths", + "names": { "en": "Hundred-millionths" }, + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "-9", + "name": "Billionths", + "names": { "en": "Billionths" }, + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "-10", + "name": "Ten-billionths", + "names": { "en": "Ten-billionths" }, + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "-11", + "name": "Hundred-billionths", + "names": { "en": "Hundred-billionths" }, + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "-12", + "name": "Trillionths", + "names": { "en": "Trillionths" }, + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "-13", + "name": "Ten-trillionths", + "names": { "en": "Ten-trillionths" }, + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "-14", + "name": "Hundred-trillionths", + "names": { "en": "Hundred-trillionths" }, + "links": [{ "rel": "self", "type": "code" }] + }, + { + "id": "-15", + "name": "Quadrillionths", + "names": { "en": "Quadrillionths" }, + "links": [{ "rel": "self", "type": "code" }] + } + ] + } + ], + "dataStructures": [ + { + "id": "RT", + "links": [{ "rel": "self", "type": "datastructure" }], + "version": "1.0.0", + "agencyID": "ABS", + "isFinal": true, + "name": "Retail Trade Datastructure", + "names": { "en": "Retail Trade Datastructure" }, + "dataStructureComponents": { + "attributeList": { + "id": "AttributeDescriptor", + "links": [{ "rel": "self", "type": "attributedescriptor" }], + "attributes": [ + { + "id": "UNIT_MEASURE", + "links": [{ "rel": "self", "type": "dataattribute" }], + "conceptIdentity": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ABS:CS_ATTRIBUTE(1.0.0).UNIT_MEASURE", + "localRepresentation": { + "enumeration": "urn:sdmx:org.sdmx.infomodel.codelist.Codelist=ABS:CL_UNIT_MEASURE(1.0.0)" + }, + "assignmentStatus": "Mandatory", + "attributeRelationship": { "dimensions": ["MEASURE"] } + }, + { + "id": "UNIT_MULT", + "links": [{ "rel": "self", "type": "dataattribute" }], + "conceptIdentity": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ABS:CS_ATTRIBUTE(1.0.0).UNIT_MULT", + "localRepresentation": { + "enumeration": "urn:sdmx:org.sdmx.infomodel.codelist.Codelist=ABS:CL_UNIT_MULT(1.0.0)" + }, + "assignmentStatus": "Conditional", + "attributeRelationship": { "dimensions": ["MEASURE"] } + }, + { + "id": "OBS_STATUS", + "links": [{ "rel": "self", "type": "dataattribute" }], + "conceptIdentity": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ABS:CS_ATTRIBUTE(1.0.0).OBS_STATUS", + "localRepresentation": { + "enumeration": "urn:sdmx:org.sdmx.infomodel.codelist.Codelist=ABS:CL_OBS_STATUS(1.0.0)" + }, + "assignmentStatus": "Conditional", + "attributeRelationship": { "primaryMeasure": "OBS_VALUE" } + }, + { + "id": "OBS_COMMENT", + "links": [{ "rel": "self", "type": "dataattribute" }], + "conceptIdentity": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ABS:CS_ATTRIBUTE(1.0.0).OBS_COMMENT", + "assignmentStatus": "Conditional", + "attributeRelationship": { "primaryMeasure": "OBS_VALUE" } + } + ] + }, + "dimensionList": { + "id": "DimensionDescriptor", + "links": [{ "rel": "self", "type": "dimensiondescriptor" }], + "dimensions": [ + { + "id": "MEASURE", + "links": [{ "rel": "self", "type": "dimension" }], + "position": 0, + "type": "Dimension", + "conceptIdentity": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ABS:CS_COMMON(1.0.0).MEASURE", + "localRepresentation": { + "enumeration": "urn:sdmx:org.sdmx.infomodel.codelist.Codelist=ABS:CL_RT_MEASURE(1.0.0)" + } + }, + { + "id": "INDUSTRY", + "links": [{ "rel": "self", "type": "dimension" }], + "position": 1, + "type": "Dimension", + "conceptIdentity": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ABS:CS_INDUSTRY(1.0.0).INDUSTRY", + "localRepresentation": { + "enumeration": "urn:sdmx:org.sdmx.infomodel.codelist.Codelist=ABS:CL_RT_IND(1.0.0)" + } + }, + { + "id": "TSEST", + "links": [{ "rel": "self", "type": "dimension" }], + "position": 2, + "type": "Dimension", + "conceptIdentity": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ABS:CS_COMMON(1.0.0).TSEST", + "localRepresentation": { + "enumeration": "urn:sdmx:org.sdmx.infomodel.codelist.Codelist=ABS:CL_TSEST(1.0.0)" + } + }, + { + "id": "REGION", + "links": [{ "rel": "self", "type": "dimension" }], + "position": 3, + "type": "Dimension", + "conceptIdentity": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ABS:CS_GEOGRAPHY(1.0.0).REGION", + "localRepresentation": { + "enumeration": "urn:sdmx:org.sdmx.infomodel.codelist.Codelist=ABS:CL_STATE(1.0.0)" + } + }, + { + "id": "FREQ", + "links": [{ "rel": "self", "type": "dimension" }], + "position": 4, + "type": "Dimension", + "conceptIdentity": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ABS:CS_COMMON(1.0.0).FREQ", + "localRepresentation": { + "enumeration": "urn:sdmx:org.sdmx.infomodel.codelist.Codelist=ABS:CL_FREQ(1.0.0)" + } + } + ], + "timeDimensions": [ + { + "id": "TIME_PERIOD", + "links": [{ "rel": "self", "type": "timedimension" }], + "position": 5, + "type": "TimeDimension", + "conceptIdentity": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ABS:CS_COMMON(1.0.0).TIME_PERIOD", + "localRepresentation": { + "textFormat": { + "textType": "ObservationalTimePeriod", + "isSequence": false, + "isMultiLingual": false + } + } + } + ] + }, + "measureList": { + "id": "MeasureDescriptor", + "links": [{ "rel": "self", "type": "measuredescriptor" }], + "primaryMeasure": { + "id": "OBS_VALUE", + "links": [{ "rel": "self", "type": "primarymeasure" }], + "conceptIdentity": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ABS:CS_COMMON(1.0.0).OBS_VALUE" + } + } + } + } + ], + "contentConstraints": [ + { + "id": "CR_A_RT", + "links": [{ "rel": "self", "type": "contentconstraint" }], + "version": "1.0.0", + "agencyID": "ABS", + "isFinal": false, + "validFrom": "2021-04-08T16:00:00", + "name": "Availability (A) for RT", + "names": { "en": "Availability (A) for RT" }, + "annotations": [{ "title": "A", "type": "ReleaseVersion" }], + "type": "Actual", + "constraintAttachment": { + "dataflows": [ + "urn:sdmx:org.sdmx.infomodel.datastructure.Dataflow=ABS:RT(1.0.0)" + ] + }, + "cubeRegions": [ + { + "isIncluded": true, + "keyValues": [ + { "id": "MEASURE", "values": ["M1", "M2", "M3", "M4"] }, + { + "id": "INDUSTRY", + "values": [ + "01", + "02", + "03", + "04", + "05", + "06", + "07", + "08", + "09", + "10", + "11", + "12", + "13", + "14", + "15", + "20", + "41", + "42", + "43", + "44", + "45", + "46" + ] + }, + { "id": "TSEST", "values": ["10", "20"] }, + { + "id": "REGION", + "values": ["1", "2", "3", "4", "5", "6", "7", "8", "AUS"] + }, + { "id": "FREQ", "values": ["M", "Q"] }, + { + "id": "TIME_PERIOD", + "timeRange": { + "startPeriod": { + "period": "1982-04-01T00:00:00Z", + "isInclusive": true + }, + "endPeriod": { + "period": "2021-02-28T23:59:59Z", + "isInclusive": true + } + } + } + ] + } + ] + }, + { + "id": "CR_B_RT", + "links": [{ "rel": "self", "type": "contentconstraint" }], + "version": "1.0.0", + "agencyID": "ABS", + "isFinal": false, + "validTo": "2021-04-08T15:59:59", + "name": "Availability (B) for RT", + "names": { "en": "Availability (B) for RT" }, + "annotations": [{ "title": "B", "type": "ReleaseVersion" }], + "type": "Actual", + "constraintAttachment": { + "dataflows": [ + "urn:sdmx:org.sdmx.infomodel.datastructure.Dataflow=ABS:RT(1.0.0)" + ] + }, + "cubeRegions": [ + { + "isIncluded": true, + "keyValues": [ + { "id": "MEASURE", "values": ["M1", "M2", "M3", "M4"] }, + { + "id": "INDUSTRY", + "values": [ + "01", + "02", + "03", + "04", + "05", + "06", + "07", + "08", + "09", + "10", + "11", + "12", + "13", + "14", + "15", + "20", + "41", + "42", + "43", + "44", + "45", + "46" + ] + }, + { "id": "TSEST", "values": ["10", "20"] }, + { + "id": "REGION", + "values": ["1", "2", "3", "4", "5", "6", "7", "8", "AUS"] + }, + { "id": "FREQ", "values": ["M", "Q"] }, + { + "id": "TIME_PERIOD", + "timeRange": { + "startPeriod": { + "period": "1982-04-01T00:00:00Z", + "isInclusive": true + }, + "endPeriod": { + "period": "2021-01-31T23:59:59Z", + "isInclusive": true + } + } + } + ] + } + ] + } + ] + }, + "meta": { + "schema": "https://raw.githubusercontent.com/sdmx-twg/sdmx-json/develop/structure-message/tools/schemas/1.0/sdmx-json-structure-schema.json", + "content-languages": ["en"], + "id": "IDREF73591", + "prepared": "2021-05-11T08:15:38.9274167Z", + "test": false, + "sender": { "id": "Unknown" }, + "receiver": [{ "id": "Unknown" }] + } +} diff --git a/wwwroot/test/SDMX-JSON/dataflow-region.json b/wwwroot/test/SDMX-JSON/dataflow-region.json index 641c3bfb35f..64a1072bbf3 100644 --- a/wwwroot/test/SDMX-JSON/dataflow-region.json +++ b/wwwroot/test/SDMX-JSON/dataflow-region.json @@ -2739,10 +2739,7 @@ }, "assignmentStatus": "Conditional", "attributeRelationship": { - "dimensions": [ - "GEO_PICT", - "INDICATOR" - ] + "dimensions": ["GEO_PICT", "INDICATOR"] } }, { @@ -2759,10 +2756,7 @@ }, "assignmentStatus": "Conditional", "attributeRelationship": { - "dimensions": [ - "GEO_PICT", - "INDICATOR" - ] + "dimensions": ["GEO_PICT", "INDICATOR"] } }, { @@ -2783,10 +2777,7 @@ }, "assignmentStatus": "Conditional", "attributeRelationship": { - "dimensions": [ - "GEO_PICT", - "INDICATOR" - ] + "dimensions": ["GEO_PICT", "INDICATOR"] } }, { @@ -2954,15 +2945,11 @@ "keyValues": [ { "id": "FREQ", - "values": [ - "A" - ] + "values": ["A"] }, { "id": "INDICATOR", - "values": [ - "INF" - ] + "values": ["INF"] }, { "id": "GEO_PICT", @@ -3028,9 +3015,7 @@ "keyValues": [ { "id": "FREQ", - "values": [ - "A" - ] + "values": ["A"] }, { "id": "GEO_PICT", @@ -3061,15 +3046,11 @@ }, { "id": "INDICATOR", - "values": [ - "INF" - ] + "values": ["INF"] }, { "id": "COMMODITY", - "values": [ - "_T" - ] + "values": ["_T"] }, { "id": "TIME_PERIOD", @@ -3092,9 +3073,7 @@ }, "meta": { "schema": "https://raw.githubusercontent.com/sdmx-twg/sdmx-json/develop/structure-message/tools/schemas/1.0/sdmx-json-structure-schema.json", - "content-languages": [ - "en" - ], + "content-languages": ["en"], "id": "IDREF2930", "prepared": "2020-09-22T03:37:04.9410168Z", "test": false, diff --git a/wwwroot/test/SDMX-JSON/old/data-as-obs-repeated-dim.json b/wwwroot/test/SDMX-JSON/old/data-as-obs-repeated-dim.json index 431057689c7..d3a1ee43076 100644 --- a/wwwroot/test/SDMX-JSON/old/data-as-obs-repeated-dim.json +++ b/wwwroot/test/SDMX-JSON/old/data-as-obs-repeated-dim.json @@ -1,224 +1,192 @@ { - "header": { - "id": "data-as-obs-repeated-dim", - "test": true - }, - "dataSets": [ + "header": { + "id": "data-as-obs-repeated-dim", + "test": true + }, + "dataSets": [ + { + "action": "Information", + "observations": { + "0:0:0:0:0:0:0": [17658, 0, null], + "0:0:1:0:1:0:0": [14042, 0, null], + "0:0:2:0:2:0:0": [9739, 0, null], + "0:0:3:0:3:0:0": [6572, 0, null], + "0:0:4:0:4:0:0": [2970, 0, null], + "0:0:5:0:5:0:0": [4940, 0, null], + "0:0:7:0:7:0:0": [1945, 0, null], + "0:0:8:0:8:0:0": [13001, 0, null] + } + } + ], + "structure": { + "name": "observation data", + "description": "Observation data", + "dimensions": { + "observation": [ + { + "keyPosition": 0, + "id": "MEASURE", + "name": "Sex", + "values": [ + { + "id": "3", + "name": "Persons" + } + ] + }, + { + "keyPosition": 1, + "id": "SPC", + "name": "Selected Person Characteristics", + "values": [ + { + "id": "TT", + "name": "Total persons" + } + ] + }, + { + "keyPosition": 2, + "id": "STATE", + "name": "State", + "values": [ + { + "id": "1", + "name": "New South Wales" + }, + { + "id": "2", + "name": "Victoria" + }, + { + "id": "3", + "name": "Queensland" + }, + { + "id": "4", + "name": "South Australia" + }, + { + "id": "5", + "name": "Western Australia" + }, + { + "id": "6", + "name": "Tasmania" + }, + { + "id": "7", + "name": "Northern Territory" + }, + { + "id": "8", + "name": "Australian Capital Territory" + }, + { + "id": "9", + "name": "Other Territories" + } + ] + }, + { + "keyPosition": 3, + "id": "REGIONTYPE", + "name": "Region Type", + "values": [ + { + "id": "STE_2011", + "name": "States and Territories" + } + ] + }, + { + "keyPosition": 4, + "id": "REGION", + "name": "Region", + "values": [ + { + "id": "1", + "name": "New South Wales" + }, + { + "id": "2", + "name": "Victoria" + }, + { + "id": "3", + "name": "Queensland" + }, + { + "id": "4", + "name": "South Australia" + }, + { + "id": "5", + "name": "Western Australia" + }, + { + "id": "6", + "name": "Tasmania" + }, + { + "id": "7", + "name": "Northern Territory" + }, + { + "id": "8", + "name": "Australian Capital Territory" + }, + { + "id": "9", + "name": "Other Territories" + } + ] + }, + { + "keyPosition": 5, + "id": "FREQUENCY", + "name": "Frequency", + "values": [ + { + "id": "A", + "name": "Annual" + } + ], + "role": "FREQ" + }, { - "action": "Information", - "observations": { - "0:0:0:0:0:0:0": [ - 17658, - 0, - null - ], - "0:0:1:0:1:0:0": [ - 14042, - 0, - null - ], - "0:0:2:0:2:0:0": [ - 9739, - 0, - null - ], - "0:0:3:0:3:0:0": [ - 6572, - 0, - null - ], - "0:0:4:0:4:0:0": [ - 2970, - 0, - null - ], - "0:0:5:0:5:0:0": [ - 4940, - 0, - null - ], - "0:0:7:0:7:0:0": [ - 1945, - 0, - null - ], - "0:0:8:0:8:0:0": [ - 13001, - 0, - null - ] + "id": "TIME_PERIOD", + "name": "Time", + "values": [ + { + "id": "2001", + "name": "2001" } + ], + "role": "TIME_PERIOD" } - ], - "structure": { - "name": "observation data", - "description": "Observation data", - "dimensions": { - "observation": [ - { - "keyPosition": 0, - "id": "MEASURE", - "name": "Sex", - "values": [ - { - "id": "3", - "name": "Persons" - } - ] - }, - { - "keyPosition": 1, - "id": "SPC", - "name": "Selected Person Characteristics", - "values": [ - { - "id": "TT", - "name": "Total persons" - } - ] - }, - { - "keyPosition": 2, - "id": "STATE", - "name": "State", - "values": [ - { - "id": "1", - "name": "New South Wales" - }, - { - "id": "2", - "name": "Victoria" - }, - { - "id": "3", - "name": "Queensland" - }, - { - "id": "4", - "name": "South Australia" - }, - { - "id": "5", - "name": "Western Australia" - }, - { - "id": "6", - "name": "Tasmania" - }, - { - "id": "7", - "name": "Northern Territory" - }, - { - "id": "8", - "name": "Australian Capital Territory" - }, - { - "id": "9", - "name": "Other Territories" - } - ] - }, - { - "keyPosition": 3, - "id": "REGIONTYPE", - "name": "Region Type", - "values": [ - { - "id": "STE_2011", - "name": "States and Territories" - } - ] - }, - { - "keyPosition": 4, - "id": "REGION", - "name": "Region", - "values": [ - { - "id": "1", - "name": "New South Wales" - }, - { - "id": "2", - "name": "Victoria" - }, - { - "id": "3", - "name": "Queensland" - }, - { - "id": "4", - "name": "South Australia" - }, - { - "id": "5", - "name": "Western Australia" - }, - { - "id": "6", - "name": "Tasmania" - }, - { - "id": "7", - "name": "Northern Territory" - }, - { - "id": "8", - "name": "Australian Capital Territory" - }, - { - "id": "9", - "name": "Other Territories" - } - ] - }, - { - "keyPosition": 5, - "id": "FREQUENCY", - "name": "Frequency", - "values": [ - { - "id": "A", - "name": "Annual" - } - ], - "role": "FREQ" - }, - { - "id": "TIME_PERIOD", - "name": "Time", - "values": [ - { - "id": "2001", - "name": "2001" - } - ], - "role": "TIME_PERIOD" - } - ] + ] + }, + "attributes": { + "dataSet": [], + "series": [], + "observation": [ + { + "id": "TIME_FORMAT", + "name": "Time Format", + "values": [ + { + "id": "P1Y", + "name": "Annual" + } + ] }, - "attributes": { - "dataSet": [], - "series": [], - "observation": [ - { - "id": "TIME_FORMAT", - "name": "Time Format", - "values": [ - { - "id": "P1Y", - "name": "Annual" - } - ] - }, - { - "id": "OBS_STATUS", - "name": "Observation Status", - "values": [] - } - ] + { + "id": "OBS_STATUS", + "name": "Observation Status", + "values": [] } + ] } -} \ No newline at end of file + } +} diff --git a/wwwroot/test/SDMX-JSON/old/data-as-observations.json b/wwwroot/test/SDMX-JSON/old/data-as-observations.json index 051371efba6..857c0804040 100644 --- a/wwwroot/test/SDMX-JSON/old/data-as-observations.json +++ b/wwwroot/test/SDMX-JSON/old/data-as-observations.json @@ -1,186 +1,150 @@ { - "header": { - "id": "data-as-observations", - "test": true - }, - "dataSets": [ + "header": { + "id": "data-as-observations", + "test": true + }, + "dataSets": [ + { + "action": "Information", + "observations": { + "0:0:0:0:0:0": [17658, 0, null], + "0:0:1:0:0:0": [14042, 0, null], + "0:0:2:0:0:0": [9739, 0, null], + "0:0:3:0:0:0": [6572, 0, null], + "0:0:4:0:0:0": [2970, 0, null], + "0:0:5:0:0:0": [4940, 0, null], + "0:0:6:0:0:0": [945, 0, null], + "0:0:7:0:0:0": [7222, 0, null], + "0:0:8:0:0:0": [13001, 0, null] + } + } + ], + "structure": { + "name": "observation data", + "description": "Observation data", + "dimensions": { + "observation": [ + { + "keyPosition": 0, + "id": "MEASURE", + "name": "Sex", + "values": [ + { + "id": "3", + "name": "Persons" + } + ] + }, + { + "keyPosition": 1, + "id": "SPC", + "name": "Selected Person Characteristics", + "values": [ + { + "id": "TT", + "name": "Total persons" + } + ] + }, + { + "keyPosition": 2, + "id": "REGION", + "name": "Region", + "values": [ + { + "id": "1", + "name": "New South Wales" + }, + { + "id": "2", + "name": "Victoria" + }, + { + "id": "3", + "name": "Queensland" + }, + { + "id": "4", + "name": "South Australia" + }, + { + "id": "5", + "name": "Western Australia" + }, + { + "id": "6", + "name": "Tasmania" + }, + { + "id": "7", + "name": "Northern Territory" + }, + { + "id": "8", + "name": "Australian Capital Territory" + }, + { + "id": "9", + "name": "Other Territories" + } + ] + }, { - "action": "Information", - "observations": { - "0:0:0:0:0:0": [ - 17658, - 0, - null - ], - "0:0:1:0:0:0": [ - 14042, - 0, - null - ], - "0:0:2:0:0:0": [ - 9739, - 0, - null - ], - "0:0:3:0:0:0": [ - 6572, - 0, - null - ], - "0:0:4:0:0:0": [ - 2970, - 0, - null - ], - "0:0:5:0:0:0": [ - 4940, - 0, - null - ], - "0:0:6:0:0:0": [ - 945, - 0, - null - ], - "0:0:7:0:0:0": [ - 7222, - 0, - null - ], - "0:0:8:0:0:0": [ - 13001, - 0, - null - ] + "keyPosition": 3, + "id": "REGIONTYPE", + "name": "Region Type", + "values": [ + { + "id": "STE_2011", + "name": "States and Territories" } + ] + }, + { + "keyPosition": 4, + "id": "FREQUENCY", + "name": "Frequency", + "values": [ + { + "id": "A", + "name": "Annual" + } + ], + "role": "FREQ" + }, + { + "id": "TIME_PERIOD", + "name": "Time", + "values": [ + { + "id": "2001", + "name": "2001" + } + ], + "role": "TIME_PERIOD" } - ], - "structure": { - "name": "observation data", - "description": "Observation data", - "dimensions": { - "observation": [ - { - "keyPosition": 0, - "id": "MEASURE", - "name": "Sex", - "values": [ - { - "id": "3", - "name": "Persons" - } - ] - }, - { - "keyPosition": 1, - "id": "SPC", - "name": "Selected Person Characteristics", - "values": [ - { - "id": "TT", - "name": "Total persons" - } - ] - }, - { - "keyPosition": 2, - "id": "REGION", - "name": "Region", - "values": [ - { - "id": "1", - "name": "New South Wales" - }, - { - "id": "2", - "name": "Victoria" - }, - { - "id": "3", - "name": "Queensland" - }, - { - "id": "4", - "name": "South Australia" - }, - { - "id": "5", - "name": "Western Australia" - }, - { - "id": "6", - "name": "Tasmania" - }, - { - "id": "7", - "name": "Northern Territory" - }, - { - "id": "8", - "name": "Australian Capital Territory" - }, - { - "id": "9", - "name": "Other Territories" - } - ] - }, - { - "keyPosition": 3, - "id": "REGIONTYPE", - "name": "Region Type", - "values": [ - { - "id": "STE_2011", - "name": "States and Territories" - } - ] - }, - { - "keyPosition": 4, - "id": "FREQUENCY", - "name": "Frequency", - "values": [ - { - "id": "A", - "name": "Annual" - } - ], - "role": "FREQ" - }, - { - "id": "TIME_PERIOD", - "name": "Time", - "values": [ - { - "id": "2001", - "name": "2001" - } - ], - "role": "TIME_PERIOD" - } - ] + ] + }, + "attributes": { + "dataSet": [], + "series": [], + "observation": [ + { + "id": "TIME_FORMAT", + "name": "Time Format", + "values": [ + { + "id": "P1Y", + "name": "Annual" + } + ] }, - "attributes": { - "dataSet": [], - "series": [], - "observation": [ - { - "id": "TIME_FORMAT", - "name": "Time Format", - "values": [ - { - "id": "P1Y", - "name": "Annual" - } - ] - }, - { - "id": "OBS_STATUS", - "name": "Observation Status", - "values": [] - } - ] + { + "id": "OBS_STATUS", + "name": "Observation Status", + "values": [] } + ] } -} \ No newline at end of file + } +} diff --git a/wwwroot/test/SDMX-JSON/old/data-foo-2013.json b/wwwroot/test/SDMX-JSON/old/data-foo-2013.json index 4253a91bdda..5b3879069d8 100644 --- a/wwwroot/test/SDMX-JSON/old/data-foo-2013.json +++ b/wwwroot/test/SDMX-JSON/old/data-foo-2013.json @@ -1,152 +1,182 @@ { - "header": { - "id": "foo", - "test": true - }, - "dataSets": [{ - "action": "Information", - "series": { - "0:0:0:0": { - "attributes": [0], - "observations": { - "0": [1140.0, null] - } - }, - "0:0:1:0": { - "attributes": [0], - "observations": { - "0": [535.0, null] - } - }, - "0:0:2:0": { - "attributes": [0], - "observations": { - "0": [79.0, null] - } - }, - "0:0:3:0": { - "attributes": [0], - "observations": { - "0": [12.0, null] - } - }, - "0:0:4:0": { - "attributes": [0], - "observations": { - "0": [38.0, null] - } + "header": { + "id": "foo", + "test": true + }, + "dataSets": [ + { + "action": "Information", + "series": { + "0:0:0:0": { + "attributes": [0], + "observations": { + "0": [1140.0, null] + } + }, + "0:0:1:0": { + "attributes": [0], + "observations": { + "0": [535.0, null] + } + }, + "0:0:2:0": { + "attributes": [0], + "observations": { + "0": [79.0, null] + } + }, + "0:0:3:0": { + "attributes": [0], + "observations": { + "0": [12.0, null] + } + }, + "0:0:4:0": { + "attributes": [0], + "observations": { + "0": [38.0, null] + } + }, + "1:0:0:0": { + "attributes": [0], + "observations": { + "0": [140.0, null] + } + }, + "1:0:1:0": { + "attributes": [0], + "observations": { + "0": [235.0, null] + } + }, + "1:0:2:0": { + "attributes": [0], + "observations": { + "0": [279.0, null] + } + }, + "1:0:3:0": { + "attributes": [0], + "observations": { + "0": [812.0, null] + } + }, + "1:0:4:0": { + "attributes": [0], + "observations": { + "0": [338.0, null] + } + } + } + } + ], + "structure": { + "name": "foo", + "description": "Foo Example", + "dimensions": { + "series": [ + { + "keyPosition": 0, + "id": "MEASURE", + "name": "Data Item", + "values": [ + { + "id": "BD_2", + "name": "Births" }, - "1:0:0:0": { - "attributes": [0], - "observations": { - "0": [140.0, null] - } + { + "id": "BD_4", + "name": "Deaths" + } + ] + }, + { + "keyPosition": 1, + "id": "REGIONTYPE", + "name": "Region Type", + "values": [ + { + "id": "LGA_2013", + "name": "Local Government Areas (2013)" + } + ] + }, + { + "keyPosition": 2, + "id": "REGION", + "name": "Region", + "values": [ + { + "id": "17100", + "name": "Strathfield (A)" }, - "1:0:1:0": { - "attributes": [0], - "observations": { - "0": [235.0, null] - } + { + "id": "56520", + "name": "Narrogin (T)" }, - "1:0:2:0": { - "attributes": [0], - "observations": { - "0": [279.0, null] - } + { + "id": "54970", + "name": "Laverton (S)" }, - "1:0:3:0": { - "attributes": [0], - "observations": { - "0": [812.0, null] - } + { + "id": "10300", + "name": "Balranald (A)" }, - "1:0:4:0": { - "attributes": [0], - "observations": { - "0": [338.0, null] - } + { + "id": "29399", + "name": "Unincorporated Vic" } - } - }], - "structure": { - "name": "foo", - "description": "Foo Example", - "dimensions": { - "series": [{ - "keyPosition": 0, - "id": "MEASURE", - "name": "Data Item", - "values": [{ - "id": "BD_2", - "name": "Births" - }, { - "id": "BD_4", - "name": "Deaths" - }] - }, { - "keyPosition": 1, - "id": "REGIONTYPE", - "name": "Region Type", - "values": [{ - "id": "LGA_2013", - "name": "Local Government Areas (2013)" - }] - }, { - "keyPosition": 2, - "id": "REGION", - "name": "Region", - "values": [{ - "id": "17100", - "name": "Strathfield (A)" - }, { - "id": "56520", - "name": "Narrogin (T)" - }, { - "id": "54970", - "name": "Laverton (S)" - }, { - "id": "10300", - "name": "Balranald (A)" - }, { - "id": "29399", - "name": "Unincorporated Vic" - }] - }, { - "keyPosition": 3, - "id": "FREQUENCY", - "name": "Frequency", - "values": [{ - "id": "A", - "name": "Annual" - }], - "role": "FREQ" - }], - "observation": [{ - "id": "TIME_PERIOD", - "name": "Time", - "values": [{ - "id": "2013", - "name": "2013" - }], - "role": "TIME_PERIOD" - }] - }, - "attributes": { - "dataSet": [], - "series": [{ - "id": "TIME_FORMAT", - "name": "Time Format", - "values": [{ - "id": "P1Y", - "name": "Annual" - }] - }], - "observation": [{ - "id": "OBS_STATUS", - "name": "Observation Status", - "values": [] - }] + ] }, - "annotations": [] - } -} \ No newline at end of file + { + "keyPosition": 3, + "id": "FREQUENCY", + "name": "Frequency", + "values": [ + { + "id": "A", + "name": "Annual" + } + ], + "role": "FREQ" + } + ], + "observation": [ + { + "id": "TIME_PERIOD", + "name": "Time", + "values": [ + { + "id": "2013", + "name": "2013" + } + ], + "role": "TIME_PERIOD" + } + ] + }, + "attributes": { + "dataSet": [], + "series": [ + { + "id": "TIME_FORMAT", + "name": "Time Format", + "values": [ + { + "id": "P1Y", + "name": "Annual" + } + ] + } + ], + "observation": [ + { + "id": "OBS_STATUS", + "name": "Observation Status", + "values": [] + } + ] + }, + "annotations": [] + } +} diff --git a/wwwroot/test/SDMX-JSON/old/data-foo-BD2-2011_2013.json b/wwwroot/test/SDMX-JSON/old/data-foo-BD2-2011_2013.json index 3338961a6c8..21b97e67332 100644 --- a/wwwroot/test/SDMX-JSON/old/data-foo-BD2-2011_2013.json +++ b/wwwroot/test/SDMX-JSON/old/data-foo-BD2-2011_2013.json @@ -1,135 +1,166 @@ { - "header": { - "id": "foo", - "test": true - }, - "dataSets": [{ - "action": "Information", - "series": { - "0:0:0:0": { - "attributes": [0], - "observations": { - "0": [1140.0, null], - "1": [1141.0, null], - "2": [1142.0, null] - } + "header": { + "id": "foo", + "test": true + }, + "dataSets": [ + { + "action": "Information", + "series": { + "0:0:0:0": { + "attributes": [0], + "observations": { + "0": [1140.0, null], + "1": [1141.0, null], + "2": [1142.0, null] + } + }, + "0:0:1:0": { + "attributes": [0], + "observations": { + "0": [535.0, null], + "1": [536.0, null], + "2": [537.0, null] + } + }, + "0:0:2:0": { + "attributes": [0], + "observations": { + "0": [79.0, null], + "1": [78.0, null], + "2": [77.0, null] + } + }, + "0:0:3:0": { + "attributes": [0], + "observations": { + "0": [12.0, null], + "1": [13.0, null], + "2": [11.0, null] + } + }, + "0:0:4:0": { + "attributes": [0], + "observations": { + "0": [38.0, null], + "1": [28.0, null], + "2": [18.0, null] + } + } + } + } + ], + "structure": { + "name": "foo", + "description": "Foo Example", + "dimensions": { + "series": [ + { + "keyPosition": 0, + "id": "MEASURE", + "name": "Data Item", + "values": [ + { + "id": "BD_2", + "name": "Births" + } + ] + }, + { + "keyPosition": 1, + "id": "REGIONTYPE", + "name": "Region Type", + "values": [ + { + "id": "LGA_2013", + "name": "Local Government Areas (2013)" + } + ] + }, + { + "keyPosition": 2, + "id": "REGION", + "name": "Region", + "values": [ + { + "id": "17100", + "name": "Strathfield (A)" }, - "0:0:1:0": { - "attributes": [0], - "observations": { - "0": [535.0, null], - "1": [536.0, null], - "2": [537.0, null] - } + { + "id": "56520", + "name": "Narrogin (T)" }, - "0:0:2:0": { - "attributes": [0], - "observations": { - "0": [79.0, null], - "1": [78.0, null], - "2": [77.0, null] - } + { + "id": "54970", + "name": "Laverton (S)" }, - "0:0:3:0": { - "attributes": [0], - "observations": { - "0": [12.0, null], - "1": [13.0, null], - "2": [11.0, null] - } + { + "id": "10300", + "name": "Balranald (A)" }, - "0:0:4:0": { - "attributes": [0], - "observations": { - "0": [38.0, null], - "1": [28.0, null], - "2": [18.0, null] - } + { + "id": "29399", + "name": "Unincorporated Vic" } - } - }], - "structure": { - "name": "foo", - "description": "Foo Example", - "dimensions": { - "series": [{ - "keyPosition": 0, - "id": "MEASURE", - "name": "Data Item", - "values": [{ - "id": "BD_2", - "name": "Births" - }] - }, { - "keyPosition": 1, - "id": "REGIONTYPE", - "name": "Region Type", - "values": [{ - "id": "LGA_2013", - "name": "Local Government Areas (2013)" - }] - }, { - "keyPosition": 2, - "id": "REGION", - "name": "Region", - "values": [{ - "id": "17100", - "name": "Strathfield (A)" - }, { - "id": "56520", - "name": "Narrogin (T)" - }, { - "id": "54970", - "name": "Laverton (S)" - }, { - "id": "10300", - "name": "Balranald (A)" - }, { - "id": "29399", - "name": "Unincorporated Vic" - }] - }, { - "keyPosition": 3, - "id": "FREQUENCY", - "name": "Frequency", - "values": [{ - "id": "A", - "name": "Annual" - }], - "role": "FREQ" - }], - "observation": [{ - "id": "TIME_PERIOD", - "name": "Time", - "values": [{ - "id": "2011", - "name": "2011" - }, { - "id": "2012", - "name": "2012" - }, { - "id": "2013", - "name": "2013" - }], - "role": "TIME_PERIOD" - }] - }, - "attributes": { - "dataSet": [], - "series": [{ - "id": "TIME_FORMAT", - "name": "Time Format", - "values": [{ - "id": "P1Y", - "name": "Annual" - }] - }], - "observation": [{ - "id": "OBS_STATUS", - "name": "Observation Status", - "values": [] - }] + ] }, - "annotations": [] - } -} \ No newline at end of file + { + "keyPosition": 3, + "id": "FREQUENCY", + "name": "Frequency", + "values": [ + { + "id": "A", + "name": "Annual" + } + ], + "role": "FREQ" + } + ], + "observation": [ + { + "id": "TIME_PERIOD", + "name": "Time", + "values": [ + { + "id": "2011", + "name": "2011" + }, + { + "id": "2012", + "name": "2012" + }, + { + "id": "2013", + "name": "2013" + } + ], + "role": "TIME_PERIOD" + } + ] + }, + "attributes": { + "dataSet": [], + "series": [ + { + "id": "TIME_FORMAT", + "name": "Time Format", + "values": [ + { + "id": "P1Y", + "name": "Annual" + } + ] + } + ], + "observation": [ + { + "id": "OBS_STATUS", + "name": "Observation Status", + "values": [] + } + ] + }, + "annotations": [] + } +} diff --git a/wwwroot/test/SDMX-JSON/old/data-foo-BD2-2013.json b/wwwroot/test/SDMX-JSON/old/data-foo-BD2-2013.json index 525e248fc1a..f030948a0c3 100644 --- a/wwwroot/test/SDMX-JSON/old/data-foo-BD2-2013.json +++ b/wwwroot/test/SDMX-JSON/old/data-foo-BD2-2013.json @@ -1,119 +1,148 @@ { - "header": { - "id": "foo", - "test": true - }, - "dataSets": [{ - "action": "Information", - "series": { - "0:0:0:0": { - "attributes": [0], - "observations": { - "0": [1140.0, null] - } + "header": { + "id": "foo", + "test": true + }, + "dataSets": [ + { + "action": "Information", + "series": { + "0:0:0:0": { + "attributes": [0], + "observations": { + "0": [1140.0, null] + } + }, + "0:0:1:0": { + "attributes": [0], + "observations": { + "0": [535.0, null] + } + }, + "0:0:2:0": { + "attributes": [0], + "observations": { + "0": [79.0, null] + } + }, + "0:0:3:0": { + "attributes": [0], + "observations": { + "0": [12.0, null] + } + }, + "0:0:4:0": { + "attributes": [0], + "observations": { + "0": [38.0, null] + } + } + } + } + ], + "structure": { + "name": "foo", + "description": "Foo Example", + "dimensions": { + "series": [ + { + "keyPosition": 0, + "id": "MEASURE", + "name": "Data Item", + "values": [ + { + "id": "BD_2", + "name": "Births" + } + ] + }, + { + "keyPosition": 1, + "id": "REGIONTYPE", + "name": "Region Type", + "values": [ + { + "id": "LGA_2013", + "name": "Local Government Areas (2013)" + } + ] + }, + { + "keyPosition": 2, + "id": "REGION", + "name": "Region", + "values": [ + { + "id": "17100", + "name": "Strathfield (A)" }, - "0:0:1:0": { - "attributes": [0], - "observations": { - "0": [535.0, null] - } + { + "id": "56520", + "name": "Narrogin (T)" }, - "0:0:2:0": { - "attributes": [0], - "observations": { - "0": [79.0, null] - } + { + "id": "54970", + "name": "Laverton (S)" }, - "0:0:3:0": { - "attributes": [0], - "observations": { - "0": [12.0, null] - } + { + "id": "10300", + "name": "Balranald (A)" }, - "0:0:4:0": { - "attributes": [0], - "observations": { - "0": [38.0, null] - } + { + "id": "29399", + "name": "Unincorporated Vic" } - } - }], - "structure": { - "name": "foo", - "description": "Foo Example", - "dimensions": { - "series": [{ - "keyPosition": 0, - "id": "MEASURE", - "name": "Data Item", - "values": [{ - "id": "BD_2", - "name": "Births" - }] - }, { - "keyPosition": 1, - "id": "REGIONTYPE", - "name": "Region Type", - "values": [{ - "id": "LGA_2013", - "name": "Local Government Areas (2013)" - }] - }, { - "keyPosition": 2, - "id": "REGION", - "name": "Region", - "values": [{ - "id": "17100", - "name": "Strathfield (A)" - }, { - "id": "56520", - "name": "Narrogin (T)" - }, { - "id": "54970", - "name": "Laverton (S)" - }, { - "id": "10300", - "name": "Balranald (A)" - }, { - "id": "29399", - "name": "Unincorporated Vic" - }] - }, { - "keyPosition": 3, - "id": "FREQUENCY", - "name": "Frequency", - "values": [{ - "id": "A", - "name": "Annual" - }], - "role": "FREQ" - }], - "observation": [{ - "id": "TIME_PERIOD", - "name": "Time", - "values": [{ - "id": "2013", - "name": "2013" - }], - "role": "TIME_PERIOD" - }] + ] }, - "attributes": { - "dataSet": [], - "series": [{ - "id": "TIME_FORMAT", - "name": "Time Format", - "values": [{ - "id": "P1Y", - "name": "Annual" - }] - }], - "observation": [{ - "id": "OBS_STATUS", - "name": "Observation Status", - "values": [] - }] - }, - "annotations": [] - } -} \ No newline at end of file + { + "keyPosition": 3, + "id": "FREQUENCY", + "name": "Frequency", + "values": [ + { + "id": "A", + "name": "Annual" + } + ], + "role": "FREQ" + } + ], + "observation": [ + { + "id": "TIME_PERIOD", + "name": "Time", + "values": [ + { + "id": "2013", + "name": "2013" + } + ], + "role": "TIME_PERIOD" + } + ] + }, + "attributes": { + "dataSet": [], + "series": [ + { + "id": "TIME_FORMAT", + "name": "Time Format", + "values": [ + { + "id": "P1Y", + "name": "Annual" + } + ] + } + ], + "observation": [ + { + "id": "OBS_STATUS", + "name": "Observation Status", + "values": [] + } + ] + }, + "annotations": [] + } +} diff --git a/wwwroot/test/SDMX-JSON/old/data-foo2-2013.json b/wwwroot/test/SDMX-JSON/old/data-foo2-2013.json index cdd15e9a547..c5ff06d23aa 100644 --- a/wwwroot/test/SDMX-JSON/old/data-foo2-2013.json +++ b/wwwroot/test/SDMX-JSON/old/data-foo2-2013.json @@ -1,223 +1,257 @@ { - "header": { - "id": "two concept example", - "test": true - }, - "dataSets": [{ - "action": "Information", - "series": { - "0:0:0:0:0": { - "attributes": [0], - "observations": { - "0": [1140.0, null] - } - }, - "0:0:1:0:0": { - "attributes": [0], - "observations": { - "0": [535.0, null] - } - }, - "0:0:2:0:0": { - "attributes": [0], - "observations": { - "0": [79.0, null] - } - }, - "0:0:3:0:0": { - "attributes": [0], - "observations": { - "0": [12.0, null] - } - }, - "0:0:4:0:0": { - "attributes": [0], - "observations": { - "0": [38.0, null] - } - }, - "1:0:0:0:0": { - "attributes": [0], - "observations": { - "0": [140.0, null] - } - }, - "1:0:1:0:0": { - "attributes": [0], - "observations": { - "0": [35.0, null] - } - }, - "1:0:2:0:0": { - "attributes": [0], - "observations": { - "0": [179.0, null] - } - }, - "1:0:3:0:0": { - "attributes": [0], - "observations": { - "0": [112.0, null] - } - }, - "1:0:4:0:0": { - "attributes": [0], - "observations": { - "0": [138.0, null] - } - }, - "0:0:0:0:1": { - "attributes": [0], - "observations": { - "0": [2140.0, null] - } - }, - "0:0:1:0:1": { - "attributes": [0], - "observations": { - "0": [2535.0, null] - } - }, - "0:0:2:0:1": { - "attributes": [0], - "observations": { - "0": [2179.0, null] - } - }, - "0:0:3:0:1": { - "attributes": [0], - "observations": { - "0": [2112.0, null] - } + "header": { + "id": "two concept example", + "test": true + }, + "dataSets": [ + { + "action": "Information", + "series": { + "0:0:0:0:0": { + "attributes": [0], + "observations": { + "0": [1140.0, null] + } + }, + "0:0:1:0:0": { + "attributes": [0], + "observations": { + "0": [535.0, null] + } + }, + "0:0:2:0:0": { + "attributes": [0], + "observations": { + "0": [79.0, null] + } + }, + "0:0:3:0:0": { + "attributes": [0], + "observations": { + "0": [12.0, null] + } + }, + "0:0:4:0:0": { + "attributes": [0], + "observations": { + "0": [38.0, null] + } + }, + "1:0:0:0:0": { + "attributes": [0], + "observations": { + "0": [140.0, null] + } + }, + "1:0:1:0:0": { + "attributes": [0], + "observations": { + "0": [35.0, null] + } + }, + "1:0:2:0:0": { + "attributes": [0], + "observations": { + "0": [179.0, null] + } + }, + "1:0:3:0:0": { + "attributes": [0], + "observations": { + "0": [112.0, null] + } + }, + "1:0:4:0:0": { + "attributes": [0], + "observations": { + "0": [138.0, null] + } + }, + "0:0:0:0:1": { + "attributes": [0], + "observations": { + "0": [2140.0, null] + } + }, + "0:0:1:0:1": { + "attributes": [0], + "observations": { + "0": [2535.0, null] + } + }, + "0:0:2:0:1": { + "attributes": [0], + "observations": { + "0": [2179.0, null] + } + }, + "0:0:3:0:1": { + "attributes": [0], + "observations": { + "0": [2112.0, null] + } + }, + "0:0:4:0:1": { + "attributes": [0], + "observations": { + "0": [2138.0, null] + } + }, + "1:0:0:0:1": { + "attributes": [0], + "observations": { + "0": [1140.0, null] + } + }, + "1:0:1:0:1": { + "attributes": [0], + "observations": { + "0": [1035.0, null] + } + }, + "1:0:2:0:1": { + "attributes": [0], + "observations": { + "0": [579.0, null] + } + }, + "1:0:3:0:1": { + "attributes": [0], + "observations": { + "0": [1512.0, null] + } + }, + "1:0:4:0:1": { + "attributes": [0], + "observations": { + "0": [2138.0, null] + } + } + } + } + ], + "structure": { + "name": "two concept example", + "description": "two concept example", + "dimensions": { + "series": [ + { + "keyPosition": 0, + "id": "MEASURE", + "name": "Data Item", + "values": [ + { + "id": "BD_2", + "name": "Births" }, - "0:0:4:0:1": { - "attributes": [0], - "observations": { - "0": [2138.0, null] - } + { + "id": "BD_4", + "name": "Deaths" + } + ] + }, + { + "keyPosition": 1, + "id": "REGIONTYPE", + "name": "Region Type", + "values": [ + { + "id": "LGA_2013", + "name": "Local Government Areas (2013)" + } + ] + }, + { + "keyPosition": 2, + "id": "REGION", + "name": "Region", + "values": [ + { + "id": "17100", + "name": "Strathfield (A)" }, - "1:0:0:0:1": { - "attributes": [0], - "observations": { - "0": [1140.0, null] - } + { + "id": "56520", + "name": "Narrogin (T)" }, - "1:0:1:0:1": { - "attributes": [0], - "observations": { - "0": [1035.0, null] - } + { + "id": "54970", + "name": "Laverton (S)" }, - "1:0:2:0:1": { - "attributes": [0], - "observations": { - "0": [579.0, null] - } + { + "id": "10300", + "name": "Balranald (A)" }, - "1:0:3:0:1": { - "attributes": [0], - "observations": { - "0": [1512.0, null] - } + { + "id": "29399", + "name": "Unincorporated Vic" + } + ] + }, + { + "keyPosition": 3, + "id": "FREQUENCY", + "name": "Frequency", + "values": [ + { + "id": "A", + "name": "Annual" + } + ], + "role": "FREQ" + }, + { + "keyPosition": 4, + "id": "AGE", + "name": "Age", + "values": [ + { + "id": "0-20", + "name": "0 - 20 Years" }, - "1:0:4:0:1": { - "attributes": [0], - "observations": { - "0": [2138.0, null] - } + { + "id": "21+", + "name": "21+ Years" } + ] } - }], - "structure": { - "name": "two concept example", - "description": "two concept example", - "dimensions": { - "series": [{ - "keyPosition": 0, - "id": "MEASURE", - "name": "Data Item", - "values": [{ - "id": "BD_2", - "name": "Births" - }, { - "id": "BD_4", - "name": "Deaths" - }] - }, { - "keyPosition": 1, - "id": "REGIONTYPE", - "name": "Region Type", - "values": [{ - "id": "LGA_2013", - "name": "Local Government Areas (2013)" - }] - }, { - "keyPosition": 2, - "id": "REGION", - "name": "Region", - "values": [{ - "id": "17100", - "name": "Strathfield (A)" - }, { - "id": "56520", - "name": "Narrogin (T)" - }, { - "id": "54970", - "name": "Laverton (S)" - }, { - "id": "10300", - "name": "Balranald (A)" - }, { - "id": "29399", - "name": "Unincorporated Vic" - }] - }, { - "keyPosition": 3, - "id": "FREQUENCY", - "name": "Frequency", - "values": [{ - "id": "A", - "name": "Annual" - }], - "role": "FREQ" - }, { - "keyPosition": 4, - "id": "AGE", - "name": "Age", - "values": [{ - "id": "0-20", - "name": "0 - 20 Years" - }, { - "id": "21+", - "name": "21+ Years" - }] - }], - "observation": [{ - "id": "TIME_PERIOD", - "name": "Time", - "values": [{ - "id": "2013", - "name": "2013" - }], - "role": "TIME_PERIOD" - }] - }, - "attributes": { - "dataSet": [], - "series": [{ - "id": "TIME_FORMAT", - "name": "Time Format", - "values": [{ - "id": "P1Y", - "name": "Annual" - }] - }], - "observation": [{ - "id": "OBS_STATUS", - "name": "Observation Status", - "values": [] - }] - }, - "annotations": [] - } -} \ No newline at end of file + ], + "observation": [ + { + "id": "TIME_PERIOD", + "name": "Time", + "values": [ + { + "id": "2013", + "name": "2013" + } + ], + "role": "TIME_PERIOD" + } + ] + }, + "attributes": { + "dataSet": [], + "series": [ + { + "id": "TIME_FORMAT", + "name": "Time Format", + "values": [ + { + "id": "P1Y", + "name": "Annual" + } + ] + } + ], + "observation": [ + { + "id": "OBS_STATUS", + "name": "Observation Status", + "values": [] + } + ] + }, + "annotations": [] + } +} diff --git a/wwwroot/test/SDMX-JSON/old/data-no-concepts-2013.json b/wwwroot/test/SDMX-JSON/old/data-no-concepts-2013.json index 525e248fc1a..f030948a0c3 100644 --- a/wwwroot/test/SDMX-JSON/old/data-no-concepts-2013.json +++ b/wwwroot/test/SDMX-JSON/old/data-no-concepts-2013.json @@ -1,119 +1,148 @@ { - "header": { - "id": "foo", - "test": true - }, - "dataSets": [{ - "action": "Information", - "series": { - "0:0:0:0": { - "attributes": [0], - "observations": { - "0": [1140.0, null] - } + "header": { + "id": "foo", + "test": true + }, + "dataSets": [ + { + "action": "Information", + "series": { + "0:0:0:0": { + "attributes": [0], + "observations": { + "0": [1140.0, null] + } + }, + "0:0:1:0": { + "attributes": [0], + "observations": { + "0": [535.0, null] + } + }, + "0:0:2:0": { + "attributes": [0], + "observations": { + "0": [79.0, null] + } + }, + "0:0:3:0": { + "attributes": [0], + "observations": { + "0": [12.0, null] + } + }, + "0:0:4:0": { + "attributes": [0], + "observations": { + "0": [38.0, null] + } + } + } + } + ], + "structure": { + "name": "foo", + "description": "Foo Example", + "dimensions": { + "series": [ + { + "keyPosition": 0, + "id": "MEASURE", + "name": "Data Item", + "values": [ + { + "id": "BD_2", + "name": "Births" + } + ] + }, + { + "keyPosition": 1, + "id": "REGIONTYPE", + "name": "Region Type", + "values": [ + { + "id": "LGA_2013", + "name": "Local Government Areas (2013)" + } + ] + }, + { + "keyPosition": 2, + "id": "REGION", + "name": "Region", + "values": [ + { + "id": "17100", + "name": "Strathfield (A)" }, - "0:0:1:0": { - "attributes": [0], - "observations": { - "0": [535.0, null] - } + { + "id": "56520", + "name": "Narrogin (T)" }, - "0:0:2:0": { - "attributes": [0], - "observations": { - "0": [79.0, null] - } + { + "id": "54970", + "name": "Laverton (S)" }, - "0:0:3:0": { - "attributes": [0], - "observations": { - "0": [12.0, null] - } + { + "id": "10300", + "name": "Balranald (A)" }, - "0:0:4:0": { - "attributes": [0], - "observations": { - "0": [38.0, null] - } + { + "id": "29399", + "name": "Unincorporated Vic" } - } - }], - "structure": { - "name": "foo", - "description": "Foo Example", - "dimensions": { - "series": [{ - "keyPosition": 0, - "id": "MEASURE", - "name": "Data Item", - "values": [{ - "id": "BD_2", - "name": "Births" - }] - }, { - "keyPosition": 1, - "id": "REGIONTYPE", - "name": "Region Type", - "values": [{ - "id": "LGA_2013", - "name": "Local Government Areas (2013)" - }] - }, { - "keyPosition": 2, - "id": "REGION", - "name": "Region", - "values": [{ - "id": "17100", - "name": "Strathfield (A)" - }, { - "id": "56520", - "name": "Narrogin (T)" - }, { - "id": "54970", - "name": "Laverton (S)" - }, { - "id": "10300", - "name": "Balranald (A)" - }, { - "id": "29399", - "name": "Unincorporated Vic" - }] - }, { - "keyPosition": 3, - "id": "FREQUENCY", - "name": "Frequency", - "values": [{ - "id": "A", - "name": "Annual" - }], - "role": "FREQ" - }], - "observation": [{ - "id": "TIME_PERIOD", - "name": "Time", - "values": [{ - "id": "2013", - "name": "2013" - }], - "role": "TIME_PERIOD" - }] + ] }, - "attributes": { - "dataSet": [], - "series": [{ - "id": "TIME_FORMAT", - "name": "Time Format", - "values": [{ - "id": "P1Y", - "name": "Annual" - }] - }], - "observation": [{ - "id": "OBS_STATUS", - "name": "Observation Status", - "values": [] - }] - }, - "annotations": [] - } -} \ No newline at end of file + { + "keyPosition": 3, + "id": "FREQUENCY", + "name": "Frequency", + "values": [ + { + "id": "A", + "name": "Annual" + } + ], + "role": "FREQ" + } + ], + "observation": [ + { + "id": "TIME_PERIOD", + "name": "Time", + "values": [ + { + "id": "2013", + "name": "2013" + } + ], + "role": "TIME_PERIOD" + } + ] + }, + "attributes": { + "dataSet": [], + "series": [ + { + "id": "TIME_FORMAT", + "name": "Time Format", + "values": [ + { + "id": "P1Y", + "name": "Annual" + } + ] + } + ], + "observation": [ + { + "id": "OBS_STATUS", + "name": "Observation Status", + "values": [] + } + ] + }, + "annotations": [] + } +} diff --git a/wwwroot/test/SDMX-JSON/old/data-nonspatial.json b/wwwroot/test/SDMX-JSON/old/data-nonspatial.json index 7f747749a00..a1b45ed586d 100644 --- a/wwwroot/test/SDMX-JSON/old/data-nonspatial.json +++ b/wwwroot/test/SDMX-JSON/old/data-nonspatial.json @@ -1,269 +1,305 @@ { - "header": { - "id": "Non-spatial", - "test": true - }, - "dataSets": [{ - "action": "Information", - "series": { - "0:0:0:0:0": { - "attributes": [0], - "observations": { - "0": [1140.0, null], - "1": [11140.0, null], - "2": [21140.0, null] - } - }, - "0:0:1:0:0": { - "attributes": [0], - "observations": { - "0": [535.0, null], - "1": [1535.0, null], - "2": [2535.0, null] - } - }, - "0:0:2:0:0": { - "attributes": [0], - "observations": { - "0": [79.0, null], - "1": [179.0, null], - "2": [279.0, null] - } - }, - "0:0:3:0:0": { - "attributes": [0], - "observations": { - "0": [12.0, null], - "1": [112.0, null], - "2": [212.0, null] - } - }, - "0:0:4:0:0": { - "attributes": [0], - "observations": { - "0": [38.0, null], - "1": [138.0, null], - "2": [238.0, null] - } - }, - "1:0:0:0:0": { - "attributes": [0], - "observations": { - "0": [140.0, null], - "1": [1140.0, null], - "2": [2140.0, null] - } - }, - "1:0:1:0:0": { - "attributes": [0], - "observations": { - "0": [35.0, null], - "1": [135.0, null], - "2": [235.0, null] - } - }, - "1:0:2:0:0": { - "attributes": [0], - "observations": { - "0": [179.0, null], - "1": [1179.0, null], - "2": [2179.0, null] - } - }, - "1:0:3:0:0": { - "attributes": [0], - "observations": { - "0": [112.0, null], - "1": [1112.0, null], - "2": [2112.0, null] - } - }, - "1:0:4:0:0": { - "attributes": [0], - "observations": { - "0": [138.0, null], - "1": [1138.0, null], - "2": [2138.0, null] - } - }, - "0:0:0:0:1": { - "attributes": [0], - "observations": { - "0": [2140.0, null], - "1": [12140.0, null], - "2": [22140.0, null] - } - }, - "0:0:1:0:1": { - "attributes": [0], - "observations": { - "0": [2535.0, null], - "1": [12535.0, null], - "2": [22535.0, null] - } + "header": { + "id": "Non-spatial", + "test": true + }, + "dataSets": [ + { + "action": "Information", + "series": { + "0:0:0:0:0": { + "attributes": [0], + "observations": { + "0": [1140.0, null], + "1": [11140.0, null], + "2": [21140.0, null] + } + }, + "0:0:1:0:0": { + "attributes": [0], + "observations": { + "0": [535.0, null], + "1": [1535.0, null], + "2": [2535.0, null] + } + }, + "0:0:2:0:0": { + "attributes": [0], + "observations": { + "0": [79.0, null], + "1": [179.0, null], + "2": [279.0, null] + } + }, + "0:0:3:0:0": { + "attributes": [0], + "observations": { + "0": [12.0, null], + "1": [112.0, null], + "2": [212.0, null] + } + }, + "0:0:4:0:0": { + "attributes": [0], + "observations": { + "0": [38.0, null], + "1": [138.0, null], + "2": [238.0, null] + } + }, + "1:0:0:0:0": { + "attributes": [0], + "observations": { + "0": [140.0, null], + "1": [1140.0, null], + "2": [2140.0, null] + } + }, + "1:0:1:0:0": { + "attributes": [0], + "observations": { + "0": [35.0, null], + "1": [135.0, null], + "2": [235.0, null] + } + }, + "1:0:2:0:0": { + "attributes": [0], + "observations": { + "0": [179.0, null], + "1": [1179.0, null], + "2": [2179.0, null] + } + }, + "1:0:3:0:0": { + "attributes": [0], + "observations": { + "0": [112.0, null], + "1": [1112.0, null], + "2": [2112.0, null] + } + }, + "1:0:4:0:0": { + "attributes": [0], + "observations": { + "0": [138.0, null], + "1": [1138.0, null], + "2": [2138.0, null] + } + }, + "0:0:0:0:1": { + "attributes": [0], + "observations": { + "0": [2140.0, null], + "1": [12140.0, null], + "2": [22140.0, null] + } + }, + "0:0:1:0:1": { + "attributes": [0], + "observations": { + "0": [2535.0, null], + "1": [12535.0, null], + "2": [22535.0, null] + } + }, + "0:0:2:0:1": { + "attributes": [0], + "observations": { + "0": [2179.0, null], + "1": [12179.0, null], + "2": [22179.0, null] + } + }, + "0:0:3:0:1": { + "attributes": [0], + "observations": { + "0": [2112.0, null], + "1": [12112.0, null], + "2": [22112.0, null] + } + }, + "0:0:4:0:1": { + "attributes": [0], + "observations": { + "0": [2138.0, null], + "1": [12138.0, null], + "2": [22138.0, null] + } + }, + "1:0:0:0:1": { + "attributes": [0], + "observations": { + "0": [1140.0, null], + "1": [11140.0, null], + "2": [21140.0, null] + } + }, + "1:0:1:0:1": { + "attributes": [0], + "observations": { + "0": [1035.0, null], + "1": [11035.0, null], + "2": [21035.0, null] + } + }, + "1:0:2:0:1": { + "attributes": [0], + "observations": { + "0": [579.0, null], + "1": [1579.0, null], + "2": [2579.0, null] + } + }, + "1:0:3:0:1": { + "attributes": [0], + "observations": { + "0": [1512.0, null], + "1": [11512.0, null], + "2": [21512.0, null] + } + }, + "1:0:4:0:1": { + "attributes": [0], + "observations": { + "0": [2138.0, null], + "1": [12138.0, null], + "2": [22138.0, null] + } + } + } + } + ], + "structure": { + "name": "Non-spatial data", + "description": "Non-spatial data", + "dimensions": { + "series": [ + { + "keyPosition": 0, + "id": "MEASURE", + "name": "Data Item", + "values": [ + { + "id": "BD_2", + "name": "Births" }, - "0:0:2:0:1": { - "attributes": [0], - "observations": { - "0": [2179.0, null], - "1": [12179.0, null], - "2": [22179.0, null] - } + { + "id": "BD_4", + "name": "Deaths" + } + ] + }, + { + "keyPosition": 1, + "id": "SOMETHING", + "name": "Something", + "values": [ + { + "id": "Number", + "name": "Number" + } + ] + }, + { + "keyPosition": 2, + "id": "EDUCATION", + "name": "Education", + "values": [ + { + "id": "Primary", + "name": "Primary school only" }, - "0:0:3:0:1": { - "attributes": [0], - "observations": { - "0": [2112.0, null], - "1": [12112.0, null], - "2": [22112.0, null] - } + { + "id": "Secondary", + "name": "Secondary school only" }, - "0:0:4:0:1": { - "attributes": [0], - "observations": { - "0": [2138.0, null], - "1": [12138.0, null], - "2": [22138.0, null] - } + { + "id": "Tertiary", + "name": "Undergraduate degree" }, - "1:0:0:0:1": { - "attributes": [0], - "observations": { - "0": [1140.0, null], - "1": [11140.0, null], - "2": [21140.0, null] - } + { + "id": "Postgrad", + "name": "Postgraduate degree" }, - "1:0:1:0:1": { - "attributes": [0], - "observations": { - "0": [1035.0, null], - "1": [11035.0, null], - "2": [21035.0, null] - } + { + "id": "None", + "name": "None" + } + ] + }, + { + "keyPosition": 3, + "id": "FREQUENCY", + "name": "Frequency", + "values": [ + { + "id": "A", + "name": "Annual" + } + ], + "role": "FREQ" + }, + { + "keyPosition": 4, + "id": "AGE", + "name": "Age", + "values": [ + { + "id": "0-20", + "name": "0 - 20 Years" }, - "1:0:2:0:1": { - "attributes": [0], - "observations": { - "0": [579.0, null], - "1": [1579.0, null], - "2": [2579.0, null] - } + { + "id": "21+", + "name": "21+ Years" + } + ] + } + ], + "observation": [ + { + "id": "TIME_PERIOD", + "name": "Time", + "values": [ + { + "id": "2011", + "name": "2011" }, - "1:0:3:0:1": { - "attributes": [0], - "observations": { - "0": [1512.0, null], - "1": [11512.0, null], - "2": [21512.0, null] - } + { + "id": "2012", + "name": "2012" }, - "1:0:4:0:1": { - "attributes": [0], - "observations": { - "0": [2138.0, null], - "1": [12138.0, null], - "2": [22138.0, null] - } + { + "id": "2013", + "name": "2013" } + ], + "role": "TIME_PERIOD" } - }], - "structure": { - "name": "Non-spatial data", - "description": "Non-spatial data", - "dimensions": { - "series": [{ - "keyPosition": 0, - "id": "MEASURE", - "name": "Data Item", - "values": [{ - "id": "BD_2", - "name": "Births" - }, { - "id": "BD_4", - "name": "Deaths" - }] - }, { - "keyPosition": 1, - "id": "SOMETHING", - "name": "Something", - "values": [{ - "id": "Number", - "name": "Number" - }] - }, { - "keyPosition": 2, - "id": "EDUCATION", - "name": "Education", - "values": [{ - "id": "Primary", - "name": "Primary school only" - }, { - "id": "Secondary", - "name": "Secondary school only" - }, { - "id": "Tertiary", - "name": "Undergraduate degree" - }, { - "id": "Postgrad", - "name": "Postgraduate degree" - }, { - "id": "None", - "name": "None" - }] - }, { - "keyPosition": 3, - "id": "FREQUENCY", - "name": "Frequency", - "values": [{ - "id": "A", - "name": "Annual" - }], - "role": "FREQ" - }, { - "keyPosition": 4, - "id": "AGE", - "name": "Age", - "values": [{ - "id": "0-20", - "name": "0 - 20 Years" - }, { - "id": "21+", - "name": "21+ Years" - }] - }], - "observation": [{ - "id": "TIME_PERIOD", - "name": "Time", - "values": [{ - "id": "2011", - "name": "2011" - }, { - "id": "2012", - "name": "2012" - }, { - "id": "2013", - "name": "2013" - }], - "role": "TIME_PERIOD" - }] - }, - "attributes": { - "dataSet": [], - "series": [{ - "id": "TIME_FORMAT", - "name": "Time Format", - "values": [{ - "id": "P1Y", - "name": "Annual" - }] - }], - "observation": [{ - "id": "OBS_STATUS", - "name": "Observation Status", - "values": [] - }] - }, - "annotations": [] - } -} \ No newline at end of file + ] + }, + "attributes": { + "dataSet": [], + "series": [ + { + "id": "TIME_FORMAT", + "name": "Time Format", + "values": [ + { + "id": "P1Y", + "name": "Annual" + } + ] + } + ], + "observation": [ + { + "id": "OBS_STATUS", + "name": "Observation Status", + "values": [] + } + ] + }, + "annotations": [] + } +} diff --git a/wwwroot/test/SDMX-JSON/old/data-ste-no-year.json b/wwwroot/test/SDMX-JSON/old/data-ste-no-year.json index 7f9dc17084b..e98e151a927 100644 --- a/wwwroot/test/SDMX-JSON/old/data-ste-no-year.json +++ b/wwwroot/test/SDMX-JSON/old/data-ste-no-year.json @@ -1,186 +1,150 @@ { - "header": { - "id": "data-as-observations", - "test": true - }, - "dataSets": [ + "header": { + "id": "data-as-observations", + "test": true + }, + "dataSets": [ + { + "action": "Information", + "observations": { + "0:0:0:0:0:0": [17658, 0, null], + "0:0:1:0:0:0": [14042, 0, null], + "0:0:2:0:0:0": [9739, 0, null], + "0:0:3:0:0:0": [6572, 0, null], + "0:0:4:0:0:0": [2970, 0, null], + "0:0:5:0:0:0": [4940, 0, null], + "0:0:6:0:0:0": [945, 0, null], + "0:0:7:0:0:0": [7222, 0, null], + "0:0:8:0:0:0": [13001, 0, null] + } + } + ], + "structure": { + "name": "observation data", + "description": "Observation data", + "dimensions": { + "observation": [ + { + "keyPosition": 0, + "id": "MEASURE", + "name": "Sex", + "values": [ + { + "id": "3", + "name": "Persons" + } + ] + }, + { + "keyPosition": 1, + "id": "SPC", + "name": "Selected Person Characteristics", + "values": [ + { + "id": "TT", + "name": "Total persons" + } + ] + }, + { + "keyPosition": 2, + "id": "REGION", + "name": "Region", + "values": [ + { + "id": "1", + "name": "New South Wales" + }, + { + "id": "2", + "name": "Victoria" + }, + { + "id": "3", + "name": "Queensland" + }, + { + "id": "4", + "name": "South Australia" + }, + { + "id": "5", + "name": "Western Australia" + }, + { + "id": "6", + "name": "Tasmania" + }, + { + "id": "7", + "name": "Northern Territory" + }, + { + "id": "8", + "name": "Australian Capital Territory" + }, + { + "id": "9", + "name": "Other Territories" + } + ] + }, { - "action": "Information", - "observations": { - "0:0:0:0:0:0": [ - 17658, - 0, - null - ], - "0:0:1:0:0:0": [ - 14042, - 0, - null - ], - "0:0:2:0:0:0": [ - 9739, - 0, - null - ], - "0:0:3:0:0:0": [ - 6572, - 0, - null - ], - "0:0:4:0:0:0": [ - 2970, - 0, - null - ], - "0:0:5:0:0:0": [ - 4940, - 0, - null - ], - "0:0:6:0:0:0": [ - 945, - 0, - null - ], - "0:0:7:0:0:0": [ - 7222, - 0, - null - ], - "0:0:8:0:0:0": [ - 13001, - 0, - null - ] + "keyPosition": 3, + "id": "REGIONTYPE", + "name": "Region Type", + "values": [ + { + "id": "STE", + "name": "States and Territories" } + ] + }, + { + "keyPosition": 4, + "id": "FREQUENCY", + "name": "Frequency", + "values": [ + { + "id": "A", + "name": "Annual" + } + ], + "role": "FREQ" + }, + { + "id": "TIME_PERIOD", + "name": "Time", + "values": [ + { + "id": "2001", + "name": "2001" + } + ], + "role": "TIME_PERIOD" } - ], - "structure": { - "name": "observation data", - "description": "Observation data", - "dimensions": { - "observation": [ - { - "keyPosition": 0, - "id": "MEASURE", - "name": "Sex", - "values": [ - { - "id": "3", - "name": "Persons" - } - ] - }, - { - "keyPosition": 1, - "id": "SPC", - "name": "Selected Person Characteristics", - "values": [ - { - "id": "TT", - "name": "Total persons" - } - ] - }, - { - "keyPosition": 2, - "id": "REGION", - "name": "Region", - "values": [ - { - "id": "1", - "name": "New South Wales" - }, - { - "id": "2", - "name": "Victoria" - }, - { - "id": "3", - "name": "Queensland" - }, - { - "id": "4", - "name": "South Australia" - }, - { - "id": "5", - "name": "Western Australia" - }, - { - "id": "6", - "name": "Tasmania" - }, - { - "id": "7", - "name": "Northern Territory" - }, - { - "id": "8", - "name": "Australian Capital Territory" - }, - { - "id": "9", - "name": "Other Territories" - } - ] - }, - { - "keyPosition": 3, - "id": "REGIONTYPE", - "name": "Region Type", - "values": [ - { - "id": "STE", - "name": "States and Territories" - } - ] - }, - { - "keyPosition": 4, - "id": "FREQUENCY", - "name": "Frequency", - "values": [ - { - "id": "A", - "name": "Annual" - } - ], - "role": "FREQ" - }, - { - "id": "TIME_PERIOD", - "name": "Time", - "values": [ - { - "id": "2001", - "name": "2001" - } - ], - "role": "TIME_PERIOD" - } - ] + ] + }, + "attributes": { + "dataSet": [], + "series": [], + "observation": [ + { + "id": "TIME_FORMAT", + "name": "Time Format", + "values": [ + { + "id": "P1Y", + "name": "Annual" + } + ] }, - "attributes": { - "dataSet": [], - "series": [], - "observation": [ - { - "id": "TIME_FORMAT", - "name": "Time Format", - "values": [ - { - "id": "P1Y", - "name": "Annual" - } - ] - }, - { - "id": "OBS_STATUS", - "name": "Observation Status", - "values": [] - } - ] + { + "id": "OBS_STATUS", + "name": "Observation Status", + "values": [] } + ] } -} \ No newline at end of file + } +} diff --git a/wwwroot/test/SDMX-JSON/old/dataflow-foo.json b/wwwroot/test/SDMX-JSON/old/dataflow-foo.json index 179b30d0974..f64e9073903 100644 --- a/wwwroot/test/SDMX-JSON/old/dataflow-foo.json +++ b/wwwroot/test/SDMX-JSON/old/dataflow-foo.json @@ -1,121 +1,160 @@ { - "header": { - "id": "foo", - "test": true - }, - "structure": { - "name": "foo", - "description": "Foo Example", - "dimensions": { - "observation": [{ - "keyPosition": 0, - "id": "MEASURE", - "name": "Data Item", - "values": [{ - "id": "BD_2", - "name": "Births" - }, { - "id": "BD_4", - "name": "Deaths" - }] - }, { - "keyPosition": 1, - "id": "REGIONTYPE", - "name": "Region Type", - "values": [{ - "id": "LGA_2013", - "name": "Local Government Areas (2013)" - }] - }, { - "keyPosition": 2, - "id": "REGION", - "name": "Region", - "values": [{ - "id": "17100", - "name": "Strathfield (A)" - }, { - "id": "56520", - "name": "Narrogin (T)" - }, { - "id": "54970", - "name": "Laverton (S)" - }, { - "id": "10300", - "name": "Balranald (A)" - }, { - "id": "29399", - "name": "Unincorporated Vic" - }] - }, { - "keyPosition": 3, - "id": "FREQUENCY", - "name": "Frequency", - "values": [{ - "id": "A", - "name": "Annual" - }], - "role": "FREQ" - }, { - "keyPosition": 4, - "id": "TIME_PERIOD", - "name": "Time", - "values": [{ - "id": "2008", - "name": "2008" - }, { - "id": "2009", - "name": "2009" - }, { - "id": "2010", - "name": "2010" - }, { - "id": "2011", - "name": "2011" - }, { - "id": "2012", - "name": "2012" - }, { - "id": "2013", - "name": "2013" - }], - "role": "TIME_PERIOD" - }] + "header": { + "id": "foo", + "test": true + }, + "structure": { + "name": "foo", + "description": "Foo Example", + "dimensions": { + "observation": [ + { + "keyPosition": 0, + "id": "MEASURE", + "name": "Data Item", + "values": [ + { + "id": "BD_2", + "name": "Births" + }, + { + "id": "BD_4", + "name": "Deaths" + } + ] + }, + { + "keyPosition": 1, + "id": "REGIONTYPE", + "name": "Region Type", + "values": [ + { + "id": "LGA_2013", + "name": "Local Government Areas (2013)" + } + ] + }, + { + "keyPosition": 2, + "id": "REGION", + "name": "Region", + "values": [ + { + "id": "17100", + "name": "Strathfield (A)" + }, + { + "id": "56520", + "name": "Narrogin (T)" + }, + { + "id": "54970", + "name": "Laverton (S)" + }, + { + "id": "10300", + "name": "Balranald (A)" + }, + { + "id": "29399", + "name": "Unincorporated Vic" + } + ] }, - "attributes": { - "observation": [{ - "id": "TIME_FORMAT", - "name": "Time Format", - "values": [{ - "id": "P1Y", - "name": "Annual" - }, { - "id": "P1M", - "name": "Annual" - }, { - "id": "P3M", - "name": "Quarterly" - }, { - "id": "P6M", - "name": "Half-yearly" - }, { - "id": "P1D", - "name": "Daily" - }] - }, { - "id": "OBS_STATUS", - "name": "Observation Status", - "values": [{ - "id": "n", - "name": "not available for publication but included in totals" - }, { - "id": "o", - "name": "nil or rounded to zero" - }, { - "id": "v", - "name": "not available for publication but included in totals" - }] - }] + { + "keyPosition": 3, + "id": "FREQUENCY", + "name": "Frequency", + "values": [ + { + "id": "A", + "name": "Annual" + } + ], + "role": "FREQ" }, - "annotations": [] - } -} \ No newline at end of file + { + "keyPosition": 4, + "id": "TIME_PERIOD", + "name": "Time", + "values": [ + { + "id": "2008", + "name": "2008" + }, + { + "id": "2009", + "name": "2009" + }, + { + "id": "2010", + "name": "2010" + }, + { + "id": "2011", + "name": "2011" + }, + { + "id": "2012", + "name": "2012" + }, + { + "id": "2013", + "name": "2013" + } + ], + "role": "TIME_PERIOD" + } + ] + }, + "attributes": { + "observation": [ + { + "id": "TIME_FORMAT", + "name": "Time Format", + "values": [ + { + "id": "P1Y", + "name": "Annual" + }, + { + "id": "P1M", + "name": "Annual" + }, + { + "id": "P3M", + "name": "Quarterly" + }, + { + "id": "P6M", + "name": "Half-yearly" + }, + { + "id": "P1D", + "name": "Daily" + } + ] + }, + { + "id": "OBS_STATUS", + "name": "Observation Status", + "values": [ + { + "id": "n", + "name": "not available for publication but included in totals" + }, + { + "id": "o", + "name": "nil or rounded to zero" + }, + { + "id": "v", + "name": "not available for publication but included in totals" + } + ] + } + ] + }, + "annotations": [] + } +} diff --git a/wwwroot/test/SDMX-JSON/old/regionMappingSdmx.json b/wwwroot/test/SDMX-JSON/old/regionMappingSdmx.json index 6bcc6276567..8e5833cec2d 100644 --- a/wwwroot/test/SDMX-JSON/old/regionMappingSdmx.json +++ b/wwwroot/test/SDMX-JSON/old/regionMappingSdmx.json @@ -1,2449 +1,1847 @@ { - "comments": "Matching takes place in the order defined in this file. Place code matches before name matches, and smaller regions before larger ones.", - "regionWmsMap": { - "SA1_2011": { - "layerName": "FID_SA1_2011_AUST", - "server": "https://vector-tiles.terria.io/FID_SA1_2011_AUST/{z}/{x}/{y}.pbf", - "analyticsWmsLayerName": "region_map:FID_SA1_2011_AUST", - "analyticsWmsServer": "http://geoserver.nationalmap.nicta.com.au/region_map/ows", - "regionProp": "SA1_MAIN11", - "aliases": [ - "sa1_code_2011", - "sa1_maincode_2011" - ], - "digits": 11, - "description": "Statistical Area Level 1", - "regionIdsFile": "data/regionids/region_map-FID_SA1_2011_AUST_SA1_MAIN11.json", - "serverType": "MVT", - "serverSubdomains": [], - "serverMinZoom": 0, - "serverMaxNativeZoom": 12, - "serverMaxZoom": 28, - "bbox": [ - 96.81694140799998, - -43.74050960300003, - 159.10921900799997, - -9.142175976999999 - ], - "nameProp": "SA1_7DIG11" - }, - "SA1_7DIGIT_2011": { - "layerName": "FID_SA1_2011_AUST", - "server": "https://vector-tiles.terria.io/FID_SA1_2011_AUST/{z}/{x}/{y}.pbf", - "analyticsWmsLayerName": "region_map:FID_SA1_2011_AUST", - "analyticsWmsServer": "http://geoserver.nationalmap.nicta.com.au/region_map/ows", - "regionProp": "SA1_7DIG11", - "aliases": [ - "sa1_7digitcode_2011" - ], - "digits": 7, - "description": "Statistical Area Level 1", - "regionIdsFile": "data/regionids/region_map-FID_SA1_2011_AUST_SA1_7DIG11.json", - "serverType": "MVT", - "serverSubdomains": [], - "serverMinZoom": 0, - "serverMaxNativeZoom": 12, - "serverMaxZoom": 28, - "bbox": [ - 96.81694140799998, - -43.74050960300003, - 159.10921900799997, - -9.142175976999999 - ], - "nameProp": "SA1_7DIG11" - }, - "SA1_2016": { - "layerName": "SA1_2016_AUST", - "server": "https://vector-tiles.terria.io/SA1_2016_AUST/{z}/{x}/{y}.pbf", - "serverType": "MVT", - "serverSubdomains": [], - "serverMinZoom": 0, - "serverMaxNativeZoom": 12, - "serverMaxZoom": 28, - "bbox": [ - 96.81694139400007, - -43.74050960299996, - 167.99803499600006, - -9.142175976999962 - ], - "regionProp": "SA1_MAIN16", - "aliases": [ - "sa1", - "sa1_code", - "sa1_maincode_2016", - "sa1_code_2016" - ], - "nameProp": "SA1_7DIG16", - "description": "Statistical Area Level 1 2016 (ABS)", - "regionIdsFile": "data/regionids/region_map-SA1_2016_AUST_SA1_MAIN16.json" - }, - "SA1_7DIGIT_2016": { - "layerName": "SA1_2016_AUST", - "server": "https://vector-tiles.terria.io/SA1_2016_AUST/{z}/{x}/{y}.pbf", - "serverType": "MVT", - "serverSubdomains": [], - "serverMinZoom": 0, - "serverMaxNativeZoom": 12, - "serverMaxZoom": 28, - "bbox": [ - 96.81694139400007, - -43.74050960299996, - 167.99803499600006, - -9.142175976999962 - ], - "regionProp": "SA1_7DIG16", - "aliases": [ - "sa1_7digitcode", - "sa1_7digitcode_2016" - ], - "nameProp": "SA1_7DIG16", - "description": "Statistical Area Level 1 2016 (ABS)", - "regionIdsFile": "data/regionids/region_map-SA1_2016_AUST_SA1_7DIG16.json" - }, - "SA4_2011": { - "layerName": "FID_SA4_2011_AUST", - "server": "https://vector-tiles.terria.io/FID_SA4_2011_AUST/{z}/{x}/{y}.pbf", - "analyticsWmsLayerName": "region_map:FID_SA4_2011_AUST", - "analyticsWmsServer": "http://geoserver.nationalmap.nicta.com.au/region_map/ows", - "regionProp": "SA4_CODE11", - "aliases": [ - "sa4_code_2011" - ], - "digits": 3, - "description": "Statistical Area Level 4", - "regionIdsFile": "data/regionids/region_map-FID_SA4_2011_AUST_SA4_CODE11.json", - "serverType": "MVT", - "serverSubdomains": [], - "serverMinZoom": 0, - "serverMaxNativeZoom": 12, - "serverMaxZoom": 28, - "bbox": [ - 96.81694140799998, - -43.74050960300003, - 159.10921900799997, - -9.142175976999999 - ], - "nameProp": "SA4_NAME11" - }, - "SA4_NAME_2011": { - "layerName": "FID_SA4_2011_AUST", - "server": "https://vector-tiles.terria.io/FID_SA4_2011_AUST/{z}/{x}/{y}.pbf", - "analyticsWmsLayerName": "region_map:FID_SA4_2011_AUST", - "analyticsWmsServer": "http://geoserver.nationalmap.nicta.com.au/region_map/ows", - "regionProp": "SA4_NAME11", - "aliases": [ - "sa4_name_2011" - ], - "description": "Statistical Area Level 4", - "regionIdsFile": "data/regionids/region_map-FID_SA4_2011_AUST_SA4_NAME11.json", - "serverType": "MVT", - "serverSubdomains": [], - "serverMinZoom": 0, - "serverMaxNativeZoom": 12, - "serverMaxZoom": 28, - "bbox": [ - 96.81694140799998, - -43.74050960300003, - 159.10921900799997, - -9.142175976999999 - ], - "nameProp": "SA4_NAME11" - }, - "SA4_2016": { - "layerName": "SA4_2016_AUST", - "server": "https://vector-tiles.terria.io/SA4_2016_AUST/{z}/{x}/{y}.pbf", - "serverType": "MVT", - "serverSubdomains": [], - "serverMinZoom": 0, - "serverMaxNativeZoom": 12, - "serverMaxZoom": 28, - "bbox": [ - 96.81694139400007, - -43.74050960299996, - 167.99803499600006, - -9.142175976999962 - ], - "regionProp": "SA4_CODE16", - "aliases": [ - "sa4", - "sa4_code", - "sa4_code_2016" - ], - "nameProp": "SA4_NAME16", - "description": "Statistical Area Level 4 2016 (ABS)", - "regionIdsFile": "data/regionids/region_map-SA4_2016_AUST_SA4_CODE16.json" - }, - "SA4_NAME_2016": { - "layerName": "SA4_2016_AUST", - "server": "https://vector-tiles.terria.io/SA4_2016_AUST/{z}/{x}/{y}.pbf", - "serverType": "MVT", - "serverSubdomains": [], - "serverMinZoom": 0, - "serverMaxNativeZoom": 12, - "serverMaxZoom": 28, - "bbox": [ - 96.81694139400007, - -43.74050960299996, - 167.99803499600006, - -9.142175976999962 - ], - "regionProp": "SA4_NAME16", - "aliases": [ - "sa4_name", - "sa4_name_2016" - ], - "nameProp": "SA4_NAME16", - "description": "Statistical Area Level 4 2016 (ABS)", - "regionIdsFile": "data/regionids/region_map-SA4_2016_AUST_SA4_NAME16.json" - }, - "SA3_2011": { - "layerName": "FID_SA3_2011_AUST", - "server": "https://vector-tiles.terria.io/FID_SA3_2011_AUST/{z}/{x}/{y}.pbf", - "analyticsWmsLayerName": "region_map:FID_SA3_2011_AUST", - "analyticsWmsServer": "http://geoserver.nationalmap.nicta.com.au/region_map/ows", - "regionProp": "SA3_CODE11", - "aliases": [ - "sa3_code_2011" - ], - "digits": 5, - "description": "Statistical Area Level 3", - "regionIdsFile": "data/regionids/region_map-FID_SA3_2011_AUST_SA3_CODE11.json", - "serverType": "MVT", - "serverSubdomains": [], - "serverMinZoom": 0, - "serverMaxNativeZoom": 12, - "serverMaxZoom": 28, - "bbox": [ - 96.81694140799998, - -43.74050960300003, - 159.10921900799997, - -9.142175976999999 - ], - "nameProp": "SA3_NAME11" - }, - "SA3_NAME_2011": { - "layerName": "FID_SA3_2011_AUST", - "server": "https://vector-tiles.terria.io/FID_SA3_2011_AUST/{z}/{x}/{y}.pbf", - "analyticsWmsLayerName": "region_map:FID_SA3_2011_AUST", - "analyticsWmsServer": "http://geoserver.nationalmap.nicta.com.au/region_map/ows", - "regionProp": "SA3_NAME11", - "aliases": [ - "sa3_name_2011" - ], - "digits": 5, - "description": "Statistical Area Level 3", - "regionIdsFile": "data/regionids/region_map-FID_SA3_2011_AUST_SA3_NAME11.json", - "serverType": "MVT", - "serverSubdomains": [], - "serverMinZoom": 0, - "serverMaxNativeZoom": 12, - "serverMaxZoom": 28, - "bbox": [ - 96.81694140799998, - -43.74050960300003, - 159.10921900799997, - -9.142175976999999 - ], - "nameProp": "SA3_NAME11" - }, - "SA3_2016": { - "layerName": "SA3_2016_AUST", - "server": "https://vector-tiles.terria.io/SA3_2016_AUST/{z}/{x}/{y}.pbf", - "serverType": "MVT", - "serverSubdomains": [], - "serverMinZoom": 0, - "serverMaxNativeZoom": 12, - "serverMaxZoom": 28, - "bbox": [ - 96.81694139400007, - -43.74050960299996, - 167.99803499600006, - -9.142175976999962 - ], - "regionProp": "SA3_CODE16", - "aliases": [ - "sa3", - "sa3_code", - "sa3_code_2016" - ], - "nameProp": "SA3_NAME16", - "description": "Statistical Area Level 3 2016 (ABS)", - "regionIdsFile": "data/regionids/region_map-SA3_2016_AUST_SA3_CODE16.json" - }, - "SA3_NAME_2016": { - "layerName": "SA3_2016_AUST", - "server": "https://vector-tiles.terria.io/SA3_2016_AUST/{z}/{x}/{y}.pbf", - "serverType": "MVT", - "serverSubdomains": [], - "serverMinZoom": 0, - "serverMaxNativeZoom": 12, - "serverMaxZoom": 28, - "bbox": [ - 96.81694139400007, - -43.74050960299996, - 167.99803499600006, - -9.142175976999962 - ], - "regionProp": "SA3_NAME16", - "aliases": [ - "sa3_name", - "sa3_name_2016" - ], - "nameProp": "SA3_NAME16", - "description": "Statistical Area Level 3 2016 (ABS)", - "regionIdsFile": "data/regionids/region_map-SA3_2016_AUST_SA3_NAME16.json" - }, - "SA2_2011": { - "layerName": "FID_SA2_2011_AUST", - "server": "https://vector-tiles.terria.io/FID_SA2_2011_AUST/{z}/{x}/{y}.pbf", - "analyticsWmsLayerName": "region_map:FID_SA2_2011_AUST", - "analyticsWmsServer": "http://geoserver.nationalmap.nicta.com.au/region_map/ows", - "regionProp": "SA2_MAIN11", - "aliases": [ - "sa2_code_2011" - ], - "digits": 9, - "description": "Statistical Area Level 2", - "regionIdsFile": "data/regionids/region_map-FID_SA2_2011_AUST_SA2_MAIN11.json", - "serverType": "MVT", - "serverSubdomains": [], - "serverMinZoom": 0, - "serverMaxNativeZoom": 12, - "serverMaxZoom": 28, - "bbox": [ - 96.81694140799998, - -43.74050960300003, - 159.10921900799997, - -9.142175976999999 - ], - "nameProp": "SA2_NAME11" - }, - "SA2_5DIG_2011": { - "layerName": "FID_SA2_2011_AUST", - "server": "https://vector-tiles.terria.io/FID_SA2_2011_AUST/{z}/{x}/{y}.pbf", - "analyticsWmsLayerName": "region_map:FID_SA2_2011_AUST", - "analyticsWmsServer": "http://geoserver.nationalmap.nicta.com.au/region_map/ows", - "regionProp": "SA2_5DIG11", - "aliases": [ - "sa2_5digitcode_2011" - ], - "digits": 5, - "description": "Statistical Area Level 2", - "regionIdsFile": "data/regionids/region_map-FID_SA2_2011_AUST_SA2_5DIG11.json", - "serverType": "MVT", - "serverSubdomains": [], - "serverMinZoom": 0, - "serverMaxNativeZoom": 12, - "serverMaxZoom": 28, - "bbox": [ - 96.81694140799998, - -43.74050960300003, - 159.10921900799997, - -9.142175976999999 - ], - "nameProp": "SA2_NAME11" - }, - "SA2_NAME_2011": { - "layerName": "FID_SA2_2011_AUST", - "server": "https://vector-tiles.terria.io/FID_SA2_2011_AUST/{z}/{x}/{y}.pbf", - "analyticsWmsLayerName": "region_map:FID_SA2_2011_AUST", - "analyticsWmsServer": "http://geoserver.nationalmap.nicta.com.au/region_map/ows", - "regionProp": "SA2_NAME11", - "aliases": [ - "sa2_name_2011" - ], - "description": "Statistical Area Level 2", - "regionIdsFile": "data/regionids/region_map-FID_SA2_2011_AUST_SA2_NAME11.json", - "serverType": "MVT", - "serverSubdomains": [], - "serverMinZoom": 0, - "serverMaxNativeZoom": 12, - "serverMaxZoom": 28, - "bbox": [ - 96.81694140799998, - -43.74050960300003, - 159.10921900799997, - -9.142175976999999 - ], - "nameProp": "SA2_NAME11" - }, - "SA2_2016": { - "layerName": "SA2_2016_AUST", - "server": "https://vector-tiles.terria.io/SA2_2016_AUST/{z}/{x}/{y}.pbf", - "serverType": "MVT", - "serverSubdomains": [], - "serverMinZoom": 0, - "serverMaxNativeZoom": 12, - "serverMaxZoom": 28, - "bbox": [ - 96.81694139400007, - -43.74050960299996, - 167.99803499600006, - -9.142175976999962 - ], - "regionProp": "SA2_MAIN16", - "aliases": [ - "sa2", - "sa2_code", - "sa2_code_2016" - ], - "nameProp": "SA2_NAME16", - "description": "Statistical Area Level 2 2016 (ABS)", - "regionIdsFile": "data/regionids/region_map-SA2_2016_AUST_SA2_MAIN16.json" - }, - "SA2_5DIG_2016": { - "layerName": "SA2_2016_AUST", - "server": "https://vector-tiles.terria.io/SA2_2016_AUST/{z}/{x}/{y}.pbf", - "serverType": "MVT", - "serverSubdomains": [], - "serverMinZoom": 0, - "serverMaxNativeZoom": 12, - "serverMaxZoom": 28, - "bbox": [ - 96.81694139400007, - -43.74050960299996, - 167.99803499600006, - -9.142175976999962 - ], - "regionProp": "SA2_5DIG16", - "aliases": [ - "sa2_5digitcode", - "sa2_5digitcode_2016" - ], - "nameProp": "SA2_NAME16", - "description": "Statistical Area Level 2 2016 (ABS)", - "regionIdsFile": "data/regionids/region_map-SA2_2016_AUST_SA2_5DIG16.json" - }, - "SA2_NAME_2016": { - "layerName": "SA2_2016_AUST", - "server": "https://vector-tiles.terria.io/SA2_2016_AUST/{z}/{x}/{y}.pbf", - "serverType": "MVT", - "serverSubdomains": [], - "serverMinZoom": 0, - "serverMaxNativeZoom": 12, - "serverMaxZoom": 28, - "bbox": [ - 96.81694139400007, - -43.74050960299996, - 167.99803499600006, - -9.142175976999962 - ], - "regionProp": "SA2_NAME16", - "aliases": [ - "sa2_name", - "sa2_name_2016" - ], - "nameProp": "SA2_NAME16", - "description": "Statistical Area Level 2 2016 (ABS)", - "regionIdsFile": "data/regionids/region_map-SA2_2016_AUST_SA2_NAME16.json" - }, - "SSC": { - "layerName": "FID_SSC_2011_AUST", - "server": "https://vector-tiles.terria.io/FID_SSC_2011_AUST/{z}/{x}/{y}.pbf", - "analyticsWmsLayerName": "region_map:FID_SSC_2011_AUST", - "analyticsWmsServer": "http://geoserver.nationalmap.nicta.com.au/region_map/ows", - "regionProp": "SSC_CODE", - "aliases": [ - "ssc_code_2011" - ], - "digits": 5, - "description": "ABS approximations of suburbs", - "regionIdsFile": "data/regionids/region_map-FID_SSC_2011_AUST_SSC_CODE.json", - "serverType": "MVT", - "serverSubdomains": [], - "serverMinZoom": 0, - "serverMaxNativeZoom": 12, - "serverMaxZoom": 28, - "bbox": [ - 96.81694140799998, - -43.740509602999985, - 159.10921900799997, - -9.142175976999999 - ], - "nameProp": "SSC_NAME" - }, - "SSC_NAME": { - "layerName": "FID_SSC_2011_AUST", - "server": "https://vector-tiles.terria.io/FID_SSC_2011_AUST/{z}/{x}/{y}.pbf", - "analyticsWmsLayerName": "region_map:FID_SSC_2011_AUST", - "analyticsWmsServer": "http://geoserver.nationalmap.nicta.com.au/region_map/ows", - "regionProp": "SSC_NAME", - "aliases": [ - "ssc_name_2011" - ], - "description": "ABS approximations of suburbs", - "regionIdsFile": "data/regionids/region_map-FID_SSC_2011_AUST_SSC_NAME.json", - "serverType": "MVT", - "serverSubdomains": [], - "serverMinZoom": 0, - "serverMaxNativeZoom": 12, - "serverMaxZoom": 28, - "bbox": [ - 96.81694140799998, - -43.740509602999985, - 159.10921900799997, - -9.142175976999999 - ], - "nameProp": "SSC_NAME" - }, - "SSC_2016": { - "layerName": "SSC_2016_AUST", - "server": "https://vector-tiles.terria.io/SSC_2016_AUST/{z}/{x}/{y}.pbf", - "serverType": "MVT", - "serverSubdomains": [], - "serverMinZoom": 0, - "serverMaxNativeZoom": 12, - "serverMaxZoom": 28, - "bbox": [ - 96.81694139400007, - -43.74050960299996, - 167.99803499600006, - -9.142175976999962 - ], - "regionProp": "SSC_CODE16", - "aliases": [ - "ssc_code_2016", - "ssc_code", - "ssc" - ], - "nameProp": "SSC_NAME16", - "description": "ABS approximations of suburbs (2016)", - "regionIdsFile": "data/regionids/region_map-SSC_2016_AUST_SSC_CODE16.json" - }, - "SSC_NAME_2016": { - "layerName": "SSC_2016_AUST", - "server": "https://vector-tiles.terria.io/SSC_2016_AUST/{z}/{x}/{y}.pbf", - "serverType": "MVT", - "serverSubdomains": [], - "serverMinZoom": 0, - "serverMaxNativeZoom": 12, - "serverMaxZoom": 28, - "bbox": [ - 96.81694139400007, - -43.74050960299996, - 167.99803499600006, - -9.142175976999962 - ], - "regionProp": "SSC_NAME16", - "aliases": [ - "ssc_name_2016", - "ssc_name", - "suburb" - ], - "nameProp": "SSC_NAME16", - "description": "ABS approximations of suburbs (2016)", - "regionIdsFile": "data/regionids/region_map-SSC_2016_AUST_SSC_NAME16.json" - }, - "LGA_2018": { - "layerName": "LGA_2018_AUST", - "server": "https://vector-tiles.terria.io/LGA_2018_AUST/{z}/{x}/{y}.pbf", - "serverType": "MVT", - "serverMaxNativeZoom": 12, - "serverMaxZoom": 28, - "bbox": [ - 96.81694139400008, - -43.74050960205758, - 167.99803499600011, - -9.142175976703571 - ], - "uniqueIdProp": "FID", - "regionProp": "LGA_CODE18", - "nameProp": "LGA_NAME18", - "aliases": [ - "lga_code_2018", - "lga_code", - "lga" - ], - "description": "Local Government Areas 2018 (ABS)", - "regionIdsFile": "data/regionids/region_map-LGA_2018_AUST_LGA_CODE18.json" - }, - "LGA_2017": { - "layerName": "LGA_2017_AUST", - "server": "https://vector-tiles.terria.io/LGA_2017_AUST/{z}/{x}/{y}.pbf", - "serverType": "MVT", - "serverMaxNativeZoom": 12, - "serverMaxZoom": 28, - "bbox": [ - 96.81694139400008, - -43.74050960205758, - 167.99803499600011, - -9.142175976703571 - ], - "uniqueIdProp": "FID", - "regionProp": "LGA_CODE17", - "nameProp": "LGA_NAME17", - "aliases": [ - "lga_code_2017" - ], - "description": "Local Government Areas 2017 (ABS)", - "regionIdsFile": "data/regionids/region_map-LGA_2017_AUST_LGA_CODE17.json" - }, - "LGA_2016": { - "layerName": "LGA_2016_AUST", - "server": "https://vector-tiles.terria.io/LGA_2016_AUST/{z}/{x}/{y}.pbf", - "serverType": "MVT", - "serverSubdomains": [], - "serverMinZoom": 0, - "serverMaxNativeZoom": 12, - "serverMaxZoom": 28, - "bbox": [ - 96.81694139400007, - -43.74050960299996, - 167.99803499600006, - -9.142175976999962 - ], - "regionProp": "LGA_CODE16", - "aliases": [ - "lga_code_2016" - ], - "nameProp": "LGA_NAME16", - "description": "Local government areas (2016)", - "regionIdsFile": "data/regionids/region_map-LGA_2016_AUST_LGA_CODE16.json" - }, - "LGA_2015": { - "layerName": "FID_LGA_2015_AUST", - "server": "https://vector-tiles.terria.io/FID_LGA_2015_AUST/{z}/{x}/{y}.pbf", - "analyticsWmsLayerName": "region_map:FID_LGA_2015_AUST", - "analyticsWmsServer": "http://geoserver.nationalmap.nicta.com.au/region_map/ows", - "regionProp": "LGA_CODE15", - "aliases": [ - "lga_code_2015", - "lga_code_2014" - ], - "digits": 5, - "description": "Local government areas", - "regionIdsFile": "data/regionids/region_map-FID_LGA_2015_AUST_LGA_CODE15.json", - "serverType": "MVT", - "serverSubdomains": [], - "serverMinZoom": 0, - "serverMaxNativeZoom": 12, - "serverMaxZoom": 28, - "bbox": [ - 96.81694140799998, - -43.740509602999985, - 159.10921900799997, - -9.142175976999999 - ], - "nameProp": "LGA_NAME15" - }, - "LGA_2013": { - "layerName": "FID_LGA_2013_AUST", - "server": "https://vector-tiles.terria.io/FID_LGA_2013_AUST/{z}/{x}/{y}.pbf", - "analyticsWmsLayerName": "region_map:FID_LGA_2013_AUST", - "analyticsWmsServer": "http://geoserver.nationalmap.nicta.com.au/region_map/ows", - "regionProp": "LGA_CODE13", - "aliases": [ - "lga_code_2013", - "lga_code_2012" - ], - "digits": 5, - "description": "Local government areas", - "regionIdsFile": "data/regionids/region_map-FID_LGA_2013_AUST_LGA_CODE13.json", - "serverType": "MVT", - "serverSubdomains": [], - "serverMinZoom": 0, - "serverMaxNativeZoom": 12, - "serverMaxZoom": 28, - "bbox": [ - 96.81694140799998, - -43.740509602999985, - 159.10921900799997, - -9.142175976999999 - ], - "nameProp": "LGA_NAME13" - }, - "LGA_2011": { - "layerName": "FID_LGA_2011_AUST", - "server": "https://vector-tiles.terria.io/FID_LGA_2011_AUST/{z}/{x}/{y}.pbf", - "analyticsWmsLayerName": "region_map:FID_LGA_2011_AUST", - "analyticsWmsServer": "http://geoserver.nationalmap.nicta.com.au/region_map/ows", - "regionProp": "LGA_CODE11", - "aliases": [ - "lga_code_2011", - "lga_code_2010" - ], - "digits": 5, - "description": "Local government areas", - "regionIdsFile": "data/regionids/region_map-FID_LGA_2011_AUST_LGA_CODE11.json", - "serverType": "MVT", - "serverSubdomains": [], - "serverMinZoom": 0, - "serverMaxNativeZoom": 12, - "serverMaxZoom": 28, - "bbox": [ - 112.92111395999996, - -43.74050957999999, - 153.63872711999997, - -9.142175969999997 - ], - "nameProp": "LGA_NAME11" - }, - "LGA_NAME_2011": { - "_comment": "This section must go before State", - "layerName": "FID_LGA_2011_AUST", - "server": "https://vector-tiles.terria.io/FID_LGA_2011_AUST/{z}/{x}/{y}.pbf", - "analyticsWmsLayerName": "region_map:FID_LGA_2011_AUST", - "analyticsWmsServer": "http://geoserver.nationalmap.nicta.com.au/region_map/ows", - "regionProp": "LGA_NAME11", - "aliases": [ - "lga_name", - "lga_name_2011", - "lga_name_2015", - "lga_name_2014", - "lga_name_2013", - "lga_name_2012", - "lga_name_2010" - ], - "serverReplacements": [ - [ - " \\([a-z]+\\)$", - "" - ], - [ - "-", - " " - ] - ], - "dataReplacements": [ - [ - "^The ", - "" - ], - [ - "^.*Council of (the )?", - "" - ], - [ - "^.* of (the )?", - "" - ], - [ - " Council$", - "" - ], - [ - " (Shire|City|Rural City|Borough|District|Aboriginal|Municipality|Municipal|Regional|Town|Government Community|Aboriginal Shire|Island|\\(Unincorporated\\)|\\(Uninc.\\))$", - "" - ], - [ - "( \\([A-Z]+\\)$)", - "" - ], - [ - "-", - " " - ] - ], - "disambigProp": "STE_NAME16", - "disambigRegionId": "STE_NAME_2016", - "description": "Local government areas", - "regionIdsFile": "data/regionids/region_map-FID_LGA_2011_AUST_LGA_NAME11.json", - "regionDisambigIdsFile": "data/regionids/region_map-FID_LGA_2011_AUST_STE_NAME11.json", - "serverType": "MVT", - "serverSubdomains": [], - "serverMinZoom": 0, - "serverMaxNativeZoom": 12, - "serverMaxZoom": 28, - "bbox": [ - 112.92111395999996, - -43.74050957999999, - 153.63872711999997, - -9.142175969999997 - ], - "nameProp": "LGA_NAME11" - }, - "POA": { - "layerName": "FID_POA_2011_AUST", - "server": "https://vector-tiles.terria.io/FID_POA_2011_AUST/{z}/{x}/{y}.pbf", - "analyticsWmsLayerName": "region_map:FID_POA_2011_AUST", - "analyticsWmsServer": "http://geoserver.nationalmap.nicta.com.au/region_map/ows", - "regionProp": "POA_CODE", - "aliases": [ - "poa_2011", - "postcode_2011", - "poa_code_2011", - "postcode_2015" - ], - "digits": 4, - "dataReplacements": [ - [ - "^(?=\\d\\d\\d$)", - "0" - ] - ], - "description": "Postal areas (ABS approximations of postcodes)", - "regionIdsFile": "data/regionids/region_map-FID_POA_2011_AUST_POA_CODE.json", - "serverType": "MVT", - "serverSubdomains": [], - "serverMinZoom": 0, - "serverMaxNativeZoom": 12, - "serverMaxZoom": 28, - "bbox": [ - 96.81694140799998, - -43.59821500299999, - 159.10921900799997, - -9.142175976999999 - ], - "nameProp": "POA_NAME" - }, - "POA_2016": { - "layerName": "POA_2016_AUST", - "server": "https://vector-tiles.terria.io/POA_2016_AUST/{z}/{x}/{y}.pbf", - "serverType": "MVT", - "serverSubdomains": [], - "serverMinZoom": 0, - "serverMaxNativeZoom": 12, - "serverMaxZoom": 28, - "bbox": [ - 96.81694139400007, - -43.74050960299996, - 167.99803499600006, - -9.142175976999962 - ], - "regionProp": "POA_CODE16", - "aliases": [ - "poa_code_2016", - "poa_code", - "poa", - "postcode_2016", - "postcode" - ], - "digits": 4, - "dataReplacements": [ - [ - "^(?=\\d\\d\\d$)", - "0" - ] - ], - "nameProp": "POA_NAME16", - "description": "Postal areas (ABS approximations of postcodes) (2016)", - "regionIdsFile": "data/regionids/region_map-POA_2016_AUST_POA_CODE16.json" - }, - "CED_CODE_2016": { - "layerName": "FID_CED_2016_AUST", - "server": "https://vector-tiles.terria.io/FID_CED_2016_AUST/{z}/{x}/{y}.pbf", - "analyticsWmsLayerName": "region_map:FID_CED_2016_AUST", - "analyticsWmsServer": "http://geoserver.nationalmap.nicta.com.au/region_map/ows", - "regionProp": "CED_CODE16", - "aliases": [ - "ced_code_2016", - "ced_code", - "ced" - ], - "digits": 3, - "description": "Commonwealth electoral districts (2016 ABS approximations)", - "regionIdsFile": "data/regionids/region_map-FID_CED_2016_AUST_CED_CODE16.json", - "serverType": "MVT", - "serverSubdomains": [], - "serverMinZoom": 0, - "serverMaxNativeZoom": 12, - "serverMaxZoom": 28, - "bbox": [ - 96.81694140799998, - -43.74050960300003, - 159.10921900799997, - -9.142175976999999 - ], - "nameProp": "CED_NAME16" - }, - "CED_NAME_2016": { - "layerName": "FID_CED_2016_AUST", - "server": "https://vector-tiles.terria.io/FID_CED_2016_AUST/{z}/{x}/{y}.pbf", - "analyticsWmsLayerName": "region_map:FID_CED_2016_AUST", - "analyticsWmsServer": "http://geoserver.nationalmap.nicta.com.au/region_map/ows", - "regionProp": "CED_NAME16", - "aliases": [ - "ced_name_2016", - "ced_name" - ], - "description": "Commonwealth electoral districts (2016 ABS approximations)", - "regionIdsFile": "data/regionids/region_map-FID_CED_2016_AUST_CED_NAME16.json", - "serverType": "MVT", - "serverSubdomains": [], - "serverMinZoom": 0, - "serverMaxNativeZoom": 12, - "serverMaxZoom": 28, - "bbox": [ - 96.81694140799998, - -43.74050960300003, - 159.10921900799997, - -9.142175976999999 - ], - "nameProp": "CED_NAME16" - }, - "CED_CODE_2013": { - "layerName": "FID_CED_2013_AUST", - "server": "https://vector-tiles.terria.io/FID_CED_2013_AUST/{z}/{x}/{y}.pbf", - "analyticsWmsLayerName": "region_map:FID_CED_2013_AUST", - "analyticsWmsServer": "http://geoserver.nationalmap.nicta.com.au/region_map/ows", - "regionProp": "CED_CODE13", - "aliases": [ - "ced_code_2013" - ], - "digits": 3, - "description": "Commonwealth electoral districts (2013 ABS approximations)", - "regionIdsFile": "data/regionids/region_map-FID_CED_2013_AUST_CED_CODE13.json", - "serverType": "MVT", - "serverSubdomains": [], - "serverMinZoom": 0, - "serverMaxNativeZoom": 12, - "serverMaxZoom": 28, - "bbox": [ - 96.81694140799998, - -43.740509602999985, - 159.10921900799997, - -9.142175976999999 - ], - "nameProp": "CED_NAME13" - }, - "CED_NAME_2013": { - "layerName": "FID_CED_2013_AUST", - "server": "https://vector-tiles.terria.io/FID_CED_2013_AUST/{z}/{x}/{y}.pbf", - "analyticsWmsLayerName": "region_map:FID_CED_2013_AUST", - "analyticsWmsServer": "http://geoserver.nationalmap.nicta.com.au/region_map/ows", - "regionProp": "CED_NAME13", - "aliases": [ - "ced_name_2013" - ], - "description": "Commonwealth electoral districts (2013 ABS approximations)", - "regionIdsFile": "data/regionids/region_map-FID_CED_2013_AUST_CED_NAME13.json", - "serverType": "MVT", - "serverSubdomains": [], - "serverMinZoom": 0, - "serverMaxNativeZoom": 12, - "serverMaxZoom": 28, - "bbox": [ - 96.81694140799998, - -43.740509602999985, - 159.10921900799997, - -9.142175976999999 - ], - "nameProp": "CED_NAME13" - }, - "CED_CODE_2011": { - "layerName": "FID_CED_2011_AUST", - "server": "https://vector-tiles.terria.io/FID_CED_2011_AUST/{z}/{x}/{y}.pbf", - "analyticsWmsLayerName": "region_map:FID_CED_2011_AUST", - "analyticsWmsServer": "http://geoserver.nationalmap.nicta.com.au/region_map/ows", - "regionProp": "CED_CODE", - "aliases": [ - "ced_code_2011" - ], - "digits": 3, - "description": "Commonwealth electoral districts (ABS approximations)", - "disabledregionIdsFile": "data/regionids/region_map-FID_CED_2011_AUST_CED_CODE.json", - "serverType": "MVT", - "serverSubdomains": [], - "serverMinZoom": 0, - "serverMaxNativeZoom": 12, - "serverMaxZoom": 28, - "bbox": [ - 96.81694140799998, - -43.740509602999985, - 159.10921900799997, - -9.142175976999999 - ], - "nameProp": "CED_NAME", - "regionIdsFile": "data/regionids/region_map-FID_CED_2011_AUST_CED_CODE.json" - }, - "CED_NAME_2011": { - "layerName": "FID_CED_2011_AUST", - "server": "https://vector-tiles.terria.io/FID_CED_2011_AUST/{z}/{x}/{y}.pbf", - "analyticsWmsLayerName": "region_map:FID_CED_2011_AUST", - "analyticsWmsServer": "http://geoserver.nationalmap.nicta.com.au/region_map/ows", - "regionProp": "CED_NAME", - "aliases": [ - "ced_name_2011" - ], - "description": "Commonwealth electoral districts (ABS approximations)", - "regionIdsFile": "data/regionids/region_map-FID_CED_2011_AUST_CED_NAME.json", - "serverType": "MVT", - "serverSubdomains": [], - "serverMinZoom": 0, - "serverMaxNativeZoom": 12, - "serverMaxZoom": 28, - "bbox": [ - 96.81694140799998, - -43.740509602999985, - 159.10921900799997, - -9.142175976999999 - ], - "nameProp": "CED_NAME" - }, - "COM_ELB_ID_2016": { - "layerName": "FID_COM20160509_ELB", - "server": "https://vector-tiles.terria.io/FID_COM20160509_ELB/{z}/{x}/{y}.pbf", - "analyticsWmsLayerName": "region_map:FID_COM20160509_ELB", - "analyticsWmsServer": "http://geoserver.nationalmap.nicta.com.au/region_map/ows", - "regionProp": "DIV_ID", - "aliases": [ - "divisionid", - "com_elb_id_2016", - "com_elb_id", - "com_elb" - ], - "digits": 3, - "description": "Commonwealth electoral districts (Australian Electoral Commission)", - "regionIdsFile": "data/regionids/region_map-FID_COM20160509_ELB_DIV_ID.json", - "serverType": "MVT", - "serverSubdomains": [], - "serverMinZoom": 0, - "serverMaxNativeZoom": 12, - "serverMaxZoom": 28, - "bbox": [ - 96.81676599999997, - -43.740509999999986, - 159.1092189999999, - -9.142175999999996 - ], - "nameProp": "SORTNAME" - }, - "COM_ELB_NAME_2016": { - "layerName": "FID_COM20160509_ELB", - "server": "https://vector-tiles.terria.io/FID_COM20160509_ELB/{z}/{x}/{y}.pbf", - "analyticsWmsLayerName": "region_map:FID_COM20160509_ELB", - "analyticsWmsServer": "http://geoserver.nationalmap.nicta.com.au/region_map/ows", - "regionProp": "ELECT_DIV", - "textCodes": true, - "aliases": [ - "divisionnm", - "com_elb_name_2016", - "com_elb_name" - ], - "description": "Commonwealth electoral districts (Australian Electoral Commission)", - "regionIdsFile": "data/regionids/region_map-FID_COM20160509_ELB_ELECT_DIV.json", - "serverType": "MVT", - "serverSubdomains": [], - "serverMinZoom": 0, - "serverMaxNativeZoom": 12, - "serverMaxZoom": 28, - "bbox": [ - 96.81676599999997, - -43.740509999999986, - 159.1092189999999, - -9.142175999999996 - ], - "nameProp": "SORTNAME" - }, - "COM_ELB_NAME_2011": { - "layerName": "FID_COM20111216_ELB_region", - "server": "https://vector-tiles.terria.io/FID_COM20111216_ELB_region/{z}/{x}/{y}.pbf", - "analyticsWmsLayerName": "region_map:FID_COM20111216_ELB_region", - "analyticsWmsServer": "http://geoserver.nationalmap.nicta.com.au/region_map/ows", - "regionProp": "ELECT_DIV", - "textCodes": true, - "aliases": [ - "com_elb_name_2011" - ], - "description": "Commonwealth electoral districts (Australian Electoral Commission)", - "regionIdsFile": "data/regionids/region_map-FID_COM20111216_ELB_region_ELECT_DIV.json", - "serverType": "MVT", - "serverSubdomains": [], - "serverMinZoom": 0, - "serverMaxNativeZoom": 12, - "serverMaxZoom": 28, - "bbox": [ - 96.81676599999999, - -43.74050999999999, - 159.10921899999994, - -9.142175999999997 - ], - "nameProp": "SORTNAME" - }, - "COM_ELB_ID_2013": { - "layerName": "CommonwealthElectoralDivision_2013", - "server": "https://vector-tiles.terria.io/CommonwealthElectoralDivision_2013/{z}/{x}/{y}.pbf", - "serverType": "MVT", - "serverMaxNativeZoom": 12, - "serverMaxZoom": 28, - "bbox": [ - 96.816766, - -43.74051, - 159.109219, - -9.142176 - ], - "uniqueIdProp": "FID", - "regionProp": "ced_code_2013", - "nameProp": "ced_name_2013", - "aliases": [ - "com_elb_id_2013" - ], - "description": "Commonwealth electoral districts for 2013 election (Australian Electoral Commission)", - "regionIdsFile": "data/regionids/region_map-CommonwealthElectoralDivision_2013_ced_code_2013.json" - }, - "COM_ELB_NAME_2013": { - "layerName": "CommonwealthElectoralDivision_2013", - "server": "https://vector-tiles.terria.io/CommonwealthElectoralDivision_2013/{z}/{x}/{y}.pbf", - "serverType": "MVT", - "serverMaxNativeZoom": 12, - "serverMaxZoom": 28, - "bbox": [ - 96.816766, - -43.74051, - 159.109219, - -9.142176 - ], - "uniqueIdProp": "FID", - "regionProp": "ced_name_2013", - "nameProp": "ced_name_2013", - "aliases": [ - "com_elb_name_2013" - ], - "description": "Commonwealth electoral districts for 2013 election (Australian Electoral Commission)", - "regionIdsFile": "data/regionids/region_map-CommonwealthElectoralDivision_2013_ced_name_2013.json" - }, - "COM_ELB_ID_2010": { - "layerName": "CommonwealthElectoralDivision_2010", - "server": "https://vector-tiles.terria.io/CommonwealthElectoralDivision_2010/{z}/{x}/{y}.pbf", - "serverType": "MVT", - "serverMaxNativeZoom": 12, - "serverMaxZoom": 28, - "bbox": [ - 96.816766, - -43.74051, - 159.109219, - -9.142176 - ], - "uniqueIdProp": "FID", - "regionProp": "ced_code_2010", - "nameProp": "ced_name_2010", - "aliases": [ - "com_elb_id_2010" - ], - "description": "Commonwealth electoral districts for 2010 election (Australian Electoral Commission)", - "regionIdsFile": "data/regionids/region_map-CommonwealthElectoralDivision_2010_ced_code_2010.json" - }, - "COM_ELB_NAME_2010": { - "layerName": "CommonwealthElectoralDivision_2010", - "server": "https://vector-tiles.terria.io/CommonwealthElectoralDivision_2010/{z}/{x}/{y}.pbf", - "serverType": "MVT", - "serverMaxNativeZoom": 12, - "serverMaxZoom": 28, - "bbox": [ - 96.816766, - -43.74051, - 159.109219, - -9.142176 - ], - "uniqueIdProp": "FID", - "regionProp": "ced_name_2010", - "nameProp": "ced_name_2010", - "aliases": [ - "com_elb_name_2010" - ], - "description": "Commonwealth electoral districts for 2010 election (Australian Electoral Commission)", - "regionIdsFile": "data/regionids/region_map-CommonwealthElectoralDivision_2010_ced_name_2010.json" - }, - "COM_ELB_ID_2007": { - "layerName": "CommonwealthElectoralDivision_2007", - "server": "https://vector-tiles.terria.io/CommonwealthElectoralDivision_2007/{z}/{x}/{y}.pbf", - "serverType": "MVT", - "serverMaxNativeZoom": 12, - "serverMaxZoom": 28, - "bbox": [ - 96.817997, - -43.74051, - 159.105442, - -9.142186 - ], - "uniqueIdProp": "FID", - "regionProp": "ced_code_2007", - "nameProp": "ced_name_2007", - "aliases": [ - "com_elb_id_2007" - ], - "description": "Commonwealth electoral districts for 2007 election (Australian Electoral Commission)", - "regionIdsFile": "data/regionids/region_map-CommonwealthElectoralDivision_2007_ced_code_2007.json" - }, - "COM_ELB_NAME_2007": { - "layerName": "CommonwealthElectoralDivision_2007", - "server": "https://vector-tiles.terria.io/CommonwealthElectoralDivision_2007/{z}/{x}/{y}.pbf", - "serverType": "MVT", - "serverMaxNativeZoom": 12, - "serverMaxZoom": 28, - "bbox": [ - 96.817997, - -43.74051, - 159.105442, - -9.142186 - ], - "uniqueIdProp": "FID", - "regionProp": "ced_name_2007", - "nameProp": "ced_name_2007", - "aliases": [ - "com_elb_name_2007" - ], - "description": "Commonwealth electoral districts for 2007 election (Australian Electoral Commission)", - "regionIdsFile": "data/regionids/region_map-CommonwealthElectoralDivision_2007_ced_name_2007.json" - }, - "SED": { - "layerName": "FID_SED_2011_AUST", - "server": "https://vector-tiles.terria.io/FID_SED_2011_AUST/{z}/{x}/{y}.pbf", - "analyticsWmsLayerName": "region_map:FID_SED_2011_AUST", - "analyticsWmsServer": "http://geoserver.nationalmap.nicta.com.au/region_map/ows", - "regionProp": "SED_CODE", - "aliases": [ - "sed_code_2011", - "sed_code", - "sed" - ], - "digits": 5, - "description": "State electoral districts (ABS approximations)", - "regionIdsFile": "data/regionids/region_map-FID_SED_2011_AUST_SED_CODE.json", - "serverType": "MVT", - "serverSubdomains": [], - "serverMinZoom": 0, - "serverMaxNativeZoom": 12, - "serverMaxZoom": 28, - "bbox": [ - 112.92111395199997, - -43.740509602999985, - 159.10921900799997, - -9.142175976999999 - ], - "nameProp": "SED_NAME" - }, - "SED_NAME": { - "layerName": "FID_SED_2011_AUST", - "server": "https://vector-tiles.terria.io/FID_SED_2011_AUST/{z}/{x}/{y}.pbf", - "analyticsWmsLayerName": "region_map:FID_SED_2011_AUST", - "analyticsWmsServer": "http://geoserver.nationalmap.nicta.com.au/region_map/ows", - "regionProp": "SED_NAME", - "aliases": [ - "sed_name_2011", - "sed_name" - ], - "description": "State electoral districts (ABS approximations)", - "regionIdsFile": "data/regionids/region_map-FID_SED_2011_AUST_SED_NAME.json", - "serverType": "MVT", - "serverSubdomains": [], - "serverMinZoom": 0, - "serverMaxNativeZoom": 12, - "serverMaxZoom": 28, - "bbox": [ - 112.92111395199997, - -43.740509602999985, - 159.10921900799997, - -9.142175976999999 - ], - "nameProp": "SED_NAME" - }, - "GCCSA_2011": { - "layerName": "FID_GCCSA_2011_AUST", - "server": "https://vector-tiles.terria.io/FID_GCCSA_2011_AUST/{z}/{x}/{y}.pbf", - "analyticsWmsLayerName": "region_map:FID_GCCSA_2011_AUST", - "analyticsWmsServer": "http://geoserver.nationalmap.nicta.com.au/region_map/ows", - "regionProp": "GCC_CODE11", - "aliases": [ - "gccsa_code_2011" - ], - "digits": 5, - "description": "Greater capital city statistical areas", - "regionIdsFile": "data/regionids/region_map-FID_GCCSA_2011_AUST_GCC_CODE11.json", - "serverType": "MVT", - "serverSubdomains": [], - "serverMinZoom": 0, - "serverMaxNativeZoom": 12, - "serverMaxZoom": 28, - "bbox": [ - 96.81694140799998, - -43.74050960300003, - 159.10921900799997, - -9.142175976999999 - ], - "nameProp": "GCC_NAME11" - }, - "GCCSA_NAME_2011": { - "layerName": "FID_GCCSA_2011_AUST", - "server": "https://vector-tiles.terria.io/FID_GCCSA_2011_AUST/{z}/{x}/{y}.pbf", - "analyticsWmsLayerName": "region_map:FID_GCCSA_2011_AUST", - "analyticsWmsServer": "http://geoserver.nationalmap.nicta.com.au/region_map/ows", - "regionProp": "GCC_NAME11", - "aliases": [ - "gccsa_name_2011" - ], - "description": "Greater capital city statistical areas", - "regionIdsFile": "data/regionids/region_map-FID_GCCSA_2011_AUST_GCC_NAME11.json", - "serverType": "MVT", - "serverSubdomains": [], - "serverMinZoom": 0, - "serverMaxNativeZoom": 12, - "serverMaxZoom": 28, - "bbox": [ - 96.81694140799998, - -43.74050960300003, - 159.10921900799997, - -9.142175976999999 - ], - "nameProp": "GCC_NAME11" - }, - "GCCSA_2016": { - "layerName": "GCCSA_2016_AUST", - "server": "https://vector-tiles.terria.io/GCCSA_2016_AUST/{z}/{x}/{y}.pbf", - "serverType": "MVT", - "serverSubdomains": [], - "serverMinZoom": 0, - "serverMaxNativeZoom": 12, - "serverMaxZoom": 28, - "bbox": [ - 96.81694139400007, - -43.74050960299996, - 167.99803499600006, - -9.142175976999962 - ], - "regionProp": "GCC_CODE16", - "aliases": [ - "gccsa", - "gccsa_code", - "gccsa_code_2016" - ], - "nameProp": "GCC_NAME16", - "description": "Greater capital city statistical areas 2016 (ABS)", - "regionIdsFile": "data/regionids/region_map-GCCSA_2016_AUST_GCC_CODE16.json" - }, - "GCCSA_NAME_2016": { - "layerName": "GCCSA_2016_AUST", - "server": "https://vector-tiles.terria.io/GCCSA_2016_AUST/{z}/{x}/{y}.pbf", - "serverType": "MVT", - "serverSubdomains": [], - "serverMinZoom": 0, - "serverMaxNativeZoom": 12, - "serverMaxZoom": 28, - "bbox": [ - 96.81694139400007, - -43.74050960299996, - 167.99803499600006, - -9.142175976999962 - ], - "regionProp": "GCC_NAME16", - "aliases": [ - "gccsa_name", - "gccsa_name_2016" - ], - "nameProp": "GCC_NAME16", - "description": "Greater capital city statistical areas 2016 (ABS)", - "regionIdsFile": "data/regionids/region_map-GCCSA_2016_AUST_GCC_NAME16.json" - }, - "SUA": { - "layerName": "FID_SUA_2011_AUST", - "server": "https://vector-tiles.terria.io/FID_SUA_2011_AUST/{z}/{x}/{y}.pbf", - "analyticsWmsLayerName": "region_map:FID_SUA_2011_AUST", - "analyticsWmsServer": "http://geoserver.nationalmap.nicta.com.au/region_map/ows", - "regionProp": "SUA_CODE11", - "aliases": [ - "sua_code_2011", - "sua_code", - "sua" - ], - "digits": 4, - "description": "Significant urban areas", - "regionIdsFile": "data/regionids/region_map-FID_SUA_2011_AUST_SUA_CODE11.json", - "serverType": "MVT", - "serverSubdomains": [], - "serverMinZoom": 0, - "serverMaxNativeZoom": 12, - "serverMaxZoom": 28, - "bbox": [ - 96.81694140799998, - -43.740509602999985, - 159.10921900799997, - -9.142175976999999 - ], - "nameProp": "SUA_NAME11" - }, - "SUA_NAME": { - "layerName": "FID_SUA_2011_AUST", - "server": "https://vector-tiles.terria.io/FID_SUA_2011_AUST/{z}/{x}/{y}.pbf", - "analyticsWmsLayerName": "region_map:FID_SUA_2011_AUST", - "analyticsWmsServer": "http://geoserver.nationalmap.nicta.com.au/region_map/ows", - "regionProp": "SUA_NAME11", - "aliases": [ - "sua_name_2011", - "sua_name" - ], - "description": "Significant urban areas", - "serverReplacements": [ - [ - "[^A-Za-z]", - "" - ] - ], - "dataReplacements": [ - [ - "[^A-Za-z]", - "" - ] - ], - "regionIdsFile": "data/regionids/region_map-FID_SUA_2011_AUST_SUA_NAME11.json", - "serverType": "MVT", - "serverSubdomains": [], - "serverMinZoom": 0, - "serverMaxNativeZoom": 12, - "serverMaxZoom": 28, - "bbox": [ - 96.81694140799998, - -43.740509602999985, - 159.10921900799997, - -9.142175976999999 - ], - "nameProp": "SUA_NAME11" - }, - "STE_2011": { - "layerName": "FID_STE_2011_AUST", - "server": "https://vector-tiles.terria.io/FID_STE_2011_AUST/{z}/{x}/{y}.pbf", - "analyticsWmsLayerName": "region_map:FID_STE_2011_AUST", - "analyticsWmsServer": "http://geoserver.nationalmap.nicta.com.au/region_map/ows", - "regionProp": "STE_CODE11", - "aliases": [ - "ste_code_2011" - ], - "digits": 1, - "regionIdsFile": "data/regionids/region_map-FID_STE_2011_AUST_STE_CODE11.json", - "serverType": "MVT", - "serverSubdomains": [], - "serverMinZoom": 0, - "serverMaxNativeZoom": 12, - "serverMaxZoom": 28, - "bbox": [ - 96.81694140799998, - -43.74050960300003, - 159.10921900799997, - -9.142175976999999 - ], - "nameProp": "STE_NAME11" - }, - "STE_2016": { - "layerName": "STE_2016_AUST", - "server": "https://vector-tiles.terria.io/STE_2016_AUST/{z}/{x}/{y}.pbf", - "serverType": "MVT", - "serverSubdomains": [], - "serverMinZoom": 0, - "serverMaxNativeZoom": 12, - "serverMaxZoom": 28, - "bbox": [ - 96.81694139400007, - -43.74050960299996, - 167.99803499600006, - -9.142175976999962 - ], - "regionProp": "STE_CODE16", - "aliases": [ - "ste", - "ste_code", - "ste_code_2016" - ], - "nameProp": "STE_NAME16", - "description": "States and Territories 2016 (ABS)", - "regionIdsFile": "data/regionids/region_map-STE_2016_AUST_STE_CODE16.json" - }, - "SOS": { - "layerName": "FID_SOS_2011_AUST", - "server": "https://vector-tiles.terria.io/FID_SOS_2011_AUST/{z}/{x}/{y}.pbf", - "analyticsWmsLayerName": "region_map:FID_SOS_2011_AUST", - "analyticsWmsServer": "http://geoserver.nationalmap.nicta.com.au/region_map/ows", - "regionProp": "SOS_CODE11", - "aliases": [ - "sos_code_2011", - "sos_code", - "sos" - ], - "digits": 2, - "description": "Section of state", - "regionIdsFile": "data/regionids/region_map-FID_SOS_2011_AUST_SOS_CODE11.json", - "serverType": "MVT", - "serverSubdomains": [], - "serverMinZoom": 0, - "serverMaxNativeZoom": 12, - "serverMaxZoom": 28, - "bbox": [ - 96.81694140799998, - -43.740509602999985, - 159.10921900799997, - -9.142175976999999 - ], - "nameProp": "SOS_NAME11" - }, - "SOSR": { - "layerName": "FID_SOSR_2011_AUST", - "server": "https://vector-tiles.terria.io/FID_SOSR_2011_AUST/{z}/{x}/{y}.pbf", - "analyticsWmsLayerName": "region_map:FID_SOSR_2011_AUST", - "analyticsWmsServer": "http://geoserver.nationalmap.nicta.com.au/region_map/ows", - "regionProp": "SSR_CODE11", - "aliases": [ - "sosr_code_2011", - "sosr_code", - "sosr" - ], - "digits": 3, - "description": "Section of state range", - "regionIdsFile": "data/regionids/region_map-FID_SOSR_2011_AUST_SSR_CODE11.json", - "serverType": "MVT", - "serverSubdomains": [], - "serverMinZoom": 0, - "serverMaxNativeZoom": 12, - "serverMaxZoom": 28, - "bbox": [ - 96.81694140799998, - -43.740509602999985, - 159.10921900799997, - -9.142175976999999 - ], - "nameProp": "SSR_NAME11" - }, - "UCL": { - "layerName": "FID_UCL_2011_AUST", - "server": "https://vector-tiles.terria.io/FID_UCL_2011_AUST/{z}/{x}/{y}.pbf", - "analyticsWmsLayerName": "region_map:FID_UCL_2011_AUST", - "analyticsWmsServer": "http://geoserver.nationalmap.nicta.com.au/region_map/ows", - "regionProp": "UCL_CODE11", - "aliases": [ - "ucl_code_2011", - "ucl_code", - "ucl" - ], - "digits": 6, - "description": "Urban centres and localities", - "regionIdsFile": "data/regionids/region_map-FID_UCL_2011_AUST_UCL_CODE11.json", - "serverType": "MVT", - "serverSubdomains": [], - "serverMinZoom": 0, - "serverMaxNativeZoom": 12, - "serverMaxZoom": 28, - "bbox": [ - 96.81694140799998, - -43.740509602999985, - 159.10921900799997, - -9.142175976999999 - ], - "nameProp": "UCL_NAME11" - }, - "IREG": { - "layerName": "FID_IREG_2011_AUST", - "server": "https://vector-tiles.terria.io/FID_IREG_2011_AUST/{z}/{x}/{y}.pbf", - "analyticsWmsLayerName": "region_map:FID_IREG_2011_AUST", - "analyticsWmsServer": "http://geoserver.nationalmap.nicta.com.au/region_map/ows", - "regionProp": "IR_CODE11", - "aliases": [ - "ireg_code_2011", - "ireg_code", - "ireg" - ], - "digits": 3, - "description": "Indigenous regions", - "regionIdsFile": "data/regionids/region_map-FID_IREG_2011_AUST_IR_CODE11.json", - "serverType": "MVT", - "serverSubdomains": [], - "serverMinZoom": 0, - "serverMaxNativeZoom": 12, - "serverMaxZoom": 28, - "bbox": [ - 96.81694140799998, - -43.740509602999985, - 159.10921900799997, - -9.142175976999999 - ], - "nameProp": "IR_NAME11" - }, - "ILOC": { - "layerName": "FID_ILOC_2011_AUST", - "server": "https://vector-tiles.terria.io/FID_ILOC_2011_AUST/{z}/{x}/{y}.pbf", - "analyticsWmsLayerName": "region_map:FID_ILOC_2011_AUST", - "analyticsWmsServer": "http://geoserver.nationalmap.nicta.com.au/region_map/ows", - "regionProp": "IL_CODE11", - "aliases": [ - "iloc_code_2011", - "iloc_code", - "iloc" - ], - "digits": 8, - "description": "Indigenous locations", - "regionIdsFile": "data/regionids/region_map-FID_ILOC_2011_AUST_IL_CODE11.json", - "serverType": "MVT", - "serverSubdomains": [], - "serverMinZoom": 0, - "serverMaxNativeZoom": 12, - "serverMaxZoom": 28, - "bbox": [ - 96.81694140799998, - -43.740509602999985, - 159.10921900799997, - -9.142175976999999 - ], - "nameProp": "IL_NAME11" - }, - "IARE": { - "layerName": "FID_IARE_2011_AUST", - "server": "https://vector-tiles.terria.io/FID_IARE_2011_AUST/{z}/{x}/{y}.pbf", - "analyticsWmsLayerName": "region_map:FID_IARE_2011_AUST", - "analyticsWmsServer": "http://geoserver.nationalmap.nicta.com.au/region_map/ows", - "regionProp": "IA_CODE11", - "aliases": [ - "iare_code_2011", - "iare_code", - "iare" - ], - "digits": 6, - "description": "Indigenous areas", - "regionIdsFile": "data/regionids/region_map-FID_IARE_2011_AUST_IA_CODE11.json", - "serverType": "MVT", - "serverSubdomains": [], - "serverMinZoom": 0, - "serverMaxNativeZoom": 12, - "serverMaxZoom": 28, - "bbox": [ - 96.81694140799998, - -43.740509602999985, - 159.10921900799997, - -9.142175976999999 - ], - "nameProp": "IA_NAME11" - }, - "RA": { - "layerName": "FID_RA_2011_AUST", - "server": "https://vector-tiles.terria.io/FID_RA_2011_AUST/{z}/{x}/{y}.pbf", - "analyticsWmsLayerName": "region_map:FID_RA_2011_AUST", - "analyticsWmsServer": "http://geoserver.nationalmap.nicta.com.au/region_map/ows", - "regionProp": "RA_CODE11", - "aliases": [ - "ra_code_2011", - "ra_code", - "ra" - ], - "digits": 2, - "description": "Remoteness areas", - "regionIdsFile": "data/regionids/region_map-FID_RA_2011_AUST_RA_CODE11.json", - "serverType": "MVT", - "serverSubdomains": [], - "serverMinZoom": 0, - "serverMaxNativeZoom": 12, - "serverMaxZoom": 28, - "bbox": [ - 96.81694140799998, - -43.740509602999985, - 159.10921900799997, - -9.142175976999999 - ], - "nameProp": "RA_NAME11" - }, - "TR": { - "layerName": "FID_TR_2015_AUST", - "server": "https://vector-tiles.terria.io/FID_TR_2015_AUST/{z}/{x}/{y}.pbf", - "analyticsWmsLayerName": "region_map:FID_TR_2015_AUST", - "analyticsWmsServer": "http://geoserver.nationalmap.nicta.com.au/region_map/ows", - "regionProp": "TR_CODE15", - "aliases": [ - "tr_code_2015", - "tr_code", - "tr" - ], - "digits": 5, - "description": "Tourism regions", - "regionIdsFile": "data/regionids/region_map-FID_TR_2015_AUST_TR_CODE15.json", - "serverType": "MVT", - "serverSubdomains": [], - "serverMinZoom": 0, - "serverMaxNativeZoom": 12, - "serverMaxZoom": 28, - "bbox": [ - 112.92111395199997, - -43.740509602999985, - 159.10921900799997, - -9.142175976999999 - ], - "nameProp": "TR_NAME15" - }, - "TR_2013": { - "layerName": "FID_TR_2013_AUST", - "server": "https://vector-tiles.terria.io/FID_TR_2013_AUST/{z}/{x}/{y}.pbf", - "analyticsWmsLayerName": "region_map:FID_TR_2013_AUST", - "analyticsWmsServer": "http://geoserver.nationalmap.nicta.com.au/region_map/ows", - "regionProp": "TR_CODE13", - "aliases": [ - "tr_code_2013", - "tr_2013" - ], - "digits": 5, - "description": "Tourism regions", - "regionIdsFile": "data/regionids/region_map-FID_TR_2013_AUST_TR_CODE13.json", - "serverType": "MVT", - "serverSubdomains": [], - "serverMinZoom": 0, - "serverMaxNativeZoom": 12, - "serverMaxZoom": 28, - "bbox": [ - 112.92111395199997, - -43.740509602999985, - 159.10921900799997, - -9.142175976999999 - ], - "nameProp": "TR_NAME13" - }, - "NRMR": { - "layerName": "FID_NRMR_2011_AUST", - "server": "https://vector-tiles.terria.io/FID_NRMR_2011_AUST/{z}/{x}/{y}.pbf", - "analyticsWmsLayerName": "region_map:FID_NRMR_2011_AUST", - "analyticsWmsServer": "http://geoserver.nationalmap.nicta.com.au/region_map/ows", - "regionProp": "NRMR_CODE", - "aliases": [ - "nrmr", - "nrmr_code", - "nrmr_code_2011" - ], - "digits": 3, - "description": "Natural resource management regions", - "regionIdsFile": "data/regionids/region_map-FID_NRMR_2011_AUST_NRMR_CODE.json", - "serverType": "MVT", - "serverSubdomains": [], - "serverMinZoom": 0, - "serverMaxNativeZoom": 12, - "serverMaxZoom": 28, - "bbox": [ - 96.81694140799995, - -43.74050960299998, - 159.10921900799994, - -9.142175976999997 - ], - "nameProp": "NRMR_NAME" - }, - "NRMR_NAME": { - "layerName": "FID_NRMR_2011_AUST", - "server": "https://vector-tiles.terria.io/FID_NRMR_2011_AUST/{z}/{x}/{y}.pbf", - "analyticsWmsLayerName": "region_map:FID_NRMR_2011_AUST", - "analyticsWmsServer": "http://geoserver.nationalmap.nicta.com.au/region_map/ows", - "regionProp": "NRMR_NAME", - "aliases": [ - "nrmr_name" - ], - "description": "Natural resource management regions", - "regionIdsFile": "data/regionids/region_map-FID_NRMR_2011_AUST_NRMR_NAME.json", - "serverType": "MVT", - "serverSubdomains": [], - "serverMinZoom": 0, - "serverMaxNativeZoom": 12, - "serverMaxZoom": 28, - "bbox": [ - 96.81694140799995, - -43.74050960299998, - 159.10921900799994, - -9.142175976999997 - ], - "nameProp": "NRMR_NAME" - }, - "ADD": { - "layerName": "FID_ADD_2011_AUST", - "server": "https://vector-tiles.terria.io/FID_ADD_2011_AUST/{z}/{x}/{y}.pbf", - "analyticsWmsLayerName": "region_map:FID_ADD_2011_AUST", - "analyticsWmsServer": "http://geoserver.nationalmap.nicta.com.au/region_map/ows", - "regionProp": "ADD_CODE", - "aliases": [ - "add", - "add_code", - "add_code_2011" - ], - "digits": 3, - "description": "Australian drainage divisions", - "regionIdsFile": "data/regionids/region_map-FID_ADD_2011_AUST_ADD_CODE.json", - "serverType": "MVT", - "serverSubdomains": [], - "serverMinZoom": 0, - "serverMaxNativeZoom": 12, - "serverMaxZoom": 28, - "bbox": [ - 112.92111395199994, - -43.74050960299998, - 159.10921900799994, - -9.142175976999997 - ], - "nameProp": "ADD_NAME" - }, - "ADD_NAME": { - "layerName": "FID_ADD_2011_AUST", - "server": "https://vector-tiles.terria.io/FID_ADD_2011_AUST/{z}/{x}/{y}.pbf", - "analyticsWmsLayerName": "region_map:FID_ADD_2011_AUST", - "analyticsWmsServer": "http://geoserver.nationalmap.nicta.com.au/region_map/ows", - "regionProp": "ADD_NAME", - "aliases": [ - "add_name" - ], - "description": "Australian drainage divisions", - "regionIdsFile": "data/regionids/region_map-FID_ADD_2011_AUST_ADD_NAME.json", - "serverType": "MVT", - "serverSubdomains": [], - "serverMinZoom": 0, - "serverMaxNativeZoom": 12, - "serverMaxZoom": 28, - "bbox": [ - 112.92111395199994, - -43.74050960299998, - 159.10921900799994, - -9.142175976999997 - ], - "nameProp": "ADD_NAME" - }, - "ADD_2016": { - "layerName": "ADD_2016_AUST", - "server": "https://vector-tiles.terria.io/ADD_2016_AUST/{z}/{x}/{y}.pbf", - "serverType": "MVT", - "serverSubdomains": [], - "serverMinZoom": 0, - "serverMaxNativeZoom": 12, - "serverMaxZoom": 28, - "bbox": [ - 96.81694139400007, - -43.74050960299996, - 167.99803499600006, - -9.142175976999962 - ], - "regionProp": "ADD_CODE16", - "aliases": [ - "add_code_2016", - "add_code", - "add" - ], - "nameProp": "ADD_NAME16", - "description": "Australian drainage divisions (2016)", - "regionIdsFile": "data/regionids/region_map-ADD_2016_AUST_ADD_CODE16.json" - }, - "ADD_NAME_2016": { - "layerName": "ADD_2016_AUST", - "server": "https://vector-tiles.terria.io/ADD_2016_AUST/{z}/{x}/{y}.pbf", - "serverType": "MVT", - "serverSubdomains": [], - "serverMinZoom": 0, - "serverMaxNativeZoom": 12, - "serverMaxZoom": 28, - "bbox": [ - 96.81694139400007, - -43.74050960299996, - 167.99803499600006, - -9.142175976999962 - ], - "regionProp": "ADD_NAME16", - "aliases": [ - "add_name_2016", - "add_name" - ], - "nameProp": "ADD_NAME16", - "description": "Australian drainage divisions (2016)", - "regionIdsFile": "data/regionids/region_map-ADD_2016_AUST_ADD_NAME16.json" - }, - "PHN": { - "layerName": "FID_PHN_boundaries_AUS_Sep2015_V5", - "server": "https://vector-tiles.terria.io/FID_PHN_boundaries_AUS_Sep2015_V5/{z}/{x}/{y}.pbf", - "analyticsWmsLayerName": "region_map:FID_PHN_boundaries_AUS_Sep2015_V5", - "analyticsWmsServer": "http://geoserver.nationalmap.nicta.com.au/region_map/ows", - "regionProp": "PHN_Code", - "aliases": [ - "phn_code_2015", - "phn_code", - "phn" - ], - "digits": 6, - "description": "Primary health networks", - "regionIdsFile": "data/regionids/region_map-FID_PHN_boundaries_AUS_Sep2015_V5_PHN_Code.json", - "serverType": "MVT", - "serverSubdomains": [], - "serverMinZoom": 0, - "serverMaxNativeZoom": 12, - "serverMaxZoom": 28, - "bbox": [ - 96.81694140800003, - -43.74050960299996, - 159.10921900800005, - -9.142175976999962 - ], - "nameProp": "PHN_Name" - }, - "STE_NAME_2011": { - "layerName": "FID_STE_2011_AUST", - "server": "https://vector-tiles.terria.io/FID_STE_2011_AUST/{z}/{x}/{y}.pbf", - "analyticsWmsLayerName": "region_map:FID_STE_2011_AUST", - "analyticsWmsServer": "http://geoserver.nationalmap.nicta.com.au/region_map/ows", - "regionProp": "STE_NAME11", - "aliases": [ - "ste_name_2011" - ], - "dataReplacements": [ - [ - "^Vic[.]?$", - "Victoria" - ], - [ - "^N[ .]?S[ .]?W[ .]?$", - "New South Wales" - ], - [ - "^S[ .]?A[ .]?$", - "South Australia" - ], - [ - "^N[ .]?T[ .]?$", - "Northern Territory" - ], - [ - "^W[ .]?A[ .]?$", - "Western Australia" - ], - [ - "^Tas[.]?$", - "Tasmania" - ], - [ - "^Q[ .]?L[ .]?D[ .]?$", - "Queensland" - ], - [ - "^A[ .]?C[ .]?T[ .]?$", - "Australian Capital Territory" - ], - [ - "^1$", - "New South Wales" - ], - [ - "^2$", - "Victoria" - ], - [ - "^3$", - "Queensland" - ], - [ - "^4$", - "South Australia" - ], - [ - "^5$", - "Western Australia" - ], - [ - "^6$", - "Northern Territory" - ], - [ - "^7$", - "Australian Capital Territory" - ], - [ - "^8$", - "Other Territories" - ] - ], - "regionIdsFile": "data/regionids/region_map-FID_STE_2011_AUST_STE_NAME11.json", - "serverType": "MVT", - "serverSubdomains": [], - "serverMinZoom": 0, - "serverMaxNativeZoom": 12, - "serverMaxZoom": 28, - "bbox": [ - 96.81694140799998, - -43.74050960300003, - 159.10921900799997, - -9.142175976999999 - ], - "nameProp": "STE_NAME11" - }, - "STE_NAME_2016": { - "layerName": "STE_2016_AUST", - "server": "https://vector-tiles.terria.io/STE_2016_AUST/{z}/{x}/{y}.pbf", - "serverType": "MVT", - "serverSubdomains": [], - "serverMinZoom": 0, - "serverMaxNativeZoom": 12, - "serverMaxZoom": 28, - "bbox": [ - 96.81694139400007, - -43.74050960299996, - 167.99803499600006, - -9.142175976999962 - ], - "regionProp": "STE_NAME16", - "aliases": [ - "state", - "ste_name", - "ste_name_2016" - ], - "nameProp": "STE_NAME16", - "description": "States and Territories 2016 (ABS)", - "dataReplacements": [ - [ - "^Vic[.]?$", - "Victoria" - ], - [ - "^N[ .]?S[ .]?W[ .]?$", - "New South Wales" - ], - [ - "^S[ .]?A[ .]?$", - "South Australia" - ], - [ - "^N[ .]?T[ .]?$", - "Northern Territory" - ], - [ - "^W[ .]?A[ .]?$", - "Western Australia" - ], - [ - "^Tas[.]?$", - "Tasmania" - ], - [ - "^Q[ .]?L[ .]?D[ .]?$", - "Queensland" - ], - [ - "^A[ .]?C[ .]?T[ .]?$", - "Australian Capital Territory" - ], - [ - "^1$", - "New South Wales" - ], - [ - "^2$", - "Victoria" - ], - [ - "^3$", - "Queensland" - ], - [ - "^4$", - "South Australia" - ], - [ - "^5$", - "Western Australia" - ], - [ - "^6$", - "Northern Territory" - ], - [ - "^7$", - "Australian Capital Territory" - ], - [ - "^8$", - "Other Territories" - ] - ], - "regionIdsFile": "data/regionids/region_map-STE_2016_AUST_STE_NAME16.json" - }, - "SLA": { - "layerName": "fid_asgc06_sla", - "server": "https://vector-tiles.terria.io/fid_asgc06_sla/{z}/{x}/{y}.pbf", - "analyticsWmsLayerName": "region_map:fid_asgc06_sla", - "analyticsWmsServer": "http://geoserver.nationalmap.nicta.com.au/region_map/ows", - "regionProp": "SLA_CODE06", - "nameProp": "SLA_NAME06", - "aliases": [ - "sla_code_2006", - "sla_code", - "sla_9digitcode_2006", - "sla_9digitcode", - "sla" - ], - "digits": 9, - "description": "Statistical Local Areas (obsolete)", - "serverType": "MVT", - "serverSubdomains": [], - "serverMinZoom": 0, - "serverMaxNativeZoom": 12, - "serverMaxZoom": 28, - "bbox": [ - 96.81676569599999, - -43.740509602999985, - 159.10921900799997, - -9.142175976999999 - ], - "regionIdsFile": "data/regionids/region_map-fid_asgc06_sla_SLA_CODE06.json" - }, - "SLA_5DIGITCODE": { - "layerName": "fid_asgc06_sla", - "server": "https://vector-tiles.terria.io/fid_asgc06_sla/{z}/{x}/{y}.pbf", - "analyticsWmsLayerName": "region_map:fid_asgc06_sla", - "analyticsWmsServer": "http://geoserver.nationalmap.nicta.com.au/region_map/ows", - "regionProp": "SLA_5DIGIT", - "nameProp": "SLA_NAME06", - "aliases": [ - "sla_5digitcode_2006", - "sla_5digitcode" - ], - "digits": 5, - "description": "Statistical Local Areas (obsolete)", - "serverType": "MVT", - "serverSubdomains": [], - "serverMinZoom": 0, - "serverMaxNativeZoom": 12, - "serverMaxZoom": 28, - "bbox": [ - 96.81676569599999, - -43.740509602999985, - 159.10921900799997, - -9.142175976999999 - ], - "regionIdsFile": "data/regionids/region_map-fid_asgc06_sla_SLA_5DIGIT.json" - }, - "SLA_NAME": { - "layerName": "fid_asgc06_sla", - "server": "https://vector-tiles.terria.io/fid_asgc06_sla/{z}/{x}/{y}.pbf", - "analyticsWmsLayerName": "region_map:fid_asgc06_sla", - "analyticsWmsServer": "http://geoserver.nationalmap.nicta.com.au/region_map/ows", - "regionProp": "SLA_NAME06", - "nameProp": "SLA_NAME06", - "aliases": [ - "sla_name_2006", - "sla_name" - ], - "description": "Statistical Local Areas (obsolete)", - "serverType": "MVT", - "serverSubdomains": [], - "serverMinZoom": 0, - "serverMaxNativeZoom": 12, - "serverMaxZoom": 28, - "bbox": [ - 96.81676569599999, - -43.740509602999985, - 159.10921900799997, - -9.142175976999999 - ], - "regionIdsFile": "data/regionids/region_map-fid_asgc06_sla_SLA_NAME06.json" - }, - "CD": { - "layerName": "fid_asgc06_cd", - "server": "https://vector-tiles.terria.io/fid_asgc06_cd/{z}/{x}/{y}.pbf", - "analyticsWmsLayerName": "region_map:fid_asgc06_cd", - "analyticsWmsServer": "http://geoserver.nationalmap.nicta.com.au/region_map/ows", - "regionProp": "CD_CODE06", - "aliases": [ - "cd_7digitcode_2006", - "cd_code_2006", - "cd_code", - "cd" - ], - "digits": 7, - "description": "Census collection district (obsolete)", - "serverType": "MVT", - "serverSubdomains": [], - "serverMinZoom": 0, - "serverMaxNativeZoom": 12, - "serverMaxZoom": 28, - "bbox": [ - 96.76945846399997, - -43.740509602999985, - 159.10921900799997, - -9.142175976999999 - ], - "nameProp": "CD_CODE06", - "regionIdsFile": "data/regionids/region_map-fid_asgc06_cd_CD_CODE06.json" - }, - "CNT2": { - "layerName": "FID_TM_WORLD_BORDERS", - "server": "https://vector-tiles.terria.io/FID_TM_WORLD_BORDERS/{z}/{x}/{y}.pbf", - "analyticsWmsLayerName": "region_map:FID_TM_WORLD_BORDERS", - "analyticsWmsServer": "http://geoserver.nationalmap.nicta.com.au/region_map/ows", - "regionProp": "ISO2", - "aliases": [ - "cnt2", - "iso2" - ], - "digits": 2, - "textCodes": true, - "regionIdsFile": "data/regionids/region_map-FID_TM_WORLD_BORDERS_ISO2.json", - "serverType": "MVT", - "serverSubdomains": [], - "serverMinZoom": 0, - "serverMaxNativeZoom": 10, - "serverMaxZoom": 28, - "bbox": [ - -179.99999999999994, - -85.05109999999998, - 179.99999999999994, - 83.62359600000005 - ], - "nameProp": "NAME" - }, - "CNT3": { - "layerName": "FID_TM_WORLD_BORDERS", - "server": "https://vector-tiles.terria.io/FID_TM_WORLD_BORDERS/{z}/{x}/{y}.pbf", - "analyticsWmsLayerName": "region_map:FID_TM_WORLD_BORDERS", - "analyticsWmsServer": "http://geoserver.nationalmap.nicta.com.au/region_map/ows", - "regionProp": "ISO3", - "aliases": [ - "cnt3", - "iso3" - ], - "digits": 3, - "textCodes": true, - "regionIdsFile": "data/regionids/region_map-FID_TM_WORLD_BORDERS_ISO3.json", - "serverType": "MVT", - "serverSubdomains": [], - "serverMinZoom": 0, - "serverMaxNativeZoom": 10, - "serverMaxZoom": 28, - "bbox": [ - -179.99999999999994, - -85.05109999999998, - 179.99999999999994, - 83.62359600000005 - ], - "nameProp": "NAME" - }, - "COUNTRY": { - "layerName": "FID_TM_WORLD_BORDERS", - "server": "https://vector-tiles.terria.io/FID_TM_WORLD_BORDERS/{z}/{x}/{y}.pbf", - "analyticsWmsLayerName": "region_map:FID_TM_WORLD_BORDERS", - "analyticsWmsServer": "http://geoserver.nationalmap.nicta.com.au/region_map/ows", - "regionProp": "NAME", - "textCodes": true, - "aliases": [ - "country" - ], - "regionIdsFile": "data/regionids/region_map-FID_TM_WORLD_BORDERS_NAME.json", - "serverType": "MVT", - "serverSubdomains": [], - "serverMinZoom": 0, - "serverMaxNativeZoom": 10, - "serverMaxZoom": 28, - "bbox": [ - -179.99999999999994, - -85.05109999999998, - 179.99999999999994, - 83.62359600000005 - ], - "nameProp": "NAME" - }, - "AUS": { - "layerName": "FID_AUS_2011_AUST", - "server": "https://vector-tiles.terria.io/FID_AUS_2011_AUST/{z}/{x}/{y}.pbf", - "analyticsWmsLayerName": "region_map:FID_AUS_2011_AUST", - "analyticsWmsServer": "http://geoserver.nationalmap.nicta.com.au/region_map/ows", - "regionProp": "AUS_CODE", - "aliases": [ - "aus", - "aus_code", - "aus_code_2011", - "aus_code_2016" - ], - "regionIdsFile": "data/regionids/region_map-FID_AUS_2011_AUST_AUS_CODE.json", - "serverType": "MVT", - "serverSubdomains": [], - "serverMinZoom": 0, - "serverMaxNativeZoom": 12, - "serverMaxZoom": 28, - "bbox": [ - 96.81694140799998, - -43.74050960300003, - 159.10921900799997, - -9.142175976999999 - ], - "nameProp": "AUS_NAME" - }, - "ESA_09": { - "layerName": "FID_AUS_ESA_09", - "server": "https://vector-tiles.terria.io/FID_AUS_ESA_09/{z}/{x}/{y}.pbf", - "serverType": "MVT", - "serverSubdomains": [], - "serverMinZoom": 0, - "serverMaxNativeZoom": 12, - "serverMaxZoom": 28, - "bbox": [ - 96.81676599999999, - -43.74050999999999, - 159.10921899999994, - -9.142175999999997 - ], - "regionProp": "ESA_CODE", - "aliases": [ - "esa", - "esa_code", - "esa_code_2009" - ], - "nameProp": "ESA_NAME", - "description": "Employment Service Areas 2009-2015+", - "regionIdsFile": "data/regionids/region_map-FID_AUS_ESA_09_ESA_CODE.json" - }, - "ESA_NAME_09": { - "layerName": "FID_AUS_ESA_09", - "server": "https://vector-tiles.terria.io/FID_AUS_ESA_09/{z}/{x}/{y}.pbf", - "serverType": "MVT", - "serverSubdomains": [], - "serverMinZoom": 0, - "serverMaxNativeZoom": 12, - "serverMaxZoom": 28, - "bbox": [ - 96.81676599999999, - -43.74050999999999, - 159.10921899999994, - -9.142175999999997 - ], - "regionProp": "ESA_NAME", - "aliases": [ - "esa_name", - "esa_name_2009" - ], - "nameProp": "ESA_NAME", - "description": "Employment Service Areas 2009-2015+", - "regionIdsFile": "data/regionids/region_map-FID_AUS_ESA_09_ESA_NAME.json" - }, - "IBRA7_REG": { - "layerName": "ibra7_regions", - "server": "https://vector-tiles.terria.io/ibra7_regions/{z}/{x}/{y}.pbf", - "serverType": "MVT", - "serverSubdomains": [], - "serverMinZoom": 0, - "serverMaxNativeZoom": 12, - "serverMaxZoom": 28, - "bbox": [ - 72.57737629065888, - -54.776992953536805, - 167.9981399159851, - -9.141289999999968 - ], - "regionProp": "REG_CODE_7", - "aliases": [ - "ibra7_reg", - "ibra7_reg_code" - ], - "nameProp": "REG_NAME_7", - "description": "IBRA Regions v7", - "regionIdsFile": "data/regionids/region_map-ibra7_regions_REG_CODE_7.json" - }, - "IBRA7_REG_NAME": { - "layerName": "ibra7_regions", - "server": "https://vector-tiles.terria.io/ibra7_regions/{z}/{x}/{y}.pbf", - "serverType": "MVT", - "serverSubdomains": [], - "serverMinZoom": 0, - "serverMaxNativeZoom": 12, - "serverMaxZoom": 28, - "bbox": [ - 72.57737629065888, - -54.776992953536805, - 167.9981399159851, - -9.141289999999968 - ], - "regionProp": "REG_NAME_7", - "aliases": [ - "ibra7_reg_name" - ], - "nameProp": "REG_NAME_7", - "description": "IBRA Regions v7", - "regionIdsFile": "data/regionids/region_map-ibra7_regions_REG_NAME_7.json" - }, - "IBRA7_SUB": { - "layerName": "ibra7_subregions", - "server": "https://vector-tiles.terria.io/ibra7_subregions/{z}/{x}/{y}.pbf", - "serverType": "MVT", - "serverSubdomains": [], - "serverMinZoom": 0, - "serverMaxNativeZoom": 12, - "serverMaxZoom": 28, - "bbox": [ - 72.57737629065888, - -54.77699295353692, - 167.9981399159851, - -9.141289999999968 - ], - "regionProp": "SUB_CODE_7", - "aliases": [ - "ibra7_sub", - "ibra7_sub_code" - ], - "nameProp": "SUB_NAME_7", - "description": "IBRA Subregions v7", - "regionIdsFile": "data/regionids/region_map-ibra7_subregions_SUB_CODE_7.json" - }, - "IBRA7_SUB_NAME": { - "layerName": "ibra7_subregions", - "server": "https://vector-tiles.terria.io/ibra7_subregions/{z}/{x}/{y}.pbf", - "serverType": "MVT", - "serverSubdomains": [], - "serverMinZoom": 0, - "serverMaxNativeZoom": 12, - "serverMaxZoom": 28, - "bbox": [ - 72.57737629065888, - -54.77699295353692, - 167.9981399159851, - -9.141289999999968 - ], - "regionProp": "SUB_NAME_7", - "aliases": [ - "ibra7_sub_name" - ], - "nameProp": "SUB_NAME_7", - "description": "IBRA Subregions v7", - "regionIdsFile": "data/regionids/region_map-ibra7_subregions_SUB_NAME_7.json" - }, - "NZ_AU_2017": { - "layerName": "NZ_AU2017_HD_Clipped", - "server": "https://vector-tiles.terria.io/NZ_AU2017_HD_Clipped/{z}/{x}/{y}.pbf", - "serverType": "MVT", - "serverMaxNativeZoom": 12, - "serverMaxZoom": 28, - "bbox": [ - -176.89314232298426, - -47.28999251282331, - 178.57724348546415, - -34.392630183116 - ], - "uniqueIdProp": "FID", - "regionProp": "AU2017", - "nameProp": "AU2017_NAM", - "aliases": [ - "nz_au_code_2017", - "nz_au" - ], - "description": "Stats New Zealand Area Units 2017", - "regionIdsFile": "data/regionids/region_map-NZ_AU2017_HD_Clipped_AU2017.json" - }, - "NZ_AU_2017_NAME": { - "layerName": "NZ_AU2017_HD_Clipped", - "server": "https://vector-tiles.terria.io/NZ_AU2017_HD_Clipped/{z}/{x}/{y}.pbf", - "serverType": "MVT", - "serverMaxNativeZoom": 12, - "serverMaxZoom": 28, - "bbox": [ - -176.89314232298426, - -47.28999251282331, - 178.57724348546415, - -34.392630183116 - ], - "uniqueIdProp": "FID", - "regionProp": "AU2017_NAM", - "nameProp": "AU2017_NAM", - "aliases": [ - "nz_au_name_2017" - ], - "description": "Stats New Zealand Area Units 2017", - "regionIdsFile": "data/regionids/region_map-NZ_AU2017_HD_Clipped_AU2017_NAM.json" - }, - "NZ_MB_2017": { - "layerName": "NZ_MB2017_HD_Clipped", - "server": "https://vector-tiles.terria.io/NZ_MB2017_HD_Clipped/{z}/{x}/{y}.pbf", - "serverType": "MVT", - "serverMaxNativeZoom": 12, - "serverMaxZoom": 28, - "bbox": [ - -176.89314232298426, - -47.28999251282331, - 178.57724348546415, - -34.392630183116 - ], - "uniqueIdProp": "FID", - "regionProp": "MB2017", - "nameProp": "MB2017", - "aliases": [ - "nz_mb_code_2017", - "nz_mb" - ], - "description": "Stats New Zealand Mesh Blocks 2017", - "regionIdsFile": "data/regionids/region_map-NZ_MB2017_HD_Clipped_MB2017.json" - } + "comments": "Matching takes place in the order defined in this file. Place code matches before name matches, and smaller regions before larger ones.", + "regionWmsMap": { + "SA1_2011": { + "layerName": "FID_SA1_2011_AUST", + "server": "https://vector-tiles.terria.io/FID_SA1_2011_AUST/{z}/{x}/{y}.pbf", + "analyticsWmsLayerName": "region_map:FID_SA1_2011_AUST", + "analyticsWmsServer": "http://geoserver.nationalmap.nicta.com.au/region_map/ows", + "regionProp": "SA1_MAIN11", + "aliases": ["sa1_code_2011", "sa1_maincode_2011"], + "digits": 11, + "description": "Statistical Area Level 1", + "regionIdsFile": "data/regionids/region_map-FID_SA1_2011_AUST_SA1_MAIN11.json", + "serverType": "MVT", + "serverSubdomains": [], + "serverMinZoom": 0, + "serverMaxNativeZoom": 12, + "serverMaxZoom": 28, + "bbox": [ + 96.81694140799998, -43.74050960300003, 159.10921900799997, + -9.142175976999999 + ], + "nameProp": "SA1_7DIG11" + }, + "SA1_7DIGIT_2011": { + "layerName": "FID_SA1_2011_AUST", + "server": "https://vector-tiles.terria.io/FID_SA1_2011_AUST/{z}/{x}/{y}.pbf", + "analyticsWmsLayerName": "region_map:FID_SA1_2011_AUST", + "analyticsWmsServer": "http://geoserver.nationalmap.nicta.com.au/region_map/ows", + "regionProp": "SA1_7DIG11", + "aliases": ["sa1_7digitcode_2011"], + "digits": 7, + "description": "Statistical Area Level 1", + "regionIdsFile": "data/regionids/region_map-FID_SA1_2011_AUST_SA1_7DIG11.json", + "serverType": "MVT", + "serverSubdomains": [], + "serverMinZoom": 0, + "serverMaxNativeZoom": 12, + "serverMaxZoom": 28, + "bbox": [ + 96.81694140799998, -43.74050960300003, 159.10921900799997, + -9.142175976999999 + ], + "nameProp": "SA1_7DIG11" + }, + "SA1_2016": { + "layerName": "SA1_2016_AUST", + "server": "https://vector-tiles.terria.io/SA1_2016_AUST/{z}/{x}/{y}.pbf", + "serverType": "MVT", + "serverSubdomains": [], + "serverMinZoom": 0, + "serverMaxNativeZoom": 12, + "serverMaxZoom": 28, + "bbox": [ + 96.81694139400007, -43.74050960299996, 167.99803499600006, + -9.142175976999962 + ], + "regionProp": "SA1_MAIN16", + "aliases": ["sa1", "sa1_code", "sa1_maincode_2016", "sa1_code_2016"], + "nameProp": "SA1_7DIG16", + "description": "Statistical Area Level 1 2016 (ABS)", + "regionIdsFile": "data/regionids/region_map-SA1_2016_AUST_SA1_MAIN16.json" + }, + "SA1_7DIGIT_2016": { + "layerName": "SA1_2016_AUST", + "server": "https://vector-tiles.terria.io/SA1_2016_AUST/{z}/{x}/{y}.pbf", + "serverType": "MVT", + "serverSubdomains": [], + "serverMinZoom": 0, + "serverMaxNativeZoom": 12, + "serverMaxZoom": 28, + "bbox": [ + 96.81694139400007, -43.74050960299996, 167.99803499600006, + -9.142175976999962 + ], + "regionProp": "SA1_7DIG16", + "aliases": ["sa1_7digitcode", "sa1_7digitcode_2016"], + "nameProp": "SA1_7DIG16", + "description": "Statistical Area Level 1 2016 (ABS)", + "regionIdsFile": "data/regionids/region_map-SA1_2016_AUST_SA1_7DIG16.json" + }, + "SA4_2011": { + "layerName": "FID_SA4_2011_AUST", + "server": "https://vector-tiles.terria.io/FID_SA4_2011_AUST/{z}/{x}/{y}.pbf", + "analyticsWmsLayerName": "region_map:FID_SA4_2011_AUST", + "analyticsWmsServer": "http://geoserver.nationalmap.nicta.com.au/region_map/ows", + "regionProp": "SA4_CODE11", + "aliases": ["sa4_code_2011"], + "digits": 3, + "description": "Statistical Area Level 4", + "regionIdsFile": "data/regionids/region_map-FID_SA4_2011_AUST_SA4_CODE11.json", + "serverType": "MVT", + "serverSubdomains": [], + "serverMinZoom": 0, + "serverMaxNativeZoom": 12, + "serverMaxZoom": 28, + "bbox": [ + 96.81694140799998, -43.74050960300003, 159.10921900799997, + -9.142175976999999 + ], + "nameProp": "SA4_NAME11" + }, + "SA4_NAME_2011": { + "layerName": "FID_SA4_2011_AUST", + "server": "https://vector-tiles.terria.io/FID_SA4_2011_AUST/{z}/{x}/{y}.pbf", + "analyticsWmsLayerName": "region_map:FID_SA4_2011_AUST", + "analyticsWmsServer": "http://geoserver.nationalmap.nicta.com.au/region_map/ows", + "regionProp": "SA4_NAME11", + "aliases": ["sa4_name_2011"], + "description": "Statistical Area Level 4", + "regionIdsFile": "data/regionids/region_map-FID_SA4_2011_AUST_SA4_NAME11.json", + "serverType": "MVT", + "serverSubdomains": [], + "serverMinZoom": 0, + "serverMaxNativeZoom": 12, + "serverMaxZoom": 28, + "bbox": [ + 96.81694140799998, -43.74050960300003, 159.10921900799997, + -9.142175976999999 + ], + "nameProp": "SA4_NAME11" + }, + "SA4_2016": { + "layerName": "SA4_2016_AUST", + "server": "https://vector-tiles.terria.io/SA4_2016_AUST/{z}/{x}/{y}.pbf", + "serverType": "MVT", + "serverSubdomains": [], + "serverMinZoom": 0, + "serverMaxNativeZoom": 12, + "serverMaxZoom": 28, + "bbox": [ + 96.81694139400007, -43.74050960299996, 167.99803499600006, + -9.142175976999962 + ], + "regionProp": "SA4_CODE16", + "aliases": ["sa4", "sa4_code", "sa4_code_2016"], + "nameProp": "SA4_NAME16", + "description": "Statistical Area Level 4 2016 (ABS)", + "regionIdsFile": "data/regionids/region_map-SA4_2016_AUST_SA4_CODE16.json" + }, + "SA4_NAME_2016": { + "layerName": "SA4_2016_AUST", + "server": "https://vector-tiles.terria.io/SA4_2016_AUST/{z}/{x}/{y}.pbf", + "serverType": "MVT", + "serverSubdomains": [], + "serverMinZoom": 0, + "serverMaxNativeZoom": 12, + "serverMaxZoom": 28, + "bbox": [ + 96.81694139400007, -43.74050960299996, 167.99803499600006, + -9.142175976999962 + ], + "regionProp": "SA4_NAME16", + "aliases": ["sa4_name", "sa4_name_2016"], + "nameProp": "SA4_NAME16", + "description": "Statistical Area Level 4 2016 (ABS)", + "regionIdsFile": "data/regionids/region_map-SA4_2016_AUST_SA4_NAME16.json" + }, + "SA3_2011": { + "layerName": "FID_SA3_2011_AUST", + "server": "https://vector-tiles.terria.io/FID_SA3_2011_AUST/{z}/{x}/{y}.pbf", + "analyticsWmsLayerName": "region_map:FID_SA3_2011_AUST", + "analyticsWmsServer": "http://geoserver.nationalmap.nicta.com.au/region_map/ows", + "regionProp": "SA3_CODE11", + "aliases": ["sa3_code_2011"], + "digits": 5, + "description": "Statistical Area Level 3", + "regionIdsFile": "data/regionids/region_map-FID_SA3_2011_AUST_SA3_CODE11.json", + "serverType": "MVT", + "serverSubdomains": [], + "serverMinZoom": 0, + "serverMaxNativeZoom": 12, + "serverMaxZoom": 28, + "bbox": [ + 96.81694140799998, -43.74050960300003, 159.10921900799997, + -9.142175976999999 + ], + "nameProp": "SA3_NAME11" + }, + "SA3_NAME_2011": { + "layerName": "FID_SA3_2011_AUST", + "server": "https://vector-tiles.terria.io/FID_SA3_2011_AUST/{z}/{x}/{y}.pbf", + "analyticsWmsLayerName": "region_map:FID_SA3_2011_AUST", + "analyticsWmsServer": "http://geoserver.nationalmap.nicta.com.au/region_map/ows", + "regionProp": "SA3_NAME11", + "aliases": ["sa3_name_2011"], + "digits": 5, + "description": "Statistical Area Level 3", + "regionIdsFile": "data/regionids/region_map-FID_SA3_2011_AUST_SA3_NAME11.json", + "serverType": "MVT", + "serverSubdomains": [], + "serverMinZoom": 0, + "serverMaxNativeZoom": 12, + "serverMaxZoom": 28, + "bbox": [ + 96.81694140799998, -43.74050960300003, 159.10921900799997, + -9.142175976999999 + ], + "nameProp": "SA3_NAME11" + }, + "SA3_2016": { + "layerName": "SA3_2016_AUST", + "server": "https://vector-tiles.terria.io/SA3_2016_AUST/{z}/{x}/{y}.pbf", + "serverType": "MVT", + "serverSubdomains": [], + "serverMinZoom": 0, + "serverMaxNativeZoom": 12, + "serverMaxZoom": 28, + "bbox": [ + 96.81694139400007, -43.74050960299996, 167.99803499600006, + -9.142175976999962 + ], + "regionProp": "SA3_CODE16", + "aliases": ["sa3", "sa3_code", "sa3_code_2016"], + "nameProp": "SA3_NAME16", + "description": "Statistical Area Level 3 2016 (ABS)", + "regionIdsFile": "data/regionids/region_map-SA3_2016_AUST_SA3_CODE16.json" + }, + "SA3_NAME_2016": { + "layerName": "SA3_2016_AUST", + "server": "https://vector-tiles.terria.io/SA3_2016_AUST/{z}/{x}/{y}.pbf", + "serverType": "MVT", + "serverSubdomains": [], + "serverMinZoom": 0, + "serverMaxNativeZoom": 12, + "serverMaxZoom": 28, + "bbox": [ + 96.81694139400007, -43.74050960299996, 167.99803499600006, + -9.142175976999962 + ], + "regionProp": "SA3_NAME16", + "aliases": ["sa3_name", "sa3_name_2016"], + "nameProp": "SA3_NAME16", + "description": "Statistical Area Level 3 2016 (ABS)", + "regionIdsFile": "data/regionids/region_map-SA3_2016_AUST_SA3_NAME16.json" + }, + "SA2_2011": { + "layerName": "FID_SA2_2011_AUST", + "server": "https://vector-tiles.terria.io/FID_SA2_2011_AUST/{z}/{x}/{y}.pbf", + "analyticsWmsLayerName": "region_map:FID_SA2_2011_AUST", + "analyticsWmsServer": "http://geoserver.nationalmap.nicta.com.au/region_map/ows", + "regionProp": "SA2_MAIN11", + "aliases": ["sa2_code_2011"], + "digits": 9, + "description": "Statistical Area Level 2", + "regionIdsFile": "data/regionids/region_map-FID_SA2_2011_AUST_SA2_MAIN11.json", + "serverType": "MVT", + "serverSubdomains": [], + "serverMinZoom": 0, + "serverMaxNativeZoom": 12, + "serverMaxZoom": 28, + "bbox": [ + 96.81694140799998, -43.74050960300003, 159.10921900799997, + -9.142175976999999 + ], + "nameProp": "SA2_NAME11" + }, + "SA2_5DIG_2011": { + "layerName": "FID_SA2_2011_AUST", + "server": "https://vector-tiles.terria.io/FID_SA2_2011_AUST/{z}/{x}/{y}.pbf", + "analyticsWmsLayerName": "region_map:FID_SA2_2011_AUST", + "analyticsWmsServer": "http://geoserver.nationalmap.nicta.com.au/region_map/ows", + "regionProp": "SA2_5DIG11", + "aliases": ["sa2_5digitcode_2011"], + "digits": 5, + "description": "Statistical Area Level 2", + "regionIdsFile": "data/regionids/region_map-FID_SA2_2011_AUST_SA2_5DIG11.json", + "serverType": "MVT", + "serverSubdomains": [], + "serverMinZoom": 0, + "serverMaxNativeZoom": 12, + "serverMaxZoom": 28, + "bbox": [ + 96.81694140799998, -43.74050960300003, 159.10921900799997, + -9.142175976999999 + ], + "nameProp": "SA2_NAME11" + }, + "SA2_NAME_2011": { + "layerName": "FID_SA2_2011_AUST", + "server": "https://vector-tiles.terria.io/FID_SA2_2011_AUST/{z}/{x}/{y}.pbf", + "analyticsWmsLayerName": "region_map:FID_SA2_2011_AUST", + "analyticsWmsServer": "http://geoserver.nationalmap.nicta.com.au/region_map/ows", + "regionProp": "SA2_NAME11", + "aliases": ["sa2_name_2011"], + "description": "Statistical Area Level 2", + "regionIdsFile": "data/regionids/region_map-FID_SA2_2011_AUST_SA2_NAME11.json", + "serverType": "MVT", + "serverSubdomains": [], + "serverMinZoom": 0, + "serverMaxNativeZoom": 12, + "serverMaxZoom": 28, + "bbox": [ + 96.81694140799998, -43.74050960300003, 159.10921900799997, + -9.142175976999999 + ], + "nameProp": "SA2_NAME11" + }, + "SA2_2016": { + "layerName": "SA2_2016_AUST", + "server": "https://vector-tiles.terria.io/SA2_2016_AUST/{z}/{x}/{y}.pbf", + "serverType": "MVT", + "serverSubdomains": [], + "serverMinZoom": 0, + "serverMaxNativeZoom": 12, + "serverMaxZoom": 28, + "bbox": [ + 96.81694139400007, -43.74050960299996, 167.99803499600006, + -9.142175976999962 + ], + "regionProp": "SA2_MAIN16", + "aliases": ["sa2", "sa2_code", "sa2_code_2016"], + "nameProp": "SA2_NAME16", + "description": "Statistical Area Level 2 2016 (ABS)", + "regionIdsFile": "data/regionids/region_map-SA2_2016_AUST_SA2_MAIN16.json" + }, + "SA2_5DIG_2016": { + "layerName": "SA2_2016_AUST", + "server": "https://vector-tiles.terria.io/SA2_2016_AUST/{z}/{x}/{y}.pbf", + "serverType": "MVT", + "serverSubdomains": [], + "serverMinZoom": 0, + "serverMaxNativeZoom": 12, + "serverMaxZoom": 28, + "bbox": [ + 96.81694139400007, -43.74050960299996, 167.99803499600006, + -9.142175976999962 + ], + "regionProp": "SA2_5DIG16", + "aliases": ["sa2_5digitcode", "sa2_5digitcode_2016"], + "nameProp": "SA2_NAME16", + "description": "Statistical Area Level 2 2016 (ABS)", + "regionIdsFile": "data/regionids/region_map-SA2_2016_AUST_SA2_5DIG16.json" + }, + "SA2_NAME_2016": { + "layerName": "SA2_2016_AUST", + "server": "https://vector-tiles.terria.io/SA2_2016_AUST/{z}/{x}/{y}.pbf", + "serverType": "MVT", + "serverSubdomains": [], + "serverMinZoom": 0, + "serverMaxNativeZoom": 12, + "serverMaxZoom": 28, + "bbox": [ + 96.81694139400007, -43.74050960299996, 167.99803499600006, + -9.142175976999962 + ], + "regionProp": "SA2_NAME16", + "aliases": ["sa2_name", "sa2_name_2016"], + "nameProp": "SA2_NAME16", + "description": "Statistical Area Level 2 2016 (ABS)", + "regionIdsFile": "data/regionids/region_map-SA2_2016_AUST_SA2_NAME16.json" + }, + "SSC": { + "layerName": "FID_SSC_2011_AUST", + "server": "https://vector-tiles.terria.io/FID_SSC_2011_AUST/{z}/{x}/{y}.pbf", + "analyticsWmsLayerName": "region_map:FID_SSC_2011_AUST", + "analyticsWmsServer": "http://geoserver.nationalmap.nicta.com.au/region_map/ows", + "regionProp": "SSC_CODE", + "aliases": ["ssc_code_2011"], + "digits": 5, + "description": "ABS approximations of suburbs", + "regionIdsFile": "data/regionids/region_map-FID_SSC_2011_AUST_SSC_CODE.json", + "serverType": "MVT", + "serverSubdomains": [], + "serverMinZoom": 0, + "serverMaxNativeZoom": 12, + "serverMaxZoom": 28, + "bbox": [ + 96.81694140799998, -43.740509602999985, 159.10921900799997, + -9.142175976999999 + ], + "nameProp": "SSC_NAME" + }, + "SSC_NAME": { + "layerName": "FID_SSC_2011_AUST", + "server": "https://vector-tiles.terria.io/FID_SSC_2011_AUST/{z}/{x}/{y}.pbf", + "analyticsWmsLayerName": "region_map:FID_SSC_2011_AUST", + "analyticsWmsServer": "http://geoserver.nationalmap.nicta.com.au/region_map/ows", + "regionProp": "SSC_NAME", + "aliases": ["ssc_name_2011"], + "description": "ABS approximations of suburbs", + "regionIdsFile": "data/regionids/region_map-FID_SSC_2011_AUST_SSC_NAME.json", + "serverType": "MVT", + "serverSubdomains": [], + "serverMinZoom": 0, + "serverMaxNativeZoom": 12, + "serverMaxZoom": 28, + "bbox": [ + 96.81694140799998, -43.740509602999985, 159.10921900799997, + -9.142175976999999 + ], + "nameProp": "SSC_NAME" + }, + "SSC_2016": { + "layerName": "SSC_2016_AUST", + "server": "https://vector-tiles.terria.io/SSC_2016_AUST/{z}/{x}/{y}.pbf", + "serverType": "MVT", + "serverSubdomains": [], + "serverMinZoom": 0, + "serverMaxNativeZoom": 12, + "serverMaxZoom": 28, + "bbox": [ + 96.81694139400007, -43.74050960299996, 167.99803499600006, + -9.142175976999962 + ], + "regionProp": "SSC_CODE16", + "aliases": ["ssc_code_2016", "ssc_code", "ssc"], + "nameProp": "SSC_NAME16", + "description": "ABS approximations of suburbs (2016)", + "regionIdsFile": "data/regionids/region_map-SSC_2016_AUST_SSC_CODE16.json" + }, + "SSC_NAME_2016": { + "layerName": "SSC_2016_AUST", + "server": "https://vector-tiles.terria.io/SSC_2016_AUST/{z}/{x}/{y}.pbf", + "serverType": "MVT", + "serverSubdomains": [], + "serverMinZoom": 0, + "serverMaxNativeZoom": 12, + "serverMaxZoom": 28, + "bbox": [ + 96.81694139400007, -43.74050960299996, 167.99803499600006, + -9.142175976999962 + ], + "regionProp": "SSC_NAME16", + "aliases": ["ssc_name_2016", "ssc_name", "suburb"], + "nameProp": "SSC_NAME16", + "description": "ABS approximations of suburbs (2016)", + "regionIdsFile": "data/regionids/region_map-SSC_2016_AUST_SSC_NAME16.json" + }, + "LGA_2018": { + "layerName": "LGA_2018_AUST", + "server": "https://vector-tiles.terria.io/LGA_2018_AUST/{z}/{x}/{y}.pbf", + "serverType": "MVT", + "serverMaxNativeZoom": 12, + "serverMaxZoom": 28, + "bbox": [ + 96.81694139400008, -43.74050960205758, 167.99803499600011, + -9.142175976703571 + ], + "uniqueIdProp": "FID", + "regionProp": "LGA_CODE18", + "nameProp": "LGA_NAME18", + "aliases": ["lga_code_2018", "lga_code", "lga"], + "description": "Local Government Areas 2018 (ABS)", + "regionIdsFile": "data/regionids/region_map-LGA_2018_AUST_LGA_CODE18.json" + }, + "LGA_2017": { + "layerName": "LGA_2017_AUST", + "server": "https://vector-tiles.terria.io/LGA_2017_AUST/{z}/{x}/{y}.pbf", + "serverType": "MVT", + "serverMaxNativeZoom": 12, + "serverMaxZoom": 28, + "bbox": [ + 96.81694139400008, -43.74050960205758, 167.99803499600011, + -9.142175976703571 + ], + "uniqueIdProp": "FID", + "regionProp": "LGA_CODE17", + "nameProp": "LGA_NAME17", + "aliases": ["lga_code_2017"], + "description": "Local Government Areas 2017 (ABS)", + "regionIdsFile": "data/regionids/region_map-LGA_2017_AUST_LGA_CODE17.json" + }, + "LGA_2016": { + "layerName": "LGA_2016_AUST", + "server": "https://vector-tiles.terria.io/LGA_2016_AUST/{z}/{x}/{y}.pbf", + "serverType": "MVT", + "serverSubdomains": [], + "serverMinZoom": 0, + "serverMaxNativeZoom": 12, + "serverMaxZoom": 28, + "bbox": [ + 96.81694139400007, -43.74050960299996, 167.99803499600006, + -9.142175976999962 + ], + "regionProp": "LGA_CODE16", + "aliases": ["lga_code_2016"], + "nameProp": "LGA_NAME16", + "description": "Local government areas (2016)", + "regionIdsFile": "data/regionids/region_map-LGA_2016_AUST_LGA_CODE16.json" + }, + "LGA_2015": { + "layerName": "FID_LGA_2015_AUST", + "server": "https://vector-tiles.terria.io/FID_LGA_2015_AUST/{z}/{x}/{y}.pbf", + "analyticsWmsLayerName": "region_map:FID_LGA_2015_AUST", + "analyticsWmsServer": "http://geoserver.nationalmap.nicta.com.au/region_map/ows", + "regionProp": "LGA_CODE15", + "aliases": ["lga_code_2015", "lga_code_2014"], + "digits": 5, + "description": "Local government areas", + "regionIdsFile": "data/regionids/region_map-FID_LGA_2015_AUST_LGA_CODE15.json", + "serverType": "MVT", + "serverSubdomains": [], + "serverMinZoom": 0, + "serverMaxNativeZoom": 12, + "serverMaxZoom": 28, + "bbox": [ + 96.81694140799998, -43.740509602999985, 159.10921900799997, + -9.142175976999999 + ], + "nameProp": "LGA_NAME15" + }, + "LGA_2013": { + "layerName": "FID_LGA_2013_AUST", + "server": "https://vector-tiles.terria.io/FID_LGA_2013_AUST/{z}/{x}/{y}.pbf", + "analyticsWmsLayerName": "region_map:FID_LGA_2013_AUST", + "analyticsWmsServer": "http://geoserver.nationalmap.nicta.com.au/region_map/ows", + "regionProp": "LGA_CODE13", + "aliases": ["lga_code_2013", "lga_code_2012"], + "digits": 5, + "description": "Local government areas", + "regionIdsFile": "data/regionids/region_map-FID_LGA_2013_AUST_LGA_CODE13.json", + "serverType": "MVT", + "serverSubdomains": [], + "serverMinZoom": 0, + "serverMaxNativeZoom": 12, + "serverMaxZoom": 28, + "bbox": [ + 96.81694140799998, -43.740509602999985, 159.10921900799997, + -9.142175976999999 + ], + "nameProp": "LGA_NAME13" + }, + "LGA_2011": { + "layerName": "FID_LGA_2011_AUST", + "server": "https://vector-tiles.terria.io/FID_LGA_2011_AUST/{z}/{x}/{y}.pbf", + "analyticsWmsLayerName": "region_map:FID_LGA_2011_AUST", + "analyticsWmsServer": "http://geoserver.nationalmap.nicta.com.au/region_map/ows", + "regionProp": "LGA_CODE11", + "aliases": ["lga_code_2011", "lga_code_2010"], + "digits": 5, + "description": "Local government areas", + "regionIdsFile": "data/regionids/region_map-FID_LGA_2011_AUST_LGA_CODE11.json", + "serverType": "MVT", + "serverSubdomains": [], + "serverMinZoom": 0, + "serverMaxNativeZoom": 12, + "serverMaxZoom": 28, + "bbox": [ + 112.92111395999996, -43.74050957999999, 153.63872711999997, + -9.142175969999997 + ], + "nameProp": "LGA_NAME11" + }, + "LGA_NAME_2011": { + "_comment": "This section must go before State", + "layerName": "FID_LGA_2011_AUST", + "server": "https://vector-tiles.terria.io/FID_LGA_2011_AUST/{z}/{x}/{y}.pbf", + "analyticsWmsLayerName": "region_map:FID_LGA_2011_AUST", + "analyticsWmsServer": "http://geoserver.nationalmap.nicta.com.au/region_map/ows", + "regionProp": "LGA_NAME11", + "aliases": [ + "lga_name", + "lga_name_2011", + "lga_name_2015", + "lga_name_2014", + "lga_name_2013", + "lga_name_2012", + "lga_name_2010" + ], + "serverReplacements": [ + [" \\([a-z]+\\)$", ""], + ["-", " "] + ], + "dataReplacements": [ + ["^The ", ""], + ["^.*Council of (the )?", ""], + ["^.* of (the )?", ""], + [" Council$", ""], + [ + " (Shire|City|Rural City|Borough|District|Aboriginal|Municipality|Municipal|Regional|Town|Government Community|Aboriginal Shire|Island|\\(Unincorporated\\)|\\(Uninc.\\))$", + "" + ], + ["( \\([A-Z]+\\)$)", ""], + ["-", " "] + ], + "disambigProp": "STE_NAME16", + "disambigRegionId": "STE_NAME_2016", + "description": "Local government areas", + "regionIdsFile": "data/regionids/region_map-FID_LGA_2011_AUST_LGA_NAME11.json", + "regionDisambigIdsFile": "data/regionids/region_map-FID_LGA_2011_AUST_STE_NAME11.json", + "serverType": "MVT", + "serverSubdomains": [], + "serverMinZoom": 0, + "serverMaxNativeZoom": 12, + "serverMaxZoom": 28, + "bbox": [ + 112.92111395999996, -43.74050957999999, 153.63872711999997, + -9.142175969999997 + ], + "nameProp": "LGA_NAME11" + }, + "POA": { + "layerName": "FID_POA_2011_AUST", + "server": "https://vector-tiles.terria.io/FID_POA_2011_AUST/{z}/{x}/{y}.pbf", + "analyticsWmsLayerName": "region_map:FID_POA_2011_AUST", + "analyticsWmsServer": "http://geoserver.nationalmap.nicta.com.au/region_map/ows", + "regionProp": "POA_CODE", + "aliases": [ + "poa_2011", + "postcode_2011", + "poa_code_2011", + "postcode_2015" + ], + "digits": 4, + "dataReplacements": [["^(?=\\d\\d\\d$)", "0"]], + "description": "Postal areas (ABS approximations of postcodes)", + "regionIdsFile": "data/regionids/region_map-FID_POA_2011_AUST_POA_CODE.json", + "serverType": "MVT", + "serverSubdomains": [], + "serverMinZoom": 0, + "serverMaxNativeZoom": 12, + "serverMaxZoom": 28, + "bbox": [ + 96.81694140799998, -43.59821500299999, 159.10921900799997, + -9.142175976999999 + ], + "nameProp": "POA_NAME" + }, + "POA_2016": { + "layerName": "POA_2016_AUST", + "server": "https://vector-tiles.terria.io/POA_2016_AUST/{z}/{x}/{y}.pbf", + "serverType": "MVT", + "serverSubdomains": [], + "serverMinZoom": 0, + "serverMaxNativeZoom": 12, + "serverMaxZoom": 28, + "bbox": [ + 96.81694139400007, -43.74050960299996, 167.99803499600006, + -9.142175976999962 + ], + "regionProp": "POA_CODE16", + "aliases": [ + "poa_code_2016", + "poa_code", + "poa", + "postcode_2016", + "postcode" + ], + "digits": 4, + "dataReplacements": [["^(?=\\d\\d\\d$)", "0"]], + "nameProp": "POA_NAME16", + "description": "Postal areas (ABS approximations of postcodes) (2016)", + "regionIdsFile": "data/regionids/region_map-POA_2016_AUST_POA_CODE16.json" + }, + "CED_CODE_2016": { + "layerName": "FID_CED_2016_AUST", + "server": "https://vector-tiles.terria.io/FID_CED_2016_AUST/{z}/{x}/{y}.pbf", + "analyticsWmsLayerName": "region_map:FID_CED_2016_AUST", + "analyticsWmsServer": "http://geoserver.nationalmap.nicta.com.au/region_map/ows", + "regionProp": "CED_CODE16", + "aliases": ["ced_code_2016", "ced_code", "ced"], + "digits": 3, + "description": "Commonwealth electoral districts (2016 ABS approximations)", + "regionIdsFile": "data/regionids/region_map-FID_CED_2016_AUST_CED_CODE16.json", + "serverType": "MVT", + "serverSubdomains": [], + "serverMinZoom": 0, + "serverMaxNativeZoom": 12, + "serverMaxZoom": 28, + "bbox": [ + 96.81694140799998, -43.74050960300003, 159.10921900799997, + -9.142175976999999 + ], + "nameProp": "CED_NAME16" + }, + "CED_NAME_2016": { + "layerName": "FID_CED_2016_AUST", + "server": "https://vector-tiles.terria.io/FID_CED_2016_AUST/{z}/{x}/{y}.pbf", + "analyticsWmsLayerName": "region_map:FID_CED_2016_AUST", + "analyticsWmsServer": "http://geoserver.nationalmap.nicta.com.au/region_map/ows", + "regionProp": "CED_NAME16", + "aliases": ["ced_name_2016", "ced_name"], + "description": "Commonwealth electoral districts (2016 ABS approximations)", + "regionIdsFile": "data/regionids/region_map-FID_CED_2016_AUST_CED_NAME16.json", + "serverType": "MVT", + "serverSubdomains": [], + "serverMinZoom": 0, + "serverMaxNativeZoom": 12, + "serverMaxZoom": 28, + "bbox": [ + 96.81694140799998, -43.74050960300003, 159.10921900799997, + -9.142175976999999 + ], + "nameProp": "CED_NAME16" + }, + "CED_CODE_2013": { + "layerName": "FID_CED_2013_AUST", + "server": "https://vector-tiles.terria.io/FID_CED_2013_AUST/{z}/{x}/{y}.pbf", + "analyticsWmsLayerName": "region_map:FID_CED_2013_AUST", + "analyticsWmsServer": "http://geoserver.nationalmap.nicta.com.au/region_map/ows", + "regionProp": "CED_CODE13", + "aliases": ["ced_code_2013"], + "digits": 3, + "description": "Commonwealth electoral districts (2013 ABS approximations)", + "regionIdsFile": "data/regionids/region_map-FID_CED_2013_AUST_CED_CODE13.json", + "serverType": "MVT", + "serverSubdomains": [], + "serverMinZoom": 0, + "serverMaxNativeZoom": 12, + "serverMaxZoom": 28, + "bbox": [ + 96.81694140799998, -43.740509602999985, 159.10921900799997, + -9.142175976999999 + ], + "nameProp": "CED_NAME13" + }, + "CED_NAME_2013": { + "layerName": "FID_CED_2013_AUST", + "server": "https://vector-tiles.terria.io/FID_CED_2013_AUST/{z}/{x}/{y}.pbf", + "analyticsWmsLayerName": "region_map:FID_CED_2013_AUST", + "analyticsWmsServer": "http://geoserver.nationalmap.nicta.com.au/region_map/ows", + "regionProp": "CED_NAME13", + "aliases": ["ced_name_2013"], + "description": "Commonwealth electoral districts (2013 ABS approximations)", + "regionIdsFile": "data/regionids/region_map-FID_CED_2013_AUST_CED_NAME13.json", + "serverType": "MVT", + "serverSubdomains": [], + "serverMinZoom": 0, + "serverMaxNativeZoom": 12, + "serverMaxZoom": 28, + "bbox": [ + 96.81694140799998, -43.740509602999985, 159.10921900799997, + -9.142175976999999 + ], + "nameProp": "CED_NAME13" + }, + "CED_CODE_2011": { + "layerName": "FID_CED_2011_AUST", + "server": "https://vector-tiles.terria.io/FID_CED_2011_AUST/{z}/{x}/{y}.pbf", + "analyticsWmsLayerName": "region_map:FID_CED_2011_AUST", + "analyticsWmsServer": "http://geoserver.nationalmap.nicta.com.au/region_map/ows", + "regionProp": "CED_CODE", + "aliases": ["ced_code_2011"], + "digits": 3, + "description": "Commonwealth electoral districts (ABS approximations)", + "disabledregionIdsFile": "data/regionids/region_map-FID_CED_2011_AUST_CED_CODE.json", + "serverType": "MVT", + "serverSubdomains": [], + "serverMinZoom": 0, + "serverMaxNativeZoom": 12, + "serverMaxZoom": 28, + "bbox": [ + 96.81694140799998, -43.740509602999985, 159.10921900799997, + -9.142175976999999 + ], + "nameProp": "CED_NAME", + "regionIdsFile": "data/regionids/region_map-FID_CED_2011_AUST_CED_CODE.json" + }, + "CED_NAME_2011": { + "layerName": "FID_CED_2011_AUST", + "server": "https://vector-tiles.terria.io/FID_CED_2011_AUST/{z}/{x}/{y}.pbf", + "analyticsWmsLayerName": "region_map:FID_CED_2011_AUST", + "analyticsWmsServer": "http://geoserver.nationalmap.nicta.com.au/region_map/ows", + "regionProp": "CED_NAME", + "aliases": ["ced_name_2011"], + "description": "Commonwealth electoral districts (ABS approximations)", + "regionIdsFile": "data/regionids/region_map-FID_CED_2011_AUST_CED_NAME.json", + "serverType": "MVT", + "serverSubdomains": [], + "serverMinZoom": 0, + "serverMaxNativeZoom": 12, + "serverMaxZoom": 28, + "bbox": [ + 96.81694140799998, -43.740509602999985, 159.10921900799997, + -9.142175976999999 + ], + "nameProp": "CED_NAME" + }, + "COM_ELB_ID_2016": { + "layerName": "FID_COM20160509_ELB", + "server": "https://vector-tiles.terria.io/FID_COM20160509_ELB/{z}/{x}/{y}.pbf", + "analyticsWmsLayerName": "region_map:FID_COM20160509_ELB", + "analyticsWmsServer": "http://geoserver.nationalmap.nicta.com.au/region_map/ows", + "regionProp": "DIV_ID", + "aliases": ["divisionid", "com_elb_id_2016", "com_elb_id", "com_elb"], + "digits": 3, + "description": "Commonwealth electoral districts (Australian Electoral Commission)", + "regionIdsFile": "data/regionids/region_map-FID_COM20160509_ELB_DIV_ID.json", + "serverType": "MVT", + "serverSubdomains": [], + "serverMinZoom": 0, + "serverMaxNativeZoom": 12, + "serverMaxZoom": 28, + "bbox": [ + 96.81676599999997, -43.740509999999986, 159.1092189999999, + -9.142175999999996 + ], + "nameProp": "SORTNAME" + }, + "COM_ELB_NAME_2016": { + "layerName": "FID_COM20160509_ELB", + "server": "https://vector-tiles.terria.io/FID_COM20160509_ELB/{z}/{x}/{y}.pbf", + "analyticsWmsLayerName": "region_map:FID_COM20160509_ELB", + "analyticsWmsServer": "http://geoserver.nationalmap.nicta.com.au/region_map/ows", + "regionProp": "ELECT_DIV", + "textCodes": true, + "aliases": ["divisionnm", "com_elb_name_2016", "com_elb_name"], + "description": "Commonwealth electoral districts (Australian Electoral Commission)", + "regionIdsFile": "data/regionids/region_map-FID_COM20160509_ELB_ELECT_DIV.json", + "serverType": "MVT", + "serverSubdomains": [], + "serverMinZoom": 0, + "serverMaxNativeZoom": 12, + "serverMaxZoom": 28, + "bbox": [ + 96.81676599999997, -43.740509999999986, 159.1092189999999, + -9.142175999999996 + ], + "nameProp": "SORTNAME" + }, + "COM_ELB_NAME_2011": { + "layerName": "FID_COM20111216_ELB_region", + "server": "https://vector-tiles.terria.io/FID_COM20111216_ELB_region/{z}/{x}/{y}.pbf", + "analyticsWmsLayerName": "region_map:FID_COM20111216_ELB_region", + "analyticsWmsServer": "http://geoserver.nationalmap.nicta.com.au/region_map/ows", + "regionProp": "ELECT_DIV", + "textCodes": true, + "aliases": ["com_elb_name_2011"], + "description": "Commonwealth electoral districts (Australian Electoral Commission)", + "regionIdsFile": "data/regionids/region_map-FID_COM20111216_ELB_region_ELECT_DIV.json", + "serverType": "MVT", + "serverSubdomains": [], + "serverMinZoom": 0, + "serverMaxNativeZoom": 12, + "serverMaxZoom": 28, + "bbox": [ + 96.81676599999999, -43.74050999999999, 159.10921899999994, + -9.142175999999997 + ], + "nameProp": "SORTNAME" + }, + "COM_ELB_ID_2013": { + "layerName": "CommonwealthElectoralDivision_2013", + "server": "https://vector-tiles.terria.io/CommonwealthElectoralDivision_2013/{z}/{x}/{y}.pbf", + "serverType": "MVT", + "serverMaxNativeZoom": 12, + "serverMaxZoom": 28, + "bbox": [96.816766, -43.74051, 159.109219, -9.142176], + "uniqueIdProp": "FID", + "regionProp": "ced_code_2013", + "nameProp": "ced_name_2013", + "aliases": ["com_elb_id_2013"], + "description": "Commonwealth electoral districts for 2013 election (Australian Electoral Commission)", + "regionIdsFile": "data/regionids/region_map-CommonwealthElectoralDivision_2013_ced_code_2013.json" + }, + "COM_ELB_NAME_2013": { + "layerName": "CommonwealthElectoralDivision_2013", + "server": "https://vector-tiles.terria.io/CommonwealthElectoralDivision_2013/{z}/{x}/{y}.pbf", + "serverType": "MVT", + "serverMaxNativeZoom": 12, + "serverMaxZoom": 28, + "bbox": [96.816766, -43.74051, 159.109219, -9.142176], + "uniqueIdProp": "FID", + "regionProp": "ced_name_2013", + "nameProp": "ced_name_2013", + "aliases": ["com_elb_name_2013"], + "description": "Commonwealth electoral districts for 2013 election (Australian Electoral Commission)", + "regionIdsFile": "data/regionids/region_map-CommonwealthElectoralDivision_2013_ced_name_2013.json" + }, + "COM_ELB_ID_2010": { + "layerName": "CommonwealthElectoralDivision_2010", + "server": "https://vector-tiles.terria.io/CommonwealthElectoralDivision_2010/{z}/{x}/{y}.pbf", + "serverType": "MVT", + "serverMaxNativeZoom": 12, + "serverMaxZoom": 28, + "bbox": [96.816766, -43.74051, 159.109219, -9.142176], + "uniqueIdProp": "FID", + "regionProp": "ced_code_2010", + "nameProp": "ced_name_2010", + "aliases": ["com_elb_id_2010"], + "description": "Commonwealth electoral districts for 2010 election (Australian Electoral Commission)", + "regionIdsFile": "data/regionids/region_map-CommonwealthElectoralDivision_2010_ced_code_2010.json" + }, + "COM_ELB_NAME_2010": { + "layerName": "CommonwealthElectoralDivision_2010", + "server": "https://vector-tiles.terria.io/CommonwealthElectoralDivision_2010/{z}/{x}/{y}.pbf", + "serverType": "MVT", + "serverMaxNativeZoom": 12, + "serverMaxZoom": 28, + "bbox": [96.816766, -43.74051, 159.109219, -9.142176], + "uniqueIdProp": "FID", + "regionProp": "ced_name_2010", + "nameProp": "ced_name_2010", + "aliases": ["com_elb_name_2010"], + "description": "Commonwealth electoral districts for 2010 election (Australian Electoral Commission)", + "regionIdsFile": "data/regionids/region_map-CommonwealthElectoralDivision_2010_ced_name_2010.json" + }, + "COM_ELB_ID_2007": { + "layerName": "CommonwealthElectoralDivision_2007", + "server": "https://vector-tiles.terria.io/CommonwealthElectoralDivision_2007/{z}/{x}/{y}.pbf", + "serverType": "MVT", + "serverMaxNativeZoom": 12, + "serverMaxZoom": 28, + "bbox": [96.817997, -43.74051, 159.105442, -9.142186], + "uniqueIdProp": "FID", + "regionProp": "ced_code_2007", + "nameProp": "ced_name_2007", + "aliases": ["com_elb_id_2007"], + "description": "Commonwealth electoral districts for 2007 election (Australian Electoral Commission)", + "regionIdsFile": "data/regionids/region_map-CommonwealthElectoralDivision_2007_ced_code_2007.json" + }, + "COM_ELB_NAME_2007": { + "layerName": "CommonwealthElectoralDivision_2007", + "server": "https://vector-tiles.terria.io/CommonwealthElectoralDivision_2007/{z}/{x}/{y}.pbf", + "serverType": "MVT", + "serverMaxNativeZoom": 12, + "serverMaxZoom": 28, + "bbox": [96.817997, -43.74051, 159.105442, -9.142186], + "uniqueIdProp": "FID", + "regionProp": "ced_name_2007", + "nameProp": "ced_name_2007", + "aliases": ["com_elb_name_2007"], + "description": "Commonwealth electoral districts for 2007 election (Australian Electoral Commission)", + "regionIdsFile": "data/regionids/region_map-CommonwealthElectoralDivision_2007_ced_name_2007.json" + }, + "SED": { + "layerName": "FID_SED_2011_AUST", + "server": "https://vector-tiles.terria.io/FID_SED_2011_AUST/{z}/{x}/{y}.pbf", + "analyticsWmsLayerName": "region_map:FID_SED_2011_AUST", + "analyticsWmsServer": "http://geoserver.nationalmap.nicta.com.au/region_map/ows", + "regionProp": "SED_CODE", + "aliases": ["sed_code_2011", "sed_code", "sed"], + "digits": 5, + "description": "State electoral districts (ABS approximations)", + "regionIdsFile": "data/regionids/region_map-FID_SED_2011_AUST_SED_CODE.json", + "serverType": "MVT", + "serverSubdomains": [], + "serverMinZoom": 0, + "serverMaxNativeZoom": 12, + "serverMaxZoom": 28, + "bbox": [ + 112.92111395199997, -43.740509602999985, 159.10921900799997, + -9.142175976999999 + ], + "nameProp": "SED_NAME" + }, + "SED_NAME": { + "layerName": "FID_SED_2011_AUST", + "server": "https://vector-tiles.terria.io/FID_SED_2011_AUST/{z}/{x}/{y}.pbf", + "analyticsWmsLayerName": "region_map:FID_SED_2011_AUST", + "analyticsWmsServer": "http://geoserver.nationalmap.nicta.com.au/region_map/ows", + "regionProp": "SED_NAME", + "aliases": ["sed_name_2011", "sed_name"], + "description": "State electoral districts (ABS approximations)", + "regionIdsFile": "data/regionids/region_map-FID_SED_2011_AUST_SED_NAME.json", + "serverType": "MVT", + "serverSubdomains": [], + "serverMinZoom": 0, + "serverMaxNativeZoom": 12, + "serverMaxZoom": 28, + "bbox": [ + 112.92111395199997, -43.740509602999985, 159.10921900799997, + -9.142175976999999 + ], + "nameProp": "SED_NAME" + }, + "GCCSA_2011": { + "layerName": "FID_GCCSA_2011_AUST", + "server": "https://vector-tiles.terria.io/FID_GCCSA_2011_AUST/{z}/{x}/{y}.pbf", + "analyticsWmsLayerName": "region_map:FID_GCCSA_2011_AUST", + "analyticsWmsServer": "http://geoserver.nationalmap.nicta.com.au/region_map/ows", + "regionProp": "GCC_CODE11", + "aliases": ["gccsa_code_2011"], + "digits": 5, + "description": "Greater capital city statistical areas", + "regionIdsFile": "data/regionids/region_map-FID_GCCSA_2011_AUST_GCC_CODE11.json", + "serverType": "MVT", + "serverSubdomains": [], + "serverMinZoom": 0, + "serverMaxNativeZoom": 12, + "serverMaxZoom": 28, + "bbox": [ + 96.81694140799998, -43.74050960300003, 159.10921900799997, + -9.142175976999999 + ], + "nameProp": "GCC_NAME11" + }, + "GCCSA_NAME_2011": { + "layerName": "FID_GCCSA_2011_AUST", + "server": "https://vector-tiles.terria.io/FID_GCCSA_2011_AUST/{z}/{x}/{y}.pbf", + "analyticsWmsLayerName": "region_map:FID_GCCSA_2011_AUST", + "analyticsWmsServer": "http://geoserver.nationalmap.nicta.com.au/region_map/ows", + "regionProp": "GCC_NAME11", + "aliases": ["gccsa_name_2011"], + "description": "Greater capital city statistical areas", + "regionIdsFile": "data/regionids/region_map-FID_GCCSA_2011_AUST_GCC_NAME11.json", + "serverType": "MVT", + "serverSubdomains": [], + "serverMinZoom": 0, + "serverMaxNativeZoom": 12, + "serverMaxZoom": 28, + "bbox": [ + 96.81694140799998, -43.74050960300003, 159.10921900799997, + -9.142175976999999 + ], + "nameProp": "GCC_NAME11" + }, + "GCCSA_2016": { + "layerName": "GCCSA_2016_AUST", + "server": "https://vector-tiles.terria.io/GCCSA_2016_AUST/{z}/{x}/{y}.pbf", + "serverType": "MVT", + "serverSubdomains": [], + "serverMinZoom": 0, + "serverMaxNativeZoom": 12, + "serverMaxZoom": 28, + "bbox": [ + 96.81694139400007, -43.74050960299996, 167.99803499600006, + -9.142175976999962 + ], + "regionProp": "GCC_CODE16", + "aliases": ["gccsa", "gccsa_code", "gccsa_code_2016"], + "nameProp": "GCC_NAME16", + "description": "Greater capital city statistical areas 2016 (ABS)", + "regionIdsFile": "data/regionids/region_map-GCCSA_2016_AUST_GCC_CODE16.json" + }, + "GCCSA_NAME_2016": { + "layerName": "GCCSA_2016_AUST", + "server": "https://vector-tiles.terria.io/GCCSA_2016_AUST/{z}/{x}/{y}.pbf", + "serverType": "MVT", + "serverSubdomains": [], + "serverMinZoom": 0, + "serverMaxNativeZoom": 12, + "serverMaxZoom": 28, + "bbox": [ + 96.81694139400007, -43.74050960299996, 167.99803499600006, + -9.142175976999962 + ], + "regionProp": "GCC_NAME16", + "aliases": ["gccsa_name", "gccsa_name_2016"], + "nameProp": "GCC_NAME16", + "description": "Greater capital city statistical areas 2016 (ABS)", + "regionIdsFile": "data/regionids/region_map-GCCSA_2016_AUST_GCC_NAME16.json" + }, + "SUA": { + "layerName": "FID_SUA_2011_AUST", + "server": "https://vector-tiles.terria.io/FID_SUA_2011_AUST/{z}/{x}/{y}.pbf", + "analyticsWmsLayerName": "region_map:FID_SUA_2011_AUST", + "analyticsWmsServer": "http://geoserver.nationalmap.nicta.com.au/region_map/ows", + "regionProp": "SUA_CODE11", + "aliases": ["sua_code_2011", "sua_code", "sua"], + "digits": 4, + "description": "Significant urban areas", + "regionIdsFile": "data/regionids/region_map-FID_SUA_2011_AUST_SUA_CODE11.json", + "serverType": "MVT", + "serverSubdomains": [], + "serverMinZoom": 0, + "serverMaxNativeZoom": 12, + "serverMaxZoom": 28, + "bbox": [ + 96.81694140799998, -43.740509602999985, 159.10921900799997, + -9.142175976999999 + ], + "nameProp": "SUA_NAME11" + }, + "SUA_NAME": { + "layerName": "FID_SUA_2011_AUST", + "server": "https://vector-tiles.terria.io/FID_SUA_2011_AUST/{z}/{x}/{y}.pbf", + "analyticsWmsLayerName": "region_map:FID_SUA_2011_AUST", + "analyticsWmsServer": "http://geoserver.nationalmap.nicta.com.au/region_map/ows", + "regionProp": "SUA_NAME11", + "aliases": ["sua_name_2011", "sua_name"], + "description": "Significant urban areas", + "serverReplacements": [["[^A-Za-z]", ""]], + "dataReplacements": [["[^A-Za-z]", ""]], + "regionIdsFile": "data/regionids/region_map-FID_SUA_2011_AUST_SUA_NAME11.json", + "serverType": "MVT", + "serverSubdomains": [], + "serverMinZoom": 0, + "serverMaxNativeZoom": 12, + "serverMaxZoom": 28, + "bbox": [ + 96.81694140799998, -43.740509602999985, 159.10921900799997, + -9.142175976999999 + ], + "nameProp": "SUA_NAME11" + }, + "STE_2011": { + "layerName": "FID_STE_2011_AUST", + "server": "https://vector-tiles.terria.io/FID_STE_2011_AUST/{z}/{x}/{y}.pbf", + "analyticsWmsLayerName": "region_map:FID_STE_2011_AUST", + "analyticsWmsServer": "http://geoserver.nationalmap.nicta.com.au/region_map/ows", + "regionProp": "STE_CODE11", + "aliases": ["ste_code_2011"], + "digits": 1, + "regionIdsFile": "data/regionids/region_map-FID_STE_2011_AUST_STE_CODE11.json", + "serverType": "MVT", + "serverSubdomains": [], + "serverMinZoom": 0, + "serverMaxNativeZoom": 12, + "serverMaxZoom": 28, + "bbox": [ + 96.81694140799998, -43.74050960300003, 159.10921900799997, + -9.142175976999999 + ], + "nameProp": "STE_NAME11" + }, + "STE_2016": { + "layerName": "STE_2016_AUST", + "server": "https://vector-tiles.terria.io/STE_2016_AUST/{z}/{x}/{y}.pbf", + "serverType": "MVT", + "serverSubdomains": [], + "serverMinZoom": 0, + "serverMaxNativeZoom": 12, + "serverMaxZoom": 28, + "bbox": [ + 96.81694139400007, -43.74050960299996, 167.99803499600006, + -9.142175976999962 + ], + "regionProp": "STE_CODE16", + "aliases": ["ste", "ste_code", "ste_code_2016"], + "nameProp": "STE_NAME16", + "description": "States and Territories 2016 (ABS)", + "regionIdsFile": "data/regionids/region_map-STE_2016_AUST_STE_CODE16.json" + }, + "SOS": { + "layerName": "FID_SOS_2011_AUST", + "server": "https://vector-tiles.terria.io/FID_SOS_2011_AUST/{z}/{x}/{y}.pbf", + "analyticsWmsLayerName": "region_map:FID_SOS_2011_AUST", + "analyticsWmsServer": "http://geoserver.nationalmap.nicta.com.au/region_map/ows", + "regionProp": "SOS_CODE11", + "aliases": ["sos_code_2011", "sos_code", "sos"], + "digits": 2, + "description": "Section of state", + "regionIdsFile": "data/regionids/region_map-FID_SOS_2011_AUST_SOS_CODE11.json", + "serverType": "MVT", + "serverSubdomains": [], + "serverMinZoom": 0, + "serverMaxNativeZoom": 12, + "serverMaxZoom": 28, + "bbox": [ + 96.81694140799998, -43.740509602999985, 159.10921900799997, + -9.142175976999999 + ], + "nameProp": "SOS_NAME11" + }, + "SOSR": { + "layerName": "FID_SOSR_2011_AUST", + "server": "https://vector-tiles.terria.io/FID_SOSR_2011_AUST/{z}/{x}/{y}.pbf", + "analyticsWmsLayerName": "region_map:FID_SOSR_2011_AUST", + "analyticsWmsServer": "http://geoserver.nationalmap.nicta.com.au/region_map/ows", + "regionProp": "SSR_CODE11", + "aliases": ["sosr_code_2011", "sosr_code", "sosr"], + "digits": 3, + "description": "Section of state range", + "regionIdsFile": "data/regionids/region_map-FID_SOSR_2011_AUST_SSR_CODE11.json", + "serverType": "MVT", + "serverSubdomains": [], + "serverMinZoom": 0, + "serverMaxNativeZoom": 12, + "serverMaxZoom": 28, + "bbox": [ + 96.81694140799998, -43.740509602999985, 159.10921900799997, + -9.142175976999999 + ], + "nameProp": "SSR_NAME11" + }, + "UCL": { + "layerName": "FID_UCL_2011_AUST", + "server": "https://vector-tiles.terria.io/FID_UCL_2011_AUST/{z}/{x}/{y}.pbf", + "analyticsWmsLayerName": "region_map:FID_UCL_2011_AUST", + "analyticsWmsServer": "http://geoserver.nationalmap.nicta.com.au/region_map/ows", + "regionProp": "UCL_CODE11", + "aliases": ["ucl_code_2011", "ucl_code", "ucl"], + "digits": 6, + "description": "Urban centres and localities", + "regionIdsFile": "data/regionids/region_map-FID_UCL_2011_AUST_UCL_CODE11.json", + "serverType": "MVT", + "serverSubdomains": [], + "serverMinZoom": 0, + "serverMaxNativeZoom": 12, + "serverMaxZoom": 28, + "bbox": [ + 96.81694140799998, -43.740509602999985, 159.10921900799997, + -9.142175976999999 + ], + "nameProp": "UCL_NAME11" + }, + "IREG": { + "layerName": "FID_IREG_2011_AUST", + "server": "https://vector-tiles.terria.io/FID_IREG_2011_AUST/{z}/{x}/{y}.pbf", + "analyticsWmsLayerName": "region_map:FID_IREG_2011_AUST", + "analyticsWmsServer": "http://geoserver.nationalmap.nicta.com.au/region_map/ows", + "regionProp": "IR_CODE11", + "aliases": ["ireg_code_2011", "ireg_code", "ireg"], + "digits": 3, + "description": "Indigenous regions", + "regionIdsFile": "data/regionids/region_map-FID_IREG_2011_AUST_IR_CODE11.json", + "serverType": "MVT", + "serverSubdomains": [], + "serverMinZoom": 0, + "serverMaxNativeZoom": 12, + "serverMaxZoom": 28, + "bbox": [ + 96.81694140799998, -43.740509602999985, 159.10921900799997, + -9.142175976999999 + ], + "nameProp": "IR_NAME11" + }, + "ILOC": { + "layerName": "FID_ILOC_2011_AUST", + "server": "https://vector-tiles.terria.io/FID_ILOC_2011_AUST/{z}/{x}/{y}.pbf", + "analyticsWmsLayerName": "region_map:FID_ILOC_2011_AUST", + "analyticsWmsServer": "http://geoserver.nationalmap.nicta.com.au/region_map/ows", + "regionProp": "IL_CODE11", + "aliases": ["iloc_code_2011", "iloc_code", "iloc"], + "digits": 8, + "description": "Indigenous locations", + "regionIdsFile": "data/regionids/region_map-FID_ILOC_2011_AUST_IL_CODE11.json", + "serverType": "MVT", + "serverSubdomains": [], + "serverMinZoom": 0, + "serverMaxNativeZoom": 12, + "serverMaxZoom": 28, + "bbox": [ + 96.81694140799998, -43.740509602999985, 159.10921900799997, + -9.142175976999999 + ], + "nameProp": "IL_NAME11" + }, + "IARE": { + "layerName": "FID_IARE_2011_AUST", + "server": "https://vector-tiles.terria.io/FID_IARE_2011_AUST/{z}/{x}/{y}.pbf", + "analyticsWmsLayerName": "region_map:FID_IARE_2011_AUST", + "analyticsWmsServer": "http://geoserver.nationalmap.nicta.com.au/region_map/ows", + "regionProp": "IA_CODE11", + "aliases": ["iare_code_2011", "iare_code", "iare"], + "digits": 6, + "description": "Indigenous areas", + "regionIdsFile": "data/regionids/region_map-FID_IARE_2011_AUST_IA_CODE11.json", + "serverType": "MVT", + "serverSubdomains": [], + "serverMinZoom": 0, + "serverMaxNativeZoom": 12, + "serverMaxZoom": 28, + "bbox": [ + 96.81694140799998, -43.740509602999985, 159.10921900799997, + -9.142175976999999 + ], + "nameProp": "IA_NAME11" + }, + "RA": { + "layerName": "FID_RA_2011_AUST", + "server": "https://vector-tiles.terria.io/FID_RA_2011_AUST/{z}/{x}/{y}.pbf", + "analyticsWmsLayerName": "region_map:FID_RA_2011_AUST", + "analyticsWmsServer": "http://geoserver.nationalmap.nicta.com.au/region_map/ows", + "regionProp": "RA_CODE11", + "aliases": ["ra_code_2011", "ra_code", "ra"], + "digits": 2, + "description": "Remoteness areas", + "regionIdsFile": "data/regionids/region_map-FID_RA_2011_AUST_RA_CODE11.json", + "serverType": "MVT", + "serverSubdomains": [], + "serverMinZoom": 0, + "serverMaxNativeZoom": 12, + "serverMaxZoom": 28, + "bbox": [ + 96.81694140799998, -43.740509602999985, 159.10921900799997, + -9.142175976999999 + ], + "nameProp": "RA_NAME11" + }, + "TR": { + "layerName": "FID_TR_2015_AUST", + "server": "https://vector-tiles.terria.io/FID_TR_2015_AUST/{z}/{x}/{y}.pbf", + "analyticsWmsLayerName": "region_map:FID_TR_2015_AUST", + "analyticsWmsServer": "http://geoserver.nationalmap.nicta.com.au/region_map/ows", + "regionProp": "TR_CODE15", + "aliases": ["tr_code_2015", "tr_code", "tr"], + "digits": 5, + "description": "Tourism regions", + "regionIdsFile": "data/regionids/region_map-FID_TR_2015_AUST_TR_CODE15.json", + "serverType": "MVT", + "serverSubdomains": [], + "serverMinZoom": 0, + "serverMaxNativeZoom": 12, + "serverMaxZoom": 28, + "bbox": [ + 112.92111395199997, -43.740509602999985, 159.10921900799997, + -9.142175976999999 + ], + "nameProp": "TR_NAME15" + }, + "TR_2013": { + "layerName": "FID_TR_2013_AUST", + "server": "https://vector-tiles.terria.io/FID_TR_2013_AUST/{z}/{x}/{y}.pbf", + "analyticsWmsLayerName": "region_map:FID_TR_2013_AUST", + "analyticsWmsServer": "http://geoserver.nationalmap.nicta.com.au/region_map/ows", + "regionProp": "TR_CODE13", + "aliases": ["tr_code_2013", "tr_2013"], + "digits": 5, + "description": "Tourism regions", + "regionIdsFile": "data/regionids/region_map-FID_TR_2013_AUST_TR_CODE13.json", + "serverType": "MVT", + "serverSubdomains": [], + "serverMinZoom": 0, + "serverMaxNativeZoom": 12, + "serverMaxZoom": 28, + "bbox": [ + 112.92111395199997, -43.740509602999985, 159.10921900799997, + -9.142175976999999 + ], + "nameProp": "TR_NAME13" + }, + "NRMR": { + "layerName": "FID_NRMR_2011_AUST", + "server": "https://vector-tiles.terria.io/FID_NRMR_2011_AUST/{z}/{x}/{y}.pbf", + "analyticsWmsLayerName": "region_map:FID_NRMR_2011_AUST", + "analyticsWmsServer": "http://geoserver.nationalmap.nicta.com.au/region_map/ows", + "regionProp": "NRMR_CODE", + "aliases": ["nrmr", "nrmr_code", "nrmr_code_2011"], + "digits": 3, + "description": "Natural resource management regions", + "regionIdsFile": "data/regionids/region_map-FID_NRMR_2011_AUST_NRMR_CODE.json", + "serverType": "MVT", + "serverSubdomains": [], + "serverMinZoom": 0, + "serverMaxNativeZoom": 12, + "serverMaxZoom": 28, + "bbox": [ + 96.81694140799995, -43.74050960299998, 159.10921900799994, + -9.142175976999997 + ], + "nameProp": "NRMR_NAME" + }, + "NRMR_NAME": { + "layerName": "FID_NRMR_2011_AUST", + "server": "https://vector-tiles.terria.io/FID_NRMR_2011_AUST/{z}/{x}/{y}.pbf", + "analyticsWmsLayerName": "region_map:FID_NRMR_2011_AUST", + "analyticsWmsServer": "http://geoserver.nationalmap.nicta.com.au/region_map/ows", + "regionProp": "NRMR_NAME", + "aliases": ["nrmr_name"], + "description": "Natural resource management regions", + "regionIdsFile": "data/regionids/region_map-FID_NRMR_2011_AUST_NRMR_NAME.json", + "serverType": "MVT", + "serverSubdomains": [], + "serverMinZoom": 0, + "serverMaxNativeZoom": 12, + "serverMaxZoom": 28, + "bbox": [ + 96.81694140799995, -43.74050960299998, 159.10921900799994, + -9.142175976999997 + ], + "nameProp": "NRMR_NAME" + }, + "ADD": { + "layerName": "FID_ADD_2011_AUST", + "server": "https://vector-tiles.terria.io/FID_ADD_2011_AUST/{z}/{x}/{y}.pbf", + "analyticsWmsLayerName": "region_map:FID_ADD_2011_AUST", + "analyticsWmsServer": "http://geoserver.nationalmap.nicta.com.au/region_map/ows", + "regionProp": "ADD_CODE", + "aliases": ["add", "add_code", "add_code_2011"], + "digits": 3, + "description": "Australian drainage divisions", + "regionIdsFile": "data/regionids/region_map-FID_ADD_2011_AUST_ADD_CODE.json", + "serverType": "MVT", + "serverSubdomains": [], + "serverMinZoom": 0, + "serverMaxNativeZoom": 12, + "serverMaxZoom": 28, + "bbox": [ + 112.92111395199994, -43.74050960299998, 159.10921900799994, + -9.142175976999997 + ], + "nameProp": "ADD_NAME" + }, + "ADD_NAME": { + "layerName": "FID_ADD_2011_AUST", + "server": "https://vector-tiles.terria.io/FID_ADD_2011_AUST/{z}/{x}/{y}.pbf", + "analyticsWmsLayerName": "region_map:FID_ADD_2011_AUST", + "analyticsWmsServer": "http://geoserver.nationalmap.nicta.com.au/region_map/ows", + "regionProp": "ADD_NAME", + "aliases": ["add_name"], + "description": "Australian drainage divisions", + "regionIdsFile": "data/regionids/region_map-FID_ADD_2011_AUST_ADD_NAME.json", + "serverType": "MVT", + "serverSubdomains": [], + "serverMinZoom": 0, + "serverMaxNativeZoom": 12, + "serverMaxZoom": 28, + "bbox": [ + 112.92111395199994, -43.74050960299998, 159.10921900799994, + -9.142175976999997 + ], + "nameProp": "ADD_NAME" + }, + "ADD_2016": { + "layerName": "ADD_2016_AUST", + "server": "https://vector-tiles.terria.io/ADD_2016_AUST/{z}/{x}/{y}.pbf", + "serverType": "MVT", + "serverSubdomains": [], + "serverMinZoom": 0, + "serverMaxNativeZoom": 12, + "serverMaxZoom": 28, + "bbox": [ + 96.81694139400007, -43.74050960299996, 167.99803499600006, + -9.142175976999962 + ], + "regionProp": "ADD_CODE16", + "aliases": ["add_code_2016", "add_code", "add"], + "nameProp": "ADD_NAME16", + "description": "Australian drainage divisions (2016)", + "regionIdsFile": "data/regionids/region_map-ADD_2016_AUST_ADD_CODE16.json" + }, + "ADD_NAME_2016": { + "layerName": "ADD_2016_AUST", + "server": "https://vector-tiles.terria.io/ADD_2016_AUST/{z}/{x}/{y}.pbf", + "serverType": "MVT", + "serverSubdomains": [], + "serverMinZoom": 0, + "serverMaxNativeZoom": 12, + "serverMaxZoom": 28, + "bbox": [ + 96.81694139400007, -43.74050960299996, 167.99803499600006, + -9.142175976999962 + ], + "regionProp": "ADD_NAME16", + "aliases": ["add_name_2016", "add_name"], + "nameProp": "ADD_NAME16", + "description": "Australian drainage divisions (2016)", + "regionIdsFile": "data/regionids/region_map-ADD_2016_AUST_ADD_NAME16.json" + }, + "PHN": { + "layerName": "FID_PHN_boundaries_AUS_Sep2015_V5", + "server": "https://vector-tiles.terria.io/FID_PHN_boundaries_AUS_Sep2015_V5/{z}/{x}/{y}.pbf", + "analyticsWmsLayerName": "region_map:FID_PHN_boundaries_AUS_Sep2015_V5", + "analyticsWmsServer": "http://geoserver.nationalmap.nicta.com.au/region_map/ows", + "regionProp": "PHN_Code", + "aliases": ["phn_code_2015", "phn_code", "phn"], + "digits": 6, + "description": "Primary health networks", + "regionIdsFile": "data/regionids/region_map-FID_PHN_boundaries_AUS_Sep2015_V5_PHN_Code.json", + "serverType": "MVT", + "serverSubdomains": [], + "serverMinZoom": 0, + "serverMaxNativeZoom": 12, + "serverMaxZoom": 28, + "bbox": [ + 96.81694140800003, -43.74050960299996, 159.10921900800005, + -9.142175976999962 + ], + "nameProp": "PHN_Name" + }, + "STE_NAME_2011": { + "layerName": "FID_STE_2011_AUST", + "server": "https://vector-tiles.terria.io/FID_STE_2011_AUST/{z}/{x}/{y}.pbf", + "analyticsWmsLayerName": "region_map:FID_STE_2011_AUST", + "analyticsWmsServer": "http://geoserver.nationalmap.nicta.com.au/region_map/ows", + "regionProp": "STE_NAME11", + "aliases": ["ste_name_2011"], + "dataReplacements": [ + ["^Vic[.]?$", "Victoria"], + ["^N[ .]?S[ .]?W[ .]?$", "New South Wales"], + ["^S[ .]?A[ .]?$", "South Australia"], + ["^N[ .]?T[ .]?$", "Northern Territory"], + ["^W[ .]?A[ .]?$", "Western Australia"], + ["^Tas[.]?$", "Tasmania"], + ["^Q[ .]?L[ .]?D[ .]?$", "Queensland"], + ["^A[ .]?C[ .]?T[ .]?$", "Australian Capital Territory"], + ["^1$", "New South Wales"], + ["^2$", "Victoria"], + ["^3$", "Queensland"], + ["^4$", "South Australia"], + ["^5$", "Western Australia"], + ["^6$", "Northern Territory"], + ["^7$", "Australian Capital Territory"], + ["^8$", "Other Territories"] + ], + "regionIdsFile": "data/regionids/region_map-FID_STE_2011_AUST_STE_NAME11.json", + "serverType": "MVT", + "serverSubdomains": [], + "serverMinZoom": 0, + "serverMaxNativeZoom": 12, + "serverMaxZoom": 28, + "bbox": [ + 96.81694140799998, -43.74050960300003, 159.10921900799997, + -9.142175976999999 + ], + "nameProp": "STE_NAME11" + }, + "STE_NAME_2016": { + "layerName": "STE_2016_AUST", + "server": "https://vector-tiles.terria.io/STE_2016_AUST/{z}/{x}/{y}.pbf", + "serverType": "MVT", + "serverSubdomains": [], + "serverMinZoom": 0, + "serverMaxNativeZoom": 12, + "serverMaxZoom": 28, + "bbox": [ + 96.81694139400007, -43.74050960299996, 167.99803499600006, + -9.142175976999962 + ], + "regionProp": "STE_NAME16", + "aliases": ["state", "ste_name", "ste_name_2016"], + "nameProp": "STE_NAME16", + "description": "States and Territories 2016 (ABS)", + "dataReplacements": [ + ["^Vic[.]?$", "Victoria"], + ["^N[ .]?S[ .]?W[ .]?$", "New South Wales"], + ["^S[ .]?A[ .]?$", "South Australia"], + ["^N[ .]?T[ .]?$", "Northern Territory"], + ["^W[ .]?A[ .]?$", "Western Australia"], + ["^Tas[.]?$", "Tasmania"], + ["^Q[ .]?L[ .]?D[ .]?$", "Queensland"], + ["^A[ .]?C[ .]?T[ .]?$", "Australian Capital Territory"], + ["^1$", "New South Wales"], + ["^2$", "Victoria"], + ["^3$", "Queensland"], + ["^4$", "South Australia"], + ["^5$", "Western Australia"], + ["^6$", "Northern Territory"], + ["^7$", "Australian Capital Territory"], + ["^8$", "Other Territories"] + ], + "regionIdsFile": "data/regionids/region_map-STE_2016_AUST_STE_NAME16.json" + }, + "SLA": { + "layerName": "fid_asgc06_sla", + "server": "https://vector-tiles.terria.io/fid_asgc06_sla/{z}/{x}/{y}.pbf", + "analyticsWmsLayerName": "region_map:fid_asgc06_sla", + "analyticsWmsServer": "http://geoserver.nationalmap.nicta.com.au/region_map/ows", + "regionProp": "SLA_CODE06", + "nameProp": "SLA_NAME06", + "aliases": [ + "sla_code_2006", + "sla_code", + "sla_9digitcode_2006", + "sla_9digitcode", + "sla" + ], + "digits": 9, + "description": "Statistical Local Areas (obsolete)", + "serverType": "MVT", + "serverSubdomains": [], + "serverMinZoom": 0, + "serverMaxNativeZoom": 12, + "serverMaxZoom": 28, + "bbox": [ + 96.81676569599999, -43.740509602999985, 159.10921900799997, + -9.142175976999999 + ], + "regionIdsFile": "data/regionids/region_map-fid_asgc06_sla_SLA_CODE06.json" + }, + "SLA_5DIGITCODE": { + "layerName": "fid_asgc06_sla", + "server": "https://vector-tiles.terria.io/fid_asgc06_sla/{z}/{x}/{y}.pbf", + "analyticsWmsLayerName": "region_map:fid_asgc06_sla", + "analyticsWmsServer": "http://geoserver.nationalmap.nicta.com.au/region_map/ows", + "regionProp": "SLA_5DIGIT", + "nameProp": "SLA_NAME06", + "aliases": ["sla_5digitcode_2006", "sla_5digitcode"], + "digits": 5, + "description": "Statistical Local Areas (obsolete)", + "serverType": "MVT", + "serverSubdomains": [], + "serverMinZoom": 0, + "serverMaxNativeZoom": 12, + "serverMaxZoom": 28, + "bbox": [ + 96.81676569599999, -43.740509602999985, 159.10921900799997, + -9.142175976999999 + ], + "regionIdsFile": "data/regionids/region_map-fid_asgc06_sla_SLA_5DIGIT.json" + }, + "SLA_NAME": { + "layerName": "fid_asgc06_sla", + "server": "https://vector-tiles.terria.io/fid_asgc06_sla/{z}/{x}/{y}.pbf", + "analyticsWmsLayerName": "region_map:fid_asgc06_sla", + "analyticsWmsServer": "http://geoserver.nationalmap.nicta.com.au/region_map/ows", + "regionProp": "SLA_NAME06", + "nameProp": "SLA_NAME06", + "aliases": ["sla_name_2006", "sla_name"], + "description": "Statistical Local Areas (obsolete)", + "serverType": "MVT", + "serverSubdomains": [], + "serverMinZoom": 0, + "serverMaxNativeZoom": 12, + "serverMaxZoom": 28, + "bbox": [ + 96.81676569599999, -43.740509602999985, 159.10921900799997, + -9.142175976999999 + ], + "regionIdsFile": "data/regionids/region_map-fid_asgc06_sla_SLA_NAME06.json" + }, + "CD": { + "layerName": "fid_asgc06_cd", + "server": "https://vector-tiles.terria.io/fid_asgc06_cd/{z}/{x}/{y}.pbf", + "analyticsWmsLayerName": "region_map:fid_asgc06_cd", + "analyticsWmsServer": "http://geoserver.nationalmap.nicta.com.au/region_map/ows", + "regionProp": "CD_CODE06", + "aliases": ["cd_7digitcode_2006", "cd_code_2006", "cd_code", "cd"], + "digits": 7, + "description": "Census collection district (obsolete)", + "serverType": "MVT", + "serverSubdomains": [], + "serverMinZoom": 0, + "serverMaxNativeZoom": 12, + "serverMaxZoom": 28, + "bbox": [ + 96.76945846399997, -43.740509602999985, 159.10921900799997, + -9.142175976999999 + ], + "nameProp": "CD_CODE06", + "regionIdsFile": "data/regionids/region_map-fid_asgc06_cd_CD_CODE06.json" + }, + "CNT2": { + "layerName": "FID_TM_WORLD_BORDERS", + "server": "https://vector-tiles.terria.io/FID_TM_WORLD_BORDERS/{z}/{x}/{y}.pbf", + "analyticsWmsLayerName": "region_map:FID_TM_WORLD_BORDERS", + "analyticsWmsServer": "http://geoserver.nationalmap.nicta.com.au/region_map/ows", + "regionProp": "ISO2", + "aliases": ["cnt2", "iso2"], + "digits": 2, + "textCodes": true, + "regionIdsFile": "data/regionids/region_map-FID_TM_WORLD_BORDERS_ISO2.json", + "serverType": "MVT", + "serverSubdomains": [], + "serverMinZoom": 0, + "serverMaxNativeZoom": 10, + "serverMaxZoom": 28, + "bbox": [ + -179.99999999999994, -85.05109999999998, 179.99999999999994, + 83.62359600000005 + ], + "nameProp": "NAME" + }, + "CNT3": { + "layerName": "FID_TM_WORLD_BORDERS", + "server": "https://vector-tiles.terria.io/FID_TM_WORLD_BORDERS/{z}/{x}/{y}.pbf", + "analyticsWmsLayerName": "region_map:FID_TM_WORLD_BORDERS", + "analyticsWmsServer": "http://geoserver.nationalmap.nicta.com.au/region_map/ows", + "regionProp": "ISO3", + "aliases": ["cnt3", "iso3"], + "digits": 3, + "textCodes": true, + "regionIdsFile": "data/regionids/region_map-FID_TM_WORLD_BORDERS_ISO3.json", + "serverType": "MVT", + "serverSubdomains": [], + "serverMinZoom": 0, + "serverMaxNativeZoom": 10, + "serverMaxZoom": 28, + "bbox": [ + -179.99999999999994, -85.05109999999998, 179.99999999999994, + 83.62359600000005 + ], + "nameProp": "NAME" + }, + "COUNTRY": { + "layerName": "FID_TM_WORLD_BORDERS", + "server": "https://vector-tiles.terria.io/FID_TM_WORLD_BORDERS/{z}/{x}/{y}.pbf", + "analyticsWmsLayerName": "region_map:FID_TM_WORLD_BORDERS", + "analyticsWmsServer": "http://geoserver.nationalmap.nicta.com.au/region_map/ows", + "regionProp": "NAME", + "textCodes": true, + "aliases": ["country"], + "regionIdsFile": "data/regionids/region_map-FID_TM_WORLD_BORDERS_NAME.json", + "serverType": "MVT", + "serverSubdomains": [], + "serverMinZoom": 0, + "serverMaxNativeZoom": 10, + "serverMaxZoom": 28, + "bbox": [ + -179.99999999999994, -85.05109999999998, 179.99999999999994, + 83.62359600000005 + ], + "nameProp": "NAME" + }, + "AUS": { + "layerName": "FID_AUS_2011_AUST", + "server": "https://vector-tiles.terria.io/FID_AUS_2011_AUST/{z}/{x}/{y}.pbf", + "analyticsWmsLayerName": "region_map:FID_AUS_2011_AUST", + "analyticsWmsServer": "http://geoserver.nationalmap.nicta.com.au/region_map/ows", + "regionProp": "AUS_CODE", + "aliases": ["aus", "aus_code", "aus_code_2011", "aus_code_2016"], + "regionIdsFile": "data/regionids/region_map-FID_AUS_2011_AUST_AUS_CODE.json", + "serverType": "MVT", + "serverSubdomains": [], + "serverMinZoom": 0, + "serverMaxNativeZoom": 12, + "serverMaxZoom": 28, + "bbox": [ + 96.81694140799998, -43.74050960300003, 159.10921900799997, + -9.142175976999999 + ], + "nameProp": "AUS_NAME" + }, + "ESA_09": { + "layerName": "FID_AUS_ESA_09", + "server": "https://vector-tiles.terria.io/FID_AUS_ESA_09/{z}/{x}/{y}.pbf", + "serverType": "MVT", + "serverSubdomains": [], + "serverMinZoom": 0, + "serverMaxNativeZoom": 12, + "serverMaxZoom": 28, + "bbox": [ + 96.81676599999999, -43.74050999999999, 159.10921899999994, + -9.142175999999997 + ], + "regionProp": "ESA_CODE", + "aliases": ["esa", "esa_code", "esa_code_2009"], + "nameProp": "ESA_NAME", + "description": "Employment Service Areas 2009-2015+", + "regionIdsFile": "data/regionids/region_map-FID_AUS_ESA_09_ESA_CODE.json" + }, + "ESA_NAME_09": { + "layerName": "FID_AUS_ESA_09", + "server": "https://vector-tiles.terria.io/FID_AUS_ESA_09/{z}/{x}/{y}.pbf", + "serverType": "MVT", + "serverSubdomains": [], + "serverMinZoom": 0, + "serverMaxNativeZoom": 12, + "serverMaxZoom": 28, + "bbox": [ + 96.81676599999999, -43.74050999999999, 159.10921899999994, + -9.142175999999997 + ], + "regionProp": "ESA_NAME", + "aliases": ["esa_name", "esa_name_2009"], + "nameProp": "ESA_NAME", + "description": "Employment Service Areas 2009-2015+", + "regionIdsFile": "data/regionids/region_map-FID_AUS_ESA_09_ESA_NAME.json" + }, + "IBRA7_REG": { + "layerName": "ibra7_regions", + "server": "https://vector-tiles.terria.io/ibra7_regions/{z}/{x}/{y}.pbf", + "serverType": "MVT", + "serverSubdomains": [], + "serverMinZoom": 0, + "serverMaxNativeZoom": 12, + "serverMaxZoom": 28, + "bbox": [ + 72.57737629065888, -54.776992953536805, 167.9981399159851, + -9.141289999999968 + ], + "regionProp": "REG_CODE_7", + "aliases": ["ibra7_reg", "ibra7_reg_code"], + "nameProp": "REG_NAME_7", + "description": "IBRA Regions v7", + "regionIdsFile": "data/regionids/region_map-ibra7_regions_REG_CODE_7.json" + }, + "IBRA7_REG_NAME": { + "layerName": "ibra7_regions", + "server": "https://vector-tiles.terria.io/ibra7_regions/{z}/{x}/{y}.pbf", + "serverType": "MVT", + "serverSubdomains": [], + "serverMinZoom": 0, + "serverMaxNativeZoom": 12, + "serverMaxZoom": 28, + "bbox": [ + 72.57737629065888, -54.776992953536805, 167.9981399159851, + -9.141289999999968 + ], + "regionProp": "REG_NAME_7", + "aliases": ["ibra7_reg_name"], + "nameProp": "REG_NAME_7", + "description": "IBRA Regions v7", + "regionIdsFile": "data/regionids/region_map-ibra7_regions_REG_NAME_7.json" + }, + "IBRA7_SUB": { + "layerName": "ibra7_subregions", + "server": "https://vector-tiles.terria.io/ibra7_subregions/{z}/{x}/{y}.pbf", + "serverType": "MVT", + "serverSubdomains": [], + "serverMinZoom": 0, + "serverMaxNativeZoom": 12, + "serverMaxZoom": 28, + "bbox": [ + 72.57737629065888, -54.77699295353692, 167.9981399159851, + -9.141289999999968 + ], + "regionProp": "SUB_CODE_7", + "aliases": ["ibra7_sub", "ibra7_sub_code"], + "nameProp": "SUB_NAME_7", + "description": "IBRA Subregions v7", + "regionIdsFile": "data/regionids/region_map-ibra7_subregions_SUB_CODE_7.json" + }, + "IBRA7_SUB_NAME": { + "layerName": "ibra7_subregions", + "server": "https://vector-tiles.terria.io/ibra7_subregions/{z}/{x}/{y}.pbf", + "serverType": "MVT", + "serverSubdomains": [], + "serverMinZoom": 0, + "serverMaxNativeZoom": 12, + "serverMaxZoom": 28, + "bbox": [ + 72.57737629065888, -54.77699295353692, 167.9981399159851, + -9.141289999999968 + ], + "regionProp": "SUB_NAME_7", + "aliases": ["ibra7_sub_name"], + "nameProp": "SUB_NAME_7", + "description": "IBRA Subregions v7", + "regionIdsFile": "data/regionids/region_map-ibra7_subregions_SUB_NAME_7.json" + }, + "NZ_AU_2017": { + "layerName": "NZ_AU2017_HD_Clipped", + "server": "https://vector-tiles.terria.io/NZ_AU2017_HD_Clipped/{z}/{x}/{y}.pbf", + "serverType": "MVT", + "serverMaxNativeZoom": 12, + "serverMaxZoom": 28, + "bbox": [ + -176.89314232298426, -47.28999251282331, 178.57724348546415, + -34.392630183116 + ], + "uniqueIdProp": "FID", + "regionProp": "AU2017", + "nameProp": "AU2017_NAM", + "aliases": ["nz_au_code_2017", "nz_au"], + "description": "Stats New Zealand Area Units 2017", + "regionIdsFile": "data/regionids/region_map-NZ_AU2017_HD_Clipped_AU2017.json" + }, + "NZ_AU_2017_NAME": { + "layerName": "NZ_AU2017_HD_Clipped", + "server": "https://vector-tiles.terria.io/NZ_AU2017_HD_Clipped/{z}/{x}/{y}.pbf", + "serverType": "MVT", + "serverMaxNativeZoom": 12, + "serverMaxZoom": 28, + "bbox": [ + -176.89314232298426, -47.28999251282331, 178.57724348546415, + -34.392630183116 + ], + "uniqueIdProp": "FID", + "regionProp": "AU2017_NAM", + "nameProp": "AU2017_NAM", + "aliases": ["nz_au_name_2017"], + "description": "Stats New Zealand Area Units 2017", + "regionIdsFile": "data/regionids/region_map-NZ_AU2017_HD_Clipped_AU2017_NAM.json" + }, + "NZ_MB_2017": { + "layerName": "NZ_MB2017_HD_Clipped", + "server": "https://vector-tiles.terria.io/NZ_MB2017_HD_Clipped/{z}/{x}/{y}.pbf", + "serverType": "MVT", + "serverMaxNativeZoom": 12, + "serverMaxZoom": 28, + "bbox": [ + -176.89314232298426, -47.28999251282331, 178.57724348546415, + -34.392630183116 + ], + "uniqueIdProp": "FID", + "regionProp": "MB2017", + "nameProp": "MB2017", + "aliases": ["nz_mb_code_2017", "nz_mb"], + "description": "Stats New Zealand Mesh Blocks 2017", + "regionIdsFile": "data/regionids/region_map-NZ_MB2017_HD_Clipped_MB2017.json" } + } } diff --git a/wwwroot/test/Senaps/locations.json b/wwwroot/test/Senaps/locations.json index 792014e8862..a8c9789ffdd 100644 --- a/wwwroot/test/Senaps/locations.json +++ b/wwwroot/test/Senaps/locations.json @@ -16,10 +16,7 @@ "description": "Boorowa TempRH Site5a", "geojson": { "type": "Point", - "coordinates": [ - 148.699683, - -34.470083 - ] + "coordinates": [148.699683, -34.470083] }, "id": "boorowa.temprh.site5a", "usermetadata": null, @@ -55,10 +52,7 @@ "description": "Boorowa TempRH Site5a", "geojson": { "type": "Point", - "coordinates": [ - 148.699683, - -34.470083 - ] + "coordinates": [148.699683, -34.470083] }, "id": "somesillyone", "usermetadata": null, diff --git a/wwwroot/test/Senaps/locations_filtered.json b/wwwroot/test/Senaps/locations_filtered.json index b7c15c7e989..205c4269319 100644 --- a/wwwroot/test/Senaps/locations_filtered.json +++ b/wwwroot/test/Senaps/locations_filtered.json @@ -16,10 +16,7 @@ "description": "Boorowa TempRH Site5a", "geojson": { "type": "Point", - "coordinates": [ - 148.699683, - -34.470083 - ] + "coordinates": [148.699683, -34.470083] }, "id": "boorowa.temprh.site5a", "usermetadata": null, diff --git a/wwwroot/test/Senaps/streams.json b/wwwroot/test/Senaps/streams.json index 58df186a81b..dc8fbeb66e0 100644 --- a/wwwroot/test/Senaps/streams.json +++ b/wwwroot/test/Senaps/streams.json @@ -1,28 +1,28 @@ { - "_links": { - "self": { - "href": "https://senaps.io/api/sensor/v2/streams?id=*SHT31DIS_ALL*&locationid=boorowa.temprh.site5a" - } - }, - "count": 2, - "_embedded": { - "streams": [ - { - "_links": { - "self": { - "href": "https://senaps.io/api/sensor/v2/streams/tdfnode.0.323831395a368714-99.SHT31DIS_ALL.temperature" - } - }, - "id": "tdfnode.0.323831395a368714-99.SHT31DIS_ALL.temperature" - }, - { - "_links": { - "self": { - "href": "https://senaps.io/api/sensor/v2/streams/tdfnode.0.323831395a368714-99.SHT31DIS_ALL.humidity" - } - }, - "id": "tdfnode.0.323831395a368714-99.SHT31DIS_ALL.humidity" - } - ] + "_links": { + "self": { + "href": "https://senaps.io/api/sensor/v2/streams?id=*SHT31DIS_ALL*&locationid=boorowa.temprh.site5a" } -} \ No newline at end of file + }, + "count": 2, + "_embedded": { + "streams": [ + { + "_links": { + "self": { + "href": "https://senaps.io/api/sensor/v2/streams/tdfnode.0.323831395a368714-99.SHT31DIS_ALL.temperature" + } + }, + "id": "tdfnode.0.323831395a368714-99.SHT31DIS_ALL.temperature" + }, + { + "_links": { + "self": { + "href": "https://senaps.io/api/sensor/v2/streams/tdfnode.0.323831395a368714-99.SHT31DIS_ALL.humidity" + } + }, + "id": "tdfnode.0.323831395a368714-99.SHT31DIS_ALL.humidity" + } + ] + } +} diff --git a/wwwroot/test/Senaps/streams_filtered.json b/wwwroot/test/Senaps/streams_filtered.json index 2eef4740724..0ba3627c322 100644 --- a/wwwroot/test/Senaps/streams_filtered.json +++ b/wwwroot/test/Senaps/streams_filtered.json @@ -1,20 +1,20 @@ { - "_links": { - "self": { - "href": "https://senaps.io/api/sensor/v2/streams?id=*SHT31DIS_ALL*&locationid=boorowa.temprh.site5a" - } - }, - "count": 1, - "_embedded": { - "streams": [ - { - "_links": { - "self": { - "href": "https://senaps.io/api/sensor/v2/streams/tdfnode.0.323831395a368714-99.SHT31DIS_ALL.temperature" - } - }, - "id": "tdfnode.0.323831395a368714-99.SHT31DIS_ALL.temperature" - } - ] + "_links": { + "self": { + "href": "https://senaps.io/api/sensor/v2/streams?id=*SHT31DIS_ALL*&locationid=boorowa.temprh.site5a" } -} \ No newline at end of file + }, + "count": 1, + "_embedded": { + "streams": [ + { + "_links": { + "self": { + "href": "https://senaps.io/api/sensor/v2/streams/tdfnode.0.323831395a368714-99.SHT31DIS_ALL.temperature" + } + }, + "id": "tdfnode.0.323831395a368714-99.SHT31DIS_ALL.temperature" + } + ] + } +} diff --git a/wwwroot/test/Socrata/search.json b/wwwroot/test/Socrata/search.json index 5b4e24d9142..22c7e50c9d7 100644 --- a/wwwroot/test/Socrata/search.json +++ b/wwwroot/test/Socrata/search.json @@ -35,9 +35,7 @@ "publication_date": "2014-07-25T05:20:35.000Z" }, "classification": { - "categories": [ - "environment" - ], + "categories": ["environment"], "tags": [], "domain_category": "Environment", "domain_tags": [ @@ -279,10 +277,7 @@ "publication_date": "2015-11-18T05:01:38.000Z" }, "classification": { - "categories": [ - "environment", - "demographics" - ], + "categories": ["environment", "demographics"], "tags": [], "domain_category": "Environment", "domain_tags": [ @@ -785,10 +780,7 @@ "publication_date": "2015-01-20T23:48:54.000Z" }, "classification": { - "categories": [ - "environment", - "infrastructure" - ], + "categories": ["environment", "infrastructure"], "tags": [], "domain_category": "Environment", "domain_tags": [ @@ -874,10 +866,7 @@ "publication_date": "2015-10-16T00:46:42.000Z" }, "classification": { - "categories": [ - "infrastructure", - "recreation" - ], + "categories": ["infrastructure", "recreation"], "tags": [], "domain_category": "Environment", "domain_tags": [ @@ -1032,10 +1021,7 @@ "publication_date": "2020-06-02T23:49:29.000Z" }, "classification": { - "categories": [ - "environment", - "infrastructure" - ], + "categories": ["environment", "infrastructure"], "tags": [], "domain_category": "Environment", "domain_tags": [ @@ -1118,9 +1104,7 @@ "publication_date": "2017-03-02T03:23:00.000Z" }, "classification": { - "categories": [ - "environment" - ], + "categories": ["environment"], "tags": [], "domain_category": "Environment", "domain_tags": [ @@ -1245,10 +1229,7 @@ "publication_date": "2020-06-12T00:02:06.000Z" }, "classification": { - "categories": [ - "recreation", - "environment" - ], + "categories": ["recreation", "environment"], "tags": [], "domain_category": "Environment", "domain_tags": [ @@ -1649,10 +1630,7 @@ "publication_date": "2017-05-19T03:30:09.000Z" }, "classification": { - "categories": [ - "demographics", - "health" - ], + "categories": ["demographics", "health"], "tags": [], "domain_category": "Environment", "domain_tags": [ @@ -1735,10 +1713,7 @@ "publication_date": "2015-11-17T06:21:03.000Z" }, "classification": { - "categories": [ - "environment", - "demographics" - ], + "categories": ["environment", "demographics"], "tags": [], "domain_category": "Environment", "domain_tags": [ @@ -1911,9 +1886,7 @@ "publication_date": "2015-01-20T23:55:28.000Z" }, "classification": { - "categories": [ - "environment" - ], + "categories": ["environment"], "tags": [], "domain_category": "Environment", "domain_tags": [ @@ -1986,36 +1959,21 @@ "page_views_last_month_log": 3.8073549220576037, "page_views_total_log": 11.109177703355275 }, - "columns_name": [ - "Shape Area", - "OBJECTID", - "Shape Length", - "the_geom" - ], + "columns_name": ["Shape Area", "OBJECTID", "Shape Length", "the_geom"], "columns_field_name": [ "shape_area", "objectid", "shape_leng", "the_geom" ], - "columns_datatype": [ - "Number", - "Number", - "Number", - "MultiPolygon" - ], + "columns_datatype": ["Number", "Number", "Number", "MultiPolygon"], "columns_description": [ "System generated area measurement for polygon", "system generated unique identifier for each polygon ", "System generated length measurement for polygon", "" ], - "columns_format": [ - {}, - {}, - {}, - {} - ], + "columns_format": [{}, {}, {}, {}], "download_count": 1080, "provenance": "official", "lens_view_type": "tabular", @@ -2024,9 +1982,7 @@ "publication_date": "2019-02-19T05:58:27.000Z" }, "classification": { - "categories": [ - "environment" - ], + "categories": ["environment"], "tags": [], "domain_category": "Environment", "domain_tags": [ @@ -2113,9 +2069,7 @@ "publication_date": "2014-07-09T05:04:16.000Z" }, "classification": { - "categories": [ - "environment" - ], + "categories": ["environment"], "tags": [], "domain_category": "Environment", "domain_tags": [ @@ -2197,9 +2151,7 @@ "publication_date": "2014-07-09T04:36:55.000Z" }, "classification": { - "categories": [ - "transportation" - ], + "categories": ["transportation"], "tags": [], "domain_category": "Environment", "domain_tags": [ @@ -2308,19 +2260,7 @@ "Text", "Number" ], - "columns_description": [ - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "" - ], + "columns_description": ["", "", "", "", "", "", "", "", "", "", ""], "columns_format": [ {}, { @@ -2348,9 +2288,7 @@ "publication_date": "2017-05-18T04:26:54.000Z" }, "classification": { - "categories": [ - "demographics" - ], + "categories": ["demographics"], "tags": [], "domain_category": "Environment", "domain_tags": [ @@ -2555,9 +2493,7 @@ "publication_date": "2017-05-04T05:40:20.000Z" }, "classification": { - "categories": [ - "environment" - ], + "categories": ["environment"], "tags": [], "domain_category": "Environment", "domain_tags": [ @@ -3059,9 +2995,7 @@ "publication_date": "2018-05-08T00:12:07.000Z" }, "classification": { - "categories": [ - "environment" - ], + "categories": ["environment"], "tags": [], "domain_category": "Environment", "domain_tags": [ @@ -3303,9 +3237,7 @@ "publication_date": "2017-05-19T01:57:58.000Z" }, "classification": { - "categories": [ - "demographics" - ], + "categories": ["demographics"], "tags": [], "domain_category": "Environment", "domain_tags": [ @@ -3695,11 +3627,7 @@ "publication_date": "2021-06-28T01:57:30.000Z" }, "classification": { - "categories": [ - "environment", - "infrastructure", - "transportation" - ], + "categories": ["environment", "infrastructure", "transportation"], "tags": [], "domain_category": "Environment", "domain_tags": [ @@ -3768,18 +3696,9 @@ "page_views_last_month_log": 4.700439718141093, "page_views_total_log": 9.930737337562887 }, - "columns_name": [ - "the_geom", - "ID" - ], - "columns_field_name": [ - "the_geom", - "id" - ], - "columns_datatype": [ - "Polygon", - "Number" - ], + "columns_name": ["the_geom", "ID"], + "columns_field_name": ["the_geom", "id"], + "columns_datatype": ["Polygon", "Number"], "columns_description": [ "Geometry of the Tree Canopy", "An arbitrary value" @@ -3798,9 +3717,7 @@ "publication_date": "2019-11-26T22:56:44.000Z" }, "classification": { - "categories": [ - "environment" - ], + "categories": ["environment"], "tags": [], "domain_category": "Environment", "domain_tags": [ @@ -3894,17 +3811,10 @@ "publication_date": "2014-07-10T00:24:44.000Z" }, "classification": { - "categories": [ - "environment" - ], + "categories": ["environment"], "tags": [], "domain_category": "Environment", - "domain_tags": [ - "forest", - "tree", - "#urbanforest", - "urban forest" - ], + "domain_tags": ["forest", "tree", "#urbanforest", "urban forest"], "domain_metadata": [ { "key": "Quality_Update-frequency", @@ -3973,10 +3883,7 @@ "publication_date": "2017-03-27T00:19:26.000Z" }, "classification": { - "categories": [ - "environment", - "demographics" - ], + "categories": ["environment", "demographics"], "tags": [], "domain_category": "Environment", "domain_tags": [ @@ -4248,11 +4155,7 @@ "publication_date": "2019-01-08T22:48:50.000Z" }, "classification": { - "categories": [ - "transportation", - "demographics", - "health" - ], + "categories": ["transportation", "demographics", "health"], "tags": [], "domain_category": "Environment", "domain_tags": [ @@ -4337,12 +4240,7 @@ "categories": [], "tags": [], "domain_category": "Environment", - "domain_tags": [ - "historic", - "#urbanforest", - "urban forest", - "water" - ], + "domain_tags": ["historic", "#urbanforest", "urban forest", "water"], "domain_metadata": [ { "key": "Quality_Update-frequency", @@ -4398,36 +4296,21 @@ "page_views_last_month_log": 3.5849625007211565, "page_views_total_log": 9.779719355143405 }, - "columns_name": [ - "OBJECTID", - "Shape Area", - "Shape Length", - "the_geom" - ], + "columns_name": ["OBJECTID", "Shape Area", "Shape Length", "the_geom"], "columns_field_name": [ "objectid", "shape_area", "shape_leng", "the_geom" ], - "columns_datatype": [ - "Number", - "Number", - "Number", - "MultiPolygon" - ], + "columns_datatype": ["Number", "Number", "Number", "MultiPolygon"], "columns_description": [ "System generated unique object ID", "System generated value representing object area", "System generated value representing object length", "" ], - "columns_format": [ - {}, - {}, - {}, - {} - ], + "columns_format": [{}, {}, {}, {}], "download_count": 620, "provenance": "official", "lens_view_type": "tabular", @@ -4436,9 +4319,7 @@ "publication_date": "2019-02-19T23:04:54.000Z" }, "classification": { - "categories": [ - "environment" - ], + "categories": ["environment"], "tags": [], "domain_category": "Environment", "domain_tags": [ @@ -4528,10 +4409,7 @@ "publication_date": "2017-03-30T00:44:49.000Z" }, "classification": { - "categories": [ - "environment", - "demographics" - ], + "categories": ["environment", "demographics"], "tags": [], "domain_category": "Environment", "domain_tags": [ @@ -4621,10 +4499,7 @@ "publication_date": "2017-03-26T23:15:15.000Z" }, "classification": { - "categories": [ - "environment", - "demographics" - ], + "categories": ["environment", "demographics"], "tags": [], "domain_category": "Environment", "domain_tags": [ @@ -4873,10 +4748,7 @@ "publication_date": "2017-03-30T00:09:30.000Z" }, "classification": { - "categories": [ - "environment", - "demographics" - ], + "categories": ["environment", "demographics"], "tags": [], "domain_category": "Environment", "domain_tags": [ @@ -5076,17 +4948,10 @@ "publication_date": "2017-05-22T05:41:49.000Z" }, "classification": { - "categories": [ - "environment" - ], + "categories": ["environment"], "tags": [], "domain_category": "Environment", - "domain_tags": [ - "dsrf", - "organic", - "recycling", - "waste" - ], + "domain_tags": ["dsrf", "organic", "recycling", "waste"], "domain_metadata": [ { "key": "Quality_Update-frequency", @@ -5158,10 +5023,7 @@ "publication_date": "2017-03-30T00:37:45.000Z" }, "classification": { - "categories": [ - "environment", - "demographics" - ], + "categories": ["environment", "demographics"], "tags": [], "domain_category": "Environment", "domain_tags": [ @@ -5329,9 +5191,7 @@ "publication_date": "2017-05-12T06:23:24.000Z" }, "classification": { - "categories": [ - "environment" - ], + "categories": ["environment"], "tags": [], "domain_category": "Environment", "domain_tags": [ @@ -5423,24 +5283,8 @@ "Number", "Text" ], - "columns_description": [ - "", - "", - "", - "", - "", - "", - "" - ], - "columns_format": [ - {}, - {}, - {}, - {}, - {}, - {}, - {} - ], + "columns_description": ["", "", "", "", "", "", ""], + "columns_format": [{}, {}, {}, {}, {}, {}, {}], "download_count": 829, "provenance": "official", "lens_view_type": "tabular", @@ -5449,17 +5293,10 @@ "publication_date": "2017-05-12T06:23:25.000Z" }, "classification": { - "categories": [ - "environment" - ], + "categories": ["environment"], "tags": [], "domain_category": "Environment", - "domain_tags": [ - "dsrf", - "organic", - "recycling", - "waste" - ], + "domain_tags": ["dsrf", "organic", "recycling", "waste"], "domain_metadata": [ { "key": "Quality_Update-frequency", @@ -5527,9 +5364,7 @@ "publication_date": "2017-05-04T05:40:23.000Z" }, "classification": { - "categories": [ - "environment" - ], + "categories": ["environment"], "tags": [], "domain_category": "Environment", "domain_tags": [ @@ -5606,9 +5441,7 @@ "publication_date": "2017-05-04T05:40:22.000Z" }, "classification": { - "categories": [ - "environment" - ], + "categories": ["environment"], "tags": [], "domain_category": "Environment", "domain_tags": [ @@ -5709,30 +5542,8 @@ "Calendar date", "Text" ], - "columns_description": [ - "", - "", - "", - "", - "", - "", - "", - "", - "", - "" - ], - "columns_format": [ - {}, - {}, - {}, - {}, - {}, - {}, - {}, - {}, - {}, - {} - ], + "columns_description": ["", "", "", "", "", "", "", "", "", ""], + "columns_format": [{}, {}, {}, {}, {}, {}, {}, {}, {}, {}], "download_count": 804, "provenance": "official", "lens_view_type": "tabular", @@ -5741,17 +5552,10 @@ "publication_date": "2017-05-12T06:23:29.000Z" }, "classification": { - "categories": [ - "environment" - ], + "categories": ["environment"], "tags": [], "domain_category": "Environment", - "domain_tags": [ - "dsrf", - "polystyrene", - "recycling", - "waste" - ], + "domain_tags": ["dsrf", "polystyrene", "recycling", "waste"], "domain_metadata": [ { "key": "Quality_Update-frequency", @@ -5885,10 +5689,7 @@ "publication_date": "2020-04-01T01:43:33.000Z" }, "classification": { - "categories": [ - "finance", - "infrastructure" - ], + "categories": ["finance", "infrastructure"], "tags": [], "domain_category": "Environment", "domain_tags": [ @@ -5974,10 +5775,7 @@ "publication_date": "2017-03-27T05:38:18.000Z" }, "classification": { - "categories": [ - "demographics", - "environment" - ], + "categories": ["demographics", "environment"], "tags": [], "domain_category": "Environment", "domain_tags": [ @@ -6067,10 +5865,7 @@ "publication_date": "2017-03-27T05:54:12.000Z" }, "classification": { - "categories": [ - "demographics", - "environment" - ], + "categories": ["demographics", "environment"], "tags": [], "domain_category": "Environment", "domain_tags": [ @@ -6160,10 +5955,7 @@ "publication_date": "2017-03-27T06:04:18.000Z" }, "classification": { - "categories": [ - "demographics", - "environment" - ], + "categories": ["demographics", "environment"], "tags": [], "domain_category": "Environment", "domain_tags": [ @@ -6264,22 +6056,8 @@ "Text", "Text" ], - "columns_description": [ - "", - "", - "", - "", - "", - "" - ], - "columns_format": [ - {}, - {}, - {}, - {}, - {}, - {} - ], + "columns_description": ["", "", "", "", "", ""], + "columns_format": [{}, {}, {}, {}, {}, {}], "download_count": 732, "provenance": "official", "lens_view_type": "tabular", @@ -6288,9 +6066,7 @@ "publication_date": "2017-05-12T06:13:42.000Z" }, "classification": { - "categories": [ - "environment" - ], + "categories": ["environment"], "tags": [], "domain_category": "Environment", "domain_tags": [ @@ -6390,30 +6166,8 @@ "Number", "Number" ], - "columns_description": [ - "", - "", - "", - "", - "", - "", - "", - "", - "", - "" - ], - "columns_format": [ - {}, - {}, - {}, - {}, - {}, - {}, - {}, - {}, - {}, - {} - ], + "columns_description": ["", "", "", "", "", "", "", "", "", ""], + "columns_format": [{}, {}, {}, {}, {}, {}, {}, {}, {}, {}], "download_count": 777, "provenance": "official", "lens_view_type": "tabular", @@ -6422,18 +6176,10 @@ "publication_date": "2017-05-12T06:23:19.000Z" }, "classification": { - "categories": [ - "environment" - ], + "categories": ["environment"], "tags": [], "domain_category": "Environment", - "domain_tags": [ - "bales", - "cardboard", - "dsrf", - "recycling", - "waste" - ], + "domain_tags": ["bales", "cardboard", "dsrf", "recycling", "waste"], "domain_metadata": [ { "key": "Quality_Update-frequency", @@ -6530,34 +6276,8 @@ "Text", "Text" ], - "columns_description": [ - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "" - ], - "columns_format": [ - {}, - {}, - {}, - {}, - {}, - {}, - {}, - {}, - {}, - {}, - {}, - {} - ], + "columns_description": ["", "", "", "", "", "", "", "", "", "", "", ""], + "columns_format": [{}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}], "download_count": 777, "provenance": "official", "lens_view_type": "tabular", @@ -6566,17 +6286,10 @@ "publication_date": "2017-05-12T06:20:11.000Z" }, "classification": { - "categories": [ - "environment" - ], + "categories": ["environment"], "tags": [], "domain_category": "Environment", - "domain_tags": [ - "commingled", - "dsrf", - "recycling", - "waste" - ], + "domain_tags": ["commingled", "dsrf", "recycling", "waste"], "domain_metadata": [ { "key": "Quality_Update-frequency", @@ -6734,9 +6447,6 @@ "resultSetSize": 48, "timings": { "serviceMillis": 54, - "searchMillis": [ - 21, - 12 - ] + "searchMillis": [21, 12] } } diff --git a/wwwroot/test/Socrata/view.json b/wwwroot/test/Socrata/view.json index 107b5b44875..43608cd66f0 100644 --- a/wwwroot/test/Socrata/view.json +++ b/wwwroot/test/Socrata/view.json @@ -60,9 +60,7 @@ } } ], - "childViews": [ - "7emh-y3dj" - ], + "childViews": ["7emh-y3dj"], "columns": [], "displayFormat": { "distinctLegend": true, @@ -95,9 +93,7 @@ { "inherited": false, "type": "viewer", - "flags": [ - "public" - ] + "flags": ["public"] } ], "license": { @@ -124,12 +120,7 @@ "Reliability level": "Useful with caveats" } }, - "availableDisplayTypes": [ - "map", - "table", - "fatrow", - "page" - ], + "availableDisplayTypes": ["map", "table", "fatrow", "page"], "renderTypeConfig": { "visible": { "map": true @@ -144,14 +135,10 @@ "profileImageUrlSmall": "/api/users/by7m-q3n8/profile_images/TINY", "screenName": "City of Melbourne Open Data Team", "type": "interactive", - "flags": [ - "mayBeStoriesCoOwner" - ] + "flags": ["mayBeStoriesCoOwner"] }, "query": {}, - "rights": [ - "read" - ], + "rights": ["read"], "tableAuthor": { "id": "by7m-q3n8", "displayName": "City of Melbourne Open Data Team", @@ -160,9 +147,7 @@ "profileImageUrlSmall": "/api/users/by7m-q3n8/profile_images/TINY", "screenName": "City of Melbourne Open Data Team", "type": "interactive", - "flags": [ - "mayBeStoriesCoOwner" - ] + "flags": ["mayBeStoriesCoOwner"] }, "tags": [ "urban forest", @@ -172,8 +157,5 @@ "eventsplanner", "citizenreporter" ], - "flags": [ - "default", - "ownerMayBeContacted" - ] + "flags": ["default", "ownerMayBeContacted"] } diff --git a/wwwroot/test/Terria/applyInitData/FeatureServer/esri_feature_server.json b/wwwroot/test/Terria/applyInitData/FeatureServer/esri_feature_server.json index bdf4fb4389f..27f5bcb67b8 100644 --- a/wwwroot/test/Terria/applyInitData/FeatureServer/esri_feature_server.json +++ b/wwwroot/test/Terria/applyInitData/FeatureServer/esri_feature_server.json @@ -81,4 +81,4 @@ } ], "tables": [] -} \ No newline at end of file +} diff --git a/wwwroot/test/Terria/applyInitData/MagdaReference/group_record.json b/wwwroot/test/Terria/applyInitData/MagdaReference/group_record.json index ceeb5eb1664..2f9d528ea1b 100644 --- a/wwwroot/test/Terria/applyInitData/MagdaReference/group_record.json +++ b/wwwroot/test/Terria/applyInitData/MagdaReference/group_record.json @@ -54,12 +54,7 @@ "contactPoint": "todd.walmsley@fcnsw.com.au", "description": "Forest Management Zones (97mb full extent shapefile download) created by FCNSW from a range of environmental data sets from environmental modelling processes and continually updated due to improved data, mapping and environmental surveys.", "issued": "2018-09-06T07:52:18Z", - "keywords": [ - "Environment", - "Forests", - "Management", - "Zones" - ], + "keywords": ["Environment", "Forests", "Management", "Zones"], "landingPage": "https://datasets.seed.nsw.gov.au/dataset/forest-management-zones", "languages": [], "modified": "2019-08-19T03:00:12Z", @@ -76,4 +71,4 @@ "name": "Forest Management Zones", "sourceTag": "99476546-aff8-4af2-9656-73c0c94e3b04", "tenantId": 0 -} \ No newline at end of file +} diff --git a/wwwroot/test/csv/regionMapping.json b/wwwroot/test/csv/regionMapping.json index 378bc71995a..914dfab9b80 100644 --- a/wwwroot/test/csv/regionMapping.json +++ b/wwwroot/test/csv/regionMapping.json @@ -5,12 +5,7 @@ "layerName": "region_map:FID_SA1_2011_AUST", "server": "http://regionmap-dev.nationalmap.nicta.com.au/region_map/ows", "regionProp": "SA1_MAIN11", - "aliases": [ - "sa1_code_2011", - "sa1_maincode_2011", - "sa1_code", - "sa1" - ], + "aliases": ["sa1_code_2011", "sa1_maincode_2011", "sa1_code", "sa1"], "digits": 11, "description": "Statistical Area Level 1", "regionIdsFile": "data/regionids/region_map-FID_SA1_2011_AUST_SA1_MAIN11.json" @@ -19,10 +14,7 @@ "layerName": "region_map:FID_SA1_2011_AUST", "server": "http://regionmap-dev.nationalmap.nicta.com.au/region_map/ows", "regionProp": "SA1_7DIG11", - "aliases": [ - "sa1_7digitcode_2011", - "sa1_7digitcode" - ], + "aliases": ["sa1_7digitcode_2011", "sa1_7digitcode"], "digits": 7, "description": "Statistical Area Level 1", "regionIdsFile": "data/regionids/region_map-FID_SA1_2011_AUST_SA1_7DIG11.json" @@ -31,11 +23,7 @@ "layerName": "region_map:FID_SA4_2011_AUST", "server": "http://regionmap-dev.nationalmap.nicta.com.au/region_map/ows", "regionProp": "SA4_CODE11", - "aliases": [ - "sa4_code", - "sa4_code_2011", - "sa4" - ], + "aliases": ["sa4_code", "sa4_code_2011", "sa4"], "digits": 3, "description": "Statistical Area Level 4", "regionIdsFile": "data/regionids/region_map-FID_SA4_2011_AUST_SA4_CODE11.json" @@ -44,10 +32,7 @@ "layerName": "region_map:FID_SA4_2011_AUST", "server": "http://regionmap-dev.nationalmap.nicta.com.au/region_map/ows", "regionProp": "SA4_NAME11", - "aliases": [ - "sa4_name", - "sa4_name_2011" - ], + "aliases": ["sa4_name", "sa4_name_2011"], "description": "Statistical Area Level 4", "regionIdsFile": "data/regionids/region_map-FID_SA4_2011_AUST_SA4_NAME11.json" }, @@ -55,11 +40,7 @@ "layerName": "region_map:FID_SA3_2011_AUST", "server": "http://regionmap-dev.nationalmap.nicta.com.au/region_map/ows", "regionProp": "SA3_CODE11", - "aliases": [ - "sa3_code_2011", - "sa3_code", - "sa3" - ], + "aliases": ["sa3_code_2011", "sa3_code", "sa3"], "digits": 5, "description": "Statistical Area Level 3", "regionIdsFile": "data/regionids/region_map-FID_SA3_2011_AUST_SA3_CODE11.json" @@ -68,10 +49,7 @@ "layerName": "region_map:FID_SA3_2011_AUST", "server": "http://regionmap-dev.nationalmap.nicta.com.au/region_map/ows", "regionProp": "SA3_NAME11", - "aliases": [ - "sa3_name_2011", - "sa3_name" - ], + "aliases": ["sa3_name_2011", "sa3_name"], "digits": 5, "description": "Statistical Area Level 3", "regionIdsFile": "data/regionids/region_map-FID_SA3_2011_AUST_SA3_NAME11.json" @@ -80,11 +58,7 @@ "layerName": "region_map:FID_SA2_2011_AUST", "server": "http://regionmap-dev.nationalmap.nicta.com.au/region_map/ows", "regionProp": "SA2_MAIN11", - "aliases": [ - "sa2_code_2011", - "sa2_code", - "sa2" - ], + "aliases": ["sa2_code_2011", "sa2_code", "sa2"], "digits": 9, "description": "Statistical Area Level 2", "regionIdsFile": "data/regionids/region_map-FID_SA2_2011_AUST_SA2_MAIN11.json" @@ -93,10 +67,7 @@ "layerName": "region_map:FID_SA2_2011_AUST", "server": "http://regionmap-dev.nationalmap.nicta.com.au/region_map/ows", "regionProp": "SA2_5DIG11", - "aliases": [ - "sa2_5digitcode", - "sa2_5digitcode_2011" - ], + "aliases": ["sa2_5digitcode", "sa2_5digitcode_2011"], "digits": 5, "description": "Statistical Area Level 2", "regionIdsFile": "data/regionids/region_map-FID_SA2_2011_AUST_SA2_5DIG11.json" @@ -105,10 +76,7 @@ "layerName": "region_map:FID_SA2_2011_AUST", "server": "http://regionmap-dev.nationalmap.nicta.com.au/region_map/ows", "regionProp": "SA2_NAME11", - "aliases": [ - "sa2_name_2011", - "sa2_name" - ], + "aliases": ["sa2_name_2011", "sa2_name"], "description": "Statistical Area Level 2", "regionIdsFile": "data/regionids/region_map-FID_SA2_2011_AUST_SA2_NAME11.json" }, @@ -116,11 +84,7 @@ "layerName": "region_map:FID_SSC_2011_AUST", "server": "http://regionmap-dev.nationalmap.nicta.com.au/region_map/ows", "regionProp": "SSC_CODE", - "aliases": [ - "ssc_code_2011", - "ssc_code", - "ssc" - ], + "aliases": ["ssc_code_2011", "ssc_code", "ssc"], "digits": 5, "description": "ABS approximations of suburbs", "regionIdsFile": "data/regionids/region_map-FID_SSC_2011_AUST_SSC_CODE.json" @@ -129,11 +93,7 @@ "layerName": "region_map:FID_SSC_2011_AUST", "server": "http://regionmap-dev.nationalmap.nicta.com.au/region_map/ows", "regionProp": "SSC_NAME", - "aliases": [ - "ssc_name", - "ssc_name_2011", - "suburb" - ], + "aliases": ["ssc_name", "ssc_name_2011", "suburb"], "description": "ABS approximations of suburbs", "regionIdsFile": "data/regionids/region_map-FID_SSC_2011_AUST_SSC_NAME.json" }, @@ -159,9 +119,7 @@ "layerName": "region_map:FID_LGA_2011_AUST", "server": "http://regionmap-dev.nationalmap.nicta.com.au/region_map/ows", "regionProp": "LGA_CODE11", - "aliases": [ - "lga_code_2011" - ], + "aliases": ["lga_code_2011"], "digits": 5, "description": "Local government areas", "regionIdsFile": "data/regionids/region_map-FID_LGA_2011_AUST_LGA_CODE11.json" @@ -182,44 +140,20 @@ "lga_name_2010" ], "serverReplacements": [ - [ - " \\([a-z]+\\)$", - "" - ], - [ - "-", - " " - ] + [" \\([a-z]+\\)$", ""], + ["-", " "] ], "dataReplacements": [ - [ - "^The ", - "" - ], - [ - "^.*Council of (the )?", - "" - ], - [ - "^.* of (the )?", - "" - ], - [ - " Council$", - "" - ], + ["^The ", ""], + ["^.*Council of (the )?", ""], + ["^.* of (the )?", ""], + [" Council$", ""], [ " (Shire|City|Rural City|Borough|District|Aboriginal|Municipality|Municipal|Regional|Town|Government Community|Aboriginal Shire|Island|\\(Unincorporated\\)|\\(Uninc.\\))$", "" ], - [ - "( \\([A-Z]+\\)$)", - "" - ], - [ - "-", - " " - ] + ["( \\([A-Z]+\\)$)", ""], + ["-", " "] ], "disambigProp": "STE_NAME11", "disambigRegionId": "STE_NAME", @@ -248,11 +182,7 @@ "layerName": "region_map:FID_CED_2011_AUST", "server": "http://regionmap-dev.nationalmap.nicta.com.au/region_map/ows", "regionProp": "CED_CODE", - "aliases": [ - "ced_code_2011", - "ced_code", - "ced" - ], + "aliases": ["ced_code_2011", "ced_code", "ced"], "digits": 3, "description": "Commonwealth electoral districts (ABS approximations)", "disabledregionIdsFile": "data/regionids/region_map-FID_CED_2011_AUST_CED_CODE.json" @@ -261,10 +191,7 @@ "layerName": "region_map:FID_CED_2011_AUST", "server": "http://regionmap-dev.nationalmap.nicta.com.au/region_map/ows", "regionProp": "CED_NAME", - "aliases": [ - "ced_name_2011", - "ced_name" - ], + "aliases": ["ced_name_2011", "ced_name"], "description": "Commonwealth electoral districts (ABS approximations)", "regionIdsFile": "data/regionids/region_map-FID_CED_2011_AUST_CED_NAME.json" }, @@ -273,11 +200,7 @@ "server": "http://regionmap-dev.nationalmap.nicta.com.au/region_map/ows", "regionProp": "ELECT_DIV", "textCodes": true, - "aliases": [ - "divisionnm", - "ced_aec", - "ced_aec_2011" - ], + "aliases": ["divisionnm", "ced_aec", "ced_aec_2011"], "description": "Commonwealth electoral districts (Australian Electoral Commission)", "regionIdsFile": "data/regionids/region_map-FID_COM20111216_ELB_region_ELECT_DIV.json" }, @@ -285,11 +208,7 @@ "layerName": "region_map:FID_SED_2011_AUST", "server": "http://regionmap-dev.nationalmap.nicta.com.au/region_map/ows", "regionProp": "SED_CODE", - "aliases": [ - "sed_code_2011", - "sed_code", - "sed" - ], + "aliases": ["sed_code_2011", "sed_code", "sed"], "digits": 5, "description": "State electoral districts (ABS approximations)", "regionIdsFile": "data/regionids/region_map-FID_SED_2011_AUST_SED_CODE.json" @@ -298,10 +217,7 @@ "layerName": "region_map:FID_SED_2011_AUST", "server": "http://regionmap-dev.nationalmap.nicta.com.au/region_map/ows", "regionProp": "SED_NAME", - "aliases": [ - "sed_name_2011", - "sed_name" - ], + "aliases": ["sed_name_2011", "sed_name"], "description": "State electoral districts (ABS approximations)", "regionIdsFile": "data/regionids/region_map-FID_SED_2011_AUST_SED_NAME.json" }, @@ -309,11 +225,7 @@ "layerName": "region_map:FID_GCCSA_2011_AUST", "server": "http://regionmap-dev.nationalmap.nicta.com.au/region_map/ows", "regionProp": "GCC_CODE11", - "aliases": [ - "gccsa_code_2011", - "gccsa_code", - "gccsa" - ], + "aliases": ["gccsa_code_2011", "gccsa_code", "gccsa"], "digits": 5, "description": "Greater capital city statistical areas", "regionIdsFile": "data/regionids/region_map-FID_GCCSA_2011_AUST_GCC_CODE11.json" @@ -322,10 +234,7 @@ "layerName": "region_map:FID_GCCSA_2011_AUST", "server": "http://regionmap-dev.nationalmap.nicta.com.au/region_map/ows", "regionProp": "GCC_NAME11", - "aliases": [ - "gccsa_name_2011", - "gccsa_name" - ], + "aliases": ["gccsa_name_2011", "gccsa_name"], "description": "Greater capital city statistical areas", "regionIdsFile": "data/regionids/region_map-FID_GCCSA_2011_AUST_GCC_NAME11.json" }, @@ -333,11 +242,7 @@ "layerName": "region_map:FID_SUA_2011_AUST", "server": "http://regionmap-dev.nationalmap.nicta.com.au/region_map/ows", "regionProp": "SUA_CODE11", - "aliases": [ - "sua_code_2011", - "sua_code", - "sua" - ], + "aliases": ["sua_code_2011", "sua_code", "sua"], "digits": 4, "description": "Significant urban areas", "regionIdsFile": "data/regionids/region_map-FID_SUA_2011_AUST_SUA_CODE11.json" @@ -346,34 +251,17 @@ "layerName": "region_map:FID_SUA_2011_AUST", "server": "http://regionmap-dev.nationalmap.nicta.com.au/region_map/ows", "regionProp": "SUA_NAME11", - "aliases": [ - "sua_name_2011", - "sua_name" - ], + "aliases": ["sua_name_2011", "sua_name"], "description": "Significant urban areas", - "serverReplacements": [ - [ - "[^A-Za-z]", - "" - ] - ], - "dataReplacements": [ - [ - "[^A-Za-z]", - "" - ] - ], + "serverReplacements": [["[^A-Za-z]", ""]], + "dataReplacements": [["[^A-Za-z]", ""]], "regionIdsFile": "data/regionids/region_map-FID_SUA_2011_AUST_SUA_NAME11.json" }, "STE": { "layerName": "region_map:FID_STE_2011_AUST", "server": "http://regionmap-dev.nationalmap.nicta.com.au/region_map/ows", "regionProp": "STE_CODE11", - "aliases": [ - "ste_code", - "ste_code_2011", - "ste" - ], + "aliases": ["ste_code", "ste_code_2011", "ste"], "digits": 1, "regionIdsFile": "data/regionids/region_map-FID_STE_2011_AUST_STE_CODE11.json" }, @@ -381,11 +269,7 @@ "layerName": "region_map:FID_SOS_2011_AUST", "server": "http://regionmap-dev.nationalmap.nicta.com.au/region_map/ows", "regionProp": "SOS_CODE11", - "aliases": [ - "sos_code_2011", - "sos_code", - "sos" - ], + "aliases": ["sos_code_2011", "sos_code", "sos"], "digits": 2, "description": "Section of state", "regionIdsFile": "data/regionids/region_map-FID_SOS_2011_AUST_SOS_CODE11.json" @@ -394,11 +278,7 @@ "layerName": "region_map:FID_SOSR_2011_AUST", "server": "http://regionmap-dev.nationalmap.nicta.com.au/region_map/ows", "regionProp": "SSR_CODE11", - "aliases": [ - "sosr_code_2011", - "sosr_code", - "sosr" - ], + "aliases": ["sosr_code_2011", "sosr_code", "sosr"], "digits": 3, "description": "Section of state range", "regionIdsFile": "data/regionids/region_map-FID_SOSR_2011_AUST_SSR_CODE11.json" @@ -407,11 +287,7 @@ "layerName": "region_map:FID_UCL_2011_AUST", "server": "http://regionmap-dev.nationalmap.nicta.com.au/region_map/ows", "regionProp": "UCL_CODE11", - "aliases": [ - "ucl_code_2011", - "ucl_code", - "ucl" - ], + "aliases": ["ucl_code_2011", "ucl_code", "ucl"], "digits": 6, "description": "Urban centres and localities", "regionIdsFile": "data/regionids/region_map-FID_UCL_2011_AUST_UCL_CODE11.json" @@ -420,11 +296,7 @@ "layerName": "region_map:FID_IREG_2011_AUST", "server": "http://regionmap-dev.nationalmap.nicta.com.au/region_map/ows", "regionProp": "IR_CODE11", - "aliases": [ - "ireg_code_2011", - "ireg_code", - "ireg" - ], + "aliases": ["ireg_code_2011", "ireg_code", "ireg"], "digits": 3, "description": "Indigenous regions", "regionIdsFile": "data/regionids/region_map-FID_IREG_2011_AUST_IR_CODE11.json" @@ -433,11 +305,7 @@ "layerName": "region_map:FID_ILOC_2011_AUST", "server": "http://regionmap-dev.nationalmap.nicta.com.au/region_map/ows", "regionProp": "IL_CODE11", - "aliases": [ - "iloc_code_2011", - "iloc_code", - "iloc" - ], + "aliases": ["iloc_code_2011", "iloc_code", "iloc"], "digits": 8, "description": "Indigenous locations", "regionIdsFile": "data/regionids/region_map-FID_ILOC_2011_AUST_IL_CODE11.json" @@ -446,11 +314,7 @@ "layerName": "region_map:FID_IARE_2011_AUST", "server": "http://regionmap-dev.nationalmap.nicta.com.au/region_map/ows", "regionProp": "IA_CODE11", - "aliases": [ - "iare_code_2011", - "iare_code", - "iare" - ], + "aliases": ["iare_code_2011", "iare_code", "iare"], "digits": 6, "description": "Indigenous areas", "regionIdsFile": "data/regionids/region_map-FID_IARE_2011_AUST_IA_CODE11.json" @@ -459,11 +323,7 @@ "layerName": "region_map:FID_RA_2011_AUST", "server": "http://regionmap-dev.nationalmap.nicta.com.au/region_map/ows", "regionProp": "RA_CODE11", - "aliases": [ - "ra_code_2011", - "ra_code", - "ra" - ], + "aliases": ["ra_code_2011", "ra_code", "ra"], "digits": 2, "description": "Remoteness areas", "regionIdsFile": "data/regionids/region_map-FID_RA_2011_AUST_RA_CODE11.json" @@ -472,11 +332,7 @@ "layerName": "region_map:FID_TR_2015_AUST", "server": "http://regionmap-dev.nationalmap.nicta.com.au/region_map/ows", "regionProp": "TR_CODE15", - "aliases": [ - "tr_code_2015", - "tr_code", - "tr" - ], + "aliases": ["tr_code_2015", "tr_code", "tr"], "digits": 5, "description": "Tourism regions", "regionIdsFile": "data/regionids/region_map-FID_TR_2015_AUST_TR_CODE15.json" @@ -485,11 +341,7 @@ "layerName": "region_map:FID_PHN_boundaries_AUS_Sep2015_V5", "server": "http://regionmap-dev.nationalmap.nicta.com.au/region_map/ows", "regionProp": "PHN_Code", - "aliases": [ - "phn_code_2015", - "phn_code", - "phn" - ], + "aliases": ["phn_code_2015", "phn_code", "phn"], "digits": 6, "description": "Primary health networks", "regionIdsFile": "data/regionids/region_map-FID_PHN_boundaries_AUS_Sep2015_V5_PHN_Code.json" @@ -498,76 +350,24 @@ "layerName": "region_map:FID_STE_2011_AUST", "server": "http://regionmap-dev.nationalmap.nicta.com.au/region_map/ows", "regionProp": "STE_NAME11", - "aliases": [ - "ste_name", - "ste_name_2011", - "state" - ], + "aliases": ["ste_name", "ste_name_2011", "state"], "dataReplacements": [ - [ - "^Vic[.]?$", - "Victoria" - ], - [ - "^N[ .]?S[ .]?W[ .]?$", - "New South Wales" - ], - [ - "^S[ .]?A[ .]?$", - "South Australia" - ], - [ - "^N[ .]?T[ .]?$", - "Northern Territory" - ], - [ - "^W[ .]?A[ .]?$", - "Western Australia" - ], - [ - "^Tas[.]?$", - "Tasmania" - ], - [ - "^Q[ .]?L[ .]?D[ .]?$", - "Queensland" - ], - [ - "^A[ .]?C[ .]?T[ .]?$", - "Australian Capital Territory" - ], - [ - "^1$", - "New South Wales" - ], - [ - "^2$", - "Victoria" - ], - [ - "^3$", - "Queensland" - ], - [ - "^4$", - "South Australia" - ], - [ - "^5$", - "Western Australia" - ], - [ - "^6$", - "Northern Territory" - ], - [ - "^7$", - "Australian Capital Territory" - ], - [ - "^8$", - "Other Territories" - ] + ["^Vic[.]?$", "Victoria"], + ["^N[ .]?S[ .]?W[ .]?$", "New South Wales"], + ["^S[ .]?A[ .]?$", "South Australia"], + ["^N[ .]?T[ .]?$", "Northern Territory"], + ["^W[ .]?A[ .]?$", "Western Australia"], + ["^Tas[.]?$", "Tasmania"], + ["^Q[ .]?L[ .]?D[ .]?$", "Queensland"], + ["^A[ .]?C[ .]?T[ .]?$", "Australian Capital Territory"], + ["^1$", "New South Wales"], + ["^2$", "Victoria"], + ["^3$", "Queensland"], + ["^4$", "South Australia"], + ["^5$", "Western Australia"], + ["^6$", "Northern Territory"], + ["^7$", "Australian Capital Territory"], + ["^8$", "Other Territories"] ], "regionIdsFile": "data/regionids/region_map-FID_STE_2011_AUST_STE_NAME11.json" }, @@ -575,10 +375,7 @@ "layerName": "region_map:FID_TM_WORLD_BORDERS", "server": "http://regionmap-dev.nationalmap.nicta.com.au/region_map/ows", "regionProp": "ISO2", - "aliases": [ - "cnt2", - "iso2" - ], + "aliases": ["cnt2", "iso2"], "digits": 2, "textCodes": true, "regionIdsFile": "data/regionids/region_map-FID_TM_WORLD_BORDERS_ISO2.json" @@ -587,11 +384,7 @@ "layerName": "region_map:FID_TM_WORLD_BORDERS", "server": "http://regionmap-dev.nationalmap.nicta.com.au/region_map/ows", "regionProp": "ISO3", - "aliases": [ - "iso3", - "iso3", - "country" - ], + "aliases": ["iso3", "iso3", "country"], "digits": 3, "textCodes": true, "regionIdsFile": "data/regionids/region_map-FID_TM_WORLD_BORDERS_ISO3.json" @@ -601,18 +394,14 @@ "server": "http://regionmap-dev.nationalmap.nicta.com.au/region_map/ows", "regionProp": "NAME", "textCodes": true, - "aliases": [ - "country" - ], + "aliases": ["country"], "regionIdsFile": "data/regionids/region_map-FID_TM_WORLD_BORDERS_NAME.json" }, "AUS": { "layerName": "region_map:FID_AUS_2011_AUST", "server": "http://regionmap-dev.nationalmap.nicta.com.au/region_map/ows", "regionProp": "AUS_CODE", - "aliases": [ - "aus" - ], + "aliases": ["aus"], "regionIdsFile": "data/regionids/region_map-FID_AUS_2011_AUST_AUS_CODE.json" } } diff --git a/wwwroot/test/csv/regionMappingDupeIds.json b/wwwroot/test/csv/regionMappingDupeIds.json index c72fbf4d730..a127fef39a8 100644 --- a/wwwroot/test/csv/regionMappingDupeIds.json +++ b/wwwroot/test/csv/regionMappingDupeIds.json @@ -1,25 +1,21 @@ { - "comments": "Duplicate definitions are not allowed", - "regionWmsMap": { - "SA1": { - "description": "Statistical Area Level 1", - "layerName": "region_map:FID_SA1_2011_AUST", - "server": "http://geoserver.nationalmap.nicta.com.au/region_map/ows", - "regionProp": "SA1_7DIG11", - "aliases": [ - "sa1" - ] - }, - "SA1": { - "layerName":"region_map:FID_SA4_2011_AUST", - "server": "http://geoserver.nationalmap.nicta.com.au/region_map/ows", - "regionProp": "SA4_CODE11", - "aliases": ["sa4_code", "sa4_code", "sa4"], - "digits": 3, - "description": "Statistical Area Level 4", - "aliases": [ - "sa1" - ] - } + "comments": "Duplicate definitions are not allowed", + "regionWmsMap": { + "SA1": { + "description": "Statistical Area Level 1", + "layerName": "region_map:FID_SA1_2011_AUST", + "server": "http://geoserver.nationalmap.nicta.com.au/region_map/ows", + "regionProp": "SA1_7DIG11", + "aliases": ["sa1"] + }, + "SA1": { + "layerName": "region_map:FID_SA4_2011_AUST", + "server": "http://geoserver.nationalmap.nicta.com.au/region_map/ows", + "regionProp": "SA4_CODE11", + "aliases": ["sa4_code", "sa4_code", "sa4"], + "digits": 3, + "description": "Statistical Area Level 4", + "aliases": ["sa1"] } + } } diff --git a/wwwroot/test/init/arcgis.json b/wwwroot/test/init/arcgis.json index 4153c76e1ba..4ce83fc3ad8 100644 --- a/wwwroot/test/init/arcgis.json +++ b/wwwroot/test/init/arcgis.json @@ -8,30 +8,28 @@ "name": "Gravity Anomaly (single dynamic layer)", "type": "esri-mapServer", "url": "http://services.ga.gov.au/gis/rest/services/Geophysical_Grids/MapServer/9", - "attribution" : "Plain text hello", - "featureInfoTemplate" : "

    Heading1

    Heading2

    Heading3

    Heading4

    Heading5
    Heading6

    Marked text

    Strike through text

    Underlined text

    Small text

    Bold text

    • Default unordered list
    • Default unordered list
    1. Default ordered list
    2. Default ordered list
    • circle unordered list
    • circle unordered list
    • square unordered list
    • square unordered list
    1. Upper Roman ordered list
    2. Upper Roman ordered list
    1. Lower Alpha ordered list
    2. Lower Alpha ordered list
    • list without list style
    • list without list style

    center align text

    right align text

    justified text

    " + "attribution": "Plain text hello", + "featureInfoTemplate": "

    Heading1

    Heading2

    Heading3

    Heading4

    Heading5
    Heading6

    Marked text

    Strike through text

    Underlined text

    Small text

    Bold text

    • Default unordered list
    • Default unordered list
    1. Default ordered list
    2. Default ordered list
    • circle unordered list
    • circle unordered list
    • square unordered list
    • square unordered list
    1. Upper Roman ordered list
    2. Upper Roman ordered list
    1. Lower Alpha ordered list
    2. Lower Alpha ordered list
    • list without list style
    • list without list style

    center align text

    right align text

    justified text

    " }, { "name": "Gravity Anomaly two", "type": "esri-mapServer", "url": "http://services.ga.gov.au/gis/rest/services/Geophysical_Grids/MapServer/9", - "attribution" : - { - "text" : "test attribution which is a link", - "link" : "http://www.ga.gov.au" - }, - "featureInfoTemplate" : "Red is {{Red}}. Blue is {{Blue}}

    Green is {{Green}}

    !" + "attribution": { + "text": "test attribution which is a link", + "link": "http://www.ga.gov.au" + }, + "featureInfoTemplate": "Red is {{Red}}. Blue is {{Blue}}

    Green is {{Green}}

    !" }, { "name": "Gravity Anomaly with partials", "type": "esri-mapServer", "url": "http://services.ga.gov.au/gis/rest/services/Geophysical_Grids/MapServer/9", - "attribution" : - { - "text" : "test attribution which is a link", - "link" : "http://www.ga.gov.au" - }, - "featureInfoTemplate" : { + "attribution": { + "text": "test attribution which is a link", + "link": "http://www.ga.gov.au" + }, + "featureInfoTemplate": { "template": "{{>header}}Red is {{Red}}. Blue is {{Blue}}. Green is {{Green}}.{{>footer}}", "partials": { "header": "

    Color Information


    ", @@ -42,7 +40,7 @@ { "name": "Bad link", "type": "esri-mapServer", - "url": "http://www.ga.gov.au/gisimg/rest/services/earth_science/Geoscience_Australia_National_Geophysical_Grids/MapServer/6", + "url": "http://www.ga.gov.au/gisimg/rest/services/earth_science/Geoscience_Australia_National_Geophysical_Grids/MapServer/6" } ], // This shows how you can display descriptive info on a group in the Data preview panel. diff --git a/wwwroot/test/init/bom.json b/wwwroot/test/init/bom.json index 50b829cf9c8..4fe1a7fef32 100644 --- a/wwwroot/test/init/bom.json +++ b/wwwroot/test/init/bom.json @@ -1,246 +1,246 @@ { - "catalog": [ + "catalog": [ + { + "type": "group", + "name": "Bureau of Meteorology Water Regulations Data", + "description": "The Bureau receives water data measured at stations around Australia from organisations named in the Water Regulations (2008). This data is stored in the Australian Water Resource Information System (AWRIS). A large proportion of time series data in AWRIS is made available to the public via Sensor Observation Service (SOS2) web services. NEII uses these web services to present storage levels, storage volume, water course discharge and water course levels data. Please refer to http://www.bom.gov.au/waterdata/ for more information.", + "custodian": "Bureau of Meteorology", + "isOpen": true, + "items": [ { - "type": "group", - "name": "Bureau of Meteorology Water Regulations Data", - "description": "The Bureau receives water data measured at stations around Australia from organisations named in the Water Regulations (2008). This data is stored in the Australian Water Resource Information System (AWRIS). A large proportion of time series data in AWRIS is made available to the public via Sensor Observation Service (SOS2) web services. NEII uses these web services to present storage levels, storage volume, water course discharge and water course levels data. Please refer to http://www.bom.gov.au/waterdata/ for more information.", - "custodian": "Bureau of Meteorology", - "isOpen": true, - "items": [ - { - "name": "Storage Levels", - "url": "http://www.bom.gov.au/waterdata/services", - "type": "sos", - "tableStyle": { - "scaleByValue": true, - "scale": 2, - "minDisplayValue": 0 - }, - "description": "Storage level, as defined under categories 3a and 3e of the Water Regulations 2008 – refer to [Definitions – Subcategories of Water Information](http://www.bom.gov.au/water/regulations/subCategoriesWaterAuxNav.shtml#surfWater). This data is shown as provided to the Bureau of Meteorology by data owner organisations and is subject to their terms and conditions of use. Please refer to Copyright on the [Water Data Online](http://www.bom.gov.au/waterdata/) website, and [Disclaimer](http://www.bom.gov.au/other/disclaimer.shtml) statements relating to the use of Bureau of Meteorology material.\n\nPlease note that storage levels made available on this website may be measured using local rather than Australian Height Datum (AHD). For this reason they may differ to the Storage Level provided on the Bureau of Meteorology's Water Storages website.", - "featureInfoTemplate": "# {{name}}\n\n|||\n|-------|-------|\n|Station Name|{{name}}|\n|Observation Date |{{date}}|\n|Storage Level|{{value}} metres|\n|Time Series Type|{{#terria.urlEncode}}{{Frequency}}{{/terria.urlEncode}}|\n|Parameter|{{#terria.urlEncode}}{{Observation type}}{{/terria.urlEncode}}|\n|SOS2 Feature Type|{{type}}|\n|SOS2 ID|{{id}}|\n|Latitude|{{lat}}|\n|Longitude|{{lon}}|\n
    {{terria.timeSeries.chart}}
    ", - "proceduresName": "Frequency", - "observablePropertiesName": "Observation type", - "startDate": "1980-01-01T00:00:00+10", - "requestSizeLimit": 225, - "requestNumberLimit": 3, - "showFeaturesAtAllTimes": true, - "procedures": [ - { - "identifier": "http://bom.gov.au/waterdata/services/tstypes/Pat7_C_B_1_YearlyMean", - "title": "Annual average", - "defaultDuration": "40y" - }, - { - "identifier": "http://bom.gov.au/waterdata/services/tstypes/Pat7_C_B_1_MonthlyMean", - "title": "Monthly average", - "defaultDuration": "3y" - }, - { - "identifier": "http://bom.gov.au/waterdata/services/tstypes/Pat7_C_B_1_DailyMean", - "title": "Daily average", - "defaultDuration": "32d" - }, - { - "identifier": "http://bom.gov.au/waterdata/services/tstypes/Pat7_C_B_1_DailyMin", - "title": "Daily minimum", - "defaultDuration": "32d" - }, - { - "identifier": "http://bom.gov.au/waterdata/services/tstypes/Pat7_C_B_1_DailyMax", - "title": "Daily maximum", - "defaultDuration": "32d" - }, - { - "identifier": "http://bom.gov.au/waterdata/services/tstypes/Pat7_C_B_1_HourlyMean", - "title": "Hourly average", - "defaultDuration": "48h" - // }, - // { - // "identifier": "http://bom.gov.au/waterdata/services/tstypes/Pat7_C_B_1", - // "title": "Real time", - // "defaultDuration": "4h" - } - ], - "observableProperties": [ - { - "identifier": "http://bom.gov.au/waterdata/services/parameters/Storage Level", - "title": "Storage Level", - "units": "metres" - } - ] - }, - { - "name": "Storage Volume", - "url": "http://www.bom.gov.au/waterdata/services", - "type": "sos", - "tableStyle": { - "scaleByValue": true, - "scale": 2, - "minDisplayValue": 0 - }, - "description": "Storage volume, as defined under category 3b of the Water Regulations 2008 – refer to [Definitions – Subcategories of Water Information](http://www.bom.gov.au/water/regulations/subCategoriesWaterAuxNav.shtml#surfWater). This data is shown as provided to the Bureau of Meteorology by data owner organisations and is subject to their terms and conditions of use. Please refer to Copyright on the [Water Data Online](http://www.bom.gov.au/waterdata/) website, and [Disclaimer](http://www.bom.gov.au/other/disclaimer.shtml) statements relating to the use of Bureau of Meteorology material.\n\nPlease note that storage volumes made available on this website are usually total rather than accessible volume, depending on how they are supplied by the data owner. For this reason they may differ to the Storage Volume provided on the Bureau of Meteorology's Water Storages website and mobile app.", - "featureInfoTemplate": "# {{name}}\n\n|||\n|-------|-------|\n|Station Name|{{name}}|\n|Observation Date |{{date}}|\n|Storage Volume|{{value}} MegaLitres|\n|Time Series Type|{{#terria.urlEncode}}{{Frequency}}{{/terria.urlEncode}}|\n|Parameter|{{#terria.urlEncode}}{{Observation type}}{{/terria.urlEncode}}|\n|SOS2 Feature Type|{{type}}|\n|SOS2 ID|{{id}}|\n|Latitude|{{lat}}|\n|Longitude|{{lon}}|\n
    {{terria.timeSeries.chart}}
    ", - "proceduresName": "Frequency", - "observablePropertiesName": "Observation type", - "startDate": "1980-01-01T00:00:00+10", - "requestSizeLimit": 225, - "requestNumberLimit": 3, - "showFeaturesAtAllTimes": true, - "procedures": [ - { - "identifier": "http://bom.gov.au/waterdata/services/tstypes/Pat6_C_B_1_YearlyMean", - "title": "Annual average", - "defaultDuration": "40y" - }, - { - "identifier": "http://bom.gov.au/waterdata/services/tstypes/Pat6_C_B_1_MonthlyMean", - "title": "Monthly average", - "defaultDuration": "3y" - }, - { - "identifier": "http://bom.gov.au/waterdata/services/tstypes/Pat6_C_B_1_DailyMean", - "title": "Daily average", - "defaultDuration": "32d" - }, - { - "identifier": "http://bom.gov.au/waterdata/services/tstypes/Pat6_C_B_1_DailyMin", - "title": "Daily minimum", - "defaultDuration": "32d" - }, - { - "identifier": "http://bom.gov.au/waterdata/services/tstypes/Pat6_C_B_1_DailyMax", - "title": "Daily maximum", - "defaultDuration": "32d" - }, - { - "identifier": "http://bom.gov.au/waterdata/services/tstypes/Pat6_C_B_1_HourlyMean", - "title": "Hourly average", - "defaultDuration": "48h" - // }, - // { - // "identifier": "http://bom.gov.au/waterdata/services/tstypes/Pat6_C_B_1", - // "title": "Real time", - // "defaultDuration": "4h" - } - ], - "observableProperties": [ - { - "identifier": "http://bom.gov.au/waterdata/services/parameters/Storage Volume", - "title": "Storage Volume", - "units": "MegaLitres" - } - ] - }, - { - "name": "Watercourse Levels", - "url": "http://www.bom.gov.au/waterdata/services", - "type": "sos", - "proceduresName": "Frequency", - "description": "Watercourse levels, as defined under category 1a of the Water Regulations 2008 – refer to [Definitions – Subcategories of Water Information](http://www.bom.gov.au/water/regulations/subCategoriesWaterAuxNav.shtml#surfWater). This data is shown as provided to the Bureau of Meteorology by data owner organisations and is subject to their terms and conditions of use. Please refer to Copyright on the [Water Data Online](http://www.bom.gov.au/waterdata/) website, and [Disclaimer](http://www.bom.gov.au/other/disclaimer.shtml) statements relating to the use of Bureau of Meteorology material.", - "featureInfoTemplate": "# {{name}}\n\n|||\n|-------|-------|\n|Station Name|{{name}}|\n|SOS2 Feature Type|{{type}}|\n|SOS2 ID|{{id}}|\n|Latitude|{{lat}}|\n|Longitude|{{lon}}|\n\n{{chart}}", - "observablePropertiesName": "Observation type", - "startDate": "1980-01-01T00:00:00+10", - "endDate": "2016-10-01T00:00:00+10", - "procedures": [ - { - "identifier": "http://bom.gov.au/waterdata/services/tstypes/Pat3_C_B_1_YearlyMean", - "title": "Annual average", - "defaultDuration": "40y" - }, - { - "identifier": "http://bom.gov.au/waterdata/services/tstypes/Pat3_C_B_1_MonthlyMean", - "title": "Monthly average", - "defaultDuration": "3y" - }, - { - "identifier": "http://bom.gov.au/waterdata/services/tstypes/Pat3_C_B_1_DailyMean", - "title": "Daily average", - "defaultDuration": "32d" - }, - { - "identifier": "http://bom.gov.au/waterdata/services/tstypes/Pat3_C_B_1_DailyMin", - "title": "Daily minimum", - "defaultDuration": "32d" - }, - { - "identifier": "http://bom.gov.au/waterdata/services/tstypes/Pat3_C_B_1_DailyMax", - "title": "Daily maximum", - "defaultDuration": "32d" - }, - { - "identifier": "http://bom.gov.au/waterdata/services/tstypes/Pat3_C_B_1_HourlyMean", - "title": "Hourly average", - "defaultDuration": "48h" - // }, - // { - // "identifier": "http://bom.gov.au/waterdata/services/tstypes/Pat3_C_B_1", - // "title": "Real time", - // "defaultDuration": "4h" - } - ], - "observableProperties": [ - { - "identifier": "http://bom.gov.au/waterdata/services/parameters/Water Course Level", - "title": "Water Course Level", - "units": "metres" - } - ] - }, - { - "name": "Watercourse Discharge", - "url": "http://www.bom.gov.au/waterdata/services", - "type": "sos", - "proceduresName": "Frequency", - "description": "Watercourse discharge, as defined under category 1b of the Water Regulations 2008 – refer to [Definitions – Subcategories of Water Information](http://www.bom.gov.au/water/regulations/subCategoriesWaterAuxNav.shtml#surfWater). This data is shown as provided to the Bureau of Meteorology by data owner organisations and is subject to their terms and conditions of use. Please refer to Copyright on the [Water Data Online](http://www.bom.gov.au/waterdata/) website, and [Disclaimer](http://www.bom.gov.au/other/disclaimer.shtml) statements relating to the use of Bureau of Meteorology material.", - "featureInfoTemplate": "# {{name}}\n\n|||\n|-------|-------|\n|Station Name|{{name}}|\n|SOS2 Feature Type|{{type}}|\n|SOS2 ID|{{id}}|\n|Latitude|{{lat}}|\n|Longitude|{{lon}}|\n\n{{chart}}", - "observablePropertiesName": "Observation type", - "startDate": "1980-01-01T00:00:00+10", - "procedures": [ - { - "identifier": "http://bom.gov.au/waterdata/services/tstypes/Pat4_C_B_1_YearlyMean", - "title": "Annual average", - "defaultDuration": "40y" - }, - { - "identifier": "http://bom.gov.au/waterdata/services/tstypes/Pat4_C_B_1_MonthlyMean", - "title": "Monthly average", - "defaultDuration": "3y" - }, - { - "identifier": "http://bom.gov.au/waterdata/services/tstypes/Pat4_C_B_1_DailyMean", - "title": "Daily average", - "defaultDuration": "32d" - }, - { - "identifier": "http://bom.gov.au/waterdata/services/tstypes/Pat4_C_B_1_DailyMin", - "title": "Daily minimum", - "defaultDuration": "32d" - }, - { - "identifier": "http://bom.gov.au/waterdata/services/tstypes/Pat4_C_B_1_DailyMax", - "title": "Daily maximum", - "defaultDuration": "32d" - }, - { - "identifier": "http://bom.gov.au/waterdata/services/tstypes/Pat4_C_B_1_HourlyMean", - "title": "Hourly average", - "defaultDuration": "48h" - // }, - // { - // "identifier": "http://bom.gov.au/waterdata/services/tstypes/Pat4_C_B_1", - // "title": "Real time", - // "defaultDuration": "4h" - } - ], - "observableProperties": [ - { - "identifier": "http://bom.gov.au/waterdata/services/parameters/Water Course Discharge", - "title": "Water Course Discharge", - "units": "cubic m/s" - } - ] - } - ] + "name": "Storage Levels", + "url": "http://www.bom.gov.au/waterdata/services", + "type": "sos", + "tableStyle": { + "scaleByValue": true, + "scale": 2, + "minDisplayValue": 0 + }, + "description": "Storage level, as defined under categories 3a and 3e of the Water Regulations 2008 – refer to [Definitions – Subcategories of Water Information](http://www.bom.gov.au/water/regulations/subCategoriesWaterAuxNav.shtml#surfWater). This data is shown as provided to the Bureau of Meteorology by data owner organisations and is subject to their terms and conditions of use. Please refer to Copyright on the [Water Data Online](http://www.bom.gov.au/waterdata/) website, and [Disclaimer](http://www.bom.gov.au/other/disclaimer.shtml) statements relating to the use of Bureau of Meteorology material.\n\nPlease note that storage levels made available on this website may be measured using local rather than Australian Height Datum (AHD). For this reason they may differ to the Storage Level provided on the Bureau of Meteorology's Water Storages website.", + "featureInfoTemplate": "# {{name}}\n\n|||\n|-------|-------|\n|Station Name|{{name}}|\n|Observation Date |{{date}}|\n|Storage Level|{{value}} metres|\n|Time Series Type|{{#terria.urlEncode}}{{Frequency}}{{/terria.urlEncode}}|\n|Parameter|{{#terria.urlEncode}}{{Observation type}}{{/terria.urlEncode}}|\n|SOS2 Feature Type|{{type}}|\n|SOS2 ID|{{id}}|\n|Latitude|{{lat}}|\n|Longitude|{{lon}}|\n
    {{terria.timeSeries.chart}}
    ", + "proceduresName": "Frequency", + "observablePropertiesName": "Observation type", + "startDate": "1980-01-01T00:00:00+10", + "requestSizeLimit": 225, + "requestNumberLimit": 3, + "showFeaturesAtAllTimes": true, + "procedures": [ + { + "identifier": "http://bom.gov.au/waterdata/services/tstypes/Pat7_C_B_1_YearlyMean", + "title": "Annual average", + "defaultDuration": "40y" + }, + { + "identifier": "http://bom.gov.au/waterdata/services/tstypes/Pat7_C_B_1_MonthlyMean", + "title": "Monthly average", + "defaultDuration": "3y" + }, + { + "identifier": "http://bom.gov.au/waterdata/services/tstypes/Pat7_C_B_1_DailyMean", + "title": "Daily average", + "defaultDuration": "32d" + }, + { + "identifier": "http://bom.gov.au/waterdata/services/tstypes/Pat7_C_B_1_DailyMin", + "title": "Daily minimum", + "defaultDuration": "32d" + }, + { + "identifier": "http://bom.gov.au/waterdata/services/tstypes/Pat7_C_B_1_DailyMax", + "title": "Daily maximum", + "defaultDuration": "32d" + }, + { + "identifier": "http://bom.gov.au/waterdata/services/tstypes/Pat7_C_B_1_HourlyMean", + "title": "Hourly average", + "defaultDuration": "48h" + // }, + // { + // "identifier": "http://bom.gov.au/waterdata/services/tstypes/Pat7_C_B_1", + // "title": "Real time", + // "defaultDuration": "4h" + } + ], + "observableProperties": [ + { + "identifier": "http://bom.gov.au/waterdata/services/parameters/Storage Level", + "title": "Storage Level", + "units": "metres" + } + ] + }, + { + "name": "Storage Volume", + "url": "http://www.bom.gov.au/waterdata/services", + "type": "sos", + "tableStyle": { + "scaleByValue": true, + "scale": 2, + "minDisplayValue": 0 + }, + "description": "Storage volume, as defined under category 3b of the Water Regulations 2008 – refer to [Definitions – Subcategories of Water Information](http://www.bom.gov.au/water/regulations/subCategoriesWaterAuxNav.shtml#surfWater). This data is shown as provided to the Bureau of Meteorology by data owner organisations and is subject to their terms and conditions of use. Please refer to Copyright on the [Water Data Online](http://www.bom.gov.au/waterdata/) website, and [Disclaimer](http://www.bom.gov.au/other/disclaimer.shtml) statements relating to the use of Bureau of Meteorology material.\n\nPlease note that storage volumes made available on this website are usually total rather than accessible volume, depending on how they are supplied by the data owner. For this reason they may differ to the Storage Volume provided on the Bureau of Meteorology's Water Storages website and mobile app.", + "featureInfoTemplate": "# {{name}}\n\n|||\n|-------|-------|\n|Station Name|{{name}}|\n|Observation Date |{{date}}|\n|Storage Volume|{{value}} MegaLitres|\n|Time Series Type|{{#terria.urlEncode}}{{Frequency}}{{/terria.urlEncode}}|\n|Parameter|{{#terria.urlEncode}}{{Observation type}}{{/terria.urlEncode}}|\n|SOS2 Feature Type|{{type}}|\n|SOS2 ID|{{id}}|\n|Latitude|{{lat}}|\n|Longitude|{{lon}}|\n
    {{terria.timeSeries.chart}}
    ", + "proceduresName": "Frequency", + "observablePropertiesName": "Observation type", + "startDate": "1980-01-01T00:00:00+10", + "requestSizeLimit": 225, + "requestNumberLimit": 3, + "showFeaturesAtAllTimes": true, + "procedures": [ + { + "identifier": "http://bom.gov.au/waterdata/services/tstypes/Pat6_C_B_1_YearlyMean", + "title": "Annual average", + "defaultDuration": "40y" + }, + { + "identifier": "http://bom.gov.au/waterdata/services/tstypes/Pat6_C_B_1_MonthlyMean", + "title": "Monthly average", + "defaultDuration": "3y" + }, + { + "identifier": "http://bom.gov.au/waterdata/services/tstypes/Pat6_C_B_1_DailyMean", + "title": "Daily average", + "defaultDuration": "32d" + }, + { + "identifier": "http://bom.gov.au/waterdata/services/tstypes/Pat6_C_B_1_DailyMin", + "title": "Daily minimum", + "defaultDuration": "32d" + }, + { + "identifier": "http://bom.gov.au/waterdata/services/tstypes/Pat6_C_B_1_DailyMax", + "title": "Daily maximum", + "defaultDuration": "32d" + }, + { + "identifier": "http://bom.gov.au/waterdata/services/tstypes/Pat6_C_B_1_HourlyMean", + "title": "Hourly average", + "defaultDuration": "48h" + // }, + // { + // "identifier": "http://bom.gov.au/waterdata/services/tstypes/Pat6_C_B_1", + // "title": "Real time", + // "defaultDuration": "4h" + } + ], + "observableProperties": [ + { + "identifier": "http://bom.gov.au/waterdata/services/parameters/Storage Volume", + "title": "Storage Volume", + "units": "MegaLitres" + } + ] + }, + { + "name": "Watercourse Levels", + "url": "http://www.bom.gov.au/waterdata/services", + "type": "sos", + "proceduresName": "Frequency", + "description": "Watercourse levels, as defined under category 1a of the Water Regulations 2008 – refer to [Definitions – Subcategories of Water Information](http://www.bom.gov.au/water/regulations/subCategoriesWaterAuxNav.shtml#surfWater). This data is shown as provided to the Bureau of Meteorology by data owner organisations and is subject to their terms and conditions of use. Please refer to Copyright on the [Water Data Online](http://www.bom.gov.au/waterdata/) website, and [Disclaimer](http://www.bom.gov.au/other/disclaimer.shtml) statements relating to the use of Bureau of Meteorology material.", + "featureInfoTemplate": "# {{name}}\n\n|||\n|-------|-------|\n|Station Name|{{name}}|\n|SOS2 Feature Type|{{type}}|\n|SOS2 ID|{{id}}|\n|Latitude|{{lat}}|\n|Longitude|{{lon}}|\n\n{{chart}}", + "observablePropertiesName": "Observation type", + "startDate": "1980-01-01T00:00:00+10", + "endDate": "2016-10-01T00:00:00+10", + "procedures": [ + { + "identifier": "http://bom.gov.au/waterdata/services/tstypes/Pat3_C_B_1_YearlyMean", + "title": "Annual average", + "defaultDuration": "40y" + }, + { + "identifier": "http://bom.gov.au/waterdata/services/tstypes/Pat3_C_B_1_MonthlyMean", + "title": "Monthly average", + "defaultDuration": "3y" + }, + { + "identifier": "http://bom.gov.au/waterdata/services/tstypes/Pat3_C_B_1_DailyMean", + "title": "Daily average", + "defaultDuration": "32d" + }, + { + "identifier": "http://bom.gov.au/waterdata/services/tstypes/Pat3_C_B_1_DailyMin", + "title": "Daily minimum", + "defaultDuration": "32d" + }, + { + "identifier": "http://bom.gov.au/waterdata/services/tstypes/Pat3_C_B_1_DailyMax", + "title": "Daily maximum", + "defaultDuration": "32d" + }, + { + "identifier": "http://bom.gov.au/waterdata/services/tstypes/Pat3_C_B_1_HourlyMean", + "title": "Hourly average", + "defaultDuration": "48h" + // }, + // { + // "identifier": "http://bom.gov.au/waterdata/services/tstypes/Pat3_C_B_1", + // "title": "Real time", + // "defaultDuration": "4h" + } + ], + "observableProperties": [ + { + "identifier": "http://bom.gov.au/waterdata/services/parameters/Water Course Level", + "title": "Water Course Level", + "units": "metres" + } + ] + }, + { + "name": "Watercourse Discharge", + "url": "http://www.bom.gov.au/waterdata/services", + "type": "sos", + "proceduresName": "Frequency", + "description": "Watercourse discharge, as defined under category 1b of the Water Regulations 2008 – refer to [Definitions – Subcategories of Water Information](http://www.bom.gov.au/water/regulations/subCategoriesWaterAuxNav.shtml#surfWater). This data is shown as provided to the Bureau of Meteorology by data owner organisations and is subject to their terms and conditions of use. Please refer to Copyright on the [Water Data Online](http://www.bom.gov.au/waterdata/) website, and [Disclaimer](http://www.bom.gov.au/other/disclaimer.shtml) statements relating to the use of Bureau of Meteorology material.", + "featureInfoTemplate": "# {{name}}\n\n|||\n|-------|-------|\n|Station Name|{{name}}|\n|SOS2 Feature Type|{{type}}|\n|SOS2 ID|{{id}}|\n|Latitude|{{lat}}|\n|Longitude|{{lon}}|\n\n{{chart}}", + "observablePropertiesName": "Observation type", + "startDate": "1980-01-01T00:00:00+10", + "procedures": [ + { + "identifier": "http://bom.gov.au/waterdata/services/tstypes/Pat4_C_B_1_YearlyMean", + "title": "Annual average", + "defaultDuration": "40y" + }, + { + "identifier": "http://bom.gov.au/waterdata/services/tstypes/Pat4_C_B_1_MonthlyMean", + "title": "Monthly average", + "defaultDuration": "3y" + }, + { + "identifier": "http://bom.gov.au/waterdata/services/tstypes/Pat4_C_B_1_DailyMean", + "title": "Daily average", + "defaultDuration": "32d" + }, + { + "identifier": "http://bom.gov.au/waterdata/services/tstypes/Pat4_C_B_1_DailyMin", + "title": "Daily minimum", + "defaultDuration": "32d" + }, + { + "identifier": "http://bom.gov.au/waterdata/services/tstypes/Pat4_C_B_1_DailyMax", + "title": "Daily maximum", + "defaultDuration": "32d" + }, + { + "identifier": "http://bom.gov.au/waterdata/services/tstypes/Pat4_C_B_1_HourlyMean", + "title": "Hourly average", + "defaultDuration": "48h" + // }, + // { + // "identifier": "http://bom.gov.au/waterdata/services/tstypes/Pat4_C_B_1", + // "title": "Real time", + // "defaultDuration": "4h" + } + ], + "observableProperties": [ + { + "identifier": "http://bom.gov.au/waterdata/services/parameters/Water Course Discharge", + "title": "Water Course Discharge", + "units": "cubic m/s" + } + ] } - ] + ] + } + ] } diff --git a/wwwroot/test/init/cesium3dtiles.json b/wwwroot/test/init/cesium3dtiles.json index 54292ee900b..bfe3c1cf0b2 100644 --- a/wwwroot/test/init/cesium3dtiles.json +++ b/wwwroot/test/init/cesium3dtiles.json @@ -1,19 +1,19 @@ { - "catalog": [ + "catalog": [ + { + "name": "Cesium 3D Tiles", + "type": "group", + "items": [ { - "name": "Cesium 3D Tiles", - "type": "group", - "items": [ - { - "name": "Brisbane 3D city model (aero3Dpro)", - "type": "3d-tiles", - "url": "https://sample.aero3dpro.com.au/BrisbaneCBD/Scene/recon_h_3DTiles.json", - "options": { - "maximumScreenSpaceError": 1, - "maximumNumberOfLoadedTiles": 1000 - } - } - ] + "name": "Brisbane 3D city model (aero3Dpro)", + "type": "3d-tiles", + "url": "https://sample.aero3dpro.com.au/BrisbaneCBD/Scene/recon_h_3DTiles.json", + "options": { + "maximumScreenSpaceError": 1, + "maximumNumberOfLoadedTiles": 1000 + } } - ] + ] + } + ] } diff --git a/wwwroot/test/init/charts.json b/wwwroot/test/init/charts.json index 3656f93e447..174b8011e9a 100644 --- a/wwwroot/test/init/charts.json +++ b/wwwroot/test/init/charts.json @@ -21,13 +21,13 @@ "name": "Star Stations", "type": "csv", "url": "build/TerriaJS/test/csv/lat_lon_name_url_col.csv", - "featureInfoTemplate" : "
    TypeStation
    Value{{col}}
    Signal at 560Hz

    Sample data only

    " + "featureInfoTemplate": "
    TypeStation
    Value{{col}}
    Signal at 560Hz

    Sample data only

    " }, { "name": "Sheep Stations", "type": "csv", "url": "build/TerriaJS/test/csv/lat_lon_nullvalue.csv", - "featureInfoTemplate" : { + "featureInfoTemplate": { "name": "Number {{value}}", "template": "

    All sheep stations have the same time series plot.

    " } @@ -36,20 +36,20 @@ "name": "XY Plot", "type": "csv", "url": "build/TerriaJS/test/csv_nongeo/xy.csv", - "description":"test" + "description": "test" }, { "name": "XY Plot with units and yAxisMax", "type": "csv", "url": "build/TerriaJS/test/csv_nongeo/xy.csv", "tableStyle": { - "columns": { - "y": { - "yAxisMax": 6, - "units": "km/hr" - } + "columns": { + "y": { + "yAxisMax": 6, + "units": "km/hr" } - }, + } + } }, { "name": "XY Plot of plant height", @@ -69,7 +69,7 @@ "name": "Train Stations", "type": "csv", "url": "build/TerriaJS/test/csv/lat_lon_nullvalue.csv", - "featureInfoTemplate" : { + "featureInfoTemplate": { "name": "Number {{value}}", "template": "

    All train stations have the same x-y plot.

    " } @@ -78,7 +78,7 @@ "name": "Chart with inline data", "type": "csv", "url": "build/TerriaJS/test/csv/lat_lon_name_value.csv", - "featureInfoTemplate" : { + "featureInfoTemplate": { "template": "

    Chart with inline data

    x,plant height,z\n1,3,10\n5,10,5\n8,-2,3\n10,{{value}},7\n" } }, @@ -86,7 +86,7 @@ "name": "Chart with colors specified", "type": "csv", "url": "build/TerriaJS/test/csv/lat_lon_name_value.csv", - "featureInfoTemplate" : { + "featureInfoTemplate": { "template": "

    Chart with colors specified

    x,y\n1,3\n5,10\n8,-2\n10,{{value}}\n" } } diff --git a/wwwroot/test/init/composite.json b/wwwroot/test/init/composite.json index f80ce0f220d..e0a712864cb 100644 --- a/wwwroot/test/init/composite.json +++ b/wwwroot/test/init/composite.json @@ -1,167 +1,141 @@ { - "catalog": [ + "catalog": [ + { + "name": "Composite Tests", + "type": "group", + "items": [ { - "name": "Composite Tests", - "type": "group", - "items": [ + "name": "Composite of Stations and Lines", + "type": "composite", + "info": [ + { + "name": "This is a composite of the stations and lines.", + "content": "[Licence](http://www.ga.gov.au/copyright)" + } + ], + "items": [ + { + "name": "Power stations", + "layers": "Power Stations", + "info": [ { - "name": "Composite of Stations and Lines", - "type": "composite", - "info": [ - { - "name":"This is a composite of the stations and lines.", - "content":"[Licence](http://www.ga.gov.au/copyright)" - } - ], - "items": [ - { - "name": "Power stations", - "layers": "Power Stations", - "info": [ - { - "name": "Licensing, Terms & Conditions", - "content": "[Licence](http://www.ga.gov.au/copyright)" - } - ], - "dataCustodian": "[Geoscience Australia](http://www.ga.gov.au/)", - "url": "http://www.ga.gov.au/gis/services/energy/ASEIS_Features/MapServer/WMSServer", - "type": "wms", - "opacity": "1.0", - "clipToRectangle": true, - "parameters": {"tiled": true}, - "rectangle": [ - "100.0", - "-44.0", - "159.0", - "-4.0" - ] - }, - { - "name":"Transmission Lines", - "layers":"National_Electricity_Transmission_Lines", - "dataCustodian":"[Geoscience Australia](http://www.ga.gov.au/)", - "info": [ - { - "name":"Licensing, Terms & Conditions", - "content":"[Licence](http://www.ga.gov.au/copyright)" - } - ], - "infoSectionOrder": [ - "Data Description", - "Data Custodian", - "Licensing, Terms & Conditions", - "Service Description" - ], - "url":"http://www.ga.gov.au/gis/rest/services/topography/National_Electricity_Transmission_Lines/MapServer", - "type":"esri-mapServer", - "opacity":"1.0", - "clipToRectangle":true, - "legendUrl":"http://www.ga.gov.au/gis/server/capabilities/National_Electricity_Transmission_Lines.png", - "dataUrl":"http://www.ga.gov.au/gis/services/topography/National_Electricity_Transmission_Lines/MapServer/WFSServer?service=WFS&version=1.1.0&request=GetFeature&typeName=National_Electricity_Transmission_Lines&srsName=EPSG%3A4326&maxFeatures=100000", - "dataUrlType":"wfs-complete", - "rectangle":[ - "112.0", - "-48.0", - "155.0", - "-5.0" - ] - } - ] - }, + "name": "Licensing, Terms & Conditions", + "content": "[Licence](http://www.ga.gov.au/copyright)" + } + ], + "dataCustodian": "[Geoscience Australia](http://www.ga.gov.au/)", + "url": "http://www.ga.gov.au/gis/services/energy/ASEIS_Features/MapServer/WMSServer", + "type": "wms", + "opacity": "1.0", + "clipToRectangle": true, + "parameters": { "tiled": true }, + "rectangle": ["100.0", "-44.0", "159.0", "-4.0"] + }, + { + "name": "Transmission Lines", + "layers": "National_Electricity_Transmission_Lines", + "dataCustodian": "[Geoscience Australia](http://www.ga.gov.au/)", + "info": [ + { + "name": "Licensing, Terms & Conditions", + "content": "[Licence](http://www.ga.gov.au/copyright)" + } + ], + "infoSectionOrder": [ + "Data Description", + "Data Custodian", + "Licensing, Terms & Conditions", + "Service Description" + ], + "url": "http://www.ga.gov.au/gis/rest/services/topography/National_Electricity_Transmission_Lines/MapServer", + "type": "esri-mapServer", + "opacity": "1.0", + "clipToRectangle": true, + "legendUrl": "http://www.ga.gov.au/gis/server/capabilities/National_Electricity_Transmission_Lines.png", + "dataUrl": "http://www.ga.gov.au/gis/services/topography/National_Electricity_Transmission_Lines/MapServer/WFSServer?service=WFS&version=1.1.0&request=GetFeature&typeName=National_Electricity_Transmission_Lines&srsName=EPSG%3A4326&maxFeatures=100000", + "dataUrlType": "wfs-complete", + "rectangle": ["112.0", "-48.0", "155.0", "-5.0"] + } + ] + }, + { + "name": "Composite of Substations only", + "type": "composite", + "info": [ + { + "name": "This is a composite containing a single item, the substations.", + "content": "[Licence](http://www.ga.gov.au/copyright)" + } + ], + "items": [ + { + "name": "Substations", + "dataCustodian": "[Geoscience Australia](http://www.ga.gov.au/)", + "info": [ { - "name": "Composite of Substations only", - "type": "composite", - "info": [ - { - "name":"This is a composite containing a single item, the substations.", - "content":"[Licence](http://www.ga.gov.au/copyright)" - } - ], - "items": [ - { - "name":"Substations", - "dataCustodian":"[Geoscience Australia](http://www.ga.gov.au/)", - "info": [ - { - "name":"Licensing, Terms & Conditions", - "content":"[Licence](http://www.ga.gov.au/copyright)" - } - ], - "url":"http://www.ga.gov.au/gis/rest/services/topography/National_Electricity_Transmission_Substations/MapServer", - "layers":"National_Electricity_Transmission_Substations", - "type":"esri-mapServer", - "dataUrl":"http://www.ga.gov.au/gis/services/topography/National_Electricity_Transmission_Substations/MapServer/WFSServer?service=WFS&request=GetFeature&typeName=topography_National_Electricity_Transmission_Substations:National_Electricity_Transmission_Substations&srsName=EPSG%3A4326&maxFeatures=10000", - "dataUrlType":"wfs-complete", - "legendUrl":"http://www.ga.gov.au/gis/server/capabilities/National_Electricity_Transmission_Substations.png", - "clipToRectangle":true, - "opacity":"1.0", - "rectangle": [ - "112.0", - "-48.0", - "155.0", - "-5.0" - ] - } - ] - }, + "name": "Licensing, Terms & Conditions", + "content": "[Licence](http://www.ga.gov.au/copyright)" + } + ], + "url": "http://www.ga.gov.au/gis/rest/services/topography/National_Electricity_Transmission_Substations/MapServer", + "layers": "National_Electricity_Transmission_Substations", + "type": "esri-mapServer", + "dataUrl": "http://www.ga.gov.au/gis/services/topography/National_Electricity_Transmission_Substations/MapServer/WFSServer?service=WFS&request=GetFeature&typeName=topography_National_Electricity_Transmission_Substations:National_Electricity_Transmission_Substations&srsName=EPSG%3A4326&maxFeatures=10000", + "dataUrlType": "wfs-complete", + "legendUrl": "http://www.ga.gov.au/gis/server/capabilities/National_Electricity_Transmission_Substations.png", + "clipToRectangle": true, + "opacity": "1.0", + "rectangle": ["112.0", "-48.0", "155.0", "-5.0"] + } + ] + }, + { + "name": "A composite of 3", + "type": "composite", + "info": [ + { + "name": "This is a composite of three things.", + "content": "[Licence](http://www.ga.gov.au/copyright)" + } + ], + "items": [ + { + "type": "kml", + "url": "datasets/dance/CSP-Cost-benefit-NoCarbonPrice-Possiblelocations.kmz", + "legendUrl": "datasets/dance/CSP-Cost-benefit-legend.png", + "rectangle": ["137", "-41", "154", "-18"] + }, + { + "name": "Damwalls", + "layers": "damwalls", + "info": [ { - "name": "A composite of 3", - "type": "composite", - "info": [ - { - "name":"This is a composite of three things.", - "content":"[Licence](http://www.ga.gov.au/copyright)" - } - ], - "items": [ - { - "type":"kml", - "url":"datasets/dance/CSP-Cost-benefit-NoCarbonPrice-Possiblelocations.kmz", - "legendUrl":"datasets/dance/CSP-Cost-benefit-legend.png", - "rectangle": [ - "137", - "-41", - "154", - "-18" - ] - }, - { - "name":"Damwalls", - "layers":"damwalls", - "info": [ - { - "name":"Licensing, Terms & Conditions", - "content":"[Licence](http://www.ga.gov.au/copyright)" - } - ], - "dataCustodian":"[Geoscience Australia](http://www.ga.gov.au/)", - "url":"http://geoserver.nationalmap.nicta.com.au/geotopo_250k/ows", - "type":"wms", - "opacity":"1.0", - "clipToRectangle":true, - "parameters":{"tiled":true}, - "rectangle":["100.0", - "-44.0", - "159.0", - "-4.0"] - }, - { - "name":"Waste Management Facilities", - "type":"wms", - "url":"http://www.ga.gov.au/gis/services/topography/National_Waste_Management_Facilities/MapServer/WMSServer", - "layers":"National Waste Management Facilities", - "legendUrl":"http://www.ga.gov.au/gis/server/capabilities/National_Waste_Management_Facilities_Legend.png", - "opacity":"1.0", - "clipToRectangle":true, - "parameters":{"tiled":true}, - "rectangle":["112.0", - "-48.0", - "155.0", - "-5.0"] - } - ] + "name": "Licensing, Terms & Conditions", + "content": "[Licence](http://www.ga.gov.au/copyright)" } - ] + ], + "dataCustodian": "[Geoscience Australia](http://www.ga.gov.au/)", + "url": "http://geoserver.nationalmap.nicta.com.au/geotopo_250k/ows", + "type": "wms", + "opacity": "1.0", + "clipToRectangle": true, + "parameters": { "tiled": true }, + "rectangle": ["100.0", "-44.0", "159.0", "-4.0"] + }, + { + "name": "Waste Management Facilities", + "type": "wms", + "url": "http://www.ga.gov.au/gis/services/topography/National_Waste_Management_Facilities/MapServer/WMSServer", + "layers": "National Waste Management Facilities", + "legendUrl": "http://www.ga.gov.au/gis/server/capabilities/National_Waste_Management_Facilities_Legend.png", + "opacity": "1.0", + "clipToRectangle": true, + "parameters": { "tiled": true }, + "rectangle": ["112.0", "-48.0", "155.0", "-5.0"] + } + ] } - ] + ] + } + ] } diff --git a/wwwroot/test/init/configProxy.json b/wwwroot/test/init/configProxy.json index 127eab4a670..e5d0424663f 100644 --- a/wwwroot/test/init/configProxy.json +++ b/wwwroot/test/init/configProxy.json @@ -1,5 +1,5 @@ { - "parameters": { - "corsProxyBaseUrl": "/myproxy/" - } + "parameters": { + "corsProxyBaseUrl": "/myproxy/" + } } diff --git a/wwwroot/test/init/csv.json b/wwwroot/test/init/csv.json index 019fff86bd3..64f27ad623f 100644 --- a/wwwroot/test/init/csv.json +++ b/wwwroot/test/init/csv.json @@ -1,364 +1,366 @@ { - "catalog": [{ - "name": "CSV testing", - "type": "group", - "isOpen": true, - "items": [ - { - "name": "CSVs with moving features", - "nameInCatalog": "Moving features", - "type": "group", - "isOpen": false, - "items": [ - { - "name": "Moving features (sampled)", - "nameInCatalog": "Sampled", - "type": "csv", - "url": "build/TerriaJS/test/csv/lat_lon_enum_date_id.csv", - "idColumns": ["id"], - "tableStyle": { - "dataVariable": "value", - "scaleByValue": true - } - }, - { - "name": "Moving features turned off with []", - "nameInCatalog": "Turned off with []", - "type": "csv", - "url": "build/TerriaJS/test/csv/lat_lon_enum_date_id.csv", - "idColumns": [], - "tableStyle": { - "dataVariable": "value", - "scaleByValue": true - } - }, - { - "name": "Moving features turned off with null", - "nameInCatalog": "Turned off with null", - "type": "csv", - "url": "build/TerriaJS/test/csv/lat_lon_enum_date_id.csv", - "idColumns": null, - "tableStyle": { - "dataVariable": "value", - "scaleByValue": true - } - }, - { - "name": "Moving features (sampled, with info template)", - "nameInCatalog": "Sampled, with info template", - "type": "csv", - "url": "build/TerriaJS/test/csv/lat_lon_enum_date_id.csv", - "idColumns": ["id"], - "tableStyle": { - "dataVariable": "value", - "scaleByValue": true - }, - "featureInfoTemplate": "

    Name: {{id}}

    Time series

    {{terria.timeSeries.chart}}" - }, - { - "name": "Moving features (sampled, with manual info template)", - "nameInCatalog": "Sampled, with manual info template", - "type": "csv", - "url": "build/TerriaJS/test/csv/lat_lon_enum_date_id.csv", - "idColumns": ["id"], - "tableStyle": { - "dataVariable": "value", - "scaleByValue": true, - "columns": { - "value": { - "name": "speed", - "units": "km/hr" - } - } - }, - "featureInfoTemplate": "

    Name: {{id}}

    Time series

    {{terria.timeSeries.data}}

    " - }, - { - "name": "Moving features (not sampled)", - "nameInCatalog": "Not sampled", - "type": "csv", - "url": "build/TerriaJS/test/csv/lat_lon_enum_date_id.csv", - "idColumns": ["id"], - "isSampled": false, - "tableStyle": { - "dataVariable": "value", - "scaleByValue": true - } - } - ] + "catalog": [ + { + "name": "CSV testing", + "type": "group", + "isOpen": true, + "items": [ + { + "name": "CSVs with moving features", + "nameInCatalog": "Moving features", + "type": "group", + "isOpen": false, + "items": [ + { + "name": "Moving features (sampled)", + "nameInCatalog": "Sampled", + "type": "csv", + "url": "build/TerriaJS/test/csv/lat_lon_enum_date_id.csv", + "idColumns": ["id"], + "tableStyle": { + "dataVariable": "value", + "scaleByValue": true + } }, { - "name": "CSVs from the init file", - "nameInCatalog": "From the init file", - "type": "group", - "isOpen": false, - "items": [ - { - "name": "Lat/lon CSV from init file", - "nameInCatalog": "Lat/lon CSV", - "type": "csv", - "data": "longitude,latitude,value\n134.384,-26.716,5\n121.659,-33.592,10" - }, - { - "name": "Region-mapped CSV from init file", - "nameInCatalog": "Region-mapped CSV", - "type": "csv", - "data": "POA,value\n2880,5\n5710,10" - } - ] + "name": "Moving features turned off with []", + "nameInCatalog": "Turned off with []", + "type": "csv", + "url": "build/TerriaJS/test/csv/lat_lon_enum_date_id.csv", + "idColumns": [], + "tableStyle": { + "dataVariable": "value", + "scaleByValue": true + } }, { - "name": "CSVs with a time column", - "nameInCatalog": "Time column", - "type": "group", - "isOpen": false, - "items": [ - { - "name": "Melbourne postcodes with time column", - "type": "csv", - "url": "build/TerriaJS/test/csv/postcode_val_enum_time.csv" - }, - { - "name": "WA postcodes with start and end dates", - "type": "csv", - "url": "build/TerriaJS/test/csv/postcode_val_enum_start_end.csv", - "isSampled": false // Suppresses the chart over time in feature info, which looks bad. - }, - { - "name": "Melbourne postcodes with time column and template", - "type": "csv", - "url": "build/TerriaJS/test/csv/postcode_val_enum_time.csv", - "featureInfoTemplate": "

    Postcode: {{postcode}}

    Time: {{time}}

    Val1: {{val1}}

    Enum: {{enum}}" - }, - { - "name": "Lat/lon CSV with duration of 1 hour", - "type": "csv", - "url": "build/TerriaJS/test/csv/lat_lon_date_value.csv", - "tableStyle": { - "displayDuration": 60 - } - }, - ] + "name": "Moving features turned off with null", + "nameInCatalog": "Turned off with null", + "type": "csv", + "url": "build/TerriaJS/test/csv/lat_lon_enum_date_id.csv", + "idColumns": null, + "tableStyle": { + "dataVariable": "value", + "scaleByValue": true + } }, { - "name": "CSVs with blank values", - "nameInCatalog": "Blank values", - "type": "group", - "isOpen": false, - "items": [ - { - "name": "CSV (with 0) with blank values as zero", - "type": "csv", - "data": "longitude,latitude,value\n134,-26,5\n121,-33,\n124,-32,3\n130,-30,4\n132,-28,0", - "tableStyle": { - "replaceWithZeroValues": [null] - } - }, - { - "name": "CSV (with 0) with blank values separated", - "type": "csv", - "data": "longitude,latitude,value\n134,-26,5\n121,-33,\n124,-32,3\n130,-30,4\n132,-28,0", - "tableStyle": { - "replaceWithZeroValues": [], - "nullColor": "green", - "nullLabel": "blank" - } - }, - { - "name": "CSV (no 0) with blank values as zero", - "type": "csv", - "data": "longitude,latitude,value\n134,-26,5\n121,-33,\n124,-32,3\n130,-30,4\n132,-28,1", - "tableStyle": { - "replaceWithZeroValues": [null] - } - }, - { - "name": "CSV (no 0) with blank values separated", - "type": "csv", - "data": "longitude,latitude,value\n134,-26,5\n121,-33,\n124,-32,3\n130,-30,4\n132,-28,1", - "tableStyle": { - "replaceWithZeroValues": [], - "nullColor": "green", - "nullLabel": "blank" - } - }, - { - "name": "CSV with blank string values", - "type": "csv", - "data": "longitude,latitude,enum\n134,-26,dog\n121,-33,\n124,-32,cat\n130,-30,frog\n132,-28,dog", - "tableStyle": { - "nullLabel": "blank" - } - }, - { - "name": "CSV with all values replaced with null", - "type": "csv", - "data": "longitude,latitude,val\n134,-26,0\n121,-33,\n124,-32,", - "tableStyle": { - "replaceWithNullValues": [0], - "nullLabel": "blank" - } - }, - ] + "name": "Moving features (sampled, with info template)", + "nameInCatalog": "Sampled, with info template", + "type": "csv", + "url": "build/TerriaJS/test/csv/lat_lon_enum_date_id.csv", + "idColumns": ["id"], + "tableStyle": { + "dataVariable": "value", + "scaleByValue": true + }, + "featureInfoTemplate": "

    Name: {{id}}

    Time series

    {{terria.timeSeries.chart}}" }, { - "name": "CSVs with colors", - "nameInCatalog": "Colors", - "type": "group", - "isOpen": false, - "items": [ - { - "name": "CSV with colorBins=0 (gradient)", - "type": "csv", - "data": "longitude,latitude,value\n134,-26,5\n121,-33,\n124,-32,3\n130,-30,4\n132,-28,1", - "tableStyle": { - "replaceWithZeroValues": [null], - "colorBins": 0 - } - }, - { - "name": "CSV with colorBins=0 (gradient) and blank values separated", - "type": "csv", - "data": "longitude,latitude,value\n134,-26,5\n121,-33,\n124,-32,3\n130,-30,4\n132,-28,1", - "tableStyle": { - "replaceWithZeroValues": [], - "nullColor": "green", - "nullLabel": "blank", - "colorBins": 0 - } - }, - { - "name": "CSV with explicit enum colors", - "type": "csv", - "data": "longitude,latitude,enum\n134,-26,dog\n121,-33,\n124,-32,cat\n130,-30,frog\n132,-28,dog", - "tableStyle": { - "nullLabel": "blank", - "colorBins": [ - {"value": "dog", "color": "lightblue"}, - {"value": "cat", "color": "pink"}, - {"value": "frog", "color": "green"} - ] - } - }, - { - "name":"CSV with explicit per column color", - "type": "csv", - "data": "Date,PV,NPV,BS\n2000-01-01T00:00:00.000Z,80,2,45\n2000-01-09T00:00:00.000Z,59,14,43\n2000-01-17T00:00:00.000Z,97,39,49\n2000-01-25T00:00:00.000Z,40,75,91\n", - "tableStyle": { - "columns" : { - "PV": { - "chartLineColor": "#00b050" - }, - "NPV": { - "chartLineColor": "#0070c0" - } - } - } - }, - { - "name":"CSV with explicit per column y axis extents", - "type": "csv", - "data": "Date,PV,NPV,BS\n2000-01-01T00:00:00.000Z,80,2,45\n2000-01-09T00:00:00.000Z,59,14,43\n2000-01-17T00:00:00.000Z,97,39,49\n2000-01-25T00:00:00.000Z,40,75,91\n", - "tableStyle": { - "columns" : { - "PV": { - "units": "%", - "yAxisMin": 30, - "yAxisMax": 100 - }, - "NPV": { - "units": "mm", - "yAxisMin": 0, - "yAxisMax": 200 - } - } - } - }, - { - "name": "Lat/lon with too many enum values", - "type": "csv", - "url": "build/TerriaJS/test/csv/lat_lon_enum_lots.csv", - "tableStyle": { - "colorBins": 9 - } - }, - { - "name": "Lat/lon with 9 enum values and 9 bins", - "type": "csv", - "url": "build/TerriaJS/test/csv/lat_lon_enum_lots2.csv", - "tableStyle": { - "colorBins": 9 - } - }, - { - "name": "Postcodes with 9 enum values and 9 bins", - "type": "csv", - "url": "build/TerriaJS/test/csv/postcode_enum_lots2.csv", - "tableStyle": { - "colorBins": 9 - } - }, - { - "name": "Postcodes with too many enum values", - "type": "csv", - "url": "build/TerriaJS/test/csv/postcode_enum_lots.csv", - "tableStyle": { - "colorBins": 9 - } - }, - { - "name": "RDA LGA 2015 (Top)", - "type": "csv", - "url": "build/TerriaJS/test/csv/RDA_LGA_2015_16.csv", - "tableStyle": { - "dataVariable": "RDA_NAME", - "colorBinMethod": "top" - } - }, - { - "name": "RDA LGA 2015 (Color cycling)", - "type": "csv", - "url": "build/TerriaJS/test/csv/RDA_LGA_2015_16.csv", - "tableStyle": { - "dataVariable": "RDA_NAME", - "colorBinMethod": "cycle" - } - } - ] + "name": "Moving features (sampled, with manual info template)", + "nameInCatalog": "Sampled, with manual info template", + "type": "csv", + "url": "build/TerriaJS/test/csv/lat_lon_enum_date_id.csv", + "idColumns": ["id"], + "tableStyle": { + "dataVariable": "value", + "scaleByValue": true, + "columns": { + "value": { + "name": "speed", + "units": "km/hr" + } + } + }, + "featureInfoTemplate": "

    Name: {{id}}

    Time series

    {{terria.timeSeries.data}}

    " + }, + { + "name": "Moving features (not sampled)", + "nameInCatalog": "Not sampled", + "type": "csv", + "url": "build/TerriaJS/test/csv/lat_lon_enum_date_id.csv", + "idColumns": ["id"], + "isSampled": false, + "tableStyle": { + "dataVariable": "value", + "scaleByValue": true + } + } + ] + }, + { + "name": "CSVs from the init file", + "nameInCatalog": "From the init file", + "type": "group", + "isOpen": false, + "items": [ + { + "name": "Lat/lon CSV from init file", + "nameInCatalog": "Lat/lon CSV", + "type": "csv", + "data": "longitude,latitude,value\n134.384,-26.716,5\n121.659,-33.592,10" + }, + { + "name": "Region-mapped CSV from init file", + "nameInCatalog": "Region-mapped CSV", + "type": "csv", + "data": "POA,value\n2880,5\n5710,10" + } + ] + }, + { + "name": "CSVs with a time column", + "nameInCatalog": "Time column", + "type": "group", + "isOpen": false, + "items": [ + { + "name": "Melbourne postcodes with time column", + "type": "csv", + "url": "build/TerriaJS/test/csv/postcode_val_enum_time.csv" + }, + { + "name": "WA postcodes with start and end dates", + "type": "csv", + "url": "build/TerriaJS/test/csv/postcode_val_enum_start_end.csv", + "isSampled": false // Suppresses the chart over time in feature info, which looks bad. + }, + { + "name": "Melbourne postcodes with time column and template", + "type": "csv", + "url": "build/TerriaJS/test/csv/postcode_val_enum_time.csv", + "featureInfoTemplate": "

    Postcode: {{postcode}}

    Time: {{time}}

    Val1: {{val1}}

    Enum: {{enum}}" + }, + { + "name": "Lat/lon CSV with duration of 1 hour", + "type": "csv", + "url": "build/TerriaJS/test/csv/lat_lon_date_value.csv", + "tableStyle": { + "displayDuration": 60 + } + } + ] + }, + { + "name": "CSVs with blank values", + "nameInCatalog": "Blank values", + "type": "group", + "isOpen": false, + "items": [ + { + "name": "CSV (with 0) with blank values as zero", + "type": "csv", + "data": "longitude,latitude,value\n134,-26,5\n121,-33,\n124,-32,3\n130,-30,4\n132,-28,0", + "tableStyle": { + "replaceWithZeroValues": [null] + } + }, + { + "name": "CSV (with 0) with blank values separated", + "type": "csv", + "data": "longitude,latitude,value\n134,-26,5\n121,-33,\n124,-32,3\n130,-30,4\n132,-28,0", + "tableStyle": { + "replaceWithZeroValues": [], + "nullColor": "green", + "nullLabel": "blank" + } + }, + { + "name": "CSV (no 0) with blank values as zero", + "type": "csv", + "data": "longitude,latitude,value\n134,-26,5\n121,-33,\n124,-32,3\n130,-30,4\n132,-28,1", + "tableStyle": { + "replaceWithZeroValues": [null] + } + }, + { + "name": "CSV (no 0) with blank values separated", + "type": "csv", + "data": "longitude,latitude,value\n134,-26,5\n121,-33,\n124,-32,3\n130,-30,4\n132,-28,1", + "tableStyle": { + "replaceWithZeroValues": [], + "nullColor": "green", + "nullLabel": "blank" + } + }, + { + "name": "CSV with blank string values", + "type": "csv", + "data": "longitude,latitude,enum\n134,-26,dog\n121,-33,\n124,-32,cat\n130,-30,frog\n132,-28,dog", + "tableStyle": { + "nullLabel": "blank" + } + }, + { + "name": "CSV with all values replaced with null", + "type": "csv", + "data": "longitude,latitude,val\n134,-26,0\n121,-33,\n124,-32,", + "tableStyle": { + "replaceWithNullValues": [0], + "nullLabel": "blank" + } + } + ] + }, + { + "name": "CSVs with colors", + "nameInCatalog": "Colors", + "type": "group", + "isOpen": false, + "items": [ + { + "name": "CSV with colorBins=0 (gradient)", + "type": "csv", + "data": "longitude,latitude,value\n134,-26,5\n121,-33,\n124,-32,3\n130,-30,4\n132,-28,1", + "tableStyle": { + "replaceWithZeroValues": [null], + "colorBins": 0 + } + }, + { + "name": "CSV with colorBins=0 (gradient) and blank values separated", + "type": "csv", + "data": "longitude,latitude,value\n134,-26,5\n121,-33,\n124,-32,3\n130,-30,4\n132,-28,1", + "tableStyle": { + "replaceWithZeroValues": [], + "nullColor": "green", + "nullLabel": "blank", + "colorBins": 0 + } }, { - "name": "Other test CSVs", - "type": "group", - "isOpen": false, - "items": [ - { - "name": "CSV with no data variable selected", - "type": "csv", - "data": "longitude,latitude,value\n134,-26,5\n121,-33,\n124,-32,3\n130,-30,4\n132,-28,1", - "tableStyle": { - "dataVariable": null - } - }, - { - "name": "Lat/lon CSV with no other columns", - "type": "csv", - "url": "build/TerriaJS/test/csv/lat_lon.csv" - }, - { - "name": "Csv with LATIN-1 encoding not specified by server", - "type": "csv", - "url": "http://data.gov.au/dataset/3fd356c6-0ad4-453e-82e9-03af582024c3/resource/d73f2a2a-c271-4edd-ac45-25fd7ad2241f/download/localphotostories20092014csv.csv", - "charSet": "iso-8859-1", - "featureInfoTemplate": { - "template": "

    {{Date}}{{#Primary image}}
    {{Primary image caption}}
    {{/Primary image}}

    Read More

    " - }, - "tableStyle": { - "dataVariable": "State", - "timeColumn": null - } - } + "name": "CSV with explicit enum colors", + "type": "csv", + "data": "longitude,latitude,enum\n134,-26,dog\n121,-33,\n124,-32,cat\n130,-30,frog\n132,-28,dog", + "tableStyle": { + "nullLabel": "blank", + "colorBins": [ + { "value": "dog", "color": "lightblue" }, + { "value": "cat", "color": "pink" }, + { "value": "frog", "color": "green" } ] + } + }, + { + "name": "CSV with explicit per column color", + "type": "csv", + "data": "Date,PV,NPV,BS\n2000-01-01T00:00:00.000Z,80,2,45\n2000-01-09T00:00:00.000Z,59,14,43\n2000-01-17T00:00:00.000Z,97,39,49\n2000-01-25T00:00:00.000Z,40,75,91\n", + "tableStyle": { + "columns": { + "PV": { + "chartLineColor": "#00b050" + }, + "NPV": { + "chartLineColor": "#0070c0" + } + } + } + }, + { + "name": "CSV with explicit per column y axis extents", + "type": "csv", + "data": "Date,PV,NPV,BS\n2000-01-01T00:00:00.000Z,80,2,45\n2000-01-09T00:00:00.000Z,59,14,43\n2000-01-17T00:00:00.000Z,97,39,49\n2000-01-25T00:00:00.000Z,40,75,91\n", + "tableStyle": { + "columns": { + "PV": { + "units": "%", + "yAxisMin": 30, + "yAxisMax": 100 + }, + "NPV": { + "units": "mm", + "yAxisMin": 0, + "yAxisMax": 200 + } + } + } + }, + { + "name": "Lat/lon with too many enum values", + "type": "csv", + "url": "build/TerriaJS/test/csv/lat_lon_enum_lots.csv", + "tableStyle": { + "colorBins": 9 + } + }, + { + "name": "Lat/lon with 9 enum values and 9 bins", + "type": "csv", + "url": "build/TerriaJS/test/csv/lat_lon_enum_lots2.csv", + "tableStyle": { + "colorBins": 9 + } + }, + { + "name": "Postcodes with 9 enum values and 9 bins", + "type": "csv", + "url": "build/TerriaJS/test/csv/postcode_enum_lots2.csv", + "tableStyle": { + "colorBins": 9 + } + }, + { + "name": "Postcodes with too many enum values", + "type": "csv", + "url": "build/TerriaJS/test/csv/postcode_enum_lots.csv", + "tableStyle": { + "colorBins": 9 + } + }, + { + "name": "RDA LGA 2015 (Top)", + "type": "csv", + "url": "build/TerriaJS/test/csv/RDA_LGA_2015_16.csv", + "tableStyle": { + "dataVariable": "RDA_NAME", + "colorBinMethod": "top" + } + }, + { + "name": "RDA LGA 2015 (Color cycling)", + "type": "csv", + "url": "build/TerriaJS/test/csv/RDA_LGA_2015_16.csv", + "tableStyle": { + "dataVariable": "RDA_NAME", + "colorBinMethod": "cycle" + } + } + ] + }, + { + "name": "Other test CSVs", + "type": "group", + "isOpen": false, + "items": [ + { + "name": "CSV with no data variable selected", + "type": "csv", + "data": "longitude,latitude,value\n134,-26,5\n121,-33,\n124,-32,3\n130,-30,4\n132,-28,1", + "tableStyle": { + "dataVariable": null + } + }, + { + "name": "Lat/lon CSV with no other columns", + "type": "csv", + "url": "build/TerriaJS/test/csv/lat_lon.csv" + }, + { + "name": "Csv with LATIN-1 encoding not specified by server", + "type": "csv", + "url": "http://data.gov.au/dataset/3fd356c6-0ad4-453e-82e9-03af582024c3/resource/d73f2a2a-c271-4edd-ac45-25fd7ad2241f/download/localphotostories20092014csv.csv", + "charSet": "iso-8859-1", + "featureInfoTemplate": { + "template": "
    {{Date}}{{#Primary image}}
    {{Primary image caption}}
    {{/Primary image}}

    Read More

    " + }, + "tableStyle": { + "dataVariable": "State", + "timeColumn": null + } } - ] - }] + ] + } + ] + } + ] } diff --git a/wwwroot/test/init/czml-with-template-0.json b/wwwroot/test/init/czml-with-template-0.json index 79f21fc2e92..77f8809bc5c 100644 --- a/wwwroot/test/init/czml-with-template-0.json +++ b/wwwroot/test/init/czml-with-template-0.json @@ -3,8 +3,7 @@ "type": "czml", "url": "test/CZML/withProperties.czml", "featureInfoTemplate": { - "name": "{{Name}} {{Asset type}}", - "template": "
    Name:{{Name}}
    Type:{{Type}}

    {{#Support table}}{{/Support table}}
    YearCapacity
    {{Year}}{{Capacity}}
    " + "name": "{{Name}} {{Asset type}}", + "template": "
    Name:{{Name}}
    Type:{{Type}}

    {{#Support table}}{{/Support table}}
    YearCapacity
    {{Year}}{{Capacity}}
    " } } - \ No newline at end of file diff --git a/wwwroot/test/init/czml-with-template-1.json b/wwwroot/test/init/czml-with-template-1.json index 4446f77694b..74dee1d4b7e 100644 --- a/wwwroot/test/init/czml-with-template-1.json +++ b/wwwroot/test/init/czml-with-template-1.json @@ -3,7 +3,7 @@ "type": "czml", "url": "test/CZML/withTimeVaryingProperties.czml", "featureInfoTemplate": { - "name": "{{Name}} {{Asset type}}", - "template": "
    Name:{{Name}}
    Type:{{Type}}

    {{#Support table}}{{/Support table}}
    YearCapacity
    {{Year}}{{Capacity}}
    " + "name": "{{Name}} {{Asset type}}", + "template": "
    Name:{{Name}}
    Type:{{Type}}

    {{#Support table}}{{/Support table}}
    YearCapacity
    {{Year}}{{Capacity}}
    " } } diff --git a/wwwroot/test/init/czml-with-template.json b/wwwroot/test/init/czml-with-template.json index ae3317befe8..959741718bf 100644 --- a/wwwroot/test/init/czml-with-template.json +++ b/wwwroot/test/init/czml-with-template.json @@ -10,8 +10,8 @@ "type": "czml", "url": "test/CZML/withProperties.czml", "featureInfoTemplate": { - "name": "{{Name}} {{Asset type}}", - "template": "
    Name:{{Name}}
    Type:{{Type}}

    {{#Support table}}{{/Support table}}
    YearCapacity
    {{Year}}{{Capacity}}
    " + "name": "{{Name}} {{Asset type}}", + "template": "
    Name:{{Name}}
    Type:{{Type}}

    {{#Support table}}{{/Support table}}
    YearCapacity
    {{Year}}{{Capacity}}
    " } }, { @@ -19,8 +19,8 @@ "type": "czml", "url": "test/CZML/withTimeVaryingProperties.czml", "featureInfoTemplate": { - "name": "{{Name}} {{Asset type}}", - "template": "
    Name:{{Name}}
    Type:{{Type}}

    {{#Support table}}{{/Support table}}
    YearCapacity
    {{Year}}{{Capacity}}
    " + "name": "{{Name}} {{Asset type}}", + "template": "
    Name:{{Name}}
    Type:{{Type}}

    {{#Support table}}{{/Support table}}
    YearCapacity
    {{Year}}{{Capacity}}
    " } } ] diff --git a/wwwroot/test/init/czml.json b/wwwroot/test/init/czml.json index 453d08b9761..e5f9bdb6d49 100644 --- a/wwwroot/test/init/czml.json +++ b/wwwroot/test/init/czml.json @@ -10,8 +10,8 @@ "type": "czml", "url": "build/TerriaJS/test/CZML/withProperties.czml", "featureInfoTemplate": { - "name": "{{Name}} {{Asset type}}", - "template": "
    Name:{{Name}}
    Type:{{Type}}

    {{#Support table}}{{/Support table}}
    YearCapacity
    {{Year}}{{Capacity}}
    " + "name": "{{Name}} {{Asset type}}", + "template": "
    Name:{{Name}}
    Type:{{Type}}

    {{#Support table}}{{/Support table}}
    YearCapacity
    {{Year}}{{Capacity}}
    " } }, { @@ -19,8 +19,8 @@ "type": "czml", "url": "build/TerriaJS/test/CZML/withTimeVaryingProperties.czml", "featureInfoTemplate": { - "name": "{{Name}} {{Asset type}}", - "template": "
    Name:{{Name}}
    Type:{{Type}}

    {{#Support table}}{{/Support table}}
    YearCapacity
    {{Year}}{{Capacity}}
    " + "name": "{{Name}} {{Asset type}}", + "template": "
    Name:{{Name}}
    Type:{{Type}}

    {{#Support table}}{{/Support table}}
    YearCapacity
    {{Year}}{{Capacity}}
    " } }, { diff --git a/wwwroot/test/init/geojson-with-template.json b/wwwroot/test/init/geojson-with-template.json index 5cdf9c8f567..b2fd9ea389a 100644 --- a/wwwroot/test/init/geojson-with-template.json +++ b/wwwroot/test/init/geojson-with-template.json @@ -9,7 +9,7 @@ "name": "Sample GeoJSON Data", "type": "geojson", "url": "test/GeoJSON/two_features.geojson", - "featureInfoTemplate" : "A {{type}} made of {{material}} with {{funding_ba}} funding." + "featureInfoTemplate": "A {{type}} made of {{material}} with {{funding_ba}} funding." } ] } diff --git a/wwwroot/test/init/gltf.json b/wwwroot/test/init/gltf.json index a97b6e42db1..ca600c5a700 100644 --- a/wwwroot/test/init/gltf.json +++ b/wwwroot/test/init/gltf.json @@ -1,22 +1,22 @@ { - "catalog": [ + "catalog": [ + { + "name": "glTF", + "type": "group", + "items": [ { - "name": "glTF", - "type": "group", - "items": [ - { - "name": "Cesium Air", - "type": "gltf", - "url": "https://cesiumjs.org/Cesium/Apps/SampleData/models/CesiumAir/Cesium_Air.glb", - "origin": { - "longitude": 151.197, - "latitude": -33.895, - "height": 180.0 - }, - "upAxis": "Y", - "forwardAxis": "X" - } - ] + "name": "Cesium Air", + "type": "gltf", + "url": "https://cesiumjs.org/Cesium/Apps/SampleData/models/CesiumAir/Cesium_Air.glb", + "origin": { + "longitude": 151.197, + "latitude": -33.895, + "height": 180.0 + }, + "upAxis": "Y", + "forwardAxis": "X" } - ] + ] + } + ] } diff --git a/wwwroot/test/init/ion.json b/wwwroot/test/init/ion.json index 1286661ea26..1ccefdd6545 100644 --- a/wwwroot/test/init/ion.json +++ b/wwwroot/test/init/ion.json @@ -1,20 +1,20 @@ { - "catalog": [ + "catalog": [ + { + "name": "Cesium Ion", + "type": "group", + "items": [ { - "name": "Cesium Ion", - "type": "group", - "items": [ - { - "name": "PAMap Terrain", - "type": "cesium-terrain", - "ionAssetId": 3957 - }, - { - "name": "Earth at Night", - "type": "ion-imagery", - "ionAssetId": 3812 - } - ] + "name": "PAMap Terrain", + "type": "cesium-terrain", + "ionAssetId": 3957 + }, + { + "name": "Earth at Night", + "type": "ion-imagery", + "ionAssetId": 3812 } - ] + ] + } + ] } diff --git a/wwwroot/test/init/openEnablePopups.json b/wwwroot/test/init/openEnablePopups.json index f6d166e8103..d70911738f9 100644 --- a/wwwroot/test/init/openEnablePopups.json +++ b/wwwroot/test/init/openEnablePopups.json @@ -1,61 +1,61 @@ { - "catalog": [ + "catalog": [ + { + "name": "Group with popup", + "type": "group", + "initialMessage": { + "title": "Group", + "content": "This is the message." + }, + "items": [ { - "name": "Group with popup", - "type": "group", - "initialMessage": { - "title": "Group", - "content": "This is the message." - }, - "items": [ - { - "name": "Sub-group with popup", - "type": "group", - "initialMessage": { - "title": "Sub-group", - "content": "This is the message." - } - }, - { - "name": "Item with popup", - "type": "csv", - "url": "http://nationalmap.gov.au/test/incidents.csv", - "initialMessage": { - "title": "This is the title", - "content": "This is the message." - } - } - ] + "name": "Sub-group with popup", + "type": "group", + "initialMessage": { + "title": "Sub-group", + "content": "This is the message." + } }, { - "name": "Group with confirmation", - "type": "group", - "initialMessage": { - "title": "Group", - "content": "This is the message.", - "confirmation": true - }, - "items": [ - { - "name": "Sub-group with popup", - "type": "group", - "initialMessage": { - "title": "Sub-group", - "content": "This is the message.", - "confirmation": true - } - }, - { - "name": "Item with popup", - "type": "csv", - "url": "http://nationalmap.gov.au/test/incidents.csv", - "initialMessage": { - "title": "Item", - "content": "This is the message.", - "confirmation": true - } - } - ] + "name": "Item with popup", + "type": "csv", + "url": "http://nationalmap.gov.au/test/incidents.csv", + "initialMessage": { + "title": "This is the title", + "content": "This is the message." + } } - ] -} \ No newline at end of file + ] + }, + { + "name": "Group with confirmation", + "type": "group", + "initialMessage": { + "title": "Group", + "content": "This is the message.", + "confirmation": true + }, + "items": [ + { + "name": "Sub-group with popup", + "type": "group", + "initialMessage": { + "title": "Sub-group", + "content": "This is the message.", + "confirmation": true + } + }, + { + "name": "Item with popup", + "type": "csv", + "url": "http://nationalmap.gov.au/test/incidents.csv", + "initialMessage": { + "title": "Item", + "content": "This is the message.", + "confirmation": true + } + } + ] + } + ] +} diff --git a/wwwroot/test/init/polling.json b/wwwroot/test/init/polling.json index 5c83e2b1b9c..db75683df8d 100644 --- a/wwwroot/test/init/polling.json +++ b/wwwroot/test/init/polling.json @@ -76,34 +76,34 @@ "featureInfoTemplate": "

    Enum: {{enum}}

    " }, { - "name": "Moving features (sampled) updated in 20s", - "type": "csv", - "url": "build/TerriaJS/test/csv/lat_lon_enum_date_id.csv", - "idColumns": ["id"], - "polling": { - "seconds": 20, - "url": "build/TerriaJS/test/csv/lat_lon_enum_date_id_update.csv", - "replace": false - }, - "tableStyle": { - "dataVariable": "value", - "scaleByValue": true - } + "name": "Moving features (sampled) updated in 20s", + "type": "csv", + "url": "build/TerriaJS/test/csv/lat_lon_enum_date_id.csv", + "idColumns": ["id"], + "polling": { + "seconds": 20, + "url": "build/TerriaJS/test/csv/lat_lon_enum_date_id_update.csv", + "replace": false + }, + "tableStyle": { + "dataVariable": "value", + "scaleByValue": true + } }, { - "name": "Moving features (sampled) replaced in 20s", - "type": "csv", - "url": "build/TerriaJS/test/csv/lat_lon_enum_date_id.csv", - "idColumns": ["id"], - "polling": { - "seconds": 20, - "url": "build/TerriaJS/test/csv/lat_lon_enum_date_id2.csv", - "replace": true - }, - "tableStyle": { - "dataVariable": "value", - "scaleByValue": true - } + "name": "Moving features (sampled) replaced in 20s", + "type": "csv", + "url": "build/TerriaJS/test/csv/lat_lon_enum_date_id.csv", + "idColumns": ["id"], + "polling": { + "seconds": 20, + "url": "build/TerriaJS/test/csv/lat_lon_enum_date_id2.csv", + "replace": true + }, + "tableStyle": { + "dataVariable": "value", + "scaleByValue": true + } } ] } diff --git a/wwwroot/test/init/sdmx-abs.json b/wwwroot/test/init/sdmx-abs.json index c1d313822a4..0d84f9134b4 100644 --- a/wwwroot/test/init/sdmx-abs.json +++ b/wwwroot/test/init/sdmx-abs.json @@ -41,142 +41,47 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_B02", "description": "Counts are of all persons on Census night based on place of usual residence, not including overseas visitors.
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_CENSUS2011_B02). Click on the 'i' symbols on that page for further information and links.", - "aggregatedDimensionIds": [ - "STATE" - ], - "singleValuedDimensionIds": [ - "MEASURE" - ], + "aggregatedDimensionIds": ["STATE"], + "singleValuedDimensionIds": ["MEASURE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { - "MEASURE": [ - "MTPI", - "MTFI", - "MTHI" - ], - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], + "MEASURE": ["MTPI", "MTFI", "MTHI"], + "FMCF": ["TOT", "[1-3]", "9"], "STRD": [ "TOT", "OPD", @@ -219,28 +124,14 @@ "Z", "V" ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "": ["A[0-9]+", "T.*", "O.*"] }, "selectedInitially": { - "REGIONTYPE": [ - "SA4" - ], - "COB": [ - "1101" - ], - "DT": [ - "5" - ], + "REGIONTYPE": ["SA4"], + "COB": ["1101"], + "DT": ["5"], "STATE": [ "1", "2", @@ -303,145 +194,48 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_B02_LGA", "description": "Counts are of all persons on Census night based on place of usual residence, not including overseas visitors.
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_CENSUS2011_B02_LGA). Click on the 'i' symbols on that page for further information and links.", - "aggregatedDimensionIds": [ - "STATE" - ], - "singleValuedDimensionIds": [ - "MEASURE" - ], + "aggregatedDimensionIds": ["STATE"], + "singleValuedDimensionIds": ["MEASURE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { - "REGIONTYPE": [ - "LGA2011" - ], - "MEASURE": [ - "MTPI", - "MTFI", - "MTHI" - ], - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], + "REGIONTYPE": ["LGA2011"], + "MEASURE": ["MTPI", "MTFI", "MTHI"], + "FMCF": ["TOT", "[1-3]", "9"], "STRD": [ "TOT", "OPD", @@ -484,28 +278,14 @@ "Z", "V" ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "": ["A[0-9]+", "T.*", "O.*"] }, "selectedInitially": { - "REGIONTYPE": [ - "LGA2011" - ], - "COB": [ - "1101" - ], - "DT": [ - "5" - ], + "REGIONTYPE": ["LGA2011"], + "COB": ["1101"], + "DT": ["5"], "STATE": [ "1", "2", @@ -568,142 +348,47 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_B02_SA1_SA", "description": "Counts are of all persons on Census night based on place of usual residence, not including overseas visitors.
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_CENSUS2011_B02_SA1_SA). Click on the 'i' symbols on that page for further information and links.", - "aggregatedDimensionIds": [ - "STATE" - ], - "singleValuedDimensionIds": [ - "MEASURE" - ], + "aggregatedDimensionIds": ["STATE"], + "singleValuedDimensionIds": ["MEASURE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { - "MEASURE": [ - "MTPI", - "MTFI", - "MTHI" - ], - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], + "MEASURE": ["MTPI", "MTFI", "MTHI"], + "FMCF": ["TOT", "[1-3]", "9"], "STRD": [ "TOT", "OPD", @@ -746,25 +431,13 @@ "Z", "V" ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "": ["A[0-9]+", "T.*", "O.*"] }, "selectedInitially": { - "COB": [ - "1101" - ], - "DT": [ - "5" - ], + "COB": ["1101"], + "DT": ["5"], "STATE": [ "1", "2", @@ -822,141 +495,47 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_B02", "description": "Counts are of all persons on Census night based on place of usual residence, not including overseas visitors.
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_CENSUS2011_B02). Click on the 'i' symbols on that page for further information and links.", - "aggregatedDimensionIds": [ - "STATE" - ], - "singleValuedDimensionIds": [ - "MEASURE" - ], + "aggregatedDimensionIds": ["STATE"], + "singleValuedDimensionIds": ["MEASURE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { - "MEASURE": [ - "MMORT", - "MRENT" - ], - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], + "MEASURE": ["MMORT", "MRENT"], + "FMCF": ["TOT", "[1-3]", "9"], "STRD": [ "TOT", "OPD", @@ -966,14 +545,7 @@ "Z", "UPD" ], - "LFSP": [ - "TOT", - "EMP", - "[1-4]", - "7", - "Z", - "UEMP" - ], + "LFSP": ["TOT", "EMP", "[1-4]", "7", "Z", "UEMP"], "MTWP": [ "TOT", "[1-3]M", @@ -999,38 +571,15 @@ "Z", "V" ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "": ["A[0-9]+", "T.*", "O.*"] }, "selectedInitially": { - "REGIONTYPE": [ - "SA4" - ], - "COB": [ - "1101" - ], - "DT": [ - "5" - ], - "STATE": [ - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8" - ], + "REGIONTYPE": ["SA4"], + "COB": ["1101"], + "DT": ["5"], + "STATE": ["1", "2", "3", "4", "5", "6", "7", "8"], "ASGS_2011": [ "1", "2", @@ -1076,144 +625,48 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_B02_LGA", "description": "Counts are of all persons on Census night based on place of usual residence, not including overseas visitors.
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_CENSUS2011_B02_LGA). Click on the 'i' symbols on that page for further information and links.", - "aggregatedDimensionIds": [ - "STATE" - ], - "singleValuedDimensionIds": [ - "MEASURE" - ], + "aggregatedDimensionIds": ["STATE"], + "singleValuedDimensionIds": ["MEASURE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { - "REGIONTYPE": [ - "LGA2011" - ], - "MEASURE": [ - "MMORT", - "MRENT" - ], - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], + "REGIONTYPE": ["LGA2011"], + "MEASURE": ["MMORT", "MRENT"], + "FMCF": ["TOT", "[1-3]", "9"], "STRD": [ "TOT", "OPD", @@ -1223,14 +676,7 @@ "Z", "UPD" ], - "LFSP": [ - "TOT", - "EMP", - "[1-4]", - "7", - "Z", - "UEMP" - ], + "LFSP": ["TOT", "EMP", "[1-4]", "7", "Z", "UEMP"], "MTWP": [ "TOT", "[1-3]M", @@ -1256,38 +702,15 @@ "Z", "V" ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "": ["A[0-9]+", "T.*", "O.*"] }, "selectedInitially": { - "REGIONTYPE": [ - "LGA2011" - ], - "COB": [ - "1101" - ], - "DT": [ - "5" - ], - "STATE": [ - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8" - ], + "REGIONTYPE": ["LGA2011"], + "COB": ["1101"], + "DT": ["5"], + "STATE": ["1", "2", "3", "4", "5", "6", "7", "8"], "ASGS_2011": [ "1", "2", @@ -1333,141 +756,47 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_B02_SA1_SA", "description": "Counts are of all persons on Census night based on place of usual residence, not including overseas visitors.
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_CENSUS2011_B02_SA1_SA). Click on the 'i' symbols on that page for further information and links.", - "aggregatedDimensionIds": [ - "STATE" - ], - "singleValuedDimensionIds": [ - "MEASURE" - ], + "aggregatedDimensionIds": ["STATE"], + "singleValuedDimensionIds": ["MEASURE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { - "MEASURE": [ - "MMORT", - "MRENT" - ], - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], + "MEASURE": ["MMORT", "MRENT"], + "FMCF": ["TOT", "[1-3]", "9"], "STRD": [ "TOT", "OPD", @@ -1477,14 +806,7 @@ "Z", "UPD" ], - "LFSP": [ - "TOT", - "EMP", - "[1-4]", - "7", - "Z", - "UEMP" - ], + "LFSP": ["TOT", "EMP", "[1-4]", "7", "Z", "UEMP"], "MTWP": [ "TOT", "[1-3]M", @@ -1510,35 +832,14 @@ "Z", "V" ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "": ["A[0-9]+", "T.*", "O.*"] }, "selectedInitially": { - "COB": [ - "1101" - ], - "DT": [ - "5" - ], - "STATE": [ - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8" - ], + "COB": ["1101"], + "DT": ["5"], + "STATE": ["1", "2", "3", "4", "5", "6", "7", "8"], "ASGS_2011": [ "1", "2", @@ -1584,141 +885,47 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_B02", "description": "Counts are of all persons on Census night based on place of usual residence, not including overseas visitors.
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_CENSUS2011_B02). Click on the 'i' symbols on that page for further information and links.", - "aggregatedDimensionIds": [ - "STATE" - ], - "singleValuedDimensionIds": [ - "MEASURE" - ], + "aggregatedDimensionIds": ["STATE"], + "singleValuedDimensionIds": ["MEASURE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { - "MEASURE": [ - "AHS", - "APPB" - ], - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], + "MEASURE": ["AHS", "APPB"], + "FMCF": ["TOT", "[1-3]", "9"], "STRD": [ "TOT", "OPD", @@ -1728,14 +935,7 @@ "Z", "UPD" ], - "LFSP": [ - "TOT", - "EMP", - "[1-4]", - "7", - "Z", - "UEMP" - ], + "LFSP": ["TOT", "EMP", "[1-4]", "7", "Z", "UEMP"], "MTWP": [ "TOT", "[1-3]M", @@ -1761,38 +961,15 @@ "Z", "V" ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "": ["A[0-9]+", "T.*", "O.*"] }, "selectedInitially": { - "REGIONTYPE": [ - "SA4" - ], - "COB": [ - "1101" - ], - "DT": [ - "5" - ], - "STATE": [ - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8" - ], + "REGIONTYPE": ["SA4"], + "COB": ["1101"], + "DT": ["5"], + "STATE": ["1", "2", "3", "4", "5", "6", "7", "8"], "ASGS_2011": [ "1", "2", @@ -1838,144 +1015,48 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_B02_LGA", "description": "Counts are of all persons on Census night based on place of usual residence, not including overseas visitors.
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_CENSUS2011_B02_LGA). Click on the 'i' symbols on that page for further information and links.", - "aggregatedDimensionIds": [ - "STATE" - ], - "singleValuedDimensionIds": [ - "MEASURE" - ], + "aggregatedDimensionIds": ["STATE"], + "singleValuedDimensionIds": ["MEASURE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { - "REGIONTYPE": [ - "LGA2011" - ], - "MEASURE": [ - "AHS", - "APPB" - ], - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], + "REGIONTYPE": ["LGA2011"], + "MEASURE": ["AHS", "APPB"], + "FMCF": ["TOT", "[1-3]", "9"], "STRD": [ "TOT", "OPD", @@ -1985,14 +1066,7 @@ "Z", "UPD" ], - "LFSP": [ - "TOT", - "EMP", - "[1-4]", - "7", - "Z", - "UEMP" - ], + "LFSP": ["TOT", "EMP", "[1-4]", "7", "Z", "UEMP"], "MTWP": [ "TOT", "[1-3]M", @@ -2018,38 +1092,15 @@ "Z", "V" ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "": ["A[0-9]+", "T.*", "O.*"] }, "selectedInitially": { - "REGIONTYPE": [ - "LGA2011" - ], - "COB": [ - "1101" - ], - "DT": [ - "5" - ], - "STATE": [ - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8" - ], + "REGIONTYPE": ["LGA2011"], + "COB": ["1101"], + "DT": ["5"], + "STATE": ["1", "2", "3", "4", "5", "6", "7", "8"], "ASGS_2011": [ "1", "2", @@ -2095,173 +1146,72 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_B02_SA1_SA", "description": "Counts are of all persons on Census night based on place of usual residence, not including overseas visitors.
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_CENSUS2011_B02_SA1_SA). Click on the 'i' symbols on that page for further information and links.", - "aggregatedDimensionIds": [ - "STATE" - ], - "singleValuedDimensionIds": [ - "MEASURE" - ], + "aggregatedDimensionIds": ["STATE"], + "singleValuedDimensionIds": ["MEASURE"], "totalValueIds": { - "*": [ + "*": ["TOT", "LFTOT"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] + }, + "whitelist": { + "MEASURE": ["AHS", "APPB"], + "FMCF": ["TOT", "[1-3]", "9"], + "STRD": [ "TOT", - "LFTOT" - ], - "SPC": [ - "TT" + "OPD", + "[1-3]", + "9", + "11", + "Z", + "UPD" ], + "LFSP": ["TOT", "EMP", "[1-4]", "7", "Z", "UEMP"], "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" + "TOT", + "[1-3]M", + "00[1-9]", + "010", + "011", + "232", + "TA", + "BA", + "B2", + "233", + "234", + "Z" ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] - }, - "whitelist": { - "MEASURE": [ - "AHS", - "APPB" - ], - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], - "STRD": [ - "TOT", - "OPD", - "[1-3]", - "9", - "11", - "Z", - "UPD" - ], - "LFSP": [ - "TOT", - "EMP", - "[1-4]", - "7", - "Z", - "UEMP" - ], - "MTWP": [ - "TOT", - "[1-3]M", - "00[1-9]", - "010", - "011", - "232", - "TA", - "BA", - "B2", - "233", - "234", - "Z" - ], - "TYPP": [ + "TYPP": [ "TOT", "10", "2", @@ -2272,35 +1222,14 @@ "Z", "V" ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "": ["A[0-9]+", "T.*", "O.*"] }, "selectedInitially": { - "COB": [ - "1101" - ], - "DT": [ - "5" - ], - "STATE": [ - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8" - ], + "COB": ["1101"], + "DT": ["5"], + "STATE": ["1", "2", "3", "4", "5", "6", "7", "8"], "ASGS_2011": [ "1", "2", @@ -2351,140 +1280,47 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_B02", "description": "Counts are of all persons on Census night based on place of usual residence, not including overseas visitors.
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_CENSUS2011_B02). Click on the 'i' symbols on that page for further information and links.", - "aggregatedDimensionIds": [ - "STATE" - ], - "singleValuedDimensionIds": [ - "MEASURE" - ], + "aggregatedDimensionIds": ["STATE"], + "singleValuedDimensionIds": ["MEASURE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { - "MEASURE": [ - "MAGE" - ], - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], + "MEASURE": ["MAGE"], + "FMCF": ["TOT", "[1-3]", "9"], "STRD": [ "TOT", "OPD", @@ -2527,28 +1363,14 @@ "Z", "V" ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "": ["A[0-9]+", "T.*", "O.*"] }, "selectedInitially": { - "REGIONTYPE": [ - "SA4" - ], - "COB": [ - "1101" - ], - "DT": [ - "5" - ], + "REGIONTYPE": ["SA4"], + "COB": ["1101"], + "DT": ["5"], "STATE": [ "1", "2", @@ -2611,143 +1433,48 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_B02_LGA", "description": "Counts are of all persons on Census night based on place of usual residence, not including overseas visitors.
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_CENSUS2011_B02_LGA). Click on the 'i' symbols on that page for further information and links.", - "aggregatedDimensionIds": [ - "STATE" - ], - "singleValuedDimensionIds": [ - "MEASURE" - ], + "aggregatedDimensionIds": ["STATE"], + "singleValuedDimensionIds": ["MEASURE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { - "REGIONTYPE": [ - "LGA2011" - ], - "MEASURE": [ - "MAGE" - ], - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], + "REGIONTYPE": ["LGA2011"], + "MEASURE": ["MAGE"], + "FMCF": ["TOT", "[1-3]", "9"], "STRD": [ "TOT", "OPD", @@ -2790,28 +1517,14 @@ "Z", "V" ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "": ["A[0-9]+", "T.*", "O.*"] }, "selectedInitially": { - "REGIONTYPE": [ - "LGA2011" - ], - "COB": [ - "1101" - ], - "DT": [ - "5" - ], + "REGIONTYPE": ["LGA2011"], + "COB": ["1101"], + "DT": ["5"], "STATE": [ "1", "2", @@ -2874,140 +1587,47 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_B02_SA1_SA", "description": "Counts are of all persons on Census night based on place of usual residence, not including overseas visitors.
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_CENSUS2011_B02_SA1_SA). Click on the 'i' symbols on that page for further information and links.", - "aggregatedDimensionIds": [ - "STATE" - ], - "singleValuedDimensionIds": [ - "MEASURE" - ], + "aggregatedDimensionIds": ["STATE"], + "singleValuedDimensionIds": ["MEASURE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { - "MEASURE": [ - "MAGE" - ], - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], + "MEASURE": ["MAGE"], + "FMCF": ["TOT", "[1-3]", "9"], "STRD": [ "TOT", "OPD", @@ -3050,25 +1670,13 @@ "Z", "V" ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "": ["A[0-9]+", "T.*", "O.*"] }, "selectedInitially": { - "COB": [ - "1101" - ], - "DT": [ - "5" - ], + "COB": ["1101"], + "DT": ["5"], "STATE": [ "1", "2", @@ -3136,138 +1744,46 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_B03", "description": "This table counts persons where they were staying on Census Night. It also shows the number of persons who were visiting away from their usual residence on Census Night.
    Counts are of all persons on Census night based on place of usual residence, not including overseas visitors.
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_CENSUS2011_B03). Click on the 'i' symbols on that page for further information and links.", - "aggregatedDimensionIds": [ - "STATE" - ], + "aggregatedDimensionIds": ["STATE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "MEASURE": [ - "TT", - "O15" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "MEASURE": ["TT", "O15"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], + "FMCF": ["TOT", "[1-3]", "9"], "STRD": [ "TOT", "OPD", @@ -3310,28 +1826,14 @@ "Z", "V" ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "MEASURE": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "MEASURE": ["A[0-9]+", "T.*", "O.*"] }, "selectedInitially": { - "REGIONTYPE": [ - "SA4" - ], - "COB": [ - "1101" - ], - "DT": [ - "5" - ], + "REGIONTYPE": ["SA4"], + "COB": ["1101"], + "DT": ["5"], "STATE": [ "1", "2", @@ -3401,141 +1903,47 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_B03_LGA", "description": "This table counts persons where they were staying on Census Night. It also shows the number of persons who were visiting away from their usual residence on Census Night.
    Counts are of all persons on Census night based on place of usual residence, not including overseas visitors.
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_CENSUS2011_B03_LGA). Click on the 'i' symbols on that page for further information and links.", - "aggregatedDimensionIds": [ - "STATE" - ], + "aggregatedDimensionIds": ["STATE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "MEASURE": [ - "TT", - "O15" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "MEASURE": ["TT", "O15"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { - "REGIONTYPE": [ - "LGA2011" - ], - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], + "REGIONTYPE": ["LGA2011"], + "FMCF": ["TOT", "[1-3]", "9"], "STRD": [ "TOT", "OPD", @@ -3578,28 +1986,14 @@ "Z", "V" ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "MEASURE": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "MEASURE": ["A[0-9]+", "T.*", "O.*"] }, "selectedInitially": { - "REGIONTYPE": [ - "LGA2011" - ], - "COB": [ - "1101" - ], - "DT": [ - "5" - ], + "REGIONTYPE": ["LGA2011"], + "COB": ["1101"], + "DT": ["5"], "STATE": [ "1", "2", @@ -3669,138 +2063,46 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_B03_SA1_SA", "description": "This table counts persons where they were staying on Census Night. It also shows the number of persons who were visiting away from their usual residence on Census Night.
    Counts are of all persons on Census night based on place of usual residence, not including overseas visitors.
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_CENSUS2011_B03_SA1_SA). Click on the 'i' symbols on that page for further information and links.", - "aggregatedDimensionIds": [ - "STATE" - ], + "aggregatedDimensionIds": ["STATE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "MEASURE": [ - "TT", - "O15" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "MEASURE": ["TT", "O15"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], + "FMCF": ["TOT", "[1-3]", "9"], "STRD": [ "TOT", "OPD", @@ -3843,25 +2145,13 @@ "Z", "V" ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "MEASURE": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "MEASURE": ["A[0-9]+", "T.*", "O.*"] }, "selectedInitially": { - "COB": [ - "1101" - ], - "DT": [ - "5" - ], + "COB": ["1101"], + "DT": ["5"], "STATE": [ "1", "2", @@ -3931,141 +2221,47 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_B04", "description": "Counts are of all persons on Census night based on place of usual residence, not including overseas visitors.
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_CENSUS2011_B04). Click on the 'i' symbols on that page for further information and links.", - "aggregatedDimensionIds": [ - "STATE" - ], + "aggregatedDimensionIds": ["STATE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "MEASURE": [ - "3" - ], - "AGE": [ - "TT", - "O15" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "MEASURE": ["3"], + "AGE": ["TT", "O15"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], + "FMCF": ["TOT", "[1-3]", "9"], "STRD": [ "TOT", "OPD", @@ -4108,28 +2304,14 @@ "Z", "V" ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "AGE": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "AGE": ["A[0-9]+", "T.*", "O.*"] }, "selectedInitially": { - "REGIONTYPE": [ - "SA4" - ], - "COB": [ - "1101" - ], - "DT": [ - "5" - ], + "REGIONTYPE": ["SA4"], + "COB": ["1101"], + "DT": ["5"], "STATE": [ "1", "2", @@ -4199,208 +2381,98 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_B04_LGA", "description": "Counts are of all persons on Census night based on place of usual residence, not including overseas visitors.
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_CENSUS2011_B04_LGA). Click on the 'i' symbols on that page for further information and links.", - "aggregatedDimensionIds": [ - "STATE" - ], + "aggregatedDimensionIds": ["STATE"], "totalValueIds": { - "*": [ + "*": ["TOT", "LFTOT"], + "MEASURE": ["3"], + "AGE": ["TT", "O15"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] + }, + "whitelist": { + "REGIONTYPE": ["LGA2011"], + "FMCF": ["TOT", "[1-3]", "9"], + "STRD": [ "TOT", - "LFTOT" - ], - "MEASURE": [ - "3" - ], - "AGE": [ - "TT", - "O15" + "OPD", + "[1-3]", + "9", + "11", + "Z", + "UPD" ], - "SPC": [ - "TT" + "LFSP": [ + "TOT", + "EMP", + "[1-4]", + "7", + "Z", + "UEMP" ], "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ "TOT", - "1", - "2", - "2_0", - "2_11" + "[1-3]M", + "00[1-9]", + "010", + "011", + "232", + "TA", + "BA", + "B2", + "233", + "234", + "Z" ], - "UAI1P": [ + "TYPP": [ "TOT", + "10", "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" + "3", + "40", + "50", + "60", + "Z", + "V" ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] - }, - "whitelist": { - "REGIONTYPE": [ - "LGA2011" - ], - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], - "STRD": [ - "TOT", - "OPD", - "[1-3]", - "9", - "11", - "Z", - "UPD" - ], - "LFSP": [ - "TOT", - "EMP", - "[1-4]", - "7", - "Z", - "UEMP" - ], - "MTWP": [ - "TOT", - "[1-3]M", - "00[1-9]", - "010", - "011", - "232", - "TA", - "BA", - "B2", - "233", - "234", - "Z" - ], - "TYPP": [ - "TOT", - "10", - "2", - "3", - "40", - "50", - "60", - "Z", - "V" - ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "AGE": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "AGE": ["A[0-9]+", "T.*", "O.*"] }, "selectedInitially": { - "REGIONTYPE": [ - "LGA2011" - ], - "COB": [ - "1101" - ], - "DT": [ - "5" - ], + "REGIONTYPE": ["LGA2011"], + "COB": ["1101"], + "DT": ["5"], "STATE": [ "1", "2", @@ -4470,141 +2542,47 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_B04_SA1_SA", "description": "Counts are of all persons on Census night based on place of usual residence, not including overseas visitors.
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_CENSUS2011_B04_SA1_SA). Click on the 'i' symbols on that page for further information and links.", - "aggregatedDimensionIds": [ - "STATE" - ], + "aggregatedDimensionIds": ["STATE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "MEASURE": [ - "3" - ], - "AGE": [ - "TT", - "O15" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "MEASURE": ["3"], + "AGE": ["TT", "O15"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], + "FMCF": ["TOT", "[1-3]", "9"], "STRD": [ "TOT", "OPD", @@ -4647,25 +2625,13 @@ "Z", "V" ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "AGE": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "AGE": ["A[0-9]+", "T.*", "O.*"] }, "selectedInitially": { - "COB": [ - "1101" - ], - "DT": [ - "5" - ], + "COB": ["1101"], + "DT": ["5"], "STATE": [ "1", "2", @@ -4735,141 +2701,47 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_B05", "description": "Counts are of all persons on Census night based on place of usual residence, not including overseas visitors.
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_CENSUS2011_B05). Click on the 'i' symbols on that page for further information and links.", - "aggregatedDimensionIds": [ - "STATE" - ], + "aggregatedDimensionIds": ["STATE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "MEASURE": [ - "3" - ], - "AGE": [ - "TT", - "O15" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "MEASURE": ["3"], + "AGE": ["TT", "O15"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], + "FMCF": ["TOT", "[1-3]", "9"], "STRD": [ "TOT", "OPD", @@ -4912,28 +2784,14 @@ "Z", "V" ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "AGE": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "AGE": ["A[0-9]+", "T.*", "O.*"] }, "selectedInitially": { - "REGIONTYPE": [ - "SA4" - ], - "COB": [ - "1101" - ], - "DT": [ - "5" - ], + "REGIONTYPE": ["SA4"], + "COB": ["1101"], + "DT": ["5"], "STATE": [ "1", "2", @@ -5003,144 +2861,48 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_B05_LGA", "description": "Counts are of all persons on Census night based on place of usual residence, not including overseas visitors.
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_CENSUS2011_B05_LGA). Click on the 'i' symbols on that page for further information and links.", - "aggregatedDimensionIds": [ - "STATE" - ], + "aggregatedDimensionIds": ["STATE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "MEASURE": [ - "3" - ], - "AGE": [ - "TT", - "O15" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "MEASURE": ["3"], + "AGE": ["TT", "O15"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { - "REGIONTYPE": [ - "LGA2011" - ], - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], + "REGIONTYPE": ["LGA2011"], + "FMCF": ["TOT", "[1-3]", "9"], "STRD": [ "TOT", "OPD", @@ -5183,28 +2945,14 @@ "Z", "V" ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "AGE": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "AGE": ["A[0-9]+", "T.*", "O.*"] }, "selectedInitially": { - "REGIONTYPE": [ - "LGA2011" - ], - "COB": [ - "1101" - ], - "DT": [ - "5" - ], + "REGIONTYPE": ["LGA2011"], + "COB": ["1101"], + "DT": ["5"], "STATE": [ "1", "2", @@ -5274,141 +3022,47 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_B05_SA1_SA", "description": "Counts are of all persons on Census night based on place of usual residence, not including overseas visitors.
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_CENSUS2011_B05_SA1_SA). Click on the 'i' symbols on that page for further information and links.", - "aggregatedDimensionIds": [ - "STATE" - ], + "aggregatedDimensionIds": ["STATE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "MEASURE": [ - "3" - ], - "AGE": [ - "TT", - "O15" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "MEASURE": ["3"], + "AGE": ["TT", "O15"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], + "FMCF": ["TOT", "[1-3]", "9"], "STRD": [ "TOT", "OPD", @@ -5451,25 +3105,13 @@ "Z", "V" ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "AGE": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "AGE": ["A[0-9]+", "T.*", "O.*"] }, "selectedInitially": { - "COB": [ - "1101" - ], - "DT": [ - "5" - ], + "COB": ["1101"], + "DT": ["5"], "STATE": [ "1", "2", @@ -5539,141 +3181,47 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_B06", "description": "Counts are of all persons on Census night based on place of usual residence, not including overseas visitors.
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_CENSUS2011_B06). Click on the 'i' symbols on that page for further information and links.", - "aggregatedDimensionIds": [ - "STATE" - ], + "aggregatedDimensionIds": ["STATE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "MEASURE": [ - "3" - ], - "AGE": [ - "TT", - "O15" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "MEASURE": ["3"], + "AGE": ["TT", "O15"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], + "FMCF": ["TOT", "[1-3]", "9"], "STRD": [ "TOT", "OPD", @@ -5716,28 +3264,14 @@ "Z", "V" ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "AGE": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "AGE": ["A[0-9]+", "T.*", "O.*"] }, "selectedInitially": { - "REGIONTYPE": [ - "SA4" - ], - "COB": [ - "1101" - ], - "DT": [ - "5" - ], + "REGIONTYPE": ["SA4"], + "COB": ["1101"], + "DT": ["5"], "STATE": [ "1", "2", @@ -5807,144 +3341,48 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_B06_LGA", "description": "Counts are of all persons on Census night based on place of usual residence, not including overseas visitors.
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_CENSUS2011_B06_LGA). Click on the 'i' symbols on that page for further information and links.", - "aggregatedDimensionIds": [ - "STATE" - ], + "aggregatedDimensionIds": ["STATE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "MEASURE": [ - "3" - ], - "AGE": [ - "TT", - "O15" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "MEASURE": ["3"], + "AGE": ["TT", "O15"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { - "REGIONTYPE": [ - "LGA2011" - ], - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], + "REGIONTYPE": ["LGA2011"], + "FMCF": ["TOT", "[1-3]", "9"], "STRD": [ "TOT", "OPD", @@ -5987,28 +3425,14 @@ "Z", "V" ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "AGE": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "AGE": ["A[0-9]+", "T.*", "O.*"] }, "selectedInitially": { - "REGIONTYPE": [ - "LGA2011" - ], - "COB": [ - "1101" - ], - "DT": [ - "5" - ], + "REGIONTYPE": ["LGA2011"], + "COB": ["1101"], + "DT": ["5"], "STATE": [ "1", "2", @@ -6078,141 +3502,47 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_B06_SA1_SA", "description": "Counts are of all persons on Census night based on place of usual residence, not including overseas visitors.
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_CENSUS2011_B06_SA1_SA). Click on the 'i' symbols on that page for further information and links.", - "aggregatedDimensionIds": [ - "STATE" - ], + "aggregatedDimensionIds": ["STATE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "MEASURE": [ - "3" - ], - "AGE": [ - "TT", - "O15" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "MEASURE": ["3"], + "AGE": ["TT", "O15"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], + "FMCF": ["TOT", "[1-3]", "9"], "STRD": [ "TOT", "OPD", @@ -6255,25 +3585,13 @@ "Z", "V" ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "AGE": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "AGE": ["A[0-9]+", "T.*", "O.*"] }, "selectedInitially": { - "COB": [ - "1101" - ], - "DT": [ - "5" - ], + "COB": ["1101"], + "DT": ["5"], "STATE": [ "1", "2", @@ -6338,141 +3656,47 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_B07", "description": "Counts are of all persons on Census night based on place of usual residence, not including overseas visitors.
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_CENSUS2011_B07). Click on the 'i' symbols on that page for further information and links.", - "aggregatedDimensionIds": [ - "STATE" - ], + "aggregatedDimensionIds": ["STATE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "MEASURE": [ - "3" - ], - "AGE": [ - "TT", - "O15" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "MEASURE": ["3"], + "AGE": ["TT", "O15"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], + "FMCF": ["TOT", "[1-3]", "9"], "STRD": [ "TOT", "OPD", @@ -6515,28 +3739,14 @@ "Z", "V" ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "AGE": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "AGE": ["A[0-9]+", "T.*", "O.*"] }, "selectedInitially": { - "REGIONTYPE": [ - "SA4" - ], - "COB": [ - "1101" - ], - "DT": [ - "5" - ], + "REGIONTYPE": ["SA4"], + "COB": ["1101"], + "DT": ["5"], "STATE": [ "1", "2", @@ -6599,144 +3809,48 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_B07_LGA", "description": "Counts are of all persons on Census night based on place of usual residence, not including overseas visitors.
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_CENSUS2011_B07_LGA). Click on the 'i' symbols on that page for further information and links.", - "aggregatedDimensionIds": [ - "STATE" - ], + "aggregatedDimensionIds": ["STATE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "MEASURE": [ - "3" - ], - "AGE": [ - "TT", - "O15" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "MEASURE": ["3"], + "AGE": ["TT", "O15"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { - "REGIONTYPE": [ - "LGA2011" - ], - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], + "REGIONTYPE": ["LGA2011"], + "FMCF": ["TOT", "[1-3]", "9"], "STRD": [ "TOT", "OPD", @@ -6779,28 +3893,14 @@ "Z", "V" ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "AGE": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "AGE": ["A[0-9]+", "T.*", "O.*"] }, "selectedInitially": { - "REGIONTYPE": [ - "LGA2011" - ], - "COB": [ - "1101" - ], - "DT": [ - "5" - ], + "REGIONTYPE": ["LGA2011"], + "COB": ["1101"], + "DT": ["5"], "STATE": [ "1", "2", @@ -6863,141 +3963,47 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_B07_SA1_SA", "description": "Counts are of all persons on Census night based on place of usual residence, not including overseas visitors.
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_CENSUS2011_B07_SA1_SA). Click on the 'i' symbols on that page for further information and links.", - "aggregatedDimensionIds": [ - "STATE" - ], + "aggregatedDimensionIds": ["STATE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "MEASURE": [ - "3" - ], - "AGE": [ - "TT", - "O15" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "MEASURE": ["3"], + "AGE": ["TT", "O15"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], + "FMCF": ["TOT", "[1-3]", "9"], "STRD": [ "TOT", "OPD", @@ -7040,25 +4046,13 @@ "Z", "V" ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "AGE": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "AGE": ["A[0-9]+", "T.*", "O.*"] }, "selectedInitially": { - "COB": [ - "1101" - ], - "DT": [ - "5" - ], + "COB": ["1101"], + "DT": ["5"], "STATE": [ "1", "2", @@ -7126,134 +4120,45 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_B08", "description": "Counts are of all persons on Census night based on place of usual residence, not including overseas visitors.
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_CENSUS2011_B08). Click on the 'i' symbols on that page for further information and links.", - "aggregatedDimensionIds": [ - "STATE" - ], + "aggregatedDimensionIds": ["STATE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], + "FMCF": ["TOT", "[1-3]", "9"], "STRD": [ "TOT", "OPD", @@ -7296,28 +4201,14 @@ "Z", "V" ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "": ["A[0-9]+", "T.*", "O.*"] }, "selectedInitially": { - "REGIONTYPE": [ - "SA4" - ], - "COB": [ - "1101" - ], - "DT": [ - "5" - ], + "REGIONTYPE": ["SA4"], + "COB": ["1101"], + "DT": ["5"], "STATE": [ "1", "2", @@ -7387,137 +4278,46 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_B08_LGA", "description": "Counts are of all persons on Census night based on place of usual residence, not including overseas visitors.
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_CENSUS2011_B08_LGA). Click on the 'i' symbols on that page for further information and links.", - "aggregatedDimensionIds": [ - "STATE" - ], + "aggregatedDimensionIds": ["STATE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { - "REGIONTYPE": [ - "LGA2011" - ], - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], + "REGIONTYPE": ["LGA2011"], + "FMCF": ["TOT", "[1-3]", "9"], "STRD": [ "TOT", "OPD", @@ -7560,28 +4360,14 @@ "Z", "V" ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "": ["A[0-9]+", "T.*", "O.*"] }, "selectedInitially": { - "REGIONTYPE": [ - "LGA2011" - ], - "COB": [ - "1101" - ], - "DT": [ - "5" - ], + "REGIONTYPE": ["LGA2011"], + "COB": ["1101"], + "DT": ["5"], "STATE": [ "1", "2", @@ -7651,134 +4437,45 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_B08_SA1_SA", "description": "Counts are of all persons on Census night based on place of usual residence, not including overseas visitors.
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_CENSUS2011_B08_SA1_SA). Click on the 'i' symbols on that page for further information and links.", - "aggregatedDimensionIds": [ - "STATE" - ], + "aggregatedDimensionIds": ["STATE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], + "FMCF": ["TOT", "[1-3]", "9"], "STRD": [ "TOT", "OPD", @@ -7821,25 +4518,13 @@ "Z", "V" ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "": ["A[0-9]+", "T.*", "O.*"] }, "selectedInitially": { - "COB": [ - "1101" - ], - "DT": [ - "5" - ], + "COB": ["1101"], + "DT": ["5"], "STATE": [ "1", "2", @@ -7909,137 +4594,46 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_B09", "description": "Counts are of all persons on Census night based on place of usual residence, not including overseas visitors.
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_CENSUS2011_B09). Click on the 'i' symbols on that page for further information and links.", - "aggregatedDimensionIds": [ - "STATE" - ], + "aggregatedDimensionIds": ["STATE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "MEASURE": [ - "3" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "MEASURE": ["3"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], + "FMCF": ["TOT", "[1-3]", "9"], "STRD": [ "TOT", "OPD", @@ -8082,28 +4676,14 @@ "Z", "V" ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "": ["A[0-9]+", "T.*", "O.*"] }, "selectedInitially": { - "REGIONTYPE": [ - "SA4" - ], - "COB": [ - "1101" - ], - "DT": [ - "5" - ], + "REGIONTYPE": ["SA4"], + "COB": ["1101"], + "DT": ["5"], "STATE": [ "1", "2", @@ -8173,140 +4753,47 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_B09_LGA", "description": "Counts are of all persons on Census night based on place of usual residence, not including overseas visitors.
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_CENSUS2011_B09_LGA). Click on the 'i' symbols on that page for further information and links.", - "aggregatedDimensionIds": [ - "STATE" - ], + "aggregatedDimensionIds": ["STATE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "MEASURE": [ - "3" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "MEASURE": ["3"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { - "REGIONTYPE": [ - "LGA2011" - ], - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], + "REGIONTYPE": ["LGA2011"], + "FMCF": ["TOT", "[1-3]", "9"], "STRD": [ "TOT", "OPD", @@ -8349,28 +4836,14 @@ "Z", "V" ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "": ["A[0-9]+", "T.*", "O.*"] }, "selectedInitially": { - "REGIONTYPE": [ - "LGA2011" - ], - "COB": [ - "1101" - ], - "DT": [ - "5" - ], + "REGIONTYPE": ["LGA2011"], + "COB": ["1101"], + "DT": ["5"], "STATE": [ "1", "2", @@ -8440,137 +4913,203 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_B09_SA1_SA", "description": "Counts are of all persons on Census night based on place of usual residence, not including overseas visitors.
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_CENSUS2011_B09_SA1_SA). Click on the 'i' symbols on that page for further information and links.", - "aggregatedDimensionIds": [ - "STATE" - ], + "aggregatedDimensionIds": ["STATE"], "totalValueIds": { - "*": [ + "*": ["TOT", "LFTOT"], + "MEASURE": ["3"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] + }, + "whitelist": { + "FMCF": ["TOT", "[1-3]", "9"], + "STRD": [ "TOT", - "LFTOT" - ], - "MEASURE": [ - "3" + "OPD", + "[1-3]", + "9", + "11", + "Z", + "UPD" ], - "SPC": [ - "TT" + "LFSP": [ + "TOT", + "EMP", + "[1-4]", + "7", + "Z", + "UEMP" ], "MTWP": [ - "1M", - "2M", - "3M" + "TOT", + "[1-3]M", + "00[1-9]", + "010", + "011", + "232", + "TA", + "BA", + "B2", + "233", + "234", + "Z" ], - "FMCF": [ - "CF", - "1", + "TYPP": [ + "TOT", + "10", "2", - "3" + "3", + "40", + "50", + "60", + "Z", + "V" ], - "POUR": [ - "TOT", + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "": ["A[0-9]+", "T.*", "O.*"] + }, + "selectedInitially": { + "COB": ["1101"], + "DT": ["5"], + "STATE": [ "1", "2", - "2_0", - "2_11" + "3", + "4", + "5", + "6", + "7", + "8" ], - "UAI1P": [ - "TOT", + "ASGS_2011": [ + "1", "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" + "3", + "4", + "5", + "6", + "7", + "8" ] + } + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + { + "name": "Census", + "type": "group", + "isOpen": true, + "items": [ + { + "name": "Person", + "type": "group", + "isOpen": false, + "items": [ + { + "name": "Background", + "type": "group", + "isOpen": false, + "items": [ + { + "name": "Country of Birth", + "type": "group", + "isOpen": false, + "items": [ + { + "name": "by Year of Arrival in Australia", + "type": "group", + "items": [ + { + "name": "2011 Census", + "type": "group", + "items": [ + { + "name": "By Statistical Area", + "type": "sdmx-json", + "id": "ABS_SDMX-JSON__ABS_CENSUS2011_B10", + "sortValues": "id", + "showWarnings": false, + "cleanFootnotes": true, + "forceShowDimensionIds": ["MEASURE"], + "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_B10", + "description": "Counts are of all persons on Census night based on place of usual residence, not including overseas visitors.
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_CENSUS2011_B10). Click on the 'i' symbols on that page for further information and links.", + "aggregatedDimensionIds": ["STATE"], + "totalValueIds": { + "*": ["TOT", "LFTOT"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], + "FMCF": ["TOT", "[1-3]", "9"], "STRD": [ "TOT", "OPD", @@ -8613,25 +5152,14 @@ "Z", "V" ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "": ["A[0-9]+", "T.*", "O.*"] }, "selectedInitially": { - "COB": [ - "1101" - ], - "DT": [ - "5" - ], + "REGIONTYPE": ["SA4"], + "COB": ["1101"], + "DT": ["5"], "STATE": [ "1", "2", @@ -8695,140 +5223,52 @@ "type": "group", "items": [ { - "name": "By Statistical Area", + "name": "By Local Government Area", "type": "sdmx-json", - "id": "ABS_SDMX-JSON__ABS_CENSUS2011_B10", + "id": "ABS_SDMX-JSON__ABS_CENSUS2011_B10_LGA", "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], - "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_B10", - "description": "Counts are of all persons on Census night based on place of usual residence, not including overseas visitors.
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_CENSUS2011_B10). Click on the 'i' symbols on that page for further information and links.", - "aggregatedDimensionIds": [ - "STATE" - ], + "forceShowDimensionIds": ["MEASURE"], + "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_B10_LGA", + "description": "Counts are of all persons on Census night based on place of usual residence, not including overseas visitors.
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_CENSUS2011_B10_LGA). Click on the 'i' symbols on that page for further information and links.", + "aggregatedDimensionIds": ["STATE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], + "REGIONTYPE": ["LGA2011"], + "FMCF": ["TOT", "[1-3]", "9"], "STRD": [ "TOT", "OPD", @@ -8871,28 +5311,14 @@ "Z", "V" ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "": ["A[0-9]+", "T.*", "O.*"] }, "selectedInitially": { - "REGIONTYPE": [ - "SA4" - ], - "COB": [ - "1101" - ], - "DT": [ - "5" - ], + "REGIONTYPE": ["LGA2011"], + "COB": ["1101"], + "DT": ["5"], "STATE": [ "1", "2", @@ -8956,143 +5382,51 @@ "type": "group", "items": [ { - "name": "By Local Government Area", + "name": "By SA1 (South Australia only)", "type": "sdmx-json", - "id": "ABS_SDMX-JSON__ABS_CENSUS2011_B10_LGA", + "id": "ABS_SDMX-JSON__ABS_CENSUS2011_B10_SA1_SA", "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], - "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_B10_LGA", - "description": "Counts are of all persons on Census night based on place of usual residence, not including overseas visitors.
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_CENSUS2011_B10_LGA). Click on the 'i' symbols on that page for further information and links.", - "aggregatedDimensionIds": [ - "STATE" - ], + "forceShowDimensionIds": ["MEASURE"], + "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_B10_SA1_SA", + "description": "Counts are of all persons on Census night based on place of usual residence, not including overseas visitors.
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_CENSUS2011_B10_SA1_SA). Click on the 'i' symbols on that page for further information and links.", + "aggregatedDimensionIds": ["STATE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { - "REGIONTYPE": [ - "LGA2011" - ], - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], + "FMCF": ["TOT", "[1-3]", "9"], "STRD": [ "TOT", "OPD", @@ -9135,28 +5469,13 @@ "Z", "V" ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "": ["A[0-9]+", "T.*", "O.*"] }, "selectedInitially": { - "REGIONTYPE": [ - "LGA2011" - ], - "COB": [ - "1101" - ], - "DT": [ - "5" - ], + "COB": ["1101"], + "DT": ["5"], "STATE": [ "1", "2", @@ -9207,12 +5526,12 @@ "isOpen": false, "items": [ { - "name": "Country of Birth", + "name": "Proficiency in Spoken English/Language", "type": "group", "isOpen": false, "items": [ { - "name": "by Year of Arrival in Australia", + "name": "by Year of Arrival in Australia by Sex", "type": "group", "items": [ { @@ -9220,140 +5539,52 @@ "type": "group", "items": [ { - "name": "By SA1 (South Australia only)", + "name": "By Statistical Area", "type": "sdmx-json", - "id": "ABS_SDMX-JSON__ABS_CENSUS2011_B10_SA1_SA", + "id": "ABS_SDMX-JSON__ABS_CENSUS2011_B11", "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], - "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_B10_SA1_SA", - "description": "Counts are of all persons on Census night based on place of usual residence, not including overseas visitors.
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_CENSUS2011_B10_SA1_SA). Click on the 'i' symbols on that page for further information and links.", - "aggregatedDimensionIds": [ - "STATE" - ], + "forceShowDimensionIds": ["MEASURE"], + "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_B11", + "description": "Counts are of all persons on Census night based on place of usual residence, not including overseas visitors.
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_CENSUS2011_B11). Click on the 'i' symbols on that page for further information and links.", + "aggregatedDimensionIds": ["STATE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "MEASURE": ["3"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], + "FMCF": ["TOT", "[1-3]", "9"], "STRD": [ "TOT", "OPD", @@ -9396,25 +5627,14 @@ "Z", "V" ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "": ["A[0-9]+", "T.*", "O.*"] }, "selectedInitially": { - "COB": [ - "1101" - ], - "DT": [ - "5" - ], + "REGIONTYPE": ["SA4"], + "COB": ["1101"], + "DT": ["5"], "STATE": [ "1", "2", @@ -9478,143 +5698,53 @@ "type": "group", "items": [ { - "name": "By Statistical Area", + "name": "By Local Government Area", "type": "sdmx-json", - "id": "ABS_SDMX-JSON__ABS_CENSUS2011_B11", + "id": "ABS_SDMX-JSON__ABS_CENSUS2011_B11_LGA", "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], - "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_B11", - "description": "Counts are of all persons on Census night based on place of usual residence, not including overseas visitors.
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_CENSUS2011_B11). Click on the 'i' symbols on that page for further information and links.", - "aggregatedDimensionIds": [ - "STATE" - ], + "forceShowDimensionIds": ["MEASURE"], + "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_B11_LGA", + "description": "Counts are of all persons on Census night based on place of usual residence, not including overseas visitors.
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_CENSUS2011_B11_LGA). Click on the 'i' symbols on that page for further information and links.", + "aggregatedDimensionIds": ["STATE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "MEASURE": [ - "3" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "MEASURE": ["3"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], + "REGIONTYPE": ["LGA2011"], + "FMCF": ["TOT", "[1-3]", "9"], "STRD": [ "TOT", "OPD", @@ -9657,28 +5787,14 @@ "Z", "V" ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "": ["A[0-9]+", "T.*", "O.*"] }, "selectedInitially": { - "REGIONTYPE": [ - "SA4" - ], - "COB": [ - "1101" - ], - "DT": [ - "5" - ], + "REGIONTYPE": ["LGA2011"], + "COB": ["1101"], + "DT": ["5"], "STATE": [ "1", "2", @@ -9742,146 +5858,52 @@ "type": "group", "items": [ { - "name": "By Local Government Area", + "name": "By SA1 (South Australia only)", "type": "sdmx-json", - "id": "ABS_SDMX-JSON__ABS_CENSUS2011_B11_LGA", + "id": "ABS_SDMX-JSON__ABS_CENSUS2011_B11_SA1_SA", "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], - "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_B11_LGA", - "description": "Counts are of all persons on Census night based on place of usual residence, not including overseas visitors.
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_CENSUS2011_B11_LGA). Click on the 'i' symbols on that page for further information and links.", - "aggregatedDimensionIds": [ - "STATE" - ], + "forceShowDimensionIds": ["MEASURE"], + "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_B11_SA1_SA", + "description": "Counts are of all persons on Census night based on place of usual residence, not including overseas visitors.
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_CENSUS2011_B11_SA1_SA). Click on the 'i' symbols on that page for further information and links.", + "aggregatedDimensionIds": ["STATE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "MEASURE": [ - "3" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "MEASURE": ["3"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { - "REGIONTYPE": [ - "LGA2011" - ], - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], + "FMCF": ["TOT", "[1-3]", "9"], "STRD": [ "TOT", "OPD", @@ -9924,28 +5946,13 @@ "Z", "V" ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "": ["A[0-9]+", "T.*", "O.*"] }, "selectedInitially": { - "REGIONTYPE": [ - "LGA2011" - ], - "COB": [ - "1101" - ], - "DT": [ - "5" - ], + "COB": ["1101"], + "DT": ["5"], "STATE": [ "1", "2", @@ -9996,12 +6003,12 @@ "isOpen": false, "items": [ { - "name": "Proficiency in Spoken English/Language", + "name": "Proficiency in Spoken English/Language of Parents", "type": "group", "isOpen": false, "items": [ { - "name": "by Year of Arrival in Australia by Sex", + "name": "by Age of Dependent Children", "type": "group", "items": [ { @@ -10009,143 +6016,53 @@ "type": "group", "items": [ { - "name": "By SA1 (South Australia only)", + "name": "By Statistical Area", "type": "sdmx-json", - "id": "ABS_SDMX-JSON__ABS_CENSUS2011_B11_SA1_SA", + "id": "ABS_SDMX-JSON__ABS_CENSUS2011_B12", "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], - "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_B11_SA1_SA", - "description": "Counts are of all persons on Census night based on place of usual residence, not including overseas visitors.
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_CENSUS2011_B11_SA1_SA). Click on the 'i' symbols on that page for further information and links.", - "aggregatedDimensionIds": [ - "STATE" - ], + "forceShowDimensionIds": ["MEASURE"], + "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_B12", + "description": "Counts are of all persons on Census night based on place of usual residence, not including overseas visitors.
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_CENSUS2011_B12). Click on the 'i' symbols on that page for further information and links.", + "aggregatedDimensionIds": ["STATE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "MEASURE": [ - "3" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "AGE": ["TT", "O15"], + "MEASURE": ["8"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], + "FMCF": ["TOT", "[1-3]", "9"], "STRD": [ "TOT", "OPD", @@ -10188,25 +6105,14 @@ "Z", "V" ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "AGE": ["A[0-9]+", "T.*", "O.*"] }, "selectedInitially": { - "COB": [ - "1101" - ], - "DT": [ - "5" - ], + "REGIONTYPE": ["SA4"], + "COB": ["1101"], + "DT": ["5"], "STATE": [ "1", "2", @@ -10270,147 +6176,54 @@ "type": "group", "items": [ { - "name": "By Statistical Area", + "name": "By Local Government Area", "type": "sdmx-json", - "id": "ABS_SDMX-JSON__ABS_CENSUS2011_B12", + "id": "ABS_SDMX-JSON__ABS_CENSUS2011_B12_LGA", "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], - "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_B12", - "description": "Counts are of all persons on Census night based on place of usual residence, not including overseas visitors.
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_CENSUS2011_B12). Click on the 'i' symbols on that page for further information and links.", - "aggregatedDimensionIds": [ - "STATE" - ], + "forceShowDimensionIds": ["MEASURE"], + "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_B12_LGA", + "description": "Counts are of all persons on Census night based on place of usual residence, not including overseas visitors.
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_CENSUS2011_B12_LGA). Click on the 'i' symbols on that page for further information and links.", + "aggregatedDimensionIds": ["STATE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "AGE": [ - "TT", - "O15" - ], - "MEASURE": [ - "8" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "AGE": ["TT", "O15"], + "MEASURE": ["8"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], + "REGIONTYPE": ["LGA2011"], + "FMCF": ["TOT", "[1-3]", "9"], "STRD": [ "TOT", "OPD", @@ -10453,28 +6266,14 @@ "Z", "V" ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "AGE": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "AGE": ["A[0-9]+", "T.*", "O.*"] }, "selectedInitially": { - "REGIONTYPE": [ - "SA4" - ], - "COB": [ - "1101" - ], - "DT": [ - "5" - ], + "REGIONTYPE": ["LGA2011"], + "COB": ["1101"], + "DT": ["5"], "STATE": [ "1", "2", @@ -10538,150 +6337,53 @@ "type": "group", "items": [ { - "name": "By Local Government Area", + "name": "By SA1 (South Australia only)", "type": "sdmx-json", - "id": "ABS_SDMX-JSON__ABS_CENSUS2011_B12_LGA", + "id": "ABS_SDMX-JSON__ABS_CENSUS2011_B12_SA1_SA", "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], - "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_B12_LGA", - "description": "Counts are of all persons on Census night based on place of usual residence, not including overseas visitors.
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_CENSUS2011_B12_LGA). Click on the 'i' symbols on that page for further information and links.", - "aggregatedDimensionIds": [ - "STATE" - ], + "forceShowDimensionIds": ["MEASURE"], + "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_B12_SA1_SA", + "description": "Counts are of all persons on Census night based on place of usual residence, not including overseas visitors.
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_CENSUS2011_B12_SA1_SA). Click on the 'i' symbols on that page for further information and links.", + "aggregatedDimensionIds": ["STATE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "AGE": [ - "TT", - "O15" - ], - "MEASURE": [ - "8" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "AGE": ["TT", "O15"], + "MEASURE": ["8"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { - "REGIONTYPE": [ - "LGA2011" - ], - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], + "FMCF": ["TOT", "[1-3]", "9"], "STRD": [ "TOT", "OPD", @@ -10724,28 +6426,13 @@ "Z", "V" ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "AGE": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "AGE": ["A[0-9]+", "T.*", "O.*"] }, "selectedInitially": { - "REGIONTYPE": [ - "LGA2011" - ], - "COB": [ - "1101" - ], - "DT": [ - "5" - ], + "COB": ["1101"], + "DT": ["5"], "STATE": [ "1", "2", @@ -10796,12 +6483,12 @@ "isOpen": false, "items": [ { - "name": "Proficiency in Spoken English/Language of Parents", + "name": "Language Spoken at Home", "type": "group", "isOpen": false, "items": [ { - "name": "by Age of Dependent Children", + "name": "by Sex", "type": "group", "items": [ { @@ -10809,408 +6496,52 @@ "type": "group", "items": [ { - "name": "By SA1 (South Australia only)", - "type": "sdmx-json", - "id": "ABS_SDMX-JSON__ABS_CENSUS2011_B12_SA1_SA", - "sortValues": "id", - "showWarnings": false, - "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], - "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_B12_SA1_SA", - "description": "Counts are of all persons on Census night based on place of usual residence, not including overseas visitors.
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_CENSUS2011_B12_SA1_SA). Click on the 'i' symbols on that page for further information and links.", - "aggregatedDimensionIds": [ - "STATE" - ], - "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "AGE": [ - "TT", - "O15" - ], - "MEASURE": [ - "8" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] - }, - "whitelist": { - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], - "STRD": [ - "TOT", - "OPD", - "[1-3]", - "9", - "11", - "Z", - "UPD" - ], - "LFSP": [ - "TOT", - "EMP", - "[1-4]", - "7", - "Z", - "UEMP" - ], - "MTWP": [ - "TOT", - "[1-3]M", - "00[1-9]", - "010", - "011", - "232", - "TA", - "BA", - "B2", - "233", - "234", - "Z" - ], - "TYPP": [ - "TOT", - "10", - "2", - "3", - "40", - "50", - "60", - "Z", - "V" - ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "AGE": [ - "A[0-9]+", - "T.*", - "O.*" - ] - }, - "selectedInitially": { - "COB": [ - "1101" - ], - "DT": [ - "5" - ], - "STATE": [ - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8" - ], - "ASGS_2011": [ - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8" - ] - } - } - ] - } - ] - } - ] - } - ] - } - ] - } - ] - }, - { - "name": "Census", - "type": "group", - "isOpen": true, - "items": [ - { - "name": "Person", - "type": "group", - "isOpen": false, - "items": [ - { - "name": "Background", - "type": "group", - "isOpen": false, - "items": [ - { - "name": "Language Spoken at Home", - "type": "group", - "isOpen": false, - "items": [ - { - "name": "by Sex", - "type": "group", - "items": [ - { - "name": "2011 Census", - "type": "group", - "items": [ - { - "name": "By Statistical Area", + "name": "By Statistical Area", "type": "sdmx-json", "id": "ABS_SDMX-JSON__ABS_CENSUS2011_B13", "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_B13", "description": "Counts are of all persons on Census night based on place of usual residence, not including overseas visitors.
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_CENSUS2011_B13). Click on the 'i' symbols on that page for further information and links.", - "aggregatedDimensionIds": [ - "STATE" - ], + "aggregatedDimensionIds": ["STATE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "MEASURE": [ - "3" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "MEASURE": ["3"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], + "FMCF": ["TOT", "[1-3]", "9"], "STRD": [ "TOT", "OPD", @@ -11253,28 +6584,14 @@ "Z", "V" ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "": ["A[0-9]+", "T.*", "O.*"] }, "selectedInitially": { - "REGIONTYPE": [ - "SA4" - ], - "COB": [ - "1101" - ], - "DT": [ - "5" - ], + "REGIONTYPE": ["SA4"], + "COB": ["1101"], + "DT": ["5"], "STATE": [ "1", "2", @@ -11344,140 +6661,47 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_B13_LGA", "description": "Counts are of all persons on Census night based on place of usual residence, not including overseas visitors.
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_CENSUS2011_B13_LGA). Click on the 'i' symbols on that page for further information and links.", - "aggregatedDimensionIds": [ - "STATE" - ], + "aggregatedDimensionIds": ["STATE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "MEASURE": [ - "3" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "MEASURE": ["3"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { - "REGIONTYPE": [ - "LGA2011" - ], - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], + "REGIONTYPE": ["LGA2011"], + "FMCF": ["TOT", "[1-3]", "9"], "STRD": [ "TOT", "OPD", @@ -11520,28 +6744,14 @@ "Z", "V" ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "": ["A[0-9]+", "T.*", "O.*"] }, "selectedInitially": { - "REGIONTYPE": [ - "LGA2011" - ], - "COB": [ - "1101" - ], - "DT": [ - "5" - ], + "REGIONTYPE": ["LGA2011"], + "COB": ["1101"], + "DT": ["5"], "STATE": [ "1", "2", @@ -11611,137 +6821,46 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_B13_SA1_SA", "description": "Counts are of all persons on Census night based on place of usual residence, not including overseas visitors.
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_CENSUS2011_B13_SA1_SA). Click on the 'i' symbols on that page for further information and links.", - "aggregatedDimensionIds": [ - "STATE" - ], + "aggregatedDimensionIds": ["STATE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "MEASURE": [ - "3" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "MEASURE": ["3"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], + "FMCF": ["TOT", "[1-3]", "9"], "STRD": [ "TOT", "OPD", @@ -11784,25 +6903,13 @@ "Z", "V" ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "": ["A[0-9]+", "T.*", "O.*"] }, "selectedInitially": { - "COB": [ - "1101" - ], - "DT": [ - "5" - ], + "COB": ["1101"], + "DT": ["5"], "STATE": [ "1", "2", @@ -11867,137 +6974,46 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_B14", "description": "Counts are of all persons on Census night based on place of usual residence, not including overseas visitors.
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_CENSUS2011_B14). Click on the 'i' symbols on that page for further information and links.", - "aggregatedDimensionIds": [ - "STATE" - ], + "aggregatedDimensionIds": ["STATE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "MEASURE": [ - "3" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "MEASURE": ["3"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], + "FMCF": ["TOT", "[1-3]", "9"], "STRD": [ "TOT", "OPD", @@ -12040,28 +7056,14 @@ "Z", "V" ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "": ["A[0-9]+", "T.*", "O.*"] }, "selectedInitially": { - "REGIONTYPE": [ - "SA4" - ], - "COB": [ - "1101" - ], - "DT": [ - "5" - ], + "REGIONTYPE": ["SA4"], + "COB": ["1101"], + "DT": ["5"], "STATE": [ "1", "2", @@ -12124,140 +7126,47 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_B14_LGA", "description": "Counts are of all persons on Census night based on place of usual residence, not including overseas visitors.
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_CENSUS2011_B14_LGA). Click on the 'i' symbols on that page for further information and links.", - "aggregatedDimensionIds": [ - "STATE" - ], + "aggregatedDimensionIds": ["STATE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "MEASURE": [ - "3" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "MEASURE": ["3"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { - "REGIONTYPE": [ - "LGA2011" - ], - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], + "REGIONTYPE": ["LGA2011"], + "FMCF": ["TOT", "[1-3]", "9"], "STRD": [ "TOT", "OPD", @@ -12300,28 +7209,14 @@ "Z", "V" ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "": ["A[0-9]+", "T.*", "O.*"] }, "selectedInitially": { - "REGIONTYPE": [ - "LGA2011" - ], - "COB": [ - "1101" - ], - "DT": [ - "5" - ], + "REGIONTYPE": ["LGA2011"], + "COB": ["1101"], + "DT": ["5"], "STATE": [ "1", "2", @@ -12384,137 +7279,46 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_B14_SA1_SA", "description": "Counts are of all persons on Census night based on place of usual residence, not including overseas visitors.
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_CENSUS2011_B14_SA1_SA). Click on the 'i' symbols on that page for further information and links.", - "aggregatedDimensionIds": [ - "STATE" - ], + "aggregatedDimensionIds": ["STATE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "MEASURE": [ - "3" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "MEASURE": ["3"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], + "FMCF": ["TOT", "[1-3]", "9"], "STRD": [ "TOT", "OPD", @@ -12557,25 +7361,13 @@ "Z", "V" ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "": ["A[0-9]+", "T.*", "O.*"] }, "selectedInitially": { - "COB": [ - "1101" - ], - "DT": [ - "5" - ], + "COB": ["1101"], + "DT": ["5"], "STATE": [ "1", "2", @@ -12643,145 +7435,54 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_B15", "description": "Not all the data available in this dataset is displayed here.
    Counts are of all persons on Census night based on place of usual residence, not including overseas visitors.
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_CENSUS2011_B15). Click on the 'i' symbols on that page for further information and links.", - "aggregatedDimensionIds": [ - "STATE" - ], + "aggregatedDimensionIds": ["STATE"], "totalValueIds": { - "*": [ + "*": ["TOT", "LFTOT"], + "MEASURE": ["3"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] + }, + "whitelist": { + "FMCF": ["TOT", "[1-3]", "9"], + "STRD": [ "TOT", - "LFTOT" - ], - "MEASURE": [ - "3" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] - }, - "whitelist": { - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], - "STRD": [ - "TOT", - "OPD", - "[1-3]", - "9", - "11", - "Z", - "UPD" + "OPD", + "[1-3]", + "9", + "11", + "Z", + "UPD" ], "LFSP": [ "TOT", @@ -12816,28 +7517,14 @@ "Z", "V" ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "": ["A[0-9]+", "T.*", "O.*"] }, "selectedInitially": { - "REGIONTYPE": [ - "SA4" - ], - "COB": [ - "1101" - ], - "DT": [ - "5" - ], + "REGIONTYPE": ["SA4"], + "COB": ["1101"], + "DT": ["5"], "STATE": [ "1", "2", @@ -12907,140 +7594,47 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_B15_LGA", "description": "Not all the data available in this dataset is displayed here.
    Counts are of all persons on Census night based on place of usual residence, not including overseas visitors.
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_CENSUS2011_B15_LGA). Click on the 'i' symbols on that page for further information and links.", - "aggregatedDimensionIds": [ - "STATE" - ], + "aggregatedDimensionIds": ["STATE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "MEASURE": [ - "3" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "MEASURE": ["3"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { - "REGIONTYPE": [ - "LGA2011" - ], - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], + "REGIONTYPE": ["LGA2011"], + "FMCF": ["TOT", "[1-3]", "9"], "STRD": [ "TOT", "OPD", @@ -13083,28 +7677,14 @@ "Z", "V" ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "": ["A[0-9]+", "T.*", "O.*"] }, "selectedInitially": { - "REGIONTYPE": [ - "LGA2011" - ], - "COB": [ - "1101" - ], - "DT": [ - "5" - ], + "REGIONTYPE": ["LGA2011"], + "COB": ["1101"], + "DT": ["5"], "STATE": [ "1", "2", @@ -13174,137 +7754,46 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_B15_SA1_SA", "description": "Not all the data available in this dataset is displayed here.
    Counts are of all persons on Census night based on place of usual residence, not including overseas visitors.
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_CENSUS2011_B15_SA1_SA). Click on the 'i' symbols on that page for further information and links.", - "aggregatedDimensionIds": [ - "STATE" - ], + "aggregatedDimensionIds": ["STATE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "MEASURE": [ - "3" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "MEASURE": ["3"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], + "FMCF": ["TOT", "[1-3]", "9"], "STRD": [ "TOT", "OPD", @@ -13347,25 +7836,13 @@ "Z", "V" ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "": ["A[0-9]+", "T.*", "O.*"] }, "selectedInitially": { - "COB": [ - "1101" - ], - "DT": [ - "5" - ], + "COB": ["1101"], + "DT": ["5"], "STATE": [ "1", "2", @@ -13435,141 +7912,47 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_B16", "description": "Counts are of all persons on Census night based on place of usual residence, not including overseas visitors.
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_CENSUS2011_B16). Click on the 'i' symbols on that page for further information and links.", - "aggregatedDimensionIds": [ - "STATE" - ], + "aggregatedDimensionIds": ["STATE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "MEASURE": [ - "3" - ], - "AGE": [ - "TT", - "O15" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "MEASURE": ["3"], + "AGE": ["TT", "O15"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], + "FMCF": ["TOT", "[1-3]", "9"], "STRD": [ "TOT", "OPD", @@ -13612,28 +7995,14 @@ "Z", "V" ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "AGE": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "AGE": ["A[0-9]+", "T.*", "O.*"] }, "selectedInitially": { - "REGIONTYPE": [ - "SA4" - ], - "COB": [ - "1101" - ], - "DT": [ - "5" - ], + "REGIONTYPE": ["SA4"], + "COB": ["1101"], + "DT": ["5"], "STATE": [ "1", "2", @@ -13703,144 +8072,48 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_B16_LGA", "description": "Counts are of all persons on Census night based on place of usual residence, not including overseas visitors.
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_CENSUS2011_B16_LGA). Click on the 'i' symbols on that page for further information and links.", - "aggregatedDimensionIds": [ - "STATE" - ], + "aggregatedDimensionIds": ["STATE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "MEASURE": [ - "3" - ], - "AGE": [ - "TT", - "O15" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "MEASURE": ["3"], + "AGE": ["TT", "O15"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { - "REGIONTYPE": [ - "LGA2011" - ], - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], + "REGIONTYPE": ["LGA2011"], + "FMCF": ["TOT", "[1-3]", "9"], "STRD": [ "TOT", "OPD", @@ -13883,28 +8156,14 @@ "Z", "V" ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "AGE": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "AGE": ["A[0-9]+", "T.*", "O.*"] }, "selectedInitially": { - "REGIONTYPE": [ - "LGA2011" - ], - "COB": [ - "1101" - ], - "DT": [ - "5" - ], + "REGIONTYPE": ["LGA2011"], + "COB": ["1101"], + "DT": ["5"], "STATE": [ "1", "2", @@ -13974,141 +8233,47 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_B16_SA1_SA", "description": "Counts are of all persons on Census night based on place of usual residence, not including overseas visitors.
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_CENSUS2011_B16_SA1_SA). Click on the 'i' symbols on that page for further information and links.", - "aggregatedDimensionIds": [ - "STATE" - ], + "aggregatedDimensionIds": ["STATE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "MEASURE": [ - "3" - ], - "AGE": [ - "TT", - "O15" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "MEASURE": ["3"], + "AGE": ["TT", "O15"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], + "FMCF": ["TOT", "[1-3]", "9"], "STRD": [ "TOT", "OPD", @@ -14151,25 +8316,13 @@ "Z", "V" ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "AGE": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "AGE": ["A[0-9]+", "T.*", "O.*"] }, "selectedInitially": { - "COB": [ - "1101" - ], - "DT": [ - "5" - ], + "COB": ["1101"], + "DT": ["5"], "STATE": [ "1", "2", @@ -14239,141 +8392,47 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_B17", "description": "Counts are of all persons on Census night based on place of usual residence, not including overseas visitors.
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_CENSUS2011_B17). Click on the 'i' symbols on that page for further information and links.", - "aggregatedDimensionIds": [ - "STATE" - ], + "aggregatedDimensionIds": ["STATE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "SEX": [ - "3" - ], - "MEASURE": [ - "TT", - "O15" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "SEX": ["3"], + "MEASURE": ["TT", "O15"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], + "FMCF": ["TOT", "[1-3]", "9"], "STRD": [ "TOT", "OPD", @@ -14416,28 +8475,14 @@ "Z", "V" ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "MEASURE": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "MEASURE": ["A[0-9]+", "T.*", "O.*"] }, "selectedInitially": { - "REGIONTYPE": [ - "SA4" - ], - "COB": [ - "1101" - ], - "DT": [ - "5" - ], + "REGIONTYPE": ["SA4"], + "COB": ["1101"], + "DT": ["5"], "STATE": [ "1", "2", @@ -14507,144 +8552,48 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_B17_LGA", "description": "Counts are of all persons on Census night based on place of usual residence, not including overseas visitors.
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_CENSUS2011_B17_LGA). Click on the 'i' symbols on that page for further information and links.", - "aggregatedDimensionIds": [ - "STATE" - ], + "aggregatedDimensionIds": ["STATE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "SEX": [ - "3" - ], - "MEASURE": [ - "TT", - "O15" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "SEX": ["3"], + "MEASURE": ["TT", "O15"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { - "REGIONTYPE": [ - "LGA2011" - ], - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], + "REGIONTYPE": ["LGA2011"], + "FMCF": ["TOT", "[1-3]", "9"], "STRD": [ "TOT", "OPD", @@ -14687,28 +8636,14 @@ "Z", "V" ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "MEASURE": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "MEASURE": ["A[0-9]+", "T.*", "O.*"] }, "selectedInitially": { - "REGIONTYPE": [ - "LGA2011" - ], - "COB": [ - "1101" - ], - "DT": [ - "5" - ], + "REGIONTYPE": ["LGA2011"], + "COB": ["1101"], + "DT": ["5"], "STATE": [ "1", "2", @@ -14778,141 +8713,47 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_B17_SA1_SA", "description": "Counts are of all persons on Census night based on place of usual residence, not including overseas visitors.
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_CENSUS2011_B17_SA1_SA). Click on the 'i' symbols on that page for further information and links.", - "aggregatedDimensionIds": [ - "STATE" - ], + "aggregatedDimensionIds": ["STATE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "SEX": [ - "3" - ], - "MEASURE": [ - "TT", - "O15" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "SEX": ["3"], + "MEASURE": ["TT", "O15"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], + "FMCF": ["TOT", "[1-3]", "9"], "STRD": [ "TOT", "OPD", @@ -14955,25 +8796,13 @@ "Z", "V" ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "MEASURE": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "MEASURE": ["A[0-9]+", "T.*", "O.*"] }, "selectedInitially": { - "COB": [ - "1101" - ], - "DT": [ - "5" - ], + "COB": ["1101"], + "DT": ["5"], "STATE": [ "1", "2", @@ -15038,141 +8867,47 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_B18", "description": "Counts are of all persons on Census night based on place of usual residence, not including overseas visitors.
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_CENSUS2011_B18). Click on the 'i' symbols on that page for further information and links.", - "aggregatedDimensionIds": [ - "STATE" - ], + "aggregatedDimensionIds": ["STATE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "MEASURE": [ - "3" - ], - "AGE": [ - "TT", - "O15" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "MEASURE": ["3"], + "AGE": ["TT", "O15"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], + "FMCF": ["TOT", "[1-3]", "9"], "STRD": [ "TOT", "OPD", @@ -15215,28 +8950,14 @@ "Z", "V" ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "AGE": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "AGE": ["A[0-9]+", "T.*", "O.*"] }, "selectedInitially": { - "REGIONTYPE": [ - "SA4" - ], - "COB": [ - "1101" - ], - "DT": [ - "5" - ], + "REGIONTYPE": ["SA4"], + "COB": ["1101"], + "DT": ["5"], "STATE": [ "1", "2", @@ -15299,144 +9020,48 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_B18_LGA", "description": "Counts are of all persons on Census night based on place of usual residence, not including overseas visitors.
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_CENSUS2011_B18_LGA). Click on the 'i' symbols on that page for further information and links.", - "aggregatedDimensionIds": [ - "STATE" - ], + "aggregatedDimensionIds": ["STATE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "MEASURE": [ - "3" - ], - "AGE": [ - "TT", - "O15" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "MEASURE": ["3"], + "AGE": ["TT", "O15"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { - "REGIONTYPE": [ - "LGA2011" - ], - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], + "REGIONTYPE": ["LGA2011"], + "FMCF": ["TOT", "[1-3]", "9"], "STRD": [ "TOT", "OPD", @@ -15479,28 +9104,14 @@ "Z", "V" ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "AGE": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "AGE": ["A[0-9]+", "T.*", "O.*"] }, "selectedInitially": { - "REGIONTYPE": [ - "LGA2011" - ], - "COB": [ - "1101" - ], - "DT": [ - "5" - ], + "REGIONTYPE": ["LGA2011"], + "COB": ["1101"], + "DT": ["5"], "STATE": [ "1", "2", @@ -15563,141 +9174,47 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_B18_SA1_SA", "description": "Counts are of all persons on Census night based on place of usual residence, not including overseas visitors.
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_CENSUS2011_B18_SA1_SA). Click on the 'i' symbols on that page for further information and links.", - "aggregatedDimensionIds": [ - "STATE" - ], + "aggregatedDimensionIds": ["STATE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "MEASURE": [ - "3" - ], - "AGE": [ - "TT", - "O15" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "MEASURE": ["3"], + "AGE": ["TT", "O15"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], + "FMCF": ["TOT", "[1-3]", "9"], "STRD": [ "TOT", "OPD", @@ -15740,25 +9257,13 @@ "Z", "V" ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "AGE": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "AGE": ["A[0-9]+", "T.*", "O.*"] }, "selectedInitially": { - "COB": [ - "1101" - ], - "DT": [ - "5" - ], + "COB": ["1101"], + "DT": ["5"], "STATE": [ "1", "2", @@ -15826,141 +9331,47 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_B19", "description": "Counts are of all persons on Census night based on place of usual residence, not including overseas visitors.
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_CENSUS2011_B19). Click on the 'i' symbols on that page for further information and links.", - "aggregatedDimensionIds": [ - "STATE" - ], + "aggregatedDimensionIds": ["STATE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "MEASURE": [ - "3" - ], - "AGE": [ - "TT", - "O15" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "MEASURE": ["3"], + "AGE": ["TT", "O15"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], + "FMCF": ["TOT", "[1-3]", "9"], "STRD": [ "TOT", "OPD", @@ -16003,28 +9414,14 @@ "Z", "V" ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "AGE": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "AGE": ["A[0-9]+", "T.*", "O.*"] }, "selectedInitially": { - "REGIONTYPE": [ - "SA4" - ], - "COB": [ - "1101" - ], - "DT": [ - "5" - ], + "REGIONTYPE": ["SA4"], + "COB": ["1101"], + "DT": ["5"], "STATE": [ "1", "2", @@ -16094,144 +9491,48 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_B19_LGA", "description": "Counts are of all persons on Census night based on place of usual residence, not including overseas visitors.
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_CENSUS2011_B19_LGA). Click on the 'i' symbols on that page for further information and links.", - "aggregatedDimensionIds": [ - "STATE" - ], + "aggregatedDimensionIds": ["STATE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "MEASURE": [ - "3" - ], - "AGE": [ - "TT", - "O15" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "MEASURE": ["3"], + "AGE": ["TT", "O15"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { - "REGIONTYPE": [ - "LGA2011" - ], - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], + "REGIONTYPE": ["LGA2011"], + "FMCF": ["TOT", "[1-3]", "9"], "STRD": [ "TOT", "OPD", @@ -16274,28 +9575,14 @@ "Z", "V" ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "AGE": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "AGE": ["A[0-9]+", "T.*", "O.*"] }, "selectedInitially": { - "REGIONTYPE": [ - "LGA2011" - ], - "COB": [ - "1101" - ], - "DT": [ - "5" - ], + "REGIONTYPE": ["LGA2011"], + "COB": ["1101"], + "DT": ["5"], "STATE": [ "1", "2", @@ -16365,141 +9652,47 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_B19_SA1_SA", "description": "Counts are of all persons on Census night based on place of usual residence, not including overseas visitors.
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_CENSUS2011_B19_SA1_SA). Click on the 'i' symbols on that page for further information and links.", - "aggregatedDimensionIds": [ - "STATE" - ], + "aggregatedDimensionIds": ["STATE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "MEASURE": [ - "3" - ], - "AGE": [ - "TT", - "O15" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "MEASURE": ["3"], + "AGE": ["TT", "O15"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], + "FMCF": ["TOT", "[1-3]", "9"], "STRD": [ "TOT", "OPD", @@ -16542,25 +9735,13 @@ "Z", "V" ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "AGE": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "AGE": ["A[0-9]+", "T.*", "O.*"] }, "selectedInitially": { - "COB": [ - "1101" - ], - "DT": [ - "5" - ], + "COB": ["1101"], + "DT": ["5"], "STATE": [ "1", "2", @@ -16630,141 +9811,47 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_B20", "description": "Counts are of all persons on Census night based on place of usual residence, not including overseas visitors.
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_CENSUS2011_B20). Click on the 'i' symbols on that page for further information and links.", - "aggregatedDimensionIds": [ - "STATE" - ], + "aggregatedDimensionIds": ["STATE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "MEASURE": [ - "3" - ], - "AGE": [ - "TT", - "O15" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "MEASURE": ["3"], + "AGE": ["TT", "O15"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], + "FMCF": ["TOT", "[1-3]", "9"], "STRD": [ "TOT", "OPD", @@ -16807,28 +9894,14 @@ "Z", "V" ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "AGE": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "AGE": ["A[0-9]+", "T.*", "O.*"] }, "selectedInitially": { - "REGIONTYPE": [ - "SA4" - ], - "COB": [ - "1101" - ], - "DT": [ - "5" - ], + "REGIONTYPE": ["SA4"], + "COB": ["1101"], + "DT": ["5"], "STATE": [ "1", "2", @@ -16898,144 +9971,48 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_B20_LGA", "description": "Counts are of all persons on Census night based on place of usual residence, not including overseas visitors.
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_CENSUS2011_B20_LGA). Click on the 'i' symbols on that page for further information and links.", - "aggregatedDimensionIds": [ - "STATE" - ], + "aggregatedDimensionIds": ["STATE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "MEASURE": [ - "3" - ], - "AGE": [ - "TT", - "O15" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "MEASURE": ["3"], + "AGE": ["TT", "O15"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { - "REGIONTYPE": [ - "LGA2011" - ], - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], + "REGIONTYPE": ["LGA2011"], + "FMCF": ["TOT", "[1-3]", "9"], "STRD": [ "TOT", "OPD", @@ -17078,28 +10055,14 @@ "Z", "V" ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "AGE": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "AGE": ["A[0-9]+", "T.*", "O.*"] }, "selectedInitially": { - "REGIONTYPE": [ - "LGA2011" - ], - "COB": [ - "1101" - ], - "DT": [ - "5" - ], + "REGIONTYPE": ["LGA2011"], + "COB": ["1101"], + "DT": ["5"], "STATE": [ "1", "2", @@ -17169,141 +10132,47 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_B20_SA1_SA", "description": "Counts are of all persons on Census night based on place of usual residence, not including overseas visitors.
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_CENSUS2011_B20_SA1_SA). Click on the 'i' symbols on that page for further information and links.", - "aggregatedDimensionIds": [ - "STATE" - ], + "aggregatedDimensionIds": ["STATE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "MEASURE": [ - "3" - ], - "AGE": [ - "TT", - "O15" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "MEASURE": ["3"], + "AGE": ["TT", "O15"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], + "FMCF": ["TOT", "[1-3]", "9"], "STRD": [ "TOT", "OPD", @@ -17346,25 +10215,13 @@ "Z", "V" ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "AGE": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "AGE": ["A[0-9]+", "T.*", "O.*"] }, "selectedInitially": { - "COB": [ - "1101" - ], - "DT": [ - "5" - ], + "COB": ["1101"], + "DT": ["5"], "STATE": [ "1", "2", @@ -17434,141 +10291,47 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_B21", "description": "Counts are of all persons on Census night based on place of usual residence, not including overseas visitors.
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_CENSUS2011_B21). Click on the 'i' symbols on that page for further information and links.", - "aggregatedDimensionIds": [ - "STATE" - ], + "aggregatedDimensionIds": ["STATE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "MEASURE": [ - "3" - ], - "AGE": [ - "TT", - "O15" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "MEASURE": ["3"], + "AGE": ["TT", "O15"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], + "FMCF": ["TOT", "[1-3]", "9"], "STRD": [ "TOT", "OPD", @@ -17611,28 +10374,14 @@ "Z", "V" ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "AGE": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "AGE": ["A[0-9]+", "T.*", "O.*"] }, "selectedInitially": { - "REGIONTYPE": [ - "SA4" - ], - "COB": [ - "1101" - ], - "DT": [ - "5" - ], + "REGIONTYPE": ["SA4"], + "COB": ["1101"], + "DT": ["5"], "STATE": [ "1", "2", @@ -17702,144 +10451,48 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_B21_LGA", "description": "Counts are of all persons on Census night based on place of usual residence, not including overseas visitors.
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_CENSUS2011_B21_LGA). Click on the 'i' symbols on that page for further information and links.", - "aggregatedDimensionIds": [ - "STATE" - ], + "aggregatedDimensionIds": ["STATE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "MEASURE": [ - "3" - ], - "AGE": [ - "TT", - "O15" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "MEASURE": ["3"], + "AGE": ["TT", "O15"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { - "REGIONTYPE": [ - "LGA2011" - ], - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], + "REGIONTYPE": ["LGA2011"], + "FMCF": ["TOT", "[1-3]", "9"], "STRD": [ "TOT", "OPD", @@ -17882,28 +10535,14 @@ "Z", "V" ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "AGE": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "AGE": ["A[0-9]+", "T.*", "O.*"] }, "selectedInitially": { - "REGIONTYPE": [ - "LGA2011" - ], - "COB": [ - "1101" - ], - "DT": [ - "5" - ], + "REGIONTYPE": ["LGA2011"], + "COB": ["1101"], + "DT": ["5"], "STATE": [ "1", "2", @@ -17973,141 +10612,47 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_B21_SA1_SA", "description": "Counts are of all persons on Census night based on place of usual residence, not including overseas visitors.
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_CENSUS2011_B21_SA1_SA). Click on the 'i' symbols on that page for further information and links.", - "aggregatedDimensionIds": [ - "STATE" - ], + "aggregatedDimensionIds": ["STATE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "MEASURE": [ - "3" - ], - "AGE": [ - "TT", - "O15" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "MEASURE": ["3"], + "AGE": ["TT", "O15"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], + "FMCF": ["TOT", "[1-3]", "9"], "STRD": [ "TOT", "OPD", @@ -18150,25 +10695,13 @@ "Z", "V" ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "AGE": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "AGE": ["A[0-9]+", "T.*", "O.*"] }, "selectedInitially": { - "COB": [ - "1101" - ], - "DT": [ - "5" - ], + "COB": ["1101"], + "DT": ["5"], "STATE": [ "1", "2", @@ -18238,141 +10771,47 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_B22", "description": "Counts are of all persons on Census night based on place of usual residence, not including overseas visitors.
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_CENSUS2011_B22). Click on the 'i' symbols on that page for further information and links.", - "aggregatedDimensionIds": [ - "STATE" - ], + "aggregatedDimensionIds": ["STATE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "SEX": [ - "3" - ], - "AGE": [ - "TT", - "O15" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "SEX": ["3"], + "AGE": ["TT", "O15"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], + "FMCF": ["TOT", "[1-3]", "9"], "STRD": [ "TOT", "OPD", @@ -18415,28 +10854,14 @@ "Z", "V" ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "AGE": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "AGE": ["A[0-9]+", "T.*", "O.*"] }, "selectedInitially": { - "REGIONTYPE": [ - "SA4" - ], - "COB": [ - "1101" - ], - "DT": [ - "5" - ], + "REGIONTYPE": ["SA4"], + "COB": ["1101"], + "DT": ["5"], "STATE": [ "1", "2", @@ -18506,144 +10931,48 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_B22_LGA", "description": "Counts are of all persons on Census night based on place of usual residence, not including overseas visitors.
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_CENSUS2011_B22_LGA). Click on the 'i' symbols on that page for further information and links.", - "aggregatedDimensionIds": [ - "STATE" - ], + "aggregatedDimensionIds": ["STATE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "SEX": [ - "3" - ], - "AGE": [ - "TT", - "O15" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "SEX": ["3"], + "AGE": ["TT", "O15"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { - "REGIONTYPE": [ - "LGA2011" - ], - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], + "REGIONTYPE": ["LGA2011"], + "FMCF": ["TOT", "[1-3]", "9"], "STRD": [ "TOT", "OPD", @@ -18686,28 +11015,14 @@ "Z", "V" ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "AGE": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "AGE": ["A[0-9]+", "T.*", "O.*"] }, "selectedInitially": { - "REGIONTYPE": [ - "LGA2011" - ], - "COB": [ - "1101" - ], - "DT": [ - "5" - ], + "REGIONTYPE": ["LGA2011"], + "COB": ["1101"], + "DT": ["5"], "STATE": [ "1", "2", @@ -18777,141 +11092,47 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_B22_SA1_SA", "description": "Counts are of all persons on Census night based on place of usual residence, not including overseas visitors.
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_CENSUS2011_B22_SA1_SA). Click on the 'i' symbols on that page for further information and links.", - "aggregatedDimensionIds": [ - "STATE" - ], + "aggregatedDimensionIds": ["STATE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "SEX": [ - "3" - ], - "AGE": [ - "TT", - "O15" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "SEX": ["3"], + "AGE": ["TT", "O15"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], + "FMCF": ["TOT", "[1-3]", "9"], "STRD": [ "TOT", "OPD", @@ -18954,25 +11175,13 @@ "Z", "V" ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "AGE": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "AGE": ["A[0-9]+", "T.*", "O.*"] }, "selectedInitially": { - "COB": [ - "1101" - ], - "DT": [ - "5" - ], + "COB": ["1101"], + "DT": ["5"], "STATE": [ "1", "2", @@ -19037,141 +11246,47 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_B23", "description": "Counts are of all persons on Census night based on place of usual residence, not including overseas visitors.
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_CENSUS2011_B23). Click on the 'i' symbols on that page for further information and links.", - "aggregatedDimensionIds": [ - "STATE" - ], + "aggregatedDimensionIds": ["STATE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "SEX": [ - "3" - ], - "AGE": [ - "TT", - "O15" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "SEX": ["3"], + "AGE": ["TT", "O15"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], + "FMCF": ["TOT", "[1-3]", "9"], "STRD": [ "TOT", "OPD", @@ -19214,28 +11329,14 @@ "Z", "V" ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "AGE": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "AGE": ["A[0-9]+", "T.*", "O.*"] }, "selectedInitially": { - "REGIONTYPE": [ - "SA4" - ], - "COB": [ - "1101" - ], - "DT": [ - "5" - ], + "REGIONTYPE": ["SA4"], + "COB": ["1101"], + "DT": ["5"], "STATE": [ "1", "2", @@ -19298,144 +11399,48 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_B23_LGA", "description": "Counts are of all persons on Census night based on place of usual residence, not including overseas visitors.
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_CENSUS2011_B23_LGA). Click on the 'i' symbols on that page for further information and links.", - "aggregatedDimensionIds": [ - "STATE" - ], + "aggregatedDimensionIds": ["STATE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "SEX": [ - "3" - ], - "AGE": [ - "TT", - "O15" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "SEX": ["3"], + "AGE": ["TT", "O15"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { - "REGIONTYPE": [ - "LGA2011" - ], - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], + "REGIONTYPE": ["LGA2011"], + "FMCF": ["TOT", "[1-3]", "9"], "STRD": [ "TOT", "OPD", @@ -19478,28 +11483,14 @@ "Z", "V" ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "AGE": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "AGE": ["A[0-9]+", "T.*", "O.*"] }, "selectedInitially": { - "REGIONTYPE": [ - "LGA2011" - ], - "COB": [ - "1101" - ], - "DT": [ - "5" - ], + "REGIONTYPE": ["LGA2011"], + "COB": ["1101"], + "DT": ["5"], "STATE": [ "1", "2", @@ -19562,141 +11553,47 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_B23_SA1_SA", "description": "Counts are of all persons on Census night based on place of usual residence, not including overseas visitors.
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_CENSUS2011_B23_SA1_SA). Click on the 'i' symbols on that page for further information and links.", - "aggregatedDimensionIds": [ - "STATE" - ], + "aggregatedDimensionIds": ["STATE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "SEX": [ - "3" - ], - "AGE": [ - "TT", - "O15" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "SEX": ["3"], + "AGE": ["TT", "O15"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], + "FMCF": ["TOT", "[1-3]", "9"], "STRD": [ "TOT", "OPD", @@ -19739,25 +11636,13 @@ "Z", "V" ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "AGE": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "AGE": ["A[0-9]+", "T.*", "O.*"] }, "selectedInitially": { - "COB": [ - "1101" - ], - "DT": [ - "5" - ], + "COB": ["1101"], + "DT": ["5"], "STATE": [ "1", "2", @@ -19820,138 +11705,46 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_B24", "description": "Counts are of all persons on Census night based on place of usual residence, not including overseas visitors.
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_CENSUS2011_B24). Click on the 'i' symbols on that page for further information and links.", - "aggregatedDimensionIds": [ - "STATE" - ], + "aggregatedDimensionIds": ["STATE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "MEASURE": [ - "TT", - "O15" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "MEASURE": ["TT", "O15"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], + "FMCF": ["TOT", "[1-3]", "9"], "STRD": [ "TOT", "OPD", @@ -19994,28 +11787,14 @@ "Z", "V" ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "MEASURE": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "MEASURE": ["A[0-9]+", "T.*", "O.*"] }, "selectedInitially": { - "REGIONTYPE": [ - "SA4" - ], - "COB": [ - "1101" - ], - "DT": [ - "5" - ], + "REGIONTYPE": ["SA4"], + "COB": ["1101"], + "DT": ["5"], "STATE": [ "1", "2", @@ -20078,141 +11857,47 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_B24_LGA", "description": "Counts are of all persons on Census night based on place of usual residence, not including overseas visitors.
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_CENSUS2011_B24_LGA). Click on the 'i' symbols on that page for further information and links.", - "aggregatedDimensionIds": [ - "STATE" - ], + "aggregatedDimensionIds": ["STATE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "MEASURE": [ - "TT", - "O15" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "MEASURE": ["TT", "O15"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { - "REGIONTYPE": [ - "LGA2011" - ], - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], + "REGIONTYPE": ["LGA2011"], + "FMCF": ["TOT", "[1-3]", "9"], "STRD": [ "TOT", "OPD", @@ -20255,28 +11940,14 @@ "Z", "V" ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "MEASURE": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "MEASURE": ["A[0-9]+", "T.*", "O.*"] }, "selectedInitially": { - "REGIONTYPE": [ - "LGA2011" - ], - "COB": [ - "1101" - ], - "DT": [ - "5" - ], + "REGIONTYPE": ["LGA2011"], + "COB": ["1101"], + "DT": ["5"], "STATE": [ "1", "2", @@ -20339,138 +12010,46 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_B24_SA1_SA", "description": "Counts are of all persons on Census night based on place of usual residence, not including overseas visitors.
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_CENSUS2011_B24_SA1_SA). Click on the 'i' symbols on that page for further information and links.", - "aggregatedDimensionIds": [ - "STATE" - ], + "aggregatedDimensionIds": ["STATE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "MEASURE": [ - "TT", - "O15" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "MEASURE": ["TT", "O15"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], + "FMCF": ["TOT", "[1-3]", "9"], "STRD": [ "TOT", "OPD", @@ -20513,25 +12092,13 @@ "Z", "V" ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "MEASURE": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "MEASURE": ["A[0-9]+", "T.*", "O.*"] }, "selectedInitially": { - "COB": [ - "1101" - ], - "DT": [ - "5" - ], + "COB": ["1101"], + "DT": ["5"], "STATE": [ "1", "2", @@ -20589,137 +12156,46 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_B25", "description": "Not all the data available in this dataset is displayed here.
    Counts are of all persons on Census night based on place of usual residence, not including overseas visitors.
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_CENSUS2011_B25). Click on the 'i' symbols on that page for further information and links.", - "aggregatedDimensionIds": [ - "STATE" - ], - "singleValuedDimensionIds": [ - "MEASURE" - ], + "aggregatedDimensionIds": ["STATE"], + "singleValuedDimensionIds": ["MEASURE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], + "FMCF": ["TOT", "[1-3]", "9"], "STRD": [ "TOT", "OPD", @@ -20729,14 +12205,7 @@ "Z", "UPD" ], - "LFSP": [ - "TOT", - "EMP", - "[1-4]", - "7", - "Z", - "UEMP" - ], + "LFSP": ["TOT", "EMP", "[1-4]", "7", "Z", "UEMP"], "MTWP": [ "TOT", "[1-3]M", @@ -20762,38 +12231,15 @@ "Z", "V" ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "": ["A[0-9]+", "T.*", "O.*"] }, "selectedInitially": { - "REGIONTYPE": [ - "SA4" - ], - "COB": [ - "1101" - ], - "DT": [ - "5" - ], - "STATE": [ - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8" - ], + "REGIONTYPE": ["SA4"], + "COB": ["1101"], + "DT": ["5"], + "STATE": ["1", "2", "3", "4", "5", "6", "7", "8"], "ASGS_2011": [ "1", "2", @@ -20839,140 +12285,47 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_B25_LGA", "description": "Not all the data available in this dataset is displayed here.
    Counts are of all persons on Census night based on place of usual residence, not including overseas visitors.
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_CENSUS2011_B25_LGA). Click on the 'i' symbols on that page for further information and links.", - "aggregatedDimensionIds": [ - "STATE" - ], - "singleValuedDimensionIds": [ - "MEASURE" - ], + "aggregatedDimensionIds": ["STATE"], + "singleValuedDimensionIds": ["MEASURE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { - "REGIONTYPE": [ - "LGA2011" - ], - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], + "REGIONTYPE": ["LGA2011"], + "FMCF": ["TOT", "[1-3]", "9"], "STRD": [ "TOT", "OPD", @@ -20982,14 +12335,7 @@ "Z", "UPD" ], - "LFSP": [ - "TOT", - "EMP", - "[1-4]", - "7", - "Z", - "UEMP" - ], + "LFSP": ["TOT", "EMP", "[1-4]", "7", "Z", "UEMP"], "MTWP": [ "TOT", "[1-3]M", @@ -21015,38 +12361,15 @@ "Z", "V" ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "": ["A[0-9]+", "T.*", "O.*"] }, "selectedInitially": { - "REGIONTYPE": [ - "LGA2011" - ], - "COB": [ - "1101" - ], - "DT": [ - "5" - ], - "STATE": [ - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8" - ], + "REGIONTYPE": ["LGA2011"], + "COB": ["1101"], + "DT": ["5"], + "STATE": ["1", "2", "3", "4", "5", "6", "7", "8"], "ASGS_2011": [ "1", "2", @@ -21092,137 +12415,46 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_B25_SA1_SA", "description": "Not all the data available in this dataset is displayed here.
    Counts are of all persons on Census night based on place of usual residence, not including overseas visitors.
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_CENSUS2011_B25_SA1_SA). Click on the 'i' symbols on that page for further information and links.", - "aggregatedDimensionIds": [ - "STATE" - ], - "singleValuedDimensionIds": [ - "MEASURE" - ], + "aggregatedDimensionIds": ["STATE"], + "singleValuedDimensionIds": ["MEASURE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], + "FMCF": ["TOT", "[1-3]", "9"], "STRD": [ "TOT", "OPD", @@ -21232,14 +12464,7 @@ "Z", "UPD" ], - "LFSP": [ - "TOT", - "EMP", - "[1-4]", - "7", - "Z", - "UEMP" - ], + "LFSP": ["TOT", "EMP", "[1-4]", "7", "Z", "UEMP"], "MTWP": [ "TOT", "[1-3]M", @@ -21265,35 +12490,14 @@ "Z", "V" ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "": ["A[0-9]+", "T.*", "O.*"] }, "selectedInitially": { - "COB": [ - "1101" - ], - "DT": [ - "5" - ], - "STATE": [ - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8" - ], + "COB": ["1101"], + "DT": ["5"], + "STATE": ["1", "2", "3", "4", "5", "6", "7", "8"], "ASGS_2011": [ "1", "2", @@ -21344,198 +12548,95 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_B26", "description": "Counts are of all persons on Census night based on place of usual residence, not including overseas visitors.
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_CENSUS2011_B26). Click on the 'i' symbols on that page for further information and links.", - "aggregatedDimensionIds": [ - "STATE" - ], + "aggregatedDimensionIds": ["STATE"], "totalValueIds": { - "*": [ + "*": ["TOT", "LFTOT"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] + }, + "whitelist": { + "FMCF": ["TOT", "[1-3]", "9"], + "STRD": [ "TOT", - "LFTOT" + "OPD", + "[1-3]", + "9", + "11", + "Z", + "UPD" ], - "SPC": [ - "TT" + "LFSP": [ + "TOT", + "EMP", + "[1-4]", + "7", + "Z", + "UEMP" ], "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ "TOT", - "1", - "2", - "2_0", - "2_11" + "[1-3]M", + "00[1-9]", + "010", + "011", + "232", + "TA", + "BA", + "B2", + "233", + "234", + "Z" ], - "UAI1P": [ + "TYPP": [ "TOT", + "10", "2", - "2_S", - "2_D" + "3", + "40", + "50", + "60", + "Z", + "V" ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] - }, - "whitelist": { - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], - "STRD": [ - "TOT", - "OPD", - "[1-3]", - "9", - "11", - "Z", - "UPD" - ], - "LFSP": [ - "TOT", - "EMP", - "[1-4]", - "7", - "Z", - "UEMP" - ], - "MTWP": [ - "TOT", - "[1-3]M", - "00[1-9]", - "010", - "011", - "232", - "TA", - "BA", - "B2", - "233", - "234", - "Z" - ], - "TYPP": [ - "TOT", - "10", - "2", - "3", - "40", - "50", - "60", - "Z", - "V" - ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "": ["A[0-9]+", "T.*", "O.*"] }, "selectedInitially": { - "REGIONTYPE": [ - "SA4" - ], - "COB": [ - "1101" - ], - "DT": [ - "5" - ], + "REGIONTYPE": ["SA4"], + "COB": ["1101"], + "DT": ["5"], "STATE": [ "1", "2", @@ -21598,137 +12699,46 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_B26_LGA", "description": "Counts are of all persons on Census night based on place of usual residence, not including overseas visitors.
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_CENSUS2011_B26_LGA). Click on the 'i' symbols on that page for further information and links.", - "aggregatedDimensionIds": [ - "STATE" - ], + "aggregatedDimensionIds": ["STATE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { - "REGIONTYPE": [ - "LGA2011" - ], - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], + "REGIONTYPE": ["LGA2011"], + "FMCF": ["TOT", "[1-3]", "9"], "STRD": [ "TOT", "OPD", @@ -21771,28 +12781,14 @@ "Z", "V" ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "": ["A[0-9]+", "T.*", "O.*"] }, "selectedInitially": { - "REGIONTYPE": [ - "LGA2011" - ], - "COB": [ - "1101" - ], - "DT": [ - "5" - ], + "REGIONTYPE": ["LGA2011"], + "COB": ["1101"], + "DT": ["5"], "STATE": [ "1", "2", @@ -21855,134 +12851,45 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_B26_SA1_SA", "description": "Counts are of all persons on Census night based on place of usual residence, not including overseas visitors.
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_CENSUS2011_B26_SA1_SA). Click on the 'i' symbols on that page for further information and links.", - "aggregatedDimensionIds": [ - "STATE" - ], + "aggregatedDimensionIds": ["STATE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], + "FMCF": ["TOT", "[1-3]", "9"], "STRD": [ "TOT", "OPD", @@ -22025,25 +12932,13 @@ "Z", "V" ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "": ["A[0-9]+", "T.*", "O.*"] }, "selectedInitially": { - "COB": [ - "1101" - ], - "DT": [ - "5" - ], + "COB": ["1101"], + "DT": ["5"], "STATE": [ "1", "2", @@ -22101,134 +12996,45 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_B27", "description": "Counts are of all persons on Census night based on place of usual residence, not including overseas visitors.
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_CENSUS2011_B27). Click on the 'i' symbols on that page for further information and links.", - "aggregatedDimensionIds": [ - "STATE" - ], + "aggregatedDimensionIds": ["STATE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], + "FMCF": ["TOT", "[1-3]", "9"], "STRD": [ "TOT", "OPD", @@ -22238,14 +13044,7 @@ "Z", "UPD" ], - "LFSP": [ - "TOT", - "EMP", - "[1-4]", - "7", - "Z", - "UEMP" - ], + "LFSP": ["TOT", "EMP", "[1-4]", "7", "Z", "UEMP"], "MTWP": [ "TOT", "[1-3]M", @@ -22271,38 +13070,15 @@ "Z", "V" ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "": ["A[0-9]+", "T.*", "O.*"] }, "selectedInitially": { - "REGIONTYPE": [ - "SA4" - ], - "COB": [ - "1101" - ], - "DT": [ - "5" - ], - "STATE": [ - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8" - ], + "REGIONTYPE": ["SA4"], + "COB": ["1101"], + "DT": ["5"], + "STATE": ["1", "2", "3", "4", "5", "6", "7", "8"], "ASGS_2011": [ "1", "2", @@ -22348,137 +13124,46 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_B27_LGA", "description": "Counts are of all persons on Census night based on place of usual residence, not including overseas visitors.
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_CENSUS2011_B27_LGA). Click on the 'i' symbols on that page for further information and links.", - "aggregatedDimensionIds": [ - "STATE" - ], + "aggregatedDimensionIds": ["STATE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { - "REGIONTYPE": [ - "LGA2011" - ], - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], + "REGIONTYPE": ["LGA2011"], + "FMCF": ["TOT", "[1-3]", "9"], "STRD": [ "TOT", "OPD", @@ -22488,14 +13173,7 @@ "Z", "UPD" ], - "LFSP": [ - "TOT", - "EMP", - "[1-4]", - "7", - "Z", - "UEMP" - ], + "LFSP": ["TOT", "EMP", "[1-4]", "7", "Z", "UEMP"], "MTWP": [ "TOT", "[1-3]M", @@ -22521,38 +13199,15 @@ "Z", "V" ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "": ["A[0-9]+", "T.*", "O.*"] }, "selectedInitially": { - "REGIONTYPE": [ - "LGA2011" - ], - "COB": [ - "1101" - ], - "DT": [ - "5" - ], - "STATE": [ - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8" - ], + "REGIONTYPE": ["LGA2011"], + "COB": ["1101"], + "DT": ["5"], + "STATE": ["1", "2", "3", "4", "5", "6", "7", "8"], "ASGS_2011": [ "1", "2", @@ -22598,134 +13253,45 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_B27_SA1_SA", "description": "Counts are of all persons on Census night based on place of usual residence, not including overseas visitors.
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_CENSUS2011_B27_SA1_SA). Click on the 'i' symbols on that page for further information and links.", - "aggregatedDimensionIds": [ - "STATE" - ], + "aggregatedDimensionIds": ["STATE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], + "FMCF": ["TOT", "[1-3]", "9"], "STRD": [ "TOT", "OPD", @@ -22735,14 +13301,7 @@ "Z", "UPD" ], - "LFSP": [ - "TOT", - "EMP", - "[1-4]", - "7", - "Z", - "UEMP" - ], + "LFSP": ["TOT", "EMP", "[1-4]", "7", "Z", "UEMP"], "MTWP": [ "TOT", "[1-3]M", @@ -22768,35 +13327,14 @@ "Z", "V" ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "": ["A[0-9]+", "T.*", "O.*"] }, "selectedInitially": { - "COB": [ - "1101" - ], - "DT": [ - "5" - ], - "STATE": [ - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8" - ], + "COB": ["1101"], + "DT": ["5"], + "STATE": ["1", "2", "3", "4", "5", "6", "7", "8"], "ASGS_2011": [ "1", "2", @@ -22847,134 +13385,45 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_B28", "description": "Counts are of all persons on Census night based on place of usual residence, not including overseas visitors.
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_CENSUS2011_B28). Click on the 'i' symbols on that page for further information and links.", - "aggregatedDimensionIds": [ - "STATE" - ], + "aggregatedDimensionIds": ["STATE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], + "FMCF": ["TOT", "[1-3]", "9"], "STRD": [ "TOT", "OPD", @@ -23017,28 +13466,14 @@ "Z", "V" ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "": ["A[0-9]+", "T.*", "O.*"] }, "selectedInitially": { - "REGIONTYPE": [ - "SA4" - ], - "COB": [ - "1101" - ], - "DT": [ - "5" - ], + "REGIONTYPE": ["SA4"], + "COB": ["1101"], + "DT": ["5"], "STATE": [ "1", "2", @@ -23101,137 +13536,46 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_B28_LGA", "description": "Counts are of all persons on Census night based on place of usual residence, not including overseas visitors.
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_CENSUS2011_B28_LGA). Click on the 'i' symbols on that page for further information and links.", - "aggregatedDimensionIds": [ - "STATE" - ], + "aggregatedDimensionIds": ["STATE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { - "REGIONTYPE": [ - "LGA2011" - ], - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], + "REGIONTYPE": ["LGA2011"], + "FMCF": ["TOT", "[1-3]", "9"], "STRD": [ "TOT", "OPD", @@ -23274,28 +13618,14 @@ "Z", "V" ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "": ["A[0-9]+", "T.*", "O.*"] }, "selectedInitially": { - "REGIONTYPE": [ - "LGA2011" - ], - "COB": [ - "1101" - ], - "DT": [ - "5" - ], + "REGIONTYPE": ["LGA2011"], + "COB": ["1101"], + "DT": ["5"], "STATE": [ "1", "2", @@ -23358,149 +13688,60 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_B28_SA1_SA", "description": "Counts are of all persons on Census night based on place of usual residence, not including overseas visitors.
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_CENSUS2011_B28_SA1_SA). Click on the 'i' symbols on that page for further information and links.", - "aggregatedDimensionIds": [ - "STATE" - ], + "aggregatedDimensionIds": ["STATE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ + "*": ["TOT", "LFTOT"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] + }, + "whitelist": { + "FMCF": ["TOT", "[1-3]", "9"], + "STRD": [ "TOT", - "2", - "2_S", - "2_D" + "OPD", + "[1-3]", + "9", + "11", + "Z", + "UPD" ], "LFSP": [ "TOT", "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] - }, - "whitelist": { - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], - "STRD": [ - "TOT", - "OPD", - "[1-3]", - "9", - "11", - "Z", - "UPD" - ], - "LFSP": [ - "TOT", - "EMP", - "[1-4]", - "7", - "Z", + "[1-4]", + "7", + "Z", "UEMP" ], "MTWP": [ @@ -23528,25 +13769,13 @@ "Z", "V" ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "": ["A[0-9]+", "T.*", "O.*"] }, "selectedInitially": { - "COB": [ - "1101" - ], - "DT": [ - "5" - ], + "COB": ["1101"], + "DT": ["5"], "STATE": [ "1", "2", @@ -23604,143 +13833,46 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_B29", "description": "Counts are of all persons on Census night based on place of usual residence, not including overseas visitors.
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_CENSUS2011_B29). Click on the 'i' symbols on that page for further information and links.", - "aggregatedDimensionIds": [ - "STATE" - ], + "aggregatedDimensionIds": ["STATE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { - "MEASURE": [ - "TOT", - "0", - "1", - "2", - "3", - "4", - "Z" - ], - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], + "MEASURE": ["TOT", "0", "1", "2", "3", "4", "Z"], + "FMCF": ["TOT", "[1-3]", "9"], "STRD": [ "TOT", "OPD", @@ -23750,14 +13882,7 @@ "Z", "UPD" ], - "LFSP": [ - "TOT", - "EMP", - "[1-4]", - "7", - "Z", - "UEMP" - ], + "LFSP": ["TOT", "EMP", "[1-4]", "7", "Z", "UEMP"], "MTWP": [ "TOT", "[1-3]M", @@ -23783,38 +13908,15 @@ "Z", "V" ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "": ["A[0-9]+", "T.*", "O.*"] }, "selectedInitially": { - "REGIONTYPE": [ - "SA4" - ], - "COB": [ - "1101" - ], - "DT": [ - "5" - ], - "STATE": [ - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8" - ], + "REGIONTYPE": ["SA4"], + "COB": ["1101"], + "DT": ["5"], + "STATE": ["1", "2", "3", "4", "5", "6", "7", "8"], "ASGS_2011": [ "1", "2", @@ -23860,146 +13962,47 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_B29_LGA", "description": "Counts are of all persons on Census night based on place of usual residence, not including overseas visitors.
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_CENSUS2011_B29_LGA). Click on the 'i' symbols on that page for further information and links.", - "aggregatedDimensionIds": [ - "STATE" - ], + "aggregatedDimensionIds": ["STATE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { - "REGIONTYPE": [ - "LGA2011" - ], - "MEASURE": [ - "TOT", - "0", - "1", - "2", - "3", - "4", - "Z" - ], - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], + "REGIONTYPE": ["LGA2011"], + "MEASURE": ["TOT", "0", "1", "2", "3", "4", "Z"], + "FMCF": ["TOT", "[1-3]", "9"], "STRD": [ "TOT", "OPD", @@ -24009,14 +14012,7 @@ "Z", "UPD" ], - "LFSP": [ - "TOT", - "EMP", - "[1-4]", - "7", - "Z", - "UEMP" - ], + "LFSP": ["TOT", "EMP", "[1-4]", "7", "Z", "UEMP"], "MTWP": [ "TOT", "[1-3]M", @@ -24042,38 +14038,15 @@ "Z", "V" ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "": ["A[0-9]+", "T.*", "O.*"] }, "selectedInitially": { - "REGIONTYPE": [ - "LGA2011" - ], - "COB": [ - "1101" - ], - "DT": [ - "5" - ], - "STATE": [ - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8" - ], + "REGIONTYPE": ["LGA2011"], + "COB": ["1101"], + "DT": ["5"], + "STATE": ["1", "2", "3", "4", "5", "6", "7", "8"], "ASGS_2011": [ "1", "2", @@ -24119,143 +14092,46 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_B29_SA1_SA", "description": "Counts are of all persons on Census night based on place of usual residence, not including overseas visitors.
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_CENSUS2011_B29_SA1_SA). Click on the 'i' symbols on that page for further information and links.", - "aggregatedDimensionIds": [ - "STATE" - ], + "aggregatedDimensionIds": ["STATE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { - "MEASURE": [ - "TOT", - "0", - "1", - "2", - "3", - "4", - "Z" - ], - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], + "MEASURE": ["TOT", "0", "1", "2", "3", "4", "Z"], + "FMCF": ["TOT", "[1-3]", "9"], "STRD": [ "TOT", "OPD", @@ -24265,14 +14141,7 @@ "Z", "UPD" ], - "LFSP": [ - "TOT", - "EMP", - "[1-4]", - "7", - "Z", - "UEMP" - ], + "LFSP": ["TOT", "EMP", "[1-4]", "7", "Z", "UEMP"], "MTWP": [ "TOT", "[1-3]M", @@ -24298,35 +14167,14 @@ "Z", "V" ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "": ["A[0-9]+", "T.*", "O.*"] }, "selectedInitially": { - "COB": [ - "1101" - ], - "DT": [ - "5" - ], - "STATE": [ - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8" - ], + "COB": ["1101"], + "DT": ["5"], + "STATE": ["1", "2", "3", "4", "5", "6", "7", "8"], "ASGS_2011": [ "1", "2", @@ -24377,134 +14225,45 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_B30", "description": "Counts are of all persons on Census night based on place of usual residence, not including overseas visitors.
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_CENSUS2011_B30). Click on the 'i' symbols on that page for further information and links.", - "aggregatedDimensionIds": [ - "STATE" - ], + "aggregatedDimensionIds": ["STATE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], + "FMCF": ["TOT", "[1-3]", "9"], "STRD": [ "TOT", "OPD", @@ -24547,28 +14306,14 @@ "Z", "V" ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "": ["A[0-9]+", "T.*", "O.*"] }, "selectedInitially": { - "REGIONTYPE": [ - "SA4" - ], - "COB": [ - "1101" - ], - "DT": [ - "5" - ], + "REGIONTYPE": ["SA4"], + "COB": ["1101"], + "DT": ["5"], "STATE": [ "1", "2", @@ -24631,137 +14376,46 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_B30_LGA", "description": "Counts are of all persons on Census night based on place of usual residence, not including overseas visitors.
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_CENSUS2011_B30_LGA). Click on the 'i' symbols on that page for further information and links.", - "aggregatedDimensionIds": [ - "STATE" - ], + "aggregatedDimensionIds": ["STATE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { - "REGIONTYPE": [ - "LGA2011" - ], - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], + "REGIONTYPE": ["LGA2011"], + "FMCF": ["TOT", "[1-3]", "9"], "STRD": [ "TOT", "OPD", @@ -24804,28 +14458,14 @@ "Z", "V" ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "": ["A[0-9]+", "T.*", "O.*"] }, "selectedInitially": { - "REGIONTYPE": [ - "LGA2011" - ], - "COB": [ - "1101" - ], - "DT": [ - "5" - ], + "REGIONTYPE": ["LGA2011"], + "COB": ["1101"], + "DT": ["5"], "STATE": [ "1", "2", @@ -24888,134 +14528,45 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_B30_SA1_SA", "description": "Counts are of all persons on Census night based on place of usual residence, not including overseas visitors.
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_CENSUS2011_B30_SA1_SA). Click on the 'i' symbols on that page for further information and links.", - "aggregatedDimensionIds": [ - "STATE" - ], + "aggregatedDimensionIds": ["STATE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], + "FMCF": ["TOT", "[1-3]", "9"], "STRD": [ "TOT", "OPD", @@ -25058,25 +14609,13 @@ "Z", "V" ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "": ["A[0-9]+", "T.*", "O.*"] }, "selectedInitially": { - "COB": [ - "1101" - ], - "DT": [ - "5" - ], + "COB": ["1101"], + "DT": ["5"], "STATE": [ "1", "2", @@ -25139,137 +14678,46 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_B31", "description": "Counts are of all persons on Census night based on place of usual residence, not including overseas visitors.
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_CENSUS2011_B31). Click on the 'i' symbols on that page for further information and links.", - "aggregatedDimensionIds": [ - "STATE" - ], - "singleValuedDimensionIds": [ - "MEASURE" - ], + "aggregatedDimensionIds": ["STATE"], + "singleValuedDimensionIds": ["MEASURE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], + "FMCF": ["TOT", "[1-3]", "9"], "STRD": [ "TOT", "OPD", @@ -25312,28 +14760,14 @@ "Z", "V" ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "": ["A[0-9]+", "T.*", "O.*"] }, "selectedInitially": { - "REGIONTYPE": [ - "SA4" - ], - "COB": [ - "1101" - ], - "DT": [ - "5" - ], + "REGIONTYPE": ["SA4"], + "COB": ["1101"], + "DT": ["5"], "STATE": [ "1", "2", @@ -25396,204 +14830,97 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_B31_LGA", "description": "Counts are of all persons on Census night based on place of usual residence, not including overseas visitors.
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_CENSUS2011_B31_LGA). Click on the 'i' symbols on that page for further information and links.", - "aggregatedDimensionIds": [ - "STATE" - ], - "singleValuedDimensionIds": [ - "MEASURE" - ], + "aggregatedDimensionIds": ["STATE"], + "singleValuedDimensionIds": ["MEASURE"], "totalValueIds": { - "*": [ + "*": ["TOT", "LFTOT"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] + }, + "whitelist": { + "REGIONTYPE": ["LGA2011"], + "FMCF": ["TOT", "[1-3]", "9"], + "STRD": [ "TOT", - "LFTOT" + "OPD", + "[1-3]", + "9", + "11", + "Z", + "UPD" ], - "SPC": [ - "TT" + "LFSP": [ + "TOT", + "EMP", + "[1-4]", + "7", + "Z", + "UEMP" ], "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ "TOT", - "1", - "2", - "2_0", - "2_11" + "[1-3]M", + "00[1-9]", + "010", + "011", + "232", + "TA", + "BA", + "B2", + "233", + "234", + "Z" ], - "UAI1P": [ + "TYPP": [ "TOT", + "10", "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" + "3", + "40", + "50", + "60", + "Z", + "V" ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] - }, - "whitelist": { - "REGIONTYPE": [ - "LGA2011" - ], - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], - "STRD": [ - "TOT", - "OPD", - "[1-3]", - "9", - "11", - "Z", - "UPD" - ], - "LFSP": [ - "TOT", - "EMP", - "[1-4]", - "7", - "Z", - "UEMP" - ], - "MTWP": [ - "TOT", - "[1-3]M", - "00[1-9]", - "010", - "011", - "232", - "TA", - "BA", - "B2", - "233", - "234", - "Z" - ], - "TYPP": [ - "TOT", - "10", - "2", - "3", - "40", - "50", - "60", - "Z", - "V" - ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "": ["A[0-9]+", "T.*", "O.*"] }, "selectedInitially": { - "REGIONTYPE": [ - "LGA2011" - ], - "COB": [ - "1101" - ], - "DT": [ - "5" - ], + "REGIONTYPE": ["LGA2011"], + "COB": ["1101"], + "DT": ["5"], "STATE": [ "1", "2", @@ -25656,137 +14983,46 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_B31_SA1_SA", "description": "Counts are of all persons on Census night based on place of usual residence, not including overseas visitors.
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_CENSUS2011_B31_SA1_SA). Click on the 'i' symbols on that page for further information and links.", - "aggregatedDimensionIds": [ - "STATE" - ], - "singleValuedDimensionIds": [ - "MEASURE" - ], + "aggregatedDimensionIds": ["STATE"], + "singleValuedDimensionIds": ["MEASURE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], + "FMCF": ["TOT", "[1-3]", "9"], "STRD": [ "TOT", "OPD", @@ -25829,25 +15065,13 @@ "Z", "V" ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "": ["A[0-9]+", "T.*", "O.*"] }, "selectedInitially": { - "COB": [ - "1101" - ], - "DT": [ - "5" - ], + "COB": ["1101"], + "DT": ["5"], "STATE": [ "1", "2", @@ -25910,130 +15134,43 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_B32", "description": "Counts are of all persons on Census night based on place of usual residence, not including overseas visitors.
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_CENSUS2011_B32). Click on the 'i' symbols on that page for further information and links.", - "aggregatedDimensionIds": [ - "STATE" - ], + "aggregatedDimensionIds": ["STATE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "MEASURE": [ - "OPD" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "MEASURE": ["OPD"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { "MEASURE": [ @@ -26045,11 +15182,7 @@ "Z", "UPD" ], - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], + "FMCF": ["TOT", "[1-3]", "9"], "STRD": [ "TOT", "OPD", @@ -26092,28 +15225,14 @@ "Z", "V" ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "": ["A[0-9]+", "T.*", "O.*"] }, "selectedInitially": { - "REGIONTYPE": [ - "SA4" - ], - "COB": [ - "1101" - ], - "DT": [ - "5" - ], + "REGIONTYPE": ["SA4"], + "COB": ["1101"], + "DT": ["5"], "STATE": [ "1", "2", @@ -26176,135 +15295,46 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_B32_LGA", "description": "Counts are of all persons on Census night based on place of usual residence, not including overseas visitors.
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_CENSUS2011_B32_LGA). Click on the 'i' symbols on that page for further information and links.", - "aggregatedDimensionIds": [ - "STATE" - ], + "aggregatedDimensionIds": ["STATE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "MEASURE": [ - "OPD" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "MEASURE": ["OPD"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { - "REGIONTYPE": [ - "LGA2011" - ], + "REGIONTYPE": ["LGA2011"], "MEASURE": [ "OPD", "1", @@ -26314,11 +15344,7 @@ "Z", "UPD" ], - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], + "FMCF": ["TOT", "[1-3]", "9"], "STRD": [ "TOT", "OPD", @@ -26361,28 +15387,14 @@ "Z", "V" ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "": ["A[0-9]+", "T.*", "O.*"] }, "selectedInitially": { - "REGIONTYPE": [ - "LGA2011" - ], - "COB": [ - "1101" - ], - "DT": [ - "5" - ], + "REGIONTYPE": ["LGA2011"], + "COB": ["1101"], + "DT": ["5"], "STATE": [ "1", "2", @@ -26445,130 +15457,43 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_B32_SA1_SA", "description": "Counts are of all persons on Census night based on place of usual residence, not including overseas visitors.
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_CENSUS2011_B32_SA1_SA). Click on the 'i' symbols on that page for further information and links.", - "aggregatedDimensionIds": [ - "STATE" - ], + "aggregatedDimensionIds": ["STATE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "MEASURE": [ - "OPD" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "MEASURE": ["OPD"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { "MEASURE": [ @@ -26580,11 +15505,7 @@ "Z", "UPD" ], - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], + "FMCF": ["TOT", "[1-3]", "9"], "STRD": [ "TOT", "OPD", @@ -26627,25 +15548,13 @@ "Z", "V" ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "": ["A[0-9]+", "T.*", "O.*"] }, "selectedInitially": { - "COB": [ - "1101" - ], - "DT": [ - "5" - ], + "COB": ["1101"], + "DT": ["5"], "STATE": [ "1", "2", @@ -26708,130 +15617,43 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_B33", "description": "Counts are of all persons on Census night based on place of usual residence, not including overseas visitors.
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_CENSUS2011_B33). Click on the 'i' symbols on that page for further information and links.", - "aggregatedDimensionIds": [ - "STATE" - ], + "aggregatedDimensionIds": ["STATE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "MEASURE": [ - "OPD" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "MEASURE": ["OPD"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { "MEASURE": [ @@ -26843,11 +15665,7 @@ "Z", "UPD" ], - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], + "FMCF": ["TOT", "[1-3]", "9"], "STRD": [ "TOT", "OPD", @@ -26890,28 +15708,14 @@ "Z", "V" ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "": ["A[0-9]+", "T.*", "O.*"] }, "selectedInitially": { - "REGIONTYPE": [ - "SA4" - ], - "COB": [ - "1101" - ], - "DT": [ - "5" - ], + "REGIONTYPE": ["SA4"], + "COB": ["1101"], + "DT": ["5"], "STATE": [ "1", "2", @@ -26974,135 +15778,46 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_B33_LGA", "description": "Counts are of all persons on Census night based on place of usual residence, not including overseas visitors.
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_CENSUS2011_B33_LGA). Click on the 'i' symbols on that page for further information and links.", - "aggregatedDimensionIds": [ - "STATE" - ], + "aggregatedDimensionIds": ["STATE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "MEASURE": [ - "OPD" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "MEASURE": ["OPD"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { - "REGIONTYPE": [ - "LGA2011" - ], + "REGIONTYPE": ["LGA2011"], "MEASURE": [ "OPD", "1", @@ -27112,11 +15827,7 @@ "Z", "UPD" ], - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], + "FMCF": ["TOT", "[1-3]", "9"], "STRD": [ "TOT", "OPD", @@ -27159,28 +15870,14 @@ "Z", "V" ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "": ["A[0-9]+", "T.*", "O.*"] }, "selectedInitially": { - "REGIONTYPE": [ - "LGA2011" - ], - "COB": [ - "1101" - ], - "DT": [ - "5" - ], + "REGIONTYPE": ["LGA2011"], + "COB": ["1101"], + "DT": ["5"], "STATE": [ "1", "2", @@ -27243,130 +15940,43 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_B33_SA1_SA", "description": "Counts are of all persons on Census night based on place of usual residence, not including overseas visitors.
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_CENSUS2011_B33_SA1_SA). Click on the 'i' symbols on that page for further information and links.", - "aggregatedDimensionIds": [ - "STATE" - ], + "aggregatedDimensionIds": ["STATE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "MEASURE": [ - "OPD" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "MEASURE": ["OPD"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { "MEASURE": [ @@ -27378,11 +15988,7 @@ "Z", "UPD" ], - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], + "FMCF": ["TOT", "[1-3]", "9"], "STRD": [ "TOT", "OPD", @@ -27425,25 +16031,13 @@ "Z", "V" ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "": ["A[0-9]+", "T.*", "O.*"] }, "selectedInitially": { - "COB": [ - "1101" - ], - "DT": [ - "5" - ], + "COB": ["1101"], + "DT": ["5"], "STATE": [ "1", "2", @@ -27506,134 +16100,45 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_B34", "description": "Counts are of all persons on Census night based on place of usual residence, not including overseas visitors.
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_CENSUS2011_B34). Click on the 'i' symbols on that page for further information and links.", - "aggregatedDimensionIds": [ - "STATE" - ], + "aggregatedDimensionIds": ["STATE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], + "FMCF": ["TOT", "[1-3]", "9"], "STRD": [ "TOT", "OPD", @@ -27676,28 +16181,14 @@ "Z", "V" ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "": ["A[0-9]+", "T.*", "O.*"] }, "selectedInitially": { - "REGIONTYPE": [ - "SA4" - ], - "COB": [ - "1101" - ], - "DT": [ - "5" - ], + "REGIONTYPE": ["SA4"], + "COB": ["1101"], + "DT": ["5"], "STATE": [ "1", "2", @@ -27760,137 +16251,46 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_B34_LGA", "description": "Counts are of all persons on Census night based on place of usual residence, not including overseas visitors.
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_CENSUS2011_B34_LGA). Click on the 'i' symbols on that page for further information and links.", - "aggregatedDimensionIds": [ - "STATE" - ], + "aggregatedDimensionIds": ["STATE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { - "REGIONTYPE": [ - "LGA2011" - ], - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], + "REGIONTYPE": ["LGA2011"], + "FMCF": ["TOT", "[1-3]", "9"], "STRD": [ "TOT", "OPD", @@ -27933,28 +16333,14 @@ "Z", "V" ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "": ["A[0-9]+", "T.*", "O.*"] }, "selectedInitially": { - "REGIONTYPE": [ - "LGA2011" - ], - "COB": [ - "1101" - ], - "DT": [ - "5" - ], + "REGIONTYPE": ["LGA2011"], + "COB": ["1101"], + "DT": ["5"], "STATE": [ "1", "2", @@ -28017,134 +16403,45 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_B34_SA1_SA", "description": "Counts are of all persons on Census night based on place of usual residence, not including overseas visitors.
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_CENSUS2011_B34_SA1_SA). Click on the 'i' symbols on that page for further information and links.", - "aggregatedDimensionIds": [ - "STATE" - ], + "aggregatedDimensionIds": ["STATE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], + "FMCF": ["TOT", "[1-3]", "9"], "STRD": [ "TOT", "OPD", @@ -28187,25 +16484,13 @@ "Z", "V" ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "": ["A[0-9]+", "T.*", "O.*"] }, "selectedInitially": { - "COB": [ - "1101" - ], - "DT": [ - "5" - ], + "COB": ["1101"], + "DT": ["5"], "STATE": [ "1", "2", @@ -28263,146 +16548,47 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_B35", "description": "Counts are of all persons on Census night based on place of usual residence, not including overseas visitors.
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_CENSUS2011_B35). Click on the 'i' symbols on that page for further information and links.", - "aggregatedDimensionIds": [ - "STATE" - ], + "aggregatedDimensionIds": ["STATE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "MEASURE": [ - "OPD" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "MEASURE": ["OPD"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { - "MEASURE": [ - "OPD", - "1", - "2", - "3", - "9", - "Z", - "UPD" - ], - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], + "MEASURE": ["OPD", "1", "2", "3", "9", "Z", "UPD"], + "FMCF": ["TOT", "[1-3]", "9"], "STRD": [ "TOT", "OPD", @@ -28412,14 +16598,7 @@ "Z", "UPD" ], - "LFSP": [ - "TOT", - "EMP", - "[1-4]", - "7", - "Z", - "UEMP" - ], + "LFSP": ["TOT", "EMP", "[1-4]", "7", "Z", "UEMP"], "MTWP": [ "TOT", "[1-3]M", @@ -28445,38 +16624,15 @@ "Z", "V" ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "": ["A[0-9]+", "T.*", "O.*"] }, "selectedInitially": { - "REGIONTYPE": [ - "SA4" - ], - "COB": [ - "1101" - ], - "DT": [ - "5" - ], - "STATE": [ - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8" - ], + "REGIONTYPE": ["SA4"], + "COB": ["1101"], + "DT": ["5"], + "STATE": ["1", "2", "3", "4", "5", "6", "7", "8"], "ASGS_2011": [ "1", "2", @@ -28522,149 +16678,48 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_B35_LGA", "description": "Counts are of all persons on Census night based on place of usual residence, not including overseas visitors.
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_CENSUS2011_B35_LGA). Click on the 'i' symbols on that page for further information and links.", - "aggregatedDimensionIds": [ - "STATE" - ], + "aggregatedDimensionIds": ["STATE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "MEASURE": [ - "OPD" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "MEASURE": ["OPD"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { - "REGIONTYPE": [ - "LGA2011" - ], - "MEASURE": [ - "OPD", - "1", - "2", - "3", - "9", - "Z", - "UPD" - ], - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], + "REGIONTYPE": ["LGA2011"], + "MEASURE": ["OPD", "1", "2", "3", "9", "Z", "UPD"], + "FMCF": ["TOT", "[1-3]", "9"], "STRD": [ "TOT", "OPD", @@ -28674,14 +16729,7 @@ "Z", "UPD" ], - "LFSP": [ - "TOT", - "EMP", - "[1-4]", - "7", - "Z", - "UEMP" - ], + "LFSP": ["TOT", "EMP", "[1-4]", "7", "Z", "UEMP"], "MTWP": [ "TOT", "[1-3]M", @@ -28707,38 +16755,15 @@ "Z", "V" ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "": ["A[0-9]+", "T.*", "O.*"] }, "selectedInitially": { - "REGIONTYPE": [ - "LGA2011" - ], - "COB": [ - "1101" - ], - "DT": [ - "5" - ], - "STATE": [ - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8" - ], + "REGIONTYPE": ["LGA2011"], + "COB": ["1101"], + "DT": ["5"], + "STATE": ["1", "2", "3", "4", "5", "6", "7", "8"], "ASGS_2011": [ "1", "2", @@ -28784,146 +16809,47 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_B35_SA1_SA", "description": "Counts are of all persons on Census night based on place of usual residence, not including overseas visitors.
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_CENSUS2011_B35_SA1_SA). Click on the 'i' symbols on that page for further information and links.", - "aggregatedDimensionIds": [ - "STATE" - ], + "aggregatedDimensionIds": ["STATE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "MEASURE": [ - "OPD" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "MEASURE": ["OPD"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { - "MEASURE": [ - "OPD", - "1", - "2", - "3", - "9", - "Z", - "UPD" - ], - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], + "MEASURE": ["OPD", "1", "2", "3", "9", "Z", "UPD"], + "FMCF": ["TOT", "[1-3]", "9"], "STRD": [ "TOT", "OPD", @@ -28933,14 +16859,7 @@ "Z", "UPD" ], - "LFSP": [ - "TOT", - "EMP", - "[1-4]", - "7", - "Z", - "UEMP" - ], + "LFSP": ["TOT", "EMP", "[1-4]", "7", "Z", "UEMP"], "MTWP": [ "TOT", "[1-3]M", @@ -28966,35 +16885,14 @@ "Z", "V" ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "": ["A[0-9]+", "T.*", "O.*"] }, "selectedInitially": { - "COB": [ - "1101" - ], - "DT": [ - "5" - ], - "STATE": [ - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8" - ], + "COB": ["1101"], + "DT": ["5"], + "STATE": ["1", "2", "3", "4", "5", "6", "7", "8"], "ASGS_2011": [ "1", "2", @@ -29045,127 +16943,42 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_B36", "description": "Counts are of all persons on Census night based on place of usual residence, not including overseas visitors.
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_CENSUS2011_B36). Click on the 'i' symbols on that page for further information and links.", - "aggregatedDimensionIds": [ - "STATE" - ], + "aggregatedDimensionIds": ["STATE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { "MEASURE": [ @@ -29177,11 +16990,7 @@ "Z", "UPD" ], - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], + "FMCF": ["TOT", "[1-3]", "9"], "STRD": [ "TOT", "OPD", @@ -29224,28 +17033,14 @@ "Z", "V" ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "": ["A[0-9]+", "T.*", "O.*"] }, "selectedInitially": { - "REGIONTYPE": [ - "SA4" - ], - "COB": [ - "1101" - ], - "DT": [ - "5" - ], + "REGIONTYPE": ["SA4"], + "COB": ["1101"], + "DT": ["5"], "STATE": [ "1", "2", @@ -29308,132 +17103,45 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_B36_LGA", "description": "Counts are of all persons on Census night based on place of usual residence, not including overseas visitors.
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_CENSUS2011_B36_LGA). Click on the 'i' symbols on that page for further information and links.", - "aggregatedDimensionIds": [ - "STATE" - ], + "aggregatedDimensionIds": ["STATE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { - "REGIONTYPE": [ - "LGA2011" - ], + "REGIONTYPE": ["LGA2011"], "MEASURE": [ "TOT", "1", @@ -29443,11 +17151,7 @@ "Z", "UPD" ], - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], + "FMCF": ["TOT", "[1-3]", "9"], "STRD": [ "TOT", "OPD", @@ -29490,28 +17194,14 @@ "Z", "V" ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "": ["A[0-9]+", "T.*", "O.*"] }, "selectedInitially": { - "REGIONTYPE": [ - "LGA2011" - ], - "COB": [ - "1101" - ], - "DT": [ - "5" - ], + "REGIONTYPE": ["LGA2011"], + "COB": ["1101"], + "DT": ["5"], "STATE": [ "1", "2", @@ -29574,127 +17264,42 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_B36_SA1_SA", "description": "Counts are of all persons on Census night based on place of usual residence, not including overseas visitors.
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_CENSUS2011_B36_SA1_SA). Click on the 'i' symbols on that page for further information and links.", - "aggregatedDimensionIds": [ - "STATE" - ], + "aggregatedDimensionIds": ["STATE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { "MEASURE": [ @@ -29706,11 +17311,7 @@ "Z", "UPD" ], - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], + "FMCF": ["TOT", "[1-3]", "9"], "STRD": [ "TOT", "OPD", @@ -29753,25 +17354,13 @@ "Z", "V" ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "": ["A[0-9]+", "T.*", "O.*"] }, "selectedInitially": { - "COB": [ - "1101" - ], - "DT": [ - "5" - ], + "COB": ["1101"], + "DT": ["5"], "STATE": [ "1", "2", @@ -29834,160 +17423,63 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_B37", "description": "Not all the data available in this dataset is displayed here.
    Counts are of all persons on Census night based on place of usual residence, not including overseas visitors.
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_CENSUS2011_B37). Click on the 'i' symbols on that page for further information and links.", - "aggregatedDimensionIds": [ - "STATE" - ], - "singleValuedDimensionIds": [ - "MEASURE" - ], + "aggregatedDimensionIds": ["STATE"], + "singleValuedDimensionIds": ["MEASURE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "SEX": [ - "3" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ + "*": ["TOT", "LFTOT"], + "SEX": ["3"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] + }, + "whitelist": { + "MEASURE": ["UER", "LFPR", "EPR"], + "FMCF": ["TOT", "[1-3]", "9"], + "STRD": [ "TOT", - "2", - "2_S", - "2_D" + "OPD", + "[1-3]", + "9", + "11", + "Z", + "UPD" ], "LFSP": [ "TOT", "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] - }, - "whitelist": { - "MEASURE": [ - "UER", - "LFPR", - "EPR" - ], - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], - "STRD": [ - "TOT", - "OPD", - "[1-3]", - "9", - "11", - "Z", - "UPD" - ], - "LFSP": [ - "TOT", - "EMP", - "[1-4]", - "7", - "Z", + "[1-4]", + "7", + "Z", "UEMP" ], "MTWP": [ @@ -30015,28 +17507,14 @@ "Z", "V" ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "": ["A[0-9]+", "T.*", "O.*"] }, "selectedInitially": { - "REGIONTYPE": [ - "SA4" - ], - "COB": [ - "1101" - ], - "DT": [ - "5" - ], + "REGIONTYPE": ["SA4"], + "COB": ["1101"], + "DT": ["5"], "STATE": [ "1", "2", @@ -30099,148 +17577,49 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_B37_LGA", "description": "Not all the data available in this dataset is displayed here.
    Counts are of all persons on Census night based on place of usual residence, not including overseas visitors.
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_CENSUS2011_B37_LGA). Click on the 'i' symbols on that page for further information and links.", - "aggregatedDimensionIds": [ - "STATE" - ], - "singleValuedDimensionIds": [ - "MEASURE" - ], + "aggregatedDimensionIds": ["STATE"], + "singleValuedDimensionIds": ["MEASURE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "SEX": [ - "3" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "SEX": ["3"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { - "REGIONTYPE": [ - "LGA2011" - ], - "MEASURE": [ - "UER", - "LFPR", - "EPR" - ], - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], + "REGIONTYPE": ["LGA2011"], + "MEASURE": ["UER", "LFPR", "EPR"], + "FMCF": ["TOT", "[1-3]", "9"], "STRD": [ "TOT", "OPD", @@ -30283,28 +17662,14 @@ "Z", "V" ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "": ["A[0-9]+", "T.*", "O.*"] }, "selectedInitially": { - "REGIONTYPE": [ - "LGA2011" - ], - "COB": [ - "1101" - ], - "DT": [ - "5" - ], + "REGIONTYPE": ["LGA2011"], + "COB": ["1101"], + "DT": ["5"], "STATE": [ "1", "2", @@ -30367,145 +17732,48 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_B37_SA1_SA", "description": "Not all the data available in this dataset is displayed here.
    Counts are of all persons on Census night based on place of usual residence, not including overseas visitors.
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_CENSUS2011_B37_SA1_SA). Click on the 'i' symbols on that page for further information and links.", - "aggregatedDimensionIds": [ - "STATE" - ], - "singleValuedDimensionIds": [ - "MEASURE" - ], + "aggregatedDimensionIds": ["STATE"], + "singleValuedDimensionIds": ["MEASURE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "SEX": [ - "3" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "SEX": ["3"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { - "MEASURE": [ - "UER", - "LFPR", - "EPR" - ], - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], + "MEASURE": ["UER", "LFPR", "EPR"], + "FMCF": ["TOT", "[1-3]", "9"], "STRD": [ "TOT", "OPD", @@ -30548,25 +17816,13 @@ "Z", "V" ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "": ["A[0-9]+", "T.*", "O.*"] }, "selectedInitially": { - "COB": [ - "1101" - ], - "DT": [ - "5" - ], + "COB": ["1101"], + "DT": ["5"], "STATE": [ "1", "2", @@ -30629,133 +17885,44 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_B37", "description": "Not all the data available in this dataset is displayed here.
    Counts are of all persons on Census night based on place of usual residence, not including overseas visitors.
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_CENSUS2011_B37). Click on the 'i' symbols on that page for further information and links.", - "aggregatedDimensionIds": [ - "STATE" - ], + "aggregatedDimensionIds": ["STATE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "SEX": [ - "3" - ], - "MEASURE": [ - "LFTOT" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "SEX": ["3"], + "MEASURE": ["LFTOT"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { "MEASURE": [ @@ -30766,11 +17933,7 @@ "LF_3", "LF_4_5" ], - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], + "FMCF": ["TOT", "[1-3]", "9"], "STRD": [ "TOT", "OPD", @@ -30813,28 +17976,14 @@ "Z", "V" ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "": ["A[0-9]+", "T.*", "O.*"] }, "selectedInitially": { - "REGIONTYPE": [ - "SA4" - ], - "COB": [ - "1101" - ], - "DT": [ - "5" - ], + "REGIONTYPE": ["SA4"], + "COB": ["1101"], + "DT": ["5"], "STATE": [ "1", "2", @@ -30897,138 +18046,47 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_B37_LGA", "description": "Not all the data available in this dataset is displayed here.
    Counts are of all persons on Census night based on place of usual residence, not including overseas visitors.
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_CENSUS2011_B37_LGA). Click on the 'i' symbols on that page for further information and links.", - "aggregatedDimensionIds": [ - "STATE" - ], + "aggregatedDimensionIds": ["STATE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "SEX": [ - "3" - ], - "MEASURE": [ - "LFTOT" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "SEX": ["3"], + "MEASURE": ["LFTOT"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { - "REGIONTYPE": [ - "LGA2011" - ], + "REGIONTYPE": ["LGA2011"], "MEASURE": [ "LFTOT", "LF_6", @@ -31037,11 +18095,7 @@ "LF_3", "LF_4_5" ], - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], + "FMCF": ["TOT", "[1-3]", "9"], "STRD": [ "TOT", "OPD", @@ -31084,28 +18138,14 @@ "Z", "V" ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "": ["A[0-9]+", "T.*", "O.*"] }, "selectedInitially": { - "REGIONTYPE": [ - "LGA2011" - ], - "COB": [ - "1101" - ], - "DT": [ - "5" - ], + "REGIONTYPE": ["LGA2011"], + "COB": ["1101"], + "DT": ["5"], "STATE": [ "1", "2", @@ -31168,133 +18208,44 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_B37_SA1_SA", "description": "Not all the data available in this dataset is displayed here.
    Counts are of all persons on Census night based on place of usual residence, not including overseas visitors.
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_CENSUS2011_B37_SA1_SA). Click on the 'i' symbols on that page for further information and links.", - "aggregatedDimensionIds": [ - "STATE" - ], + "aggregatedDimensionIds": ["STATE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "SEX": [ - "3" - ], - "MEASURE": [ - "LFTOT" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "SEX": ["3"], + "MEASURE": ["LFTOT"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { "MEASURE": [ @@ -31305,11 +18256,7 @@ "LF_3", "LF_4_5" ], - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], + "FMCF": ["TOT", "[1-3]", "9"], "STRD": [ "TOT", "OPD", @@ -31352,25 +18299,13 @@ "Z", "V" ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "": ["A[0-9]+", "T.*", "O.*"] }, "selectedInitially": { - "COB": [ - "1101" - ], - "DT": [ - "5" - ], + "COB": ["1101"], + "DT": ["5"], "STATE": [ "1", "2", @@ -31438,137 +18373,46 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_B38", "description": "Counts are of all persons on Census night based on place of usual residence, not including overseas visitors.
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_CENSUS2011_B38). Click on the 'i' symbols on that page for further information and links.", - "aggregatedDimensionIds": [ - "STATE" - ], + "aggregatedDimensionIds": ["STATE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "MEASURE": [ - "3" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "MEASURE": ["3"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], + "FMCF": ["TOT", "[1-3]", "9"], "STRD": [ "TOT", "OPD", @@ -31611,28 +18455,14 @@ "Z", "V" ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "": ["A[0-9]+", "T.*", "O.*"] }, "selectedInitially": { - "REGIONTYPE": [ - "SA4" - ], - "COB": [ - "1101" - ], - "DT": [ - "5" - ], + "REGIONTYPE": ["SA4"], + "COB": ["1101"], + "DT": ["5"], "STATE": [ "1", "2", @@ -31702,140 +18532,47 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_B38_LGA", "description": "Counts are of all persons on Census night based on place of usual residence, not including overseas visitors.
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_CENSUS2011_B38_LGA). Click on the 'i' symbols on that page for further information and links.", - "aggregatedDimensionIds": [ - "STATE" - ], + "aggregatedDimensionIds": ["STATE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "MEASURE": [ - "3" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "MEASURE": ["3"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { - "REGIONTYPE": [ - "LGA2011" - ], - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], + "REGIONTYPE": ["LGA2011"], + "FMCF": ["TOT", "[1-3]", "9"], "STRD": [ "TOT", "OPD", @@ -31878,28 +18615,14 @@ "Z", "V" ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "": ["A[0-9]+", "T.*", "O.*"] }, "selectedInitially": { - "REGIONTYPE": [ - "LGA2011" - ], - "COB": [ - "1101" - ], - "DT": [ - "5" - ], + "REGIONTYPE": ["LGA2011"], + "COB": ["1101"], + "DT": ["5"], "STATE": [ "1", "2", @@ -31969,137 +18692,46 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_B38_SA1_SA", "description": "Counts are of all persons on Census night based on place of usual residence, not including overseas visitors.
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_CENSUS2011_B38_SA1_SA). Click on the 'i' symbols on that page for further information and links.", - "aggregatedDimensionIds": [ - "STATE" - ], + "aggregatedDimensionIds": ["STATE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "MEASURE": [ - "3" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "MEASURE": ["3"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], + "FMCF": ["TOT", "[1-3]", "9"], "STRD": [ "TOT", "OPD", @@ -32142,25 +18774,13 @@ "Z", "V" ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "": ["A[0-9]+", "T.*", "O.*"] }, "selectedInitially": { - "COB": [ - "1101" - ], - "DT": [ - "5" - ], + "COB": ["1101"], + "DT": ["5"], "STATE": [ "1", "2", @@ -32230,143 +18850,47 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_B39", "description": "Counts are of all persons on Census night based on place of usual residence, not including overseas visitors.
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_CENSUS2011_B39). Click on the 'i' symbols on that page for further information and links.", - "aggregatedDimensionIds": [ - "STATE" - ], + "aggregatedDimensionIds": ["STATE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "SEX": [ - "3" - ], - "MEASURE": [ - "TOT", - "2", - "2_S", - "2_0" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "SEX": ["3"], + "MEASURE": ["TOT", "2", "2_S", "2_0"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], + "FMCF": ["TOT", "[1-3]", "9"], "STRD": [ "TOT", "OPD", @@ -32409,28 +18933,14 @@ "Z", "V" ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "": ["A[0-9]+", "T.*", "O.*"] }, "selectedInitially": { - "REGIONTYPE": [ - "SA4" - ], - "COB": [ - "1101" - ], - "DT": [ - "5" - ], + "REGIONTYPE": ["SA4"], + "COB": ["1101"], + "DT": ["5"], "STATE": [ "1", "2", @@ -32500,146 +19010,48 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_B39_LGA", "description": "Counts are of all persons on Census night based on place of usual residence, not including overseas visitors.
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_CENSUS2011_B39_LGA). Click on the 'i' symbols on that page for further information and links.", - "aggregatedDimensionIds": [ - "STATE" - ], + "aggregatedDimensionIds": ["STATE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "SEX": [ - "3" - ], - "MEASURE": [ - "TOT", - "2", - "2_S", - "2_0" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "SEX": ["3"], + "MEASURE": ["TOT", "2", "2_S", "2_0"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { - "REGIONTYPE": [ - "LGA2011" - ], - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], + "REGIONTYPE": ["LGA2011"], + "FMCF": ["TOT", "[1-3]", "9"], "STRD": [ "TOT", "OPD", @@ -32682,28 +19094,14 @@ "Z", "V" ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "": ["A[0-9]+", "T.*", "O.*"] }, "selectedInitially": { - "REGIONTYPE": [ - "LGA2011" - ], - "COB": [ - "1101" - ], - "DT": [ - "5" - ], + "REGIONTYPE": ["LGA2011"], + "COB": ["1101"], + "DT": ["5"], "STATE": [ "1", "2", @@ -32773,143 +19171,47 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_B39_SA1_SA", "description": "Counts are of all persons on Census night based on place of usual residence, not including overseas visitors.
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_CENSUS2011_B39_SA1_SA). Click on the 'i' symbols on that page for further information and links.", - "aggregatedDimensionIds": [ - "STATE" - ], + "aggregatedDimensionIds": ["STATE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "SEX": [ - "3" - ], - "MEASURE": [ - "TOT", - "2", - "2_S", - "2_0" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "SEX": ["3"], + "MEASURE": ["TOT", "2", "2_S", "2_0"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], + "FMCF": ["TOT", "[1-3]", "9"], "STRD": [ "TOT", "OPD", @@ -32952,25 +19254,13 @@ "Z", "V" ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "": ["A[0-9]+", "T.*", "O.*"] }, "selectedInitially": { - "COB": [ - "1101" - ], - "DT": [ - "5" - ], + "COB": ["1101"], + "DT": ["5"], "STATE": [ "1", "2", @@ -33040,141 +19330,47 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_B40", "description": "Counts are of all persons on Census night based on place of usual residence, not including overseas visitors.
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_CENSUS2011_B40). Click on the 'i' symbols on that page for further information and links.", - "aggregatedDimensionIds": [ - "STATE" - ], + "aggregatedDimensionIds": ["STATE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "MEASURE": [ - "3" - ], - "AGE": [ - "TT", - "O15" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "MEASURE": ["3"], + "AGE": ["TT", "O15"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], + "FMCF": ["TOT", "[1-3]", "9"], "STRD": [ "TOT", "OPD", @@ -33217,28 +19413,14 @@ "Z", "V" ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "AGE": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "AGE": ["A[0-9]+", "T.*", "O.*"] }, "selectedInitially": { - "REGIONTYPE": [ - "SA4" - ], - "COB": [ - "1101" - ], - "DT": [ - "5" - ], + "REGIONTYPE": ["SA4"], + "COB": ["1101"], + "DT": ["5"], "STATE": [ "1", "2", @@ -33308,144 +19490,48 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_B40_LGA", "description": "Counts are of all persons on Census night based on place of usual residence, not including overseas visitors.
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_CENSUS2011_B40_LGA). Click on the 'i' symbols on that page for further information and links.", - "aggregatedDimensionIds": [ - "STATE" - ], + "aggregatedDimensionIds": ["STATE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "MEASURE": [ - "3" - ], - "AGE": [ - "TT", - "O15" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "MEASURE": ["3"], + "AGE": ["TT", "O15"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { - "REGIONTYPE": [ - "LGA2011" - ], - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], + "REGIONTYPE": ["LGA2011"], + "FMCF": ["TOT", "[1-3]", "9"], "STRD": [ "TOT", "OPD", @@ -33488,28 +19574,14 @@ "Z", "V" ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "AGE": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "AGE": ["A[0-9]+", "T.*", "O.*"] }, "selectedInitially": { - "REGIONTYPE": [ - "LGA2011" - ], - "COB": [ - "1101" - ], - "DT": [ - "5" - ], + "REGIONTYPE": ["LGA2011"], + "COB": ["1101"], + "DT": ["5"], "STATE": [ "1", "2", @@ -33579,141 +19651,47 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_B40_SA1_SA", "description": "Counts are of all persons on Census night based on place of usual residence, not including overseas visitors.
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_CENSUS2011_B40_SA1_SA). Click on the 'i' symbols on that page for further information and links.", - "aggregatedDimensionIds": [ - "STATE" - ], + "aggregatedDimensionIds": ["STATE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "MEASURE": [ - "3" - ], - "AGE": [ - "TT", - "O15" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "MEASURE": ["3"], + "AGE": ["TT", "O15"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], + "FMCF": ["TOT", "[1-3]", "9"], "STRD": [ "TOT", "OPD", @@ -33756,25 +19734,13 @@ "Z", "V" ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "AGE": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "AGE": ["A[0-9]+", "T.*", "O.*"] }, "selectedInitially": { - "COB": [ - "1101" - ], - "DT": [ - "5" - ], + "COB": ["1101"], + "DT": ["5"], "STATE": [ "1", "2", @@ -33844,141 +19810,47 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_B41", "description": "Counts are of all persons on Census night based on place of usual residence, not including overseas visitors.
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_CENSUS2011_B41). Click on the 'i' symbols on that page for further information and links.", - "aggregatedDimensionIds": [ - "STATE" - ], + "aggregatedDimensionIds": ["STATE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "SEX": [ - "3" - ], - "AGE": [ - "TT", - "O15" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "SEX": ["3"], + "AGE": ["TT", "O15"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], + "FMCF": ["TOT", "[1-3]", "9"], "STRD": [ "TOT", "OPD", @@ -34021,28 +19893,14 @@ "Z", "V" ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "AGE": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "AGE": ["A[0-9]+", "T.*", "O.*"] }, "selectedInitially": { - "REGIONTYPE": [ - "SA4" - ], - "COB": [ - "1101" - ], - "DT": [ - "5" - ], + "REGIONTYPE": ["SA4"], + "COB": ["1101"], + "DT": ["5"], "STATE": [ "1", "2", @@ -34112,144 +19970,48 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_B41_LGA", "description": "Counts are of all persons on Census night based on place of usual residence, not including overseas visitors.
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_CENSUS2011_B41_LGA). Click on the 'i' symbols on that page for further information and links.", - "aggregatedDimensionIds": [ - "STATE" - ], + "aggregatedDimensionIds": ["STATE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "SEX": [ - "3" - ], - "AGE": [ - "TT", - "O15" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "SEX": ["3"], + "AGE": ["TT", "O15"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { - "REGIONTYPE": [ - "LGA2011" - ], - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], + "REGIONTYPE": ["LGA2011"], + "FMCF": ["TOT", "[1-3]", "9"], "STRD": [ "TOT", "OPD", @@ -34292,29 +20054,15 @@ "Z", "V" ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "AGE": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "AGE": ["A[0-9]+", "T.*", "O.*"] }, "regionDimensionId": "LGA_2011", "selectedInitially": { - "REGIONTYPE": [ - "LGA2011" - ], - "COB": [ - "1101" - ], - "DT": [ - "5" - ], + "REGIONTYPE": ["LGA2011"], + "COB": ["1101"], + "DT": ["5"], "STATE": [ "1", "2", @@ -34384,141 +20132,47 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_B41_SA1_SA", "description": "Counts are of all persons on Census night based on place of usual residence, not including overseas visitors.
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_CENSUS2011_B41_SA1_SA). Click on the 'i' symbols on that page for further information and links.", - "aggregatedDimensionIds": [ - "STATE" - ], + "aggregatedDimensionIds": ["STATE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "SEX": [ - "3" - ], - "AGE": [ - "TT", - "O15" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "SEX": ["3"], + "AGE": ["TT", "O15"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], + "FMCF": ["TOT", "[1-3]", "9"], "STRD": [ "TOT", "OPD", @@ -34561,25 +20215,13 @@ "Z", "V" ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "AGE": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "AGE": ["A[0-9]+", "T.*", "O.*"] }, "selectedInitially": { - "COB": [ - "1101" - ], - "DT": [ - "5" - ], + "COB": ["1101"], + "DT": ["5"], "STATE": [ "1", "2", @@ -34644,141 +20286,47 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_B42", "description": "Not all the data available in this dataset is displayed here.
    Counts are of all persons on Census night based on place of usual residence, not including overseas visitors.
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_CENSUS2011_B42). Click on the 'i' symbols on that page for further information and links.", - "aggregatedDimensionIds": [ - "STATE" - ], + "aggregatedDimensionIds": ["STATE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "MEASURE": [ - "3" - ], - "AGE": [ - "TT", - "O15" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "MEASURE": ["3"], + "AGE": ["TT", "O15"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], + "FMCF": ["TOT", "[1-3]", "9"], "STRD": [ "TOT", "OPD", @@ -34821,28 +20369,14 @@ "Z", "V" ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "AGE": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "AGE": ["A[0-9]+", "T.*", "O.*"] }, "selectedInitially": { - "REGIONTYPE": [ - "SA4" - ], - "COB": [ - "1101" - ], - "DT": [ - "5" - ], + "REGIONTYPE": ["SA4"], + "COB": ["1101"], + "DT": ["5"], "STATE": [ "1", "2", @@ -34905,144 +20439,48 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_B42_LGA", "description": "Not all the data available in this dataset is displayed here.
    Counts are of all persons on Census night based on place of usual residence, not including overseas visitors.
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_CENSUS2011_B42_LGA). Click on the 'i' symbols on that page for further information and links.", - "aggregatedDimensionIds": [ - "STATE" - ], + "aggregatedDimensionIds": ["STATE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "MEASURE": [ - "3" - ], - "AGE": [ - "TT", - "O15" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "MEASURE": ["3"], + "AGE": ["TT", "O15"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { - "REGIONTYPE": [ - "LGA2011" - ], - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], + "REGIONTYPE": ["LGA2011"], + "FMCF": ["TOT", "[1-3]", "9"], "STRD": [ "TOT", "OPD", @@ -35085,28 +20523,14 @@ "Z", "V" ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "AGE": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "AGE": ["A[0-9]+", "T.*", "O.*"] }, "selectedInitially": { - "REGIONTYPE": [ - "LGA2011" - ], - "COB": [ - "1101" - ], - "DT": [ - "5" - ], + "REGIONTYPE": ["LGA2011"], + "COB": ["1101"], + "DT": ["5"], "STATE": [ "1", "2", @@ -35169,141 +20593,47 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_B42_SA1_SA", "description": "Not all the data available in this dataset is displayed here.
    Counts are of all persons on Census night based on place of usual residence, not including overseas visitors.
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_CENSUS2011_B42_SA1_SA). Click on the 'i' symbols on that page for further information and links.", - "aggregatedDimensionIds": [ - "STATE" - ], + "aggregatedDimensionIds": ["STATE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "MEASURE": [ - "3" - ], - "AGE": [ - "TT", - "O15" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "MEASURE": ["3"], + "AGE": ["TT", "O15"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], + "FMCF": ["TOT", "[1-3]", "9"], "STRD": [ "TOT", "OPD", @@ -35346,25 +20676,13 @@ "Z", "V" ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "AGE": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "AGE": ["A[0-9]+", "T.*", "O.*"] }, "selectedInitially": { - "COB": [ - "1101" - ], - "DT": [ - "5" - ], + "COB": ["1101"], + "DT": ["5"], "STATE": [ "1", "2", @@ -35427,141 +20745,47 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_B43", "description": "Counts are of all persons on Census night based on place of usual residence, not including overseas visitors.
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_CENSUS2011_B43). Click on the 'i' symbols on that page for further information and links.", - "aggregatedDimensionIds": [ - "STATE" - ], + "aggregatedDimensionIds": ["STATE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "MEASURE": [ - "3" - ], - "AGE": [ - "TT", - "O15" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "MEASURE": ["3"], + "AGE": ["TT", "O15"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], + "FMCF": ["TOT", "[1-3]", "9"], "STRD": [ "TOT", "OPD", @@ -35604,28 +20828,14 @@ "Z", "V" ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "AGE": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "AGE": ["A[0-9]+", "T.*", "O.*"] }, "selectedInitially": { - "REGIONTYPE": [ - "SA4" - ], - "COB": [ - "1101" - ], - "DT": [ - "5" - ], + "REGIONTYPE": ["SA4"], + "COB": ["1101"], + "DT": ["5"], "STATE": [ "1", "2", @@ -35688,144 +20898,48 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_B43_LGA", "description": "Counts are of all persons on Census night based on place of usual residence, not including overseas visitors.
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_CENSUS2011_B43_LGA). Click on the 'i' symbols on that page for further information and links.", - "aggregatedDimensionIds": [ - "STATE" - ], + "aggregatedDimensionIds": ["STATE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "MEASURE": [ - "3" - ], - "AGE": [ - "TT", - "O15" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "MEASURE": ["3"], + "AGE": ["TT", "O15"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { - "REGIONTYPE": [ - "LGA2011" - ], - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], + "REGIONTYPE": ["LGA2011"], + "FMCF": ["TOT", "[1-3]", "9"], "STRD": [ "TOT", "OPD", @@ -35868,28 +20982,14 @@ "Z", "V" ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "AGE": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "AGE": ["A[0-9]+", "T.*", "O.*"] }, "selectedInitially": { - "REGIONTYPE": [ - "LGA2011" - ], - "COB": [ - "1101" - ], - "DT": [ - "5" - ], + "REGIONTYPE": ["LGA2011"], + "COB": ["1101"], + "DT": ["5"], "STATE": [ "1", "2", @@ -35952,141 +21052,47 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_B43_SA1_SA", "description": "Counts are of all persons on Census night based on place of usual residence, not including overseas visitors.
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_CENSUS2011_B43_SA1_SA). Click on the 'i' symbols on that page for further information and links.", - "aggregatedDimensionIds": [ - "STATE" - ], + "aggregatedDimensionIds": ["STATE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "MEASURE": [ - "3" - ], - "AGE": [ - "TT", - "O15" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "MEASURE": ["3"], + "AGE": ["TT", "O15"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], + "FMCF": ["TOT", "[1-3]", "9"], "STRD": [ "TOT", "OPD", @@ -36129,25 +21135,13 @@ "Z", "V" ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "AGE": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "AGE": ["A[0-9]+", "T.*", "O.*"] }, "selectedInitially": { - "COB": [ - "1101" - ], - "DT": [ - "5" - ], + "COB": ["1101"], + "DT": ["5"], "STATE": [ "1", "2", @@ -36210,134 +21204,45 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_B44", "description": "Counts are of all persons on Census night based on place of usual residence, not including overseas visitors.
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_CENSUS2011_B44). Click on the 'i' symbols on that page for further information and links.", - "aggregatedDimensionIds": [ - "STATE" - ], + "aggregatedDimensionIds": ["STATE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], + "FMCF": ["TOT", "[1-3]", "9"], "STRD": [ "TOT", "OPD", @@ -36380,28 +21285,14 @@ "Z", "V" ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "": ["A[0-9]+", "T.*", "O.*"] }, "selectedInitially": { - "REGIONTYPE": [ - "SA4" - ], - "COB": [ - "1101" - ], - "DT": [ - "5" - ], + "REGIONTYPE": ["SA4"], + "COB": ["1101"], + "DT": ["5"], "STATE": [ "1", "2", @@ -36464,137 +21355,46 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_B44_LGA", "description": "Counts are of all persons on Census night based on place of usual residence, not including overseas visitors.
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_CENSUS2011_B44_LGA). Click on the 'i' symbols on that page for further information and links.", - "aggregatedDimensionIds": [ - "STATE" - ], + "aggregatedDimensionIds": ["STATE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { - "REGIONTYPE": [ - "LGA2011" - ], - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], + "REGIONTYPE": ["LGA2011"], + "FMCF": ["TOT", "[1-3]", "9"], "STRD": [ "TOT", "OPD", @@ -36637,28 +21437,14 @@ "Z", "V" ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "": ["A[0-9]+", "T.*", "O.*"] }, "selectedInitially": { - "REGIONTYPE": [ - "LGA2011" - ], - "COB": [ - "1101" - ], - "DT": [ - "5" - ], + "REGIONTYPE": ["LGA2011"], + "COB": ["1101"], + "DT": ["5"], "STATE": [ "1", "2", @@ -36721,134 +21507,45 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_B44_SA1_SA", "description": "Counts are of all persons on Census night based on place of usual residence, not including overseas visitors.
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_CENSUS2011_B44_SA1_SA). Click on the 'i' symbols on that page for further information and links.", - "aggregatedDimensionIds": [ - "STATE" - ], + "aggregatedDimensionIds": ["STATE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], + "FMCF": ["TOT", "[1-3]", "9"], "STRD": [ "TOT", "OPD", @@ -36891,25 +21588,13 @@ "Z", "V" ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "": ["A[0-9]+", "T.*", "O.*"] }, "selectedInitially": { - "COB": [ - "1101" - ], - "DT": [ - "5" - ], + "COB": ["1101"], + "DT": ["5"], "STATE": [ "1", "2", @@ -36972,141 +21657,47 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_B45", "description": "Counts are of all persons on Census night based on place of usual residence, not including overseas visitors.
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_CENSUS2011_B45). Click on the 'i' symbols on that page for further information and links.", - "aggregatedDimensionIds": [ - "STATE" - ], + "aggregatedDimensionIds": ["STATE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "SEX": [ - "3" - ], - "MEASURE": [ - "TT", - "O15" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "SEX": ["3"], + "MEASURE": ["TT", "O15"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], + "FMCF": ["TOT", "[1-3]", "9"], "STRD": [ "TOT", "OPD", @@ -37149,28 +21740,14 @@ "Z", "V" ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "MEASURE": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "MEASURE": ["A[0-9]+", "T.*", "O.*"] }, "selectedInitially": { - "REGIONTYPE": [ - "SA4" - ], - "COB": [ - "1101" - ], - "DT": [ - "5" - ], + "REGIONTYPE": ["SA4"], + "COB": ["1101"], + "DT": ["5"], "STATE": [ "1", "2", @@ -37233,144 +21810,48 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_B45_LGA", "description": "Counts are of all persons on Census night based on place of usual residence, not including overseas visitors.
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_CENSUS2011_B45_LGA). Click on the 'i' symbols on that page for further information and links.", - "aggregatedDimensionIds": [ - "STATE" - ], + "aggregatedDimensionIds": ["STATE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "SEX": [ - "3" - ], - "MEASURE": [ - "TT", - "O15" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "SEX": ["3"], + "MEASURE": ["TT", "O15"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { - "REGIONTYPE": [ - "LGA2011" - ], - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], + "REGIONTYPE": ["LGA2011"], + "FMCF": ["TOT", "[1-3]", "9"], "STRD": [ "TOT", "OPD", @@ -37413,28 +21894,14 @@ "Z", "V" ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "MEASURE": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "MEASURE": ["A[0-9]+", "T.*", "O.*"] }, "selectedInitially": { - "REGIONTYPE": [ - "LGA2011" - ], - "COB": [ - "1101" - ], - "DT": [ - "5" - ], + "REGIONTYPE": ["LGA2011"], + "COB": ["1101"], + "DT": ["5"], "STATE": [ "1", "2", @@ -37497,141 +21964,47 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_B45_SA1_SA", "description": "Counts are of all persons on Census night based on place of usual residence, not including overseas visitors.
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_CENSUS2011_B45_SA1_SA). Click on the 'i' symbols on that page for further information and links.", - "aggregatedDimensionIds": [ - "STATE" - ], + "aggregatedDimensionIds": ["STATE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "SEX": [ - "3" - ], - "MEASURE": [ - "TT", - "O15" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "SEX": ["3"], + "MEASURE": ["TT", "O15"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], + "FMCF": ["TOT", "[1-3]", "9"], "STRD": [ "TOT", "OPD", @@ -37674,25 +22047,13 @@ "Z", "V" ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "MEASURE": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "MEASURE": ["A[0-9]+", "T.*", "O.*"] }, "selectedInitially": { - "COB": [ - "1101" - ], - "DT": [ - "5" - ], + "COB": ["1101"], + "DT": ["5"], "STATE": [ "1", "2", @@ -37742,154 +22103,48 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/DEATHS_MONTHOCCURENCE", "description": "This release contains statistics for deaths and mortality in Australia. Explanatory notes are available [here](http://www.abs.gov.au/AUSSTATS/abs@.nsf/Lookup/3302.0Explanatory%20Notes12014?OpenDocument).
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=DEATHS_MONTHOCCURENCE). Click on the 'i' symbols on that page for further information and links.", - "singleValuedDimensionIds": [ - "MEASURE" - ], + "singleValuedDimensionIds": ["MEASURE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "SEX_ABS": [ - "3" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "SEX_ABS": ["3"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], - "STRD": [ - "TOT", - "OPD", - "[1-3]", - "9", - "11", - "Z", - "UPD" - ], - "LFSP": [ - "TOT", - "EMP", - "[1-4]", - "7", - "Z", - "UEMP" - ], + "FMCF": ["TOT", "[1-3]", "9"], + "STRD": ["TOT", "OPD", "[1-3]", "9", "11", "Z", "UPD"], + "LFSP": ["TOT", "EMP", "[1-4]", "7", "Z", "UEMP"], "MTWP": [ "TOT", "[1-3]M", @@ -37904,61 +22159,19 @@ "234", "Z" ], - "TYPP": [ - "TOT", - "10", - "2", - "3", - "40", - "50", - "60", - "Z", - "V" - ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "TYPP": ["TOT", "10", "2", "3", "40", "50", "60", "Z", "V"], + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "": ["A[0-9]+", "T.*", "O.*"] }, "regionDimensionId": "ASGS_2011", "regionType": "ste", "selectedInitially": { - "MEASURE": [ - "4" - ], - "COB": [ - "1101" - ], - "DT": [ - "5" - ], - "STATE": [ - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8" - ], - "ASGS_2011": [ - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8" - ] + "MEASURE": ["4"], + "COB": ["1101"], + "DT": ["5"], + "STATE": ["1", "2", "3", "4", "5", "6", "7", "8"], + "ASGS_2011": ["1", "2", "3", "4", "5", "6", "7", "8"] } } ] @@ -37982,158 +22195,49 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/DEATHS_AGESPECIFIC_OCCURENCEYEAR", "description": "This release contains statistics for deaths and mortality in Australia. Explanatory notes are available [here](http://www.abs.gov.au/AUSSTATS/abs@.nsf/Lookup/3302.0Explanatory%20Notes12014?OpenDocument).
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=DEATHS_AGESPECIFIC_OCCURENCEYEAR). Click on the 'i' symbols on that page for further information and links.", - "singleValuedDimensionIds": [ - "MEASURE" - ], + "singleValuedDimensionIds": ["MEASURE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "SEX_ABS": [ - "3" - ], - "AGE": [ - "TT", - "O15" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "SEX_ABS": ["3"], + "AGE": ["TT", "O15"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], - "STRD": [ - "TOT", - "OPD", - "[1-3]", - "9", - "11", - "Z", - "UPD" - ], - "LFSP": [ - "TOT", - "EMP", - "[1-4]", - "7", - "Z", - "UEMP" - ], + "FMCF": ["TOT", "[1-3]", "9"], + "STRD": ["TOT", "OPD", "[1-3]", "9", "11", "Z", "UPD"], + "LFSP": ["TOT", "EMP", "[1-4]", "7", "Z", "UEMP"], "MTWP": [ "TOT", "[1-3]M", @@ -38148,61 +22252,19 @@ "234", "Z" ], - "TYPP": [ - "TOT", - "10", - "2", - "3", - "40", - "50", - "60", - "Z", - "V" - ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "AGE": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "TYPP": ["TOT", "10", "2", "3", "40", "50", "60", "Z", "V"], + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "AGE": ["A[0-9]+", "T.*", "O.*"] }, "regionDimensionId": "ASGS_2011", "regionType": "ste", "selectedInitially": { - "MEASURE": [ - "4" - ], - "COB": [ - "1101" - ], - "DT": [ - "5" - ], - "STATE": [ - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8" - ], - "ASGS_2011": [ - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8" - ] + "MEASURE": ["4"], + "COB": ["1101"], + "DT": ["5"], + "STATE": ["1", "2", "3", "4", "5", "6", "7", "8"], + "ASGS_2011": ["1", "2", "3", "4", "5", "6", "7", "8"] } } ] @@ -38226,158 +22288,49 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/DEATHS_AGESPECIFIC_REGISTRATIONYEAR", "description": "This release contains statistics for deaths and mortality in Australia. Explanatory notes are available [here](http://www.abs.gov.au/AUSSTATS/abs@.nsf/Lookup/3302.0Explanatory%20Notes12014?OpenDocument).
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=DEATHS_AGESPECIFIC_REGISTRATIONYEAR). Click on the 'i' symbols on that page for further information and links.", - "singleValuedDimensionIds": [ - "MEASURE" - ], + "singleValuedDimensionIds": ["MEASURE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "SEX_ABS": [ - "3" - ], - "AGE": [ - "TT", - "O15" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "SEX_ABS": ["3"], + "AGE": ["TT", "O15"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], - "STRD": [ - "TOT", - "OPD", - "[1-3]", - "9", - "11", - "Z", - "UPD" - ], - "LFSP": [ - "TOT", - "EMP", - "[1-4]", - "7", - "Z", - "UEMP" - ], + "FMCF": ["TOT", "[1-3]", "9"], + "STRD": ["TOT", "OPD", "[1-3]", "9", "11", "Z", "UPD"], + "LFSP": ["TOT", "EMP", "[1-4]", "7", "Z", "UEMP"], "MTWP": [ "TOT", "[1-3]M", @@ -38392,61 +22345,19 @@ "234", "Z" ], - "TYPP": [ - "TOT", - "10", - "2", - "3", - "40", - "50", - "60", - "Z", - "V" - ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "AGE": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "TYPP": ["TOT", "10", "2", "3", "40", "50", "60", "Z", "V"], + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "AGE": ["A[0-9]+", "T.*", "O.*"] }, "regionDimensionId": "ASGS_2011", "regionType": "ste", "selectedInitially": { - "MEASURE": [ - "4" - ], - "COB": [ - "1101" - ], - "DT": [ - "5" - ], - "STATE": [ - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8" - ], - "ASGS_2011": [ - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8" - ] + "MEASURE": ["4"], + "COB": ["1101"], + "DT": ["5"], + "STATE": ["1", "2", "3", "4", "5", "6", "7", "8"], + "ASGS_2011": ["1", "2", "3", "4", "5", "6", "7", "8"] } } ] @@ -38470,158 +22381,49 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/DEATHS_INDIGENOUS", "description": "This release contains statistics for deaths and mortality in Australia. Explanatory notes are available [here](http://www.abs.gov.au/AUSSTATS/abs@.nsf/Lookup/3302.0Explanatory%20Notes12014?OpenDocument).
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=DEATHS_INDIGENOUS). Click on the 'i' symbols on that page for further information and links.", - "singleValuedDimensionIds": [ - "MEASURE" - ], + "singleValuedDimensionIds": ["MEASURE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "SEX_ABS": [ - "3" - ], - "AGE": [ - "TT", - "O15" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "SEX_ABS": ["3"], + "AGE": ["TT", "O15"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], - "STRD": [ - "TOT", - "OPD", - "[1-3]", - "9", - "11", - "Z", - "UPD" - ], - "LFSP": [ - "TOT", - "EMP", - "[1-4]", - "7", - "Z", - "UEMP" - ], + "FMCF": ["TOT", "[1-3]", "9"], + "STRD": ["TOT", "OPD", "[1-3]", "9", "11", "Z", "UPD"], + "LFSP": ["TOT", "EMP", "[1-4]", "7", "Z", "UEMP"], "MTWP": [ "TOT", "[1-3]M", @@ -38636,61 +22438,19 @@ "234", "Z" ], - "TYPP": [ - "TOT", - "10", - "2", - "3", - "40", - "50", - "60", - "Z", - "V" - ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "AGE": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "TYPP": ["TOT", "10", "2", "3", "40", "50", "60", "Z", "V"], + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "AGE": ["A[0-9]+", "T.*", "O.*"] }, "regionDimensionId": "REGION_DEATHS", "regionType": "ste", "selectedInitially": { - "MEASURE": [ - "4" - ], - "COB": [ - "1101" - ], - "DT": [ - "5" - ], - "STATE": [ - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8" - ], - "ASGS_2011": [ - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8" - ] + "MEASURE": ["4"], + "COB": ["1101"], + "DT": ["5"], + "STATE": ["1", "2", "3", "4", "5", "6", "7", "8"], + "ASGS_2011": ["1", "2", "3", "4", "5", "6", "7", "8"] } } ] @@ -38719,223 +22479,85 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/DEATHS_INDIGENOUS_SUMMARY", "description": "This release contains statistics for deaths and mortality in Australia. Explanatory notes are available [here](http://www.abs.gov.au/AUSSTATS/abs@.nsf/Lookup/3302.0Explanatory%20Notes12014?OpenDocument).
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=DEATHS_INDIGENOUS_SUMMARY). Click on the 'i' symbols on that page for further information and links.", - "singleValuedDimensionIds": [ - "MEASURE" - ], + "singleValuedDimensionIds": ["MEASURE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "SEX_ABS": [ - "3" - ], - "SPC": [ - "TT" - ], + "*": ["TOT", "LFTOT"], + "SEX_ABS": ["3"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] + }, + "whitelist": { + "FMCF": ["TOT", "[1-3]", "9"], + "STRD": ["TOT", "OPD", "[1-3]", "9", "11", "Z", "UPD"], + "LFSP": ["TOT", "EMP", "[1-4]", "7", "Z", "UEMP"], "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ "TOT", - "1", - "2", - "2_0", - "2_11" + "[1-3]M", + "00[1-9]", + "010", + "011", + "232", + "TA", + "BA", + "B2", + "233", + "234", + "Z" ], - "UAI1P": [ + "TYPP": [ "TOT", + "10", "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" + "3", + "40", + "50", + "60", + "Z", + "V" ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] - }, - "whitelist": { - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], - "STRD": [ - "TOT", - "OPD", - "[1-3]", - "9", - "11", - "Z", - "UPD" - ], - "LFSP": [ - "TOT", - "EMP", - "[1-4]", - "7", - "Z", - "UEMP" - ], - "MTWP": [ - "TOT", - "[1-3]M", - "00[1-9]", - "010", - "011", - "232", - "TA", - "BA", - "B2", - "233", - "234", - "Z" - ], - "TYPP": [ - "TOT", - "10", - "2", - "3", - "40", - "50", - "60", - "Z", - "V" - ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "": ["A[0-9]+", "T.*", "O.*"] }, "regionDimensionId": "REGION", "regionType": "ste", "selectedInitially": { - "MEASURE": [ - "3" - ], - "COB": [ - "1101" - ], - "DT": [ - "5" - ], - "STATE": [ - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8" - ], - "ASGS_2011": [ - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8" - ] + "MEASURE": ["3"], + "COB": ["1101"], + "DT": ["5"], + "STATE": ["1", "2", "3", "4", "5", "6", "7", "8"], + "ASGS_2011": ["1", "2", "3", "4", "5", "6", "7", "8"] } } ] @@ -38961,152 +22583,47 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/DEATHS_MARITAL_STATUS", "description": "This release contains statistics for deaths and mortality in Australia. Explanatory notes are available [here](http://www.abs.gov.au/AUSSTATS/abs@.nsf/Lookup/3302.0Explanatory%20Notes12014?OpenDocument).
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=DEATHS_MARITAL_STATUS). Click on the 'i' symbols on that page for further information and links.", "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "AGE": [ - "TT", - "O15" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "AGE": ["TT", "O15"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], - "STRD": [ - "TOT", - "OPD", - "[1-3]", - "9", - "11", - "Z", - "UPD" - ], - "LFSP": [ - "TOT", - "EMP", - "[1-4]", - "7", - "Z", - "UEMP" - ], + "FMCF": ["TOT", "[1-3]", "9"], + "STRD": ["TOT", "OPD", "[1-3]", "9", "11", "Z", "UPD"], + "LFSP": ["TOT", "EMP", "[1-4]", "7", "Z", "UEMP"], "MTWP": [ "TOT", "[1-3]M", @@ -39121,58 +22638,18 @@ "234", "Z" ], - "TYPP": [ - "TOT", - "10", - "2", - "3", - "40", - "50", - "60", - "Z", - "V" - ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "AGE": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "TYPP": ["TOT", "10", "2", "3", "40", "50", "60", "Z", "V"], + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "AGE": ["A[0-9]+", "T.*", "O.*"] }, "regionDimensionId": "ASGS_2011", "regionType": "aus", "selectedInitially": { - "COB": [ - "1101" - ], - "DT": [ - "5" - ], - "STATE": [ - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8" - ], - "ASGS_2011": [ - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8" - ] + "COB": ["1101"], + "DT": ["5"], + "STATE": ["1", "2", "3", "4", "5", "6", "7", "8"], + "ASGS_2011": ["1", "2", "3", "4", "5", "6", "7", "8"] } } ] @@ -39201,154 +22678,48 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/DEATHS_SUMMARY", "description": "This release contains statistics for deaths and mortality in Australia. Explanatory notes are available [here](http://www.abs.gov.au/AUSSTATS/abs@.nsf/Lookup/3302.0Explanatory%20Notes12014?OpenDocument).
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=DEATHS_SUMMARY). Click on the 'i' symbols on that page for further information and links.", - "singleValuedDimensionIds": [ - "MEASURE" - ], + "singleValuedDimensionIds": ["MEASURE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "SEX_ABS": [ - "3" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "SEX_ABS": ["3"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], - "STRD": [ - "TOT", - "OPD", - "[1-3]", - "9", - "11", - "Z", - "UPD" - ], - "LFSP": [ - "TOT", - "EMP", - "[1-4]", - "7", - "Z", - "UEMP" - ], + "FMCF": ["TOT", "[1-3]", "9"], + "STRD": ["TOT", "OPD", "[1-3]", "9", "11", "Z", "UPD"], + "LFSP": ["TOT", "EMP", "[1-4]", "7", "Z", "UEMP"], "MTWP": [ "TOT", "[1-3]M", @@ -39374,50 +22745,18 @@ "Z", "V" ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "": ["A[0-9]+", "T.*", "O.*"] }, "regionDimensionId": "ASGS_2011", "regionType": "ste", "selectedInitially": { - "MEASURE": [ - "3" - ], - "COB": [ - "1101" - ], - "DT": [ - "5" - ], - "STATE": [ - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8" - ], - "ASGS_2011": [ - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8" - ] + "MEASURE": ["3"], + "COB": ["1101"], + "DT": ["5"], + "STATE": ["1", "2", "3", "4", "5", "6", "7", "8"], + "ASGS_2011": ["1", "2", "3", "4", "5", "6", "7", "8"] } } ] @@ -39443,151 +22782,47 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_ANNUAL_ERP_LGA", "description": "Estimated resident population (ERP) is the official estimate of the Australian population, which links people to a place of usual residence within Australia. Estimates of the resident population are based on Census counts by place of usual residence (excluding short-term overseas visitors in Australia), with an allowance for Census net undercount, to which are added the estimated number of Australian residents temporarily overseas at the time of the Census. Explanatory notes are available [here](http://www.abs.gov.au/AUSSTATS/abs@.nsf/Lookup/3218.0Explanatory%20Notes12012-13?OpenDocument).
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_ANNUAL_ERP_LGA). Click on the 'i' symbols on that page for further information and links.", "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { - "REGIONTYPE": [ - "LGA" - ], - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], - "STRD": [ - "TOT", - "OPD", - "[1-3]", - "9", - "11", - "Z", - "UPD" - ], - "LFSP": [ - "TOT", - "EMP", - "[1-4]", - "7", - "Z", - "UEMP" - ], + "REGIONTYPE": ["LGA"], + "FMCF": ["TOT", "[1-3]", "9"], + "STRD": ["TOT", "OPD", "[1-3]", "9", "11", "Z", "UPD"], + "LFSP": ["TOT", "EMP", "[1-4]", "7", "Z", "UEMP"], "MTWP": [ "TOT", "[1-3]M", @@ -39602,56 +22837,16 @@ "234", "Z" ], - "TYPP": [ - "TOT", - "10", - "2", - "3", - "40", - "50", - "60", - "Z", - "V" - ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "TYPP": ["TOT", "10", "2", "3", "40", "50", "60", "Z", "V"], + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "": ["A[0-9]+", "T.*", "O.*"] }, "selectedInitially": { - "COB": [ - "1101" - ], - "DT": [ - "5" - ], - "STATE": [ - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8" - ], - "ASGS_2011": [ - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8" - ] + "COB": ["1101"], + "DT": ["5"], + "STATE": ["1", "2", "3", "4", "5", "6", "7", "8"], + "ASGS_2011": ["1", "2", "3", "4", "5", "6", "7", "8"] } } ] @@ -39675,155 +22870,48 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_ERP_LGA", "description": "Estimated resident population (ERP) is the official estimate of the Australian population, which links people to a place of usual residence within Australia. Estimates of the resident population are based on Census counts by place of usual residence (excluding short-term overseas visitors in Australia), with an allowance for Census net undercount, to which are added the estimated number of Australian residents temporarily overseas at the time of the Census. Explanatory notes are available [here](http://www.abs.gov.au/AUSSTATS/abs@.nsf/Lookup/3218.0Explanatory%20Notes12012-13?OpenDocument).
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_ERP_LGA). Click on the 'i' symbols on that page for further information and links.", "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "SEX_ABS": [ - "3" - ], - "AGE": [ - "TT", - "O15" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "SEX_ABS": ["3"], + "AGE": ["TT", "O15"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], - "STRD": [ - "TOT", - "OPD", - "[1-3]", - "9", - "11", - "Z", - "UPD" - ], - "LFSP": [ - "TOT", - "EMP", - "[1-4]", - "7", - "Z", - "UEMP" - ], + "FMCF": ["TOT", "[1-3]", "9"], + "STRD": ["TOT", "OPD", "[1-3]", "9", "11", "Z", "UPD"], + "LFSP": ["TOT", "EMP", "[1-4]", "7", "Z", "UEMP"], "MTWP": [ "TOT", "[1-3]M", @@ -39838,58 +22926,18 @@ "234", "Z" ], - "TYPP": [ - "TOT", - "10", - "2", - "3", - "40", - "50", - "60", - "Z", - "V" - ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "AGE": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "TYPP": ["TOT", "10", "2", "3", "40", "50", "60", "Z", "V"], + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "AGE": ["A[0-9]+", "T.*", "O.*"] }, "regionDimensionId": "LGA_2013", "regionType": "lga_code_2013", "selectedInitially": { - "COB": [ - "1101" - ], - "DT": [ - "5" - ], - "STATE": [ - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8" - ], - "ASGS_2011": [ - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8" - ] + "COB": ["1101"], + "DT": ["5"], + "STATE": ["1", "2", "3", "4", "5", "6", "7", "8"], + "ASGS_2011": ["1", "2", "3", "4", "5", "6", "7", "8"] } } ] @@ -39913,151 +22961,47 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_ANNUAL_ERP_LGA2014", "description": "Estimated resident population (ERP) is the official estimate of the Australian population, which links people to a place of usual residence within Australia. Estimates of the resident population are based on Census counts by place of usual residence (excluding short-term overseas visitors in Australia), with an allowance for Census net undercount, to which are added the estimated number of Australian residents temporarily overseas at the time of the Census. Explanatory notes are available [here](http://www.abs.gov.au/AUSSTATS/abs@.nsf/Lookup/3218.0Explanatory%20Notes12012-13?OpenDocument).
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_ANNUAL_ERP_LGA2014). Click on the 'i' symbols on that page for further information and links.", "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { - "REGIONTYPE": [ - "LGA2014" - ], - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], - "STRD": [ - "TOT", - "OPD", - "[1-3]", - "9", - "11", - "Z", - "UPD" - ], - "LFSP": [ - "TOT", - "EMP", - "[1-4]", - "7", - "Z", - "UEMP" - ], + "REGIONTYPE": ["LGA2014"], + "FMCF": ["TOT", "[1-3]", "9"], + "STRD": ["TOT", "OPD", "[1-3]", "9", "11", "Z", "UPD"], + "LFSP": ["TOT", "EMP", "[1-4]", "7", "Z", "UEMP"], "MTWP": [ "TOT", "[1-3]M", @@ -40072,58 +23016,18 @@ "234", "Z" ], - "TYPP": [ - "TOT", - "10", - "2", - "3", - "40", - "50", - "60", - "Z", - "V" - ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "TYPP": ["TOT", "10", "2", "3", "40", "50", "60", "Z", "V"], + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "": ["A[0-9]+", "T.*", "O.*"] }, "regionDimensionId": "LGA2014", "regionType": "lga_code_2014", "selectedInitially": { - "COB": [ - "1101" - ], - "DT": [ - "5" - ], - "STATE": [ - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8" - ], - "ASGS_2011": [ - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8" - ] + "COB": ["1101"], + "DT": ["5"], + "STATE": ["1", "2", "3", "4", "5", "6", "7", "8"], + "ASGS_2011": ["1", "2", "3", "4", "5", "6", "7", "8"] } } ] @@ -40147,155 +23051,48 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_ERP_LGA2014", "description": "Estimated resident population (ERP) is the official estimate of the Australian population, which links people to a place of usual residence within Australia. Estimates of the resident population are based on Census counts by place of usual residence (excluding short-term overseas visitors in Australia), with an allowance for Census net undercount, to which are added the estimated number of Australian residents temporarily overseas at the time of the Census. Explanatory notes are available [here](http://www.abs.gov.au/AUSSTATS/abs@.nsf/Lookup/3218.0Explanatory%20Notes12012-13?OpenDocument).
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_ERP_LGA2014). Click on the 'i' symbols on that page for further information and links.", "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "SEX_ABS": [ - "3" - ], - "AGE": [ - "TT", - "O15" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "SEX_ABS": ["3"], + "AGE": ["TT", "O15"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], - "STRD": [ - "TOT", - "OPD", - "[1-3]", - "9", - "11", - "Z", - "UPD" - ], - "LFSP": [ - "TOT", - "EMP", - "[1-4]", - "7", - "Z", - "UEMP" - ], + "FMCF": ["TOT", "[1-3]", "9"], + "STRD": ["TOT", "OPD", "[1-3]", "9", "11", "Z", "UPD"], + "LFSP": ["TOT", "EMP", "[1-4]", "7", "Z", "UEMP"], "MTWP": [ "TOT", "[1-3]M", @@ -40310,58 +23107,18 @@ "234", "Z" ], - "TYPP": [ - "TOT", - "10", - "2", - "3", - "40", - "50", - "60", - "Z", - "V" - ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "AGE": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "TYPP": ["TOT", "10", "2", "3", "40", "50", "60", "Z", "V"], + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "AGE": ["A[0-9]+", "T.*", "O.*"] }, "regionDimensionId": "LGA2014", "regionType": "lga_code_2014", "selectedInitially": { - "COB": [ - "1101" - ], - "DT": [ - "5" - ], - "STATE": [ - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8" - ], - "ASGS_2011": [ - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8" - ] + "COB": ["1101"], + "DT": ["5"], + "STATE": ["1", "2", "3", "4", "5", "6", "7", "8"], + "ASGS_2011": ["1", "2", "3", "4", "5", "6", "7", "8"] } } ] @@ -40385,151 +23142,47 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_ERP_LGA2015", "description": "Estimated resident population (ERP) is the official estimate of the Australian population, which links people to a place of usual residence within Australia. Estimates of the resident population are based on Census counts by place of usual residence (excluding short-term overseas visitors in Australia), with an allowance for Census net undercount, to which are added the estimated number of Australian residents temporarily overseas at the time of the Census. Explanatory notes are available [here](http://www.abs.gov.au/AUSSTATS/abs@.nsf/Lookup/3218.0Explanatory%20Notes12012-13?OpenDocument).
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_ERP_LGA2015). Click on the 'i' symbols on that page for further information and links.", "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { - "REGIONTYPE": [ - "LGA2015" - ], - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], - "STRD": [ - "TOT", - "OPD", - "[1-3]", - "9", - "11", - "Z", - "UPD" - ], - "LFSP": [ - "TOT", - "EMP", - "[1-4]", - "7", - "Z", - "UEMP" - ], + "REGIONTYPE": ["LGA2015"], + "FMCF": ["TOT", "[1-3]", "9"], + "STRD": ["TOT", "OPD", "[1-3]", "9", "11", "Z", "UPD"], + "LFSP": ["TOT", "EMP", "[1-4]", "7", "Z", "UEMP"], "MTWP": [ "TOT", "[1-3]M", @@ -40544,58 +23197,18 @@ "234", "Z" ], - "TYPP": [ - "TOT", - "10", - "2", - "3", - "40", - "50", - "60", - "Z", - "V" - ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "TYPP": ["TOT", "10", "2", "3", "40", "50", "60", "Z", "V"], + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "": ["A[0-9]+", "T.*", "O.*"] }, "regionDimensionId": "LGA_2015", "regionType": "lga_code_2015", "selectedInitially": { - "COB": [ - "1101" - ], - "DT": [ - "5" - ], - "STATE": [ - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8" - ], - "ASGS_2011": [ - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8" - ] + "COB": ["1101"], + "DT": ["5"], + "STATE": ["1", "2", "3", "4", "5", "6", "7", "8"], + "ASGS_2011": ["1", "2", "3", "4", "5", "6", "7", "8"] } } ] @@ -40619,155 +23232,48 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_ANNUAL_ERP_LGA2015", "description": "Estimated resident population (ERP) is the official estimate of the Australian population, which links people to a place of usual residence within Australia. Estimates of the resident population are based on Census counts by place of usual residence (excluding short-term overseas visitors in Australia), with an allowance for Census net undercount, to which are added the estimated number of Australian residents temporarily overseas at the time of the Census. Explanatory notes are available [here](http://www.abs.gov.au/AUSSTATS/abs@.nsf/Lookup/3218.0Explanatory%20Notes12012-13?OpenDocument).
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_ANNUAL_ERP_LGA2015). Click on the 'i' symbols on that page for further information and links.", "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "SEX_ABS": [ - "3" - ], - "AGE": [ - "TT", - "O15" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "SEX_ABS": ["3"], + "AGE": ["TT", "O15"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], - "STRD": [ - "TOT", - "OPD", - "[1-3]", - "9", - "11", - "Z", - "UPD" - ], - "LFSP": [ - "TOT", - "EMP", - "[1-4]", - "7", - "Z", - "UEMP" - ], + "FMCF": ["TOT", "[1-3]", "9"], + "STRD": ["TOT", "OPD", "[1-3]", "9", "11", "Z", "UPD"], + "LFSP": ["TOT", "EMP", "[1-4]", "7", "Z", "UEMP"], "MTWP": [ "TOT", "[1-3]M", @@ -40782,58 +23288,18 @@ "234", "Z" ], - "TYPP": [ - "TOT", - "10", - "2", - "3", - "40", - "50", - "60", - "Z", - "V" - ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "AGE": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "TYPP": ["TOT", "10", "2", "3", "40", "50", "60", "Z", "V"], + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "AGE": ["A[0-9]+", "T.*", "O.*"] }, "regionDimensionId": "LGA_2015", "regionType": "lga_code_2015", "selectedInitially": { - "COB": [ - "1101" - ], - "DT": [ - "5" - ], - "STATE": [ - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8" - ], - "ASGS_2011": [ - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8" - ] + "COB": ["1101"], + "DT": ["5"], + "STATE": ["1", "2", "3", "4", "5", "6", "7", "8"], + "ASGS_2011": ["1", "2", "3", "4", "5", "6", "7", "8"] } } ] @@ -40857,156 +23323,49 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_ERP_ASGS", "description": "Estimated resident population (ERP) is the official estimate of the Australian population, which links people to a place of usual residence within Australia. Estimates of the resident population are based on Census counts by place of usual residence (excluding short-term overseas visitors in Australia), with an allowance for Census net undercount, to which are added the estimated number of Australian residents temporarily overseas at the time of the Census. Explanatory notes are available [here](http://www.abs.gov.au/AUSSTATS/abs@.nsf/Lookup/3218.0Explanatory%20Notes12012-13?OpenDocument).
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_ERP_ASGS). Click on the 'i' symbols on that page for further information and links.", "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "SEX_ABS": [ - "3" - ], - "AGE": [ - "TT", - "O15" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "SEX_ABS": ["3"], + "AGE": ["TT", "O15"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], - "STRD": [ - "TOT", - "OPD", - "[1-3]", - "9", - "11", - "Z", - "UPD" - ], - "LFSP": [ - "TOT", - "EMP", - "[1-4]", - "7", - "Z", - "UEMP" - ], - "MTWP": [ + "FMCF": ["TOT", "[1-3]", "9"], + "STRD": ["TOT", "OPD", "[1-3]", "9", "11", "Z", "UPD"], + "LFSP": ["TOT", "EMP", "[1-4]", "7", "Z", "UEMP"], + "MTWP": [ "TOT", "[1-3]M", "00[1-9]", @@ -41020,58 +23379,18 @@ "234", "Z" ], - "TYPP": [ - "TOT", - "10", - "2", - "3", - "40", - "50", - "60", - "Z", - "V" - ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "AGE": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "TYPP": ["TOT", "10", "2", "3", "40", "50", "60", "Z", "V"], + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "AGE": ["A[0-9]+", "T.*", "O.*"] }, "regionDimensionId": "ASGS_2011", "regionType": "ste", "selectedInitially": { - "COB": [ - "1101" - ], - "DT": [ - "5" - ], - "STATE": [ - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8" - ], - "ASGS_2011": [ - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8" - ] + "COB": ["1101"], + "DT": ["5"], + "STATE": ["1", "2", "3", "4", "5", "6", "7", "8"], + "ASGS_2011": ["1", "2", "3", "4", "5", "6", "7", "8"] } } ] @@ -41095,152 +23414,47 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_ANNUAL_ERP_ASGS", "description": "Estimated resident population (ERP) is the official estimate of the Australian population, which links people to a place of usual residence within Australia. Estimates of the resident population are based on Census counts by place of usual residence (excluding short-term overseas visitors in Australia), with an allowance for Census net undercount, to which are added the estimated number of Australian residents temporarily overseas at the time of the Census. Explanatory notes are available [here](http://www.abs.gov.au/AUSSTATS/abs@.nsf/Lookup/3218.0Explanatory%20Notes12012-13?OpenDocument).
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_ANNUAL_ERP_ASGS). Click on the 'i' symbols on that page for further information and links.", "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "AGE": [ - "TT", - "O15" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "AGE": ["TT", "O15"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], - "STRD": [ - "TOT", - "OPD", - "[1-3]", - "9", - "11", - "Z", - "UPD" - ], - "LFSP": [ - "TOT", - "EMP", - "[1-4]", - "7", - "Z", - "UEMP" - ], + "FMCF": ["TOT", "[1-3]", "9"], + "STRD": ["TOT", "OPD", "[1-3]", "9", "11", "Z", "UPD"], + "LFSP": ["TOT", "EMP", "[1-4]", "7", "Z", "UEMP"], "MTWP": [ "TOT", "[1-3]M", @@ -41255,58 +23469,18 @@ "234", "Z" ], - "TYPP": [ - "TOT", - "10", - "2", - "3", - "40", - "50", - "60", - "Z", - "V" - ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "AGE": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "TYPP": ["TOT", "10", "2", "3", "40", "50", "60", "Z", "V"], + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "AGE": ["A[0-9]+", "T.*", "O.*"] }, "regionDimensionId": "ASGS_2011", "regionType": "ste", "selectedInitially": { - "COB": [ - "1101" - ], - "DT": [ - "5" - ], - "STATE": [ - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8" - ], - "ASGS_2011": [ - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8" - ] + "COB": ["1101"], + "DT": ["5"], + "STATE": ["1", "2", "3", "4", "5", "6", "7", "8"], + "ASGS_2011": ["1", "2", "3", "4", "5", "6", "7", "8"] } } ] @@ -41330,157 +23504,50 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_ERP_COB_STATE", "description": "Estimated resident population (ERP) is the official estimate of the Australian population, which links people to a place of usual residence within Australia. Estimates of the resident population are based on Census counts by place of usual residence (excluding short-term overseas visitors in Australia), with an allowance for Census net undercount, to which are added the estimated number of Australian residents temporarily overseas at the time of the Census. Explanatory notes are available [here](http://www.abs.gov.au/AUSSTATS/abs@.nsf/Lookup/3412.0Explanatory%20Notes12014-15?OpenDocument).
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_ERP_COB_STATE). Click on the 'i' symbols on that page for further information and links.", "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "SEX_ABS": [ - "3" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "SEX_ABS": ["3"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "blacklist": { - "COB": [ - "TOTAL", - "[1-9][0-9]?" - ] + "COB": ["TOTAL", "[1-9][0-9]?"] }, "whitelist": { - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], - "STRD": [ - "TOT", - "OPD", - "[1-3]", - "9", - "11", - "Z", - "UPD" - ], - "LFSP": [ - "TOT", - "EMP", - "[1-4]", - "7", - "Z", - "UEMP" - ], + "FMCF": ["TOT", "[1-3]", "9"], + "STRD": ["TOT", "OPD", "[1-3]", "9", "11", "Z", "UPD"], + "LFSP": ["TOT", "EMP", "[1-4]", "7", "Z", "UEMP"], "MTWP": [ "TOT", "[1-3]M", @@ -41495,58 +23562,18 @@ "234", "Z" ], - "TYPP": [ - "TOT", - "10", - "2", - "3", - "40", - "50", - "60", - "Z", - "V" - ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "TYPP": ["TOT", "10", "2", "3", "40", "50", "60", "Z", "V"], + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "": ["A[0-9]+", "T.*", "O.*"] }, "regionDimensionId": "ASGS_2011", "regionType": "ste", "selectedInitially": { - "COB": [ - "1101" - ], - "DT": [ - "5" - ], - "STATE": [ - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8" - ], - "ASGS_2011": [ - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8" - ] + "COB": ["1101"], + "DT": ["5"], + "STATE": ["1", "2", "3", "4", "5", "6", "7", "8"], + "ASGS_2011": ["1", "2", "3", "4", "5", "6", "7", "8"] } } ] @@ -41565,154 +23592,48 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_FAMILY_PROJ", "description": "The meaning of the Series I, II and III is described [here](http://www.abs.gov.au/ausstats/abs@.nsf/Lookup/3236.0main+features92011%20to%202036), although they are named Series A to C (not I to III) there.
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_FAMILY_PROJ). Click on the 'i' symbols on that page for further information and links.", - "aggregatedDimensionIds": [ - "STATE" - ], - "singleValuedDimensionIds": [ - "PROJ_SERIES" - ], + "aggregatedDimensionIds": ["STATE"], + "singleValuedDimensionIds": ["PROJ_SERIES"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], - "STRD": [ - "TOT", - "OPD", - "[1-3]", - "9", - "11", - "Z", - "UPD" - ], - "LFSP": [ - "TOT", - "EMP", - "[1-4]", - "7", - "Z", - "UEMP" - ], + "FMCF": ["TOT", "[1-3]", "9"], + "STRD": ["TOT", "OPD", "[1-3]", "9", "11", "Z", "UPD"], + "LFSP": ["TOT", "EMP", "[1-4]", "7", "Z", "UEMP"], "MTWP": [ "TOT", "[1-3]M", @@ -41727,58 +23648,18 @@ "234", "Z" ], - "TYPP": [ - "TOT", - "10", - "2", - "3", - "40", - "50", - "60", - "Z", - "V" - ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "TYPP": ["TOT", "10", "2", "3", "40", "50", "60", "Z", "V"], + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "": ["A[0-9]+", "T.*", "O.*"] }, "regionDimensionId": "ASGS_2011_STATE_GCCSA_SA4_SA3_SA2", "regionType": "ste", "selectedInitially": { - "COB": [ - "1101" - ], - "DT": [ - "5" - ], - "STATE": [ - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8" - ], - "ASGS_2011": [ - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8" - ] + "COB": ["1101"], + "DT": ["5"], + "STATE": ["1", "2", "3", "4", "5", "6", "7", "8"], + "ASGS_2011": ["1", "2", "3", "4", "5", "6", "7", "8"] } } ] @@ -41795,154 +23676,48 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_HH_PROV", "description": "The meaning of the Series I, II and III is described [here](http://www.abs.gov.au/ausstats/abs@.nsf/Lookup/3236.0main+features92011%20to%202036), although they are named Series A to C (not I to III) there.
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_HH_PROV). Click on the 'i' symbols on that page for further information and links.", - "aggregatedDimensionIds": [ - "STATE" - ], - "singleValuedDimensionIds": [ - "PROJ_SERIES" - ], + "aggregatedDimensionIds": ["STATE"], + "singleValuedDimensionIds": ["PROJ_SERIES"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], - "STRD": [ - "TOT", - "OPD", - "[1-3]", - "9", - "11", - "Z", - "UPD" - ], - "LFSP": [ - "TOT", - "EMP", - "[1-4]", - "7", - "Z", - "UEMP" - ], + "FMCF": ["TOT", "[1-3]", "9"], + "STRD": ["TOT", "OPD", "[1-3]", "9", "11", "Z", "UPD"], + "LFSP": ["TOT", "EMP", "[1-4]", "7", "Z", "UEMP"], "MTWP": [ "TOT", "[1-3]M", @@ -41957,58 +23732,18 @@ "234", "Z" ], - "TYPP": [ - "TOT", - "10", - "2", - "3", - "40", - "50", - "60", - "Z", - "V" - ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "TYPP": ["TOT", "10", "2", "3", "40", "50", "60", "Z", "V"], + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "": ["A[0-9]+", "T.*", "O.*"] }, "regionDimensionId": "ASGS_2011_STATE_GCCSA_SA4_SA3_SA2", "regionType": "ste", "selectedInitially": { - "COB": [ - "1101" - ], - "DT": [ - "5" - ], - "STATE": [ - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8" - ], - "ASGS_2011": [ - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8" - ] + "COB": ["1101"], + "DT": ["5"], + "STATE": ["1", "2", "3", "4", "5", "6", "7", "8"], + "ASGS_2011": ["1", "2", "3", "4", "5", "6", "7", "8"] } } ] @@ -42025,155 +23760,48 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/HF", "description": "This publication presents statistics on housing finance commitments made by significant lenders. This includes secured finance commitments for the construction or purchase of owner occupied dwellings and finance commitments for the construction or purchase of dwellings for rent or resale (investment housing). Also included are the outstanding values of housing loan assets to individuals held by lenders at the end of each reference month. Explanatory notes are available [here](http://www.abs.gov.au/ausstats/abs@.nsf/exnote/5609.0).
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=HF). Click on the 'i' symbols on that page for further information and links.", - "aggregatedDimensionIds": [ - "STATE" - ], - "singleValuedDimensionIds": [ - "DT", - "TSEST" - ], + "aggregatedDimensionIds": ["STATE"], + "singleValuedDimensionIds": ["DT", "TSEST"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], - "STRD": [ - "TOT", - "OPD", - "[1-3]", - "9", - "11", - "Z", - "UPD" - ], - "LFSP": [ - "TOT", - "EMP", - "[1-4]", - "7", - "Z", - "UEMP" - ], + "FMCF": ["TOT", "[1-3]", "9"], + "STRD": ["TOT", "OPD", "[1-3]", "9", "11", "Z", "UPD"], + "LFSP": ["TOT", "EMP", "[1-4]", "7", "Z", "UEMP"], "MTWP": [ "TOT", "[1-3]M", @@ -42188,58 +23816,18 @@ "234", "Z" ], - "TYPP": [ - "TOT", - "10", - "2", - "3", - "40", - "50", - "60", - "Z", - "V" - ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "TYPP": ["TOT", "10", "2", "3", "40", "50", "60", "Z", "V"], + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "": ["A[0-9]+", "T.*", "O.*"] }, "regionDimensionId": "ASGC_2010", "regionType": "ste", "selectedInitially": { - "COB": [ - "1101" - ], - "DT": [ - "5" - ], - "STATE": [ - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8" - ], - "ASGS_2011": [ - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8" - ] + "COB": ["1101"], + "DT": ["5"], + "STATE": ["1", "2", "3", "4", "5", "6", "7", "8"], + "ASGS_2011": ["1", "2", "3", "4", "5", "6", "7", "8"] } } ] @@ -42261,158 +23849,49 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/INFANTDEATHS_REGISTRATIONYEAR", "description": "This release contains statistics for deaths and mortality in Australia. Explanatory notes are available [here](http://www.abs.gov.au/AUSSTATS/abs@.nsf/Lookup/3302.0Explanatory%20Notes12014?OpenDocument).
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=INFANTDEATHS_REGISTRATIONYEAR). Click on the 'i' symbols on that page for further information and links.", - "singleValuedDimensionIds": [ - "MEASURE" - ], + "singleValuedDimensionIds": ["MEASURE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "SEX_ABS": [ - "3" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "SEX_ABS": ["3"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { - "MEASURE": [ - "4", - "9" - ], - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], - "STRD": [ - "TOT", - "OPD", - "[1-3]", - "9", - "11", - "Z", - "UPD" - ], - "LFSP": [ - "TOT", - "EMP", - "[1-4]", - "7", - "Z", - "UEMP" - ], + "MEASURE": ["4", "9"], + "FMCF": ["TOT", "[1-3]", "9"], + "STRD": ["TOT", "OPD", "[1-3]", "9", "11", "Z", "UPD"], + "LFSP": ["TOT", "EMP", "[1-4]", "7", "Z", "UEMP"], "MTWP": [ "TOT", "[1-3]M", @@ -42427,58 +23906,18 @@ "234", "Z" ], - "TYPP": [ - "TOT", - "10", - "2", - "3", - "40", - "50", - "60", - "Z", - "V" - ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "TYPP": ["TOT", "10", "2", "3", "40", "50", "60", "Z", "V"], + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "": ["A[0-9]+", "T.*", "O.*"] }, "regionDimensionId": "ASGS_2011", "regionType": "ste", "selectedInitially": { - "COB": [ - "1101" - ], - "DT": [ - "5" - ], - "STATE": [ - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8" - ], - "ASGS_2011": [ - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8" - ] + "COB": ["1101"], + "DT": ["5"], + "STATE": ["1", "2", "3", "4", "5", "6", "7", "8"], + "ASGS_2011": ["1", "2", "3", "4", "5", "6", "7", "8"] } } ] @@ -42502,154 +23941,48 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/INFANTDEATHS_YEAROCCURENCE", "description": "This release contains statistics for deaths and mortality in Australia. Explanatory notes are available [here](http://www.abs.gov.au/AUSSTATS/abs@.nsf/Lookup/3302.0Explanatory%20Notes12014?OpenDocument).
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=INFANTDEATHS_YEAROCCURENCE). Click on the 'i' symbols on that page for further information and links.", - "singleValuedDimensionIds": [ - "MEASURE" - ], + "singleValuedDimensionIds": ["MEASURE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "SEX_ABS": [ - "3" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "SEX_ABS": ["3"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], - "STRD": [ - "TOT", - "OPD", - "[1-3]", - "9", - "11", - "Z", - "UPD" - ], - "LFSP": [ - "TOT", - "EMP", - "[1-4]", - "7", - "Z", - "UEMP" - ], + "FMCF": ["TOT", "[1-3]", "9"], + "STRD": ["TOT", "OPD", "[1-3]", "9", "11", "Z", "UPD"], + "LFSP": ["TOT", "EMP", "[1-4]", "7", "Z", "UEMP"], "MTWP": [ "TOT", "[1-3]M", @@ -42664,58 +23997,18 @@ "234", "Z" ], - "TYPP": [ - "TOT", - "10", - "2", - "3", - "40", - "50", - "60", - "Z", - "V" - ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "TYPP": ["TOT", "10", "2", "3", "40", "50", "60", "Z", "V"], + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "": ["A[0-9]+", "T.*", "O.*"] }, "regionDimensionId": "ASGS_2011", "regionType": "ste", "selectedInitially": { - "COB": [ - "1101" - ], - "DT": [ - "5" - ], - "STATE": [ - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8" - ], - "ASGS_2011": [ - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8" - ] + "COB": ["1101"], + "DT": ["5"], + "STATE": ["1", "2", "3", "4", "5", "6", "7", "8"], + "ASGS_2011": ["1", "2", "3", "4", "5", "6", "7", "8"] } } ] @@ -42739,159 +24032,51 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_DEM_QIM", "description": "Explanatory notes are available [here](http://www.abs.gov.au/AUSSTATS/abs@.nsf/Lookup/3101.0Explanatory%20Notes1Sep%202014?OpenDocument).
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_DEM_QIM). Click on the 'i' symbols on that page for further information and links.", "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "SEX_ABS": [ - "3" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "SEX_ABS": ["3"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "blacklist": { - "STATE": [ - "0" - ], - "ASGS_2011": [ - "0" - ] + "STATE": ["0"], + "ASGS_2011": ["0"] }, "whitelist": { - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], - "STRD": [ - "TOT", - "OPD", - "[1-3]", - "9", - "11", - "Z", - "UPD" - ], - "LFSP": [ - "TOT", - "EMP", - "[1-4]", - "7", - "Z", - "UEMP" - ], + "FMCF": ["TOT", "[1-3]", "9"], + "STRD": ["TOT", "OPD", "[1-3]", "9", "11", "Z", "UPD"], + "LFSP": ["TOT", "EMP", "[1-4]", "7", "Z", "UEMP"], "MTWP": [ "TOT", "[1-3]M", @@ -42906,58 +24091,18 @@ "234", "Z" ], - "TYPP": [ - "TOT", - "10", - "2", - "3", - "40", - "50", - "60", - "Z", - "V" - ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "TYPP": ["TOT", "10", "2", "3", "40", "50", "60", "Z", "V"], + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "": ["A[0-9]+", "T.*", "O.*"] }, "regionDimensionId": "STATE", "regionType": "ste", "selectedInitially": { - "COB": [ - "1101" - ], - "DT": [ - "5" - ], - "STATE": [ - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8" - ], - "ASGS_2011": [ - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8" - ] + "COB": ["1101"], + "DT": ["5"], + "STATE": ["1", "2", "3", "4", "5", "6", "7", "8"], + "ASGS_2011": ["1", "2", "3", "4", "5", "6", "7", "8"] } } ] @@ -42981,159 +24126,51 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_DEM_QIM", "description": "Explanatory notes are available [here](http://www.abs.gov.au/AUSSTATS/abs@.nsf/Lookup/3101.0Explanatory%20Notes1Sep%202014?OpenDocument).
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_DEM_QIM). Click on the 'i' symbols on that page for further information and links.", "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "SEX_ABS": [ - "3" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "SEX_ABS": ["3"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "blacklist": { - "STATE": [ - "0" - ], - "ASGS_2011": [ - "0" - ] + "STATE": ["0"], + "ASGS_2011": ["0"] }, "whitelist": { - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], - "STRD": [ - "TOT", - "OPD", - "[1-3]", - "9", - "11", - "Z", - "UPD" - ], - "LFSP": [ - "TOT", - "EMP", - "[1-4]", - "7", - "Z", - "UEMP" - ], + "FMCF": ["TOT", "[1-3]", "9"], + "STRD": ["TOT", "OPD", "[1-3]", "9", "11", "Z", "UPD"], + "LFSP": ["TOT", "EMP", "[1-4]", "7", "Z", "UEMP"], "MTWP": [ "TOT", "[1-3]M", @@ -43148,58 +24185,18 @@ "234", "Z" ], - "TYPP": [ - "TOT", - "10", - "2", - "3", - "40", - "50", - "60", - "Z", - "V" - ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "TYPP": ["TOT", "10", "2", "3", "40", "50", "60", "Z", "V"], + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "": ["A[0-9]+", "T.*", "O.*"] }, "regionDimensionId": "ASGS_2011", "regionType": "ste", "selectedInitially": { - "COB": [ - "1101" - ], - "DT": [ - "5" - ], - "STATE": [ - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8" - ], - "ASGS_2011": [ - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8" - ] + "COB": ["1101"], + "DT": ["5"], + "STATE": ["1", "2", "3", "4", "5", "6", "7", "8"], + "ASGS_2011": ["1", "2", "3", "4", "5", "6", "7", "8"] } } ] @@ -43218,161 +24215,51 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/LF", "description": "This publication contains estimates of the civilian labour force derived from the Labour Force Survey component of the Monthly Population Survey. Explanatory notes are available [here](http://www.abs.gov.au/ausstats/abs@.nsf/exnote/6202.0).
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=LF). Click on the 'i' symbols on that page for further information and links.", - "singleValuedDimensionIds": [ - "ITEM", - "TSEST", - "AGE" - ], + "singleValuedDimensionIds": ["ITEM", "TSEST", "AGE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "SEX_ABS": [ - "3" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "SEX_ABS": ["3"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "blacklist": { - "AGE": [ - "1519" - ] + "AGE": ["1519"] }, "whitelist": { - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], - "STRD": [ - "TOT", - "OPD", - "[1-3]", - "9", - "11", - "Z", - "UPD" - ], - "LFSP": [ - "TOT", - "EMP", - "[1-4]", - "7", - "Z", - "UEMP" - ], + "FMCF": ["TOT", "[1-3]", "9"], + "STRD": ["TOT", "OPD", "[1-3]", "9", "11", "Z", "UPD"], + "LFSP": ["TOT", "EMP", "[1-4]", "7", "Z", "UEMP"], "MTWP": [ "TOT", "[1-3]M", @@ -43387,58 +24274,18 @@ "234", "Z" ], - "TYPP": [ - "TOT", - "10", - "2", - "3", - "40", - "50", - "60", - "Z", - "V" - ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "TYPP": ["TOT", "10", "2", "3", "40", "50", "60", "Z", "V"], + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "": ["A[0-9]+", "T.*", "O.*"] }, "regionDimensionId": "ASGC_2010", "regionType": "ste", "selectedInitially": { - "COB": [ - "1101" - ], - "DT": [ - "5" - ], - "STATE": [ - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8" - ], - "ASGS_2011": [ - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8" - ] + "COB": ["1101"], + "DT": ["5"], + "STATE": ["1", "2", "3", "4", "5", "6", "7", "8"], + "ASGS_2011": ["1", "2", "3", "4", "5", "6", "7", "8"] } } ] @@ -43460,153 +24307,49 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_LAND_COVER", "description": "You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_LAND_COVER). Click on the 'i' symbols on that page for further information and links.", "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] - }, - "blacklist": { - "DLC_11": [ - "T" - ] - }, - "whitelist": { - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], - "STRD": [ - "TOT", - "OPD", - "[1-3]", - "9", - "11", - "Z", - "UPD" - ], - "LFSP": [ - "TOT", - "EMP", - "[1-4]", - "7", - "Z", - "UEMP" - ], + "*": ["TOT", "LFTOT"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] + }, + "blacklist": { + "DLC_11": ["T"] + }, + "whitelist": { + "FMCF": ["TOT", "[1-3]", "9"], + "STRD": ["TOT", "OPD", "[1-3]", "9", "11", "Z", "UPD"], + "LFSP": ["TOT", "EMP", "[1-4]", "7", "Z", "UEMP"], "MTWP": [ "TOT", "[1-3]M", @@ -43621,58 +24364,18 @@ "234", "Z" ], - "TYPP": [ - "TOT", - "10", - "2", - "3", - "40", - "50", - "60", - "Z", - "V" - ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "TYPP": ["TOT", "10", "2", "3", "40", "50", "60", "Z", "V"], + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "": ["A[0-9]+", "T.*", "O.*"] }, "regionDimensionId": "NRM_2012", "regionType": "nrmr", "selectedInitially": { - "COB": [ - "1101" - ], - "DT": [ - "5" - ], - "STATE": [ - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8" - ], - "ASGS_2011": [ - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8" - ] + "COB": ["1101"], + "DT": ["5"], + "STATE": ["1", "2", "3", "4", "5", "6", "7", "8"], + "ASGS_2011": ["1", "2", "3", "4", "5", "6", "7", "8"] } } ] @@ -43691,157 +24394,50 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_LAMPS", "description": "This dataset presents detailed information on agricultural land management practices used on Australian farms, using data collected from the 2011-12 Land Management Practices Survey (LaMPS). Explanatory notes are available [here](http://www.abs.gov.au/AUSSTATS/abs@.nsf/Lookup/4630.0Explanatory%20Notes12011-12?OpenDocument).
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_LAMPS). Click on the 'i' symbols on that page for further information and links.", - "singleValuedDimensionIds": [ - "MEASURE", - "MGT_PRACTICE" - ], + "singleValuedDimensionIds": ["MEASURE", "MGT_PRACTICE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "blacklist": { - "MGT_PRACTICE": [ - "HEADER_.+" - ] + "MGT_PRACTICE": ["HEADER_.+"] }, "whitelist": { - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], - "STRD": [ - "TOT", - "OPD", - "[1-3]", - "9", - "11", - "Z", - "UPD" - ], - "LFSP": [ - "TOT", - "EMP", - "[1-4]", - "7", - "Z", - "UEMP" - ], + "FMCF": ["TOT", "[1-3]", "9"], + "STRD": ["TOT", "OPD", "[1-3]", "9", "11", "Z", "UPD"], + "LFSP": ["TOT", "EMP", "[1-4]", "7", "Z", "UEMP"], "MTWP": [ "TOT", "[1-3]M", @@ -43856,57 +24452,17 @@ "234", "Z" ], - "TYPP": [ - "TOT", - "10", - "2", - "3", - "40", - "50", - "60", - "Z", - "V" - ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "TYPP": ["TOT", "10", "2", "3", "40", "50", "60", "Z", "V"], + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "": ["A[0-9]+", "T.*", "O.*"] }, "regionType": "ste", "selectedInitially": { - "COB": [ - "1101" - ], - "DT": [ - "5" - ], - "STATE": [ - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8" - ], - "ASGS_2011": [ - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8" - ] + "COB": ["1101"], + "DT": ["5"], + "STATE": ["1", "2", "3", "4", "5", "6", "7", "8"], + "ASGS_2011": ["1", "2", "3", "4", "5", "6", "7", "8"] } } ] @@ -43928,156 +24484,50 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_LAND_USE", "description": "You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_LAND_USE). Click on the 'i' symbols on that page for further information and links.", - "singleValuedDimensionIds": [ - "MEASURE" - ], + "singleValuedDimensionIds": ["MEASURE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "blacklist": { - "LU_11": [ - "T" - ] + "LU_11": ["T"] }, "whitelist": { - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], - "STRD": [ - "TOT", - "OPD", - "[1-3]", - "9", - "11", - "Z", - "UPD" - ], - "LFSP": [ - "TOT", - "EMP", - "[1-4]", - "7", - "Z", - "UEMP" - ], + "FMCF": ["TOT", "[1-3]", "9"], + "STRD": ["TOT", "OPD", "[1-3]", "9", "11", "Z", "UPD"], + "LFSP": ["TOT", "EMP", "[1-4]", "7", "Z", "UEMP"], "MTWP": [ "TOT", "[1-3]M", @@ -44092,58 +24542,18 @@ "234", "Z" ], - "TYPP": [ - "TOT", - "10", - "2", - "3", - "40", - "50", - "60", - "Z", - "V" - ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "TYPP": ["TOT", "10", "2", "3", "40", "50", "60", "Z", "V"], + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "": ["A[0-9]+", "T.*", "O.*"] }, "regionDimensionId": "NRM_2012", "regionType": "nrmr", "selectedInitially": { - "COB": [ - "1101" - ], - "DT": [ - "5" - ], - "STATE": [ - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8" - ], - "ASGS_2011": [ - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8" - ] + "COB": ["1101"], + "DT": ["5"], + "STATE": ["1", "2", "3", "4", "5", "6", "7", "8"], + "ASGS_2011": ["1", "2", "3", "4", "5", "6", "7", "8"] } } ] @@ -44162,153 +24572,49 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/LENDING_INDUSTRY", "description": "Explanatory notes are available [here](http://www.abs.gov.au/AUSSTATS/abs@.nsf/Lookup/5671.0Explanatory%20Notes1November%202016?OpenDocument).
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=LENDING_INDUSTRY). Click on the 'i' symbols on that page for further information and links.", "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "blacklist": { - "FIN_TYPE": [ - "1" - ] + "FIN_TYPE": ["1"] }, "whitelist": { - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], - "STRD": [ - "TOT", - "OPD", - "[1-3]", - "9", - "11", - "Z", - "UPD" - ], - "LFSP": [ - "TOT", - "EMP", - "[1-4]", - "7", - "Z", - "UEMP" - ], + "FMCF": ["TOT", "[1-3]", "9"], + "STRD": ["TOT", "OPD", "[1-3]", "9", "11", "Z", "UPD"], + "LFSP": ["TOT", "EMP", "[1-4]", "7", "Z", "UEMP"], "MTWP": [ "TOT", "[1-3]M", @@ -44323,57 +24629,17 @@ "234", "Z" ], - "TYPP": [ - "TOT", - "10", - "2", - "3", - "40", - "50", - "60", - "Z", - "V" - ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "TYPP": ["TOT", "10", "2", "3", "40", "50", "60", "Z", "V"], + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "": ["A[0-9]+", "T.*", "O.*"] }, "regionType": "ste", "selectedInitially": { - "COB": [ - "1101" - ], - "DT": [ - "5" - ], - "STATE": [ - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8" - ], - "ASGS_2011": [ - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8" - ] + "COB": ["1101"], + "DT": ["5"], + "STATE": ["1", "2", "3", "4", "5", "6", "7", "8"], + "ASGS_2011": ["1", "2", "3", "4", "5", "6", "7", "8"] } } ] @@ -44390,148 +24656,46 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/MERCH_EXP", "description": "Explanatory notes are available [here](http://www.abs.gov.au/ausstats/abs@.nsf/Latestproducts/CB614212CEA1F9D2CA256A5B001BD796?opendocument)
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=MERCH_EXP). Click on the 'i' symbols on that page for further information and links.", "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], - "STRD": [ - "TOT", - "OPD", - "[1-3]", - "9", - "11", - "Z", - "UPD" - ], - "LFSP": [ - "TOT", - "EMP", - "[1-4]", - "7", - "Z", - "UEMP" - ], + "FMCF": ["TOT", "[1-3]", "9"], + "STRD": ["TOT", "OPD", "[1-3]", "9", "11", "Z", "UPD"], + "LFSP": ["TOT", "EMP", "[1-4]", "7", "Z", "UEMP"], "MTWP": [ "TOT", "[1-3]M", @@ -44546,57 +24710,17 @@ "234", "Z" ], - "TYPP": [ - "TOT", - "10", - "2", - "3", - "40", - "50", - "60", - "Z", - "V" - ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "TYPP": ["TOT", "10", "2", "3", "40", "50", "60", "Z", "V"], + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "": ["A[0-9]+", "T.*", "O.*"] }, "regionType": "ste", "selectedInitially": { - "COB": [ - "1101" - ], - "DT": [ - "5" - ], - "STATE": [ - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8" - ], - "ASGS_2011": [ - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8" - ] + "COB": ["1101"], + "DT": ["5"], + "STATE": ["1", "2", "3", "4", "5", "6", "7", "8"], + "ASGS_2011": ["1", "2", "3", "4", "5", "6", "7", "8"] } } ] @@ -44613,148 +24737,46 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/MERCH_IMP", "description": "Explanatory notes are available [here](http://www.abs.gov.au/ausstats/abs@.nsf/Latestproducts/CB614212CEA1F9D2CA256A5B001BD796?opendocument)
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=MERCH_IMP). Click on the 'i' symbols on that page for further information and links.", "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], - "STRD": [ - "TOT", - "OPD", - "[1-3]", - "9", - "11", - "Z", - "UPD" - ], - "LFSP": [ - "TOT", - "EMP", - "[1-4]", - "7", - "Z", - "UEMP" - ], + "FMCF": ["TOT", "[1-3]", "9"], + "STRD": ["TOT", "OPD", "[1-3]", "9", "11", "Z", "UPD"], + "LFSP": ["TOT", "EMP", "[1-4]", "7", "Z", "UEMP"], "MTWP": [ "TOT", "[1-3]M", @@ -44769,57 +24791,17 @@ "234", "Z" ], - "TYPP": [ - "TOT", - "10", - "2", - "3", - "40", - "50", - "60", - "Z", - "V" - ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "TYPP": ["TOT", "10", "2", "3", "40", "50", "60", "Z", "V"], + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "": ["A[0-9]+", "T.*", "O.*"] }, "regionType": "ste", "selectedInitially": { - "COB": [ - "1101" - ], - "DT": [ - "5" - ], - "STATE": [ - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8" - ], - "ASGS_2011": [ - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8" - ] + "COB": ["1101"], + "DT": ["5"], + "STATE": ["1", "2", "3", "4", "5", "6", "7", "8"], + "ASGS_2011": ["1", "2", "3", "4", "5", "6", "7", "8"] } } ] @@ -44836,155 +24818,50 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/MINING_EXPLORATION", "description": "Compiled from the Mineral Exploration and Petroleum Exploration quarterly censuses conducted by the Australian Bureau of Statistics. This publication contains actual and expected exploration expenditure. Explanatory notes are available [here](http://www.abs.gov.au/AUSSTATS/abs@.nsf/Lookup/8412.0Explanatory%20Notes1Sep%202016?OpenDocument).
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=MINING_EXPLORATION). Click on the 'i' symbols on that page for further information and links.", - "singleValuedDimensionIds": [ - "MEASURE", - "TSEST" - ], + "singleValuedDimensionIds": ["MEASURE", "TSEST"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "blacklist": { "MINERAL_TYPE": "01" }, "whitelist": { - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], - "STRD": [ - "TOT", - "OPD", - "[1-3]", - "9", - "11", - "Z", - "UPD" - ], - "LFSP": [ - "TOT", - "EMP", - "[1-4]", - "7", - "Z", - "UEMP" - ], + "FMCF": ["TOT", "[1-3]", "9"], + "STRD": ["TOT", "OPD", "[1-3]", "9", "11", "Z", "UPD"], + "LFSP": ["TOT", "EMP", "[1-4]", "7", "Z", "UEMP"], "MTWP": [ "TOT", "[1-3]M", @@ -44999,58 +24876,18 @@ "234", "Z" ], - "TYPP": [ - "TOT", - "10", - "2", - "3", - "40", - "50", - "60", - "Z", - "V" - ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "TYPP": ["TOT", "10", "2", "3", "40", "50", "60", "Z", "V"], + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "": ["A[0-9]+", "T.*", "O.*"] }, "regionDimensionId": "STATE", "regionType": "ste", "selectedInitially": { - "COB": [ - "1101" - ], - "DT": [ - "5" - ], - "STATE": [ - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8" - ], - "ASGS_2011": [ - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8" - ] + "COB": ["1101"], + "DT": ["5"], + "STATE": ["1", "2", "3", "4", "5", "6", "7", "8"], + "ASGS_2011": ["1", "2", "3", "4", "5", "6", "7", "8"] } } ] @@ -45072,148 +24909,46 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_MONETARY_ACCOUNT", "description": "You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_MONETARY_ACCOUNT). Click on the 'i' symbols on that page for further information and links.", "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], - "STRD": [ - "TOT", - "OPD", - "[1-3]", - "9", - "11", - "Z", - "UPD" - ], - "LFSP": [ - "TOT", - "EMP", - "[1-4]", - "7", - "Z", - "UEMP" - ], + "FMCF": ["TOT", "[1-3]", "9"], + "STRD": ["TOT", "OPD", "[1-3]", "9", "11", "Z", "UPD"], + "LFSP": ["TOT", "EMP", "[1-4]", "7", "Z", "UEMP"], "MTWP": [ "TOT", "[1-3]M", @@ -45228,58 +24963,18 @@ "234", "Z" ], - "TYPP": [ - "TOT", - "10", - "2", - "3", - "40", - "50", - "60", - "Z", - "V" - ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "TYPP": ["TOT", "10", "2", "3", "40", "50", "60", "Z", "V"], + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "": ["A[0-9]+", "T.*", "O.*"] }, "regionDimensionId": "NRM_2012", "regionType": "nrmr", "selectedInitially": { - "COB": [ - "1101" - ], - "DT": [ - "5" - ], - "STATE": [ - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8" - ], - "ASGS_2011": [ - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8" - ] + "COB": ["1101"], + "DT": ["5"], + "STATE": ["1", "2", "3", "4", "5", "6", "7", "8"], + "ASGS_2011": ["1", "2", "3", "4", "5", "6", "7", "8"] } } ] @@ -45303,158 +24998,49 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/INTERSTATEMIGRATION_CY", "description": "You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=INTERSTATEMIGRATION_CY). Click on the 'i' symbols on that page for further information and links.", - "singleValuedDimensionIds": [ - "MEASURE" - ], + "singleValuedDimensionIds": ["MEASURE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "SEX_ABS": [ - "3" - ], - "AGE": [ - "TT", - "O15" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "SEX_ABS": ["3"], + "AGE": ["TT", "O15"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], - "STRD": [ - "TOT", - "OPD", - "[1-3]", - "9", - "11", - "Z", - "UPD" - ], - "LFSP": [ - "TOT", - "EMP", - "[1-4]", - "7", - "Z", - "UEMP" - ], + "FMCF": ["TOT", "[1-3]", "9"], + "STRD": ["TOT", "OPD", "[1-3]", "9", "11", "Z", "UPD"], + "LFSP": ["TOT", "EMP", "[1-4]", "7", "Z", "UEMP"], "MTWP": [ "TOT", "[1-3]M", @@ -45469,58 +25055,18 @@ "234", "Z" ], - "TYPP": [ - "TOT", - "10", - "2", - "3", - "40", - "50", - "60", - "Z", - "V" - ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "AGE": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "TYPP": ["TOT", "10", "2", "3", "40", "50", "60", "Z", "V"], + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "AGE": ["A[0-9]+", "T.*", "O.*"] }, "regionDimensionId": "ASGS_2011", "regionType": "ste", "selectedInitially": { - "COB": [ - "1101" - ], - "DT": [ - "5" - ], - "STATE": [ - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8" - ], - "ASGS_2011": [ - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8" - ] + "COB": ["1101"], + "DT": ["5"], + "STATE": ["1", "2", "3", "4", "5", "6", "7", "8"], + "ASGS_2011": ["1", "2", "3", "4", "5", "6", "7", "8"] } } ] @@ -45544,167 +25090,53 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_NOM_VISA_FY", "description": "You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_NOM_VISA_FY). Click on the 'i' symbols on that page for further information and links.", - "singleValuedDimensionIds": [ - "MIGRATIONTYPE" - ], + "singleValuedDimensionIds": ["MIGRATIONTYPE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "SEX_ABS": [ - "3" - ], - "AGE": [ - "TT", - "O15" - ], - "MEASURE": [ - "16" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "SEX_ABS": ["3"], + "AGE": ["TT", "O15"], + "MEASURE": ["16"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "blacklist": { - "MEASURE": [ - "1", - "9" - ] + "MEASURE": ["1", "9"] }, "whitelist": { - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], - "STRD": [ - "TOT", - "OPD", - "[1-3]", - "9", - "11", - "Z", - "UPD" - ], - "LFSP": [ - "TOT", - "EMP", - "[1-4]", - "7", - "Z", - "UEMP" - ], + "FMCF": ["TOT", "[1-3]", "9"], + "STRD": ["TOT", "OPD", "[1-3]", "9", "11", "Z", "UPD"], + "LFSP": ["TOT", "EMP", "[1-4]", "7", "Z", "UEMP"], "MTWP": [ "TOT", "[1-3]M", @@ -45719,58 +25151,18 @@ "234", "Z" ], - "TYPP": [ - "TOT", - "10", - "2", - "3", - "40", - "50", - "60", - "Z", - "V" - ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "AGE": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "TYPP": ["TOT", "10", "2", "3", "40", "50", "60", "Z", "V"], + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "AGE": ["A[0-9]+", "T.*", "O.*"] }, "regionDimensionId": "ASGS_2011", "regionType": "ste", "selectedInitially": { - "COB": [ - "1101" - ], - "DT": [ - "5" - ], - "STATE": [ - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8" - ], - "ASGS_2011": [ - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8" - ] + "COB": ["1101"], + "DT": ["5"], + "STATE": ["1", "2", "3", "4", "5", "6", "7", "8"], + "ASGS_2011": ["1", "2", "3", "4", "5", "6", "7", "8"] } } ] @@ -45794,224 +25186,75 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/NETOVERSEASMIGRATION_CY", "description": "You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=NETOVERSEASMIGRATION_CY). Click on the 'i' symbols on that page for further information and links.", - "singleValuedDimensionIds": [ - "MEASURE" - ], + "singleValuedDimensionIds": ["MEASURE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "SEX_ABS": [ - "3" - ], - "AGE": [ - "TT", - "O15" - ], - "SPC": [ - "TT" - ], + "*": ["TOT", "LFTOT"], + "SEX_ABS": ["3"], + "AGE": ["TT", "O15"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] + }, + "whitelist": { + "FMCF": ["TOT", "[1-3]", "9"], + "STRD": ["TOT", "OPD", "[1-3]", "9", "11", "Z", "UPD"], + "LFSP": ["TOT", "EMP", "[1-4]", "7", "Z", "UEMP"], "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" + "[1-3]M", + "00[1-9]", + "010", + "011", + "232", + "TA", + "BA", + "B2", + "233", + "234", + "Z" ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] - }, - "whitelist": { - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], - "STRD": [ - "TOT", - "OPD", - "[1-3]", - "9", - "11", - "Z", - "UPD" - ], - "LFSP": [ - "TOT", - "EMP", - "[1-4]", - "7", - "Z", - "UEMP" - ], - "MTWP": [ - "TOT", - "[1-3]M", - "00[1-9]", - "010", - "011", - "232", - "TA", - "BA", - "B2", - "233", - "234", - "Z" - ], - "TYPP": [ - "TOT", - "10", - "2", - "3", - "40", - "50", - "60", - "Z", - "V" - ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "AGE": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "TYPP": ["TOT", "10", "2", "3", "40", "50", "60", "Z", "V"], + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "AGE": ["A[0-9]+", "T.*", "O.*"] }, "regionDimensionId": "ASGS_2011", "regionType": "ste", "selectedInitially": { - "COB": [ - "1101" - ], - "DT": [ - "5" - ], - "STATE": [ - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8" - ], - "ASGS_2011": [ - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8" - ] + "COB": ["1101"], + "DT": ["5"], + "STATE": ["1", "2", "3", "4", "5", "6", "7", "8"], + "ASGS_2011": ["1", "2", "3", "4", "5", "6", "7", "8"] } } ] @@ -46035,167 +25278,53 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_NOM_VISA_CY", "description": "You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_NOM_VISA_CY). Click on the 'i' symbols on that page for further information and links.", - "singleValuedDimensionIds": [ - "MIGRATIONTYPE" - ], + "singleValuedDimensionIds": ["MIGRATIONTYPE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "SEX_ABS": [ - "3" - ], - "AGE": [ - "TT", - "O15" - ], - "MEASURE": [ - "16" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "SEX_ABS": ["3"], + "AGE": ["TT", "O15"], + "MEASURE": ["16"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "blacklist": { - "MEASURE": [ - "1", - "9" - ] + "MEASURE": ["1", "9"] }, "whitelist": { - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], - "STRD": [ - "TOT", - "OPD", - "[1-3]", - "9", - "11", - "Z", - "UPD" - ], - "LFSP": [ - "TOT", - "EMP", - "[1-4]", - "7", - "Z", - "UEMP" - ], + "FMCF": ["TOT", "[1-3]", "9"], + "STRD": ["TOT", "OPD", "[1-3]", "9", "11", "Z", "UPD"], + "LFSP": ["TOT", "EMP", "[1-4]", "7", "Z", "UEMP"], "MTWP": [ "TOT", "[1-3]M", @@ -46210,58 +25339,18 @@ "234", "Z" ], - "TYPP": [ - "TOT", - "10", - "2", - "3", - "40", - "50", - "60", - "Z", - "V" - ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "AGE": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "TYPP": ["TOT", "10", "2", "3", "40", "50", "60", "Z", "V"], + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "AGE": ["A[0-9]+", "T.*", "O.*"] }, "regionDimensionId": "REGION", "regionType": "ste", "selectedInitially": { - "COB": [ - "1101" - ], - "DT": [ - "5" - ], - "STATE": [ - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8" - ], - "ASGS_2011": [ - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8" - ] + "COB": ["1101"], + "DT": ["5"], + "STATE": ["1", "2", "3", "4", "5", "6", "7", "8"], + "ASGS_2011": ["1", "2", "3", "4", "5", "6", "7", "8"] } } ] @@ -46280,155 +25369,48 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_PERSONS_PROJ", "description": "The meaning of the Series I, II and III is described [here](http://www.abs.gov.au/ausstats/abs@.nsf/Lookup/3236.0main+features92011%20to%202036), although they are named Series A to C (not I to III) there.
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_PERSONS_PROJ). Click on the 'i' symbols on that page for further information and links.", - "singleValuedDimensionIds": [ - "PROJ_SERIES" - ], + "singleValuedDimensionIds": ["PROJ_SERIES"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "AGE": [ - "TT", - "O15" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "AGE": ["TT", "O15"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], - "STRD": [ - "TOT", - "OPD", - "[1-3]", - "9", - "11", - "Z", - "UPD" - ], - "LFSP": [ - "TOT", - "EMP", - "[1-4]", - "7", - "Z", - "UEMP" - ], + "FMCF": ["TOT", "[1-3]", "9"], + "STRD": ["TOT", "OPD", "[1-3]", "9", "11", "Z", "UPD"], + "LFSP": ["TOT", "EMP", "[1-4]", "7", "Z", "UEMP"], "MTWP": [ "TOT", "[1-3]M", @@ -46443,57 +25425,17 @@ "234", "Z" ], - "TYPP": [ - "TOT", - "10", - "2", - "3", - "40", - "50", - "60", - "Z", - "V" - ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "AGE": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "TYPP": ["TOT", "10", "2", "3", "40", "50", "60", "Z", "V"], + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "AGE": ["A[0-9]+", "T.*", "O.*"] }, "regionType": "ste", "selectedInitially": { - "COB": [ - "1101" - ], - "DT": [ - "5" - ], - "STATE": [ - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8" - ], - "ASGS_2011": [ - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8" - ] + "COB": ["1101"], + "DT": ["5"], + "STATE": ["1", "2", "3", "4", "5", "6", "7", "8"], + "ASGS_2011": ["1", "2", "3", "4", "5", "6", "7", "8"] } } ] @@ -46510,162 +25452,51 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/PETROLEUM_EXPLORATION", "description": "You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=PETROLEUM_EXPLORATION). Click on the 'i' symbols on that page for further information and links.", - "singleValuedDimensionIds": [ - "MEASURE", - "TSEST" - ], + "singleValuedDimensionIds": ["MEASURE", "TSEST"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "blacklist": { - "EXPLORATION_TYPE": [ - "01", - "02" - ], - "ONSHORE_OFFSHORE": [ - "01", - "02" - ] + "EXPLORATION_TYPE": ["01", "02"], + "ONSHORE_OFFSHORE": ["01", "02"] }, "whitelist": { - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], - "STRD": [ - "TOT", - "OPD", - "[1-3]", - "9", - "11", - "Z", - "UPD" - ], - "LFSP": [ - "TOT", - "EMP", - "[1-4]", - "7", - "Z", - "UEMP" - ], + "FMCF": ["TOT", "[1-3]", "9"], + "STRD": ["TOT", "OPD", "[1-3]", "9", "11", "Z", "UPD"], + "LFSP": ["TOT", "EMP", "[1-4]", "7", "Z", "UEMP"], "MTWP": [ "TOT", "[1-3]M", @@ -46680,58 +25511,18 @@ "234", "Z" ], - "TYPP": [ - "TOT", - "10", - "2", - "3", - "40", - "50", - "60", - "Z", - "V" - ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "TYPP": ["TOT", "10", "2", "3", "40", "50", "60", "Z", "V"], + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "": ["A[0-9]+", "T.*", "O.*"] }, "regionDimensionId": "STATE", "regionType": "ste", "selectedInitially": { - "COB": [ - "1101" - ], - "DT": [ - "5" - ], - "STATE": [ - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8" - ], - "ASGS_2011": [ - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8" - ] + "COB": ["1101"], + "DT": ["5"], + "STATE": ["1", "2", "3", "4", "5", "6", "7", "8"], + "ASGS_2011": ["1", "2", "3", "4", "5", "6", "7", "8"] } } ] @@ -46753,148 +25544,46 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_PHYSICAL_ACCOUNT_LC", "description": "You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_PHYSICAL_ACCOUNT_LC). Click on the 'i' symbols on that page for further information and links.", "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], - "STRD": [ - "TOT", - "OPD", - "[1-3]", - "9", - "11", - "Z", - "UPD" - ], - "LFSP": [ - "TOT", - "EMP", - "[1-4]", - "7", - "Z", - "UEMP" - ], + "FMCF": ["TOT", "[1-3]", "9"], + "STRD": ["TOT", "OPD", "[1-3]", "9", "11", "Z", "UPD"], + "LFSP": ["TOT", "EMP", "[1-4]", "7", "Z", "UEMP"], "MTWP": [ "TOT", "[1-3]M", @@ -46909,58 +25598,18 @@ "234", "Z" ], - "TYPP": [ - "TOT", - "10", - "2", - "3", - "40", - "50", - "60", - "Z", - "V" - ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "TYPP": ["TOT", "10", "2", "3", "40", "50", "60", "Z", "V"], + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "": ["A[0-9]+", "T.*", "O.*"] }, "regionDimensionId": "NRM_2012", "regionType": "nrmr", "selectedInitially": { - "COB": [ - "1101" - ], - "DT": [ - "5" - ], - "STATE": [ - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8" - ], - "ASGS_2011": [ - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8" - ] + "COB": ["1101"], + "DT": ["5"], + "STATE": ["1", "2", "3", "4", "5", "6", "7", "8"], + "ASGS_2011": ["1", "2", "3", "4", "5", "6", "7", "8"] } } ] @@ -46984,148 +25633,46 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_PHYSICAL_ACCOUNT_LU", "description": "You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_PHYSICAL_ACCOUNT_LU). Click on the 'i' symbols on that page for further information and links.", "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], - "STRD": [ - "TOT", - "OPD", - "[1-3]", - "9", - "11", - "Z", - "UPD" - ], - "LFSP": [ - "TOT", - "EMP", - "[1-4]", - "7", - "Z", - "UEMP" - ], + "FMCF": ["TOT", "[1-3]", "9"], + "STRD": ["TOT", "OPD", "[1-3]", "9", "11", "Z", "UPD"], + "LFSP": ["TOT", "EMP", "[1-4]", "7", "Z", "UEMP"], "MTWP": [ "TOT", "[1-3]M", @@ -47140,58 +25687,18 @@ "234", "Z" ], - "TYPP": [ - "TOT", - "10", - "2", - "3", - "40", - "50", - "60", - "Z", - "V" - ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "TYPP": ["TOT", "10", "2", "3", "40", "50", "60", "Z", "V"], + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "": ["A[0-9]+", "T.*", "O.*"] }, "regionDimensionId": "NRM_2012", "regionType": "nrmr", "selectedInitially": { - "COB": [ - "1101" - ], - "DT": [ - "5" - ], - "STATE": [ - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8" - ], - "ASGS_2011": [ - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8" - ] + "COB": ["1101"], + "DT": ["5"], + "STATE": ["1", "2", "3", "4", "5", "6", "7", "8"], + "ASGS_2011": ["1", "2", "3", "4", "5", "6", "7", "8"] } } ] @@ -47210,160 +25717,49 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/POP_PROJ_REGION_2012_2061", "description": "You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=POP_PROJ_REGION_2012_2061). Click on the 'i' symbols on that page for further information and links.", - "singleValuedDimensionIds": [ - "FERTILITY", - "MORTALITY", - "NOM" - ], + "singleValuedDimensionIds": ["FERTILITY", "MORTALITY", "NOM"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "SEX_ABS": [ - "3" - ], - "AGE": [ - "TT", - "O15" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "SEX_ABS": ["3"], + "AGE": ["TT", "O15"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], - "STRD": [ - "TOT", - "OPD", - "[1-3]", - "9", - "11", - "Z", - "UPD" - ], - "LFSP": [ - "TOT", - "EMP", - "[1-4]", - "7", - "Z", - "UEMP" - ], + "FMCF": ["TOT", "[1-3]", "9"], + "STRD": ["TOT", "OPD", "[1-3]", "9", "11", "Z", "UPD"], + "LFSP": ["TOT", "EMP", "[1-4]", "7", "Z", "UEMP"], "MTWP": [ "TOT", "[1-3]M", @@ -47378,57 +25774,17 @@ "234", "Z" ], - "TYPP": [ - "TOT", - "10", - "2", - "3", - "40", - "50", - "60", - "Z", - "V" - ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "AGE": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "TYPP": ["TOT", "10", "2", "3", "40", "50", "60", "Z", "V"], + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "AGE": ["A[0-9]+", "T.*", "O.*"] }, "regionType": "ste", "selectedInitially": { - "COB": [ - "1101" - ], - "DT": [ - "5" - ], - "STATE": [ - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8" - ], - "ASGS_2011": [ - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8" - ] + "COB": ["1101"], + "DT": ["5"], + "STATE": ["1", "2", "3", "4", "5", "6", "7", "8"], + "ASGS_2011": ["1", "2", "3", "4", "5", "6", "7", "8"] } } ] @@ -47445,160 +25801,49 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/POP_PROJ_2011", "description": "You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=POP_PROJ_2011). Click on the 'i' symbols on that page for further information and links.", - "singleValuedDimensionIds": [ - "FERTILITY", - "MORTALITY", - "NOM" - ], + "singleValuedDimensionIds": ["FERTILITY", "MORTALITY", "NOM"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "SEX_ABS": [ - "3" - ], - "AGE": [ - "TT", - "O15" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "SEX_ABS": ["3"], + "AGE": ["TT", "O15"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], - "STRD": [ - "TOT", - "OPD", - "[1-3]", - "9", - "11", - "Z", - "UPD" - ], - "LFSP": [ - "TOT", - "EMP", - "[1-4]", - "7", - "Z", - "UEMP" - ], + "FMCF": ["TOT", "[1-3]", "9"], + "STRD": ["TOT", "OPD", "[1-3]", "9", "11", "Z", "UPD"], + "LFSP": ["TOT", "EMP", "[1-4]", "7", "Z", "UEMP"], "MTWP": [ "TOT", "[1-3]M", @@ -47613,58 +25858,18 @@ "234", "Z" ], - "TYPP": [ - "TOT", - "10", - "2", - "3", - "40", - "50", - "60", - "Z", - "V" - ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "AGE": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "TYPP": ["TOT", "10", "2", "3", "40", "50", "60", "Z", "V"], + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "AGE": ["A[0-9]+", "T.*", "O.*"] }, "regionDimensionId": "ASGS_2011", "regionType": "aus", "selectedInitially": { - "COB": [ - "1101" - ], - "DT": [ - "5" - ], - "STATE": [ - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8" - ], - "ASGS_2011": [ - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8" - ] + "COB": ["1101"], + "DT": ["5"], + "STATE": ["1", "2", "3", "4", "5", "6", "7", "8"], + "ASGS_2011": ["1", "2", "3", "4", "5", "6", "7", "8"] } } ] @@ -47681,158 +25886,50 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/CAPEX", "description": "You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=CAPEX). Click on the 'i' symbols on that page for further information and links.", - "singleValuedDimensionIds": [ - "EXP", - "TSEST" - ], + "singleValuedDimensionIds": ["EXP", "TSEST"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "blacklist": { - "EXP": [ - "2", - "3" - ] + "EXP": ["2", "3"] }, "whitelist": { - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], - "STRD": [ - "TOT", - "OPD", - "[1-3]", - "9", - "11", - "Z", - "UPD" - ], - "LFSP": [ - "TOT", - "EMP", - "[1-4]", - "7", - "Z", - "UEMP" - ], + "FMCF": ["TOT", "[1-3]", "9"], + "STRD": ["TOT", "OPD", "[1-3]", "9", "11", "Z", "UPD"], + "LFSP": ["TOT", "EMP", "[1-4]", "7", "Z", "UEMP"], "MTWP": [ "TOT", "[1-3]M", @@ -47847,58 +25944,18 @@ "234", "Z" ], - "TYPP": [ - "TOT", - "10", - "2", - "3", - "40", - "50", - "60", - "Z", - "V" - ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "TYPP": ["TOT", "10", "2", "3", "40", "50", "60", "Z", "V"], + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "": ["A[0-9]+", "T.*", "O.*"] }, "regionDimensionId": "STATE", "regionType": "ste", "selectedInitially": { - "COB": [ - "1101" - ], - "DT": [ - "5" - ], - "STATE": [ - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8" - ], - "ASGS_2011": [ - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8" - ] + "COB": ["1101"], + "DT": ["5"], + "STATE": ["1", "2", "3", "4", "5", "6", "7", "8"], + "ASGS_2011": ["1", "2", "3", "4", "5", "6", "7", "8"] } } ] @@ -47920,158 +25977,49 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ERP_QUARTERLY", "description": "Estimated resident population (ERP) is the official estimate of the Australian population, which links people to a place of usual residence within Australia. Estimates of the resident population are based on Census counts by place of usual residence (excluding short-term overseas visitors in Australia), with an allowance for Census net undercount, to which are added the estimated number of Australian residents temporarily overseas at the time of the Census. Explanatory notes are available [here](http://www.abs.gov.au/AUSSTATS/abs@.nsf/Lookup/3412.0Explanatory%20Notes12014-15?OpenDocument).
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ERP_QUARTERLY). Click on the 'i' symbols on that page for further information and links.", - "singleValuedDimensionIds": [ - "MEASURE" - ], + "singleValuedDimensionIds": ["MEASURE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "SEX_ABS": [ - "3" - ], - "AGE": [ - "TT", - "O15" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "SEX_ABS": ["3"], + "AGE": ["TT", "O15"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], - "STRD": [ - "TOT", - "OPD", - "[1-3]", - "9", - "11", - "Z", - "UPD" - ], - "LFSP": [ - "TOT", - "EMP", - "[1-4]", - "7", - "Z", - "UEMP" - ], + "FMCF": ["TOT", "[1-3]", "9"], + "STRD": ["TOT", "OPD", "[1-3]", "9", "11", "Z", "UPD"], + "LFSP": ["TOT", "EMP", "[1-4]", "7", "Z", "UEMP"], "MTWP": [ "TOT", "[1-3]M", @@ -48086,58 +26034,18 @@ "234", "Z" ], - "TYPP": [ - "TOT", - "10", - "2", - "3", - "40", - "50", - "60", - "Z", - "V" - ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "AGE": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "TYPP": ["TOT", "10", "2", "3", "40", "50", "60", "Z", "V"], + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "AGE": ["A[0-9]+", "T.*", "O.*"] }, "regionDimensionId": "STATE", "regionType": "ste", "selectedInitially": { - "COB": [ - "1101" - ], - "DT": [ - "5" - ], - "STATE": [ - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8" - ], - "ASGS_2011": [ - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8" - ] + "COB": ["1101"], + "DT": ["5"], + "STATE": ["1", "2", "3", "4", "5", "6", "7", "8"], + "ASGS_2011": ["1", "2", "3", "4", "5", "6", "7", "8"] } } ] @@ -48156,218 +26064,72 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_REGIONAL_ASGS", "description": "Explanatory notes are available [here](http://www.abs.gov.au/AUSSTATS/abs@.nsf/Lookup/1379.0.55.001Explanatory%20Notes12009-13?OpenDocument).
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_REGIONAL_ASGS). Click on the 'i' symbols on that page for further information and links.", "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "SPC": [ - "TT" - ], + "*": ["TOT", "LFTOT"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] + }, + "whitelist": { + "MEASURE": ["SOLAR_2"], + "FMCF": ["TOT", "[1-3]", "9"], + "STRD": ["TOT", "OPD", "[1-3]", "9", "11", "Z", "UPD"], + "LFSP": ["TOT", "EMP", "[1-4]", "7", "Z", "UEMP"], "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" + "[1-3]M", + "00[1-9]", + "010", + "011", + "232", + "TA", + "BA", + "B2", + "233", + "234", + "Z" ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] - }, - "whitelist": { - "MEASURE": [ - "SOLAR_2" - ], - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], - "STRD": [ - "TOT", - "OPD", - "[1-3]", - "9", - "11", - "Z", - "UPD" - ], - "LFSP": [ - "TOT", - "EMP", - "[1-4]", - "7", - "Z", - "UEMP" - ], - "MTWP": [ - "TOT", - "[1-3]M", - "00[1-9]", - "010", - "011", - "232", - "TA", - "BA", - "B2", - "233", - "234", - "Z" - ], - "TYPP": [ - "TOT", - "10", - "2", - "3", - "40", - "50", - "60", - "Z", - "V" - ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "TYPP": ["TOT", "10", "2", "3", "40", "50", "60", "Z", "V"], + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "": ["A[0-9]+", "T.*", "O.*"] }, "selectedInitially": { - "REGIONTYPE": [ - "SA4" - ], - "COB": [ - "1101" - ], - "DT": [ - "5" - ], - "STATE": [ - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8" - ], - "ASGS_2011": [ - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8" - ] + "REGIONTYPE": ["SA4"], + "COB": ["1101"], + "DT": ["5"], + "STATE": ["1", "2", "3", "4", "5", "6", "7", "8"], + "ASGS_2011": ["1", "2", "3", "4", "5", "6", "7", "8"] } } ] @@ -48384,154 +26146,48 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_REGIONAL_ASGS", "description": "Explanatory notes are available [here](http://www.abs.gov.au/AUSSTATS/abs@.nsf/Lookup/1379.0.55.001Explanatory%20Notes12009-13?OpenDocument).
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_REGIONAL_ASGS). Click on the 'i' symbols on that page for further information and links.", - "singleValuedDimensionIds": [ - "MEASURE" - ], + "singleValuedDimensionIds": ["MEASURE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { - "MEASURE": [ - "ENERGY_[2-9]" - ], - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], - "STRD": [ - "TOT", - "OPD", - "[1-3]", - "9", - "11", - "Z", - "UPD" - ], - "LFSP": [ - "TOT", - "EMP", - "[1-4]", - "7", - "Z", - "UEMP" - ], + "MEASURE": ["ENERGY_[2-9]"], + "FMCF": ["TOT", "[1-3]", "9"], + "STRD": ["TOT", "OPD", "[1-3]", "9", "11", "Z", "UPD"], + "LFSP": ["TOT", "EMP", "[1-4]", "7", "Z", "UEMP"], "MTWP": [ "TOT", "[1-3]M", @@ -48546,59 +26202,17 @@ "234", "Z" ], - "TYPP": [ - "TOT", - "10", - "2", - "3", - "40", - "50", - "60", - "Z", - "V" - ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "TYPP": ["TOT", "10", "2", "3", "40", "50", "60", "Z", "V"], + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "": ["A[0-9]+", "T.*", "O.*"] }, "selectedInitially": { - "REGIONTYPE": [ - "SA4" - ], - "COB": [ - "1101" - ], - "DT": [ - "5" - ], - "STATE": [ - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8" - ], - "ASGS_2011": [ - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8" - ] + "REGIONTYPE": ["SA4"], + "COB": ["1101"], + "DT": ["5"], + "STATE": ["1", "2", "3", "4", "5", "6", "7", "8"], + "ASGS_2011": ["1", "2", "3", "4", "5", "6", "7", "8"] } } ] @@ -48615,154 +26229,48 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_REGIONAL_ASGS", "description": "Explanatory notes are available [here](http://www.abs.gov.au/AUSSTATS/abs@.nsf/Lookup/1379.0.55.001Explanatory%20Notes12009-13?OpenDocument).
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_REGIONAL_ASGS). Click on the 'i' symbols on that page for further information and links.", - "singleValuedDimensionIds": [ - "MEASURE" - ], + "singleValuedDimensionIds": ["MEASURE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { - "MEASURE": [ - "WATER_[2-9]" - ], - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], - "STRD": [ - "TOT", - "OPD", - "[1-3]", - "9", - "11", - "Z", - "UPD" - ], - "LFSP": [ - "TOT", - "EMP", - "[1-4]", - "7", - "Z", - "UEMP" - ], + "MEASURE": ["WATER_[2-9]"], + "FMCF": ["TOT", "[1-3]", "9"], + "STRD": ["TOT", "OPD", "[1-3]", "9", "11", "Z", "UPD"], + "LFSP": ["TOT", "EMP", "[1-4]", "7", "Z", "UEMP"], "MTWP": [ "TOT", "[1-3]M", @@ -48777,59 +26285,17 @@ "234", "Z" ], - "TYPP": [ - "TOT", - "10", - "2", - "3", - "40", - "50", - "60", - "Z", - "V" - ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "TYPP": ["TOT", "10", "2", "3", "40", "50", "60", "Z", "V"], + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "": ["A[0-9]+", "T.*", "O.*"] }, "selectedInitially": { - "REGIONTYPE": [ - "SA4" - ], - "COB": [ - "1101" - ], - "DT": [ - "5" - ], - "STATE": [ - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8" - ], - "ASGS_2011": [ - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8" - ] + "REGIONTYPE": ["SA4"], + "COB": ["1101"], + "DT": ["5"], + "STATE": ["1", "2", "3", "4", "5", "6", "7", "8"], + "ASGS_2011": ["1", "2", "3", "4", "5", "6", "7", "8"] } } ] @@ -48846,159 +26312,51 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_REGIONAL_ASGS", "description": "Explanatory notes are available [here](http://www.abs.gov.au/AUSSTATS/abs@.nsf/Lookup/1379.0.55.001Explanatory%20Notes12009-13?OpenDocument).
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_REGIONAL_ASGS). Click on the 'i' symbols on that page for further information and links.", - "singleValuedDimensionIds": [ - "MEASURE" - ], + "singleValuedDimensionIds": ["MEASURE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "blacklist": { - "MEASURE": [ - "CABEE_1" - ] + "MEASURE": ["CABEE_1"] }, "whitelist": { - "MEASURE": [ - "CABEE_.*" - ], - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], - "STRD": [ - "TOT", - "OPD", - "[1-3]", - "9", - "11", - "Z", - "UPD" - ], - "LFSP": [ - "TOT", - "EMP", - "[1-4]", - "7", - "Z", - "UEMP" - ], + "MEASURE": ["CABEE_.*"], + "FMCF": ["TOT", "[1-3]", "9"], + "STRD": ["TOT", "OPD", "[1-3]", "9", "11", "Z", "UPD"], + "LFSP": ["TOT", "EMP", "[1-4]", "7", "Z", "UEMP"], "MTWP": [ "TOT", "[1-3]M", @@ -49013,59 +26371,17 @@ "234", "Z" ], - "TYPP": [ - "TOT", - "10", - "2", - "3", - "40", - "50", - "60", - "Z", - "V" - ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "TYPP": ["TOT", "10", "2", "3", "40", "50", "60", "Z", "V"], + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "": ["A[0-9]+", "T.*", "O.*"] }, "selectedInitially": { - "REGIONTYPE": [ - "SA4" - ], - "COB": [ - "1101" - ], - "DT": [ - "5" - ], - "STATE": [ - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8" - ], - "ASGS_2011": [ - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8" - ] + "REGIONTYPE": ["SA4"], + "COB": ["1101"], + "DT": ["5"], + "STATE": ["1", "2", "3", "4", "5", "6", "7", "8"], + "ASGS_2011": ["1", "2", "3", "4", "5", "6", "7", "8"] } } ] @@ -49082,159 +26398,51 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_REGIONAL_ASGS", "description": "Explanatory notes are available [here](http://www.abs.gov.au/AUSSTATS/abs@.nsf/Lookup/1379.0.55.001Explanatory%20Notes12009-13?OpenDocument).
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_REGIONAL_ASGS). Click on the 'i' symbols on that page for further information and links.", - "singleValuedDimensionIds": [ - "MEASURE" - ], + "singleValuedDimensionIds": ["MEASURE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "blacklist": { - "MEASURE": [ - "AGRIC_[12]" - ] + "MEASURE": ["AGRIC_[12]"] }, "whitelist": { - "MEASURE": [ - "AGRIC_.*" - ], - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], - "STRD": [ - "TOT", - "OPD", - "[1-3]", - "9", - "11", - "Z", - "UPD" - ], - "LFSP": [ - "TOT", - "EMP", - "[1-4]", - "7", - "Z", - "UEMP" - ], + "MEASURE": ["AGRIC_.*"], + "FMCF": ["TOT", "[1-3]", "9"], + "STRD": ["TOT", "OPD", "[1-3]", "9", "11", "Z", "UPD"], + "LFSP": ["TOT", "EMP", "[1-4]", "7", "Z", "UEMP"], "MTWP": [ "TOT", "[1-3]M", @@ -49249,59 +26457,17 @@ "234", "Z" ], - "TYPP": [ - "TOT", - "10", - "2", - "3", - "40", - "50", - "60", - "Z", - "V" - ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "TYPP": ["TOT", "10", "2", "3", "40", "50", "60", "Z", "V"], + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "": ["A[0-9]+", "T.*", "O.*"] }, "selectedInitially": { - "REGIONTYPE": [ - "SA4" - ], - "COB": [ - "1101" - ], - "DT": [ - "5" - ], - "STATE": [ - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8" - ], - "ASGS_2011": [ - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8" - ] + "REGIONTYPE": ["SA4"], + "COB": ["1101"], + "DT": ["5"], + "STATE": ["1", "2", "3", "4", "5", "6", "7", "8"], + "ASGS_2011": ["1", "2", "3", "4", "5", "6", "7", "8"] } } ] @@ -49318,159 +26484,51 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_REGIONAL_ASGS", "description": "Explanatory notes are available [here](http://www.abs.gov.au/AUSSTATS/abs@.nsf/Lookup/1379.0.55.001Explanatory%20Notes12009-13?OpenDocument).
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_REGIONAL_ASGS). Click on the 'i' symbols on that page for further information and links.", - "singleValuedDimensionIds": [ - "MEASURE" - ], + "singleValuedDimensionIds": ["MEASURE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "blacklist": { - "MEASURE": [ - "BANKRUPT_1" - ] + "MEASURE": ["BANKRUPT_1"] }, "whitelist": { - "MEASURE": [ - "BANKRUPT_.*" - ], - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], - "STRD": [ - "TOT", - "OPD", - "[1-3]", - "9", - "11", - "Z", - "UPD" - ], - "LFSP": [ - "TOT", - "EMP", - "[1-4]", - "7", - "Z", - "UEMP" - ], + "MEASURE": ["BANKRUPT_.*"], + "FMCF": ["TOT", "[1-3]", "9"], + "STRD": ["TOT", "OPD", "[1-3]", "9", "11", "Z", "UPD"], + "LFSP": ["TOT", "EMP", "[1-4]", "7", "Z", "UEMP"], "MTWP": [ "TOT", "[1-3]M", @@ -49485,59 +26543,17 @@ "234", "Z" ], - "TYPP": [ - "TOT", - "10", - "2", - "3", - "40", - "50", - "60", - "Z", - "V" - ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "TYPP": ["TOT", "10", "2", "3", "40", "50", "60", "Z", "V"], + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "": ["A[0-9]+", "T.*", "O.*"] }, "selectedInitially": { - "REGIONTYPE": [ - "SA4" - ], - "COB": [ - "1101" - ], - "DT": [ - "5" - ], - "STATE": [ - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8" - ], - "ASGS_2011": [ - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8" - ] + "REGIONTYPE": ["SA4"], + "COB": ["1101"], + "DT": ["5"], + "STATE": ["1", "2", "3", "4", "5", "6", "7", "8"], + "ASGS_2011": ["1", "2", "3", "4", "5", "6", "7", "8"] } } ] @@ -49554,159 +26570,51 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_REGIONAL_ASGS", "description": "Explanatory notes are available [here](http://www.abs.gov.au/AUSSTATS/abs@.nsf/Lookup/1379.0.55.001Explanatory%20Notes12009-13?OpenDocument).
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_REGIONAL_ASGS). Click on the 'i' symbols on that page for further information and links.", - "singleValuedDimensionIds": [ - "MEASURE" - ], + "singleValuedDimensionIds": ["MEASURE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "blacklist": { - "MEASURE": [ - "INCOME_1" - ] + "MEASURE": ["INCOME_1"] }, "whitelist": { - "MEASURE": [ - "INCOME_.*" - ], - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], - "STRD": [ - "TOT", - "OPD", - "[1-3]", - "9", - "11", - "Z", - "UPD" - ], - "LFSP": [ - "TOT", - "EMP", - "[1-4]", - "7", - "Z", - "UEMP" - ], + "MEASURE": ["INCOME_.*"], + "FMCF": ["TOT", "[1-3]", "9"], + "STRD": ["TOT", "OPD", "[1-3]", "9", "11", "Z", "UPD"], + "LFSP": ["TOT", "EMP", "[1-4]", "7", "Z", "UEMP"], "MTWP": [ "TOT", "[1-3]M", @@ -49721,59 +26629,17 @@ "234", "Z" ], - "TYPP": [ - "TOT", - "10", - "2", - "3", - "40", - "50", - "60", - "Z", - "V" - ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "TYPP": ["TOT", "10", "2", "3", "40", "50", "60", "Z", "V"], + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "": ["A[0-9]+", "T.*", "O.*"] }, "selectedInitially": { - "REGIONTYPE": [ - "SA4" - ], - "COB": [ - "1101" - ], - "DT": [ - "5" - ], - "STATE": [ - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8" - ], - "ASGS_2011": [ - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8" - ] + "REGIONTYPE": ["SA4"], + "COB": ["1101"], + "DT": ["5"], + "STATE": ["1", "2", "3", "4", "5", "6", "7", "8"], + "ASGS_2011": ["1", "2", "3", "4", "5", "6", "7", "8"] } } ] @@ -49790,154 +26656,48 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_REGIONAL_ASGS", "description": "Explanatory notes are available [here](http://www.abs.gov.au/AUSSTATS/abs@.nsf/Lookup/1379.0.55.001Explanatory%20Notes12009-13?OpenDocument).
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_REGIONAL_ASGS). Click on the 'i' symbols on that page for further information and links.", - "singleValuedDimensionIds": [ - "MEASURE" - ], + "singleValuedDimensionIds": ["MEASURE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { - "MEASURE": [ - "MIG_[23]" - ], - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], - "STRD": [ - "TOT", - "OPD", - "[1-3]", - "9", - "11", - "Z", - "UPD" - ], - "LFSP": [ - "TOT", - "EMP", - "[1-4]", - "7", - "Z", - "UEMP" - ], + "MEASURE": ["MIG_[23]"], + "FMCF": ["TOT", "[1-3]", "9"], + "STRD": ["TOT", "OPD", "[1-3]", "9", "11", "Z", "UPD"], + "LFSP": ["TOT", "EMP", "[1-4]", "7", "Z", "UEMP"], "MTWP": [ "TOT", "[1-3]M", @@ -49952,59 +26712,17 @@ "234", "Z" ], - "TYPP": [ - "TOT", - "10", - "2", - "3", - "40", - "50", - "60", - "Z", - "V" - ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "TYPP": ["TOT", "10", "2", "3", "40", "50", "60", "Z", "V"], + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "": ["A[0-9]+", "T.*", "O.*"] }, "selectedInitially": { - "REGIONTYPE": [ - "SA4" - ], - "COB": [ - "1101" - ], - "DT": [ - "5" - ], - "STATE": [ - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8" - ], - "ASGS_2011": [ - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8" - ] + "REGIONTYPE": ["SA4"], + "COB": ["1101"], + "DT": ["5"], + "STATE": ["1", "2", "3", "4", "5", "6", "7", "8"], + "ASGS_2011": ["1", "2", "3", "4", "5", "6", "7", "8"] } } ] @@ -50034,139 +26752,48 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_REGIONAL_ASGS", "description": "Explanatory notes are available [here](http://www.abs.gov.au/AUSSTATS/abs@.nsf/Lookup/1379.0.55.001Explanatory%20Notes12009-13?OpenDocument).
    Counts are of all persons on Census night based on place of usual residence, not including overseas visitors.
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_REGIONAL_ASGS). Click on the 'i' symbols on that page for further information and links.", "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "blacklist": { - "MEASURE": [ - "WORK_TRAV_1" - ] + "MEASURE": ["WORK_TRAV_1"] }, "whitelist": { - "MEASURE": [ - "WORK_TRAV_.*" - ], - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], + "MEASURE": ["WORK_TRAV_.*"], + "FMCF": ["TOT", "[1-3]", "9"], "STRD": [ "TOT", "OPD", @@ -50176,14 +26803,7 @@ "Z", "UPD" ], - "LFSP": [ - "TOT", - "EMP", - "[1-4]", - "7", - "Z", - "UEMP" - ], + "LFSP": ["TOT", "EMP", "[1-4]", "7", "Z", "UEMP"], "MTWP": [ "TOT", "[1-3]M", @@ -50209,38 +26829,15 @@ "Z", "V" ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "": ["A[0-9]+", "T.*", "O.*"] }, "selectedInitially": { - "REGIONTYPE": [ - "SA4" - ], - "COB": [ - "1101" - ], - "DT": [ - "5" - ], - "STATE": [ - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8" - ], + "REGIONTYPE": ["SA4"], + "COB": ["1101"], + "DT": ["5"], + "STATE": ["1", "2", "3", "4", "5", "6", "7", "8"], "ASGS_2011": [ "1", "2", @@ -50273,151 +26870,47 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/RES_DWEL_ST", "description": "This dataset is a combination of residential property sales data obtained from State and Territory Land Title Office or Valuers General Offices in each capital city and real estate agents data provided to CoreLogic RP Data. The calculations are based on the exchange date of the sales and the weighting information for established houses and attached dwellings is collected through the Census of Population and Housing. Explanatory notes are available [here](http://www.abs.gov.au/ausstats/abs@.nsf/exnote/6416.0).
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=RES_DWEL_ST). Click on the 'i' symbols on that page for further information and links.", - "singleValuedDimensionIds": [ - "MEASURE" - ], + "singleValuedDimensionIds": ["MEASURE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], - "STRD": [ - "TOT", - "OPD", - "[1-3]", - "9", - "11", - "Z", - "UPD" - ], - "LFSP": [ - "TOT", - "EMP", - "[1-4]", - "7", - "Z", - "UEMP" - ], + "FMCF": ["TOT", "[1-3]", "9"], + "STRD": ["TOT", "OPD", "[1-3]", "9", "11", "Z", "UPD"], + "LFSP": ["TOT", "EMP", "[1-4]", "7", "Z", "UEMP"], "MTWP": [ "TOT", "[1-3]M", @@ -50432,58 +26925,18 @@ "234", "Z" ], - "TYPP": [ - "TOT", - "10", - "2", - "3", - "40", - "50", - "60", - "Z", - "V" - ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "TYPP": ["TOT", "10", "2", "3", "40", "50", "60", "Z", "V"], + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "": ["A[0-9]+", "T.*", "O.*"] }, "regionDimensionId": "ASGS_2011", "regionType": "ste", "selectedInitially": { - "COB": [ - "1101" - ], - "DT": [ - "5" - ], - "STATE": [ - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8" - ], - "ASGS_2011": [ - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8" - ] + "COB": ["1101"], + "DT": ["5"], + "STATE": ["1", "2", "3", "4", "5", "6", "7", "8"], + "ASGS_2011": ["1", "2", "3", "4", "5", "6", "7", "8"] } } ] @@ -50500,151 +26953,47 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/RT", "description": "You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=RT). Click on the 'i' symbols on that page for further information and links.", - "aggregatedDimensionIds": [ - "STATE" - ], + "aggregatedDimensionIds": ["STATE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], - "STRD": [ - "TOT", - "OPD", - "[1-3]", - "9", - "11", - "Z", - "UPD" - ], - "LFSP": [ - "TOT", - "EMP", - "[1-4]", - "7", - "Z", - "UEMP" - ], + "FMCF": ["TOT", "[1-3]", "9"], + "STRD": ["TOT", "OPD", "[1-3]", "9", "11", "Z", "UPD"], + "LFSP": ["TOT", "EMP", "[1-4]", "7", "Z", "UEMP"], "MTWP": [ "TOT", "[1-3]M", @@ -50659,59 +27008,17 @@ "234", "Z" ], - "TYPP": [ - "TOT", - "10", - "2", - "3", - "40", - "50", - "60", - "Z", - "V" - ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "TYPP": ["TOT", "10", "2", "3", "40", "50", "60", "Z", "V"], + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "": ["A[0-9]+", "T.*", "O.*"] }, "selectedInitially": { - "REGIONTYPE": [ - "SA4" - ], - "COB": [ - "1101" - ], - "DT": [ - "5" - ], - "STATE": [ - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8" - ], - "ASGS_2011": [ - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8" - ] + "REGIONTYPE": ["SA4"], + "COB": ["1101"], + "DT": ["5"], + "STATE": ["1", "2", "3", "4", "5", "6", "7", "8"], + "ASGS_2011": ["1", "2", "3", "4", "5", "6", "7", "8"] } } ] @@ -50728,151 +27035,47 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/NEWMVSALES", "description": "You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=NEWMVSALES). Click on the 'i' symbols on that page for further information and links.", - "aggregatedDimensionIds": [ - "STATE" - ], + "aggregatedDimensionIds": ["STATE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], - "STRD": [ - "TOT", - "OPD", - "[1-3]", - "9", - "11", - "Z", - "UPD" - ], - "LFSP": [ - "TOT", - "EMP", - "[1-4]", - "7", - "Z", - "UEMP" - ], + "FMCF": ["TOT", "[1-3]", "9"], + "STRD": ["TOT", "OPD", "[1-3]", "9", "11", "Z", "UPD"], + "LFSP": ["TOT", "EMP", "[1-4]", "7", "Z", "UEMP"], "MTWP": [ "TOT", "[1-3]M", @@ -50887,59 +27090,17 @@ "234", "Z" ], - "TYPP": [ - "TOT", - "10", - "2", - "3", - "40", - "50", - "60", - "Z", - "V" - ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "TYPP": ["TOT", "10", "2", "3", "40", "50", "60", "Z", "V"], + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "": ["A[0-9]+", "T.*", "O.*"] }, "selectedInitially": { - "REGIONTYPE": [ - "SA4" - ], - "COB": [ - "1101" - ], - "DT": [ - "5" - ], - "STATE": [ - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8" - ], - "ASGS_2011": [ - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8" - ] + "REGIONTYPE": ["SA4"], + "COB": ["1101"], + "DT": ["5"], + "STATE": ["1", "2", "3", "4", "5", "6", "7", "8"], + "ASGS_2011": ["1", "2", "3", "4", "5", "6", "7", "8"] } } ] @@ -50956,152 +27117,47 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/LABOUR_PRICE_INDEX", "description": "You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=LABOUR_PRICE_INDEX). Click on the 'i' symbols on that page for further information and links.", - "singleValuedDimensionIds": [ - "MEASURE", - "TSEST" - ], + "singleValuedDimensionIds": ["MEASURE", "TSEST"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], - "STRD": [ - "TOT", - "OPD", - "[1-3]", - "9", - "11", - "Z", - "UPD" - ], - "LFSP": [ - "TOT", - "EMP", - "[1-4]", - "7", - "Z", - "UEMP" - ], + "FMCF": ["TOT", "[1-3]", "9"], + "STRD": ["TOT", "OPD", "[1-3]", "9", "11", "Z", "UPD"], + "LFSP": ["TOT", "EMP", "[1-4]", "7", "Z", "UEMP"], "MTWP": [ "TOT", "[1-3]M", @@ -51116,57 +27172,17 @@ "234", "Z" ], - "TYPP": [ - "TOT", - "10", - "2", - "3", - "40", - "50", - "60", - "Z", - "V" - ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "TYPP": ["TOT", "10", "2", "3", "40", "50", "60", "Z", "V"], + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "": ["A[0-9]+", "T.*", "O.*"] }, "regionType": "ste", "selectedInitially": { - "COB": [ - "1101" - ], - "DT": [ - "5" - ], - "STATE": [ - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8" - ], - "ASGS_2011": [ - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8" - ] + "COB": ["1101"], + "DT": ["5"], + "STATE": ["1", "2", "3", "4", "5", "6", "7", "8"], + "ASGS_2011": ["1", "2", "3", "4", "5", "6", "7", "8"] } } ] @@ -51183,155 +27199,48 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_SEIFA_LGA", "description": "Socio-Economic Indexes for Areas (SEIFA) is a product developed by the ABS that ranks areas in Australia according to relative socio-economic advantage and disadvantage. The indexes are based on information from the five-yearly Census. Explanatory notes are available [here](http://www.abs.gov.au/AUSSTATS/abs@.nsf/Lookup/2033.0.55.001Explanatory%20Notes12011?OpenDocument).
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_SEIFA_LGA). Click on the 'i' symbols on that page for further information and links.", - "singleValuedDimensionIds": [ - "INDEX_TYPE", - "MEASURE" - ], + "singleValuedDimensionIds": ["INDEX_TYPE", "MEASURE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { - "REGIONTYPE": [ - "LGA2011" - ], - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], - "STRD": [ - "TOT", - "OPD", - "[1-3]", - "9", - "11", - "Z", - "UPD" - ], - "LFSP": [ - "TOT", - "EMP", - "[1-4]", - "7", - "Z", - "UEMP" - ], + "REGIONTYPE": ["LGA2011"], + "FMCF": ["TOT", "[1-3]", "9"], + "STRD": ["TOT", "OPD", "[1-3]", "9", "11", "Z", "UPD"], + "LFSP": ["TOT", "EMP", "[1-4]", "7", "Z", "UEMP"], "MTWP": [ "TOT", "[1-3]M", @@ -51346,61 +27255,19 @@ "234", "Z" ], - "TYPP": [ - "TOT", - "10", - "2", - "3", - "40", - "50", - "60", - "Z", - "V" - ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "TYPP": ["TOT", "10", "2", "3", "40", "50", "60", "Z", "V"], + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "": ["A[0-9]+", "T.*", "O.*"] }, "regionDimensionId": "LGA_2011", "regionType": "lga_code_2011", "selectedInitially": { - "REGIONTYPE": [ - "LGA2011" - ], - "COB": [ - "1101" - ], - "DT": [ - "5" - ], - "STATE": [ - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8" - ], - "ASGS_2011": [ - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8" - ] + "REGIONTYPE": ["LGA2011"], + "COB": ["1101"], + "DT": ["5"], + "STATE": ["1", "2", "3", "4", "5", "6", "7", "8"], + "ASGS_2011": ["1", "2", "3", "4", "5", "6", "7", "8"] } } ] @@ -51417,152 +27284,47 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/SEIFA_POA", "description": "Socio-Economic Indexes for Areas (SEIFA) is a product developed by the ABS that ranks areas in Australia according to relative socio-economic advantage and disadvantage. The indexes are based on information from the five-yearly Census. Explanatory notes are available [here](http://www.abs.gov.au/AUSSTATS/abs@.nsf/Lookup/2033.0.55.001Explanatory%20Notes12011?OpenDocument).
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=SEIFA_POA). Click on the 'i' symbols on that page for further information and links.", - "singleValuedDimensionIds": [ - "INDEX_TYPE", - "MEASURE" - ], + "singleValuedDimensionIds": ["INDEX_TYPE", "MEASURE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], - "STRD": [ - "TOT", - "OPD", - "[1-3]", - "9", - "11", - "Z", - "UPD" - ], - "LFSP": [ - "TOT", - "EMP", - "[1-4]", - "7", - "Z", - "UEMP" - ], + "FMCF": ["TOT", "[1-3]", "9"], + "STRD": ["TOT", "OPD", "[1-3]", "9", "11", "Z", "UPD"], + "LFSP": ["TOT", "EMP", "[1-4]", "7", "Z", "UEMP"], "MTWP": [ "TOT", "[1-3]M", @@ -51577,57 +27339,17 @@ "234", "Z" ], - "TYPP": [ - "TOT", - "10", - "2", - "3", - "40", - "50", - "60", - "Z", - "V" - ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "TYPP": ["TOT", "10", "2", "3", "40", "50", "60", "Z", "V"], + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "": ["A[0-9]+", "T.*", "O.*"] }, "regionDimensionId": "POA", "selectedInitially": { - "COB": [ - "1101" - ], - "DT": [ - "5" - ], - "STATE": [ - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8" - ], - "ASGS_2011": [ - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8" - ] + "COB": ["1101"], + "DT": ["5"], + "STATE": ["1", "2", "3", "4", "5", "6", "7", "8"], + "ASGS_2011": ["1", "2", "3", "4", "5", "6", "7", "8"] } } ] @@ -51644,152 +27366,47 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/SEIFA_SSC", "description": "Socio-Economic Indexes for Areas (SEIFA) is a product developed by the ABS that ranks areas in Australia according to relative socio-economic advantage and disadvantage. The indexes are based on information from the five-yearly Census. Explanatory notes are available [here](http://www.abs.gov.au/AUSSTATS/abs@.nsf/Lookup/2033.0.55.001Explanatory%20Notes12011?OpenDocument).
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=SEIFA_SSC). Click on the 'i' symbols on that page for further information and links.", - "singleValuedDimensionIds": [ - "INDEX_TYPE", - "MEASURE" - ], + "singleValuedDimensionIds": ["INDEX_TYPE", "MEASURE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], - "STRD": [ - "TOT", - "OPD", - "[1-3]", - "9", - "11", - "Z", - "UPD" - ], - "LFSP": [ - "TOT", - "EMP", - "[1-4]", - "7", - "Z", - "UEMP" - ], + "FMCF": ["TOT", "[1-3]", "9"], + "STRD": ["TOT", "OPD", "[1-3]", "9", "11", "Z", "UPD"], + "LFSP": ["TOT", "EMP", "[1-4]", "7", "Z", "UEMP"], "MTWP": [ "TOT", "[1-3]M", @@ -51804,57 +27421,17 @@ "234", "Z" ], - "TYPP": [ - "TOT", - "10", - "2", - "3", - "40", - "50", - "60", - "Z", - "V" - ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "TYPP": ["TOT", "10", "2", "3", "40", "50", "60", "Z", "V"], + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "": ["A[0-9]+", "T.*", "O.*"] }, "regionDimensionId": "SSC", "selectedInitially": { - "COB": [ - "1101" - ], - "DT": [ - "5" - ], - "STATE": [ - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8" - ], - "ASGS_2011": [ - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8" - ] + "COB": ["1101"], + "DT": ["5"], + "STATE": ["1", "2", "3", "4", "5", "6", "7", "8"], + "ASGS_2011": ["1", "2", "3", "4", "5", "6", "7", "8"] } } ] @@ -51871,152 +27448,47 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_SEIFA_SA2", "description": "Socio-Economic Indexes for Areas (SEIFA) is a product developed by the ABS that ranks areas in Australia according to relative socio-economic advantage and disadvantage. The indexes are based on information from the five-yearly Census. Explanatory notes are available [here](http://www.abs.gov.au/AUSSTATS/abs@.nsf/Lookup/2033.0.55.001Explanatory%20Notes12011?OpenDocument).
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_SEIFA_SA2). Click on the 'i' symbols on that page for further information and links.", - "singleValuedDimensionIds": [ - "INDEX_TYPE", - "MEASURE" - ], + "singleValuedDimensionIds": ["INDEX_TYPE", "MEASURE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], - "STRD": [ - "TOT", - "OPD", - "[1-3]", - "9", - "11", - "Z", - "UPD" - ], - "LFSP": [ - "TOT", - "EMP", - "[1-4]", - "7", - "Z", - "UEMP" - ], + "FMCF": ["TOT", "[1-3]", "9"], + "STRD": ["TOT", "OPD", "[1-3]", "9", "11", "Z", "UPD"], + "LFSP": ["TOT", "EMP", "[1-4]", "7", "Z", "UEMP"], "MTWP": [ "TOT", "[1-3]M", @@ -52031,61 +27503,19 @@ "234", "Z" ], - "TYPP": [ - "TOT", - "10", - "2", - "3", - "40", - "50", - "60", - "Z", - "V" - ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "TYPP": ["TOT", "10", "2", "3", "40", "50", "60", "Z", "V"], + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "": ["A[0-9]+", "T.*", "O.*"] }, "regionDimensionId": "ASGS_2011", "regionType": "sa2", "selectedInitially": { - "REGIONTYPE": [ - "SA4" - ], - "COB": [ - "1101" - ], - "DT": [ - "5" - ], - "STATE": [ - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8" - ], - "ASGS_2011": [ - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8" - ] + "REGIONTYPE": ["SA4"], + "COB": ["1101"], + "DT": ["5"], + "STATE": ["1", "2", "3", "4", "5", "6", "7", "8"], + "ASGS_2011": ["1", "2", "3", "4", "5", "6", "7", "8"] } } ] @@ -52102,160 +27532,65 @@ "items": [ { "name": "Income", - "type": "group", - "isOpen": false, - "items": [ - { - "name": "Median Income", - "type": "group", - "items": [ - { - "name": "Over time", - "type": "group", - "items": [ - { - "name": "By Statistical Area", - "type": "sdmx-json", - "id": "ABS_SDMX-JSON_INCOME_ABS_CENSUS2011_T02", - "sortValues": "id", - "showWarnings": false, - "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], - "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_T02", - "description": "Counts are of all persons on Census night based on place of usual residence, including overseas visitors.
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_CENSUS2011_T02). Click on the 'i' symbols on that page for further information and links.", - "aggregatedDimensionIds": [ - "STATE" - ], - "singleValuedDimensionIds": [ - "MEASURE" - ], - "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "type": "group", + "isOpen": false, + "items": [ + { + "name": "Median Income", + "type": "group", + "items": [ + { + "name": "Over time", + "type": "group", + "items": [ + { + "name": "By Statistical Area", + "type": "sdmx-json", + "id": "ABS_SDMX-JSON_INCOME_ABS_CENSUS2011_T02", + "sortValues": "id", + "showWarnings": false, + "cleanFootnotes": true, + "forceShowDimensionIds": ["MEASURE"], + "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_T02", + "description": "Counts are of all persons on Census night based on place of usual residence, including overseas visitors.
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_CENSUS2011_T02). Click on the 'i' symbols on that page for further information and links.", + "aggregatedDimensionIds": ["STATE"], + "singleValuedDimensionIds": ["MEASURE"], + "totalValueIds": { + "*": ["TOT", "LFTOT"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { - "MEASURE": [ - "MTPI", - "MTFI", - "MTHI" - ], - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], + "MEASURE": ["MTPI", "MTFI", "MTHI"], + "FMCF": ["TOT", "[1-3]", "9"], "STRD": [ "TOT", "OPD", @@ -52298,28 +27633,14 @@ "Z", "V" ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "": ["A[0-9]+", "T.*", "O.*"] }, "selectedInitially": { - "REGIONTYPE": [ - "SA4" - ], - "COB": [ - "1101" - ], - "DT": [ - "5" - ], + "REGIONTYPE": ["SA4"], + "COB": ["1101"], + "DT": ["5"], "STATE": [ "1", "2", @@ -52382,145 +27703,48 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_T02_LGA", "description": "Counts are of all persons on Census night based on place of usual residence, including overseas visitors.
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_CENSUS2011_T02_LGA). Click on the 'i' symbols on that page for further information and links.", - "aggregatedDimensionIds": [ - "STATE" - ], - "singleValuedDimensionIds": [ - "MEASURE" - ], + "aggregatedDimensionIds": ["STATE"], + "singleValuedDimensionIds": ["MEASURE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { - "REGIONTYPE": [ - "LGA2011" - ], - "MEASURE": [ - "MTPI", - "MTFI", - "MTHI" - ], - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], + "REGIONTYPE": ["LGA2011"], + "MEASURE": ["MTPI", "MTFI", "MTHI"], + "FMCF": ["TOT", "[1-3]", "9"], "STRD": [ "TOT", "OPD", @@ -52563,28 +27787,14 @@ "Z", "V" ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "": ["A[0-9]+", "T.*", "O.*"] }, "selectedInitially": { - "REGIONTYPE": [ - "LGA2011" - ], - "COB": [ - "1101" - ], - "DT": [ - "5" - ], + "REGIONTYPE": ["LGA2011"], + "COB": ["1101"], + "DT": ["5"], "STATE": [ "1", "2", @@ -52642,141 +27852,47 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_T02", "description": "Counts are of all persons on Census night based on place of usual residence, including overseas visitors.
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_CENSUS2011_T02). Click on the 'i' symbols on that page for further information and links.", - "aggregatedDimensionIds": [ - "STATE" - ], - "singleValuedDimensionIds": [ - "MEASURE" - ], + "aggregatedDimensionIds": ["STATE"], + "singleValuedDimensionIds": ["MEASURE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { - "MEASURE": [ - "MMORT", - "MRENT" - ], - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], + "MEASURE": ["MMORT", "MRENT"], + "FMCF": ["TOT", "[1-3]", "9"], "STRD": [ "TOT", "OPD", @@ -52786,14 +27902,7 @@ "Z", "UPD" ], - "LFSP": [ - "TOT", - "EMP", - "[1-4]", - "7", - "Z", - "UEMP" - ], + "LFSP": ["TOT", "EMP", "[1-4]", "7", "Z", "UEMP"], "MTWP": [ "TOT", "[1-3]M", @@ -52819,38 +27928,15 @@ "Z", "V" ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "": ["A[0-9]+", "T.*", "O.*"] }, "selectedInitially": { - "REGIONTYPE": [ - "SA4" - ], - "COB": [ - "1101" - ], - "DT": [ - "5" - ], - "STATE": [ - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8" - ], + "REGIONTYPE": ["SA4"], + "COB": ["1101"], + "DT": ["5"], + "STATE": ["1", "2", "3", "4", "5", "6", "7", "8"], "ASGS_2011": [ "1", "2", @@ -52896,144 +27982,48 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_T02_LGA", "description": "Counts are of all persons on Census night based on place of usual residence, including overseas visitors.
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_CENSUS2011_T02_LGA). Click on the 'i' symbols on that page for further information and links.", - "aggregatedDimensionIds": [ - "STATE" - ], - "singleValuedDimensionIds": [ - "MEASURE" - ], + "aggregatedDimensionIds": ["STATE"], + "singleValuedDimensionIds": ["MEASURE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { - "REGIONTYPE": [ - "LGA2011" - ], - "MEASURE": [ - "MMORT", - "MRENT" - ], - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], + "REGIONTYPE": ["LGA2011"], + "MEASURE": ["MMORT", "MRENT"], + "FMCF": ["TOT", "[1-3]", "9"], "STRD": [ "TOT", "OPD", @@ -53043,14 +28033,7 @@ "Z", "UPD" ], - "LFSP": [ - "TOT", - "EMP", - "[1-4]", - "7", - "Z", - "UEMP" - ], + "LFSP": ["TOT", "EMP", "[1-4]", "7", "Z", "UEMP"], "MTWP": [ "TOT", "[1-3]M", @@ -53076,38 +28059,15 @@ "Z", "V" ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "": ["A[0-9]+", "T.*", "O.*"] }, "selectedInitially": { - "REGIONTYPE": [ - "LGA2011" - ], - "COB": [ - "1101" - ], - "DT": [ - "5" - ], - "STATE": [ - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8" - ], + "REGIONTYPE": ["LGA2011"], + "COB": ["1101"], + "DT": ["5"], + "STATE": ["1", "2", "3", "4", "5", "6", "7", "8"], "ASGS_2011": [ "1", "2", @@ -53153,141 +28113,47 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_T02", "description": "Counts are of all persons on Census night based on place of usual residence, including overseas visitors.
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_CENSUS2011_T02). Click on the 'i' symbols on that page for further information and links.", - "aggregatedDimensionIds": [ - "STATE" - ], - "singleValuedDimensionIds": [ - "MEASURE" - ], + "aggregatedDimensionIds": ["STATE"], + "singleValuedDimensionIds": ["MEASURE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { - "MEASURE": [ - "AHS", - "APPB" - ], - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], + "MEASURE": ["AHS", "APPB"], + "FMCF": ["TOT", "[1-3]", "9"], "STRD": [ "TOT", "OPD", @@ -53297,14 +28163,7 @@ "Z", "UPD" ], - "LFSP": [ - "TOT", - "EMP", - "[1-4]", - "7", - "Z", - "UEMP" - ], + "LFSP": ["TOT", "EMP", "[1-4]", "7", "Z", "UEMP"], "MTWP": [ "TOT", "[1-3]M", @@ -53330,38 +28189,15 @@ "Z", "V" ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "": ["A[0-9]+", "T.*", "O.*"] }, "selectedInitially": { - "REGIONTYPE": [ - "SA4" - ], - "COB": [ - "1101" - ], - "DT": [ - "5" - ], - "STATE": [ - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8" - ], + "REGIONTYPE": ["SA4"], + "COB": ["1101"], + "DT": ["5"], + "STATE": ["1", "2", "3", "4", "5", "6", "7", "8"], "ASGS_2011": [ "1", "2", @@ -53407,144 +28243,48 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_T02_LGA", "description": "Counts are of all persons on Census night based on place of usual residence, including overseas visitors.
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_CENSUS2011_T02_LGA). Click on the 'i' symbols on that page for further information and links.", - "aggregatedDimensionIds": [ - "STATE" - ], - "singleValuedDimensionIds": [ - "MEASURE" - ], + "aggregatedDimensionIds": ["STATE"], + "singleValuedDimensionIds": ["MEASURE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { - "REGIONTYPE": [ - "LGA2011" - ], - "MEASURE": [ - "AHS", - "APPB" - ], - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], + "REGIONTYPE": ["LGA2011"], + "MEASURE": ["AHS", "APPB"], + "FMCF": ["TOT", "[1-3]", "9"], "STRD": [ "TOT", "OPD", @@ -53554,14 +28294,7 @@ "Z", "UPD" ], - "LFSP": [ - "TOT", - "EMP", - "[1-4]", - "7", - "Z", - "UEMP" - ], + "LFSP": ["TOT", "EMP", "[1-4]", "7", "Z", "UEMP"], "MTWP": [ "TOT", "[1-3]M", @@ -53587,38 +28320,15 @@ "Z", "V" ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "": ["A[0-9]+", "T.*", "O.*"] }, "selectedInitially": { - "REGIONTYPE": [ - "LGA2011" - ], - "COB": [ - "1101" - ], - "DT": [ - "5" - ], - "STATE": [ - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8" - ], + "REGIONTYPE": ["LGA2011"], + "COB": ["1101"], + "DT": ["5"], + "STATE": ["1", "2", "3", "4", "5", "6", "7", "8"], "ASGS_2011": [ "1", "2", @@ -53669,140 +28379,47 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_T02", "description": "Counts are of all persons on Census night based on place of usual residence, including overseas visitors.
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_CENSUS2011_T02). Click on the 'i' symbols on that page for further information and links.", - "aggregatedDimensionIds": [ - "STATE" - ], - "singleValuedDimensionIds": [ - "MEASURE" - ], + "aggregatedDimensionIds": ["STATE"], + "singleValuedDimensionIds": ["MEASURE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { - "MEASURE": [ - "MAGE" - ], - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], + "MEASURE": ["MAGE"], + "FMCF": ["TOT", "[1-3]", "9"], "STRD": [ "TOT", "OPD", @@ -53845,28 +28462,14 @@ "Z", "V" ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "": ["A[0-9]+", "T.*", "O.*"] }, "selectedInitially": { - "REGIONTYPE": [ - "SA4" - ], - "COB": [ - "1101" - ], - "DT": [ - "5" - ], + "REGIONTYPE": ["SA4"], + "COB": ["1101"], + "DT": ["5"], "STATE": [ "1", "2", @@ -53929,143 +28532,48 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_T02_LGA", "description": "Counts are of all persons on Census night based on place of usual residence, including overseas visitors.
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_CENSUS2011_T02_LGA). Click on the 'i' symbols on that page for further information and links.", - "aggregatedDimensionIds": [ - "STATE" - ], - "singleValuedDimensionIds": [ - "MEASURE" - ], + "aggregatedDimensionIds": ["STATE"], + "singleValuedDimensionIds": ["MEASURE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { - "REGIONTYPE": [ - "LGA2011" - ], - "MEASURE": [ - "MAGE" - ], - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], + "REGIONTYPE": ["LGA2011"], + "MEASURE": ["MAGE"], + "FMCF": ["TOT", "[1-3]", "9"], "STRD": [ "TOT", "OPD", @@ -54108,28 +28616,14 @@ "Z", "V" ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "": ["A[0-9]+", "T.*", "O.*"] }, "selectedInitially": { - "REGIONTYPE": [ - "LGA2011" - ], - "COB": [ - "1101" - ], - "DT": [ - "5" - ], + "REGIONTYPE": ["LGA2011"], + "COB": ["1101"], + "DT": ["5"], "STATE": [ "1", "2", @@ -54197,141 +28691,47 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_T03", "description": "Counts are of all persons on Census night based on place of usual residence, including overseas visitors.
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_CENSUS2011_T03). Click on the 'i' symbols on that page for further information and links.", - "aggregatedDimensionIds": [ - "STATE" - ], + "aggregatedDimensionIds": ["STATE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "MEASURE": [ - "3" - ], - "AGE": [ - "TT", - "O15" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "MEASURE": ["3"], + "AGE": ["TT", "O15"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], + "FMCF": ["TOT", "[1-3]", "9"], "STRD": [ "TOT", "OPD", @@ -54374,28 +28774,14 @@ "Z", "V" ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "AGE": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "AGE": ["A[0-9]+", "T.*", "O.*"] }, "selectedInitially": { - "REGIONTYPE": [ - "SA4" - ], - "COB": [ - "1101" - ], - "DT": [ - "5" - ], + "REGIONTYPE": ["SA4"], + "COB": ["1101"], + "DT": ["5"], "STATE": [ "1", "2", @@ -54465,144 +28851,48 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_T03_LGA", "description": "Counts are of all persons on Census night based on place of usual residence, including overseas visitors.
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_CENSUS2011_T03_LGA). Click on the 'i' symbols on that page for further information and links.", - "aggregatedDimensionIds": [ - "STATE" - ], + "aggregatedDimensionIds": ["STATE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "MEASURE": [ - "3" - ], - "AGE": [ - "TT", - "O15" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "MEASURE": ["3"], + "AGE": ["TT", "O15"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { - "REGIONTYPE": [ - "LGA2011" - ], - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], + "REGIONTYPE": ["LGA2011"], + "FMCF": ["TOT", "[1-3]", "9"], "STRD": [ "TOT", "OPD", @@ -54645,28 +28935,14 @@ "Z", "V" ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "AGE": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "AGE": ["A[0-9]+", "T.*", "O.*"] }, "selectedInitially": { - "REGIONTYPE": [ - "LGA2011" - ], - "COB": [ - "1101" - ], - "DT": [ - "5" - ], + "REGIONTYPE": ["LGA2011"], + "COB": ["1101"], + "DT": ["5"], "STATE": [ "1", "2", @@ -54736,141 +29012,47 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_T04", "description": "Counts are of all persons on Census night based on place of usual residence, including overseas visitors.
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_CENSUS2011_T04). Click on the 'i' symbols on that page for further information and links.", - "aggregatedDimensionIds": [ - "STATE" - ], + "aggregatedDimensionIds": ["STATE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "MEASURE": [ - "3" - ], - "AGE": [ - "TT", - "O15" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "MEASURE": ["3"], + "AGE": ["TT", "O15"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], + "FMCF": ["TOT", "[1-3]", "9"], "STRD": [ "TOT", "OPD", @@ -54913,28 +29095,14 @@ "Z", "V" ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "AGE": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "AGE": ["A[0-9]+", "T.*", "O.*"] }, "selectedInitially": { - "REGIONTYPE": [ - "SA4" - ], - "COB": [ - "1101" - ], - "DT": [ - "5" - ], + "REGIONTYPE": ["SA4"], + "COB": ["1101"], + "DT": ["5"], "STATE": [ "1", "2", @@ -55004,144 +29172,48 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_T04_LGA", "description": "Counts are of all persons on Census night based on place of usual residence, including overseas visitors.
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_CENSUS2011_T04_LGA). Click on the 'i' symbols on that page for further information and links.", - "aggregatedDimensionIds": [ - "STATE" - ], + "aggregatedDimensionIds": ["STATE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "MEASURE": [ - "3" - ], - "AGE": [ - "TT", - "O15" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "MEASURE": ["3"], + "AGE": ["TT", "O15"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { - "REGIONTYPE": [ - "LGA2011" - ], - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], + "REGIONTYPE": ["LGA2011"], + "FMCF": ["TOT", "[1-3]", "9"], "STRD": [ "TOT", "OPD", @@ -55184,28 +29256,14 @@ "Z", "V" ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "AGE": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "AGE": ["A[0-9]+", "T.*", "O.*"] }, "selectedInitially": { - "REGIONTYPE": [ - "LGA2011" - ], - "COB": [ - "1101" - ], - "DT": [ - "5" - ], + "REGIONTYPE": ["LGA2011"], + "COB": ["1101"], + "DT": ["5"], "STATE": [ "1", "2", @@ -55275,141 +29333,47 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_T05", "description": "Counts are of all persons on Census night based on place of usual residence, including overseas visitors.
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_CENSUS2011_T05). Click on the 'i' symbols on that page for further information and links.", - "aggregatedDimensionIds": [ - "STATE" - ], + "aggregatedDimensionIds": ["STATE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "MEASURE": [ - "3" - ], - "AGE": [ - "TT", - "O15" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "MEASURE": ["3"], + "AGE": ["TT", "O15"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], + "FMCF": ["TOT", "[1-3]", "9"], "STRD": [ "TOT", "OPD", @@ -55452,28 +29416,14 @@ "Z", "V" ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "AGE": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "AGE": ["A[0-9]+", "T.*", "O.*"] }, "selectedInitially": { - "REGIONTYPE": [ - "SA4" - ], - "COB": [ - "1101" - ], - "DT": [ - "5" - ], + "REGIONTYPE": ["SA4"], + "COB": ["1101"], + "DT": ["5"], "STATE": [ "1", "2", @@ -55543,144 +29493,48 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_T05_LGA", "description": "Counts are of all persons on Census night based on place of usual residence, including overseas visitors.
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_CENSUS2011_T05_LGA). Click on the 'i' symbols on that page for further information and links.", - "aggregatedDimensionIds": [ - "STATE" - ], + "aggregatedDimensionIds": ["STATE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "MEASURE": [ - "3" - ], - "AGE": [ - "TT", - "O15" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "MEASURE": ["3"], + "AGE": ["TT", "O15"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { - "REGIONTYPE": [ - "LGA2011" - ], - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], + "REGIONTYPE": ["LGA2011"], + "FMCF": ["TOT", "[1-3]", "9"], "STRD": [ "TOT", "OPD", @@ -55723,28 +29577,14 @@ "Z", "V" ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "AGE": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "AGE": ["A[0-9]+", "T.*", "O.*"] }, "selectedInitially": { - "REGIONTYPE": [ - "LGA2011" - ], - "COB": [ - "1101" - ], - "DT": [ - "5" - ], + "REGIONTYPE": ["LGA2011"], + "COB": ["1101"], + "DT": ["5"], "STATE": [ "1", "2", @@ -55809,141 +29649,47 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_T06", "description": "Counts are of all persons on Census night based on place of usual residence, including overseas visitors.
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_CENSUS2011_T06). Click on the 'i' symbols on that page for further information and links.", - "aggregatedDimensionIds": [ - "STATE" - ], + "aggregatedDimensionIds": ["STATE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "MEASURE": [ - "3" - ], - "AGE": [ - "TT", - "O15" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "MEASURE": ["3"], + "AGE": ["TT", "O15"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], + "FMCF": ["TOT", "[1-3]", "9"], "STRD": [ "TOT", "OPD", @@ -55986,28 +29732,14 @@ "Z", "V" ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "AGE": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "AGE": ["A[0-9]+", "T.*", "O.*"] }, "selectedInitially": { - "REGIONTYPE": [ - "SA4" - ], - "COB": [ - "1101" - ], - "DT": [ - "5" - ], + "REGIONTYPE": ["SA4"], + "COB": ["1101"], + "DT": ["5"], "STATE": [ "1", "2", @@ -56070,144 +29802,48 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_T06_LGA", "description": "Counts are of all persons on Census night based on place of usual residence, including overseas visitors.
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_CENSUS2011_T06_LGA). Click on the 'i' symbols on that page for further information and links.", - "aggregatedDimensionIds": [ - "STATE" - ], + "aggregatedDimensionIds": ["STATE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "MEASURE": [ - "3" - ], - "AGE": [ - "TT", - "O15" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "MEASURE": ["3"], + "AGE": ["TT", "O15"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { - "REGIONTYPE": [ - "LGA2011" - ], - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], + "REGIONTYPE": ["LGA2011"], + "FMCF": ["TOT", "[1-3]", "9"], "STRD": [ "TOT", "OPD", @@ -56250,28 +29886,14 @@ "Z", "V" ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "AGE": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "AGE": ["A[0-9]+", "T.*", "O.*"] }, "selectedInitially": { - "REGIONTYPE": [ - "LGA2011" - ], - "COB": [ - "1101" - ], - "DT": [ - "5" - ], + "REGIONTYPE": ["LGA2011"], + "COB": ["1101"], + "DT": ["5"], "STATE": [ "1", "2", @@ -56334,138 +29956,46 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_T07", "description": "Counts are of all persons on Census night based on place of usual residence, including overseas visitors.
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_CENSUS2011_T07). Click on the 'i' symbols on that page for further information and links.", - "aggregatedDimensionIds": [ - "STATE" - ], + "aggregatedDimensionIds": ["STATE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "AGE": [ - "TT", - "O15" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "AGE": ["TT", "O15"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], + "FMCF": ["TOT", "[1-3]", "9"], "STRD": [ "TOT", "OPD", @@ -56508,28 +30038,14 @@ "Z", "V" ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "AGE": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "AGE": ["A[0-9]+", "T.*", "O.*"] }, "selectedInitially": { - "REGIONTYPE": [ - "SA4" - ], - "COB": [ - "1101" - ], - "DT": [ - "5" - ], + "REGIONTYPE": ["SA4"], + "COB": ["1101"], + "DT": ["5"], "STATE": [ "1", "2", @@ -56592,141 +30108,47 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_T07_LGA", "description": "Counts are of all persons on Census night based on place of usual residence, including overseas visitors.
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_CENSUS2011_T07_LGA). Click on the 'i' symbols on that page for further information and links.", - "aggregatedDimensionIds": [ - "STATE" - ], + "aggregatedDimensionIds": ["STATE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "AGE": [ - "TT", - "O15" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "AGE": ["TT", "O15"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { - "REGIONTYPE": [ - "LGA2011" - ], - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], + "REGIONTYPE": ["LGA2011"], + "FMCF": ["TOT", "[1-3]", "9"], "STRD": [ "TOT", "OPD", @@ -56769,28 +30191,14 @@ "Z", "V" ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "AGE": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "AGE": ["A[0-9]+", "T.*", "O.*"] }, "selectedInitially": { - "REGIONTYPE": [ - "LGA2011" - ], - "COB": [ - "1101" - ], - "DT": [ - "5" - ], + "REGIONTYPE": ["LGA2011"], + "COB": ["1101"], + "DT": ["5"], "STATE": [ "1", "2", @@ -56858,137 +30266,46 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_T08", "description": "Counts are of all persons on Census night based on place of usual residence, including overseas visitors.
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_CENSUS2011_T08). Click on the 'i' symbols on that page for further information and links.", - "aggregatedDimensionIds": [ - "STATE" - ], + "aggregatedDimensionIds": ["STATE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "MEASURE": [ - "3" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "MEASURE": ["3"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], + "FMCF": ["TOT", "[1-3]", "9"], "STRD": [ "TOT", "OPD", @@ -57031,28 +30348,14 @@ "Z", "V" ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "": ["A[0-9]+", "T.*", "O.*"] }, "selectedInitially": { - "REGIONTYPE": [ - "SA4" - ], - "COB": [ - "1101" - ], - "DT": [ - "5" - ], + "REGIONTYPE": ["SA4"], + "COB": ["1101"], + "DT": ["5"], "STATE": [ "1", "2", @@ -57122,140 +30425,47 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_T08_LGA", "description": "Counts are of all persons on Census night based on place of usual residence, including overseas visitors.
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_CENSUS2011_T08_LGA). Click on the 'i' symbols on that page for further information and links.", - "aggregatedDimensionIds": [ - "STATE" - ], + "aggregatedDimensionIds": ["STATE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "MEASURE": [ - "3" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "MEASURE": ["3"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { - "REGIONTYPE": [ - "LGA2011" - ], - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], + "REGIONTYPE": ["LGA2011"], + "FMCF": ["TOT", "[1-3]", "9"], "STRD": [ "TOT", "OPD", @@ -57298,28 +30508,14 @@ "Z", "V" ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "": ["A[0-9]+", "T.*", "O.*"] }, "selectedInitially": { - "REGIONTYPE": [ - "LGA2011" - ], - "COB": [ - "1101" - ], - "DT": [ - "5" - ], + "REGIONTYPE": ["LGA2011"], + "COB": ["1101"], + "DT": ["5"], "STATE": [ "1", "2", @@ -57389,134 +30585,45 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_T09", "description": "Counts are of all persons on Census night based on place of usual residence, including overseas visitors.
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_CENSUS2011_T09). Click on the 'i' symbols on that page for further information and links.", - "aggregatedDimensionIds": [ - "STATE" - ], + "aggregatedDimensionIds": ["STATE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], + "FMCF": ["TOT", "[1-3]", "9"], "STRD": [ "TOT", "OPD", @@ -57559,28 +30666,14 @@ "Z", "V" ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "": ["A[0-9]+", "T.*", "O.*"] }, "selectedInitially": { - "REGIONTYPE": [ - "SA4" - ], - "COB": [ - "1101" - ], - "DT": [ - "5" - ], + "REGIONTYPE": ["SA4"], + "COB": ["1101"], + "DT": ["5"], "STATE": [ "1", "2", @@ -57650,137 +30743,46 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_T09_LGA", "description": "Counts are of all persons on Census night based on place of usual residence, including overseas visitors.
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_CENSUS2011_T09_LGA). Click on the 'i' symbols on that page for further information and links.", - "aggregatedDimensionIds": [ - "STATE" - ], + "aggregatedDimensionIds": ["STATE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { - "REGIONTYPE": [ - "LGA2011" - ], - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], + "REGIONTYPE": ["LGA2011"], + "FMCF": ["TOT", "[1-3]", "9"], "STRD": [ "TOT", "OPD", @@ -57823,28 +30825,14 @@ "Z", "V" ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "": ["A[0-9]+", "T.*", "O.*"] }, "selectedInitially": { - "REGIONTYPE": [ - "LGA2011" - ], - "COB": [ - "1101" - ], - "DT": [ - "5" - ], + "REGIONTYPE": ["LGA2011"], + "COB": ["1101"], + "DT": ["5"], "STATE": [ "1", "2", @@ -57914,137 +30902,46 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_T10", "description": "Counts are of all persons on Census night based on place of usual residence, including overseas visitors.
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_CENSUS2011_T10). Click on the 'i' symbols on that page for further information and links.", - "aggregatedDimensionIds": [ - "STATE" - ], + "aggregatedDimensionIds": ["STATE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "MEASURE": [ - "3" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "MEASURE": ["3"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], + "FMCF": ["TOT", "[1-3]", "9"], "STRD": [ "TOT", "OPD", @@ -58087,28 +30984,14 @@ "Z", "V" ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "": ["A[0-9]+", "T.*", "O.*"] }, "selectedInitially": { - "REGIONTYPE": [ - "SA4" - ], - "COB": [ - "1101" - ], - "DT": [ - "5" - ], + "REGIONTYPE": ["SA4"], + "COB": ["1101"], + "DT": ["5"], "STATE": [ "1", "2", @@ -58178,140 +31061,47 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_T10_LGA", "description": "Counts are of all persons on Census night based on place of usual residence, including overseas visitors.
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_CENSUS2011_T10_LGA). Click on the 'i' symbols on that page for further information and links.", - "aggregatedDimensionIds": [ - "STATE" - ], + "aggregatedDimensionIds": ["STATE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "MEASURE": [ - "3" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "MEASURE": ["3"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { - "REGIONTYPE": [ - "LGA2011" - ], - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], + "REGIONTYPE": ["LGA2011"], + "FMCF": ["TOT", "[1-3]", "9"], "STRD": [ "TOT", "OPD", @@ -58354,28 +31144,14 @@ "Z", "V" ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "": ["A[0-9]+", "T.*", "O.*"] }, "selectedInitially": { - "REGIONTYPE": [ - "LGA2011" - ], - "COB": [ - "1101" - ], - "DT": [ - "5" - ], + "REGIONTYPE": ["LGA2011"], + "COB": ["1101"], + "DT": ["5"], "STATE": [ "1", "2", @@ -58445,138 +31221,46 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_T11", "description": "Counts are of all persons on Census night based on place of usual residence, including overseas visitors.
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_CENSUS2011_T11). Click on the 'i' symbols on that page for further information and links.", - "aggregatedDimensionIds": [ - "STATE" - ], + "aggregatedDimensionIds": ["STATE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "AGE": [ - "TT", - "O15" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "AGE": ["TT", "O15"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], + "FMCF": ["TOT", "[1-3]", "9"], "STRD": [ "TOT", "OPD", @@ -58619,28 +31303,14 @@ "Z", "V" ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "AGE": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "AGE": ["A[0-9]+", "T.*", "O.*"] }, "selectedInitially": { - "REGIONTYPE": [ - "SA4" - ], - "COB": [ - "1101" - ], - "DT": [ - "5" - ], + "REGIONTYPE": ["SA4"], + "COB": ["1101"], + "DT": ["5"], "STATE": [ "1", "2", @@ -58710,141 +31380,47 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_T11_LGA", "description": "Counts are of all persons on Census night based on place of usual residence, including overseas visitors.
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_CENSUS2011_T11_LGA). Click on the 'i' symbols on that page for further information and links.", - "aggregatedDimensionIds": [ - "STATE" - ], + "aggregatedDimensionIds": ["STATE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "AGE": [ - "TT", - "O15" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "AGE": ["TT", "O15"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { - "REGIONTYPE": [ - "LGA2011" - ], - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], + "REGIONTYPE": ["LGA2011"], + "FMCF": ["TOT", "[1-3]", "9"], "STRD": [ "TOT", "OPD", @@ -58887,28 +31463,14 @@ "Z", "V" ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "AGE": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "AGE": ["A[0-9]+", "T.*", "O.*"] }, "selectedInitially": { - "REGIONTYPE": [ - "LGA2011" - ], - "COB": [ - "1101" - ], - "DT": [ - "5" - ], + "REGIONTYPE": ["LGA2011"], + "COB": ["1101"], + "DT": ["5"], "STATE": [ "1", "2", @@ -58973,138 +31535,46 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_T12", "description": "Counts are of all persons on Census night based on place of usual residence, including overseas visitors.
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_CENSUS2011_T12). Click on the 'i' symbols on that page for further information and links.", - "aggregatedDimensionIds": [ - "STATE" - ], + "aggregatedDimensionIds": ["STATE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "AGE": [ - "TT", - "O15" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "AGE": ["TT", "O15"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], + "FMCF": ["TOT", "[1-3]", "9"], "STRD": [ "TOT", "OPD", @@ -59147,28 +31617,14 @@ "Z", "V" ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "AGE": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "AGE": ["A[0-9]+", "T.*", "O.*"] }, "selectedInitially": { - "REGIONTYPE": [ - "SA4" - ], - "COB": [ - "1101" - ], - "DT": [ - "5" - ], + "REGIONTYPE": ["SA4"], + "COB": ["1101"], + "DT": ["5"], "STATE": [ "1", "2", @@ -59231,141 +31687,47 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_T12_LGA", "description": "Counts are of all persons on Census night based on place of usual residence, including overseas visitors.
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_CENSUS2011_T12_LGA). Click on the 'i' symbols on that page for further information and links.", - "aggregatedDimensionIds": [ - "STATE" - ], + "aggregatedDimensionIds": ["STATE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "AGE": [ - "TT", - "O15" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "AGE": ["TT", "O15"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { - "REGIONTYPE": [ - "LGA2011" - ], - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], + "REGIONTYPE": ["LGA2011"], + "FMCF": ["TOT", "[1-3]", "9"], "STRD": [ "TOT", "OPD", @@ -59408,28 +31770,14 @@ "Z", "V" ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "AGE": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "AGE": ["A[0-9]+", "T.*", "O.*"] }, "selectedInitially": { - "REGIONTYPE": [ - "LGA2011" - ], - "COB": [ - "1101" - ], - "DT": [ - "5" - ], + "REGIONTYPE": ["LGA2011"], + "COB": ["1101"], + "DT": ["5"], "STATE": [ "1", "2", @@ -59497,137 +31845,46 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_T13", "description": "Not all the data available in this dataset is displayed here.
    Counts are of all persons on Census night based on place of usual residence, including overseas visitors.
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_CENSUS2011_T13). Click on the 'i' symbols on that page for further information and links.", - "aggregatedDimensionIds": [ - "STATE" - ], + "aggregatedDimensionIds": ["STATE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "MEASURE": [ - "3" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "MEASURE": ["3"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], + "FMCF": ["TOT", "[1-3]", "9"], "STRD": [ "TOT", "OPD", @@ -59670,28 +31927,14 @@ "Z", "V" ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "": ["A[0-9]+", "T.*", "O.*"] }, "selectedInitially": { - "REGIONTYPE": [ - "SA4" - ], - "COB": [ - "1101" - ], - "DT": [ - "5" - ], + "REGIONTYPE": ["SA4"], + "COB": ["1101"], + "DT": ["5"], "STATE": [ "1", "2", @@ -59761,140 +32004,47 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_T13_LGA", "description": "Not all the data available in this dataset is displayed here.
    Counts are of all persons on Census night based on place of usual residence, including overseas visitors.
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_CENSUS2011_T13_LGA). Click on the 'i' symbols on that page for further information and links.", - "aggregatedDimensionIds": [ - "STATE" - ], + "aggregatedDimensionIds": ["STATE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "MEASURE": [ - "3" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "MEASURE": ["3"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { - "REGIONTYPE": [ - "LGA2011" - ], - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], + "REGIONTYPE": ["LGA2011"], + "FMCF": ["TOT", "[1-3]", "9"], "STRD": [ "TOT", "OPD", @@ -59937,28 +32087,14 @@ "Z", "V" ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "": ["A[0-9]+", "T.*", "O.*"] }, "selectedInitially": { - "REGIONTYPE": [ - "LGA2011" - ], - "COB": [ - "1101" - ], - "DT": [ - "5" - ], + "REGIONTYPE": ["LGA2011"], + "COB": ["1101"], + "DT": ["5"], "STATE": [ "1", "2", @@ -60023,139 +32159,48 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_T14", "description": "Counts are of all persons on Census night based on place of usual residence, including overseas visitors.
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_CENSUS2011_T14). Click on the 'i' symbols on that page for further information and links.", - "aggregatedDimensionIds": [ - "STATE" - ], + "aggregatedDimensionIds": ["STATE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "blacklist": { - "STRD": [ - "1" - ] + "STRD": ["1"] }, "whitelist": { - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], + "FMCF": ["TOT", "[1-3]", "9"], "STRD": [ "TOT", "OPD", @@ -60198,28 +32243,14 @@ "Z", "V" ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "": ["A[0-9]+", "T.*", "O.*"] }, "selectedInitially": { - "REGIONTYPE": [ - "SA4" - ], - "COB": [ - "1101" - ], - "DT": [ - "5" - ], + "REGIONTYPE": ["SA4"], + "COB": ["1101"], + "DT": ["5"], "STATE": [ "1", "2", @@ -60282,142 +32313,49 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_T14_LGA", "description": "Counts are of all persons on Census night based on place of usual residence, including overseas visitors.
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_CENSUS2011_T14_LGA). Click on the 'i' symbols on that page for further information and links.", - "aggregatedDimensionIds": [ - "STATE" - ], + "aggregatedDimensionIds": ["STATE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "blacklist": { - "STRD": [ - "1" - ] + "STRD": ["1"] }, "whitelist": { - "REGIONTYPE": [ - "LGA2011" - ], - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], + "REGIONTYPE": ["LGA2011"], + "FMCF": ["TOT", "[1-3]", "9"], "STRD": [ "TOT", "OPD", @@ -60460,28 +32398,14 @@ "Z", "V" ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "": ["A[0-9]+", "T.*", "O.*"] }, "selectedInitially": { - "REGIONTYPE": [ - "LGA2011" - ], - "COB": [ - "1101" - ], - "DT": [ - "5" - ], + "REGIONTYPE": ["LGA2011"], + "COB": ["1101"], + "DT": ["5"], "STATE": [ "1", "2", @@ -60544,139 +32468,48 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_T15", "description": "Counts are of all persons on Census night based on place of usual residence, including overseas visitors.
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_CENSUS2011_T15). Click on the 'i' symbols on that page for further information and links.", - "aggregatedDimensionIds": [ - "STATE" - ], + "aggregatedDimensionIds": ["STATE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "blacklist": { - "STRD": [ - "1" - ] + "STRD": ["1"] }, "whitelist": { - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], + "FMCF": ["TOT", "[1-3]", "9"], "STRD": [ "TOT", "OPD", @@ -60719,28 +32552,14 @@ "Z", "V" ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "": ["A[0-9]+", "T.*", "O.*"] }, "selectedInitially": { - "REGIONTYPE": [ - "SA4" - ], - "COB": [ - "1101" - ], - "DT": [ - "5" - ], + "REGIONTYPE": ["SA4"], + "COB": ["1101"], + "DT": ["5"], "STATE": [ "1", "2", @@ -60803,142 +32622,49 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_T15_LGA", "description": "Counts are of all persons on Census night based on place of usual residence, including overseas visitors.
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_CENSUS2011_T15_LGA). Click on the 'i' symbols on that page for further information and links.", - "aggregatedDimensionIds": [ - "STATE" - ], + "aggregatedDimensionIds": ["STATE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "blacklist": { - "STRD": [ - "1" - ] + "STRD": ["1"] }, "whitelist": { - "REGIONTYPE": [ - "LGA2011" - ], - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], + "REGIONTYPE": ["LGA2011"], + "FMCF": ["TOT", "[1-3]", "9"], "STRD": [ "TOT", "OPD", @@ -60981,28 +32707,14 @@ "Z", "V" ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "": ["A[0-9]+", "T.*", "O.*"] }, "selectedInitially": { - "REGIONTYPE": [ - "LGA2011" - ], - "COB": [ - "1101" - ], - "DT": [ - "5" - ], + "REGIONTYPE": ["LGA2011"], + "COB": ["1101"], + "DT": ["5"], "STATE": [ "1", "2", @@ -61065,139 +32777,48 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_T16", "description": "Counts are of all persons on Census night based on place of usual residence, including overseas visitors.
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_CENSUS2011_T16). Click on the 'i' symbols on that page for further information and links.", - "aggregatedDimensionIds": [ - "STATE" - ], + "aggregatedDimensionIds": ["STATE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "blacklist": { - "STRD": [ - "1" - ] + "STRD": ["1"] }, "whitelist": { - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], + "FMCF": ["TOT", "[1-3]", "9"], "STRD": [ "TOT", "OPD", @@ -61240,28 +32861,14 @@ "Z", "V" ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "": ["A[0-9]+", "T.*", "O.*"] }, "selectedInitially": { - "REGIONTYPE": [ - "SA4" - ], - "COB": [ - "1101" - ], - "DT": [ - "5" - ], + "REGIONTYPE": ["SA4"], + "COB": ["1101"], + "DT": ["5"], "STATE": [ "1", "2", @@ -61324,142 +32931,49 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_T16_LGA", "description": "Counts are of all persons on Census night based on place of usual residence, including overseas visitors.
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_CENSUS2011_T16_LGA). Click on the 'i' symbols on that page for further information and links.", - "aggregatedDimensionIds": [ - "STATE" - ], + "aggregatedDimensionIds": ["STATE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "blacklist": { - "STRD": [ - "1" - ] + "STRD": ["1"] }, "whitelist": { - "REGIONTYPE": [ - "LGA2011" - ], - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], + "REGIONTYPE": ["LGA2011"], + "FMCF": ["TOT", "[1-3]", "9"], "STRD": [ "TOT", "OPD", @@ -61502,28 +33016,14 @@ "Z", "V" ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "": ["A[0-9]+", "T.*", "O.*"] }, "selectedInitially": { - "REGIONTYPE": [ - "LGA2011" - ], - "COB": [ - "1101" - ], - "DT": [ - "5" - ], + "REGIONTYPE": ["LGA2011"], + "COB": ["1101"], + "DT": ["5"], "STATE": [ "1", "2", @@ -61586,139 +33086,48 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_T17", "description": "Counts are of all persons on Census night based on place of usual residence, including overseas visitors.
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_CENSUS2011_T17). Click on the 'i' symbols on that page for further information and links.", - "aggregatedDimensionIds": [ - "STATE" - ], + "aggregatedDimensionIds": ["STATE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "blacklist": { - "STRD": [ - "1" - ] + "STRD": ["1"] }, "whitelist": { - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], + "FMCF": ["TOT", "[1-3]", "9"], "STRD": [ "TOT", "OPD", @@ -61761,28 +33170,14 @@ "Z", "V" ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "": ["A[0-9]+", "T.*", "O.*"] }, "selectedInitially": { - "REGIONTYPE": [ - "SA4" - ], - "COB": [ - "1101" - ], - "DT": [ - "5" - ], + "REGIONTYPE": ["SA4"], + "COB": ["1101"], + "DT": ["5"], "STATE": [ "1", "2", @@ -61845,142 +33240,49 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_T17_LGA", "description": "Counts are of all persons on Census night based on place of usual residence, including overseas visitors.
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_CENSUS2011_T17_LGA). Click on the 'i' symbols on that page for further information and links.", - "aggregatedDimensionIds": [ - "STATE" - ], + "aggregatedDimensionIds": ["STATE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "blacklist": { - "STRD": [ - "1" - ] + "STRD": ["1"] }, "whitelist": { - "REGIONTYPE": [ - "LGA2011" - ], - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], + "REGIONTYPE": ["LGA2011"], + "FMCF": ["TOT", "[1-3]", "9"], "STRD": [ "TOT", "OPD", @@ -62023,28 +33325,14 @@ "Z", "V" ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "": ["A[0-9]+", "T.*", "O.*"] }, "selectedInitially": { - "REGIONTYPE": [ - "LGA2011" - ], - "COB": [ - "1101" - ], - "DT": [ - "5" - ], + "REGIONTYPE": ["LGA2011"], + "COB": ["1101"], + "DT": ["5"], "STATE": [ "1", "2", @@ -62107,139 +33395,48 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_T18", "description": "Counts are of all persons on Census night based on place of usual residence, including overseas visitors.
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_CENSUS2011_T18). Click on the 'i' symbols on that page for further information and links.", - "aggregatedDimensionIds": [ - "STATE" - ], + "aggregatedDimensionIds": ["STATE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "blacklist": { - "STRD": [ - "1" - ] + "STRD": ["1"] }, "whitelist": { - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], + "FMCF": ["TOT", "[1-3]", "9"], "STRD": [ "TOT", "OPD", @@ -62282,28 +33479,14 @@ "Z", "V" ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "": ["A[0-9]+", "T.*", "O.*"] }, "selectedInitially": { - "REGIONTYPE": [ - "SA4" - ], - "COB": [ - "1101" - ], - "DT": [ - "5" - ], + "REGIONTYPE": ["SA4"], + "COB": ["1101"], + "DT": ["5"], "STATE": [ "1", "2", @@ -62366,142 +33549,49 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_T18_LGA", "description": "Counts are of all persons on Census night based on place of usual residence, including overseas visitors.
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_CENSUS2011_T18_LGA). Click on the 'i' symbols on that page for further information and links.", - "aggregatedDimensionIds": [ - "STATE" - ], + "aggregatedDimensionIds": ["STATE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "blacklist": { - "STRD": [ - "1" - ] + "STRD": ["1"] }, "whitelist": { - "REGIONTYPE": [ - "LGA2011" - ], - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], + "REGIONTYPE": ["LGA2011"], + "FMCF": ["TOT", "[1-3]", "9"], "STRD": [ "TOT", "OPD", @@ -62544,28 +33634,14 @@ "Z", "V" ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "": ["A[0-9]+", "T.*", "O.*"] }, "selectedInitially": { - "REGIONTYPE": [ - "LGA2011" - ], - "COB": [ - "1101" - ], - "DT": [ - "5" - ], + "REGIONTYPE": ["LGA2011"], + "COB": ["1101"], + "DT": ["5"], "STATE": [ "1", "2", @@ -62628,134 +33704,45 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_T19", "description": "Counts are of all persons on Census night based on place of usual residence, including overseas visitors.
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_CENSUS2011_T19). Click on the 'i' symbols on that page for further information and links.", - "aggregatedDimensionIds": [ - "STATE" - ], + "aggregatedDimensionIds": ["STATE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], + "FMCF": ["TOT", "[1-3]", "9"], "STRD": [ "TOT", "OPD", @@ -62798,28 +33785,14 @@ "Z", "V" ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "": ["A[0-9]+", "T.*", "O.*"] }, "selectedInitially": { - "REGIONTYPE": [ - "SA4" - ], - "COB": [ - "1101" - ], - "DT": [ - "5" - ], + "REGIONTYPE": ["SA4"], + "COB": ["1101"], + "DT": ["5"], "STATE": [ "1", "2", @@ -62882,137 +33855,46 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_T19_LGA", "description": "Counts are of all persons on Census night based on place of usual residence, including overseas visitors.
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_CENSUS2011_T19_LGA). Click on the 'i' symbols on that page for further information and links.", - "aggregatedDimensionIds": [ - "STATE" - ], + "aggregatedDimensionIds": ["STATE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { - "REGIONTYPE": [ - "LGA2011" - ], - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], + "REGIONTYPE": ["LGA2011"], + "FMCF": ["TOT", "[1-3]", "9"], "STRD": [ "TOT", "OPD", @@ -63055,28 +33937,14 @@ "Z", "V" ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "": ["A[0-9]+", "T.*", "O.*"] }, "selectedInitially": { - "REGIONTYPE": [ - "LGA2011" - ], - "COB": [ - "1101" - ], - "DT": [ - "5" - ], + "REGIONTYPE": ["LGA2011"], + "COB": ["1101"], + "DT": ["5"], "STATE": [ "1", "2", @@ -63139,140 +34007,48 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_T20", "description": "Counts are of all persons on Census night based on place of usual residence, including overseas visitors.
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_CENSUS2011_T20). Click on the 'i' symbols on that page for further information and links.", - "aggregatedDimensionIds": [ - "STATE" - ], + "aggregatedDimensionIds": ["STATE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "blacklist": { - "MEASURE": [ - "1", - "2" - ] + "MEASURE": ["1", "2"] }, "whitelist": { - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], + "FMCF": ["TOT", "[1-3]", "9"], "STRD": [ "TOT", "OPD", @@ -63315,28 +34091,14 @@ "Z", "V" ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "": ["A[0-9]+", "T.*", "O.*"] }, "selectedInitially": { - "REGIONTYPE": [ - "SA4" - ], - "COB": [ - "1101" - ], - "DT": [ - "5" - ], + "REGIONTYPE": ["SA4"], + "COB": ["1101"], + "DT": ["5"], "STATE": [ "1", "2", @@ -63399,143 +34161,49 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_T20_LGA", "description": "Counts are of all persons on Census night based on place of usual residence, including overseas visitors.
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_CENSUS2011_T20_LGA). Click on the 'i' symbols on that page for further information and links.", - "aggregatedDimensionIds": [ - "STATE" - ], + "aggregatedDimensionIds": ["STATE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "blacklist": { - "MEASURE": [ - "1", - "2" - ] + "MEASURE": ["1", "2"] }, "whitelist": { - "REGIONTYPE": [ - "LGA2011" - ], - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], + "REGIONTYPE": ["LGA2011"], + "FMCF": ["TOT", "[1-3]", "9"], "STRD": [ "TOT", "OPD", @@ -63578,28 +34246,14 @@ "Z", "V" ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "": ["A[0-9]+", "T.*", "O.*"] }, "selectedInitially": { - "REGIONTYPE": [ - "LGA2011" - ], - "COB": [ - "1101" - ], - "DT": [ - "5" - ], + "REGIONTYPE": ["LGA2011"], + "COB": ["1101"], + "DT": ["5"], "STATE": [ "1", "2", @@ -63662,140 +34316,48 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_T21", "description": "Counts are of all persons on Census night based on place of usual residence, including overseas visitors.
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_CENSUS2011_T21). Click on the 'i' symbols on that page for further information and links.", - "aggregatedDimensionIds": [ - "STATE" - ], + "aggregatedDimensionIds": ["STATE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "blacklist": { - "MEASURE": [ - "1", - "2" - ] + "MEASURE": ["1", "2"] }, "whitelist": { - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], + "FMCF": ["TOT", "[1-3]", "9"], "STRD": [ "TOT", "OPD", @@ -63838,28 +34400,14 @@ "Z", "V" ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "": ["A[0-9]+", "T.*", "O.*"] }, "selectedInitially": { - "REGIONTYPE": [ - "SA4" - ], - "COB": [ - "1101" - ], - "DT": [ - "5" - ], + "REGIONTYPE": ["SA4"], + "COB": ["1101"], + "DT": ["5"], "STATE": [ "1", "2", @@ -63922,143 +34470,49 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_T21_LGA", "description": "Counts are of all persons on Census night based on place of usual residence, including overseas visitors.
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_CENSUS2011_T21_LGA). Click on the 'i' symbols on that page for further information and links.", - "aggregatedDimensionIds": [ - "STATE" - ], + "aggregatedDimensionIds": ["STATE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "blacklist": { - "MEASURE": [ - "1", - "2" - ] + "MEASURE": ["1", "2"] }, "whitelist": { - "REGIONTYPE": [ - "LGA2011" - ], - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], + "REGIONTYPE": ["LGA2011"], + "FMCF": ["TOT", "[1-3]", "9"], "STRD": [ "TOT", "OPD", @@ -64101,28 +34555,14 @@ "Z", "V" ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "": ["A[0-9]+", "T.*", "O.*"] }, "selectedInitially": { - "REGIONTYPE": [ - "LGA2011" - ], - "COB": [ - "1101" - ], - "DT": [ - "5" - ], + "REGIONTYPE": ["LGA2011"], + "COB": ["1101"], + "DT": ["5"], "STATE": [ "1", "2", @@ -64185,134 +34625,45 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_T22", "description": "Counts are of all persons on Census night based on place of usual residence, including overseas visitors.
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_CENSUS2011_T22). Click on the 'i' symbols on that page for further information and links.", - "aggregatedDimensionIds": [ - "STATE" - ], + "aggregatedDimensionIds": ["STATE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], + "FMCF": ["TOT", "[1-3]", "9"], "STRD": [ "TOT", "OPD", @@ -64355,28 +34706,14 @@ "Z", "V" ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "": ["A[0-9]+", "T.*", "O.*"] }, "selectedInitially": { - "REGIONTYPE": [ - "SA4" - ], - "COB": [ - "1101" - ], - "DT": [ - "5" - ], + "REGIONTYPE": ["SA4"], + "COB": ["1101"], + "DT": ["5"], "STATE": [ "1", "2", @@ -64439,137 +34776,46 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_T22_LGA", "description": "Counts are of all persons on Census night based on place of usual residence, including overseas visitors.
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_CENSUS2011_T22_LGA). Click on the 'i' symbols on that page for further information and links.", - "aggregatedDimensionIds": [ - "STATE" - ], + "aggregatedDimensionIds": ["STATE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { - "REGIONTYPE": [ - "LGA2011" - ], - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], + "REGIONTYPE": ["LGA2011"], + "FMCF": ["TOT", "[1-3]", "9"], "STRD": [ "TOT", "OPD", @@ -64612,28 +34858,14 @@ "Z", "V" ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "": ["A[0-9]+", "T.*", "O.*"] }, "selectedInitially": { - "REGIONTYPE": [ - "LGA2011" - ], - "COB": [ - "1101" - ], - "DT": [ - "5" - ], + "REGIONTYPE": ["LGA2011"], + "COB": ["1101"], + "DT": ["5"], "STATE": [ "1", "2", @@ -64696,134 +34928,45 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_T23", "description": "Counts are of all persons on Census night based on place of usual residence, including overseas visitors.
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_CENSUS2011_T23). Click on the 'i' symbols on that page for further information and links.", - "aggregatedDimensionIds": [ - "STATE" - ], + "aggregatedDimensionIds": ["STATE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], + "FMCF": ["TOT", "[1-3]", "9"], "STRD": [ "TOT", "OPD", @@ -64866,28 +35009,14 @@ "Z", "V" ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "": ["A[0-9]+", "T.*", "O.*"] }, "selectedInitially": { - "REGIONTYPE": [ - "SA4" - ], - "COB": [ - "1101" - ], - "DT": [ - "5" - ], + "REGIONTYPE": ["SA4"], + "COB": ["1101"], + "DT": ["5"], "STATE": [ "1", "2", @@ -64950,137 +35079,46 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_T23_LGA", "description": "Counts are of all persons on Census night based on place of usual residence, including overseas visitors.
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_CENSUS2011_T23_LGA). Click on the 'i' symbols on that page for further information and links.", - "aggregatedDimensionIds": [ - "STATE" - ], + "aggregatedDimensionIds": ["STATE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { - "REGIONTYPE": [ - "LGA2011" - ], - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], + "REGIONTYPE": ["LGA2011"], + "FMCF": ["TOT", "[1-3]", "9"], "STRD": [ "TOT", "OPD", @@ -65123,28 +35161,14 @@ "Z", "V" ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "": ["A[0-9]+", "T.*", "O.*"] }, "selectedInitially": { - "REGIONTYPE": [ - "LGA2011" - ], - "COB": [ - "1101" - ], - "DT": [ - "5" - ], + "REGIONTYPE": ["LGA2011"], + "COB": ["1101"], + "DT": ["5"], "STATE": [ "1", "2", @@ -65207,134 +35231,45 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_T24", "description": "Counts are of all persons on Census night based on place of usual residence, including overseas visitors.
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_CENSUS2011_T24). Click on the 'i' symbols on that page for further information and links.", - "aggregatedDimensionIds": [ - "STATE" - ], + "aggregatedDimensionIds": ["STATE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], + "FMCF": ["TOT", "[1-3]", "9"], "STRD": [ "TOT", "OPD", @@ -65377,28 +35312,14 @@ "Z", "V" ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "": ["A[0-9]+", "T.*", "O.*"] }, "selectedInitially": { - "REGIONTYPE": [ - "SA4" - ], - "COB": [ - "1101" - ], - "DT": [ - "5" - ], + "REGIONTYPE": ["SA4"], + "COB": ["1101"], + "DT": ["5"], "STATE": [ "1", "2", @@ -65461,137 +35382,46 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_T24_LGA", "description": "Counts are of all persons on Census night based on place of usual residence, including overseas visitors.
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_CENSUS2011_T24_LGA). Click on the 'i' symbols on that page for further information and links.", - "aggregatedDimensionIds": [ - "STATE" - ], + "aggregatedDimensionIds": ["STATE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { - "REGIONTYPE": [ - "LGA2011" - ], - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], + "REGIONTYPE": ["LGA2011"], + "FMCF": ["TOT", "[1-3]", "9"], "STRD": [ "TOT", "OPD", @@ -65634,28 +35464,14 @@ "Z", "V" ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "": ["A[0-9]+", "T.*", "O.*"] }, "selectedInitially": { - "REGIONTYPE": [ - "LGA2011" - ], - "COB": [ - "1101" - ], - "DT": [ - "5" - ], + "REGIONTYPE": ["LGA2011"], + "COB": ["1101"], + "DT": ["5"], "STATE": [ "1", "2", @@ -65718,134 +35534,45 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_T25", "description": "Not all the data available in this dataset is displayed here.
    Counts are of all persons on Census night based on place of usual residence, including overseas visitors.
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_CENSUS2011_T25). Click on the 'i' symbols on that page for further information and links.", - "aggregatedDimensionIds": [ - "STATE" - ], + "aggregatedDimensionIds": ["STATE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], + "FMCF": ["TOT", "[1-3]", "9"], "STRD": [ "TOT", "OPD", @@ -65888,28 +35615,14 @@ "Z", "V" ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "": ["A[0-9]+", "T.*", "O.*"] }, "selectedInitially": { - "REGIONTYPE": [ - "SA4" - ], - "COB": [ - "1101" - ], - "DT": [ - "5" - ], + "REGIONTYPE": ["SA4"], + "COB": ["1101"], + "DT": ["5"], "STATE": [ "1", "2", @@ -65972,137 +35685,46 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_T25_LGA", "description": "Not all the data available in this dataset is displayed here.
    Counts are of all persons on Census night based on place of usual residence, including overseas visitors.
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_CENSUS2011_T25_LGA). Click on the 'i' symbols on that page for further information and links.", - "aggregatedDimensionIds": [ - "STATE" - ], + "aggregatedDimensionIds": ["STATE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { - "REGIONTYPE": [ - "LGA2011" - ], - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], + "REGIONTYPE": ["LGA2011"], + "FMCF": ["TOT", "[1-3]", "9"], "STRD": [ "TOT", "OPD", @@ -66145,28 +35767,14 @@ "Z", "V" ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "": ["A[0-9]+", "T.*", "O.*"] }, "selectedInitially": { - "REGIONTYPE": [ - "LGA2011" - ], - "COB": [ - "1101" - ], - "DT": [ - "5" - ], + "REGIONTYPE": ["LGA2011"], + "COB": ["1101"], + "DT": ["5"], "STATE": [ "1", "2", @@ -66229,140 +35837,47 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_T26_LGA", "description": "Counts are of all persons on Census night based on place of usual residence, including overseas visitors.
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_CENSUS2011_T26_LGA). Click on the 'i' symbols on that page for further information and links.", - "aggregatedDimensionIds": [ - "STATE" - ], - "singleValuedDimensionIds": [ - "MEASURE" - ], + "aggregatedDimensionIds": ["STATE"], + "singleValuedDimensionIds": ["MEASURE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { - "REGIONTYPE": [ - "LGA2011" - ], - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], + "REGIONTYPE": ["LGA2011"], + "FMCF": ["TOT", "[1-3]", "9"], "STRD": [ "TOT", "OPD", @@ -66405,28 +35920,14 @@ "Z", "V" ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "": ["A[0-9]+", "T.*", "O.*"] }, "selectedInitially": { - "REGIONTYPE": [ - "LGA2011" - ], - "COB": [ - "1101" - ], - "DT": [ - "5" - ], + "REGIONTYPE": ["LGA2011"], + "COB": ["1101"], + "DT": ["5"], "STATE": [ "1", "2", @@ -66489,134 +35990,45 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_T27", "description": "Counts are of all persons on Census night based on place of usual residence, including overseas visitors.
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_CENSUS2011_T27). Click on the 'i' symbols on that page for further information and links.", - "aggregatedDimensionIds": [ - "STATE" - ], + "aggregatedDimensionIds": ["STATE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], + "FMCF": ["TOT", "[1-3]", "9"], "STRD": [ "TOT", "OPD", @@ -66659,28 +36071,14 @@ "Z", "V" ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "": ["A[0-9]+", "T.*", "O.*"] }, "selectedInitially": { - "REGIONTYPE": [ - "SA4" - ], - "COB": [ - "1101" - ], - "DT": [ - "5" - ], + "REGIONTYPE": ["SA4"], + "COB": ["1101"], + "DT": ["5"], "STATE": [ "1", "2", @@ -66743,137 +36141,46 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_T27_LGA", "description": "Counts are of all persons on Census night based on place of usual residence, including overseas visitors.
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_CENSUS2011_T27_LGA). Click on the 'i' symbols on that page for further information and links.", - "aggregatedDimensionIds": [ - "STATE" - ], + "aggregatedDimensionIds": ["STATE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { - "REGIONTYPE": [ - "LGA2011" - ], - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], + "REGIONTYPE": ["LGA2011"], + "FMCF": ["TOT", "[1-3]", "9"], "STRD": [ "TOT", "OPD", @@ -66916,28 +36223,14 @@ "Z", "V" ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "": ["A[0-9]+", "T.*", "O.*"] }, "selectedInitially": { - "REGIONTYPE": [ - "LGA2011" - ], - "COB": [ - "1101" - ], - "DT": [ - "5" - ], + "REGIONTYPE": ["LGA2011"], + "COB": ["1101"], + "DT": ["5"], "STATE": [ "1", "2", @@ -67000,134 +36293,45 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_T29", "description": "Counts are of all persons on Census night based on place of usual residence, including overseas visitors.
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_CENSUS2011_T29). Click on the 'i' symbols on that page for further information and links.", - "aggregatedDimensionIds": [ - "STATE" - ], + "aggregatedDimensionIds": ["STATE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], + "FMCF": ["TOT", "[1-3]", "9"], "STRD": [ "TOT", "OPD", @@ -67170,28 +36374,14 @@ "Z", "V" ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "": ["A[0-9]+", "T.*", "O.*"] }, "selectedInitially": { - "REGIONTYPE": [ - "SA4" - ], - "COB": [ - "1101" - ], - "DT": [ - "5" - ], + "REGIONTYPE": ["SA4"], + "COB": ["1101"], + "DT": ["5"], "STATE": [ "1", "2", @@ -67254,137 +36444,46 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_T29_LGA", "description": "Counts are of all persons on Census night based on place of usual residence, including overseas visitors.
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_CENSUS2011_T29_LGA). Click on the 'i' symbols on that page for further information and links.", - "aggregatedDimensionIds": [ - "STATE" - ], + "aggregatedDimensionIds": ["STATE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { - "REGIONTYPE": [ - "LGA2011" - ], - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], + "REGIONTYPE": ["LGA2011"], + "FMCF": ["TOT", "[1-3]", "9"], "STRD": [ "TOT", "OPD", @@ -67427,28 +36526,14 @@ "Z", "V" ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "": ["A[0-9]+", "T.*", "O.*"] }, "selectedInitially": { - "REGIONTYPE": [ - "LGA2011" - ], - "COB": [ - "1101" - ], - "DT": [ - "5" - ], + "REGIONTYPE": ["LGA2011"], + "COB": ["1101"], + "DT": ["5"], "STATE": [ "1", "2", @@ -67516,141 +36601,47 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_T30", "description": "Counts are of all persons on Census night based on place of usual residence, including overseas visitors.
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_CENSUS2011_T30). Click on the 'i' symbols on that page for further information and links.", - "aggregatedDimensionIds": [ - "STATE" - ], + "aggregatedDimensionIds": ["STATE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "SEX": [ - "3" - ], - "MEASURE": [ - "TT", - "O15" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "SEX": ["3"], + "MEASURE": ["TT", "O15"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], + "FMCF": ["TOT", "[1-3]", "9"], "STRD": [ "TOT", "OPD", @@ -67693,28 +36684,14 @@ "Z", "V" ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "MEASURE": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "MEASURE": ["A[0-9]+", "T.*", "O.*"] }, "selectedInitially": { - "REGIONTYPE": [ - "SA4" - ], - "COB": [ - "1101" - ], - "DT": [ - "5" - ], + "REGIONTYPE": ["SA4"], + "COB": ["1101"], + "DT": ["5"], "STATE": [ "1", "2", @@ -67784,144 +36761,48 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_T30_LGA", "description": "Counts are of all persons on Census night based on place of usual residence, including overseas visitors.
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_CENSUS2011_T30_LGA). Click on the 'i' symbols on that page for further information and links.", - "aggregatedDimensionIds": [ - "STATE" - ], + "aggregatedDimensionIds": ["STATE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "SEX": [ - "3" - ], - "MEASURE": [ - "TT", - "O15" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "SEX": ["3"], + "MEASURE": ["TT", "O15"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { - "REGIONTYPE": [ - "LGA2011" - ], - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], + "REGIONTYPE": ["LGA2011"], + "FMCF": ["TOT", "[1-3]", "9"], "STRD": [ "TOT", "OPD", @@ -67964,28 +36845,14 @@ "Z", "V" ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "MEASURE": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "MEASURE": ["A[0-9]+", "T.*", "O.*"] }, "selectedInitially": { - "REGIONTYPE": [ - "LGA2011" - ], - "COB": [ - "1101" - ], - "DT": [ - "5" - ], + "REGIONTYPE": ["LGA2011"], + "COB": ["1101"], + "DT": ["5"], "STATE": [ "1", "2", @@ -68055,141 +36922,47 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_T31", "description": "Counts are of all persons on Census night based on place of usual residence, including overseas visitors.
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_CENSUS2011_T31). Click on the 'i' symbols on that page for further information and links.", - "aggregatedDimensionIds": [ - "STATE" - ], + "aggregatedDimensionIds": ["STATE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "SEX": [ - "3" - ], - "MEASURE": [ - "TT", - "O15" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "SEX": ["3"], + "MEASURE": ["TT", "O15"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], + "FMCF": ["TOT", "[1-3]", "9"], "STRD": [ "TOT", "OPD", @@ -68232,28 +37005,14 @@ "Z", "V" ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "MEASURE": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "MEASURE": ["A[0-9]+", "T.*", "O.*"] }, "selectedInitially": { - "REGIONTYPE": [ - "SA4" - ], - "COB": [ - "1101" - ], - "DT": [ - "5" - ], + "REGIONTYPE": ["SA4"], + "COB": ["1101"], + "DT": ["5"], "STATE": [ "1", "2", @@ -68323,144 +37082,48 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_T31_LGA", "description": "Counts are of all persons on Census night based on place of usual residence, including overseas visitors.
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_CENSUS2011_T31_LGA). Click on the 'i' symbols on that page for further information and links.", - "aggregatedDimensionIds": [ - "STATE" - ], + "aggregatedDimensionIds": ["STATE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "SEX": [ - "3" - ], - "MEASURE": [ - "TT", - "O15" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "SEX": ["3"], + "MEASURE": ["TT", "O15"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { - "REGIONTYPE": [ - "LGA2011" - ], - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], + "REGIONTYPE": ["LGA2011"], + "FMCF": ["TOT", "[1-3]", "9"], "STRD": [ "TOT", "OPD", @@ -68503,28 +37166,14 @@ "Z", "V" ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "MEASURE": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "MEASURE": ["A[0-9]+", "T.*", "O.*"] }, "selectedInitially": { - "REGIONTYPE": [ - "LGA2011" - ], - "COB": [ - "1101" - ], - "DT": [ - "5" - ], + "REGIONTYPE": ["LGA2011"], + "COB": ["1101"], + "DT": ["5"], "STATE": [ "1", "2", @@ -68589,141 +37238,47 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_T32", "description": "Counts are of all persons on Census night based on place of usual residence, including overseas visitors.
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_CENSUS2011_T32). Click on the 'i' symbols on that page for further information and links.", - "aggregatedDimensionIds": [ - "STATE" - ], + "aggregatedDimensionIds": ["STATE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "SEX": [ - "3" - ], - "AGE": [ - "TT", - "O15" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "SEX": ["3"], + "AGE": ["TT", "O15"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], + "FMCF": ["TOT", "[1-3]", "9"], "STRD": [ "TOT", "OPD", @@ -68766,28 +37321,14 @@ "Z", "V" ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "AGE": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "AGE": ["A[0-9]+", "T.*", "O.*"] }, "selectedInitially": { - "REGIONTYPE": [ - "SA4" - ], - "COB": [ - "1101" - ], - "DT": [ - "5" - ], + "REGIONTYPE": ["SA4"], + "COB": ["1101"], + "DT": ["5"], "STATE": [ "1", "2", @@ -68850,144 +37391,48 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_T32_LGA", "description": "Counts are of all persons on Census night based on place of usual residence, including overseas visitors.
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_CENSUS2011_T32_LGA). Click on the 'i' symbols on that page for further information and links.", - "aggregatedDimensionIds": [ - "STATE" - ], + "aggregatedDimensionIds": ["STATE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "SEX": [ - "3" - ], - "AGE": [ - "TT", - "O15" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "SEX": ["3"], + "AGE": ["TT", "O15"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { - "REGIONTYPE": [ - "LGA2011" - ], - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], + "REGIONTYPE": ["LGA2011"], + "FMCF": ["TOT", "[1-3]", "9"], "STRD": [ "TOT", "OPD", @@ -69030,28 +37475,14 @@ "Z", "V" ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "AGE": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "AGE": ["A[0-9]+", "T.*", "O.*"] }, "selectedInitially": { - "REGIONTYPE": [ - "LGA2011" - ], - "COB": [ - "1101" - ], - "DT": [ - "5" - ], + "REGIONTYPE": ["LGA2011"], + "COB": ["1101"], + "DT": ["5"], "STATE": [ "1", "2", @@ -69114,137 +37545,46 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_T33", "description": "Counts are of all persons on Census night based on place of usual residence, including overseas visitors.
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_CENSUS2011_T33). Click on the 'i' symbols on that page for further information and links.", - "aggregatedDimensionIds": [ - "STATE" - ], + "aggregatedDimensionIds": ["STATE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "MEASURE": [ - "3" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "MEASURE": ["3"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], + "FMCF": ["TOT", "[1-3]", "9"], "STRD": [ "TOT", "OPD", @@ -69287,28 +37627,14 @@ "Z", "V" ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "": ["A[0-9]+", "T.*", "O.*"] }, "selectedInitially": { - "REGIONTYPE": [ - "SA4" - ], - "COB": [ - "1101" - ], - "DT": [ - "5" - ], + "REGIONTYPE": ["SA4"], + "COB": ["1101"], + "DT": ["5"], "STATE": [ "1", "2", @@ -69371,140 +37697,47 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_T33_LGA", "description": "Counts are of all persons on Census night based on place of usual residence, including overseas visitors.
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_CENSUS2011_T33_LGA). Click on the 'i' symbols on that page for further information and links.", - "aggregatedDimensionIds": [ - "STATE" - ], + "aggregatedDimensionIds": ["STATE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "MEASURE": [ - "3" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "MEASURE": ["3"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { - "REGIONTYPE": [ - "LGA2011" - ], - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], + "REGIONTYPE": ["LGA2011"], + "FMCF": ["TOT", "[1-3]", "9"], "STRD": [ "TOT", "OPD", @@ -69547,28 +37780,14 @@ "Z", "V" ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "": ["A[0-9]+", "T.*", "O.*"] }, "selectedInitially": { - "REGIONTYPE": [ - "LGA2011" - ], - "COB": [ - "1101" - ], - "DT": [ - "5" - ], + "REGIONTYPE": ["LGA2011"], + "COB": ["1101"], + "DT": ["5"], "STATE": [ "1", "2", @@ -69631,137 +37850,46 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_T34", "description": "Counts are of all persons on Census night based on place of usual residence, including overseas visitors.
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_CENSUS2011_T34). Click on the 'i' symbols on that page for further information and links.", - "aggregatedDimensionIds": [ - "STATE" - ], + "aggregatedDimensionIds": ["STATE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "MEASURE": [ - "3" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "MEASURE": ["3"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], + "FMCF": ["TOT", "[1-3]", "9"], "STRD": [ "TOT", "OPD", @@ -69804,28 +37932,14 @@ "Z", "V" ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "": ["A[0-9]+", "T.*", "O.*"] }, "selectedInitially": { - "REGIONTYPE": [ - "SA4" - ], - "COB": [ - "1101" - ], - "DT": [ - "5" - ], + "REGIONTYPE": ["SA4"], + "COB": ["1101"], + "DT": ["5"], "STATE": [ "1", "2", @@ -69888,140 +38002,47 @@ "sortValues": "id", "showWarnings": false, "cleanFootnotes": true, - "forceShowDimensionIds": [ - "MEASURE" - ], + "forceShowDimensionIds": ["MEASURE"], "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_T34_LGA", "description": "Counts are of all persons on Census night based on place of usual residence, including overseas visitors.
    You can view this data, along with explanations of the meaning of terms, on the ABS.Stat website [here](http://stat.data.abs.gov.au/Index.aspx?DatasetCode=ABS_CENSUS2011_T34_LGA). Click on the 'i' symbols on that page for further information and links.", - "aggregatedDimensionIds": [ - "STATE" - ], + "aggregatedDimensionIds": ["STATE"], "totalValueIds": { - "*": [ - "TOT", - "LFTOT" - ], - "MEASURE": [ - "3" - ], - "SPC": [ - "TT" - ], - "MTWP": [ - "1M", - "2M", - "3M" - ], - "FMCF": [ - "CF", - "1", - "2", - "3" - ], - "POUR": [ - "TOT", - "1", - "2", - "2_0", - "2_11" - ], - "UAI1P": [ - "TOT", - "2", - "2_S", - "2_D" - ], - "LFSP": [ - "TOT", - "EMP", - "UEMP" - ], - "FAMILY_TYPE": [ - "6" - ], - "HH_TYPE": [ - "4" - ], - "LEN": [ - "99" - ], - "INFANT_AGE": [ - "IMTOT" - ], - "DLC_11NC": [ - "210", - "205" - ], - "DLC_11": [ - "T" - ], - "ANZIC": [ - "TOTAL" - ], - "LU_11NC": [ - "210", - "205" - ], - "LU_11": [ - "T" - ], - "LENDER": [ - "99" - ], - "INDUSTRY": [ - "T", - "-", - "-1" - ], - "SITC_REV3": [ - "-1" - ], - "COUNTRY": [ - "-" - ], - "STRD_BEDRD": [ - "._TOT" - ], - "FMCF_INCC": [ - "TOT_TOT" - ], - "DEPOSIT_TYPE": [ - "6" - ], - "MINERAL_TYPE": [ - "11" - ], - "MLU_0611": [ - "9" - ], - "PLU_0611": [ - "10" - ], - "PLC_0611": [ - "10" - ], - "PERSON_LA": [ - "16" - ], - "LEASE_TYPE": [ - "3" - ], - "ASSET": [ - "999" - ], - "SECTOR": [ - "7" - ] + "*": ["TOT", "LFTOT"], + "MEASURE": ["3"], + "SPC": ["TT"], + "MTWP": ["1M", "2M", "3M"], + "FMCF": ["CF", "1", "2", "3"], + "POUR": ["TOT", "1", "2", "2_0", "2_11"], + "UAI1P": ["TOT", "2", "2_S", "2_D"], + "LFSP": ["TOT", "EMP", "UEMP"], + "FAMILY_TYPE": ["6"], + "HH_TYPE": ["4"], + "LEN": ["99"], + "INFANT_AGE": ["IMTOT"], + "DLC_11NC": ["210", "205"], + "DLC_11": ["T"], + "ANZIC": ["TOTAL"], + "LU_11NC": ["210", "205"], + "LU_11": ["T"], + "LENDER": ["99"], + "INDUSTRY": ["T", "-", "-1"], + "SITC_REV3": ["-1"], + "COUNTRY": ["-"], + "STRD_BEDRD": ["._TOT"], + "FMCF_INCC": ["TOT_TOT"], + "DEPOSIT_TYPE": ["6"], + "MINERAL_TYPE": ["11"], + "MLU_0611": ["9"], + "PLU_0611": ["10"], + "PLC_0611": ["10"], + "PERSON_LA": ["16"], + "LEASE_TYPE": ["3"], + "ASSET": ["999"], + "SECTOR": ["7"] }, "whitelist": { - "REGIONTYPE": [ - "LGA2011" - ], - "FMCF": [ - "TOT", - "[1-3]", - "9" - ], + "REGIONTYPE": ["LGA2011"], + "FMCF": ["TOT", "[1-3]", "9"], "STRD": [ "TOT", "OPD", @@ -70064,28 +38085,14 @@ "Z", "V" ], - "FMCF_INCC": [ - ".*_.*" - ], - "IND": [ - "-" - ], - "": [ - "A[0-9]+", - "T.*", - "O.*" - ] + "FMCF_INCC": [".*_.*"], + "IND": ["-"], + "": ["A[0-9]+", "T.*", "O.*"] }, "selectedInitially": { - "REGIONTYPE": [ - "LGA2011" - ], - "COB": [ - "1101" - ], - "DT": [ - "5" - ], + "REGIONTYPE": ["LGA2011"], + "COB": ["1101"], + "DT": ["5"], "STATE": [ "1", "2", @@ -70121,4 +38128,4 @@ ] } ] -} \ No newline at end of file +} diff --git a/wwwroot/test/init/sdmx.json b/wwwroot/test/init/sdmx.json index fcdf0c3312e..9c798cab275 100644 --- a/wwwroot/test/init/sdmx.json +++ b/wwwroot/test/init/sdmx.json @@ -1,251 +1,237 @@ - { - "catalog": [{ - "name": "SDMX-JSON testing", - "type": "group", - "isOpen": true, - "items": [ - { - "name": "Local files", - "type": "group", - "isOpen": true, - "items": [ - { - "name": "Simple example", - "type": "sdmx-json", - "sortValues": true, - "url": "build/TerriaJS/test/SDMX-JSON/data-foo-2013.json", - "dataflowUrlComponent": "" - }, - { - "name": "Example with no choices", - "type": "sdmx-json", - "sortValues": true, - "url": "build/TerriaJS/test/SDMX-JSON/data-no-concepts-2013.json", - "dataflowUrlComponent": "" - }, - { - "name": "Two dimensions", - "type": "sdmx-json", - "sortValues": true, - "url": "build/TerriaJS/test/SDMX-JSON/data-foo2-2013.json", - "dataflowUrlComponent": "" - }, - { - "name": "Time varying", - "type": "sdmx-json", - "sortValues": true, - "url": "build/TerriaJS/test/SDMX-JSON/data-foo-BD2-2011_2013.json", - "dataflowUrlComponent": "" - }, - { - "name": "Data as observations not series", - "type": "sdmx-json", - "sortValues": true, - "url": "build/TerriaJS/test/SDMX-JSON/data-as-observations.json", - "dataflowUrlComponent": "" - }, - { - "name": "Data as observations, hidden repeated dimension", - "type": "sdmx-json", - "sortValues": true, - "url": "build/TerriaJS/test/SDMX-JSON/data-as-obs-repeated-dim.json", - "aggregatedDimensionIds": ["STATE"], - "totalValueIds": { - "*": ["TOT"], - "AGE": ["TT", "O15"] - }, - "dataflowUrlComponent": "" - }, - { - "name": "Non-spatial", - "type": "sdmx-json", - "sortValues": true, - "url": "build/TerriaJS/test/SDMX-JSON/data-nonspatial.json", - "dataflowUrlComponent": "" - } - ] + "catalog": [ + { + "name": "SDMX-JSON testing", + "type": "group", + "isOpen": true, + "items": [ + { + "name": "Local files", + "type": "group", + "isOpen": true, + "items": [ + { + "name": "Simple example", + "type": "sdmx-json", + "sortValues": true, + "url": "build/TerriaJS/test/SDMX-JSON/data-foo-2013.json", + "dataflowUrlComponent": "" + }, + { + "name": "Example with no choices", + "type": "sdmx-json", + "sortValues": true, + "url": "build/TerriaJS/test/SDMX-JSON/data-no-concepts-2013.json", + "dataflowUrlComponent": "" + }, + { + "name": "Two dimensions", + "type": "sdmx-json", + "sortValues": true, + "url": "build/TerriaJS/test/SDMX-JSON/data-foo2-2013.json", + "dataflowUrlComponent": "" + }, + { + "name": "Time varying", + "type": "sdmx-json", + "sortValues": true, + "url": "build/TerriaJS/test/SDMX-JSON/data-foo-BD2-2011_2013.json", + "dataflowUrlComponent": "" + }, + { + "name": "Data as observations not series", + "type": "sdmx-json", + "sortValues": true, + "url": "build/TerriaJS/test/SDMX-JSON/data-as-observations.json", + "dataflowUrlComponent": "" + }, + { + "name": "Data as observations, hidden repeated dimension", + "type": "sdmx-json", + "sortValues": true, + "url": "build/TerriaJS/test/SDMX-JSON/data-as-obs-repeated-dim.json", + "aggregatedDimensionIds": ["STATE"], + "totalValueIds": { + "*": ["TOT"], + "AGE": ["TT", "O15"] + }, + "dataflowUrlComponent": "" + }, + { + "name": "Non-spatial", + "type": "sdmx-json", + "sortValues": true, + "url": "build/TerriaJS/test/SDMX-JSON/data-nonspatial.json", + "dataflowUrlComponent": "" + } + ] + }, + { + "name": "OECD data", + "type": "group", + "isOpen": true, + "items": [ + { + "name": "Annual GDP VOBARSA (online)", + "type": "sdmx-json", + "sortValues": true, + "url": "http://stats.oecd.org/sdmx-json/data/QNA/.B1_GE.VOBARSA.A/all", + "regionDimensionId": "LOCATION", + "regionType": "ISO3", + "featureInfoTemplate": { + "template": "

    Annual {{date}} GDP: {{Value}}

    (expenditure approach, seasonally adjusted, units TBC)

    ", + "formats": { + "Value": { + "maximumFractionDigits": 0, + "useGrouping": true + } + } + } + }, + { + "name": "Quarterly National Accounts (QNA)", + "type": "sdmx-json", + "sortValues": true, + "url": "http://stats.oecd.org/sdmx-json/data/QNA", + "regionDimensionId": "LOCATION", + "regionType": "ISO3", + "startTime": "1970", + "endTime": "2016", + "whitelist": { + "SUBJECT": ["B1_GA", "B1_GE", "B1GD"], + "MEASURE": ["VOBARSA", "VPVOBARSA", "LNBQRSA"], + "FREQUENCY": ["A"] + }, + "selectedInitially": { + "SUBJECT": ["B1_GE"] + } + }, + { + "name": "OECD QNA 2005 only", + "type": "sdmx-json", + "sortValues": true, + "url": "http://stats.oecd.org/sdmx-json/data/QNA", + "regionDimensionId": "LOCATION", + "regionType": "ISO3", + "startTime": "2005", + "endTime": "2005", + "whitelist": { + "SUBJECT": ["B1_GE", "B1_GA", "B1GD"], + "MEASURE": ["VOBARSA", "VPVOBARSA", "LNBQRSA"], + "FREQUENCY": ["A"] + } + }, + { + "name": "Economic Outlook 97 Annual Projections, June 2015", + "type": "sdmx-json", + "sortValues": true, + "url": "http://stats.oecd.org/sdmx-json/data/EO97_INTERNET", + "regionDimensionId": "LOCATION", + "regionType": "ISO3" + } + ] + }, + { + "name": "ABS examples", + "type": "group", + "isOpen": true, + "items": [ + { + "name": "Age", + "type": "sdmx-json", + "sortValues": true, + "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_B04", + "aggregatedDimensionIds": ["STATE"], + "totalValueIds": { + "*": ["TOT"], + "MEASURE": ["3"], + "AGE": ["TT", "O15"] + }, + "selectedInitially": { + "REGIONTYPE": ["SA4"] + }, + "whitelist": { + "AGE": ["A[0-9]+", "T.*", "O.*"] // Only shows five-year ranges and totals, not individual years. + } + }, + { + "name": "Ancestry", + "type": "sdmx-json", + "sortValues": true, + "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_B08", + "aggregatedDimensionIds": ["STATE"], + "totalValueIds": { + "*": ["TOT"], + "ANCP": ["TOTP"], + "AGE": ["TT", "O15"] + }, + "selectedInitially": { + "REGIONTYPE": ["SA4"] + } + }, + { + "name": "Country of birth", + "type": "sdmx-json", + "sortValues": true, + "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_B09", + "aggregatedDimensionIds": ["STATE"], + "totalValueIds": { + "*": ["TOT"], + "MEASURE": ["3"], + "AGE": ["TT", "O15"] + }, + "selectedInitially": { + "REGIONTYPE": ["SA4"] + } + }, + { + "name": "Religious affiliation", + "type": "sdmx-json", + "sortValues": true, + "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_B14", + "aggregatedDimensionIds": ["STATE"], + "totalValueIds": { + "*": ["TOT"], + "MEASURE": ["3"], + "AGE": ["TT", "O15"] + }, + "selectedInitially": { + "REGIONTYPE": ["SA4"] + } }, { - "name": "OECD data", - "type": "group", - "isOpen": true, - "items": [ - { - "name": "Annual GDP VOBARSA (online)", - "type": "sdmx-json", - "sortValues": true, - "url": "http://stats.oecd.org/sdmx-json/data/QNA/.B1_GE.VOBARSA.A/all", - "regionDimensionId": "LOCATION", - "regionType": "ISO3", - "featureInfoTemplate": { - "template": "

    Annual {{date}} GDP: {{Value}}

    (expenditure approach, seasonally adjusted, units TBC)

    ", - "formats": { - "Value": { - "maximumFractionDigits": 0, - "useGrouping": true - } - } - } - }, - { - "name": "Quarterly National Accounts (QNA)", - "type": "sdmx-json", - "sortValues": true, - "url": "http://stats.oecd.org/sdmx-json/data/QNA", - "regionDimensionId": "LOCATION", - "regionType": "ISO3", - "startTime": "1970", - "endTime": "2016", - "whitelist": { - "SUBJECT": [ - "B1_GA", "B1_GE", "B1GD" - ], - "MEASURE": [ - "VOBARSA", "VPVOBARSA", "LNBQRSA" - ], - "FREQUENCY": [ - "A" - ] - }, - "selectedInitially": { - "SUBJECT": [ - "B1_GE" - ] - } - }, - { - "name": "OECD QNA 2005 only", - "type": "sdmx-json", - "sortValues": true, - "url": "http://stats.oecd.org/sdmx-json/data/QNA", - "regionDimensionId": "LOCATION", - "regionType": "ISO3", - "startTime": "2005", - "endTime": "2005", - "whitelist": { - "SUBJECT": [ - "B1_GE", "B1_GA", "B1GD" - ], - "MEASURE": [ - "VOBARSA", "VPVOBARSA", "LNBQRSA" - ], - "FREQUENCY": [ - "A" - ] - } - }, - { - "name": "Economic Outlook 97 Annual Projections, June 2015", - "type": "sdmx-json", - "sortValues": true, - "url": "http://stats.oecd.org/sdmx-json/data/EO97_INTERNET", - "regionDimensionId": "LOCATION", - "regionType": "ISO3" - } - ] + "name": "Occupation", + "type": "sdmx-json", + "sortValues": true, + "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_B45", + "aggregatedDimensionIds": ["STATE"], + "totalValueIds": { + "*": ["TOT"], + "SEX": ["3"], // 1=Males, 2=Females, 3=Persons. + "MEASURE": ["O15"] // Unusually, B45 puts AGE in MEASURE, and SEX in SEX. + }, + "selectedInitially": { + "REGIONTYPE": ["SA4"] + } }, { - "name": "ABS examples", - "type": "group", - "isOpen": true, - "items": [ - { - "name": "Age", - "type": "sdmx-json", - "sortValues": true, - "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_B04", - "aggregatedDimensionIds": ["STATE"], - "totalValueIds": { - "*": ["TOT"], - "MEASURE": ["3"], - "AGE": ["TT", "O15"] - }, - "selectedInitially": { - "REGIONTYPE": ["SA4"] - }, - "whitelist": { - "AGE": ["A[0-9]+", "T.*", "O.*"] // Only shows five-year ranges and totals, not individual years. - } - }, - { - "name": "Ancestry", - "type": "sdmx-json", - "sortValues": true, - "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_B08", - "aggregatedDimensionIds": ["STATE"], - "totalValueIds": { - "*": ["TOT"], - "ANCP": ["TOTP"], - "AGE": ["TT", "O15"] - }, - "selectedInitially": { - "REGIONTYPE": ["SA4"] - } - }, - { - "name": "Country of birth", - "type": "sdmx-json", - "sortValues": true, - "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_B09", - "aggregatedDimensionIds": ["STATE"], - "totalValueIds": { - "*": ["TOT"], - "MEASURE": ["3"], - "AGE": ["TT", "O15"] - }, - "selectedInitially": { - "REGIONTYPE": ["SA4"] - } - }, - { - "name": "Religious affiliation", - "type": "sdmx-json", - "sortValues": true, - "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_B14", - "aggregatedDimensionIds": ["STATE"], - "totalValueIds": { - "*": ["TOT"], - "MEASURE": ["3"], - "AGE": ["TT", "O15"] - }, - "selectedInitially": { - "REGIONTYPE": ["SA4"] - } - }, - { - "name": "Occupation", - "type": "sdmx-json", - "sortValues": true, - "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_B45", - "aggregatedDimensionIds": ["STATE"], - "totalValueIds": { - "*": ["TOT"], - "SEX": ["3"], // 1=Males, 2=Females, 3=Persons. - "MEASURE": ["O15"] // Unusually, B45 puts AGE in MEASURE, and SEX in SEX. - }, - "selectedInitially": { - "REGIONTYPE": ["SA4"] - } - }, - { - "name": "Method of travel to work", - "type": "sdmx-json", - "sortValues": true, - "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_B46", - "aggregatedDimensionIds": ["STATE"], - "totalValueIds": { - "*": ["TOT"], - "MEASURE": ["3"], - "AGE": ["TT", "O15"] - }, - "selectedInitially": { - "REGIONTYPE": ["SA4"] - } - } - ] + "name": "Method of travel to work", + "type": "sdmx-json", + "sortValues": true, + "url": "http://stat.data.abs.gov.au/sdmx-json/data/ABS_CENSUS2011_B46", + "aggregatedDimensionIds": ["STATE"], + "totalValueIds": { + "*": ["TOT"], + "MEASURE": ["3"], + "AGE": ["TT", "O15"] + }, + "selectedInitially": { + "REGIONTYPE": ["SA4"] + } } - ] - }] + ] + } + ] + } + ] } - diff --git a/wwwroot/test/init/serverconfig.json b/wwwroot/test/init/serverconfig.json index e2a18955139..4337d1b84d7 100644 --- a/wwwroot/test/init/serverconfig.json +++ b/wwwroot/test/init/serverconfig.json @@ -1,7 +1,4 @@ { - "allowProxyFor": [ - "example.com", - "csiro.au" - ], - "proxyAllDomains": false + "allowProxyFor": ["example.com", "csiro.au"], + "proxyAllDomains": false } diff --git a/wwwroot/test/init/sos.json b/wwwroot/test/init/sos.json index e88f50d2599..fe946fb7cb8 100644 --- a/wwwroot/test/init/sos.json +++ b/wwwroot/test/init/sos.json @@ -1,329 +1,356 @@ { - "catalog": [ + "catalog": [ + { + "type": "group", + "name": "Bureau of Meteorology Water Sensors", + "isOpen": true, + "items": [ { - "type": "group", - "name": "Bureau of Meteorology Water Sensors", - "isOpen": true, - "items": [ - { - "name": "Storage Levels", - "url": "http://www.bom.gov.au/waterdata/services", - "type": "sos", - "tableStyle": { - "scaleByValue": true, - "scale": 2, - "minDisplayValue": 0 - }, - "proceduresName": "Frequency", - "observablePropertiesName": "Observation type", - "startDate": "1980-01-01T00:00:00+10", - "requestSizeLimit": 225, - "requestNumberLimit": 3, - "procedures": [ - { - "identifier": "http://bom.gov.au/waterdata/services/tstypes/Pat7_C_B_1_YearlyMean", - "title": "Annual average", - "defaultDuration": "40y" - }, - { - "identifier": "http://bom.gov.au/waterdata/services/tstypes/Pat7_C_B_1_MonthlyMean", - "title": "Monthly average", - "defaultDuration": "2y" - }, - { - "identifier": "http://bom.gov.au/waterdata/services/tstypes/Pat7_C_B_1_DailyMean", - "title": "Daily average", - "defaultDuration": "32d" - }, - { - "identifier": "http://bom.gov.au/waterdata/services/tstypes/Pat7_C_B_1_DailyMin", - "title": "Daily minimum", - "defaultDuration": "32d" - }, - { - "identifier": "http://bom.gov.au/waterdata/services/tstypes/Pat7_C_B_1_DailyMax", - "title": "Daily maximum", - "defaultDuration": "32d" - }, - { - "identifier": "http://bom.gov.au/waterdata/services/tstypes/Pat7_C_B_1_HourlyMean", - "title": "Hourly average", - "defaultDuration": "28h" - // }, - // { - // "identifier": "http://bom.gov.au/waterdata/services/tstypes/Pat7_C_B_1", - // "title": "Real time", - // "defaultDuration": "4h" - } - ], - "observableProperties": [ - { - "identifier": "http://bom.gov.au/waterdata/services/parameters/Storage Level", - "title": "Storage Level", - "units": "metres" - } - ] - }, - { - "name": "Storage Volume", - "url": "http://www.bom.gov.au/waterdata/services", - "type": "sos", - "tableStyle": { - "scaleByValue": true, - "scale": 2, - "minDisplayValue": 0 - }, - "proceduresName": "Frequency", - "observablePropertiesName": "Observation type", - "startDate": "1980-01-01T00:00:00+10", - "requestSizeLimit": 225, - "requestNumberLimit": 3, - "procedures": [ - { - "identifier": "http://bom.gov.au/waterdata/services/tstypes/Pat6_C_B_1_YearlyMean", - "title": "Annual average", - "defaultDuration": "40y" - }, - { - "identifier": "http://bom.gov.au/waterdata/services/tstypes/Pat6_C_B_1_MonthlyMean", - "title": "Monthly average", - "defaultDuration": "2y" - }, - { - "identifier": "http://bom.gov.au/waterdata/services/tstypes/Pat6_C_B_1_DailyMean", - "title": "Daily average", - "defaultDuration": "32d" - }, - { - "identifier": "http://bom.gov.au/waterdata/services/tstypes/Pat6_C_B_1_DailyMin", - "title": "Daily minimum", - "defaultDuration": "32d" - }, - { - "identifier": "http://bom.gov.au/waterdata/services/tstypes/Pat6_C_B_1_DailyMax", - "title": "Daily maximum", - "defaultDuration": "32d" - }, - { - "identifier": "http://bom.gov.au/waterdata/services/tstypes/Pat6_C_B_1_HourlyMean", - "title": "Hourly average", - "defaultDuration": "28h" - // }, - // { - // "identifier": "http://bom.gov.au/waterdata/services/tstypes/Pat6_C_B_1", - // "title": "Real time", - // "defaultDuration": "4h" - } - ], - "observableProperties": [ - { - "identifier": "http://bom.gov.au/waterdata/services/parameters/Storage Volume", - "title": "Storage Volume", - "units": "MegaLitres" - } - ] - }, - { - "name": "Water Course Levels", - "url": "http://www.bom.gov.au/waterdata/services", - "type": "sos", - "proceduresName": "Frequency", - "observablePropertiesName": "Observation type", - "startDate": "1980-01-01T00:00:00+10", - "endDate": "2016-10-01T00:00:00+10", - "procedures": [ - { - "identifier": "http://bom.gov.au/waterdata/services/tstypes/Pat3_C_B_1_YearlyMean", - "title": "Annual average", - "defaultDuration": "40y" - }, - { - "identifier": "http://bom.gov.au/waterdata/services/tstypes/Pat3_C_B_1_MonthlyMean", - "title": "Monthly average", - "defaultDuration": "2y" - }, - { - "identifier": "http://bom.gov.au/waterdata/services/tstypes/Pat3_C_B_1_DailyMean", - "title": "Daily average", - "defaultDuration": "32d" - }, - { - "identifier": "http://bom.gov.au/waterdata/services/tstypes/Pat3_C_B_1_DailyMin", - "title": "Daily minimum", - "defaultDuration": "32d" - }, - { - "identifier": "http://bom.gov.au/waterdata/services/tstypes/Pat3_C_B_1_DailyMax", - "title": "Daily maximum", - "defaultDuration": "32d" - }, - { - "identifier": "http://bom.gov.au/waterdata/services/tstypes/Pat3_C_B_1_HourlyMean", - "title": "Hourly average", - "defaultDuration": "28h" - // }, - // { - // "identifier": "http://bom.gov.au/waterdata/services/tstypes/Pat3_C_B_1", - // "title": "Real time", - // "defaultDuration": "4h" - } - ], - "observableProperties": [ - { - "identifier": "http://bom.gov.au/waterdata/services/parameters/Water Course Level", - "title": "Water Course Level", - "units": "metres" - } - ] - }, - { - "name": "Water Course Discharge", - "url": "http://www.bom.gov.au/waterdata/services", - "type": "sos", - "proceduresName": "Frequency", - "observablePropertiesName": "Observation type", - "startDate": "1980-01-01T00:00:00+10", - "procedures": [ - { - "identifier": "http://bom.gov.au/waterdata/services/tstypes/Pat4_C_B_1_YearlyMean", - "title": "Annual average", - "defaultDuration": "40y" - }, - { - "identifier": "http://bom.gov.au/waterdata/services/tstypes/Pat4_C_B_1_MonthlyMean", - "title": "Monthly average", - "defaultDuration": "2y" - }, - { - "identifier": "http://bom.gov.au/waterdata/services/tstypes/Pat4_C_B_1_DailyMean", - "title": "Daily average", - "defaultDuration": "32d" - }, - { - "identifier": "http://bom.gov.au/waterdata/services/tstypes/Pat4_C_B_1_DailyMin", - "title": "Daily minimum", - "defaultDuration": "32d" - }, - { - "identifier": "http://bom.gov.au/waterdata/services/tstypes/Pat4_C_B_1_DailyMax", - "title": "Daily maximum", - "defaultDuration": "32d" - }, - { - "identifier": "http://bom.gov.au/waterdata/services/tstypes/Pat4_C_B_1_HourlyMean", - "title": "Hourly average", - "defaultDuration": "28h" - // }, - // { - // "identifier": "http://bom.gov.au/waterdata/services/tstypes/Pat4_C_B_1", - // "title": "Real time", - // "defaultDuration": "4h" - } - ], - "observableProperties": [ - { - "identifier": "http://bom.gov.au/waterdata/services/parameters/Water Course Discharge", - "title": "Water Course Discharge", - "units": "cubic m/s" - } - ] - }, - { - "name": "Storage Levels (via geojson)", - "url": "http://www.bom.gov.au/waterdata/services", - "type": "sos", - "representAsGeoJson": true, - "proceduresName": "Frequency", - "observablePropertiesName": "Observation type", - "startDate": "2001-01-01T00:00:00+10", - "procedures": [ - { - "identifier": "http://bom.gov.au/waterdata/services/tstypes/Pat7_C_B_1_YearlyMean", - "title": "Annual average", - "defaultDuration": "15y" - }, - { - "identifier": "http://bom.gov.au/waterdata/services/tstypes/Pat7_C_B_1_MonthlyMean", - "title": "Monthly average", - "defaultDuration": "2y" - } - ], - "observableProperties": [ - { - "identifier": "http://bom.gov.au/waterdata/services/parameters/Storage Level", - "title": "Storage Level" - } - ] - }, - { - "name": "Storage Levels (test bad request size limit)", - "url": "http://www.bom.gov.au/waterdata/services", - "type": "sos", - "proceduresName": "Frequency", - "observablePropertiesName": "Observation type", - "startDate": "2000-01-01T00:00:00+10", - "requestSizeLimit": 1000, - "requestNumberLimit": 1, - "procedures": [ - { - "identifier": "http://bom.gov.au/waterdata/services/tstypes/Pat7_C_B_1_YearlyMean", - "title": "Annual average" - } - ], - "observableProperties": [ - { - "identifier": "http://bom.gov.au/waterdata/services/parameters/Storage Level", - "title": "Storage Level" - } - ] - }, - { - "name": "BOM SOS Yearly options", - "url": "http://www.bom.gov.au/waterdata/services", - "type": "sos", - "tableStyle": { - "scaleByValue": true, - "scale": 2 - }, - "proceduresName": "Frequency", - "observablePropertiesName": "Observation type", - "startDate": "2000-01-01T00:00:00+10", - "endDate": "2016-10-01T00:00:00+10", - "procedures": [ - { - "identifier": "http://bom.gov.au/waterdata/services/tstypes/Pat7_C_B_1_YearlyMean", - "title": "Pat7_C_B_1_YearlyMean" - }, - {"identifier":"http://bom.gov.au/waterdata/services/tstypes/Pat2_C_B_1_YearlyTot24","title":"Pat2_C_B_1_YearlyTot24 YearlyTotal"}, - {"identifier":"http://bom.gov.au/waterdata/services/tstypes/Pat3_C_B_1_YearlyMean","title":" Pat3_C_B_1_YearlyMean"}, - {"identifier":"http://bom.gov.au/waterdata/services/tstypes/Pat4_C_B_1_YearlyMean","title":"Pat4_C_B_1_YearlyMean"}, - {"identifier":"http://bom.gov.au/waterdata/services/tstypes/Pat1_C_B_1_YearlyMean","title":"Pat1_C_B_1_YearlyMean"}, - {"identifier":"http://bom.gov.au/waterdata/services/tstypes/Year.Max","title":"9 YearMax"}, - {"identifier":"http://bom.gov.au/waterdata/services/tstypes/Year.Min","title":"8 YearMin"}, - {"identifier":"http://bom.gov.au/waterdata/services/tstypes/Year.Mean","title":"7 YearMean"}, - {"identifier":"http://bom.gov.au/waterdata/services/tstypes/Pat9_C_B_1_YearlyMean","title":"Pat9_C_B_1_YearlyMean"}, - {"identifier":"http://bom.gov.au/waterdata/services/tstypes/Pat6_C_B_1_YearlyMean","title":"Pat6_C_B_1_YearlyMean"} - ], - "observableProperties": [ - { - "identifier": "http://bom.gov.au/waterdata/services/parameters/Storage Level", - "title": "Storage Level" - }, - { - "identifier": "http://bom.gov.au/waterdata/services/parameters/Storage Volume", - "title": "Storage Volume" - }, - { - "identifier": "http://bom.gov.au/waterdata/services/parameters/Water Course Level", - "title": "Water Course Level" - }, - { - "identifier": "http://bom.gov.au/waterdata/services/parameters/Water Course Discharge", - "title": "Water Course Discharge" - } - ] - } - ] + "name": "Storage Levels", + "url": "http://www.bom.gov.au/waterdata/services", + "type": "sos", + "tableStyle": { + "scaleByValue": true, + "scale": 2, + "minDisplayValue": 0 + }, + "proceduresName": "Frequency", + "observablePropertiesName": "Observation type", + "startDate": "1980-01-01T00:00:00+10", + "requestSizeLimit": 225, + "requestNumberLimit": 3, + "procedures": [ + { + "identifier": "http://bom.gov.au/waterdata/services/tstypes/Pat7_C_B_1_YearlyMean", + "title": "Annual average", + "defaultDuration": "40y" + }, + { + "identifier": "http://bom.gov.au/waterdata/services/tstypes/Pat7_C_B_1_MonthlyMean", + "title": "Monthly average", + "defaultDuration": "2y" + }, + { + "identifier": "http://bom.gov.au/waterdata/services/tstypes/Pat7_C_B_1_DailyMean", + "title": "Daily average", + "defaultDuration": "32d" + }, + { + "identifier": "http://bom.gov.au/waterdata/services/tstypes/Pat7_C_B_1_DailyMin", + "title": "Daily minimum", + "defaultDuration": "32d" + }, + { + "identifier": "http://bom.gov.au/waterdata/services/tstypes/Pat7_C_B_1_DailyMax", + "title": "Daily maximum", + "defaultDuration": "32d" + }, + { + "identifier": "http://bom.gov.au/waterdata/services/tstypes/Pat7_C_B_1_HourlyMean", + "title": "Hourly average", + "defaultDuration": "28h" + // }, + // { + // "identifier": "http://bom.gov.au/waterdata/services/tstypes/Pat7_C_B_1", + // "title": "Real time", + // "defaultDuration": "4h" + } + ], + "observableProperties": [ + { + "identifier": "http://bom.gov.au/waterdata/services/parameters/Storage Level", + "title": "Storage Level", + "units": "metres" + } + ] + }, + { + "name": "Storage Volume", + "url": "http://www.bom.gov.au/waterdata/services", + "type": "sos", + "tableStyle": { + "scaleByValue": true, + "scale": 2, + "minDisplayValue": 0 + }, + "proceduresName": "Frequency", + "observablePropertiesName": "Observation type", + "startDate": "1980-01-01T00:00:00+10", + "requestSizeLimit": 225, + "requestNumberLimit": 3, + "procedures": [ + { + "identifier": "http://bom.gov.au/waterdata/services/tstypes/Pat6_C_B_1_YearlyMean", + "title": "Annual average", + "defaultDuration": "40y" + }, + { + "identifier": "http://bom.gov.au/waterdata/services/tstypes/Pat6_C_B_1_MonthlyMean", + "title": "Monthly average", + "defaultDuration": "2y" + }, + { + "identifier": "http://bom.gov.au/waterdata/services/tstypes/Pat6_C_B_1_DailyMean", + "title": "Daily average", + "defaultDuration": "32d" + }, + { + "identifier": "http://bom.gov.au/waterdata/services/tstypes/Pat6_C_B_1_DailyMin", + "title": "Daily minimum", + "defaultDuration": "32d" + }, + { + "identifier": "http://bom.gov.au/waterdata/services/tstypes/Pat6_C_B_1_DailyMax", + "title": "Daily maximum", + "defaultDuration": "32d" + }, + { + "identifier": "http://bom.gov.au/waterdata/services/tstypes/Pat6_C_B_1_HourlyMean", + "title": "Hourly average", + "defaultDuration": "28h" + // }, + // { + // "identifier": "http://bom.gov.au/waterdata/services/tstypes/Pat6_C_B_1", + // "title": "Real time", + // "defaultDuration": "4h" + } + ], + "observableProperties": [ + { + "identifier": "http://bom.gov.au/waterdata/services/parameters/Storage Volume", + "title": "Storage Volume", + "units": "MegaLitres" + } + ] + }, + { + "name": "Water Course Levels", + "url": "http://www.bom.gov.au/waterdata/services", + "type": "sos", + "proceduresName": "Frequency", + "observablePropertiesName": "Observation type", + "startDate": "1980-01-01T00:00:00+10", + "endDate": "2016-10-01T00:00:00+10", + "procedures": [ + { + "identifier": "http://bom.gov.au/waterdata/services/tstypes/Pat3_C_B_1_YearlyMean", + "title": "Annual average", + "defaultDuration": "40y" + }, + { + "identifier": "http://bom.gov.au/waterdata/services/tstypes/Pat3_C_B_1_MonthlyMean", + "title": "Monthly average", + "defaultDuration": "2y" + }, + { + "identifier": "http://bom.gov.au/waterdata/services/tstypes/Pat3_C_B_1_DailyMean", + "title": "Daily average", + "defaultDuration": "32d" + }, + { + "identifier": "http://bom.gov.au/waterdata/services/tstypes/Pat3_C_B_1_DailyMin", + "title": "Daily minimum", + "defaultDuration": "32d" + }, + { + "identifier": "http://bom.gov.au/waterdata/services/tstypes/Pat3_C_B_1_DailyMax", + "title": "Daily maximum", + "defaultDuration": "32d" + }, + { + "identifier": "http://bom.gov.au/waterdata/services/tstypes/Pat3_C_B_1_HourlyMean", + "title": "Hourly average", + "defaultDuration": "28h" + // }, + // { + // "identifier": "http://bom.gov.au/waterdata/services/tstypes/Pat3_C_B_1", + // "title": "Real time", + // "defaultDuration": "4h" + } + ], + "observableProperties": [ + { + "identifier": "http://bom.gov.au/waterdata/services/parameters/Water Course Level", + "title": "Water Course Level", + "units": "metres" + } + ] + }, + { + "name": "Water Course Discharge", + "url": "http://www.bom.gov.au/waterdata/services", + "type": "sos", + "proceduresName": "Frequency", + "observablePropertiesName": "Observation type", + "startDate": "1980-01-01T00:00:00+10", + "procedures": [ + { + "identifier": "http://bom.gov.au/waterdata/services/tstypes/Pat4_C_B_1_YearlyMean", + "title": "Annual average", + "defaultDuration": "40y" + }, + { + "identifier": "http://bom.gov.au/waterdata/services/tstypes/Pat4_C_B_1_MonthlyMean", + "title": "Monthly average", + "defaultDuration": "2y" + }, + { + "identifier": "http://bom.gov.au/waterdata/services/tstypes/Pat4_C_B_1_DailyMean", + "title": "Daily average", + "defaultDuration": "32d" + }, + { + "identifier": "http://bom.gov.au/waterdata/services/tstypes/Pat4_C_B_1_DailyMin", + "title": "Daily minimum", + "defaultDuration": "32d" + }, + { + "identifier": "http://bom.gov.au/waterdata/services/tstypes/Pat4_C_B_1_DailyMax", + "title": "Daily maximum", + "defaultDuration": "32d" + }, + { + "identifier": "http://bom.gov.au/waterdata/services/tstypes/Pat4_C_B_1_HourlyMean", + "title": "Hourly average", + "defaultDuration": "28h" + // }, + // { + // "identifier": "http://bom.gov.au/waterdata/services/tstypes/Pat4_C_B_1", + // "title": "Real time", + // "defaultDuration": "4h" + } + ], + "observableProperties": [ + { + "identifier": "http://bom.gov.au/waterdata/services/parameters/Water Course Discharge", + "title": "Water Course Discharge", + "units": "cubic m/s" + } + ] + }, + { + "name": "Storage Levels (via geojson)", + "url": "http://www.bom.gov.au/waterdata/services", + "type": "sos", + "representAsGeoJson": true, + "proceduresName": "Frequency", + "observablePropertiesName": "Observation type", + "startDate": "2001-01-01T00:00:00+10", + "procedures": [ + { + "identifier": "http://bom.gov.au/waterdata/services/tstypes/Pat7_C_B_1_YearlyMean", + "title": "Annual average", + "defaultDuration": "15y" + }, + { + "identifier": "http://bom.gov.au/waterdata/services/tstypes/Pat7_C_B_1_MonthlyMean", + "title": "Monthly average", + "defaultDuration": "2y" + } + ], + "observableProperties": [ + { + "identifier": "http://bom.gov.au/waterdata/services/parameters/Storage Level", + "title": "Storage Level" + } + ] + }, + { + "name": "Storage Levels (test bad request size limit)", + "url": "http://www.bom.gov.au/waterdata/services", + "type": "sos", + "proceduresName": "Frequency", + "observablePropertiesName": "Observation type", + "startDate": "2000-01-01T00:00:00+10", + "requestSizeLimit": 1000, + "requestNumberLimit": 1, + "procedures": [ + { + "identifier": "http://bom.gov.au/waterdata/services/tstypes/Pat7_C_B_1_YearlyMean", + "title": "Annual average" + } + ], + "observableProperties": [ + { + "identifier": "http://bom.gov.au/waterdata/services/parameters/Storage Level", + "title": "Storage Level" + } + ] + }, + { + "name": "BOM SOS Yearly options", + "url": "http://www.bom.gov.au/waterdata/services", + "type": "sos", + "tableStyle": { + "scaleByValue": true, + "scale": 2 + }, + "proceduresName": "Frequency", + "observablePropertiesName": "Observation type", + "startDate": "2000-01-01T00:00:00+10", + "endDate": "2016-10-01T00:00:00+10", + "procedures": [ + { + "identifier": "http://bom.gov.au/waterdata/services/tstypes/Pat7_C_B_1_YearlyMean", + "title": "Pat7_C_B_1_YearlyMean" + }, + { + "identifier": "http://bom.gov.au/waterdata/services/tstypes/Pat2_C_B_1_YearlyTot24", + "title": "Pat2_C_B_1_YearlyTot24 YearlyTotal" + }, + { + "identifier": "http://bom.gov.au/waterdata/services/tstypes/Pat3_C_B_1_YearlyMean", + "title": " Pat3_C_B_1_YearlyMean" + }, + { + "identifier": "http://bom.gov.au/waterdata/services/tstypes/Pat4_C_B_1_YearlyMean", + "title": "Pat4_C_B_1_YearlyMean" + }, + { + "identifier": "http://bom.gov.au/waterdata/services/tstypes/Pat1_C_B_1_YearlyMean", + "title": "Pat1_C_B_1_YearlyMean" + }, + { + "identifier": "http://bom.gov.au/waterdata/services/tstypes/Year.Max", + "title": "9 YearMax" + }, + { + "identifier": "http://bom.gov.au/waterdata/services/tstypes/Year.Min", + "title": "8 YearMin" + }, + { + "identifier": "http://bom.gov.au/waterdata/services/tstypes/Year.Mean", + "title": "7 YearMean" + }, + { + "identifier": "http://bom.gov.au/waterdata/services/tstypes/Pat9_C_B_1_YearlyMean", + "title": "Pat9_C_B_1_YearlyMean" + }, + { + "identifier": "http://bom.gov.au/waterdata/services/tstypes/Pat6_C_B_1_YearlyMean", + "title": "Pat6_C_B_1_YearlyMean" + } + ], + "observableProperties": [ + { + "identifier": "http://bom.gov.au/waterdata/services/parameters/Storage Level", + "title": "Storage Level" + }, + { + "identifier": "http://bom.gov.au/waterdata/services/parameters/Storage Volume", + "title": "Storage Volume" + }, + { + "identifier": "http://bom.gov.au/waterdata/services/parameters/Water Course Level", + "title": "Water Course Level" + }, + { + "identifier": "http://bom.gov.au/waterdata/services/parameters/Water Course Discharge", + "title": "Water Course Discharge" + } + ] } - ] -} \ No newline at end of file + ] + } + ] +} diff --git a/wwwroot/test/init/terrain.json b/wwwroot/test/init/terrain.json index de9e5e7e3bb..461dd6cc804 100644 --- a/wwwroot/test/init/terrain.json +++ b/wwwroot/test/init/terrain.json @@ -1,56 +1,50 @@ { - "catalog": [ + "catalog": [ + { + "name": "Terrain", + "type": "group", + "items": [ { - "name": "Terrain", - "type": "group", + "name": "Pennsylvania", + "type": "cesium-terrain", + "url": "https://assets.agi.com/stk-terrain/v1/tilesets/PAMAP/tiles" + }, + { + "name": "Caco Demo", + "type": "cesium-terrain", + "url": "http://stkdesktop.agi.com/stk-terrain/v1/tilesets/CacoSample/tiles", + "rectangle": [ + -69.95496855318628, 41.82165113892819, -69.93832861576816, + 41.85021565878684 + ] + }, + { + "name": "Caco with Imagery", + "type": "composite", + "rectangle": [ + -69.95496855318628, 41.82165113892819, -69.93832861576816, + 41.85021565878684 + ], "items": [ { - "name": "Pennsylvania", - "type": "cesium-terrain", - "url": "https://assets.agi.com/stk-terrain/v1/tilesets/PAMAP/tiles" - }, - { - "name": "Caco Demo", - "type": "cesium-terrain", - "url": "http://stkdesktop.agi.com/stk-terrain/v1/tilesets/CacoSample/tiles", - "rectangle": [ - -69.95496855318628, - 41.82165113892819, - -69.93832861576816, - 41.85021565878684 - ] + "name": "Caco with Imagery - Imagery", + "type": "url-template", + "url": "http://agi-tas-demo.s3-website-us-east-1.amazonaws.com/SandwichOrtho/TILES/caco_f1_rgb1_v4_ortho_TILES/{z}/{x}/{reverseY}.png", + "minimumLevel": 13, + "maximumLevel": 21, + "rectangle": [ + -69.95496855318628, 41.82165113892819, -69.93832861576816, + 41.85021565878684 + ] }, { - "name": "Caco with Imagery", - "type": "composite", - "rectangle": [ - -69.95496855318628, - 41.82165113892819, - -69.93832861576816, - 41.85021565878684 - ], - "items": [ - { - "name": "Caco with Imagery - Imagery", - "type": "url-template", - "url": "http://agi-tas-demo.s3-website-us-east-1.amazonaws.com/SandwichOrtho/TILES/caco_f1_rgb1_v4_ortho_TILES/{z}/{x}/{reverseY}.png", - "minimumLevel": 13, - "maximumLevel": 21, - "rectangle": [ - -69.95496855318628, - 41.82165113892819, - -69.93832861576816, - 41.85021565878684 - ] - }, - { - "name": "Caco with Imagery - Terrain", - "type": "cesium-terrain", - "url": "http://stkdesktop.agi.com/stk-terrain/v1/tilesets/CacoSample/tiles" - } - ] + "name": "Caco with Imagery - Terrain", + "type": "cesium-terrain", + "url": "http://stkdesktop.agi.com/stk-terrain/v1/tilesets/CacoSample/tiles" } ] } - ] + ] + } + ] } diff --git a/wwwroot/test/init/terriaAnalytics.json b/wwwroot/test/init/terriaAnalytics.json index 39e9cbae54b..13e44dd6f1f 100644 --- a/wwwroot/test/init/terriaAnalytics.json +++ b/wwwroot/test/init/terriaAnalytics.json @@ -1,37 +1,37 @@ { - "catalog": [ + "catalog": [ + { + "name": "Terria Analytics", + "type": "group", + "isOpen": true, + "isPromoted": true, + "items": [ { - "name": "Terria Analytics", - "type": "group", - "isOpen": true, - "isPromoted": true, - "items": [ - { - "name": "What makes this region unique or special?", - "type": "why-am-i-special-function", - "url": "http://analytics.terria.io:31113/jobs" - }, - { - "name": "Spatial Detailing", - "type": "spatial-detailing-function", - "url": "http://analytics.terria.io:31113/jobs" - }, - { - "name": "Regions like this", - "type": "places-like-me-function", - "url": "http://analytics.terria.io:31113/jobs" - }, - { - "name": "Victoria Crime (LGA)", - "type": "csv", - "url": "test/vic_assault.csv" - }, - { - "name": "NSW NEXIS 2012 (LGA)", - "type": "csv", - "url": "test/NSW_LGA_NEXIS_201212.csv" - } - ] + "name": "What makes this region unique or special?", + "type": "why-am-i-special-function", + "url": "http://analytics.terria.io:31113/jobs" + }, + { + "name": "Spatial Detailing", + "type": "spatial-detailing-function", + "url": "http://analytics.terria.io:31113/jobs" + }, + { + "name": "Regions like this", + "type": "places-like-me-function", + "url": "http://analytics.terria.io:31113/jobs" + }, + { + "name": "Victoria Crime (LGA)", + "type": "csv", + "url": "test/vic_assault.csv" + }, + { + "name": "NSW NEXIS 2012 (LGA)", + "type": "csv", + "url": "test/NSW_LGA_NEXIS_201212.csv" } - ] + ] + } + ] } diff --git a/wwwroot/test/init/test-dateFormat.json b/wwwroot/test/init/test-dateFormat.json index ce26ae3532e..561dab7f85c 100644 --- a/wwwroot/test/init/test-dateFormat.json +++ b/wwwroot/test/init/test-dateFormat.json @@ -1,148 +1,148 @@ { - "catalog": [ + "catalog": [ + { + "name": "Date format test", + "type": "group", + "items": [ { - "name": "Date format test", - "type": "group", - "items": [ - { - "name": "Existing date format in AREMI", - "type": "group", - "isOpen": false, - "items": [ - { - "name": "Available Distribution Capacity Sample", - "type": "csv", - "url": "build/TerriaJS/test/csv/sample_aremi_available_distribution_capacity.csv", - "dateFormat": { - "timelineTic": "yyyy", - "currentTime": "'Year: 'yyyy" - } - }, - { - "name": "Peak Day Available Capacity Sample", - "type": "csv", - "url": "build/TerriaJS/test/csv/sample_aremi_peak_day_capacity.csv", - "dateFormat": { - "timelineTic": "hh tt", - "currentTime": "'Hour of day:' hh tt" - } - } - ] - }, - { - "name": "Time-based intervals", - "type": "group", - "isOpen": false, - "items": [ - { - "name": "Date format in seconds", - "type": "csv", - "url": "build/TerriaJS/test/csv/lat_lon_timeseries.csv", - "dateFormat": { - "timelineTic": "HH:MM", - "currentTime": "ss 'seconds'" - } - }, - { - "name": "Date format in minutes", - "type": "csv", - "url": "build/TerriaJS/test/csv/lat_lon_timeseries.csv", - "dateFormat": { - "timelineTic": "HH:MM", - "currentTime": "MM 'minutes'" - } - }, - { - "name": "Date format in minutes and seconds", - "type": "csv", - "url": "build/TerriaJS/test/csv/lat_lon_timeseries.csv", - "dateFormat": { - "timelineTic": "HH:MM", - "currentTime": "MM'm'ss's'" - } - }, - { - "name": "Date format in hours and minutes", - "type": "csv", - "url": "build/TerriaJS/test/csv/lat_lon_timeseries.csv", - "dateFormat": { - "timelineTic": "HH:MM", - "currentTime": "HH:MM" - } - }, - { - "name": "Date format in hours, minutes and seconds", - "type": "csv", - "url": "build/TerriaJS/test/csv/lat_lon_timeseries.csv", - "dateFormat": { - "timelineTic": "HH:MM", - "currentTime": "HH:MM:ss" - } - } - ] - }, - { - "name": "Date-based intervals (using named formats)", - "type": "group", - "isOpen": false, - "items": [ - { - "name": "Default date format", - "type": "csv", - "url": "build/TerriaJS/test/csv/lat_lon_enum_moving_date_unsorted.csv", - "dateFormat": { - "timelineTic": "mm/dd", - "currentTime": "default" - } - }, - { - "name": "Short date format", - "type": "csv", - "url": "build/TerriaJS/test/csv/lat_lon_enum_moving_date_unsorted.csv", - "dateFormat": { - "timelineTic": "mm/dd", - "currentTime": "shortDate" - } - }, - { - "name": "Medium date format", - "type": "csv", - "url": "build/TerriaJS/test/csv/lat_lon_enum_moving_date_unsorted.csv", - "dateFormat": { - "timelineTic": "mm/dd", - "currentTime": "mediumDate" - } - }, - { - "name": "Long date format", - "type": "csv", - "url": "build/TerriaJS/test/csv/lat_lon_enum_moving_date_unsorted.csv", - "dateFormat": { - "timelineTic": "mm/dd", - "currentTime": "longDate" - } - }, - { - "name": "Full date format", - "type": "csv", - "url": "build/TerriaJS/test/csv/lat_lon_enum_moving_date_unsorted.csv", - "dateFormat": { - "timelineTic": "mm/dd", - "currentTime": "fullDate" - } - }, - { - "name": "ISO date format", - "type": "csv", - "url": "build/TerriaJS/test/csv/lat_lon_enum_moving_date_unsorted.csv", - "dateFormat": { - "timelineTic": "mm/dd", - "currentTime": "isoDate" - } - } - ] - } - ] + "name": "Existing date format in AREMI", + "type": "group", + "isOpen": false, + "items": [ + { + "name": "Available Distribution Capacity Sample", + "type": "csv", + "url": "build/TerriaJS/test/csv/sample_aremi_available_distribution_capacity.csv", + "dateFormat": { + "timelineTic": "yyyy", + "currentTime": "'Year: 'yyyy" + } + }, + { + "name": "Peak Day Available Capacity Sample", + "type": "csv", + "url": "build/TerriaJS/test/csv/sample_aremi_peak_day_capacity.csv", + "dateFormat": { + "timelineTic": "hh tt", + "currentTime": "'Hour of day:' hh tt" + } + } + ] + }, + { + "name": "Time-based intervals", + "type": "group", + "isOpen": false, + "items": [ + { + "name": "Date format in seconds", + "type": "csv", + "url": "build/TerriaJS/test/csv/lat_lon_timeseries.csv", + "dateFormat": { + "timelineTic": "HH:MM", + "currentTime": "ss 'seconds'" + } + }, + { + "name": "Date format in minutes", + "type": "csv", + "url": "build/TerriaJS/test/csv/lat_lon_timeseries.csv", + "dateFormat": { + "timelineTic": "HH:MM", + "currentTime": "MM 'minutes'" + } + }, + { + "name": "Date format in minutes and seconds", + "type": "csv", + "url": "build/TerriaJS/test/csv/lat_lon_timeseries.csv", + "dateFormat": { + "timelineTic": "HH:MM", + "currentTime": "MM'm'ss's'" + } + }, + { + "name": "Date format in hours and minutes", + "type": "csv", + "url": "build/TerriaJS/test/csv/lat_lon_timeseries.csv", + "dateFormat": { + "timelineTic": "HH:MM", + "currentTime": "HH:MM" + } + }, + { + "name": "Date format in hours, minutes and seconds", + "type": "csv", + "url": "build/TerriaJS/test/csv/lat_lon_timeseries.csv", + "dateFormat": { + "timelineTic": "HH:MM", + "currentTime": "HH:MM:ss" + } + } + ] + }, + { + "name": "Date-based intervals (using named formats)", + "type": "group", + "isOpen": false, + "items": [ + { + "name": "Default date format", + "type": "csv", + "url": "build/TerriaJS/test/csv/lat_lon_enum_moving_date_unsorted.csv", + "dateFormat": { + "timelineTic": "mm/dd", + "currentTime": "default" + } + }, + { + "name": "Short date format", + "type": "csv", + "url": "build/TerriaJS/test/csv/lat_lon_enum_moving_date_unsorted.csv", + "dateFormat": { + "timelineTic": "mm/dd", + "currentTime": "shortDate" + } + }, + { + "name": "Medium date format", + "type": "csv", + "url": "build/TerriaJS/test/csv/lat_lon_enum_moving_date_unsorted.csv", + "dateFormat": { + "timelineTic": "mm/dd", + "currentTime": "mediumDate" + } + }, + { + "name": "Long date format", + "type": "csv", + "url": "build/TerriaJS/test/csv/lat_lon_enum_moving_date_unsorted.csv", + "dateFormat": { + "timelineTic": "mm/dd", + "currentTime": "longDate" + } + }, + { + "name": "Full date format", + "type": "csv", + "url": "build/TerriaJS/test/csv/lat_lon_enum_moving_date_unsorted.csv", + "dateFormat": { + "timelineTic": "mm/dd", + "currentTime": "fullDate" + } + }, + { + "name": "ISO date format", + "type": "csv", + "url": "build/TerriaJS/test/csv/lat_lon_enum_moving_date_unsorted.csv", + "dateFormat": { + "timelineTic": "mm/dd", + "currentTime": "isoDate" + } + } + ] } - ] -} \ No newline at end of file + ] + } + ] +} diff --git a/wwwroot/test/init/test-tablestyle.json b/wwwroot/test/init/test-tablestyle.json index 6c7dd6564e3..c05160463eb 100644 --- a/wwwroot/test/init/test-tablestyle.json +++ b/wwwroot/test/init/test-tablestyle.json @@ -98,7 +98,7 @@ "colorBins": 10, "dataVariable": "POPULATION ESTIMATE", "colorBinMethod": "quantile", - "featureInfoFields": [ "LGA_NAME_2012", "POPULATION ESTIMATE" ] + "featureInfoFields": ["LGA_NAME_2012", "POPULATION ESTIMATE"] } }, { @@ -110,7 +110,7 @@ "colorPalette": "10-class BrBG", "colorBins": 10, "dataVariable": "POPULATION ESTIMATE", - "featureInfoFields": [ "LGA_NAME_2012", "POPULATION ESTIMATE" ] + "featureInfoFields": ["LGA_NAME_2012", "POPULATION ESTIMATE"] } }, { @@ -123,7 +123,7 @@ "colorBins": 10, "colorBinMethod": "none", "dataVariable": "POPULATION ESTIMATE", - "featureInfoFields": [ "LGA_NAME_2012", "POPULATION ESTIMATE" ] + "featureInfoFields": ["LGA_NAME_2012", "POPULATION ESTIMATE"] } }, { @@ -163,7 +163,6 @@ "colorMap": "green-hsla(0,50%,50%,0.2)" }, "opacity": 1 - }, { "name": "All Victorian postcodes", @@ -234,7 +233,7 @@ } } }, - "featureInfoTemplate" : "
    • Postcode: {{Postcode}}
    • Value via original name: {{Value}}
    • Value via new name: {{Renamed value}}
    " + "featureInfoTemplate": "
    • Postcode: {{Postcode}}
    • Value via original name: {{Value}}
    • Value via new name: {{Renamed value}}
    " }, { "name": "Value column hidden on Now Viewing", diff --git a/wwwroot/test/init/timeseries.json b/wwwroot/test/init/timeseries.json index 0729f7794d9..73b1a99b1aa 100644 --- a/wwwroot/test/init/timeseries.json +++ b/wwwroot/test/init/timeseries.json @@ -1,40 +1,42 @@ { - "catalog": [{ - "name": "Time series tests", - "type": "group", - "isOpen": true, - "items": [ + "catalog": [ + { + "name": "Time series tests", + "type": "group", + "isOpen": true, + "items": [ + { + "name": "WMS time series (solar hourly direct, BOM)", + "layers": "Mean direct normal exposure", + "info": [ { - "name": "WMS time series (solar hourly direct, BOM)", - "layers": "Mean direct normal exposure", - "info": [ - { - "name": "Licensing, Terms & Conditions", - "content": "[Licence](http://creativecommons.org/licenses/by/3.0/au/)" - } - ], - "dataCustodian": "[Australian Bureau of Meteorology](http://www.bom.gov.au/water/geofabric/)", - "url": "http://neii.bom.gov.au/services/solarclim/wms/data/monClim_dirNorExp1Hou.nc?service=WMS&version=1.3.0&request=GetCapabilities&LAYER=mean_exposure", - "type": "wms", - "opacity": "1.0", - "displayDuration": 360, - "dateFormat": { - "timelineTic": "mmmm", - "currentTime": "mmmm HH:MM:ss" - } - }, - { - "name": "Lat lon CSV with duration of 1 hour", - "type": "csv", - "url": "build/TerriaJS/test/csv/lat_lon_date_value.csv", - "tableStyle": { - "displayDuration": 60 - }, - "dateFormat": { - "timelineTic": "HH:MM", - "currentTime": "mmmm HH:MM:ss" - } + "name": "Licensing, Terms & Conditions", + "content": "[Licence](http://creativecommons.org/licenses/by/3.0/au/)" } - ] - }] + ], + "dataCustodian": "[Australian Bureau of Meteorology](http://www.bom.gov.au/water/geofabric/)", + "url": "http://neii.bom.gov.au/services/solarclim/wms/data/monClim_dirNorExp1Hou.nc?service=WMS&version=1.3.0&request=GetCapabilities&LAYER=mean_exposure", + "type": "wms", + "opacity": "1.0", + "displayDuration": 360, + "dateFormat": { + "timelineTic": "mmmm", + "currentTime": "mmmm HH:MM:ss" + } + }, + { + "name": "Lat lon CSV with duration of 1 hour", + "type": "csv", + "url": "build/TerriaJS/test/csv/lat_lon_date_value.csv", + "tableStyle": { + "displayDuration": 60 + }, + "dateFormat": { + "timelineTic": "HH:MM", + "currentTime": "mmmm HH:MM:ss" + } + } + ] + } + ] } diff --git a/wwwroot/test/init/wms.json b/wwwroot/test/init/wms.json index 5778c979289..81554fb97ce 100644 --- a/wwwroot/test/init/wms.json +++ b/wwwroot/test/init/wms.json @@ -1,75 +1,75 @@ { - "catalog": [ - { - "name": "WMS", - "type": "group", - "isPromoted": true, - "isOpen": true, - "items": [ - // { - // "name": "ncWMS2 with multiple styles", - // "type": "wms", - // "url": "http://www.smast.umassd.edu:8080/ncWMS2/wms", - // "layers": "FVCOM-NECOFS-GOM3/x" - // }, - { - "name": "TDS with multiple styles, COLORSCALERANGE, and a time dimension", - "type": "wms", - "url": "http://thredds.ucar.edu/thredds/wms/grib/NCEP/WW3/Global/Best", - "layers": "Significant_height_of_wind_waves_surface" - }, - { - "name": "ncWMS with multiple dimensions, including time", - "type": "wms", - "url": "http://geoport-dev.whoi.edu/thredds/wms/coawst_4/use/fmrc/coawst_4_use_best.ncd?service=WMS&version=1.3.0&request=GetCapabilities", - "layers": "temp" - }, - { - "name": "ncWMS with multiple dimensions, including time, with initialTimeSource", - "type": "wms", - "url": "http://geoport-dev.whoi.edu/thredds/wms/coawst_4/use/fmrc/coawst_4_use_best.ncd?service=WMS&version=1.3.0&request=GetCapabilities", - "layers": "temp", - "initialTimeSource": "2017-07-31T12:00:00Z" - }, - { - "name": "Total Vegetation Cover (PV + NPV)", - "type": "wms", - "url": "http://gsky.nci.org.au/ows", - "cacheDuration": "2h", - "layers": "global:totalcover", - "opacity": 1, - "initialTimeSource": "end", - "ignoreUnknownTileErrors": true, - "getFeatureInfoFormats": [{"type": "none"}] - }, - { - "name": "Solar Satellite DNI & GHI, with initialTimeSource", - "layers": "Solar_Satellite_DNI_2014", - "url": "http://gis.aremi.nationalmap.gov.au/bom/wms", - "type": "wms", - "maxRefreshIntervals": 9000, - "initialTimeSource": "2014-06-30T22:00:00Z", - "featureInfoTemplate": { - "name":"{{GRAY_INDEX}} W/m2" - } - }, - { - "name": "Climate change data", - "layers": "air_temperature_anomaly", - "url": "http://tds.gisclimatechange.ucar.edu/thredds/wms/products/products_best.ncd", - "type": "wms", - "maxRefreshIntervals": 9000, - "initialTimeSource": "2016-12-12T12:00:00.000Z", - "featureInfoTemplate": { - "name":"{{GRAY_INDEX}} W/m2" - } - }, - { - "name": "US Monthly Temperature and Precipitation", - "type": "wms-getCapabilities", - "url": "http://geoport.whoi.edu/thredds/wms/prism3/monthly" - } - ] - } - ] + "catalog": [ + { + "name": "WMS", + "type": "group", + "isPromoted": true, + "isOpen": true, + "items": [ + // { + // "name": "ncWMS2 with multiple styles", + // "type": "wms", + // "url": "http://www.smast.umassd.edu:8080/ncWMS2/wms", + // "layers": "FVCOM-NECOFS-GOM3/x" + // }, + { + "name": "TDS with multiple styles, COLORSCALERANGE, and a time dimension", + "type": "wms", + "url": "http://thredds.ucar.edu/thredds/wms/grib/NCEP/WW3/Global/Best", + "layers": "Significant_height_of_wind_waves_surface" + }, + { + "name": "ncWMS with multiple dimensions, including time", + "type": "wms", + "url": "http://geoport-dev.whoi.edu/thredds/wms/coawst_4/use/fmrc/coawst_4_use_best.ncd?service=WMS&version=1.3.0&request=GetCapabilities", + "layers": "temp" + }, + { + "name": "ncWMS with multiple dimensions, including time, with initialTimeSource", + "type": "wms", + "url": "http://geoport-dev.whoi.edu/thredds/wms/coawst_4/use/fmrc/coawst_4_use_best.ncd?service=WMS&version=1.3.0&request=GetCapabilities", + "layers": "temp", + "initialTimeSource": "2017-07-31T12:00:00Z" + }, + { + "name": "Total Vegetation Cover (PV + NPV)", + "type": "wms", + "url": "http://gsky.nci.org.au/ows", + "cacheDuration": "2h", + "layers": "global:totalcover", + "opacity": 1, + "initialTimeSource": "end", + "ignoreUnknownTileErrors": true, + "getFeatureInfoFormats": [{ "type": "none" }] + }, + { + "name": "Solar Satellite DNI & GHI, with initialTimeSource", + "layers": "Solar_Satellite_DNI_2014", + "url": "http://gis.aremi.nationalmap.gov.au/bom/wms", + "type": "wms", + "maxRefreshIntervals": 9000, + "initialTimeSource": "2014-06-30T22:00:00Z", + "featureInfoTemplate": { + "name": "{{GRAY_INDEX}} W/m2" + } + }, + { + "name": "Climate change data", + "layers": "air_temperature_anomaly", + "url": "http://tds.gisclimatechange.ucar.edu/thredds/wms/products/products_best.ncd", + "type": "wms", + "maxRefreshIntervals": 9000, + "initialTimeSource": "2016-12-12T12:00:00.000Z", + "featureInfoTemplate": { + "name": "{{GRAY_INDEX}} W/m2" + } + }, + { + "name": "US Monthly Temperature and Precipitation", + "type": "wms-getCapabilities", + "url": "http://geoport.whoi.edu/thredds/wms/prism3/monthly" + } + ] + } + ] } diff --git a/wwwroot/test/ods/datasets.json b/wwwroot/test/ods/datasets.json index 3c2c6838113..a79735f1462 100644 --- a/wwwroot/test/ods/datasets.json +++ b/wwwroot/test/ods/datasets.json @@ -132,28 +132,17 @@ "modified": "2020-09-16T10:42:08+00:00", "source_domain_address": null, "references": null, - "keyword": [ - "heat", - "urban heat", - "temperature", - "climate" - ], + "keyword": ["heat", "urban heat", "temperature", "climate"], "source_domain_title": null, - "geographic_reference": [ - "au_40_1" - ], + "geographic_reference": ["au_40_1"], "timezone": null, "title": "Benchmarking Heat across Campbelltown - aggregated measures", "parent_domain": "westernparklands", - "theme": [ - "Environmental Protection" - ], + "theme": ["Environmental Protection"], "modified_updates_on_data_change": false, "metadata_processed": "2021-02-03T01:35:32.280000+00:00", "data_processed": "2020-09-16T10:47:19+00:00", - "territory": [ - "New South Wales" - ], + "territory": ["New South Wales"], "description": "

    Contains location and aggregated heat measures captured via a network of more than 100 heat loggers installed in the council area.\u00a0

    ", "modified_updates_on_metadata_change": false, "shared_catalog": null, @@ -166,19 +155,13 @@ "language": "en", "license": null, "source_dataset": null, - "metadata_languages": [ - "en" - ], + "metadata_languages": ["en"], "oauth_scope": null, "federated": false, "license_url": null } }, - "features": [ - "analyze", - "geo", - "custom_view" - ] + "features": ["analyze", "geo", "custom_view"] } }, { @@ -240,12 +223,8 @@ "name": "metadata_time", "annotations": { "facet": [], - "facetsort": [ - "-alphanum" - ], - "timeserie_precision": [ - "hour" - ] + "facetsort": ["-alphanum"], + "timeserie_precision": ["hour"] } }, { @@ -254,12 +233,8 @@ "type": "double", "name": "heat_stress_index", "annotations": { - "decimals": [ - 1 - ], - "facetsort": [ - "-count" - ] + "decimals": [1], + "facetsort": ["-count"] } }, { @@ -268,9 +243,7 @@ "type": "double", "name": "payload_fields_uvindex", "annotations": { - "facetsort": [ - "-count" - ] + "facetsort": ["-count"] } }, { @@ -279,9 +252,7 @@ "type": "double", "name": "payload_fields_wshumidity", "annotations": { - "facetsort": [ - "-count" - ] + "facetsort": ["-count"] } }, { @@ -290,9 +261,7 @@ "type": "double", "name": "payload_fields_wstemperature", "annotations": { - "facetsort": [ - "-count" - ] + "facetsort": ["-count"] } }, { @@ -301,9 +270,7 @@ "type": "double", "name": "payload_fields_airpressure", "annotations": { - "facetsort": [ - "-count" - ] + "facetsort": ["-count"] } }, { @@ -312,9 +279,7 @@ "type": "double", "name": "payload_fields_brightness", "annotations": { - "facetsort": [ - "-count" - ] + "facetsort": ["-count"] } }, { @@ -323,9 +288,7 @@ "type": "double", "name": "payload_fields_gustdirection", "annotations": { - "facetsort": [ - "-count" - ] + "facetsort": ["-count"] } }, { @@ -334,9 +297,7 @@ "type": "double", "name": "payload_fields_gustspeed", "annotations": { - "facetsort": [ - "-count" - ] + "facetsort": ["-count"] } }, { @@ -345,9 +306,7 @@ "type": "double", "name": "payload_fields_precip", "annotations": { - "facetsort": [ - "-count" - ] + "facetsort": ["-count"] } }, { @@ -356,9 +315,7 @@ "type": "double", "name": "payload_fields_precipint", "annotations": { - "facetsort": [ - "-count" - ] + "facetsort": ["-count"] } }, { @@ -367,9 +324,7 @@ "type": "double", "name": "payload_fields_radiation", "annotations": { - "facetsort": [ - "-count" - ] + "facetsort": ["-count"] } }, { @@ -378,9 +333,7 @@ "type": "double", "name": "payload_fields_winddirection", "annotations": { - "facetsort": [ - "-count" - ] + "facetsort": ["-count"] } }, { @@ -389,9 +342,7 @@ "type": "double", "name": "payload_fields_windspeed", "annotations": { - "facetsort": [ - "-count" - ] + "facetsort": ["-count"] } }, { @@ -400,9 +351,7 @@ "type": "double", "name": "payload_fields_averagespl", "annotations": { - "facetsort": [ - "-count" - ] + "facetsort": ["-count"] } }, { @@ -411,9 +360,7 @@ "type": "double", "name": "payload_fields_carbonmonoxide", "annotations": { - "facetsort": [ - "-count" - ] + "facetsort": ["-count"] } }, { @@ -422,9 +369,7 @@ "type": "double", "name": "payload_fields_humidity", "annotations": { - "facetsort": [ - "-count" - ] + "facetsort": ["-count"] } }, { @@ -433,9 +378,7 @@ "type": "double", "name": "payload_fields_ibatt", "annotations": { - "facetsort": [ - "-count" - ] + "facetsort": ["-count"] } }, { @@ -444,9 +387,7 @@ "type": "double", "name": "payload_fields_nitrogendioxide", "annotations": { - "facetsort": [ - "-count" - ] + "facetsort": ["-count"] } }, { @@ -455,9 +396,7 @@ "type": "double", "name": "payload_fields_ozone", "annotations": { - "facetsort": [ - "-count" - ] + "facetsort": ["-count"] } }, { @@ -466,9 +405,7 @@ "type": "double", "name": "payload_fields_particulateserr", "annotations": { - "facetsort": [ - "-count" - ] + "facetsort": ["-count"] } }, { @@ -477,9 +414,7 @@ "type": "double", "name": "payload_fields_particulatesvsn", "annotations": { - "facetsort": [ - "-count" - ] + "facetsort": ["-count"] } }, { @@ -488,9 +423,7 @@ "type": "double", "name": "payload_fields_peakspl", "annotations": { - "facetsort": [ - "-count" - ] + "facetsort": ["-count"] } }, { @@ -499,9 +432,7 @@ "type": "double", "name": "payload_fields_pm1", "annotations": { - "facetsort": [ - "-count" - ] + "facetsort": ["-count"] } }, { @@ -510,9 +441,7 @@ "type": "double", "name": "payload_fields_pm10", "annotations": { - "facetsort": [ - "-count" - ] + "facetsort": ["-count"] } }, { @@ -521,9 +450,7 @@ "type": "double", "name": "payload_fields_pm25", "annotations": { - "facetsort": [ - "-count" - ] + "facetsort": ["-count"] } }, { @@ -532,9 +459,7 @@ "type": "double", "name": "payload_fields_temperature", "annotations": { - "facetsort": [ - "-count" - ] + "facetsort": ["-count"] } }, { @@ -543,9 +468,7 @@ "type": "double", "name": "payload_fields_vbatt", "annotations": { - "facetsort": [ - "-count" - ] + "facetsort": ["-count"] } }, { @@ -554,9 +477,7 @@ "type": "double", "name": "payload_fields_vpanel", "annotations": { - "facetsort": [ - "-count" - ] + "facetsort": ["-count"] } }, { @@ -565,9 +486,7 @@ "type": "double", "name": "payload_fields_fixstatus", "annotations": { - "facetsort": [ - "-count" - ] + "facetsort": ["-count"] } }, { @@ -576,9 +495,7 @@ "type": "double", "name": "payload_fields_hdop", "annotations": { - "facetsort": [ - "-count" - ] + "facetsort": ["-count"] } }, { @@ -587,9 +504,7 @@ "type": "double", "name": "payload_fields_nsat", "annotations": { - "facetsort": [ - "-count" - ] + "facetsort": ["-count"] } }, { @@ -613,27 +528,17 @@ "modified": "2020-12-07T05:27:41+00:00", "source_domain_address": null, "references": null, - "keyword": [ - "weather" - ], + "keyword": ["weather"], "source_domain_title": null, - "geographic_reference": [ - "au_80_11978", - "au_80_10780" - ], + "geographic_reference": ["au_80_11978", "au_80_10780"], "timezone": null, "title": "Environmental sensors", "parent_domain": "westernparklands", - "theme": [ - "Environmental Protection" - ], + "theme": ["Environmental Protection"], "modified_updates_on_data_change": false, "metadata_processed": "2021-06-18T06:00:13.031000+00:00", "data_processed": "2021-06-18T05:50:48+00:00", - "territory": [ - "Ingleburn", - "Campbelltown (NSW)" - ], + "territory": ["Ingleburn", "Campbelltown (NSW)"], "description": "

    Two environmental monitoring stations (EMS) were installed in December 2020. The EMS measures: particulate matter (PM 1.0, PM 2.5, PM 10), Nitrogen Dioxide, Carbon Monoxide, Ozone, temperature, relative humidity, and ambient noise.\u00a0

    ", "modified_updates_on_metadata_change": false, "shared_catalog": null, @@ -646,19 +551,13 @@ "language": "en", "license": "CC BY", "source_dataset": null, - "metadata_languages": [ - "en" - ], + "metadata_languages": ["en"], "oauth_scope": null, "federated": false, "license_url": "https://creativecommons.org/licenses/by/4.0/" } }, - "features": [ - "geo", - "analyze", - "timeserie" - ] + "features": ["geo", "analyze", "timeserie"] } }, { @@ -731,9 +630,7 @@ "type": "text", "name": "postcode", "annotations": { - "facetsort": [ - "-count" - ] + "facetsort": ["-count"] } }, { @@ -749,9 +646,7 @@ "type": "geo_point_2d", "name": "lat_long", "annotations": { - "facetsort": [ - "-count" - ] + "facetsort": ["-count"] } }, { @@ -854,21 +749,15 @@ "Local Businesses" ], "source_domain_title": null, - "geographic_reference": [ - "au_60_11500" - ], + "geographic_reference": ["au_60_11500"], "timezone": "Australia/Sydney", "title": "Local Business Directory - Campbelltown", "parent_domain": "westernparklands", - "theme": [ - "Investment, Tourism and Growth" - ], + "theme": ["Investment, Tourism and Growth"], "modified_updates_on_data_change": true, "metadata_processed": "2021-03-19T02:18:52.513000+00:00", "data_processed": "2021-03-19T02:18:51+00:00", - "territory": [ - "Campbelltown" - ], + "territory": ["Campbelltown"], "description": "

    Our local businesses are the heartbeat of our community. To support our local businesses, we encourage our community to use the local business directory to spend local, to keep jobs local.\u00a0\u00a0

    If you are a business in the Campbelltown City Council local government area add yourself to our business directory.

    ", "modified_updates_on_metadata_change": false, "shared_catalog": null, @@ -881,19 +770,13 @@ "language": "en", "license": "CC BY", "source_dataset": null, - "metadata_languages": [ - "en" - ], + "metadata_languages": ["en"], "oauth_scope": null, "federated": false, "license_url": "https://creativecommons.org/licenses/by/4.0/" } }, - "features": [ - "analyze", - "geo", - "custom_view" - ] + "features": ["analyze", "geo", "custom_view"] } }, { @@ -1057,9 +940,7 @@ "type": "geo_point_2d", "name": "site_location", "annotations": { - "facetsort": [ - "-count" - ] + "facetsort": ["-count"] } } ], @@ -1088,10 +969,7 @@ "Campbelltown City Council" ], "source_domain_title": null, - "geographic_reference": [ - "au_60_11500", - "au_60_18400" - ], + "geographic_reference": ["au_60_11500", "au_60_18400"], "timezone": null, "title": "Services, Facilities & POI - Campbelltown", "parent_domain": "westernparklands", @@ -1105,10 +983,7 @@ "modified_updates_on_data_change": false, "metadata_processed": "2021-02-19T02:05:18.161000+00:00", "data_processed": "2021-02-19T02:05:17+00:00", - "territory": [ - "Campbelltown", - "Wollondilly" - ], + "territory": ["Campbelltown", "Wollondilly"], "description": "

    We provide a wide range of services and facilities including Libraries; Parks, Sport & Recreation; Child Care; Arts & Culture; Aquatics, Fitness & Indoor Sports; Facilities for Hire; Animal Care Facility; Sports Stadium & Athletics Centre.

    ", "modified_updates_on_metadata_change": false, "shared_catalog": null, @@ -1121,19 +996,13 @@ "language": "en", "license": "CC BY", "source_dataset": null, - "metadata_languages": [ - "en" - ], + "metadata_languages": ["en"], "oauth_scope": null, "federated": false, "license_url": "https://creativecommons.org/licenses/by/4.0/" } }, - "features": [ - "analyze", - "geo", - "custom_view" - ] + "features": ["analyze", "geo", "custom_view"] } }, { @@ -1211,9 +1080,7 @@ "type": "int", "name": "_0_to_4_years_number_of_people", "annotations": { - "facetsort": [ - "-count" - ] + "facetsort": ["-count"] } }, { @@ -1236,9 +1103,7 @@ "type": "int", "name": "_65_years_and_over_number_of_pe", "annotations": { - "facetsort": [ - "-count" - ] + "facetsort": ["-count"] } }, { @@ -1261,9 +1126,7 @@ "type": "int", "name": "not_fluent_in_english_number_o", "annotations": { - "facetsort": [ - "-count" - ] + "facetsort": ["-count"] } }, { @@ -1286,9 +1149,7 @@ "type": "int", "name": "low_income_650_w_number_of_h", "annotations": { - "facetsort": [ - "-count" - ] + "facetsort": ["-count"] } }, { @@ -1304,9 +1165,7 @@ "type": "int", "name": "households", "annotations": { - "facetsort": [ - "-count" - ] + "facetsort": ["-count"] } }, { @@ -1315,9 +1174,7 @@ "type": "int", "name": "housing_stress_number_of_house", "annotations": { - "facetsort": [ - "-count" - ] + "facetsort": ["-count"] } }, { @@ -1333,9 +1190,7 @@ "type": "int", "name": "housing_stress_households", "annotations": { - "facetsort": [ - "-count" - ] + "facetsort": ["-count"] } }, { @@ -1344,9 +1199,7 @@ "type": "int", "name": "mortgage_stress_number_of_hous", "annotations": { - "facetsort": [ - "-count" - ] + "facetsort": ["-count"] } }, { @@ -1355,9 +1208,7 @@ "type": "int", "name": "mortgage_stress_percent_of_hou", "annotations": { - "facetsort": [ - "-count" - ] + "facetsort": ["-count"] } }, { @@ -1366,9 +1217,7 @@ "type": "int", "name": "households1", "annotations": { - "facetsort": [ - "-count" - ] + "facetsort": ["-count"] } }, { @@ -1377,9 +1226,7 @@ "type": "int", "name": "rental_stress_number_of_househ", "annotations": { - "facetsort": [ - "-count" - ] + "facetsort": ["-count"] } }, { @@ -1388,9 +1235,7 @@ "type": "double", "name": "rental_stress_percent_of_house", "annotations": { - "facetsort": [ - "-count" - ] + "facetsort": ["-count"] } }, { @@ -1399,9 +1244,7 @@ "type": "int", "name": "households2", "annotations": { - "facetsort": [ - "-count" - ] + "facetsort": ["-count"] } } ], @@ -1413,21 +1256,15 @@ "references": null, "keyword": null, "source_domain_title": null, - "geographic_reference": [ - "au_60_11500" - ], + "geographic_reference": ["au_60_11500"], "timezone": null, "title": "Vulnerability", "parent_domain": "westernparklands", - "theme": [ - "Community, Events and Education" - ], + "theme": ["Community, Events and Education"], "modified_updates_on_data_change": false, "metadata_processed": "2021-04-05T22:51:07.462000+00:00", "data_processed": "2021-04-05T22:51:06+00:00", - "territory": [ - "Campbelltown" - ], + "territory": ["Campbelltown"], "description": "

    Vulnerability dataset provides statistics on the multiple stressors and shocks within\nthe community including population, social, and economic factors. Data\ncomponents include Population (Susceptible groups); Social (Language); Economic\nstress (Income, Household, Mortgage, Rental).

    ", "modified_updates_on_metadata_change": false, "shared_catalog": null, @@ -1440,19 +1277,13 @@ "language": "en", "license": null, "source_dataset": null, - "metadata_languages": [ - "en" - ], + "metadata_languages": ["en"], "oauth_scope": null, "federated": false, "license_url": null } }, - "features": [ - "analyze", - "geo", - "custom_view" - ] + "features": ["analyze", "geo", "custom_view"] } }, { @@ -1557,21 +1388,15 @@ "Western Parkland city Waste Collection" ], "source_domain_title": null, - "geographic_reference": [ - "au_60_11500" - ], + "geographic_reference": ["au_60_11500"], "timezone": "Australia/Sydney", "title": "Waste Bin Collection Zones - Campbelltown", "parent_domain": "westernparklands", - "theme": [ - "Waste and Recycling" - ], + "theme": ["Waste and Recycling"], "modified_updates_on_data_change": false, "metadata_processed": "2021-03-10T00:22:08.651000+00:00", "data_processed": "2021-02-11T09:55:21+00:00", - "territory": [ - "Campbelltown" - ], + "territory": ["Campbelltown"], "description": "

    Waste bin collection is just one of the key services Council do for our community.\u00a0 Waste bin collection zones provide the collection day information.

    Data Currency
    Council will endeavour to refresh the dataset every six months until such time we can integrate our systems.\u00a0\u00a0

    This dataset is due to be refreshed in September 2021.

    Data Accuracy\u00a0
    The spatial accuracy of this information is reliant upon the NSW Spatial Services cadastre datasets. Dataset information is sourced from the Campbelltown City Council GIS dataset.\u00a0 All information is provided and updated by the various stakeholders and custodians within the Council.


    ", "modified_updates_on_metadata_change": false, "shared_catalog": null, @@ -1584,20 +1409,14 @@ "language": "en", "license": "CC BY", "source_dataset": null, - "metadata_languages": [ - "en" - ], + "metadata_languages": ["en"], "oauth_scope": null, "federated": false, "license_url": "https://creativecommons.org/licenses/by/4.0/" } }, - "features": [ - "analyze", - "geo", - "custom_view" - ] + "features": ["analyze", "geo", "custom_view"] } } ] -} \ No newline at end of file +} diff --git a/wwwroot/test/ods/facets.json b/wwwroot/test/ods/facets.json index 0256ea70c4b..c1df77c1c67 100644 --- a/wwwroot/test/ods/facets.json +++ b/wwwroot/test/ods/facets.json @@ -347,4 +347,4 @@ ] } ] -} \ No newline at end of file +} diff --git a/wwwroot/test/ods/weather-station-100.json b/wwwroot/test/ods/weather-station-100.json index cca680f6ba3..af061399f27 100644 --- a/wwwroot/test/ods/weather-station-100.json +++ b/wwwroot/test/ods/weather-station-100.json @@ -2920,4 +2920,4 @@ } } ] -} \ No newline at end of file +} diff --git a/wwwroot/test/ods/weather-station-dataset.json b/wwwroot/test/ods/weather-station-dataset.json index 1905f3d2dcf..984daca833a 100644 --- a/wwwroot/test/ods/weather-station-dataset.json +++ b/wwwroot/test/ods/weather-station-dataset.json @@ -57,12 +57,8 @@ "name": "metadata_time", "annotations": { "facet": [], - "facetsort": [ - "-alphanum" - ], - "timeserie_precision": [ - "hour" - ] + "facetsort": ["-alphanum"], + "timeserie_precision": ["hour"] } }, { @@ -71,12 +67,8 @@ "type": "double", "name": "heat_stress_index", "annotations": { - "decimals": [ - 1 - ], - "facetsort": [ - "-count" - ] + "decimals": [1], + "facetsort": ["-count"] } }, { @@ -85,9 +77,7 @@ "type": "double", "name": "payload_fields_uvindex", "annotations": { - "facetsort": [ - "-count" - ] + "facetsort": ["-count"] } }, { @@ -96,9 +86,7 @@ "type": "double", "name": "payload_fields_wshumidity", "annotations": { - "facetsort": [ - "-count" - ] + "facetsort": ["-count"] } }, { @@ -107,9 +95,7 @@ "type": "double", "name": "payload_fields_wstemperature", "annotations": { - "facetsort": [ - "-count" - ] + "facetsort": ["-count"] } }, { @@ -118,9 +104,7 @@ "type": "double", "name": "payload_fields_airpressure", "annotations": { - "facetsort": [ - "-count" - ] + "facetsort": ["-count"] } }, { @@ -129,9 +113,7 @@ "type": "double", "name": "payload_fields_brightness", "annotations": { - "facetsort": [ - "-count" - ] + "facetsort": ["-count"] } }, { @@ -140,9 +122,7 @@ "type": "double", "name": "payload_fields_gustdirection", "annotations": { - "facetsort": [ - "-count" - ] + "facetsort": ["-count"] } }, { @@ -151,9 +131,7 @@ "type": "double", "name": "payload_fields_gustspeed", "annotations": { - "facetsort": [ - "-count" - ] + "facetsort": ["-count"] } }, { @@ -162,9 +140,7 @@ "type": "double", "name": "payload_fields_precip", "annotations": { - "facetsort": [ - "-count" - ] + "facetsort": ["-count"] } }, { @@ -173,9 +149,7 @@ "type": "double", "name": "payload_fields_precipint", "annotations": { - "facetsort": [ - "-count" - ] + "facetsort": ["-count"] } }, { @@ -184,9 +158,7 @@ "type": "double", "name": "payload_fields_radiation", "annotations": { - "facetsort": [ - "-count" - ] + "facetsort": ["-count"] } }, { @@ -195,9 +167,7 @@ "type": "double", "name": "payload_fields_winddirection", "annotations": { - "facetsort": [ - "-count" - ] + "facetsort": ["-count"] } }, { @@ -206,9 +176,7 @@ "type": "double", "name": "payload_fields_windspeed", "annotations": { - "facetsort": [ - "-count" - ] + "facetsort": ["-count"] } }, { @@ -217,9 +185,7 @@ "type": "double", "name": "payload_fields_averagespl", "annotations": { - "facetsort": [ - "-count" - ] + "facetsort": ["-count"] } }, { @@ -228,9 +194,7 @@ "type": "double", "name": "payload_fields_carbonmonoxide", "annotations": { - "facetsort": [ - "-count" - ] + "facetsort": ["-count"] } }, { @@ -239,9 +203,7 @@ "type": "double", "name": "payload_fields_humidity", "annotations": { - "facetsort": [ - "-count" - ] + "facetsort": ["-count"] } }, { @@ -250,9 +212,7 @@ "type": "double", "name": "payload_fields_ibatt", "annotations": { - "facetsort": [ - "-count" - ] + "facetsort": ["-count"] } }, { @@ -261,9 +221,7 @@ "type": "double", "name": "payload_fields_nitrogendioxide", "annotations": { - "facetsort": [ - "-count" - ] + "facetsort": ["-count"] } }, { @@ -272,9 +230,7 @@ "type": "double", "name": "payload_fields_ozone", "annotations": { - "facetsort": [ - "-count" - ] + "facetsort": ["-count"] } }, { @@ -283,9 +239,7 @@ "type": "double", "name": "payload_fields_particulateserr", "annotations": { - "facetsort": [ - "-count" - ] + "facetsort": ["-count"] } }, { @@ -294,9 +248,7 @@ "type": "double", "name": "payload_fields_particulatesvsn", "annotations": { - "facetsort": [ - "-count" - ] + "facetsort": ["-count"] } }, { @@ -305,9 +257,7 @@ "type": "double", "name": "payload_fields_peakspl", "annotations": { - "facetsort": [ - "-count" - ] + "facetsort": ["-count"] } }, { @@ -316,9 +266,7 @@ "type": "double", "name": "payload_fields_pm1", "annotations": { - "facetsort": [ - "-count" - ] + "facetsort": ["-count"] } }, { @@ -327,9 +275,7 @@ "type": "double", "name": "payload_fields_pm10", "annotations": { - "facetsort": [ - "-count" - ] + "facetsort": ["-count"] } }, { @@ -338,9 +284,7 @@ "type": "double", "name": "payload_fields_pm25", "annotations": { - "facetsort": [ - "-count" - ] + "facetsort": ["-count"] } }, { @@ -349,9 +293,7 @@ "type": "double", "name": "payload_fields_temperature", "annotations": { - "facetsort": [ - "-count" - ] + "facetsort": ["-count"] } }, { @@ -360,9 +302,7 @@ "type": "double", "name": "payload_fields_vbatt", "annotations": { - "facetsort": [ - "-count" - ] + "facetsort": ["-count"] } }, { @@ -371,9 +311,7 @@ "type": "double", "name": "payload_fields_vpanel", "annotations": { - "facetsort": [ - "-count" - ] + "facetsort": ["-count"] } }, { @@ -382,9 +320,7 @@ "type": "double", "name": "payload_fields_fixstatus", "annotations": { - "facetsort": [ - "-count" - ] + "facetsort": ["-count"] } }, { @@ -393,9 +329,7 @@ "type": "double", "name": "payload_fields_hdop", "annotations": { - "facetsort": [ - "-count" - ] + "facetsort": ["-count"] } }, { @@ -404,9 +338,7 @@ "type": "double", "name": "payload_fields_nsat", "annotations": { - "facetsort": [ - "-count" - ] + "facetsort": ["-count"] } }, { @@ -430,27 +362,17 @@ "modified": "2020-12-07T05:27:41+00:00", "source_domain_address": null, "references": null, - "keyword": [ - "weather" - ], + "keyword": ["weather"], "source_domain_title": null, - "geographic_reference": [ - "au_80_11978", - "au_80_10780" - ], + "geographic_reference": ["au_80_11978", "au_80_10780"], "timezone": null, "title": "Environmental sensors", "parent_domain": "westernparklands", - "theme": [ - "Environmental Protection" - ], + "theme": ["Environmental Protection"], "modified_updates_on_data_change": false, "metadata_processed": "2021-06-18T06:00:13.031000+00:00", "data_processed": "2021-06-18T05:50:48+00:00", - "territory": [ - "Ingleburn", - "Campbelltown (NSW)" - ], + "territory": ["Ingleburn", "Campbelltown (NSW)"], "description": "

    Two environmental monitoring stations (EMS) were installed in December 2020. The EMS measures: particulate matter (PM 1.0, PM 2.5, PM 10), Nitrogen Dioxide, Carbon Monoxide, Ozone, temperature, relative humidity, and ambient noise.\u00a0

    ", "modified_updates_on_metadata_change": false, "shared_catalog": null, @@ -463,18 +385,12 @@ "language": "en", "license": "CC BY", "source_dataset": null, - "metadata_languages": [ - "en" - ], + "metadata_languages": ["en"], "oauth_scope": null, "federated": false, "license_url": "https://creativecommons.org/licenses/by/4.0/" } }, - "features": [ - "geo", - "analyze", - "timeserie" - ] + "features": ["geo", "analyze", "timeserie"] } -} \ No newline at end of file +} diff --git a/wwwroot/test/ods/weather-station-groupby.json b/wwwroot/test/ods/weather-station-groupby.json index 06b94a1b1a1..078bf67bd33 100644 --- a/wwwroot/test/ods/weather-station-groupby.json +++ b/wwwroot/test/ods/weather-station-groupby.json @@ -35,4 +35,4 @@ } } ] -} \ No newline at end of file +} diff --git a/wwwroot/test/regionMapping/additionalRegion.json b/wwwroot/test/regionMapping/additionalRegion.json index 6ed8b3b9941..ffa358cff15 100644 --- a/wwwroot/test/regionMapping/additionalRegion.json +++ b/wwwroot/test/regionMapping/additionalRegion.json @@ -14,9 +14,7 @@ "serverMaxNativeZoom": 12, "serverMaxZoom": 28, "bbox": [ - 96.81694140799998, - -43.74050960300003, - 159.10921900799997, + 96.81694140799998, -43.74050960300003, 159.10921900799997, -9.142175976999999 ], "nameProp": "SOME_OTHER_REGION" @@ -64,9 +62,7 @@ "serverMaxNativeZoom": 12, "serverMaxZoom": 28, "bbox": [ - 112.92111395999996, - -43.74050957999999, - 153.63872711999997, + 112.92111395999996, -43.74050957999999, 153.63872711999997, -9.142175969999997 ], "nameProp": "LGA_NAME11" From dfd159255fe5c6649abd5ea98cc8246c08090a0b Mon Sep 17 00:00:00 2001 From: glughi Date: Fri, 16 Sep 2022 17:29:53 +0200 Subject: [PATCH 070/215] Change movement amount in ZoomControl --- lib/ReactViews/Map/Navigation/Items/ZoomControl.tsx | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/lib/ReactViews/Map/Navigation/Items/ZoomControl.tsx b/lib/ReactViews/Map/Navigation/Items/ZoomControl.tsx index 3b94179a885..f24bf3533df 100644 --- a/lib/ReactViews/Map/Navigation/Items/ZoomControl.tsx +++ b/lib/ReactViews/Map/Navigation/Items/ZoomControl.tsx @@ -114,7 +114,7 @@ class ZoomControl extends React.Component { this.props.terria.analytics?.logEvent(Category.view, ViewAction.zoomIn); if (isDefined(this.props.terria.leaflet)) { - this.props.terria.leaflet.map.zoomIn(1); + this.props.terria.leaflet.map.zoomIn(0.5); } if (isDefined(this.props.terria.cesium)) { @@ -128,7 +128,7 @@ class ZoomControl extends React.Component { ); const movementVector = Cartesian3.multiplyByScalar( direction, - 2.0 / 3.0, + 0.4, cartesian3Scratch ); const endPosition = Cartesian3.add( @@ -139,7 +139,7 @@ class ZoomControl extends React.Component { this.flyToPosition(scene, endPosition); } - // this.props.terria.currentViewer.notifyRepaintRequired(); + this.props.terria.currentViewer.notifyRepaintRequired(); } zoomOut() { @@ -147,7 +147,7 @@ class ZoomControl extends React.Component { this.props.terria.analytics?.logEvent(Category.view, ViewAction.zoomOut); if (isDefined(this.props.terria.leaflet)) { - this.props.terria.leaflet.map.zoomOut(1); + this.props.terria.leaflet.map.zoomOut(0.5); } if (isDefined(this.props.terria.cesium)) { @@ -161,7 +161,7 @@ class ZoomControl extends React.Component { ); const movementVector = Cartesian3.multiplyByScalar( direction, - -2.0, + -0.6, cartesian3Scratch ); const endPosition = Cartesian3.add( @@ -171,7 +171,7 @@ class ZoomControl extends React.Component { ); this.flyToPosition(scene, endPosition); } - // this.props.terria.currentViewer.notifyRepaintRequired(); + this.props.terria.currentViewer.notifyRepaintRequired(); } zoomReset() { From 5bdb4c64ae9a46475b71069e664a44c1916784d5 Mon Sep 17 00:00:00 2001 From: glughi Date: Fri, 23 Sep 2022 16:37:18 +0200 Subject: [PATCH 071/215] Fix merge --- lib/ModelMixins/GeojsonMixin.ts | 2 + lib/Models/Cesium.ts | 2 + .../FeatureInfo/FeatureInfoPanel.tsx | 16 ++++- .../Map/Panels/SharePanel/FileInput.jsx | 62 ------------------- .../Panels/SharePanel/ShareUrl/ShareUrl.tsx | 51 ++++++++++++++- .../SharePanel/{ => ShareUrl}/file-input.scss | 8 +-- .../{ => ShareUrl}/file-input.scss.d.ts | 0 lib/ReactViews/Mobile/MobileHeader.jsx | 17 +++++ 8 files changed, 88 insertions(+), 70 deletions(-) delete mode 100644 lib/ReactViews/Map/Panels/SharePanel/FileInput.jsx rename lib/ReactViews/Map/Panels/SharePanel/{ => ShareUrl}/file-input.scss (63%) rename lib/ReactViews/Map/Panels/SharePanel/{ => ShareUrl}/file-input.scss.d.ts (100%) diff --git a/lib/ModelMixins/GeojsonMixin.ts b/lib/ModelMixins/GeojsonMixin.ts index afaeaa00c4b..7d900f771bc 100644 --- a/lib/ModelMixins/GeojsonMixin.ts +++ b/lib/ModelMixins/GeojsonMixin.ts @@ -63,8 +63,10 @@ import formatPropertyValue from "../Core/formatPropertyValue"; import hashFromString from "../Core/hashFromString"; import isDefined from "../Core/isDefined"; import { + isJsonArray, isJsonNumber, isJsonObject, + JsonArray, JsonObject, isJsonString } from "../Core/Json"; diff --git a/lib/Models/Cesium.ts b/lib/Models/Cesium.ts index 5009bd9f4ff..f420975f478 100644 --- a/lib/Models/Cesium.ts +++ b/lib/Models/Cesium.ts @@ -86,6 +86,8 @@ import TerriaFeature from "./Feature/Feature"; import GlobeOrMap from "./GlobeOrMap"; import Terria from "./Terria"; import UserDrawing from "./UserDrawing"; +import Color from "terriajs-cesium/Source/Core/Color"; +import CommonStrata from "./Definition/CommonStrata"; //import Cesium3DTilesInspector from "terriajs-cesium/Source/Widgets/Cesium3DTilesInspector/Cesium3DTilesInspector"; diff --git a/lib/ReactViews/FeatureInfo/FeatureInfoPanel.tsx b/lib/ReactViews/FeatureInfo/FeatureInfoPanel.tsx index a37544d1a29..2df6170f941 100644 --- a/lib/ReactViews/FeatureInfo/FeatureInfoPanel.tsx +++ b/lib/ReactViews/FeatureInfo/FeatureInfoPanel.tsx @@ -32,6 +32,7 @@ import Loader from "../Loader"; import { withViewState } from "../StandardUserInterface/ViewStateContext"; import Styles from "./feature-info-panel.scss"; import FeatureInfoCatalogItem from "./FeatureInfoCatalogItem"; +import sampleTerrainMostDetailed from "terriajs-cesium/Source/Core/sampleTerrainMostDetailed"; const DragWrapper = require("../DragWrapper"); @@ -43,6 +44,11 @@ interface Props { @observer class FeatureInfoPanel extends React.Component { + + state = { + elev: 0, + }; + componentDidMount() { const { t } = this.props; const terria = this.props.viewState.terria; @@ -257,12 +263,11 @@ class FeatureInfoPanel extends React.Component { return (
    - + {!!this.props.viewState.terria.cesium && this.state.elev &&
    Altitudine {this.state.elev} m s.l.m. -
    -
    +
    }
    Lat / Lon  @@ -343,6 +348,11 @@ class FeatureInfoPanel extends React.Component { position = terria.pickedFeatures?.pickPosition; } + // Store position in Terria state + if (position) { + terria.pickedPosition = position; + } + const locationElements = position ? (
  • {this.renderLocationItem(position)}
  • ) : null; diff --git a/lib/ReactViews/Map/Panels/SharePanel/FileInput.jsx b/lib/ReactViews/Map/Panels/SharePanel/FileInput.jsx deleted file mode 100644 index b1b99a6634c..00000000000 --- a/lib/ReactViews/Map/Panels/SharePanel/FileInput.jsx +++ /dev/null @@ -1,62 +0,0 @@ -import React from "react"; -import PropTypes from "prop-types"; -import createReactClass from "create-react-class"; -import classNames from "classnames"; -import { withTranslation } from "react-i18next"; - -import Styles from "./file-input.scss"; - -// When uploading a file -// use an button element to have consistent stylying -const FileInput = createReactClass({ - propTypes: { - label: PropTypes.string, - onChange: PropTypes.func, - accept: PropTypes.string, - t: PropTypes.func.isRequired - }, - - getInitialState() { - const { t } = this.props; - return { - value: t("addData.browse"), - hovered: false - }; - }, - - handleChange(e) { - this.setState({ - value: e.target.value.split(/(\\|\/)/g).pop() - }); - if (this.props.onChange) { - this.props.onChange(e); - } - }, - - render() { - return ( -
    this.setState({ hovered: true })} - onMouseLeave={() => this.setState({ hovered: false })} - > - - -
    - ); - } -}); - -module.exports = withTranslation()(FileInput); diff --git a/lib/ReactViews/Map/Panels/SharePanel/ShareUrl/ShareUrl.tsx b/lib/ReactViews/Map/Panels/SharePanel/ShareUrl/ShareUrl.tsx index 766047564b4..89bb57c8867 100644 --- a/lib/ReactViews/Map/Panels/SharePanel/ShareUrl/ShareUrl.tsx +++ b/lib/ReactViews/Map/Panels/SharePanel/ShareUrl/ShareUrl.tsx @@ -12,16 +12,19 @@ import Terria from "../../../../../Models/Terria"; import ViewState from "../../../../../ReactViewModels/ViewState"; import Spacing from "../../../../../Styled/Spacing"; -import { TextSpan } from "../../../../../Styled/Text"; +import Text, { TextSpan } from "../../../../../Styled/Text"; import { buildShareLink, buildShortShareLink } from "../BuildShareLink"; import { ShareUrlWarning } from "./ShareUrlWarning"; import Clipboard from "../../../../Clipboard"; import Input from "../../../../../Styled/Input"; +import Button from "../../../../../Styled/Button"; +import Box from "../../../../../Styled/Box"; import { Category, ShareAction } from "../../../../../Core/AnalyticEvents/analyticEvents"; +import Styles from "./file-input.scss"; interface IShareUrlProps { terria: Terria; @@ -63,6 +66,24 @@ export const ShareUrl = forwardRef< const [shorteningInProgress, setShorteningInProgress] = useState(false); const [placeholder, setPlaceholder] = useState(); + const save = () => { + const a = document.createElement("a"); + a.href = "data:text/plain;charset=utf-8," + encodeURIComponent(shareUrl); + a.download = "mappa.geo3d"; + a.click(); + }; + + const load = (e: React.ChangeEvent) => { + if (e?.target?.files && e.target.files.length === 1) { + const file = e.target.files[0]; + const reader = new FileReader(); + reader.onload = function (f: any) { + window.open(f.target.result, "_self"); + }; + reader.readAsText(file); + } + }; + useImperativeHandle( forwardRef, () => ({ @@ -139,6 +160,30 @@ export const ShareUrl = forwardRef< viewState={viewState} callback={callback || (() => {})} /> + +
    + Salva Mappa + + Salva o carica una mappa da file + + + Salva + +
    + + < label className={Styles.btn} style={{ borderRadius: 4 }}> + Carica + +
    +
    +
    ); } @@ -147,3 +192,7 @@ export const ShareUrl = forwardRef< const Explanation = styled(TextSpan)` opacity: 0.8; `; + +const PrintButton = styled(Button)` + border-radius: 4px; +`; diff --git a/lib/ReactViews/Map/Panels/SharePanel/file-input.scss b/lib/ReactViews/Map/Panels/SharePanel/ShareUrl/file-input.scss similarity index 63% rename from lib/ReactViews/Map/Panels/SharePanel/file-input.scss rename to lib/ReactViews/Map/Panels/SharePanel/ShareUrl/file-input.scss index 7a803c76142..012e5b9f277 100644 --- a/lib/ReactViews/Map/Panels/SharePanel/file-input.scss +++ b/lib/ReactViews/Map/Panels/SharePanel/ShareUrl/file-input.scss @@ -1,5 +1,5 @@ @import "~terriajs-variables"; -@import "../../../../Sass/common/mixins"; +@import "../../../../../Sass/common/mixins"; @include empty-module("file-input"); @@ -23,10 +23,10 @@ } .btn { - composes: btn from "../../../../Sass/common/_buttons.scss"; - composes: btn-primary from "../../../../Sass/common/_buttons.scss"; + composes: btn from "../../../../../Sass/common/_buttons.scss"; + composes: btn-primary from "../../../../../Sass/common/_buttons.scss"; &--hover { - composes: btn-primary--hover from "../../../../Sass/common/_buttons.scss"; + composes: btn-primary--hover from "../../../../../Sass/common/_buttons.scss"; } } diff --git a/lib/ReactViews/Map/Panels/SharePanel/file-input.scss.d.ts b/lib/ReactViews/Map/Panels/SharePanel/ShareUrl/file-input.scss.d.ts similarity index 100% rename from lib/ReactViews/Map/Panels/SharePanel/file-input.scss.d.ts rename to lib/ReactViews/Map/Panels/SharePanel/ShareUrl/file-input.scss.d.ts diff --git a/lib/ReactViews/Mobile/MobileHeader.jsx b/lib/ReactViews/Mobile/MobileHeader.jsx index 16d9bb6fcd6..acba023142b 100644 --- a/lib/ReactViews/Mobile/MobileHeader.jsx +++ b/lib/ReactViews/Mobile/MobileHeader.jsx @@ -91,6 +91,23 @@ class MobileHeader extends React.Component { }); } + onMobileSwitchViewClicked() { + runInAction(() => { + const mainViewer = this.props.terria.mainViewer; + if (mainViewer.viewerMode === ViewerMode.Leaflet) { + setViewerMode("3d", mainViewer); + this.props.terria.setLocalProperty("viewermode", ViewerMode.Cesium); + } else { + setViewerMode("2d", mainViewer); + this.props.terria.setLocalProperty("viewermode", ViewerMode.Leaflet); + } + }); + } + + onMobileAddDataCatalogClicked() { + this.toggleView(this.props.viewState.mobileViewOptions.addData); + } + changeCatalogSearchText(newText) { runInAction(() => { this.props.viewState.searchState.catalogSearchText = newText; From adefa6de4db8c0b59dc9b8bc7e7cf5239b48270e Mon Sep 17 00:00:00 2001 From: glughi Date: Tue, 27 Sep 2022 11:12:27 +0200 Subject: [PATCH 072/215] Fix merge --- lib/ReactViews/Mobile/MobileHeader.jsx | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/ReactViews/Mobile/MobileHeader.jsx b/lib/ReactViews/Mobile/MobileHeader.jsx index acba023142b..4d7283604e8 100644 --- a/lib/ReactViews/Mobile/MobileHeader.jsx +++ b/lib/ReactViews/Mobile/MobileHeader.jsx @@ -93,13 +93,13 @@ class MobileHeader extends React.Component { onMobileSwitchViewClicked() { runInAction(() => { - const mainViewer = this.props.terria.mainViewer; + const mainViewer = this.props.viewState.terria.mainViewer; if (mainViewer.viewerMode === ViewerMode.Leaflet) { setViewerMode("3d", mainViewer); - this.props.terria.setLocalProperty("viewermode", ViewerMode.Cesium); + this.props.viewState.terria.setLocalProperty("viewermode", ViewerMode.Cesium); } else { setViewerMode("2d", mainViewer); - this.props.terria.setLocalProperty("viewermode", ViewerMode.Leaflet); + this.props.viewState.terria.setLocalProperty("viewermode", ViewerMode.Leaflet); } }); } From 9b6397ce1b5ec58892c9aa2c9b7f8b27489db800 Mon Sep 17 00:00:00 2001 From: glughi Date: Tue, 27 Sep 2022 11:13:06 +0200 Subject: [PATCH 073/215] Reduce amount of zoom to My Location --- lib/ReactViews/Map/Navigation/Items/MyLocation.ts | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/lib/ReactViews/Map/Navigation/Items/MyLocation.ts b/lib/ReactViews/Map/Navigation/Items/MyLocation.ts index ab744960ec7..c8a7d67499e 100644 --- a/lib/ReactViews/Map/Navigation/Items/MyLocation.ts +++ b/lib/ReactViews/Map/Navigation/Items/MyLocation.ts @@ -14,6 +14,7 @@ import ViewerMode from "../../../../Models/ViewerMode"; import { GLYPHS } from "../../../../Styled/Icon"; import StyleTraits from "../../../../Traits/TraitsClasses/StyleTraits"; import MapNavigationItemController from "../../../../ViewModels/MapNavigation/MapNavigationItemController"; +import URI from "urijs"; interface PropTypes { terria: Terria; @@ -102,10 +103,10 @@ class MyLocation extends MapNavigationItemController { } else { // west, south, east, north, result const rectangle = Rectangle.fromDegrees( - longitude - 0.1, - latitude - 0.1, - longitude + 0.1, - latitude + 0.1 + longitude - 0.005, + latitude - 0.005, + longitude + 0.005, + latitude + 0.005 ); this.terria.currentViewer.zoomTo(rectangle); } From a2c85f4919791f9ef28e8a7dc0cf2339e4fcd305 Mon Sep 17 00:00:00 2001 From: glughi Date: Tue, 27 Sep 2022 11:25:55 +0200 Subject: [PATCH 074/215] Run prettier --- CHANGES.md | 1 + lib/Models/Terria.ts | 2 +- lib/ReactViewModels/ViewState.ts | 2 +- .../FeatureInfo/FeatureInfoPanel.tsx | 8 +-- .../Panels/SharePanel/ShareUrl/ShareUrl.tsx | 9 ++- lib/ReactViews/Mobile/MobileHeader.jsx | 10 ++- .../StandardUserInterface/MapColumn.jsx | 3 +- .../StandardUserInterface.tsx | 6 +- wwwroot/data/regionMapping.json | 72 ++++--------------- 9 files changed, 36 insertions(+), 77 deletions(-) diff --git a/CHANGES.md b/CHANGES.md index d64e3b00dfe..5ced6abf6d4 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -37,6 +37,7 @@ #### next release (8.2.13) #### next release (8.2.14) + #### next release (8.2.16) - Added `excludeInactiveDatasets` to `CkanCatalogGroup` (`true` by default). This will filter out CKAN Datasets which have `state` or `data_state` (data.gov.au specific) **not** set to `"active"`. diff --git a/lib/Models/Terria.ts b/lib/Models/Terria.ts index 0b36fbba669..992dab890a5 100644 --- a/lib/Models/Terria.ts +++ b/lib/Models/Terria.ts @@ -578,7 +578,7 @@ export default class Terria { * Gets or sets a value indicating whether the path line drawn by MeasureTool is clamped to ground. * @type {Boolean} */ - @observable clampMeasureLineToGround: boolean = true; + @observable clampMeasureLineToGround: boolean = true; /** * Gets or sets the stack of map interactions modes. The mode at the top of the stack diff --git a/lib/ReactViewModels/ViewState.ts b/lib/ReactViewModels/ViewState.ts index 5b8e407a4b9..ebda94855b2 100644 --- a/lib/ReactViewModels/ViewState.ts +++ b/lib/ReactViewModels/ViewState.ts @@ -311,7 +311,7 @@ export default class ViewState { * @type {Boolean} */ @observable elevationChartIsVisible: boolean = false; - + /** * True if this is (or will be) the first time the user has added data to the map. * @type {Boolean} diff --git a/lib/ReactViews/FeatureInfo/FeatureInfoPanel.tsx b/lib/ReactViews/FeatureInfo/FeatureInfoPanel.tsx index 2df6170f941..9122f0cff15 100644 --- a/lib/ReactViews/FeatureInfo/FeatureInfoPanel.tsx +++ b/lib/ReactViews/FeatureInfo/FeatureInfoPanel.tsx @@ -44,9 +44,8 @@ interface Props { @observer class FeatureInfoPanel extends React.Component { - state = { - elev: 0, + elev: 0 }; componentDidMount() { @@ -263,11 +262,12 @@ class FeatureInfoPanel extends React.Component { return (
    - {!!this.props.viewState.terria.cesium && this.state.elev && + {!!this.props.viewState.terria.cesium && this.state.elev && (
    Altitudine {this.state.elev} m s.l.m. -
    } +
    + )}
    Lat / Lon  diff --git a/lib/ReactViews/Map/Panels/SharePanel/ShareUrl/ShareUrl.tsx b/lib/ReactViews/Map/Panels/SharePanel/ShareUrl/ShareUrl.tsx index 89bb57c8867..07cf0ed65e5 100644 --- a/lib/ReactViews/Map/Panels/SharePanel/ShareUrl/ShareUrl.tsx +++ b/lib/ReactViews/Map/Panels/SharePanel/ShareUrl/ShareUrl.tsx @@ -161,15 +161,14 @@ export const ShareUrl = forwardRef< callback={callback || (() => {})} /> -
    +
    Salva Mappa Salva o carica una mappa da file - Salva + + Salva
    - < label className={Styles.btn} style={{ borderRadius: 4 }}> +
    diff --git a/lib/ReactViews/Mobile/MobileHeader.jsx b/lib/ReactViews/Mobile/MobileHeader.jsx index 4d7283604e8..8ce333c1a73 100644 --- a/lib/ReactViews/Mobile/MobileHeader.jsx +++ b/lib/ReactViews/Mobile/MobileHeader.jsx @@ -96,10 +96,16 @@ class MobileHeader extends React.Component { const mainViewer = this.props.viewState.terria.mainViewer; if (mainViewer.viewerMode === ViewerMode.Leaflet) { setViewerMode("3d", mainViewer); - this.props.viewState.terria.setLocalProperty("viewermode", ViewerMode.Cesium); + this.props.viewState.terria.setLocalProperty( + "viewermode", + ViewerMode.Cesium + ); } else { setViewerMode("2d", mainViewer); - this.props.viewState.terria.setLocalProperty("viewermode", ViewerMode.Leaflet); + this.props.viewState.terria.setLocalProperty( + "viewermode", + ViewerMode.Leaflet + ); } }); } diff --git a/lib/ReactViews/StandardUserInterface/MapColumn.jsx b/lib/ReactViews/StandardUserInterface/MapColumn.jsx index 2286a25345d..adf19555711 100644 --- a/lib/ReactViews/StandardUserInterface/MapColumn.jsx +++ b/lib/ReactViews/StandardUserInterface/MapColumn.jsx @@ -219,7 +219,8 @@ const MapColumn = observer( title={keyboardControlDescription} style={{ right: "20px", - bottom: this.props.viewState.terria.configParameters.feedbackUrl + bottom: this.props.viewState.terria.configParameters + .feedbackUrl ? "110px" : "75px", position: "absolute" diff --git a/lib/ReactViews/StandardUserInterface/StandardUserInterface.tsx b/lib/ReactViews/StandardUserInterface/StandardUserInterface.tsx index f2d87ca1a50..05c2626a274 100644 --- a/lib/ReactViews/StandardUserInterface/StandardUserInterface.tsx +++ b/lib/ReactViews/StandardUserInterface/StandardUserInterface.tsx @@ -286,9 +286,9 @@ const StandardUserInterface: React.FC = observer( > + terria={props.terria} + viewState={props.viewState} + />
    diff --git a/wwwroot/data/regionMapping.json b/wwwroot/data/regionMapping.json index e35013a7401..bb61bc8eacb 100644 --- a/wwwroot/data/regionMapping.json +++ b/wwwroot/data/regionMapping.json @@ -11,16 +11,9 @@ "regionIdsFile": "data/regionids/region_map-localita_localita.json", "regionProp": "LOC2011", "nameProp": "DENOMINAZI", - "aliases": [ - "LOC2011" - ], + "aliases": ["LOC2011"], "description": "Località della regione Emilia-Romagna", - "bbox": [ - 9.15, - 43.55, - 12.85, - 45.15 - ] + "bbox": [9.15, 43.55, 12.85, 45.15] }, "censimento": { "layerName": "censimento", @@ -32,16 +25,9 @@ "regionIdsFile": "data/regionids/region_map-censimento_censimento.json", "regionProp": "SEZ2011", "nameProp": "SezioneCensimento", - "aliases": [ - "SEZ2011" - ], + "aliases": ["SEZ2011"], "description": "Sezioni censimento 2011 della regione Emilia-Romagna", - "bbox": [ - 9.15, - 43.55, - 12.85, - 45.15 - ] + "bbox": [9.15, 43.55, 12.85, 45.15] }, "COMUNI": { "layerName": "COMUNI", @@ -53,17 +39,9 @@ "regionIdsFile": "data/regionids/region_map-COMUNI_COMUNI.json", "regionProp": "PRO_COM", "nameProp": "COMUNE", - "aliases": [ - "PRO_COM", - "PROCOM" - ], + "aliases": ["PRO_COM", "PROCOM"], "description": "Comuni della regione Emilia-Romagna", - "bbox": [ - 9.15, - 43.55, - 12.85, - 45.15 - ] + "bbox": [9.15, 43.55, 12.85, 45.15] }, "COMUNI_T": { "layerName": "COMUNI", @@ -75,18 +53,9 @@ "regionIdsFile": "data/regionids/region_map-COMUNI_T_COMUNI.json", "regionProp": "PRO_COM_T", "nameProp": "COMUNE", - "aliases": [ - "PRO_COM_T", - "PROCOMT", - "ISTAT" - ], + "aliases": ["PRO_COM_T", "PROCOMT", "ISTAT"], "description": "Comuni della regione Emilia-Romagna", - "bbox": [ - 9.15, - 43.55, - 12.85, - 45.15 - ] + "bbox": [9.15, 43.55, 12.85, 45.15] }, "PROVINCE": { "layerName": "PROVINCE", @@ -98,17 +67,9 @@ "regionIdsFile": "data/regionids/region_map-PROVINCE_PROVINCE.json", "regionProp": "COD_PROV", "nameProp": "DEN_PROV", - "aliases": [ - "COD_PROV", - "CODPROV" - ], + "aliases": ["COD_PROV", "CODPROV"], "description": "Province della regione Emilia-Romagna", - "bbox": [ - 9.15, - 43.55, - 12.85, - 45.15 - ] + "bbox": [9.15, 43.55, 12.85, 45.15] }, "PROVINCE_T": { "layerName": "PROVINCE", @@ -120,18 +81,9 @@ "regionIdsFile": "data/regionids/region_map-PROVINCE_T_PROVINCE.json", "regionProp": "COD_PROV_T", "nameProp": "DEN_PROV", - "aliases": [ - "COD_PROV_T", - "CODPROV_T", - "ISTAT_PROV" - ], + "aliases": ["COD_PROV_T", "CODPROV_T", "ISTAT_PROV"], "description": "Province della regione Emilia-Romagna", - "bbox": [ - 9.15, - 43.55, - 12.85, - 45.15 - ] + "bbox": [9.15, 43.55, 12.85, 45.15] }, "SA1_2011": { "layerName": "FID_SA1_2011_AUST", From 34ce04c59a555ec03c4aa0394d211f2ca2d084d8 Mon Sep 17 00:00:00 2001 From: glughi Date: Tue, 27 Sep 2022 15:24:00 +0200 Subject: [PATCH 075/215] Fix for linter --- lib/ReactViews/Map/Panels/ColorPanel/ColorPanel.jsx | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/lib/ReactViews/Map/Panels/ColorPanel/ColorPanel.jsx b/lib/ReactViews/Map/Panels/ColorPanel/ColorPanel.jsx index eee55913199..a558d48ac70 100644 --- a/lib/ReactViews/Map/Panels/ColorPanel/ColorPanel.jsx +++ b/lib/ReactViews/Map/Panels/ColorPanel/ColorPanel.jsx @@ -29,7 +29,7 @@ const ColorPanel = (props) => { const btnTitle = "Colora il terreno in base all'altitudine"; const apply = () => { - var material = createElevationBandMaterial({ + const material = createElevationBandMaterial({ scene: terria.cesium.scene, layers: layers.map((layer) => { return { @@ -218,7 +218,7 @@ const ColorPanel = (props) => { - Dopo aver premuto il bottone "Applica", clicca sulla mappa per + Dopo aver premuto il bottone "Applica", clicca sulla mappa per aggiornarla. @@ -230,7 +230,7 @@ const ColorPanel = (props) => {
    { modalWidth={modalWidth} smallScreen={viewState.useSmallScreenInterface} onDismissed={() => { - if (true) viewState.shareModalIsVisible = false; + viewState.shareModalIsVisible = false; }} onUserClick={onUserClick} > From adf38c1a681b96ea759c013b47ac9aa3ad62b1af Mon Sep 17 00:00:00 2001 From: glughi Date: Tue, 27 Sep 2022 15:42:07 +0200 Subject: [PATCH 076/215] Run prettier --- lib/ReactViews/Map/Panels/ColorPanel/ColorPanel.jsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/ReactViews/Map/Panels/ColorPanel/ColorPanel.jsx b/lib/ReactViews/Map/Panels/ColorPanel/ColorPanel.jsx index a558d48ac70..0e78d0d059f 100644 --- a/lib/ReactViews/Map/Panels/ColorPanel/ColorPanel.jsx +++ b/lib/ReactViews/Map/Panels/ColorPanel/ColorPanel.jsx @@ -218,8 +218,8 @@ const ColorPanel = (props) => { - Dopo aver premuto il bottone "Applica", clicca sulla mappa per - aggiornarla. + Dopo aver premuto il bottone "Applica", clicca sulla mappa + per aggiornarla.
    From 140b1cb9e8bb28e877f93b9731f1f8ae54a27458 Mon Sep 17 00:00:00 2001 From: Giovanni Lughi <17862087+glughi@users.noreply.github.com> Date: Thu, 20 Oct 2022 11:26:40 +0200 Subject: [PATCH 077/215] Main (#11) * Stop preloading imagery tiles except whenanimating * Change condition to match animating condition * Update changelog * Remove ObserveModelMixin and refresh some files * Add changelog entry * Experiment with alternative defaults * Make srsName and outputFormat dynamic For WFS requests. Some work to do for efficiency and clarity. Added srsNames to WebFeatureServiceCapabilities? * Fix scope error when building srsName array * Fix getBestSrsName() Also allow for WFS requests with multiple layers * Update changelog * Start CartoMapV3TableCatalogItem * Add traits to WFS catalog item * Add comments * Add basic Carto query API support * rename CartoMapV3Table to CartoMapV3 * moved `activeStyle` default to stratum + removed hidden styles from it * move bestSrs calc to GetCapabilitiesStratum as a computed. This assigns default value to the trait. * Move getBestSrsName into GetCapabilitiesStratum As a getter. Sets default trait value. To make solid still need access to the typeNames array in this class... * Clean up srsName getter Now targets the layers we are interested in. * Remove some commented out code Unrelated to this PR but easy fix * Check for supported srs Instead of just checking for '4326' regex, actually search for our supported CRS codes. * Update changelog * Tweak `generateCatalogIndex` to use less memory * Add Carto API error handling * start tileJson support * Add spec * changes * changes * Add table mixin spec * Move more logic into GetCapabilitiesStratum * Remove unnecessary comments * Remove computed decorators fom two helper functions * move supportsGeojson inside get outputFormat * Update comments * Log errors from updateModelFromJson result objects * Add `.logError()` to all usage of `updateModelFromJson` where the `Result` object is ignored * Move RelatedMaps to terriajs - powered by config (#6551) * Move RelatedMaps to terriajs - powered by config * refactor RelatedMaps to take in relatedMaps prop * change CI to use new TerriaMap branch * Add related maps docs * add changes * add logError to updateModelFromJson * Bump terriajs to 8.2.16 * Fix region mapping feature `rowIds` incorrect type * bump terriajs to 8.2.17 * Add some missing proxyCatalogItemUrl * add proxyCatalogItemUrl to GltfMixin * Update deployment instructions Remove refs to Varnish etc. * Replace references to National Map Also remove references to Varnish server, only leave NGINX * Slight update to geoserver instructions * Remove another Varnish reference * Update doc/deploying/deploying-terriamap.md Co-authored-by: Nick Forbes-Smith * Add support for `OpenDataSoftCatalogGroup` with more than 100 datasets * Fix ci-deploy script to use TerriaMap main branch * Add ODS group spec for over 100 datasets * simplify ODS group dataset loading * Add label and path/trail symbolization * Show error message on cesium scene render error * refactor create long/lat table feature * Add `enabled` trait to `TableStyleMapTraits` * comment out tile JSON + fix trait description + default * Add carto v1+v3 doc description * pin flexsearch to version 0.7.21 * Add some tests * Use just the start year (2012) in LICENSE.md * add some docs * add null label test * Update CHANGES.md * Add `mergeGroupsByName` trait to `GroupTraits` (#6564) Co-authored-by: Mike Wu <41275384+mwu2018@users.noreply.github.com> * Fix related maps defaults (#6563) * fix related maps default URLs * changes * Add vic DT to default related maps * add key Co-authored-by: Mike Wu <41275384+mwu2018@users.noreply.github.com> * Remove old props from propTypes * Fix hideWorkbench=1 when a map has a disclaimer * fix changes * start performance optimisation for time-series point datasets * Wrapped up cesium sampled properties to improve performance * changes * Fix convertPreSampledProperties * remove console.log * fix cesium render error message * bump version to 8.2.18 * add comment * Fix imagery provider pickFeatures error * changes * Release TerriaJS 8.2.19 * Handle errors thrown in `ImageryProviderLeafletTileLayer.pickFeatures`. * Release TerriaJS 8.2.20 Co-authored-by: Stephen Davies Co-authored-by: Staf Smith Co-authored-by: Nick Forbes-Smith Co-authored-by: Nanda Co-authored-by: Mike Wu <41275384+mwu2018@users.noreply.github.com> --- CHANGES.md | 44 +- LICENSE.md | 2 +- buildprocess/diffCatalogIndex.js | 57 + buildprocess/generateCatalogIndex.ts | 338 ++-- doc/customizing/client-side-config.md | 127 +- doc/deploying/deploying-terriamap.md | 6 +- doc/deploying/setting-up-geoserver.md | 23 +- lib/Map/Icons/Maki/MakiIcons.ts | 6 +- .../ImageryProviderLeafletTileLayer.ts | 19 +- lib/ModelMixins/ClippingMixin.ts | 2 +- lib/ModelMixins/GltfMixin.ts | 3 +- lib/ModelMixins/GroupMixin.ts | 78 + lib/ModelMixins/TableMixin.ts | 76 +- .../CatalogGroups/OpenDataSoftCatalogGroup.ts | 29 +- ...atalogItem.ts => CartoMapV1CatalogItem.ts} | 18 +- .../CatalogItems/CartoMapV3CatalogItem.ts | 293 ++++ .../CatalogItems/GeoJsonCatalogItem.ts | 6 +- .../CatalogItems/ShapefileCatalogItem.ts | 3 +- .../CatalogReferences/MagdaReference.ts | 38 +- .../Catalog/CatalogReferences/UrlReference.ts | 2 +- .../Esri/ArcGisMapServerCatalogItem.ts | 6 +- lib/Models/Catalog/Gltf/AssImpCatalogItem.ts | 7 +- .../Ows/WebFeatureServiceCapabilities.ts | 37 + .../Ows/WebFeatureServiceCatalogItem.ts | 99 +- .../Catalog/Ows/WebMapServiceCatalogItem.ts | 6 +- .../WebProcessingServiceCatalogFunction.ts | 2 +- .../WebProcessingServiceCatalogFunctionJob.ts | 4 +- lib/Models/Catalog/registerCatalogMembers.ts | 12 +- lib/Models/Cesium.ts | 71 +- lib/Models/RelatedMaps.ts | 65 + lib/Models/SearchProviders/CatalogIndex.ts | 4 +- lib/Models/Terria.ts | 15 +- lib/ReactViewModels/ViewState.ts | 9 +- .../Custom/ApiTableCustomComponent.ts | 7 +- .../HelpScreens/HelpMenuPanelBasic.jsx | 107 -- lib/ReactViews/HelpScreens/HelpOverlay.jsx | 155 -- .../HelpScreens/HelpScreenWindow.jsx | 138 -- lib/ReactViews/HelpScreens/ObscureOverlay.jsx | 113 -- lib/ReactViews/Map/HelpButton/HelpButton.tsx | 26 +- lib/ReactViews/Map/MenuBar.jsx | 65 +- .../Map/Panels/ToolsPanel/CountDatasets.jsx | 168 -- .../Map/Panels/ToolsPanel/CountDatasets.tsx | 185 +++ .../Map/Panels/ToolsPanel/ToolsPanel.jsx | 108 +- .../Map/Panels/ToolsPanel/tools-panel.scss | 4 + .../Panels/ToolsPanel/tools-panel.scss.d.ts | 2 + lib/ReactViews/Mobile/MobileMenu.jsx | 1 - lib/ReactViews/ObserveModelMixin.js | 110 -- lib/ReactViews/RelatedMaps/RelatedMaps.tsx | 90 ++ lib/ReactViews/RelatedMaps/related-maps.scss | 23 + .../RelatedMaps/related-maps.scss.d.ts | 11 + lib/ReactViews/RemovePanel/RemovePanel.jsx | 53 - lib/ReactViews/RemovePanel/remove-panel.scss | 49 - .../RemovePanel/remove-panel.scss.d.ts | 15 - .../StandardUserInterface/MapColumn.jsx | 2 - .../standard-user-interface.scss | 2 - lib/ReactViews/Tour/TourOverlay.jsx | 5 - lib/Table/TableAutomaticStylesStratum.ts | 35 + lib/Table/TableStyle.ts | 18 + lib/Table/TableStyleMap.ts | 1 + .../createLongitudeLatitudeFeaturePerId.ts | 403 ++++- .../createLongitudeLatitudeFeaturePerRow.ts | 43 +- .../createRegionMappedImageryProvider.ts | 8 +- lib/Table/getFeatureStyle.ts | 222 ++- ...aits.ts => CartoMapV1CatalogItemTraits.ts} | 9 +- .../CartoMapV3CatalogItemTraits.ts | 75 + lib/Traits/TraitsClasses/GroupTraits.ts | 7 + .../TraitsClasses/HeadingPitchRollTraits.ts | 2 +- .../TraitsClasses/TableLabelStyleTraits.ts | 146 ++ .../TraitsClasses/TableStyleMapTraits.ts | 7 + lib/Traits/TraitsClasses/TableStyleTraits.ts | 17 + .../TraitsClasses/TableTrailStyleTraits.ts | 182 +++ .../WebFeatureServiceCatalogItemTraits.ts | 27 + package.json | 6 +- test/ModelMixins/TableMixinSpec.ts | 680 ++++++++ test/Models/Catalog/CatalogGroupSpec.ts | 76 + .../OpenDataSoftCatalogGroupSpec.ts | 60 +- ...emSpec.ts => CartoMapV1CatalogItemSpec.ts} | 12 +- .../CatalogItems/CartoMapV3CatalogItemSpec.ts | 132 ++ wwwroot/languages/en/translation.json | 15 +- .../CartoMapV3/query-geojson-response.json | 17 + wwwroot/test/CartoMapV3/query-response.json | 35 + .../CartoMapV3/table-geojson-response.json | 17 + wwwroot/test/CartoMapV3/table-response.json | 37 + wwwroot/test/ods/datasets-over-100-1.json | 1422 +++++++++++++++++ wwwroot/test/ods/datasets-over-100-2.json | 1422 +++++++++++++++++ 85 files changed, 6500 insertions(+), 1579 deletions(-) create mode 100644 buildprocess/diffCatalogIndex.js rename lib/Models/Catalog/CatalogItems/{CartoMapCatalogItem.ts => CartoMapV1CatalogItem.ts} (90%) create mode 100644 lib/Models/Catalog/CatalogItems/CartoMapV3CatalogItem.ts create mode 100644 lib/Models/RelatedMaps.ts delete mode 100644 lib/ReactViews/HelpScreens/HelpMenuPanelBasic.jsx delete mode 100644 lib/ReactViews/HelpScreens/HelpOverlay.jsx delete mode 100644 lib/ReactViews/HelpScreens/HelpScreenWindow.jsx delete mode 100644 lib/ReactViews/HelpScreens/ObscureOverlay.jsx delete mode 100644 lib/ReactViews/Map/Panels/ToolsPanel/CountDatasets.jsx create mode 100644 lib/ReactViews/Map/Panels/ToolsPanel/CountDatasets.tsx delete mode 100644 lib/ReactViews/ObserveModelMixin.js create mode 100644 lib/ReactViews/RelatedMaps/RelatedMaps.tsx create mode 100644 lib/ReactViews/RelatedMaps/related-maps.scss create mode 100644 lib/ReactViews/RelatedMaps/related-maps.scss.d.ts delete mode 100644 lib/ReactViews/RemovePanel/RemovePanel.jsx delete mode 100644 lib/ReactViews/RemovePanel/remove-panel.scss delete mode 100644 lib/ReactViews/RemovePanel/remove-panel.scss.d.ts rename lib/Traits/TraitsClasses/{CartoMapCatalogItemTraits.ts => CartoMapV1CatalogItemTraits.ts} (72%) create mode 100644 lib/Traits/TraitsClasses/CartoMapV3CatalogItemTraits.ts create mode 100644 lib/Traits/TraitsClasses/TableLabelStyleTraits.ts create mode 100644 lib/Traits/TraitsClasses/TableTrailStyleTraits.ts rename test/Models/Catalog/CatalogItems/{CartoMapCatalogItemSpec.ts => CartoMapV1CatalogItemSpec.ts} (92%) create mode 100644 test/Models/Catalog/CatalogItems/CartoMapV3CatalogItemSpec.ts create mode 100644 wwwroot/test/CartoMapV3/query-geojson-response.json create mode 100644 wwwroot/test/CartoMapV3/query-response.json create mode 100644 wwwroot/test/CartoMapV3/table-geojson-response.json create mode 100644 wwwroot/test/CartoMapV3/table-response.json create mode 100644 wwwroot/test/ods/datasets-over-100-1.json create mode 100644 wwwroot/test/ods/datasets-over-100-2.json diff --git a/CHANGES.md b/CHANGES.md index 5ced6abf6d4..7581d89e365 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -39,10 +39,52 @@ #### next release (8.2.14) #### next release (8.2.16) +#### next release (8.2.21) +- [The next improvement] + +#### 8.2.20 - 2022-10-20 + +- Handle errors thrown in `ImageryProviderLeafletTileLayer.pickFeatures`. This fixes a bug where some WMTS layers break feature picking (in Leaflet/2D mode) + +#### 8.2.19 - 2022-10-20 + +- Handle errors thrown in `Cesium._attachProviderCoordHooks`. This fixes a bug where some WMTS layers break feature picking. + +#### 8.2.18 - 2022-10-19 + +- Fix `RelatedMaps` default broken URLs +- Add `mergeGroupsByName` trait to `GroupTraits` - this will merge all group members with the same name +- Fix bug with "propagate `knownContainerUniqueIds` across references and their target" - missing `runInAction` +- Add Carto v3 Maps API support for `table` and `query` endpoint (only GeoJSON - not MVT yet) +- Moved `activeStyle` default from `TableMixin` to `TableAutomaticStyleStratum`. The default `activeStyle` will now not pick a `hidden` `TableStyle`. +- Pin `flexsearch` version to `0.7.21` - as incorrect types are shipped in version `0.7.31` +- Only preload next timestep of timeseries rasters (WMS & ArcGIS MapServer) when animating the item on the map. +- Added error message if cesium stops rendering +- Add `enabled` to `TableStyleMapTraits` - which defaults to `true` +- Add `TableLabelStyleTraits` - this can be used to add `LabelGraphics` to point features (table or geojson) +- Add `TableTrailStyleTraits` - this can be used to add `PathGraphics` to time-series point features (table or geojson) +- Added missing `proxyCatalogItemUrl` to GeoJson, Shapefile, Gltf and AssImp catalog items. +- Added support for `OpenDataSoftCatalogGroup` with more than 100 datasets. +- Added `refreshIntervalTemplate` to `OpenDataSoftCatalogItemTraits` - this can be used to set `refreshInterval` using Mustache template rendered on ODS Dataset JSON object. +- Performance optimisation for time-series `TableMixin` +- Tweak `generateCatalogIndex` to use less memory. (+ add `diffCatalogIndex.js` script to show added/removed members between two catalog index files) +- Migrated `/#tools=1` to version 8. +- Removed dummy function `Terria.getUserProperty`. +- Removed unused version 7 React components. +- Fix Cesium `stoppedRenderingMessage` + +#### 8.2.17 - 2022-09-23 + +- Fix region mapping feature `rowIds` incorrect type. + +#### 8.2.16 - 2022-09-23 + +- Make srsName and outputFormat for WFS requests dynamic - Added `excludeInactiveDatasets` to `CkanCatalogGroup` (`true` by default). This will filter out CKAN Datasets which have `state` or `data_state` (data.gov.au specific) **not** set to `"active"`. - Fix `isTerriaFeatureData` bug - not checking `isJsonObject` -- [The next improvement] +- Add `.logError()` to all usage of `updateModelFromJson` where the `Result` object is ignored +- Move `RelatedMaps` to terriajs. They are now generated from `configParameters` (see [`doc/customizing/client-side-config.md`](./doc/customizing/client-side-config.md#relatedmap)) #### 8.2.15 - 2022-09-16 diff --git a/LICENSE.md b/LICENSE.md index a22c7b0ed7e..bbefdf414ef 100644 --- a/LICENSE.md +++ b/LICENSE.md @@ -186,7 +186,7 @@ APPENDIX: How to apply the Apache License to your work. same "printed page" as the copyright notice for easier identification within third-party archives. -Copyright 2012-2018 CSIRO's Data61 and Contributors +Copyright 2012 CSIRO's Data61 and Contributors Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/buildprocess/diffCatalogIndex.js b/buildprocess/diffCatalogIndex.js new file mode 100644 index 00000000000..47b0c0c44a5 --- /dev/null +++ b/buildprocess/diffCatalogIndex.js @@ -0,0 +1,57 @@ +const fse = require("fs-extra"); + +/** Print list of datasets that have been removed/added between two catalog index + * + * Usage: + * `node diffCatalogIndex.js path-to-old path-to-new` + */ +const [oldPath, newPath] = process.argv.slice(2); + +function sortIndex(index) { + return Object.keys(index) + .sort((a, b) => a.localeCompare(b)) + .reduce((acc, currentKey) => { + acc[currentKey] = index[currentKey]; + return acc; + }, {}); +} + +function itemPath(item, index) { + return ( + (index[item.memberKnownContainerUniqueIds[0]] + ? itemPath(index[item.memberKnownContainerUniqueIds[0]], index) + "/" + : "") + item.name + ); +} + +// Sorting isn't necessary here - but it makes it easier to compare JSON objects by hand if needed +const oldCatalogIndex = sortIndex( + JSON.parse(fse.readFileSync(oldPath).toString()) +); + +const newCatalogIndex = sortIndex( + JSON.parse(fse.readFileSync(newPath).toString()) +); + +const oldKeys = new Set(Object.keys(oldCatalogIndex)); +const newKeys = new Set(Object.keys(newCatalogIndex)); + +console.log("Datasets which have been added"); + +newKeys.forEach((newKey) => { + if (!oldKeys.has(newKey)) { + const item = newCatalogIndex[newKey]; + console.log( + `+ ${newCatalogIndex[newKey].name} (${itemPath(item, newCatalogIndex)})` + ); + } +}); + +console.log("\n\nDatasets which have been removed"); + +oldKeys.forEach((oldKey) => { + if (!newKeys.has(oldKey)) { + const item = oldCatalogIndex[oldKey]; + console.log(`- ${item.name} (${itemPath(item, oldCatalogIndex)})`); + } +}); diff --git a/buildprocess/generateCatalogIndex.ts b/buildprocess/generateCatalogIndex.ts index bfeda259699..a035dbb0485 100644 --- a/buildprocess/generateCatalogIndex.ts +++ b/buildprocess/generateCatalogIndex.ts @@ -12,6 +12,7 @@ import GroupMixin from "../lib/ModelMixins/GroupMixin"; import MappableMixin from "../lib/ModelMixins/MappableMixin"; import ReferenceMixin from "../lib/ModelMixins/ReferenceMixin"; import CatalogGroup from "../lib/Models/Catalog/CatalogGroup"; +import CkanItemReference from "../lib/Models/Catalog/Ckan/CkanItemReference"; import registerCatalogMembers from "../lib/Models/Catalog/registerCatalogMembers"; import hasTraits from "../lib/Models/Definition/hasTraits"; import { BaseModel } from "../lib/Models/Definition/Model"; @@ -20,6 +21,116 @@ import Terria from "../lib/Models/Terria"; import CatalogMemberReferenceTraits from "../lib/Traits/TraitsClasses/CatalogMemberReferenceTraits"; import patchNetworkRequests from "./patchNetworkRequests"; +/** Add model to index */ +function indexModel( + terria: Terria, + index: CatalogIndexFile, + member: CatalogMemberMixin.Instance | GroupMixin.Instance +) { + if ( + member.uniqueId && + member.uniqueId !== "/" && + member.uniqueId !== "__User-Added_Data__" + ) { + const name = getName(member); + const nameInCatalog = CatalogMemberMixin.isMixedInto(member) + ? member.nameInCatalog + : undefined; + + let description = ""; + // Remove description from CatalogIndex - as it makes files too large + // if (CatalogMemberMixin.isMixedInto(member)) { + // description = + // member.description + + // "\n" + + // member.info + // .map(i => i.content) + // .filter(c => c) + // .join("\n"); + // } + + const shareKeys = terria.modelIdShareKeysMap.get(member.uniqueId); + + // If model isn't already in index - create it + if (!index[member.uniqueId]) { + index[member.uniqueId] = { + name, + nameInCatalog: nameInCatalog !== name ? nameInCatalog : undefined, + description: description || undefined, + memberKnownContainerUniqueIds: [...member.knownContainerUniqueIds], // clone array + isGroup: GroupMixin.isMixedInto(member) ? true : undefined, + isMappable: MappableMixin.isMixedInto(member) ? true : undefined, + shareKeys: + shareKeys && shareKeys.length > 0 ? [...shareKeys] : undefined // clone array + }; + // If model IS already in index - see if more info can be added + // Merge shareKeys and memberKnownContainerUniqueIds + // + } else { + const mergedShareKeys = Array.from( + new Set([ + ...(shareKeys ?? []), + ...(index[member.uniqueId].shareKeys ?? []) + ]) + ); + index[member.uniqueId].shareKeys = + mergedShareKeys && mergedShareKeys.length > 0 + ? mergedShareKeys + : undefined; + + const mergedContainerIds = Array.from( + new Set([ + ...member.knownContainerUniqueIds, + ...(index[member.uniqueId].memberKnownContainerUniqueIds ?? []) + ]) + ); + index[member.uniqueId].memberKnownContainerUniqueIds = mergedContainerIds; + } + } +} + +/** Gets full path of member */ +function getPath(terria: Terria, member: BaseModel | undefined): string { + return filterOutUndefined([ + ...[ + member?.knownContainerUniqueIds.map((id) => + getPath(terria, terria.getModelById(BaseModel, id)) + ) + ].reverse(), + member?.uniqueId + ]).join("/"); +} + +async function loadGroup( + terria: Terria, + group: GroupMixin.Instance, + errors: TerriaError[] +) { + const name = getName(group); + const path = getPath(terria, group); + + console.log(`Loading Group ${name} (${path})`); + const result = await group.loadMembers(); + result.logError(`FAILED to load GROUP ${name} (${path})`); + result.pushErrorTo(errors, `FAILED to load GROUP ${name} (${path})`); + result.catchError((e) => console.error(e.toError().message)); +} + +async function loadReference( + terria: Terria, + reference: ReferenceMixin.Instance, + errors: TerriaError[] +) { + const name = getName(reference); + const path = getPath(terria, reference); + + console.log(`Loading Reference ${name} (${path})`); + const result = await reference.loadReference(); + result.logError(`FAILED to load Reference ${name} (${path})`); + result.pushErrorTo(errors, `FAILED to load Reference ${name} (${path})`); + result.catchError((e) => console.error(e.toError().message)); +} + /** * Generate catalog index (**experimental**) * @@ -43,7 +154,9 @@ import patchNetworkRequests from "./patchNetworkRequests"; * - Note: * - loads are somewhat randomised across catalog, so you don't hit one server with many requests * - one load may not equal one request. some groups/references do not make network requests - + * + * @param excludeIdsCsv CSV of model IDs to exclude from catalog index (eg "some-id-1,some-id-2") + * * @param basicAuth basic auth token to add to requests which include `baseUrl` (or `proxy/`) */ export default async function generateCatalogIndex( @@ -51,6 +164,7 @@ export default async function generateCatalogIndex( baseUrl: string, outPath: string | undefined, speedString: string | undefined, + excludeIdsCsv: string | undefined, basicAuth: string | undefined ) { let debug = false; @@ -58,6 +172,8 @@ export default async function generateCatalogIndex( let speed = speedString ? parseFloat(speedString) : 1; if (speed < 1) speed = 1; + const excludeIds = excludeIdsCsv ? excludeIdsCsv.split(",") : []; + if (!configUrl || !baseUrl) { console.error( `\nUSAGE: node ./build/generateCatalogIndex.js \n` @@ -75,49 +191,56 @@ export default async function generateCatalogIndex( // Limit load reference calls to 10 per second (on speed = 1) const loadLimiter = new Bottleneck({ maxConcurrent: 10 * speed, - minTime: 100 / speed, - trackDoneStatus: true + minTime: 100 / speed }); - const printStatus = () => { - const c = loadLimiter.counts(); - const total = - c.EXECUTING + c.QUEUED + c.RECEIVED + c.RUNNING + (c.DONE ?? 0); + /** Timeout for loading groups/references */ + const timeoutMs = 30000; + let totalJobs = 0; + let completedJobs = 0; + + const printStatus = () => { console.log( "\x1b[44m\x1b[37m%s\x1b[0m", - `${(((c.DONE ?? 0) * 100) / (total || 1)).toPrecision(2)}% DONE - (${ - c.DONE ?? 0 - }/${total})` + `${((completedJobs * 100) / (totalJobs || 1)).toPrecision( + 3 + )}% DONE - (${completedJobs}/${totalJobs || 1})` ); }; + const index: CatalogIndexFile = {}; const errors: TerriaError[] = []; - /** Gets full path of member */ - function getPath(terria: Terria, member: BaseModel | undefined): string { - return filterOutUndefined([ - ...[ - member?.knownContainerUniqueIds.map((id) => - getPath(terria, terria.getModelById(BaseModel, id)) - ) - ].reverse(), - member?.uniqueId - ]).join("/"); - } - - /** Recursively load all references and groups */ - async function loadMember(terria: Terria, member: BaseModel) { + /** Recursively load all references and groups. + * This will add members to `index` after loading + */ + async function loadAndIndexMember(terria: Terria, member: BaseModel) { let name = getName(member); let path = getPath(terria, member); + + if (member.uniqueId && excludeIds.includes(member.uniqueId)) { + console.log(`Excluding model \`${member.uniqueId}\`:"${name}" (${path}`); + return; + } + + totalJobs++; + // Random priority between 3 and 9 for references/members + // Random priority between 0 and 5 for groups + // This is so we slightly priorities loading groups before references + // But we don't want to load all groups at once - as they can be very expensive network requests const memberPriority = Math.round(Math.random() * 6) + 3; - // Random priority between 0 and 5 const groupPriority = Math.round(Math.random() * 5); // Load reference - this also handles nested references - const loadReference = async () => { - if (ReferenceMixin.isMixedInto(member)) { + while (ReferenceMixin.isMixedInto(member)) { + // We immediately de-reference CkanItemReferences with `_ckanDataset` - as they don't make any XHR + if (member instanceof CkanItemReference && member._ckanDataset) { + await loadReference(terria, member, errors); + } + // All other references are de-referenced through the queue + else { try { const priority = hasTraits(member, CatalogMemberReferenceTraits, "isGroup") && @@ -125,7 +248,6 @@ export default async function generateCatalogIndex( ? groupPriority : memberPriority; - // Timeout after 30 seconds debug ? console.log( "\x1b[32m%s\x1b[0m", @@ -135,19 +257,11 @@ export default async function generateCatalogIndex( await timeout(Math.random() * 1000); await loadLimiter.schedule( - { expiration: 30000, priority }, - async () => { - console.log(`Loading Reference ${name} (${path}) = ${priority}`); - const result = await ( - member as ReferenceMixin.Instance - ).loadReference(); - result.logError(`FAILED to load Reference ${name} (${path})`); - result.pushErrorTo( - errors, - `FAILED to load Reference ${name} (${path})` - ); - result.catchError((e) => console.error(e.toError().message)); - } + { expiration: timeoutMs, priority }, + loadReference, + terria, + member, + errors ); } catch (timeout) { errors.push( @@ -157,43 +271,38 @@ export default async function generateCatalogIndex( ); console.error(`TIMEOUT FAILED to load Reference ${name}`); } - - if (member.target) { - member = member.target; - // Load nested references - await loadReference(); - } - name = getName(member); } - }; - await loadReference(); + if (member.target) { + member = member.target; + } else { + // Something has gone wrong + // After loading reference we don't have a target + // So break from while loop + break; + } + name = getName(member); + } if (GroupMixin.isMixedInto(member)) { debug ? console.log("\x1b[36m%s\x1b[0m", `Adding Group ${name} (${path})`) : null; - // Function to load group - const loadGroup = async () => { - console.log(`Loading Group ${name} (${path})`); - const result = await (member as GroupMixin.Instance).loadMembers(); - result.logError(`FAILED to load GROUP ${name} (${path})`); - result.pushErrorTo(errors, `FAILED to load GROUP ${name} (${path})`); - result.catchError((e) => console.error(e.toError().message)); - }; - // CatalogGroup can be loaded immediately // Even though CatalogGroup doesn't have anything to load // This needs to be called so GroupMixin.refreshKnownContainerUniqueIds is called if (member instanceof CatalogGroup) { - await loadGroup(); + await loadGroup(terria, member, errors); } else { try { await timeout(Math.random() * 1000); await loadLimiter.schedule( - { expiration: 30000, priority: groupPriority }, - loadGroup + { expiration: timeoutMs, priority: groupPriority }, + loadGroup, + terria, + member, + errors ); } catch (timeout) { errors.push( @@ -208,75 +317,22 @@ export default async function generateCatalogIndex( // Recursively load group members await Promise.all( shuffle(member.memberModels).map((child) => { - return loadMember(terria, child); + return loadAndIndexMember(terria, child); }) ); - } - - printStatus(); - } - // Recursively add models to CatalogIndex - function indexModel(member: BaseModel, index: CatalogIndexFile = {}) { - let knownContainerUniqueIds = member.knownContainerUniqueIds; - - // de-reference (and handle nested references) - const dereference = () => { - if (ReferenceMixin.isMixedInto(member) && member.target) { - knownContainerUniqueIds = Array.from( - new Set([ - ...member.knownContainerUniqueIds, - ...member.target.knownContainerUniqueIds - ]) - ); - member = member.target; - dereference(); - } - }; - - dereference(); - - if ( - member.uniqueId && - member.uniqueId !== "/" && - member.uniqueId !== "__User-Added_Data__" - ) { - const name = getName(member); - const nameInCatalog = CatalogMemberMixin.isMixedInto(member) - ? member.nameInCatalog - : undefined; - - let description = ""; - // Remove description from CatalogIndex - as it makes files too large - // if (CatalogMemberMixin.isMixedInto(member)) { - // description = - // member.description + - // "\n" + - // member.info - // .map(i => i.content) - // .filter(c => c) - // .join("\n"); - // } - - const shareKeys = terria.modelIdShareKeysMap.get(member.uniqueId); - - index[member.uniqueId] = { - name, - nameInCatalog: nameInCatalog !== name ? nameInCatalog : undefined, - description: description || undefined, - memberKnownContainerUniqueIds: knownContainerUniqueIds, - isGroup: GroupMixin.isMixedInto(member) ? true : undefined, - isMappable: MappableMixin.isMixedInto(member) ? true : undefined, - shareKeys: shareKeys && shareKeys.length > 0 ? shareKeys : undefined - }; - } - if (GroupMixin.isMixedInto(member)) { - member.memberModels.forEach((childMember) => - indexModel(childMember, index) - ); + // Add catalog group to index + indexModel(terria, index, member); + } else if (CatalogMemberMixin.isMixedInto(member)) { + // Add catalog member to index + indexModel(terria, index, member); } - return index; + // Remove model after it has been indexed + terria.removeModelReferences(member); + + completedJobs++; + printStatus(); } // Terria initialisation @@ -309,15 +365,24 @@ export default async function generateCatalogIndex( : terria.catalog.group; if (!model) throw new Error("No model to load"); - await loadMember(terria, model); - - // Create index - const index = indexModel(terria.catalog.group); + await loadAndIndexMember(terria, model); const outPathResolved = parse(outPath ?? "catalog-index.json"); + // Sort index by ID (so we can compare them easier) + + const sortedIndex = Object.keys(index) + .sort((a, b) => a.localeCompare(b)) + .reduce((acc, currentKey) => { + acc[currentKey] = index[currentKey]; + return acc; + }, {}); + // Save index to file - fse.writeFileSync(outPath ?? "catalog-index.json", JSON.stringify(index)); + fse.writeFileSync( + outPath ?? "catalog-index.json", + JSON.stringify(sortedIndex) + ); // Save errors to file const terriaError = TerriaError.combine(errors, "Errors")?.toError(); @@ -343,7 +408,14 @@ export default async function generateCatalogIndex( } } -const [configUrl, baseUrl, outPath, speedString, basicAuth] = +const [configUrl, baseUrl, outPath, speedString, excludeIdsCsv, basicAuth] = process.argv.slice(2); -generateCatalogIndex(configUrl, baseUrl, outPath, speedString, basicAuth); +generateCatalogIndex( + configUrl, + baseUrl, + outPath, + speedString, + excludeIdsCsv, + basicAuth +); diff --git a/doc/customizing/client-side-config.md b/doc/customizing/client-side-config.md index 5628a7694c5..b767d3f7144 100644 --- a/doc/customizing/client-side-config.md +++ b/doc/customizing/client-side-config.md @@ -60,58 +60,59 @@ It is also possible to add version 7 init files using the `v7initializationUrls` Specifies various options for configuring TerriaJS: -| Name | Required | Type | Default | Description | -| --------------------------------- | -------- | -------------------------------------------------------------------------------------------------------- | -------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `appName` | no | **string** | `"TerriaJS App"` | TerriaJS uses this name whenever it needs to display the name of the application. | -| `supportEmail` | no | **string** | `"info@terria.io"` | The email address shown when things go wrong. | -| `defaultMaximumShownFeatureInfos` | no | **number** | `100` | The maximum number of "feature info" boxes that can be displayed when clicking a point. | -| `regionMappingDefinitionsUrl` | no | **string** | | **Deprecated** please use `regionMappingDefinitionsUrls` array instead. If this is defined, it will override `regionMappingDefinitionsUrls` | -| `regionMappingDefinitionsUrls` | no | **string[]** | `["build/TerriaJS/data/regionMapping.json"]` | URLs of JSON files that define region mapping for Tabular data (eg CSV). This option only needs to be changed in unusual deployments. It has to be changed if deploying as static site, for instance. It multiple URLs are provided then the first matching region will be used (in order of URLs) | -| `catalogIndexUrl` | no | **string** | | URL of the JSON file that contains index of catalog. See [CatalogIndex](#catalogindex) | -| `proj4ServiceBaseUrl` | no | **string** | `"proj4def/"` | URL of Proj4 projection lookup service (part of TerriaJS-Server). This option only needs to be changed in unusual deployments. It has to be changed if deploying as static site, for instance. | -| `corsProxyBaseUrl` | no | **string** | `"proxy/"` | URL of CORS proxy service (part of TerriaJS-Server). This option only needs to be changed in unusual deployments. It has to be changed if deploying as static site, for instance. | -| `proxyableDomainsUrl` | no | **string** | `"proxyabledomains/"` | Deprecated, will be determined from serverconfig. | -| `serverConfigUrl` | no | **string** | `"serverconfig/"` | -| `shareUrl` | no | **string** | `"share"` | -| `feedbackUrl` | no | **string** | | URL of the service used to send feedback. If not specified, the "Give Feedback" button will not appear. | -| `initFragmentPaths` | yes | **string[]** | `["init/"]` | An array of base paths to use to try to use to resolve init fragments in the URL. For example, if this property is `[ "init/", "http://example.com/init/"]`, then a URL with `#test` will first try to load `init/test.json` and, if that fails, next try to load `http://example.com/init/test.json`. | -| `storyEnabled` | yes | **boolean** | `true` | Whether the story is enabled. If false story function button won't be available. | -| `interceptBrowserPrint` | no | **boolean** | `true` | True (the default) to intercept the browser's print feature and use a custom one accessible through the Share panel. | -| `tabbedCatalog` | no | **boolean** | `false` | True to create a separate explorer panel tab for each top-level catalog group to list its items in. | -| `useCesiumIonTerrain` | no | **boolean** | `true` | True to use Cesium World Terrain from Cesium ion. False to use terrain from the URL specified with the `"cesiumTerrainUrl"` property. If this property is false and `"cesiumTerrainUrl"` is not specified, the 3D view will use a smooth ellipsoid instead of a terrain surface. Defaults to true. | -| `cesiumTerrainUrl` | no | **string** | undefined | The URL to use for Cesium terrain in the 3D Terrain viewer, in quantized mesh format. This property is ignored if "useCesiumIonTerrain" is set to true, or if `cesiumTerrainAssetId` is present. | -| `cesiumTerrainAssetId` | no | **number** | undefined | The Cesium Ion Asset ID to use for Cesium terrain in the 3D Terrain viewer. `cesiumIonAccessToken` will be used to authenticate. This property is ignored if "useCesiumIonTerrain" is set to true. | -| `cesiumIonAccessToken` | no | **string** | undefined | The access token to use with Cesium ion. If `"useCesiumIonTerrain"` is true and this property is not specified, the Cesium default Ion key will be used. It is a violation of the Ion terms of use to use the default key in a deployed application. | -| `useCesiumIonBingImagery` | no | **boolean** | `true` | True to use Bing Maps from Cesium ion (Cesium World Imagery). By default, Ion will be used, unless the `bingMapsKey` property is specified, in which case that will be used instead. To disable the Bing Maps layers entirely, set this property to false and set `bingMapsKey` to null. | -| `bingMapsKey` | no | **string** | undefined | A [Bing Maps API key](https://msdn.microsoft.com/en-us/library/ff428642.aspx) used for requesting Bing Maps base maps and using the Bing Maps geocoder for searching. It is your responsibility to request a key and comply with all terms and conditions. | -| `hideTerriaLogo` | no | **boolean** | `false` | -| `brandBarElements` | no | **string[]** | undefined | An array of strings of HTML that fill up the top left logo space (see `brandBarSmallElements` or `displayOneBrand` for small screens). | -| `brandBarSmallElements` | no | **string[]** | undefined | An array of strings of HTML that fill up the top left logo space - used for small screens. | -| `displayOneBrand` | no | **number** | `0` | Index of which `brandBarElements` to show for mobile header. This will only be used if `brandBarSmallElements` is undefined. | -| `disableMyLocation` | no | **boolean** | undefined | True to disable the "Centre map at your current location" button. | -| `disableSplitter` | no | **boolean** | undefined | True to disable the use of the splitter control. | -| `experimentalFeatures` | no | **boolean** | undefined | | -| `magdaReferenceHeaders` | no | **[MagdaReferenceHeaders](#magdareferenceheaders)** | undefined | -| `locationSearchBoundingBox` | no | **number** | undefined | -| `googleAnalyticsKey` | no | **string** | undefined | A Google API key for [Google Analytics](https://analytics.google.com). If specified, TerriaJS will send various events about how it's used to Google Analytics. | -| `errorService` | no | **[ErrorServiceOptions](#errorserviceoptions)** | undefined | Optional configuration for the remote error logging service that Terria should log errors to. | -| `globalDisclaimer` | no | **any** | undefined | | -| `showWelcomeMessage` | no | **boolean** | `false` | True to display welcome message on startup. | -| `welcomeMessageVideo` | no | **any** | | Video to show in welcome message. | -| `showInAppGuides` | no | **boolean** | `false` | True to display in-app guides. | -| `helpContent` | no | **[HelpContentItem](#helpcontentitem)** | `[]` | The content to be displayed in the help panel. | -| `helpContentTerms` | no | **[Term](#term)** | | | -| `languageConfiguration` | no | **[LanguageConfiguration](#languageconfiguration)** | undefined | Language configuration of TerriaJS. | -| `customRequestSchedulerLimits` | no | **[RequestScheduler](https://cesium.com/docs/cesiumjs-ref-doc/RequestScheduler.html#.requestsByServer)** | undefined | Custom concurrent request limits for domains in Cesium's RequestScheduler. | -| `persistViewerMode` | no | **boolean** | `true` | Whether to load persisted viewer mode from local storage. | -| `openAddData` | no | **boolean** | `false` | Whether to open the add data explorer panel on load. | -| feedbackPreamble | no | **string** | feedback.feedbackPreamble | Text showing at the top of feedback form, supports the internationalization using the translation key. | -| feedbackPostamble | no | **string** | feedback.feedbackPostamble | Text showing at the bottom of feedback form, supports the internationalization using the translation key. | -| feedbackMinLength | no | **number** | 0 | Minimum length of feedback comment. | -| `theme` | no | **any** | `{}` | An object used to override theme properties - for example `{"logoHeight": "70px"}`. | -| `storyRouteUrlPrefix` | no | **string** | undefined | (Experimental) Prefix to which `:story-id` is added to fetch JSON for stories when using `/story/:story-id` routes. Should end in / | -| `leafletAttributionPrefix` | no | **string** | undefined | Attribution HTML string to show on Leaflet maps. Will use Leaflet's default if undefined. To hide Leaflet attribution - set `leafletAttributionPrefix:""` | -| `storyVideo.videoUrl` | no | **string** | https://www.youtube-nocookie.com/embed/fbiQawV8IYY | Video to show in Story Editor panel under Getting Started. | +| Name | Required | Type | Default | Description | +| --------------------------------- | -------- | -------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `appName` | no | **string** | `"TerriaJS App"` | TerriaJS uses this name whenever it needs to display the name of the application. | +| `supportEmail` | no | **string** | `"info@terria.io"` | The email address shown when things go wrong. | +| `defaultMaximumShownFeatureInfos` | no | **number** | `100` | The maximum number of "feature info" boxes that can be displayed when clicking a point. | +| `regionMappingDefinitionsUrl` | no | **string** | | **Deprecated** please use `regionMappingDefinitionsUrls` array instead. If this is defined, it will override `regionMappingDefinitionsUrls` | +| `regionMappingDefinitionsUrls` | no | **string[]** | `["build/TerriaJS/data/regionMapping.json"]` | URLs of JSON files that define region mapping for Tabular data (eg CSV). This option only needs to be changed in unusual deployments. It has to be changed if deploying as static site, for instance. It multiple URLs are provided then the first matching region will be used (in order of URLs) | +| `catalogIndexUrl` | no | **string** | | URL of the JSON file that contains index of catalog. See [CatalogIndex](#catalogindex) | +| `proj4ServiceBaseUrl` | no | **string** | `"proj4def/"` | URL of Proj4 projection lookup service (part of TerriaJS-Server). This option only needs to be changed in unusual deployments. It has to be changed if deploying as static site, for instance. | +| `corsProxyBaseUrl` | no | **string** | `"proxy/"` | URL of CORS proxy service (part of TerriaJS-Server). This option only needs to be changed in unusual deployments. It has to be changed if deploying as static site, for instance. | +| `proxyableDomainsUrl` | no | **string** | `"proxyabledomains/"` | Deprecated, will be determined from serverconfig. | +| `serverConfigUrl` | no | **string** | `"serverconfig/"` | +| `shareUrl` | no | **string** | `"share"` | +| `feedbackUrl` | no | **string** | | URL of the service used to send feedback. If not specified, the "Give Feedback" button will not appear. | +| `initFragmentPaths` | yes | **string[]** | `["init/"]` | An array of base paths to use to try to use to resolve init fragments in the URL. For example, if this property is `[ "init/", "http://example.com/init/"]`, then a URL with `#test` will first try to load `init/test.json` and, if that fails, next try to load `http://example.com/init/test.json`. | +| `storyEnabled` | yes | **boolean** | `true` | Whether the story is enabled. If false story function button won't be available. | +| `interceptBrowserPrint` | no | **boolean** | `true` | True (the default) to intercept the browser's print feature and use a custom one accessible through the Share panel. | +| `tabbedCatalog` | no | **boolean** | `false` | True to create a separate explorer panel tab for each top-level catalog group to list its items in. | +| `useCesiumIonTerrain` | no | **boolean** | `true` | True to use Cesium World Terrain from Cesium ion. False to use terrain from the URL specified with the `"cesiumTerrainUrl"` property. If this property is false and `"cesiumTerrainUrl"` is not specified, the 3D view will use a smooth ellipsoid instead of a terrain surface. Defaults to true. | +| `cesiumTerrainUrl` | no | **string** | undefined | The URL to use for Cesium terrain in the 3D Terrain viewer, in quantized mesh format. This property is ignored if "useCesiumIonTerrain" is set to true, or if `cesiumTerrainAssetId` is present. | +| `cesiumTerrainAssetId` | no | **number** | undefined | The Cesium Ion Asset ID to use for Cesium terrain in the 3D Terrain viewer. `cesiumIonAccessToken` will be used to authenticate. This property is ignored if "useCesiumIonTerrain" is set to true. | +| `cesiumIonAccessToken` | no | **string** | undefined | The access token to use with Cesium ion. If `"useCesiumIonTerrain"` is true and this property is not specified, the Cesium default Ion key will be used. It is a violation of the Ion terms of use to use the default key in a deployed application. | +| `useCesiumIonBingImagery` | no | **boolean** | `true` | True to use Bing Maps from Cesium ion (Cesium World Imagery). By default, Ion will be used, unless the `bingMapsKey` property is specified, in which case that will be used instead. To disable the Bing Maps layers entirely, set this property to false and set `bingMapsKey` to null. | +| `bingMapsKey` | no | **string** | undefined | A [Bing Maps API key](https://msdn.microsoft.com/en-us/library/ff428642.aspx) used for requesting Bing Maps base maps and using the Bing Maps geocoder for searching. It is your responsibility to request a key and comply with all terms and conditions. | +| `hideTerriaLogo` | no | **boolean** | `false` | +| `brandBarElements` | no | **string[]** | undefined | An array of strings of HTML that fill up the top left logo space (see `brandBarSmallElements` or `displayOneBrand` for small screens). | +| `brandBarSmallElements` | no | **string[]** | undefined | An array of strings of HTML that fill up the top left logo space - used for small screens. | +| `displayOneBrand` | no | **number** | `0` | Index of which `brandBarElements` to show for mobile header. This will only be used if `brandBarSmallElements` is undefined. | +| `disableMyLocation` | no | **boolean** | undefined | True to disable the "Centre map at your current location" button. | +| `disableSplitter` | no | **boolean** | undefined | True to disable the use of the splitter control. | +| `experimentalFeatures` | no | **boolean** | undefined | | +| `magdaReferenceHeaders` | no | **[MagdaReferenceHeaders](#magdareferenceheaders)** | undefined | +| `locationSearchBoundingBox` | no | **number** | undefined | +| `googleAnalyticsKey` | no | **string** | undefined | A Google API key for [Google Analytics](https://analytics.google.com). If specified, TerriaJS will send various events about how it's used to Google Analytics. | +| `errorService` | no | **[ErrorServiceOptions](#errorserviceoptions)** | undefined | Optional configuration for the remote error logging service that Terria should log errors to. | +| `globalDisclaimer` | no | **any** | undefined | | +| `showWelcomeMessage` | no | **boolean** | `false` | True to display welcome message on startup. | +| `welcomeMessageVideo` | no | **any** | | Video to show in welcome message. | +| `showInAppGuides` | no | **boolean** | `false` | True to display in-app guides. | +| `helpContent` | no | **[HelpContentItem](#helpcontentitem)** | `[]` | The content to be displayed in the help panel. | +| `helpContentTerms` | no | **[Term](#term)** | | | +| `languageConfiguration` | no | **[LanguageConfiguration](#languageconfiguration)** | undefined | Language configuration of TerriaJS. | +| `customRequestSchedulerLimits` | no | **[RequestScheduler](https://cesium.com/docs/cesiumjs-ref-doc/RequestScheduler.html#.requestsByServer)** | undefined | Custom concurrent request limits for domains in Cesium's RequestScheduler. | +| `persistViewerMode` | no | **boolean** | `true` | Whether to load persisted viewer mode from local storage. | +| `openAddData` | no | **boolean** | `false` | Whether to open the add data explorer panel on load. | +| feedbackPreamble | no | **string** | feedback.feedbackPreamble | Text showing at the top of feedback form, supports the internationalization using the translation key. | +| feedbackPostamble | no | **string** | feedback.feedbackPostamble | Text showing at the bottom of feedback form, supports the internationalization using the translation key. | +| feedbackMinLength | no | **number** | 0 | Minimum length of feedback comment. | +| `theme` | no | **any** | `{}` | An object used to override theme properties - for example `{"logoHeight": "70px"}`. | +| `storyRouteUrlPrefix` | no | **string** | undefined | (Experimental) Prefix to which `:story-id` is added to fetch JSON for stories when using `/story/:story-id` routes. Should end in / | +| `leafletAttributionPrefix` | no | **string** | undefined | Attribution HTML string to show on Leaflet maps. Will use Leaflet's default if undefined. To hide Leaflet attribution - set `leafletAttributionPrefix:""` | +| `storyVideo.videoUrl` | no | **string** | https://www.youtube-nocookie.com/embed/fbiQawV8IYY | Video to show in Story Editor panel under Getting Started. | +| `relatedMaps` | no | **[RelatedMap](#relatedmap)[]** | See [`lib/Models/RelatedMaps.ts`](../../lib/Models/RelatedMaps.ts) | Maps to show in "Related Maps" menu panel | ### MagdaReferenceHeaders @@ -202,6 +203,28 @@ Configuration of items to appear in the search bar } ``` +### RelatedMap + +Configuration of maps to appear in "Related Maps" menu panel + +| Name | Required | Type | Default | Description | +| ------------- | -------- | ---------- | --------- | ----------------------------------------------------------- | +| `title` | yes | **string** | undefined | Title of the map | +| `description` | yes | **string** | undefined | Description for the map. | +| `url` | yes | **string** | undefined | URL to map. | +| `imageUrl` | yes | **nyeso** | undefined | URL to image/thumbnail (width: "200px" and height: "150px") | + +**Example** + +```json +{ + "imageUrl": "https://terria-catalogs-public.storage.googleapis.com/misc/related-maps/nationalmap.jpg", + "url": "http://nationalmap.gov.au/", + "title": "NationalMap", + "description": "The NationalMap is a website for map-based access to spatial data from Australian government agencies. It is an initiative of the Australian Government's Department of the Prime Minister and Cabinet and the software has been developed by Data61 working closely with the Department of the Prime Minister and Cabinet, Geoscience Australia and other government agencies." +} +``` + --- ### CatalogIndex diff --git a/doc/deploying/deploying-terriamap.md b/doc/deploying/deploying-terriamap.md index 881ffb57aad..8c283832bda 100644 --- a/doc/deploying/deploying-terriamap.md +++ b/doc/deploying/deploying-terriamap.md @@ -17,7 +17,7 @@ The easiest way to deploy your TerriaMap is to use the included Node.js-based we Then, copy the following files and directories from your local system where you built TerriaMap onto the server: - `wwwroot` -- `node_modules` +- `node_modules` (note: this can take a long time, be patient) - `devserverconfig.json` but rename this to `productionserverconfig.json` (and add any private access keys/passwords/secrets) - `ecosystem.config.js` - `ecosystem-production.config.js` @@ -30,7 +30,7 @@ And on the server, change to the directory where you copied those files and dire The server will start on port 3001. You can specify a different port by adding ` --port 1234` to the end of [the `args` configuration string](https://github.com/TerriaJS/TerriaMap/blob/f3c0b5e2a6ecd264b975beb155f9db84acca48df/ecosystem-production.config.js#L16) in `ecosystem-production.config.js`. -It is usually a good idea to run another web server, such as [nginx](https://nginx.org/en/) or [Varnish](https://varnish-cache.org/) on port 80 and then reverse-proxy to the Node.js server, rather than running terriajs-server on port 80 directly. You will find a varnish VCL file with the TerriaMap source code in the [deploy/varnish directory](https://github.com/TerriaJS/TerriaMap/tree/master/deploy/varnish). In addition to acting as a reverse proxy for the Node.js server, the supplied Varnish configuration also caches requests to proxied map data in order to improve performance. +It is usually a good idea to run another web server, such as [nginx](https://nginx.org/en/) on port 80 and then reverse-proxy to the Node.js server, rather than running terriajs-server on port 80 directly. NGINX is available as a package on Ubuntu via `sudo apt-get install -y nginx`. Using a separate web server such as such as [nginx](https://nginx.org/en/) will enable more security features, allow you to serve TerriaMap over HTTPS, and allow caching if you intend to [setup Geoserver](https://docs.terria.io/guide/deploying/setting-up-geoserver/) or other backend services. ### Using any web server @@ -41,6 +41,6 @@ It is usually a good idea to run another web server, such as [nginx](https://ngi 3. When configured correctly, it persists blobs of JSON for use in the sharing feature. If this service is not available, the JSON can be stored in the share URL, instead. However, this makes for some extremely long URLs. 4. If configured with `singlePageRouting` options it will serve up index.html for unmatched paths to allow for client side routes to be configured. -If these limitations are acceptable, you can run your TerriaMap on virtually any web server by simply copying the TerriaMap `wwwroot` onto the server! +If points 2 - 4 above are not required, you can run your TerriaMap on virtually any web server by simply copying the TerriaMap `wwwroot` onto the server! You can also incrementally add these services to your own server, as necessary, by porting the code in [terriajs-server](https://github.com/TerriaJS/terriajs-server) to your environment. diff --git a/doc/deploying/setting-up-geoserver.md b/doc/deploying/setting-up-geoserver.md index e3aa8db832c..a7feee6766f 100644 --- a/doc/deploying/setting-up-geoserver.md +++ b/doc/deploying/setting-up-geoserver.md @@ -1,5 +1,9 @@ # Setting up GeoServer +Geoserver will allow you to host your own spatial data on the web, such as vector data (e.g. shapefiles) and rasters. Geoserver can serve vector data and rasters as [WMS](https://www.ogc.org/standards/wms), and vector data as [WFS](https://www.ogc.org/standards/wfs). These can then be added as catalog items to your TerriaMap and viewed from anywhere. + +Here we describe the process of setting up Geoserver on a server running Ubuntu OS (e.g. see below for how to setup on an AWS virtual machine). + ## Installing Java and Tomcat8 On ubuntu install the java and tomcat8 packages @@ -62,11 +66,11 @@ The geoserver will contain the example datasets that ship with Geoserver. Geoser ## Caching Tiles -In order for your server to perform effectively we highly recommend that you cache the tile requests from National Map. There are 2 primary ways to do this - either turning on the GeoWebCache that comes with Geoserver or running a proxy server in front of your geoserver. +In order for your server to perform effectively we highly recommend that you cache the tile requests from TerriaMap. There are 2 primary ways to do this - either turning on the GeoWebCache that comes with Geoserver or running a proxy server in front of your geoserver. The easiest solution is to just use the GeoWebCache service. The documentation for GeoWebCache is [here](http://docs.geoserver.org/stable/en/user/geowebcache/). Mainly it consists of turning on direct integration in the caching defaults and making sure that your layers have caching turned on. You may also want to control the caching folder which can be done by editing your geoserver instance as explained [here](http://docs.geoserver.org/2.1.4/user/geowebcache/config.html). You will also probably need to set permissions in your new cache folder to 666. -The other solution is to put a caching proxy in front of your geoserver instance. This also has the benefit of being able to access your server on port 80 if you wish. The two primary options we have worked with are [nginx](http://nginx.org/en/) and [varnish](https://www.varnish-cache.org/). These are both available as packages on ubuntu. Below is an example of setting up nginx to work with geoserver. +The other solution is to put a caching proxy in front of your geoserver instance. This also has the benefit of being able to access your server on port 80 if you wish. The option we recommend is [nginx](http://nginx.org/en/). This is FOSS software and is available as a package on ubuntu. Below is an example of setting up nginx to work with geoserver. ### nginx @@ -121,20 +125,13 @@ sudo /etc/init.d/nginx start And if all went as planned you should be able to access your server at http://localhost/my_new_geoserver/web. -## Allowing National Map to access your server - -Due to security in modern browsers, for National Map to use your service you will probably need to do a little more work. Either you will need to set up your server with CORS support or provide a proxy service for your geoserver to allow National Map access to your data. National Map includes a proxy to some domains by default and if you are in these domains we will provide the proxy service. +## Allowing TerriaMap to access your server -If you are not in these domains, you will get an cross-domain-access error. To work with National Map without using a proxy, Geoserver must be configured to support [CORS](http://enable-cors.org/). The most common way to do this is to install [CORS Filter](http://software.dzhuvinov.com/cors-filter-installation.html). +Due to security in modern browsers, for TerriaMap to use your service you will probably need to do a little more work. Either you will need to set up your server with CORS support or provide a proxy service for your geoserver to allow TerriaMap access to your data. TerriaMap includes a proxy to some domains by default and if you are in these domains we will provide the proxy service. -An alternative approach, is to add CORS support to your nginx or varnish proxy service. See the documentation on how to do this. Thanks to the AREMI team, adding the necessary CORS headers with a Varnish reverse-proxy in front of the Geoserver can be done by adding the following to `/etc/varnish/default.vcl`: +If you are not in these domains, you will get an cross-domain-access error. To work with TerriaMap without using a proxy, Geoserver must be configured to support [CORS](http://enable-cors.org/). The most common way to do this is to install [CORS Filter](http://software.dzhuvinov.com/cors-filter-installation.html). -``` -sub vcl_fetch { - set beresp.http.Access-Control-Allow-Origin = "*"; - set beresp.http.Access-Control-Allow-Credentials = "true"; -} -``` +An alternative approach, is to add CORS support to your nginx proxy service. See the documentation on how to do this. ## Moving your Geoserver Instance diff --git a/lib/Map/Icons/Maki/MakiIcons.ts b/lib/Map/Icons/Maki/MakiIcons.ts index 376233be8cf..53defc7a78d 100644 --- a/lib/Map/Icons/Maki/MakiIcons.ts +++ b/lib/Map/Icons/Maki/MakiIcons.ts @@ -15,8 +15,8 @@ export function isMakiIcon(id: string | undefined) { export function getMakiIcon( id: string | undefined, color: string, - strokeWidth: number, - strokeColor: string, + strokeWidth: number | undefined, + strokeColor: string | undefined, height: number, width: number ) { @@ -24,6 +24,8 @@ export function getMakiIcon( const svgId = `${id}.svg`; const iconSvgs = icons.iconGroups[0].svgs as any; if (svgId in iconSvgs) { + if (!strokeColor || !strokeWidth) strokeWidth = 0; + // Values are adapted from https://labs.mapbox.com/maki-icons/editor/ const path = iconSvgs[svgId].pathData[0].d; const totalHeight = height + 4 + strokeWidth * 2; diff --git a/lib/Map/Leaflet/ImageryProviderLeafletTileLayer.ts b/lib/Map/Leaflet/ImageryProviderLeafletTileLayer.ts index b58b0b4666e..b34af23ef23 100644 --- a/lib/Map/Leaflet/ImageryProviderLeafletTileLayer.ts +++ b/lib/Map/Leaflet/ImageryProviderLeafletTileLayer.ts @@ -14,6 +14,7 @@ import ImageryProvider from "terriajs-cesium/Source/Scene/ImageryProvider"; import SplitDirection from "terriajs-cesium/Source/Scene/SplitDirection"; import isDefined from "../../Core/isDefined"; import pollToPromise from "../../Core/pollToPromise"; +import TerriaError from "../../Core/TerriaError"; import Leaflet from "../../Models/Leaflet"; import getUrlForImageryTile from "../ImageryProvider/getUrlForImageryTile"; import { ProviderCoords } from "../PickedFeatures/PickedFeatures"; @@ -418,24 +419,30 @@ export default class ImageryProviderLeafletTileLayer extends L.TileLayer { }); } - pickFeatures( + async pickFeatures( x: number, y: number, level: number, longitudeRadians: number, latitudeRadians: number ): Promise { - return pollToPromise(() => { - return this.imageryProvider.ready; - }).then(() => { - return this.imageryProvider.pickFeatures( + await pollToPromise(() => this.imageryProvider.ready); + try { + return await this.imageryProvider.pickFeatures( x, y, level, longitudeRadians, latitudeRadians ); - }); + } catch (e) { + TerriaError.from( + e, + `An error ocurred while calling \`ImageryProvider#.pickFeatures\`. \`ImageryProvider.url = ${ + (this.imageryProvider).url + }\`` + ).log(); + } } onRemove(map: L.Map) { diff --git a/lib/ModelMixins/ClippingMixin.ts b/lib/ModelMixins/ClippingMixin.ts index 72c75a8da6c..26820aaa581 100644 --- a/lib/ModelMixins/ClippingMixin.ts +++ b/lib/ModelMixins/ClippingMixin.ts @@ -234,7 +234,7 @@ function ClippingMixin>( width: dimensions.y, height: dimensions.z } - ); + ).logError("Failed to update clipping box dimensions"); const rotationMatrix = Matrix3.getRotation( Matrix4.getMatrix3(modelMatrix, new Matrix3()), diff --git a/lib/ModelMixins/GltfMixin.ts b/lib/ModelMixins/GltfMixin.ts index 7fb4da42432..516650f8a70 100644 --- a/lib/ModelMixins/GltfMixin.ts +++ b/lib/ModelMixins/GltfMixin.ts @@ -16,6 +16,7 @@ import GltfTraits from "../Traits/TraitsClasses/GltfTraits"; import CatalogMemberMixin from "./CatalogMemberMixin"; import MappableMixin from "./MappableMixin"; import ShadowMixin from "./ShadowMixin"; +import proxyCatalogItemUrl from "../Models/Catalog/proxyCatalogItemUrl"; // We want TS to look at the type declared in lib/ThirdParty/terriajs-cesium-extra/index.d.ts // and import doesn't allows us to do that, so instead we use require + type casting to ensure @@ -100,7 +101,7 @@ function GltfMixin>(Base: T) { return undefined; } const options = { - uri: new ConstantProperty(this.gltfModelUrl), + uri: new ConstantProperty(proxyCatalogItemUrl(this, this.gltfModelUrl)), upAxis: new ConstantProperty(this.cesiumUpAxis), forwardAxis: new ConstantProperty(this.cesiumForwardAxis), scale: new ConstantProperty(this.scale !== undefined ? this.scale : 1), diff --git a/lib/ModelMixins/GroupMixin.ts b/lib/ModelMixins/GroupMixin.ts index 41951958886..4b89ed3159d 100644 --- a/lib/ModelMixins/GroupMixin.ts +++ b/lib/ModelMixins/GroupMixin.ts @@ -1,12 +1,15 @@ +import { uniq } from "lodash-es"; import { action, computed, runInAction } from "mobx"; import clone from "terriajs-cesium/Source/Core/clone"; import DeveloperError from "terriajs-cesium/Source/Core/DeveloperError"; import AsyncLoader from "../Core/AsyncLoader"; import Constructor from "../Core/Constructor"; import filterOutUndefined from "../Core/filterOutUndefined"; +import flatten from "../Core/flatten"; import isDefined from "../Core/isDefined"; import { isJsonNumber, isJsonString, JsonObject } from "../Core/Json"; import Result from "../Core/Result"; +import CatalogMemberFactory from "../Models/Catalog/CatalogMemberFactory"; import Group from "../Models/Catalog/Group"; import CommonStrata from "../Models/Definition/CommonStrata"; import hasTraits, { HasTrait } from "../Models/Definition/hasTraits"; @@ -20,6 +23,8 @@ import ReferenceMixin from "./ReferenceMixin"; const naturalSort = require("javascript-natural-sort"); naturalSort.insensitive = true; +const MERGED_GROUP_ID_PREPEND = "__merged__"; + function GroupMixin>>(Base: T) { abstract class Klass extends Base implements Group { private _memberLoader = new AsyncLoader(this.forceLoadMembers.bind(this)); @@ -131,6 +136,8 @@ function GroupMixin>>(Base: T) { // Call Group AsyncLoader if no errors occurred while loading metadata (await this._memberLoader.load()).throwIfError(); + // Order here is important, as mergeGroupMembersByName will create models and the following functions will be applied on memberModels + this.mergeGroupMembersByName(); this.refreshKnownContainerUniqueIds(this.uniqueId); this.addShareKeysToMembers(); this.addItemPropertiesToMembers(); @@ -165,6 +172,77 @@ function GroupMixin>>(Base: T) { this.setTrait(stratumId, "isOpen", !this.isOpen); } + /** "Merges" group members with the same name if `mergeGroupsByName` Trait is set to `true` + * It does this by: + * - Creating a new CatalogGroup with all members of each merged group + * - Appending merged group ids to `excludeMembers` + * This is only applied to the first level of group members (it is not recursive) + * `mergeGroupsByName` is not applied to nested groups automatically. + */ + @action + mergeGroupMembersByName() { + if (!this.mergeGroupsByName) return; + // Create map of group names to group models + const membersByName = new Map(); + this.memberModels.forEach((member) => { + if ( + GroupMixin.isMixedInto(member) && + CatalogMemberMixin.isMixedInto(member) && + member.name + ) { + // Push member to map + membersByName.get(member.name)?.push(member) ?? + membersByName.set(member.name, [member]); + } + }); + + membersByName.forEach((groups, name) => { + if (groups.length > 1) { + const groupIdsToMerge = groups + .map((g) => g.uniqueId) + .filter(isJsonString); + + const mergedGroupId = `${this.uniqueId}/${MERGED_GROUP_ID_PREPEND}${name}`; + + let mergedGroup = this.terria.getModelById(BaseModel, mergedGroupId); + + // Create mergedGroup if it doesn't exist - and then add it to group.members + if (!mergedGroup) { + mergedGroup = CatalogMemberFactory.create( + "group", + mergedGroupId, + this.terria + ); + + if (mergedGroup) { + // We add groupIdsToMerge as shareKeys here for backward compatibility + this.terria.addModel(mergedGroup, groupIdsToMerge); + this.add(CommonStrata.override, mergedGroup); + } + } + + // Set merged group traits - name and members + // Also set excludeMembers to exclude all groups that are merged. + if ( + GroupMixin.isMixedInto(mergedGroup) && + CatalogMemberMixin.isMixedInto(mergedGroup) + ) { + mergedGroup.setTrait(CommonStrata.definition, "name", name); + mergedGroup.setTrait( + CommonStrata.definition, + "members", + flatten(groups.map((g) => [...g.members])) + ); + this.setTrait( + CommonStrata.override, + "excludeMembers", + uniq([...(this.excludeMembers ?? []), ...groupIdsToMerge]) + ); + } + } + }); + } + @action refreshKnownContainerUniqueIds(uniqueId: string | undefined): void { if (!uniqueId) return; diff --git a/lib/ModelMixins/TableMixin.ts b/lib/ModelMixins/TableMixin.ts index f5808b1740a..d60f9d8c342 100644 --- a/lib/ModelMixins/TableMixin.ts +++ b/lib/ModelMixins/TableMixin.ts @@ -172,45 +172,6 @@ function TableMixin>>(Base: T) { return this.styles.map((_, i) => this.getTableStyle(i)); } - /** - * Gets the {@link TableStyleTraits#id} of the currently-active style. - * Note that this is a trait so there is no guarantee that a style - * with this ID actually exists. If no active style is explicitly - * specified, return first style with a scalar color column (if none is found then find first style with enum, text and then region) - * - */ - @computed - get activeStyle(): string | undefined { - const value = super.activeStyle; - if (value !== undefined) { - return value; - } else if (this.styles && this.styles.length > 0) { - // Find default active style in this order: - // - First scalar style - // - First enum style - // - First text style - // - First region style - - const types = [ - TableColumnType.scalar, - TableColumnType.enum, - TableColumnType.text, - TableColumnType.region - ]; - - const firstStyleOfEachType = types.map( - (columnType) => - this.styles.find( - (s) => - this.findColumnByName(s.color.colorColumn)?.type === columnType - )?.id - ); - - return filterOutUndefined(firstStyleOfEachType)[0]; - } - return undefined; - } - /** * Gets the active {@link TableStyle}, which is the item from {@link #tableStyles} * with an ID that matches {@link #activeStyle}, if any. @@ -662,7 +623,7 @@ function TableMixin>>(Base: T) { defaultStyle: { color: { zScoreFilterEnabled: value === "true" } } - }); + }).logError("Failed to update zScoreFilterEnabled"); }, placement: "belowLegend", type: "checkbox" @@ -726,25 +687,22 @@ function TableMixin>>(Base: T) { if (dates === undefined) { return; } - const times = filterOutUndefined( - dates.map((d) => - d ? { time: d.toISOString(), tag: undefined } : undefined - ) - ).reduce( - // is it correct for discrete times to remove duplicates? - // see discussion on https://github.com/TerriaJS/terriajs/pull/4577 - // duplicates will mess up the indexing problem as our `` - // will eliminate duplicates on the UI front, so given the datepicker - // expects uniques, return uniques here - (acc: DiscreteTimeAsJS[], time) => - !acc.some( - (accTime) => accTime.time === time.time && accTime.tag === time.tag - ) - ? [...acc, time] - : acc, - [] - ); - return times; + + // is it correct for discrete times to remove duplicates? + // see discussion on https://github.com/TerriaJS/terriajs/pull/4577 + // duplicates will mess up the indexing problem as our `` + // will eliminate duplicates on the UI front, so given the datepicker + // expects uniques, return uniques here + const times = new Set(); + + for (let i = 0; i < dates.length; i++) { + const d = dates[i]; + if (d) { + times.add(d.toISOString()); + } + } + + return Array.from(times).map((time) => ({ time, tag: undefined })); } /** This is a temporary button which shows in the Legend in the Workbench, if custom styling has been applied. */ diff --git a/lib/Models/Catalog/CatalogGroups/OpenDataSoftCatalogGroup.ts b/lib/Models/Catalog/CatalogGroups/OpenDataSoftCatalogGroup.ts index 38f08c42fa6..62a5c05969d 100644 --- a/lib/Models/Catalog/CatalogGroups/OpenDataSoftCatalogGroup.ts +++ b/lib/Models/Catalog/CatalogGroups/OpenDataSoftCatalogGroup.ts @@ -39,7 +39,7 @@ export class OpenDataSoftCatalogStratum extends LoadableStratum( domain: catalogGroup.url }); - let datasets: ValidDataset[] | undefined; + let datasets: ValidDataset[] = []; let facets: ValidFacet[] | undefined; // If no facetFilters, try to get some facets @@ -55,9 +55,14 @@ export class OpenDataSoftCatalogStratum extends LoadableStratum( // If no facets (or we have facetFiles) - get datasets if (!facets || facets.length === 0) { + // We can only fetch datasets in batch of 100 + let offset = 0; + let totalDatasets: number | undefined; + const limit = 100; + let q = fromCatalog() .datasets() - .limit(100) + .limit(limit) .orderBy("title asc") // Filter dataset with 'geo' or 'timeserie' features. // Possible values: calendar, geo, image, apiproxy, timeserie, and aggregate @@ -70,13 +75,21 @@ export class OpenDataSoftCatalogStratum extends LoadableStratum( ); } - const catalog = await client.get(q); + while (!isDefined(totalDatasets) || offset < totalDatasets) { + q = q.offset(offset); + + const catalog = await client.get(q); + + totalDatasets = catalog.total_count ?? 0; - datasets = filterOutUndefined( - catalog.datasets - ?.map((d) => d.dataset) - .filter((d) => isValidDataset(d)) ?? [] - ) as ValidDataset[]; + catalog.datasets?.forEach((response) => { + if (isValidDataset(response.dataset)) { + datasets.push(response.dataset); + } + }); + + offset += limit; + } } return new OpenDataSoftCatalogStratum( diff --git a/lib/Models/Catalog/CatalogItems/CartoMapCatalogItem.ts b/lib/Models/Catalog/CatalogItems/CartoMapV1CatalogItem.ts similarity index 90% rename from lib/Models/Catalog/CatalogItems/CartoMapCatalogItem.ts rename to lib/Models/Catalog/CatalogItems/CartoMapV1CatalogItem.ts index bcdfea2035f..24f3e67e334 100644 --- a/lib/Models/Catalog/CatalogItems/CartoMapCatalogItem.ts +++ b/lib/Models/Catalog/CatalogItems/CartoMapV1CatalogItem.ts @@ -6,7 +6,7 @@ import TerriaError from "../../../Core/TerriaError"; import CatalogMemberMixin from "../../../ModelMixins/CatalogMemberMixin"; import MappableMixin, { MapItem } from "../../../ModelMixins/MappableMixin"; import UrlMixin from "../../../ModelMixins/UrlMixin"; -import CartoMapCatalogItemTraits from "../../../Traits/TraitsClasses/CartoMapCatalogItemTraits"; +import CartoMapV1CatalogItemTraits from "../../../Traits/TraitsClasses/CartoMapV1CatalogItemTraits"; import CreateModel from "../../Definition/CreateModel"; import LoadableStratum from "../../Definition/LoadableStratum"; import { BaseModel } from "../../Definition/Model"; @@ -14,12 +14,12 @@ import proxyCatalogItemUrl from "../proxyCatalogItemUrl"; import StratumOrder from "../../Definition/StratumOrder"; export class CartoLoadableStratum extends LoadableStratum( - CartoMapCatalogItemTraits + CartoMapV1CatalogItemTraits ) { static stratumName = "cartoLoadable"; constructor( - readonly catalogItem: CartoMapCatalogItem, + readonly catalogItem: CartoMapV1CatalogItem, readonly tileUrl: string, readonly tileSubdomains: string[] ) { @@ -28,13 +28,15 @@ export class CartoLoadableStratum extends LoadableStratum( duplicateLoadableStratum(newModel: BaseModel): this { return new CartoLoadableStratum( - newModel as CartoMapCatalogItem, + newModel as CartoMapV1CatalogItem, this.tileUrl, this.tileSubdomains ) as this; } - static load(catalogItem: CartoMapCatalogItem): Promise { + static load( + catalogItem: CartoMapV1CatalogItem + ): Promise { let queryParameters: { auth_token?: string }; queryParameters = {}; if (catalogItem.auth_token) { @@ -100,13 +102,13 @@ export class CartoLoadableStratum extends LoadableStratum( StratumOrder.addLoadStratum(CartoLoadableStratum.stratumName); -export default class CartoMapCatalogItem extends MappableMixin( - UrlMixin(CatalogMemberMixin(CreateModel(CartoMapCatalogItemTraits))) +export default class CartoMapV1CatalogItem extends MappableMixin( + UrlMixin(CatalogMemberMixin(CreateModel(CartoMapV1CatalogItemTraits))) ) { static readonly type = "carto"; get type() { - return CartoMapCatalogItem.type; + return CartoMapV1CatalogItem.type; } @computed get mapItems(): MapItem[] { diff --git a/lib/Models/Catalog/CatalogItems/CartoMapV3CatalogItem.ts b/lib/Models/Catalog/CatalogItems/CartoMapV3CatalogItem.ts new file mode 100644 index 00000000000..360f2114b0c --- /dev/null +++ b/lib/Models/Catalog/CatalogItems/CartoMapV3CatalogItem.ts @@ -0,0 +1,293 @@ +import { featureCollection, Geometry, GeometryCollection } from "@turf/helpers"; +import i18next from "i18next"; +import { computed, observable, runInAction } from "mobx"; +import RequestErrorEvent from "terriajs-cesium/Source/Core/RequestErrorEvent"; +import URI from "urijs"; +import JsonValue, { + isJsonNumber, + isJsonObject, + isJsonString, + isJsonStringArray, + JsonObject +} from "../../../Core/Json"; +import loadJson from "../../../Core/loadJson"; +import Result from "../../../Core/Result"; +import TerriaError, { networkRequestError } from "../../../Core/TerriaError"; +import GeoJsonMixin, { + toFeatureCollection +} from "../../../ModelMixins/GeojsonMixin"; +import CartoMapV3CatalogItemTraits from "../../../Traits/TraitsClasses/CartoMapV3CatalogItemTraits"; +import { GeoJsonTraits } from "../../../Traits/TraitsClasses/GeoJsonTraits"; +import TableStyleTraits from "../../../Traits/TraitsClasses/TableStyleTraits"; +import CreateModel from "../../Definition/CreateModel"; +import createStratumInstance from "../../Definition/createStratumInstance"; +import LoadableStratum from "../../Definition/LoadableStratum"; +import { BaseModel } from "../../Definition/Model"; +import StratumOrder from "../../Definition/StratumOrder"; +import Terria from "../../Terria"; + +class CartoMapV3Stratum extends LoadableStratum(GeoJsonTraits) { + static stratumName = "cartoMapV3Stratum"; + constructor(readonly catalogItem: CartoMapV3CatalogItem) { + super(); + } + + static load(item: CartoMapV3CatalogItem) { + return new CartoMapV3Stratum(item); + } + + duplicateLoadableStratum(newModel: BaseModel): this { + return new CartoMapV3Stratum(newModel as CartoMapV3CatalogItem) as this; + } + + // Hide "cartodb_id" style + @computed get styles() { + return [ + createStratumInstance(TableStyleTraits, { + id: "cartodb_id", + hidden: true + }) + ]; + } +} + +StratumOrder.addLoadStratum(CartoMapV3Stratum.stratumName); + +export default class CartoMapV3CatalogItem extends GeoJsonMixin( + CreateModel(CartoMapV3CatalogItemTraits) +) { + static readonly type = "carto-v3"; + + @observable + geoJsonUrls: string[] = []; + + // Commented out as we don't support tileJSON yet + // @observable + // mvtTileJsonUrls: string[] = []; + + @observable geoJsonSize: number | undefined; + + constructor( + id: string | undefined, + terria: Terria, + sourceReference?: BaseModel | undefined + ) { + super(id, terria, sourceReference); + + if (this.strata.get(CartoMapV3Stratum.stratumName) === undefined) { + runInAction(() => { + this.strata.set( + CartoMapV3Stratum.stratumName, + new CartoMapV3Stratum(this) + ); + }); + } + } + + get type() { + return CartoMapV3CatalogItem.type; + } + + get typeName() { + return i18next.t("models.carto-v3.name"); + } + + protected async forceLoadMetadata() { + let response: JsonObject | undefined; + + // If cartoQuery is defined - use Query API (https://api-docs.carto.com/#8f2020d9-edf3-4b50-ae58-9edeaa34613c) + if (this.cartoQuery) { + const url = new URI(this.baseUrl) + .path("") + .path(`v3/maps/${this.connectionName}/query`); + + response = ( + await callCartoApi(url.toString(), this.accessToken, { + q: this.cartoQuery, + geo_column: this.cartoGeoColumn + }) + ).throwIfError(); + } + // If cartoTableName is defined - use Table API (https://api-docs.carto.com/#6a05d4d7-c6a1-4635-a8de-c91fa5e77fda) + else if (this.cartoTableName) { + const url = new URI(this.baseUrl) + .path("") + .path(`v3/maps/${this.connectionName}/table`) + .query({ + name: this.cartoTableName, + columns: this.cartoColumns?.join(","), + geo_column: this.cartoGeoColumn + }); + + response = ( + await callCartoApi(url.toString(), this.accessToken) + ).throwIfError(); + } else { + throw new TerriaError({ + title: "Invalid Carto V3 config", + message: "`cartoQuery` or `cartoTableName` must be defined" + }); + } + + let geoJsonUrls: string[] = []; + // Commented out as we don't support tileJSON yet + // let mvtTileJsonUrls: string[] = []; + + if ( + response && + isJsonObject(response.geojson) && + isJsonStringArray(response.geojson.url) + ) { + geoJsonUrls = response.geojson.url; + } + + // Commented out as we don't support tileJSON yet + // if ( + // response && + // isJsonObject(response.tilejson) && + // isJsonStringArray(response.tilejson.url) + // ) { + // mvtTileJsonUrls = response.tilejson.url; + // } + + if (geoJsonUrls.length === 0 /*&& mvtTileJsonUrls.length === 0*/) { + throw TerriaError.from("No GeoJSON found."); + } + + runInAction(() => { + if (response && isJsonNumber(response?.size)) { + this.geoJsonSize = response.size; + } + this.geoJsonUrls = geoJsonUrls; + // Commented out as we don't support tileJSON yet + // this.mvtTileJsonUrls = mvtTileJsonUrls; + }); + } + + protected async forceLoadGeojsonData() { + if (this.geoJsonUrls.length === 0) + throw TerriaError.from("No GeoJSON URL found for Carto table"); + + let jsonData: JsonValue | undefined = undefined; + + // Download all geoJson files + const geojsonResponses = await Promise.all( + this.geoJsonUrls.map(async (url) => { + jsonData = (await callCartoApi(url, this.accessToken)).throwIfError(); + + if (jsonData === undefined) { + throw new TerriaError({ + title: "Failed to load GeoJSON", + message: `Failed to load GeoJSON URL ${url}` + }); + } + + if ( + isJsonObject(jsonData, false) && + typeof jsonData.type === "string" + ) { + // Actual geojson + const fc = toFeatureCollection(jsonData); + if (fc) return fc; + } + + throw new TerriaError({ + title: "Failed to load GeoJSON", + message: `Invalid response from GeoJSON URL ${url}:\n\n + \`\`\` + ${JSON.stringify(jsonData)} + \`\`\`` + }); + }) + ); + + // NOTE: Commented out until we add tileJson/mvt support + // Download all tileJson files + // const tilejsonResponses = await Promise.all( + // this.mvtTileJsonUrls.map(async (url) => { + // jsonData = await loadJson(url, { + // Authorization: `Bearer ${this.accessToken}` + // }); + + // if (jsonData === undefined) { + // throw new TerriaError({ + // title: "Failed to load GeoJSON", + // message: `Failed to load GeoJSON URL ${url}` + // }); + // } + + // if (isJsonObject(jsonData, false)) { + // return jsonData; + // } + + // throw new TerriaError({ + // title: "Failed to load GeoJSON", + // message: `Invalid response from GeoJSON URL ${url}:\n\n + // \`\`\` + // ${JSON.stringify(jsonData)} + // \`\`\`` + // }); + // }) + // ); + + // Merge all geojson responses into a combined feature collection + const combinedFeatureCollection = featureCollection< + Geometry | GeometryCollection + >([]); + + geojsonResponses.forEach((fc) => { + for (let i = 0; i < fc.features.length; i++) { + combinedFeatureCollection.features.push(fc.features[i]); + } + }); + + return combinedFeatureCollection; + } +} + +interface CartoApiErrorResponse { + error?: string; + message?: string; + status?: number; + source?: string; + connection_id?: string; + connection_name?: string; +} + +/** Wrap loadJson calls to handle Carto API error messages */ +async function callCartoApi(url: string, auth?: string, body?: JsonObject) { + try { + return new Result( + await loadJson( + url, + auth + ? { + Authorization: `Bearer ${auth}` + } + : {}, + body + ) + ); + } catch (e) { + if (e instanceof RequestErrorEvent) { + try { + const jsonResponse = isJsonString(e.response) + ? JSON.parse(e.response) + : e.response; + if (isJsonObject(jsonResponse) && isJsonString(jsonResponse.error)) { + const cartoError = jsonResponse as CartoApiErrorResponse; + return Result.error( + networkRequestError( + TerriaError.from(e, { + title: "Error from Carto API", + message: cartoError.message ?? cartoError.error, + importance: -1 + }) + ) + ); + } + } catch {} + } + return Result.error(e); + } +} diff --git a/lib/Models/Catalog/CatalogItems/GeoJsonCatalogItem.ts b/lib/Models/Catalog/CatalogItems/GeoJsonCatalogItem.ts index 88f1522619f..a22381a993b 100644 --- a/lib/Models/Catalog/CatalogItems/GeoJsonCatalogItem.ts +++ b/lib/Models/Catalog/CatalogItems/GeoJsonCatalogItem.ts @@ -68,7 +68,11 @@ class GeoJsonCatalogItem throw fileApiNotSupportedError(this.terria); } const body = this.requestData ? toJS(this.requestData) : undefined; - const blob = await loadBlob(this.url, undefined, body); + const blob = await loadBlob( + proxyCatalogItemUrl(this, this.url), + undefined, + body + ); jsonData = await parseZipJsonBlob(blob); } else { jsonData = await loadJson( diff --git a/lib/Models/Catalog/CatalogItems/ShapefileCatalogItem.ts b/lib/Models/Catalog/CatalogItems/ShapefileCatalogItem.ts index 99eba29a53a..d439d321c03 100644 --- a/lib/Models/Catalog/CatalogItems/ShapefileCatalogItem.ts +++ b/lib/Models/Catalog/CatalogItems/ShapefileCatalogItem.ts @@ -13,6 +13,7 @@ import GeoJsonMixin, { import ShapefileCatalogItemTraits from "../../../Traits/TraitsClasses/ShapefileCatalogItemTraits"; import CreateModel from "../../Definition/CreateModel"; import HasLocalData from "../../HasLocalData"; +import proxyCatalogItemUrl from "../proxyCatalogItemUrl"; import { fileApiNotSupportedError } from "./GeoJsonCatalogItem"; export function isJsonArrayOrDeepArrayOfObjects( @@ -63,7 +64,7 @@ class ShapefileCatalogItem if (typeof FileReader === "undefined") { throw fileApiNotSupportedError(this.terria); } - const blob = await loadBlob(this.url); + const blob = await loadBlob(proxyCatalogItemUrl(this, this.url)); return await parseShapefile(blob); } else { throw TerriaError.from( diff --git a/lib/Models/Catalog/CatalogReferences/MagdaReference.ts b/lib/Models/Catalog/CatalogReferences/MagdaReference.ts index 6e25a639419..ed1ec84caef 100644 --- a/lib/Models/Catalog/CatalogReferences/MagdaReference.ts +++ b/lib/Models/Catalog/CatalogReferences/MagdaReference.ts @@ -508,12 +508,17 @@ export default class MagdaReference extends AccessControlMixin( ) { return; } - updateModelFromJson(group, key, terriaStratum, true); + updateModelFromJson(group, key, terriaStratum, true).logError(); }); } if (override) { - updateModelFromJson(group, CommonStrata.override, override, true); + updateModelFromJson( + group, + CommonStrata.override, + override, + true + ).logError(); } return group; @@ -570,13 +575,20 @@ export default class MagdaReference extends AccessControlMixin( return; } updateModelFromJson(result, key, terriaStratum, true).catchError( - (error) => - result.setTrait(CommonStrata.underride, "isExperiencingIssues", true) + (error) => { + error.log(); + result.setTrait(CommonStrata.underride, "isExperiencingIssues", true); + } ); }); if (override) { - updateModelFromJson(result, CommonStrata.override, override, true); + updateModelFromJson( + result, + CommonStrata.override, + override, + true + ).logError(); } return result; @@ -680,12 +692,22 @@ export default class MagdaReference extends AccessControlMixin( name: datasetRecord.name }, true - ); + ).logError(); - updateModelFromJson(result, CommonStrata.definition, definition, true); + updateModelFromJson( + result, + CommonStrata.definition, + definition, + true + ).logError(); if (override) { - updateModelFromJson(result, CommonStrata.override, override, true); + updateModelFromJson( + result, + CommonStrata.override, + override, + true + ).logError(); } return result; diff --git a/lib/Models/Catalog/CatalogReferences/UrlReference.ts b/lib/Models/Catalog/CatalogReferences/UrlReference.ts index ed24715be63..80f07c474aa 100644 --- a/lib/Models/Catalog/CatalogReferences/UrlReference.ts +++ b/lib/Models/Catalog/CatalogReferences/UrlReference.ts @@ -103,7 +103,7 @@ export default class UrlReference extends UrlMixin( updateModelFromJson(item, urlRecordStratum, { name: url, url: url - }); + }).logError(); if (allowLoad && CatalogMemberMixin.isMixedInto(item)) { const loadMetadataResult = await item.loadMetadata(); diff --git a/lib/Models/Catalog/Esri/ArcGisMapServerCatalogItem.ts b/lib/Models/Catalog/Esri/ArcGisMapServerCatalogItem.ts index b6cc0f8de0c..e8f355b611c 100644 --- a/lib/Models/Catalog/Esri/ArcGisMapServerCatalogItem.ts +++ b/lib/Models/Catalog/Esri/ArcGisMapServerCatalogItem.ts @@ -436,7 +436,11 @@ export default class ArcGisMapServerCatalogItem extends UrlMixin( @computed private get _nextImageryParts(): ImageryParts | undefined { - if (this.nextDiscreteTimeTag) { + if ( + this.terria.timelineStack.contains(this) && + !this.isPaused && + this.nextDiscreteTimeTag + ) { const dateAsUnix: number = new Date(this.nextDiscreteTimeTag).getTime(); const imageryProvider = this._createImageryProvider( dateAsUnix.toString() diff --git a/lib/Models/Catalog/Gltf/AssImpCatalogItem.ts b/lib/Models/Catalog/Gltf/AssImpCatalogItem.ts index 2e8b6bfc023..9697fefe888 100644 --- a/lib/Models/Catalog/Gltf/AssImpCatalogItem.ts +++ b/lib/Models/Catalog/Gltf/AssImpCatalogItem.ts @@ -10,6 +10,7 @@ import AssImpCatalogItemTraits from "../../../Traits/TraitsClasses/AssImpCatalog import CommonStrata from "../../Definition/CommonStrata"; import CreateModel from "../../Definition/CreateModel"; import HasLocalData from "../../HasLocalData"; +import proxyCatalogItemUrl from "../proxyCatalogItemUrl"; import { GlTf } from "./GLTF"; // List of supported image formats from https://developer.mozilla.org/en-US/docs/Web/Media/Formats/Image_types @@ -99,7 +100,7 @@ export default class AssImpCatalogItem urls.map(async (url) => { // **Local data** - treat all URLs as zip if they have been uploaded if (isZip(url) || this.hasLocalData) { - const blob = await loadBlob(url); + const blob = await loadBlob(proxyCatalogItemUrl(this, url)); const zipFiles = await parseZipArrayBuffers(blob); zipFiles.forEach((zipFile) => { fileArrayBuffers.push({ @@ -116,7 +117,9 @@ export default class AssImpCatalogItem } // **Remote data** - explicitly defined in `url` or `urls` else { - const arrayBuffer = await loadArrayBuffer(url); + const arrayBuffer = await loadArrayBuffer( + proxyCatalogItemUrl(this, url) + ); const uri = new URI(url); const name = uri.filename(); fileArrayBuffers.push({ diff --git a/lib/Models/Catalog/Ows/WebFeatureServiceCapabilities.ts b/lib/Models/Catalog/Ows/WebFeatureServiceCapabilities.ts index 25103353e78..4e88771456b 100644 --- a/lib/Models/Catalog/Ows/WebFeatureServiceCapabilities.ts +++ b/lib/Models/Catalog/Ows/WebFeatureServiceCapabilities.ts @@ -134,6 +134,41 @@ function getOutputTypes(json: any): string[] | undefined { return Array.isArray(outputTypes) ? outputTypes : [outputTypes]; } +interface SrsNamesForLayer { + layerName: string; + srsArray: string[]; // First element is DefaultSRS +} + +/** + * Get the coordinate systems (srsName) supported by the WFS service for each layer. + * @param json + * returns an object with an array of srsNames for each layer. The first element is the defaultSRS as specified by the WFS service. + * TODO: For catalog items that specify which layer we are interested in, why build the array describing the srsNames for all the other layers too? + */ +function getSrsNames(json: any): SrsNamesForLayer[] | undefined { + let layers = json.FeatureTypeList?.FeatureType; + let srsNamesByLayer: SrsNamesForLayer[] = []; + if (Array.isArray(layers)) { + srsNamesByLayer = layers.map(buildSrsNameObject); + } else { + srsNamesByLayer.push(buildSrsNameObject(json.FeatureTypeList?.FeatureType)); + } + return srsNamesByLayer; +} + +/** + * Helper function to build individual objects describing the allowable srsNames for each layer in the WFS + * @param layer + */ +function buildSrsNameObject(layer: any): SrsNamesForLayer { + let srsNames: string[] = []; + srsNames.push(layer.DefaultSRS); + layer.OtherSRS?.forEach((item: string) => { + srsNames.push(item); + }); + return { layerName: layer.Name, srsArray: srsNames }; +} + export default class WebFeatureServiceCapabilities { static fromUrl: (url: string) => Promise = createTransformer((url: string) => { @@ -155,11 +190,13 @@ export default class WebFeatureServiceCapabilities { readonly service: CapabilitiesService; readonly outputTypes: string[] | undefined; readonly featureTypes: FeatureType[]; + readonly srsNames: SrsNamesForLayer[] | undefined; private constructor(xml: XMLDocument, json: any) { this.service = getService(json); this.outputTypes = getOutputTypes(json); this.featureTypes = getFeatureTypes(json); + this.srsNames = getSrsNames(json); } /** diff --git a/lib/Models/Catalog/Ows/WebFeatureServiceCatalogItem.ts b/lib/Models/Catalog/Ows/WebFeatureServiceCatalogItem.ts index 28e5d33b3d8..5cecbc239c6 100644 --- a/lib/Models/Catalog/Ows/WebFeatureServiceCatalogItem.ts +++ b/lib/Models/Catalog/Ows/WebFeatureServiceCatalogItem.ts @@ -16,7 +16,10 @@ import UrlMixin from "../../../ModelMixins/UrlMixin"; import xml2json from "../../../ThirdParty/xml2json"; import { InfoSectionTraits } from "../../../Traits/TraitsClasses/CatalogMemberTraits"; import { RectangleTraits } from "../../../Traits/TraitsClasses/MappableTraits"; -import WebFeatureServiceCatalogItemTraits from "../../../Traits/TraitsClasses/WebFeatureServiceCatalogItemTraits"; +import WebFeatureServiceCatalogItemTraits, { + SUPPORTED_CRS_4326, + SUPPORTED_CRS_3857 +} from "../../../Traits/TraitsClasses/WebFeatureServiceCatalogItemTraits"; import CreateModel from "../../Definition/CreateModel"; import createStratumInstance from "../../Definition/createStratumInstance"; import LoadableStratum from "../../Definition/LoadableStratum"; @@ -235,6 +238,68 @@ class GetCapabilitiesStratum extends LoadableStratum( return keyword === "GEOSERVER"; } } + + // Helper function to check if geojson output is supported (by checking GetCapabilities OutputTypes OR FeatureType OutputTypes) + hasJsonOutputFormat = (outputFormats: string[] | undefined) => { + return isDefined( + outputFormats?.find((format) => + ["json", "JSON", "application/json"].includes(format) + ) + ); + }; + + // Find which GML formats are supported, choose the one most suited to Terria. If not available, default to "gml3" + @computed + get outputFormat(): string | undefined { + const supportsGeojson = + this.hasJsonOutputFormat(this.capabilities.outputTypes) || + [...this.capabilitiesFeatureTypes.values()].reduce( + (hasGeojson, current) => + hasGeojson && this.hasJsonOutputFormat(current?.OutputFormats), + true + ); + + const searchValue = new RegExp(".*gml/3.1.1.*|.*gml3.1.1.*"); + + return supportsGeojson + ? "JSON" + : this.capabilities.outputTypes?.find((outputFormat) => + searchValue.test(outputFormat) + ) ?? "gml3"; + } + + /** Finds the best srsName to use. + * First checks if one provided in url. If one is provided in url, and this is supported by Terria, will use this. + * Note that an error will be thrown if user supplied srsName is not supported by the user supplied WFS service. + * If no srsName provided, or the provided one is not supported by Terria, + * then checks getCapabilities response and returns the first listed srs that is included in our list of supported srs. + * This enables us to use a urn identifier if supported, or a normal EPSG code if not. + * e.g. "urn:ogc:def:crs:EPSG::4326" or "EPSG:4326" + **/ + @computed + get srsName(): string | undefined { + // First check to see if URL has CRS or SRS + const supportedCrs = [...SUPPORTED_CRS_3857, ...SUPPORTED_CRS_4326]; + const queryParams: any = this.catalogItem.uri?.query(true) ?? {}; + const urlCrs = + queryParams.srsName ?? + queryParams.crs ?? + queryParams.CRS ?? + queryParams.srs ?? + queryParams.SRS; + if (urlCrs && supportedCrs.includes(urlCrs)) return urlCrs; + + // If no srsName provided, then find what the server supports and use the best one for Terria + const layerSrsArray = this.capabilities.srsNames?.find( + (layer) => layer.layerName === this.catalogItem.typeNamesArray[0] //If multiple layers in this WFS request, only use the first layer to find best srsName + ); + + return ( + layerSrsArray?.srsArray.find((srsName) => + SUPPORTED_CRS_4326.includes(srsName) + ) ?? "urn:ogc:def:crs:EPSG::4326" // Default to urn identifier for WGS84 if we cant find something better. Sometimes WFS service will support this even if not specified in GetCapabilities response. + ); + } } class WebFeatureServiceCatalogItem extends GetCapabilitiesMixin( @@ -331,25 +396,6 @@ class WebFeatureServiceCatalogItem extends GetCapabilitiesMixin( }); } - // Check if geojson output is supported (by checking GetCapabilities OutputTypes OR FeatureType OutputTypes) - const hasOutputFormat = (outputFormats: string[] | undefined) => { - return isDefined( - outputFormats?.find((format) => - ["json", "JSON", "application/json"].includes(format) - ) - ); - }; - - const supportsGeojson = - hasOutputFormat(getCapabilitiesStratum.capabilities.outputTypes) || - [ - ...getCapabilitiesStratum.capabilitiesFeatureTypes.values() - ].reduce( - (hasGeojson, current) => - hasGeojson && hasOutputFormat(current?.OutputFormats), - true - ); - const url = this.uri .clone() .setSearch( @@ -359,8 +405,8 @@ class WebFeatureServiceCatalogItem extends GetCapabilitiesMixin( request: "GetFeature", typeName: this.typeNames, version: "1.1.0", - outputFormat: supportsGeojson ? "JSON" : "gml3", - srsName: "urn:ogc:def:crs:EPSG::4326", // srsName must be formatted like this for correct lat/long order >:( + outputFormat: this.outputFormat, + srsName: this.srsName, maxFeatures: this.maxFeatures }, this.parameters @@ -372,7 +418,7 @@ class WebFeatureServiceCatalogItem extends GetCapabilitiesMixin( // Check for errors (if supportsGeojson and the request returns XML, OR the response includes ExceptionReport) if ( - (supportsGeojson && getFeatureResponse.startsWith("<")) || + (this.outputFormat === "JSON" && getFeatureResponse.startsWith("<")) || getFeatureResponse.includes("ExceptionReport") ) { let errorMessage: string | undefined; @@ -392,9 +438,10 @@ class WebFeatureServiceCatalogItem extends GetCapabilitiesMixin( }); } - let geojsonData = supportsGeojson - ? JSON.parse(getFeatureResponse) - : gmlToGeoJson(getFeatureResponse); + let geojsonData = + this.outputFormat === "JSON" + ? JSON.parse(getFeatureResponse) + : gmlToGeoJson(getFeatureResponse); const fc = toFeatureCollection(geojsonData); if (fc) return fc; diff --git a/lib/Models/Catalog/Ows/WebMapServiceCatalogItem.ts b/lib/Models/Catalog/Ows/WebMapServiceCatalogItem.ts index 59443784857..1873a104e56 100644 --- a/lib/Models/Catalog/Ows/WebMapServiceCatalogItem.ts +++ b/lib/Models/Catalog/Ows/WebMapServiceCatalogItem.ts @@ -404,7 +404,11 @@ class WebMapServiceCatalogItem @computed private get _nextImageryParts(): ImageryParts | undefined { - if (this.nextDiscreteTimeTag) { + if ( + this.terria.timelineStack.contains(this) && + !this.isPaused && + this.nextDiscreteTimeTag + ) { const imageryProvider = this._createImageryProvider( this.nextDiscreteTimeTag ); diff --git a/lib/Models/Catalog/Ows/WebProcessingServiceCatalogFunction.ts b/lib/Models/Catalog/Ows/WebProcessingServiceCatalogFunction.ts index 6d3d65c0fd4..9c684df4fdb 100644 --- a/lib/Models/Catalog/Ows/WebProcessingServiceCatalogFunction.ts +++ b/lib/Models/Catalog/Ows/WebProcessingServiceCatalogFunction.ts @@ -286,7 +286,7 @@ export default class WebProcessingServiceCatalogFunction extends XmlRequestMixin wpsParameters: dataInputs, forceConvertResultsToV8: this.forceConvertResultsToV8 }) - ); + ).raiseError(this.terria, "Error ocurred while updating job model JSON"); return job; } diff --git a/lib/Models/Catalog/Ows/WebProcessingServiceCatalogFunctionJob.ts b/lib/Models/Catalog/Ows/WebProcessingServiceCatalogFunctionJob.ts index 41c2843ee31..37a3b27d215 100644 --- a/lib/Models/Catalog/Ows/WebProcessingServiceCatalogFunctionJob.ts +++ b/lib/Models/Catalog/Ows/WebProcessingServiceCatalogFunctionJob.ts @@ -360,7 +360,9 @@ export default class WebProcessingServiceCatalogFunctionJob extends XmlRequestMi features: geojsonFeatures, totalFeatures: this.geojsonFeatures!.length } - }); + }).logError( + "Error ocurred while updating Input Features GeoJSON model JSON" + ); }); (await this.geoJsonItem!.loadMapItems()).throwIfError; } diff --git a/lib/Models/Catalog/registerCatalogMembers.ts b/lib/Models/Catalog/registerCatalogMembers.ts index cf67027cd09..3dd899be7bf 100644 --- a/lib/Models/Catalog/registerCatalogMembers.ts +++ b/lib/Models/Catalog/registerCatalogMembers.ts @@ -6,7 +6,8 @@ import SocrataCatalogGroup from "./CatalogGroups/SocrataCatalogGroup"; import ThreddsCatalogGroup from "./CatalogGroups/ThreddsCatalogGroup"; import { ApiTableCatalogItem } from "./CatalogItems/ApiTableCatalogItem"; import BingMapsCatalogItem from "./CatalogItems/BingMapsCatalogItem"; -import CartoMapCatalogItem from "./CatalogItems/CartoMapCatalogItem"; +import CartoMapV1CatalogItem from "./CatalogItems/CartoMapV1CatalogItem"; +import CartoMapV3CatalogItem from "./CatalogItems/CartoMapV3CatalogItem"; import Cesium3DTilesCatalogItem from "./CatalogItems/Cesium3DTilesCatalogItem"; import CesiumTerrainCatalogItem from "./CatalogItems/CesiumTerrainCatalogItem"; import CompositeCatalogItem from "./CatalogItems/CompositeCatalogItem"; @@ -154,7 +155,14 @@ export default function registerCatalogMembers() { MapboxVectorTileCatalogItem.type, MapboxVectorTileCatalogItem ); - CatalogMemberFactory.register(CartoMapCatalogItem.type, CartoMapCatalogItem); + CatalogMemberFactory.register( + CartoMapV1CatalogItem.type, + CartoMapV1CatalogItem + ); + CatalogMemberFactory.register( + CartoMapV3CatalogItem.type, + CartoMapV3CatalogItem + ); CatalogMemberFactory.register(UrlReference.type, UrlReference); CatalogMemberFactory.register(SplitItemReference.type, SplitItemReference); CatalogMemberFactory.register(YDYRCatalogFunction.type, YDYRCatalogFunction); diff --git a/lib/Models/Cesium.ts b/lib/Models/Cesium.ts index f420975f478..65ad944ff88 100644 --- a/lib/Models/Cesium.ts +++ b/lib/Models/Cesium.ts @@ -257,6 +257,8 @@ export default class Cesium extends GlobeOrMap { this.scene.globe.depthTestAgainstTerrain = false; + this.scene.renderError.addEventListener(this.onRenderError.bind(this)); + const inputHandler = this.cesiumWidget.screenSpaceEventHandler; // // Add double click zoom @@ -559,9 +561,31 @@ export default class Cesium extends GlobeOrMap { } } + private previousRenderError: string | undefined; + + /** Show error message to user if Cesium stops rendering. */ + private onRenderError(scene: Scene, error: unknown) { + // This function can be called many times with the same error + // So we do a rudimentary check to only show the error message once + // - by comparing error.toString() to this.previousRenderError + if (typeof error === "object" && error !== null) { + const newError = error.toString(); + if (newError !== this.previousRenderError) { + this.previousRenderError = error.toString(); + this.terria.raiseErrorToUser(error, { + title: i18next.t("map.cesium.stoppedRenderingTitle"), + message: i18next.t("map.cesium.stoppedRenderingMessage", { + appName: this.terria.appName + }) + }); + } + } + } + destroy() { // Port old Cesium.prototype.destroy stuff // this._enableSelectExtent(cesiumWidget.scene, false); + this.scene.renderError.removeEventListener(this.onRenderError); const inputHandler = this.cesiumWidget.screenSpaceEventHandler; inputHandler.removeInputAction(ScreenSpaceEventType.MOUSE_MOVE); @@ -1152,7 +1176,7 @@ export default class Cesium extends GlobeOrMap { const vectorFeatures = this.pickVectorFeatures(screenPosition); const providerCoords = this._attachProviderCoordHooks(); - var pickRasterPromise = + const pickRasterPromise = this.terria.allowFeatureInfoRequests && isDefined(pickRay) ? this.scene.imageryLayers.pickImageryLayerFeatures(pickRay, this.scene) : undefined; @@ -1386,26 +1410,35 @@ export default class Cesium extends GlobeOrMap { longitude: number, latitude: number ) { - const featuresPromise = oldPick.call( - imageryProvider, - x, - y, - level, - longitude, - latitude - ); + const url = (imageryProvider).url; - // Use url to uniquely identify providers because what else can we do? - if ((imageryProvider).url) { - providerCoords[(imageryProvider).url] = { - x: x, - y: y, - level: level - }; - } + try { + const featuresPromise = oldPick.call( + imageryProvider, + x, + y, + level, + longitude, + latitude + ); - imageryProvider.pickFeatures = oldPick; - return featuresPromise; + // Use url to uniquely identify providers because what else can we do? + if (url) { + providerCoords[url] = { + x: x, + y: y, + level: level + }; + } + + imageryProvider.pickFeatures = oldPick; + return featuresPromise; + } catch (e) { + TerriaError.from( + e, + `An error ocurred while hooking into \`ImageryProvider#.pickFeatures\`. \`ImageryProvider.url = ${url}\`` + ).log(); + } }; for (let j = 0; j < this.scene.imageryLayers.length; j++) { diff --git a/lib/Models/RelatedMaps.ts b/lib/Models/RelatedMaps.ts new file mode 100644 index 00000000000..366bfde7107 --- /dev/null +++ b/lib/Models/RelatedMaps.ts @@ -0,0 +1,65 @@ +export interface RelatedMap { + imageUrl: string; + url: string; + title: string; + description: string; +} + +export const defaultRelatedMaps: RelatedMap[] = [ + { + imageUrl: + "https://terria-catalogs-public.storage.googleapis.com/misc/related-maps/nationalmap.jpg", + url: "https://nationalmap.gov.au/", + title: "NationalMap", + description: + "The NationalMap is a website for map-based access to spatial data from Australian government agencies. It is an initiative of the Australian Government's Department of the Prime Minister and Cabinet and the software has been developed by Data61 working closely with the Department of the Prime Minister and Cabinet, Geoscience Australia and other government agencies." + }, + { + imageUrl: + "https://terria-catalogs-public.storage.googleapis.com/misc/related-maps/vic-dt.jpg", + url: "https://vic.digitaltwin.terria.io/", + title: "Digital Twin Victoria", + description: + "The Digital Twin Victoria (DTV) platform is the most comprehensive digital model ever assembled for Victoria. It brings together masses of 2D, 3D and live data in a single online place open for everyone to use. The DTV platform is one part of the $37.4 million Digital Twin Victoria Program." + }, + { + imageUrl: + "https://terria-catalogs-public.storage.googleapis.com/misc/related-maps/nsw-dt.png", + url: "https://nsw.digitaltwin.terria.io/", + title: "NSW Spatial Digital Twin", + description: + "The NSW Spatial Digital Twin aims to respond to the NSW State Infrastructure Strategy by developing a 4D (3D+time) Foundation Spatial Data Framework. The goal is to help the NSW Government with infrastructure assets planning and management, integration with land use planning, data collaboration, and sharing." + }, + { + imageUrl: + "https://terria-catalogs-public.storage.googleapis.com/misc/related-maps/qld-dt.png", + url: "https://qld.digitaltwin.terria.io/", + title: "QLD Spatial Digital Twin", + description: + "The QLD Spatial Digital Twin is an evolving 4D data platform that enables users to discover, visualise, analyse and share a rich range of datasets in a real world context, to enable better planning and decision making. It is an initiative of Advance Queensland and the Department of Resources in partnership with CSIRO-Data61." + }, + { + imageUrl: + "https://terria-catalogs-public.storage.googleapis.com/misc/related-maps/dea.png", + url: "https://maps.dea.ga.gov.au/", + title: "Digital Earth Australia", + description: + "Digital Earth Australia (DEA) Map is a website for map-based access to DEA’s products, developed by Data61 CSIRO for Geoscience Australia. DEA uses satellite data to detect physical changes across Australia in unprecedented detail. It identifies soil and coastal erosion, crop growth, water quality and changes to cities and regions." + }, + { + imageUrl: + "https://terria-catalogs-public.storage.googleapis.com/misc/related-maps/droughtmap.jpg", + url: "https://map.drought.gov.au/", + title: "National Drought Map", + description: + "The DroughtMap is a platform built for the Australian Government to assist with planning and management of drought effects in Australia." + }, + { + imageUrl: + "https://terria-catalogs-public.storage.googleapis.com/misc/related-maps/aurin-map.jpg", + url: "https://map.aurin.org.au/", + title: "AURIN Map", + description: + "AURIN Map provides access to datasets on urban infrastructure for urban researchers, policy and decision makers." + } +]; diff --git a/lib/Models/SearchProviders/CatalogIndex.ts b/lib/Models/SearchProviders/CatalogIndex.ts index bf9dfeb4d98..5ff5bb00c9d 100644 --- a/lib/Models/SearchProviders/CatalogIndex.ts +++ b/lib/Models/SearchProviders/CatalogIndex.ts @@ -117,7 +117,9 @@ export default class CatalogIndex { if (!isJsonObject(model, false)) return; const reference = new CatalogIndexReference(id, this.terria); - updateModelFromJson(reference, CommonStrata.definition, model); + updateModelFromJson(reference, CommonStrata.definition, model).logError( + "Error ocurred adding adding catalog model reference" + ); if (isJsonStringArray(model.shareKeys)) { model.shareKeys.map((s) => this.shareKeysMap.set(s, id)); diff --git a/lib/Models/Terria.ts b/lib/Models/Terria.ts index 992dab890a5..890c367cfd6 100644 --- a/lib/Models/Terria.ts +++ b/lib/Models/Terria.ts @@ -30,7 +30,6 @@ import { isJsonBoolean, isJsonNumber, isJsonObject, - isJsonObjectArray, isJsonString, JsonArray, JsonObject @@ -89,13 +88,13 @@ import GlobeOrMap from "./GlobeOrMap"; import IElementConfig from "./IElementConfig"; import InitSource, { InitSourceData, + InitSourceFromData, isInitFromData, isInitFromDataPromise, isInitFromOptions, isInitFromUrl, ShareInitSourceData, - StoryData, - InitSourceFromData + StoryData } from "./InitSource"; import Internationalization, { I18nStartOptions, @@ -103,6 +102,7 @@ import Internationalization, { } from "./Internationalization"; import MapInteractionMode from "./MapInteractionMode"; import NoViewer from "./NoViewer"; +import { defaultRelatedMaps, RelatedMap } from "./RelatedMaps"; import CatalogIndex from "./SearchProviders/CatalogIndex"; import ShareDataService from "./ShareDataService"; import { StoryVideoSettings } from "./StoryVideoSettings"; @@ -320,6 +320,8 @@ interface ConfigParameters { * Options for Google Analytics */ googleAnalyticsOptions?: unknown; + + relatedMaps?: RelatedMap[]; } interface StartOptions { @@ -538,7 +540,8 @@ export default class Terria { printDisclaimer: undefined, storyRouteUrlPrefix: undefined, enableConsoleAnalytics: undefined, - googleAnalyticsOptions: undefined + googleAnalyticsOptions: undefined, + relatedMaps: defaultRelatedMaps }; @observable @@ -2020,10 +2023,6 @@ export default class Terria { ); } - getUserProperty(key: string) { - return undefined; - } - getLocalProperty(key: string): string | boolean | null { try { if (!defined(window.localStorage)) { diff --git a/lib/ReactViewModels/ViewState.ts b/lib/ReactViewModels/ViewState.ts index ebda94855b2..b0768058841 100644 --- a/lib/ReactViewModels/ViewState.ts +++ b/lib/ReactViewModels/ViewState.ts @@ -386,11 +386,10 @@ export default class ViewState { this._disclaimerVisibleSubscription = reaction( () => this.disclaimerVisible, (disclaimerVisible) => { - if (disclaimerVisible) { - this.isMapFullScreen = true; - } else if (!disclaimerVisible && this.isMapFullScreen) { - this.isMapFullScreen = false; - } + this.isMapFullScreen = + disclaimerVisible || + terria.userProperties.get("hideWorkbench") === "1" || + terria.userProperties.get("hideExplorerPanel") === "1"; } ); diff --git a/lib/ReactViews/Custom/ApiTableCustomComponent.ts b/lib/ReactViews/Custom/ApiTableCustomComponent.ts index 07b91944140..816648404f6 100644 --- a/lib/ReactViews/Custom/ApiTableCustomComponent.ts +++ b/lib/ReactViews/Custom/ApiTableCustomComponent.ts @@ -51,11 +51,8 @@ export default class ApiTableChartCustomComponent extends ChartCustomComponent { - this.setShowHelpMenu(false); - }} - btnTitle={t("helpMenu.btnTitle")} - onOpenChanged={this.setShowHelpMenu} - // forceClosed={this.props.viewState.showSatelliteGuidance} - smallScreen={this.props.viewState.useSmallScreenInterface} - > - - - - - ); - } -} - -export default withTranslation()(HelpMenuPanelBasic); diff --git a/lib/ReactViews/HelpScreens/HelpOverlay.jsx b/lib/ReactViews/HelpScreens/HelpOverlay.jsx deleted file mode 100644 index b6e29345203..00000000000 --- a/lib/ReactViews/HelpScreens/HelpOverlay.jsx +++ /dev/null @@ -1,155 +0,0 @@ -"use strict"; - -import React from "react"; -import createReactClass from "create-react-class"; -import PropTypes from "prop-types"; -import defined from "terriajs-cesium/Source/Core/defined"; - -import HelpScreenWindow from "./HelpScreenWindow"; -import ObscureOverlay from "./ObscureOverlay"; - -const HelpOverlay = createReactClass({ - displayName: "HelpOverlay", - - propTypes: { - helpViewState: PropTypes.object.isRequired, - viewState: PropTypes.object.isRequired - }, - - getInitialState() { - return { - screens: undefined, - index: undefined, - currentRectangle: undefined, - previousRectangle: undefined - }; - }, - - cancel() { - if (defined(this.setIntervalId)) { - clearInterval(this.setIntervalId); - } - this.setState({ - screens: undefined, - index: undefined, - currentRectangle: undefined, - previousRectangle: undefined - }); - this.props.helpViewState.currentScreen = undefined; - }, - - help(screens, i) { - if (i === 0) { - // If this is the first help screen in a sequence, locate the highlighted element and track the rectangle - // to make sure the overlay and help screen move with the element. - const that = this; - this.setIntervalId = setInterval(function () { - if (!defined(that.state.screens)) { - return; - } - if (that.props.helpViewState.cancel) { - // Has been cancelled from somewhere else. Abort! - that.cancel(); - } - const i = that.state.index; - const currentScreen = - that.state && that.state.screens && that.state.screens[i]; - if ( - currentScreen && - typeof currentScreen.preDisplayHook === "function" - ) { - currentScreen.preDisplayHook(that.props.viewState); - } - updateCurrentRectangle(that, currentScreen); - - if ( - !that.props.helpViewState.advance && - defined(that.state) && - defined(that.state.previousRectangle) && - that.state.previousRectangle === that.state.currentRectangle - ) { - return; - } - - if (defined(that.state) && defined(that.state.currentRectangle)) { - currentScreen.rectangle = that.state.currentRectangle; - currentScreen.currentScreenNumber = i + 1; - currentScreen.totalNumberOfScreens = that.state.screens.length; - currentScreen.onNext = function () { - if (typeof currentScreen.postDisplayHook === "function") { - currentScreen.postDisplayHook(that.props.viewState); - } - if (i + 1 >= that.state.screens.length) { - that.cancel(); - } else { - that.help(that.state.screens, i + 1); - } - }; - that.props.helpViewState.currentScreen = currentScreen; - // Processed current rectangle, set as previous. - that.setState({ previousRectangle: that.state.currentRectangle }); - } - - if (that.props.helpViewState.advance) { - // Has been manually advanced from somewhere else. Next screen! - that.props.helpViewState.advance = false; - currentScreen.onNext(); - } - }, 10); - } - this.props.helpViewState.cancel = false; - this.setState({ - screens: screens, - index: i, - currentRectangle: undefined, - previousRectangle: undefined - }); - }, - - executeSequence() { - if (defined(this.props.helpViewState.currentSequence)) { - if (defined(this.setIntervalId)) { - clearInterval(this.setIntervalId); - } - this.help(this.props.helpViewState.currentSequence.screens, 0); - // To prevent executeSequence from triggering again before we start a new sequence. - this.props.helpViewState.currentSequence = undefined; - } - }, - - componentDidMount() { - this.executeSequence(); - }, - - componentDidUpdate() { - this.executeSequence(); - }, - - render() { - return ( -
    - - -
    - ); - } -}); - -/** - * Reset currentRectangle to the bounding rectangle of the highlighted element. - * @private - */ -function updateCurrentRectangle(component, currentScreen) { - if (!defined(currentScreen)) { - return; - } - const highlightedElement = document.getElementsByClassName( - currentScreen.highlightedComponentId - ); - if (defined(highlightedElement[0])) { - const screenRect = highlightedElement[0].getBoundingClientRect(); - component.setState({ currentRectangle: screenRect }); - } -} - -export default HelpOverlay; diff --git a/lib/ReactViews/HelpScreens/HelpScreenWindow.jsx b/lib/ReactViews/HelpScreens/HelpScreenWindow.jsx deleted file mode 100644 index 6a72a9dd785..00000000000 --- a/lib/ReactViews/HelpScreens/HelpScreenWindow.jsx +++ /dev/null @@ -1,138 +0,0 @@ -"use strict"; - -import ObserverModelMixin from "../ObserveModelMixin"; -import React from "react"; -import createReactClass from "create-react-class"; -import PropTypes from "prop-types"; -import parseCustomHtmlToReact from "../Custom/parseCustomHtmlToReact"; -import Styles from "./help-screen-window.scss"; -import classNames from "classnames"; -import defined from "terriajs-cesium/Source/Core/defined"; -import HelpViewState from "../../ReactViewModels/HelpViewState"; -import { withTranslation } from "react-i18next"; - -const HelpScreenWindow = createReactClass({ - displayName: "HelpScreenWindow", - mixins: [ObserverModelMixin], - - propTypes: { - helpViewState: PropTypes.object, - t: PropTypes.func.isRequired - }, - - render() { - const currentScreen = this.props.helpViewState.currentScreen; - if (!defined(currentScreen) || !defined(currentScreen.rectangle)) { - return false; - } - const windowClass = classNames(Styles.window, { - [Styles.isActive]: currentScreen - }); - const { t } = this.props; - const buttonText = - currentScreen && - currentScreen.totalNumberOfScreens === currentScreen.currentScreenNumber - ? t("helpMenu.done") - : t("helpMenu.next"); - const positionLeft = calculateLeftPosition(currentScreen); - const positionTop = calculateTopPosition(currentScreen); - - const caretTop = currentScreen && currentScreen.caretTop; - const caretLeft = currentScreen && currentScreen.caretLeft; - - const width = currentScreen && currentScreen.width; - - return ( -
    - -
    - {parseCustomHtmlToReact(currentScreen && currentScreen.message())} -
    -
    - - {currentScreen && - currentScreen.currentScreenNumber + - "/" + - currentScreen.totalNumberOfScreens} - -
    -
    - -
    -
    - ); - } -}); - -/** - * Work out the screen pixel value for left positioning based on helpScreen parameters. - * @private - */ -function calculateLeftPosition(helpScreen) { - const screenRect = helpScreen.rectangle; - let leftPosition = 0; - if (helpScreen.positionLeft === HelpViewState.RelativePosition.RECT_LEFT) { - leftPosition = screenRect.left; - } else if ( - helpScreen.positionLeft === HelpViewState.RelativePosition.RECT_RIGHT - ) { - leftPosition = screenRect.right; - } else if ( - helpScreen.positionLeft === HelpViewState.RelativePosition.RECT_TOP - ) { - leftPosition = screenRect.top; - } else if ( - helpScreen.positionLeft === HelpViewState.RelativePosition.RECT_BOTTOM - ) { - leftPosition = screenRect.bottom; - } - - leftPosition += helpScreen.offsetLeft; - return leftPosition; -} - -/** - * Work out the screen pixel value for top positioning based on helpScreen parameters. - * @private - */ -function calculateTopPosition(helpScreen) { - const screenRect = helpScreen.rectangle; - let topPosition = 0; - if (helpScreen.positionTop === HelpViewState.RelativePosition.RECT_LEFT) { - topPosition = screenRect.left; - } else if ( - helpScreen.positionTop === HelpViewState.RelativePosition.RECT_RIGHT - ) { - topPosition = screenRect.right; - } else if ( - helpScreen.positionTop === HelpViewState.RelativePosition.RECT_TOP - ) { - topPosition = screenRect.top; - } else if ( - helpScreen.positionTop === HelpViewState.RelativePosition.RECT_BOTTOM - ) { - topPosition = screenRect.bottom; - } - - topPosition += helpScreen.offsetTop; - return topPosition; -} - -module.exports = withTranslation()(HelpScreenWindow); diff --git a/lib/ReactViews/HelpScreens/ObscureOverlay.jsx b/lib/ReactViews/HelpScreens/ObscureOverlay.jsx deleted file mode 100644 index d39a9a84c4a..00000000000 --- a/lib/ReactViews/HelpScreens/ObscureOverlay.jsx +++ /dev/null @@ -1,113 +0,0 @@ -"use strict"; - -import ObserverModelMixin from "../ObserveModelMixin"; -import React from "react"; -import createReactClass from "create-react-class"; -import PropTypes from "prop-types"; -import Styles from "./obscure-overlay.scss"; -import classNames from "classnames"; -import defined from "terriajs-cesium/Source/Core/defined"; - -/** - * This provides five panels. Four are rectangle elements that go above, left, right, and below the highlighted element - * to grey out the rest of the screen. A fifth panel, which is clear, covers the whole screen to prevent the highlighted - * element from being selectable. - */ -const ObscureOverlay = createReactClass({ - displayName: "ObscureOverlay", - mixins: [ObserverModelMixin], - - propTypes: { - helpViewState: PropTypes.object - }, - - cancel() { - this.props.helpViewState.cancel = true; - }, - - advance() { - this.props.helpViewState.advance = true; - }, - - render() { - const helpScreen = this.props.helpViewState.currentScreen; - if (!defined(helpScreen) || !defined(helpScreen.rectangle)) { - return false; - } - - // Top - const topOverlayPositionLeft = 0 + "px"; - const topOverlayPositionTop = 0 + "px"; - const topOverlayHeight = helpScreen.rectangle.top + "px"; - const topOverlayWidth = "100%"; - - // Left - const leftOverlayPositionLeft = 0 + "px"; - const leftOverlayPositionTop = helpScreen.rectangle.top + "px"; - const leftOverlayHeight = helpScreen.rectangle.height + "px"; - const leftOverlayWidth = helpScreen.rectangle.left + "px"; - - // Right - const rightOverlayPositionLeft = helpScreen.rectangle.right + "px"; - const rightOverlayPositionTop = helpScreen.rectangle.top + "px"; - const rightOverlayHeight = helpScreen.rectangle.height + "px"; - const rightOverlayWidth = "100%"; - - // Bottom - const bottomOverlayPositionLeft = 0 + "px"; - const bottomOverlayPositionTop = helpScreen.rectangle.bottom + "px"; - const bottomOverlayHeight = "100%"; - const bottomOverlayWidth = "100%"; - - const windowClass = classNames(Styles.window, { - [Styles.isActive]: helpScreen - }); - return ( -
    -
    -
    -
    -
    -
    -
    - ); - } -}); - -module.exports = ObscureOverlay; diff --git a/lib/ReactViews/Map/HelpButton/HelpButton.tsx b/lib/ReactViews/Map/HelpButton/HelpButton.tsx index 758ee8bde4c..f0df7e8cbf4 100644 --- a/lib/ReactViews/Map/HelpButton/HelpButton.tsx +++ b/lib/ReactViews/Map/HelpButton/HelpButton.tsx @@ -1,20 +1,16 @@ +import { observer } from "mobx-react"; import React from "react"; import { useTranslation } from "react-i18next"; - -import ViewState from "../../../ReactViewModels/ViewState"; import Icon from "../../../Styled/Icon"; import Text from "../../../Styled/Text"; import Prompt from "../../Generic/Prompt"; +import { useViewState } from "../../StandardUserInterface/ViewStateContext"; import Styles from "./help-button.scss"; -import { runInAction } from "mobx"; - -interface Props { - viewState: ViewState; -} -export default (props: Props) => { +const HelpButton = observer(() => { const { t } = useTranslation(); + const viewState = useViewState(); return (
    @@ -23,7 +19,7 @@ export default (props: Props) => { onClick={(evt) => { evt.preventDefault(); evt.stopPropagation(); - props.viewState.showHelpPanel(); + viewState.showHelpPanel(); }} > @@ -39,19 +35,17 @@ export default (props: Props) => { } displayDelay={500} dismissText={t("helpPanel.dismissText")} - dismissAction={() => { - runInAction(() => - props.viewState.toggleFeaturePrompt("help", false, true) - ); - }} + dismissAction={() => viewState.toggleFeaturePrompt("help", false, true)} caretTopOffset={-8} caretLeftOffset={130} caretSize={15} promptWidth={273} promptTopOffset={50} promptLeftOffset={-100} - isVisible={props.viewState.featurePrompts.indexOf("help") >= 0} + isVisible={viewState.featurePrompts.indexOf("help") >= 0} />
    ); -}; +}); + +export default HelpButton; diff --git a/lib/ReactViews/Map/MenuBar.jsx b/lib/ReactViews/Map/MenuBar.jsx index 1a84872e433..47efc49bda0 100644 --- a/lib/ReactViews/Map/MenuBar.jsx +++ b/lib/ReactViews/Map/MenuBar.jsx @@ -1,22 +1,21 @@ +import classNames from "classnames"; +import { runInAction } from "mobx"; +import { observer } from "mobx-react"; +import PropTypes from "prop-types"; import React from "react"; import styled from "styled-components"; - -import PropTypes from "prop-types"; -import classNames from "classnames"; +import withControlledVisibility from "../../ReactViews/HOCs/withControlledVisibility"; +import { useViewState } from "../StandardUserInterface/ViewStateContext"; +import HelpButton from "./HelpButton/HelpButton"; +import LangPanel from "./Panels/LangPanel/LangPanel"; import SettingPanel from "./Panels/SettingPanel"; import SharePanel from "./Panels/SharePanel/SharePanel"; import CoordsPanel from "./Panels/CoordsPanel/CoordsPanel"; import ColorPanel from "./Panels/ColorPanel/ColorPanel"; import ToolsPanel from "./Panels/ToolsPanel/ToolsPanel"; import StoryButton from "./StoryButton/StoryButton"; -import LangPanel from "./Panels/LangPanel/LangPanel"; import Styles from "./menu-bar.scss"; -import { runInAction } from "mobx"; -import { observer } from "mobx-react"; - -import withControlledVisibility from "../../ReactViews/HOCs/withControlledVisibility"; -import HelpButton from "./HelpButton/HelpButton"; const StyledMenuBar = styled.div` pointer-events: none; @@ -28,36 +27,38 @@ const StyledMenuBar = styled.div` `; // The map navigation region const MenuBar = observer((props) => { + const viewState = useViewState(); + const terria = viewState.terria; const menuItems = props.menuItems || []; const handleClick = () => { runInAction(() => { - props.viewState.topElement = "MenuBar"; + viewState.topElement = "MenuBar"; }); }; - const storyEnabled = props.terria.configParameters.storyEnabled; - const enableTools = props.terria.getUserProperty("tools") === "1"; + const storyEnabled = terria.configParameters.storyEnabled; + const enableTools = terria.userProperties.get("tools") === "1"; return (
      {enableTools && (
    • - +
    • )} - +
    • {element} @@ -69,22 +70,17 @@ const MenuBar = observer((props) => {
      • - +
      • - +
      • -
      • - -
      • -
      • - -
      • - {props.terria.configParameters?.languageConfiguration?.enabled ? ( + + {terria.configParameters?.languageConfiguration?.enabled ? (
      • ) : null} @@ -93,8 +89,8 @@ const MenuBar = observer((props) => {
        • @@ -103,13 +99,13 @@ const MenuBar = observer((props) => {
          - +
        • {element} @@ -122,9 +118,6 @@ const MenuBar = observer((props) => { }); MenuBar.displayName = "MenuBar"; MenuBar.propTypes = { - terria: PropTypes.object, - viewState: PropTypes.object.isRequired, - allBaseMaps: PropTypes.array, // Not implemented yet animationDuration: PropTypes.number, menuItems: PropTypes.arrayOf(PropTypes.element), menuLeftItems: PropTypes.arrayOf(PropTypes.element) diff --git a/lib/ReactViews/Map/Panels/ToolsPanel/CountDatasets.jsx b/lib/ReactViews/Map/Panels/ToolsPanel/CountDatasets.jsx deleted file mode 100644 index acb764f4031..00000000000 --- a/lib/ReactViews/Map/Panels/ToolsPanel/CountDatasets.jsx +++ /dev/null @@ -1,168 +0,0 @@ -"use strict"; - -import React from "react"; -import createReactClass from "create-react-class"; -import PropTypes from "prop-types"; -import ObserverModelMixin from "../../../ObserveModelMixin"; -import defined from "terriajs-cesium/Source/Core/defined"; -import { withTranslation } from "react-i18next"; -import Loader from "../../../Loader"; - -import Styles from "./tools-panel.scss"; - -let countValue = 1; - -const CountDatasets = createReactClass({ - displayName: "CountDatasets", - mixins: [ObserverModelMixin], - - propTypes: { - terria: PropTypes.object, - viewState: PropTypes.object.isRequired, - t: PropTypes.func.isRequired - }, - - getInitialState() { - const { t } = this.props; - return { - btnText: t("countDatasets.btnText") - }; - }, - - countDatasets() { - const { t } = this.props; - const totals = { - name: undefined, - groups: 0, - items: 0, - messages: [], - subTotals: [], - showResults: false - }; - - function counter(group, stats, path) { - stats.name = group.name; - - const promises = []; - - for (let i = 0; i < group.items.length; ++i) { - const item = group.items[i]; - if (item.countValue === countValue) { - continue; - } - item.countValue = countValue; - if (typeof item.items !== "undefined") { - const childStats = { - name: undefined, - groups: 0, - items: 0, - messages: [], - subTotals: [] - }; - - path.push(item.name); - - const loadPromise = item.load(); - if (defined(loadPromise) && item.isLoading) { - promises.push( - loadPromise - .then( - recurseAndUpdateTotals.bind( - undefined, - item, - stats, - childStats, - path.slice() - ) - ) - .catch( - reportLoadError.bind(undefined, item, stats, path.slice()) - ) - ); - } else { - promises.push( - recurseAndUpdateTotals(item, stats, childStats, path) - ); - } - - path.pop(); - } else { - ++stats.items; - } - } - - return Promise.all(promises); - } - - function recurseAndUpdateTotals(item, stats, childStats, path) { - const promise = counter(item, childStats, path).then(function () { - stats.groups += childStats.groups + 1; - stats.items += childStats.items; - stats.messages.push.apply(stats.messages, childStats.messages); - stats.subTotals.push(childStats); - }); - return promise; - } - - function reportLoadError(item, stats, path) { - stats.messages.push(path.join(" -> ") + t("countDatasets.loadError")); - } - - this.setState({ - btnText: - }); - - ++countValue; - - const root = this.props.terria.catalog.group; - const that = this; - - counter(root, totals, []).then(function () { - let info = t("countDatasets.totals", { - items: totals.items, - groups: totals.groups - }); - that.props.updateResults(info); - let i; - const subTotals = totals.subTotals; - for (i = 0; i < subTotals.length; ++i) { - info += t("countDatasets.subTotals", { - name: subTotals[i].name, - items: subTotals[i].items, - groups: subTotals[i].groups - }); - } - - info += "
           
          "; - - const messages = totals.messages; - for (i = 0; i < messages.length; ++i) { - info += "
          " + messages[i] + "
          "; - } - that.setState({ - btnText: t("countDatasets.recount") - }); - - that.props.updateResults(info); - }); - }, - - render() { - const { t } = this.props; - return ( -
          - {t("countDatasets.title")} - -
          - ); - } -}); - -export default withTranslation()(CountDatasets); diff --git a/lib/ReactViews/Map/Panels/ToolsPanel/CountDatasets.tsx b/lib/ReactViews/Map/Panels/ToolsPanel/CountDatasets.tsx new file mode 100644 index 00000000000..7b605d47b2f --- /dev/null +++ b/lib/ReactViews/Map/Panels/ToolsPanel/CountDatasets.tsx @@ -0,0 +1,185 @@ +"use strict"; + +import { observer } from "mobx-react"; +import React, { useState } from "react"; +import { useTranslation, withTranslation } from "react-i18next"; +import defined from "terriajs-cesium/Source/Core/defined"; +import { + applyTranslationIfExists, + TRANSLATE_KEY_PREFIX +} from "../../../../Language/languageHelpers"; +import CatalogMemberMixin from "../../../../ModelMixins/CatalogMemberMixin"; +import GroupMixin from "../../../../ModelMixins/GroupMixin"; +import ReferenceMixin from "../../../../ModelMixins/ReferenceMixin"; +import Loader from "../../../Loader"; +import { useViewState } from "../../../StandardUserInterface/ViewStateContext"; +import Styles from "./tools-panel.scss"; + +// let countValue = 1; + +interface CounterStats { + name?: string; + groups: number; + members: number; + messages: string[]; + subTotals: CounterStats[]; +} + +type GroupAndMember = GroupMixin.Instance & CatalogMemberMixin.Instance; + +interface CountDatasetsProps { + updateResults: (resultsHtml: string) => void; +} + +const CountDatasets: React.FC = observer((props) => { + const [btnStringOrComponent, setBtnStringOrComponent] = useState< + string | JSX.Element + >(`${TRANSLATE_KEY_PREFIX}countDatasets.btnText`); + const { t, i18n } = useTranslation(); + const viewState = useViewState(); + + const countDatasets = () => { + const totals: CounterStats & { showResults: boolean } = { + name: undefined, + groups: 0, + members: 0, + messages: [], + subTotals: [], + showResults: false + }; + + function counter( + group: GroupAndMember, + stats: CounterStats, + path: string[] + ): Promise { + stats.name = group.name; + + const promises = group.memberModels.map(async (model) => { + // Not pure - updates stats object & path + let member = model; + if (ReferenceMixin.isMixedInto(member)) { + (await member.loadReference()).ignoreError(); + if (!member.target) { + return; + } + member = member.target; + } + if (!CatalogMemberMixin.isMixedInto(member)) return; + // if (member.countValue === countValue) { + // continue; + // } + // member.countValue = countValue; + if (GroupMixin.isMixedInto(member)) { + const childStats: CounterStats = { + name: undefined, + groups: 0, + members: 0, + messages: [], + subTotals: [] + }; + + path.push(member.name!); + + const loadPromise = member.loadMembers(); + let countPromise = member.isLoading + ? loadPromise + .then((result) => result.throwIfError()) + .then( + recurseAndUpdateTotals.bind( + undefined, + member, + stats, + childStats, + path.slice() + ) + ) + .catch( + reportLoadError.bind(undefined, member, stats, path.slice()) + ) + : recurseAndUpdateTotals(member, stats, childStats, path); + path.pop(); + return countPromise; + } else { + ++stats.members; + } + }); + return Promise.all(promises).then(() => {}); + } + + function recurseAndUpdateTotals( + member: GroupAndMember, + stats: CounterStats, + childStats: CounterStats, + path: string[] + ) { + const promise = counter(member, childStats, path).then(function () { + stats.groups += childStats.groups + 1; + stats.members += childStats.members; + stats.messages.push.apply(stats.messages, childStats.messages); + stats.subTotals.push(childStats); + }); + return promise; + } + + function reportLoadError( + member: GroupAndMember, + stats: CounterStats, + path: string[] + ) { + stats.messages.push(path.join(" -> ") + t("countDatasets.loadError")); + } + + setBtnStringOrComponent( + + ); + + // ++countValue; + + const root = viewState.terria.catalog.group; + + counter(root as GroupAndMember, totals, []).then(function () { + let info = t("countDatasets.totals", { + items: totals.members, + groups: totals.groups + }); + props.updateResults(info); + let i; + const subTotals = totals.subTotals; + for (i = 0; i < subTotals.length; ++i) { + info += t("countDatasets.subTotals", { + name: subTotals[i].name, + items: subTotals[i].members, + groups: subTotals[i].groups + }); + } + + info += "
           
          "; + + const messages = totals.messages; + for (i = 0; i < messages.length; ++i) { + info += "
          " + messages[i] + "
          "; + } + setBtnStringOrComponent(`${TRANSLATE_KEY_PREFIX}countDatasets.recount`); + + props.updateResults(info); + }); + }; + return ( +
          + {t("countDatasets.title")} + +
          + ); +}); + +export default CountDatasets; diff --git a/lib/ReactViews/Map/Panels/ToolsPanel/ToolsPanel.jsx b/lib/ReactViews/Map/Panels/ToolsPanel/ToolsPanel.jsx index 5c989c1fb4f..3a42ba2c886 100644 --- a/lib/ReactViews/Map/Panels/ToolsPanel/ToolsPanel.jsx +++ b/lib/ReactViews/Map/Panels/ToolsPanel/ToolsPanel.jsx @@ -1,81 +1,47 @@ "use strict"; -import React from "react"; -import createReactClass from "create-react-class"; -import PropTypes from "prop-types"; -import ObserverModelMixin from "../../../ObserveModelMixin"; +import { observer } from "mobx-react"; +import React, { useState } from "react"; +import { useTranslation } from "react-i18next"; import MenuPanel from "../../../StandardUserInterface/customizable/MenuPanel"; +import { useViewState } from "../../../StandardUserInterface/ViewStateContext"; +import DropdownStyles from "../panel.scss"; import CountDatasets from "./CountDatasets"; -import { withTranslation } from "react-i18next"; import Styles from "./tools-panel.scss"; -import DropdownStyles from "../panel.scss"; - -const ToolsPanel = createReactClass({ - displayName: "ToolsPanel", - mixins: [ObserverModelMixin], - - propTypes: { - terria: PropTypes.object, - viewState: PropTypes.object.isRequired, - t: PropTypes.func.isRequired - }, - - getInitialState() { - return { - isOpen: false, - resultsMessage: "" - }; - }, - - onOpenChanged(open) { - this.setState({ - isOpen: open - }); - }, - - updateResults(results) { - this.setState({ - resultsMessage: results - }); - }, - render() { - const dropdownTheme = { - btn: Styles.btnShare, - outer: Styles.ToolsPanel, - inner: Styles.dropdownInner, - icon: "settings" - }; - const { t } = this.props; - return ( - - -
          -
          - -
          +const ToolsPanel = observer(() => { + const [isOpen, setIsOpen] = useState(false); + const [resultsMessage, setResultsMessage] = useState(""); + const dropdownTheme = { + btn: Styles.btnShare, + outer: Styles.ToolsPanel, + inner: Styles.dropdownInner, + icon: "settings" + }; + const { t } = useTranslation(); + const viewState = useViewState(); + return ( + + +
          +
          +
          - -
          -
          - - ); - } + +
          +
          +
          + + ); }); -export default withTranslation()(ToolsPanel); +export default ToolsPanel; diff --git a/lib/ReactViews/Map/Panels/ToolsPanel/tools-panel.scss b/lib/ReactViews/Map/Panels/ToolsPanel/tools-panel.scss index d7b99fc25af..8d5bce94cf9 100644 --- a/lib/ReactViews/Map/Panels/ToolsPanel/tools-panel.scss +++ b/lib/ReactViews/Map/Panels/ToolsPanel/tools-panel.scss @@ -18,3 +18,7 @@ .results { padding: 7px; } + +.dropdown-inner { + width: 400px; +} diff --git a/lib/ReactViews/Map/Panels/ToolsPanel/tools-panel.scss.d.ts b/lib/ReactViews/Map/Panels/ToolsPanel/tools-panel.scss.d.ts index 2af6c2ee216..7614681c1cc 100644 --- a/lib/ReactViews/Map/Panels/ToolsPanel/tools-panel.scss.d.ts +++ b/lib/ReactViews/Map/Panels/ToolsPanel/tools-panel.scss.d.ts @@ -1,6 +1,8 @@ // This file is automatically generated. // Please do not change this file! interface CssExports { + 'dropdown-inner': string; + 'dropdownInner': string; 'results': string; 'submit': string; 'toolsPanel': string; diff --git a/lib/ReactViews/Mobile/MobileMenu.jsx b/lib/ReactViews/Mobile/MobileMenu.jsx index 17745804881..537df2704a7 100644 --- a/lib/ReactViews/Mobile/MobileMenu.jsx +++ b/lib/ReactViews/Mobile/MobileMenu.jsx @@ -9,7 +9,6 @@ import classNames from "classnames"; import MobileMenuItem from "./MobileMenuItem"; import SettingPanel from "../Map/Panels/SettingPanel"; import SharePanel from "../Map/Panels/SharePanel/SharePanel"; -// import HelpMenuPanelBasic from "../HelpScreens/HelpMenuPanelBasic"; import { withTranslation } from "react-i18next"; import Styles from "./mobile-menu.scss"; diff --git a/lib/ReactViews/ObserveModelMixin.js b/lib/ReactViews/ObserveModelMixin.js deleted file mode 100644 index fc3e723b778..00000000000 --- a/lib/ReactViews/ObserveModelMixin.js +++ /dev/null @@ -1,110 +0,0 @@ -"use strict"; - -import defined from "terriajs-cesium/Source/Core/defined"; -import knockout from "terriajs-cesium/Source/ThirdParty/knockout"; -import PureRenderMixin from "react-addons-pure-render-mixin"; - -const ObserveModelMixin = { - componentWillMount() { - this.__observeModelChangeSubscriptions = undefined; - - const originalRender = this.render; - this.render = function renderForObserveModelMixin() { - const that = this; - let isFirstRender = true; - - // Clean up the previous subscription, if any. - disposeSubscription(that); - - // Ignore dependencies so that the parent component's render function does not - // depend on the child component's render function. If it did, a change to a child - // would trigger re-rendering of all its ancestors, which is wasteful. - - return knockout.ignoreDependencies(function () { - const computed = knockout - .computed(function () { - // The first time our computed render function is called, pass through to the real - // render and track dependencies along the way. Any time after that is a result of - // a change in one of the properties that the render used. But if we re-evaluate - // the render function there, we're stepping outside the normal React lifecycle. - // Instead, unsubscribe from the computed observable and force an update of the - // React component (which will create a new computed observable). - if (isFirstRender) { - isFirstRender = false; - return originalRender.call(that); - } - }) - .extend({ notify: "always" }); - - that.__observeModelChangeSubscriptions = []; - - let updateForced = false; - - /** - * Disposes of the subscription to this component and forces an update, which will create a new - * computed observable. - */ - function disposeAndForceUpdate() { - disposeSubscription(that); - - if (!updateForced) { - updateForced = true; - that.forceUpdate(); - } - } - - // We also need to update on change of anything in props with a __knockoutSubscribable property. This - // property is added to arrays by knockout-es5 and is notified whenever the array is modified. - // Without this, changes in an observable array passed as props won't trigger re-render of the component, - // even if the array is used in rendering. This is because Knockout observable arrays don't note a - // dependency when accessing individual elements of the array. - for (const prop in that.props) { - if (Object.prototype.hasOwnProperty.call(that.props, prop)) { - if ( - defined(that.props[prop]) && - defined(that.props[prop].__knockoutSubscribable) - ) { - that.__observeModelChangeSubscriptions.push( - that.props[prop].__knockoutSubscribable.subscribe( - disposeAndForceUpdate - ) - ); - } - } - } - - that.__observeModelChangeSubscriptions.push( - computed.subscribe(disposeAndForceUpdate) - ); - - return computed(); - }); - }; - }, - - componentWillUnmount() { - disposeSubscription(this); - }, - - shouldComponentUpdate: PureRenderMixin.shouldComponentUpdate -}; - -/** - * Disposes of all subscriptions that a component currently has. - * - * @param component The component to find and dispose subscriptions on. - */ -function disposeSubscription(component) { - if (defined(component.__observeModelChangeSubscriptions)) { - for ( - let i = 0; - i < component.__observeModelChangeSubscriptions.length; - ++i - ) { - component.__observeModelChangeSubscriptions[i].dispose(); - } - component.__observeModelChangeSubscriptions = undefined; - } -} - -module.exports = ObserveModelMixin; diff --git a/lib/ReactViews/RelatedMaps/RelatedMaps.tsx b/lib/ReactViews/RelatedMaps/RelatedMaps.tsx new file mode 100644 index 00000000000..8464d3490e9 --- /dev/null +++ b/lib/ReactViews/RelatedMaps/RelatedMaps.tsx @@ -0,0 +1,90 @@ +import { observer } from "mobx-react"; +import React from "react"; +import { WithTranslation, withTranslation } from "react-i18next"; +import { DefaultTheme, withTheme } from "styled-components"; +import { RelatedMap } from "../../Models/RelatedMaps"; +import Box from "../../Styled/Box"; +import { ExternalLinkIcon } from "../Custom/ExternalLink"; +import parseCustomMarkdownToReact from "../Custom/parseCustomMarkdownToReact"; +import { + withViewState, + WithViewState +} from "../StandardUserInterface/ViewStateContext"; +import Styles from "./related-maps.scss"; + +const MenuPanel = + require("../StandardUserInterface/customizable/MenuPanel").default; + +type PropTypes = WithViewState & + WithTranslation & { + theme: DefaultTheme; + relatedMaps: RelatedMap[]; + }; + +@observer +class RelatedMaps extends React.Component { + /** + * @param {Props} props + */ + constructor(props: PropTypes) { + super(props); + } + + render() { + const dropdownTheme = { + inner: Styles.dropdownInner, + icon: "gallery" + }; + + const smallScreen = this.props.viewState.useSmallScreenInterface; + + return ( + +

          Related Maps

          + +

          Clicking on a map below will open it in a separate window or tab.

          + + {this.props.relatedMaps.map((map, i) => ( + + + + {map.title} + + + + + + {map.title} + + + + {parseCustomMarkdownToReact(map.description)} + + + ))} +
          + ); + } +} + +export default withTranslation()(withTheme(withViewState(RelatedMaps))); diff --git a/lib/ReactViews/RelatedMaps/related-maps.scss b/lib/ReactViews/RelatedMaps/related-maps.scss new file mode 100644 index 00000000000..fe0ffa5c47c --- /dev/null +++ b/lib/ReactViews/RelatedMaps/related-maps.scss @@ -0,0 +1,23 @@ +.dropdown-inner { + width: 600px; + padding: 10px; + font-size: 0.9rem; +} + +.section { + composes: clearfix from "~terriajs/lib/Sass/common/_base.scss"; + margin-bottom: 10px; + padding: 0; +} + +.image { + float: left; + margin-right: 10px; + margin-bottom: 10px; + width: 200px; + height: 150px; +} + +.link { + composes: link from "~terriajs/lib/Sass/common/_base.scss"; +} diff --git a/lib/ReactViews/RelatedMaps/related-maps.scss.d.ts b/lib/ReactViews/RelatedMaps/related-maps.scss.d.ts new file mode 100644 index 00000000000..c57b7d8c80d --- /dev/null +++ b/lib/ReactViews/RelatedMaps/related-maps.scss.d.ts @@ -0,0 +1,11 @@ +// This file is automatically generated. +// Please do not change this file! +interface CssExports { + 'dropdown-inner': string; + 'dropdownInner': string; + 'image': string; + 'link': string; + 'section': string; +} +declare var cssExports: CssExports; +export = cssExports; diff --git a/lib/ReactViews/RemovePanel/RemovePanel.jsx b/lib/ReactViews/RemovePanel/RemovePanel.jsx deleted file mode 100644 index 860c62b0a0c..00000000000 --- a/lib/ReactViews/RemovePanel/RemovePanel.jsx +++ /dev/null @@ -1,53 +0,0 @@ -import React from "react"; -import ObserveModelMixin from "../ObserveModelMixin"; -import createReactClass from "create-react-class"; -import PropTypes from "prop-types"; -import Styles from "./remove-panel.scss"; -import classNames from "classnames"; -import { withTranslation } from "react-i18next"; - -const RemoveStoryPanel = createReactClass({ - displayName: "NotificationWindow", - mixins: [ObserveModelMixin], - propTypes: { - removeText: PropTypes.string, - onConfirm: PropTypes.func.isRequired, - onCancel: PropTypes.func.isRequired, - confirmButtonTitle: PropTypes.string, - cancelButtonTitle: PropTypes.string, - t: PropTypes.func.isRequired - }, - - render() { - const { t } = this.props; - return ( -
          -
          -
          -

          - {this.props.removeText} -

          -
          - - -
          -
          -
          -
          - ); - } -}); - -module.exports = withTranslation()(RemoveStoryPanel); diff --git a/lib/ReactViews/RemovePanel/remove-panel.scss b/lib/ReactViews/RemovePanel/remove-panel.scss deleted file mode 100644 index d830b4cce67..00000000000 --- a/lib/ReactViews/RemovePanel/remove-panel.scss +++ /dev/null @@ -1,49 +0,0 @@ -@import "~terriajs-variables"; -@import "../../Sass/common/mixins"; -.outer-div { - // needed to maintain width of panel to 100% of element - position: relative; - width: 100%; -} - -.popup { - position: absolute; - border-radius: $radius-small; - background: $dark-with-overlay; - margin: $padding; - z-index: 100; - margin: $padding + $badge-height $padding $padding $padding; - box-shadow: $box-shadow; - width: calc(100% - $padding * 2); -} - -.title { - margin: $padding 0px; -} - -.inner { - position: relative; - color: $text-light; - padding: $padding-small $padding-small * 8; - p { - text-align: center; - } -} - -.footer { - display: flex; - margin: $padding 0px; -} - -.btn { - composes: btn from "../../Sass/common/_buttons.scss"; - composes: btn-primary from "../../Sass/common/_buttons.scss"; - &.delete { - margin-right: $padding-small; - } - &.cancel { - background: $grey-lighter; - margin-left: $padding-small; - color: $dark-with-overlay; - } -} diff --git a/lib/ReactViews/RemovePanel/remove-panel.scss.d.ts b/lib/ReactViews/RemovePanel/remove-panel.scss.d.ts deleted file mode 100644 index add01f55107..00000000000 --- a/lib/ReactViews/RemovePanel/remove-panel.scss.d.ts +++ /dev/null @@ -1,15 +0,0 @@ -// This file is automatically generated. -// Please do not change this file! -interface CssExports { - 'btn': string; - 'cancel': string; - 'delete': string; - 'footer': string; - 'inner': string; - 'outer-div': string; - 'outerDiv': string; - 'popup': string; - 'title': string; -} -declare var cssExports: CssExports; -export = cssExports; diff --git a/lib/ReactViews/StandardUserInterface/MapColumn.jsx b/lib/ReactViews/StandardUserInterface/MapColumn.jsx index adf19555711..966dbd7a30d 100644 --- a/lib/ReactViews/StandardUserInterface/MapColumn.jsx +++ b/lib/ReactViews/StandardUserInterface/MapColumn.jsx @@ -103,8 +103,6 @@ const MapColumn = observer( `} > div { diff --git a/lib/ReactViews/Tour/TourOverlay.jsx b/lib/ReactViews/Tour/TourOverlay.jsx index 6444ead413e..d0ab5347938 100644 --- a/lib/ReactViews/Tour/TourOverlay.jsx +++ b/lib/ReactViews/Tour/TourOverlay.jsx @@ -15,11 +15,6 @@ import defined from "terriajs-cesium/Source/Core/defined"; * to grey out the rest of the screen. A fifth panel, which is clear, covers the whole screen to prevent the highlighted * element from being selectable. */ -// displayName: "ObscureOverlay", -// mixins: [ObserverModelMixin], -// propTypes: { -// helpViewState: PropTypes.object; -// } const TourOverlay = ({ rectangle, onCancel }) => { const advance = () => { // this.props.helpViewState.advance = true; diff --git a/lib/Table/TableAutomaticStylesStratum.ts b/lib/Table/TableAutomaticStylesStratum.ts index 89b118e0995..c4dc0926520 100644 --- a/lib/Table/TableAutomaticStylesStratum.ts +++ b/lib/Table/TableAutomaticStylesStratum.ts @@ -1,6 +1,7 @@ import i18next from "i18next"; import { uniq } from "lodash-es"; import { computed } from "mobx"; +import filterOutUndefined from "../Core/filterOutUndefined"; import isDefined from "../Core/isDefined"; import TableMixin from "../ModelMixins/TableMixin"; import createStratumInstance from "../Models/Definition/createStratumInstance"; @@ -58,6 +59,40 @@ export default class TableAutomaticStylesStratum extends LoadableStratum( : undefined; } + /** + * Set default activeStyle to first style with a scalar color column (if none is found then find first style with enum, text and then region) + * Ignores styles with `hidden: true` + */ + @computed get activeStyle() { + if (this.catalogItem.styles && this.catalogItem.styles.length > 0) { + // Find default active style in this order: + // - First scalar style + // - First enum style + // - First text style + // - First region style + + const types = [ + TableColumnType.scalar, + TableColumnType.enum, + TableColumnType.text, + TableColumnType.region + ]; + + const firstStyleOfEachType = types.map( + (columnType) => + this.catalogItem.styles + .filter((style) => !style.hidden) + .find( + (s) => + this.catalogItem.findColumnByName(s.color?.colorColumn) + ?.type === columnType + )?.id + ); + + return filterOutUndefined(firstStyleOfEachType)[0]; + } + } + @computed get defaultStyle(): StratumFromTraits { // Use the default style to select the spatial key (lon/lat, region, none i.e. chart) diff --git a/lib/Table/TableStyle.ts b/lib/Table/TableStyle.ts index ee9bdb18bc9..13a96611b40 100644 --- a/lib/Table/TableStyle.ts +++ b/lib/Table/TableStyle.ts @@ -19,9 +19,11 @@ import createCombinedModel from "../Models/Definition/createCombinedModel"; import Model from "../Models/Definition/Model"; import TableChartStyleTraits from "../Traits/TraitsClasses/TableChartStyleTraits"; import TableColorStyleTraits from "../Traits/TraitsClasses/TableColorStyleTraits"; +import { LabelSymbolTraits } from "../Traits/TraitsClasses/TableLabelStyleTraits"; import { OutlineSymbolTraits } from "../Traits/TraitsClasses/TableOutlineStyleTraits"; import TablePointSizeStyleTraits from "../Traits/TraitsClasses/TablePointSizeStyleTraits"; import { PointSymbolTraits } from "../Traits/TraitsClasses/TablePointStyleTraits"; +import { TrailSymbolTraits } from "../Traits/TraitsClasses/TableTrailStyleTraits"; import TableStyleTraits from "../Traits/TraitsClasses/TableStyleTraits"; import TableTimeStyleTraits from "../Traits/TraitsClasses/TableTimeStyleTraits"; import TableColorMap from "./TableColorMap"; @@ -393,6 +395,22 @@ export default class TableStyle { ); } + @computed get trailStyleMap() { + return new TableStyleMap( + this.tableModel, + this.styleTraits, + "trail" + ); + } + + @computed get labelStyleMap() { + return new TableStyleMap( + this.tableModel, + this.styleTraits, + "label" + ); + } + @computed get pointSizeMap(): PointSizeMap { const pointSizeColumn = this.pointSizeColumn; diff --git a/lib/Table/TableStyleMap.ts b/lib/Table/TableStyleMap.ts index 3aff6183efe..d3c69969347 100644 --- a/lib/Table/TableStyleMap.ts +++ b/lib/Table/TableStyleMap.ts @@ -13,6 +13,7 @@ import TableStyleTraits from "../Traits/TraitsClasses/TableStyleTraits"; import TableColumnType from "./TableColumnType"; export interface TableStyleMapModel { + enabled?: boolean; mapType: StyleMapType | undefined; column: string | undefined; diff --git a/lib/Table/createLongitudeLatitudeFeaturePerId.ts b/lib/Table/createLongitudeLatitudeFeaturePerId.ts index 61a614f4a81..8636efa9fa6 100644 --- a/lib/Table/createLongitudeLatitudeFeaturePerId.ts +++ b/lib/Table/createLongitudeLatitudeFeaturePerId.ts @@ -3,12 +3,17 @@ import Cartesian3 from "terriajs-cesium/Source/Core/Cartesian3"; import Color from "terriajs-cesium/Source/Core/Color"; import Iso8601 from "terriajs-cesium/Source/Core/Iso8601"; import JulianDate from "terriajs-cesium/Source/Core/JulianDate"; -import CesiumMath from "terriajs-cesium/Source/Core/Math"; import Packable from "terriajs-cesium/Source/Core/Packable"; import TimeInterval from "terriajs-cesium/Source/Core/TimeInterval"; import TimeIntervalCollection from "terriajs-cesium/Source/Core/TimeIntervalCollection"; import BillboardGraphics from "terriajs-cesium/Source/DataSources/BillboardGraphics"; +import ColorMaterialProperty from "terriajs-cesium/Source/DataSources/ColorMaterialProperty"; +import ConstantPositionProperty from "terriajs-cesium/Source/DataSources/ConstantPositionProperty"; +import ConstantProperty from "terriajs-cesium/Source/DataSources/ConstantProperty"; +import LabelGraphics from "terriajs-cesium/Source/DataSources/LabelGraphics"; +import PathGraphics from "terriajs-cesium/Source/DataSources/PathGraphics"; import PointGraphics from "terriajs-cesium/Source/DataSources/PointGraphics"; +import PolylineGlowMaterialProperty from "terriajs-cesium/Source/DataSources/PolylineGlowMaterialProperty"; import SampledPositionProperty from "terriajs-cesium/Source/DataSources/SampledPositionProperty"; import SampledProperty from "terriajs-cesium/Source/DataSources/SampledProperty"; import TimeIntervalCollectionPositionProperty from "terriajs-cesium/Source/DataSources/TimeIntervalCollectionPositionProperty"; @@ -16,7 +21,15 @@ import TimeIntervalCollectionProperty from "terriajs-cesium/Source/DataSources/T import HeightReference from "terriajs-cesium/Source/Scene/HeightReference"; import TerriaFeature from "../Models/Feature/Feature"; import { getRowValues } from "./createLongitudeLatitudeFeaturePerRow"; -import { getFeatureStyle } from "./getFeatureStyle"; +import { + getFeatureStyle, + SupportedBillboardGraphics, + SupportedLabelGraphics, + SupportedPathGraphics, + SupportedPointGraphics, + SupportedPolylineGlowMaterial, + SupportedSolidColorMaterial +} from "./getFeatureStyle"; import TableColumn from "./TableColumn"; import TableColumnType from "./TableColumnType"; import TableStyle from "./TableStyle"; @@ -29,6 +42,108 @@ type RequiredTableStyle = TableStyle & { timeIntervals: (JulianDate | null)[]; }; +type TimeProperties = { + [key in keyof T]: PreSampledProperty | TimeIntervalCollectionProperty; +}; + +type ResolvedTimeProperties = { + [key in keyof T]?: + | SampledProperty + | TimeIntervalCollectionProperty + | ConstantProperty; +}; + +/** For a given TimeProperties object, convert all PreSampledProperty to SampledProperty */ +function convertPreSampledProperties( + timeProperties: TimeProperties | undefined +): ResolvedTimeProperties { + if (!timeProperties) return {}; + return Object.entries(timeProperties).reduce>( + (current, [key, value]) => { + if (value instanceof PreSampledProperty) { + const sampledProperty = value.getProperty(); + if (sampledProperty) { + current[key as keyof T] = sampledProperty; + } + } else if (value instanceof TimeIntervalCollectionProperty) { + current[key as keyof T] = value; + } + return current; + }, + {} + ); +} + +/** This class can be used in-place for Cesium's SampledProperty. + * + * It provides better performance as instead of calling `SampledProperty.addSample` for every sample, it will call `SampledProperty.addSamples` once with all samples. + * This occurs when `PreSampledProperty.toSampledProperty()` is called + **/ +class PreSampledProperty { + private times: JulianDate[] = []; + private values: Packable[] = []; + + private allValuesAreTheSame = true; + + constructor(private readonly type: Packable) {} + + getProperty() { + if (this.allValuesAreTheSame) { + return new ConstantProperty(this.values[0]); + } + const property = new SampledProperty(this.type); + property.addSamples(this.times, this.values); + return property; + } + + addSample(time: JulianDate, value: Packable) { + this.times.push(time); + if ( + this.allValuesAreTheSame && + this.values.length > 1 && + value.toString() !== this.values[this.values.length - 2].toString() + ) { + this.allValuesAreTheSame = false; + } + this.values.push(value); + } +} + +/** This class can be used in-place for Cesium's SampledPositionProperty. + * + * It behaves exactly the same as PreSampledProperty + **/ +class PreSampledPositionProperty { + private times: JulianDate[] = []; + private values: Cartesian3[] = []; + + private allValuesAreTheSame = true; + + constructor() {} + + getProperty() { + if (this.allValuesAreTheSame) { + return new ConstantPositionProperty(this.values[0]); + } + + const property = new SampledPositionProperty(); + property.addSamples(this.times, this.values); + return property; + } + + addSample(time: JulianDate, value: Cartesian3) { + this.times.push(time); + if ( + this.allValuesAreTheSame && + this.values.length > 1 && + !value.equals(this.values[this.values.length - 2]) + ) { + this.allValuesAreTheSame = false; + } + this.values.push(value); + } +} + /** * Create lat/lon features, one for each id group in the table */ @@ -43,7 +158,7 @@ export default function createLongitudeLatitudeFeaturePerId( function createProperty(type: Packable, interpolate: boolean) { return interpolate - ? new SampledProperty(type) + ? new PreSampledProperty(type) : new TimeIntervalCollectionProperty(); } @@ -52,27 +167,91 @@ function createFeature( rowIds: number[], style: RequiredTableStyle ): TerriaFeature { - const isSampled = !!style.timeTraits.isSampled; + const isSampled = !!style.isSampled; const tableHasScalarColumn = !!style.tableModel.tableColumns.find( (col) => col.type === TableColumnType.scalar ); const interpolate = isSampled && tableHasScalarColumn; const positionProperty = isSampled - ? new SampledPositionProperty() + ? new PreSampledPositionProperty() : new TimeIntervalCollectionPositionProperty(); - const colorProperty = createProperty(Color, interpolate); + // The following "TimeProperties" objects are used to transform feature styling properties into time-enabled properties (eg SampledProperty or TimeIntervalCollectionProperty) + // Required is used as we need to make sure that all styling properties have a time-enabled property defined + // See `getFeatureStyle` for "raw" feature styling properties + + const pointGraphicsTimeProperties: + | TimeProperties> + | undefined = style.pointStyleMap.traits.enabled + ? { + color: createProperty(Color, interpolate), + outlineColor: createProperty(Color, interpolate), + pixelSize: createProperty(Number, interpolate), + outlineWidth: createProperty(Number, interpolate) + } + : undefined; + + const billboardGraphicsTimeProperties: + | TimeProperties> + | undefined = style.pointStyleMap.traits.enabled + ? { + image: new TimeIntervalCollectionProperty(), + height: createProperty(Number, interpolate), + width: createProperty(Number, interpolate), + color: createProperty(Color, interpolate), + rotation: createProperty(Number, interpolate), + pixelOffset: createProperty(Cartesian2, interpolate) + } + : undefined; + + const pathGraphicsTimeProperties: + | TimeProperties> + | undefined = style.trailStyleMap.traits.enabled + ? { + leadTime: createProperty(Number, interpolate), + trailTime: createProperty(Number, interpolate), + width: createProperty(Number, interpolate), + resolution: createProperty(Number, interpolate) + } + : undefined; + + const pathGraphicsSolidColorTimeProperties: + | TimeProperties> + | undefined = + style.trailStyleMap.traits.enabled && + style.trailStyleMap.traits.materialType === "solidColor" + ? { + color: createProperty(Color, interpolate) + } + : undefined; - const outlineColorProperty = createProperty(Color, interpolate); - const outlineWidthProperty = createProperty(Number, interpolate); + const pathGraphicsPolylineGlowTimeProperties: + | TimeProperties> + | undefined = + style.trailStyleMap.traits.enabled && + style.trailStyleMap.traits.materialType === "polylineGlow" + ? { + color: createProperty(Color, interpolate), + glowPower: createProperty(Number, interpolate), + taperPower: createProperty(Number, interpolate) + } + : undefined; - const pointSizeProperty = createProperty(Number, interpolate); - const pointRotationProperty = createProperty(Number, interpolate); - const pointPixelOffsetProperty = createProperty(Cartesian2, interpolate); - const pointHeightProperty = createProperty(Number, interpolate); - const pointWidthProperty = createProperty(Number, interpolate); - const pointMarkerProperty = new TimeIntervalCollectionProperty(); + const labelGraphicsTimeProperties: + | TimeProperties> + | undefined = style.labelStyleMap.traits.enabled + ? { + font: new TimeIntervalCollectionProperty(), + text: new TimeIntervalCollectionProperty(), + style: new TimeIntervalCollectionProperty(), + scale: createProperty(Number, interpolate), + fillColor: createProperty(Color, interpolate), + outlineColor: createProperty(Color, interpolate), + outlineWidth: createProperty(Number, interpolate), + pixelOffset: createProperty(Cartesian2, interpolate) + } + : undefined; const properties = new TimeIntervalCollectionProperty(); const description = new TimeIntervalCollectionProperty(); @@ -85,7 +264,7 @@ function createFeature( const tableColumns = style.tableModel.tableColumns; /** use `PointGraphics` or `BillboardGraphics`. This wil be false if any pointTraits.marker !== "point", as then we use images as billboards */ - let usePointGraphics = true; + let usePointGraphicsForId = true; rowIds.forEach((rowId) => { const longitude = longitudes[rowId]; @@ -103,62 +282,92 @@ function createFeature( ); const { - pointStyle, - color, - pointSize, - outlineStyle, - outlineColor, - makiIcon, - isMakiIcon + pointGraphicsOptions, + usePointGraphics, + pathGraphicsOptions, + pathGraphicsPolylineGlowOptions, + pathGraphicsSolidColorOptions, + labelGraphicsOptions, + billboardGraphicsOptions } = getFeatureStyle(style, rowId); - // Only add color property for non maki icons - as we color maki icons directly (see `getMakiIcon()`) - addSampleOrInterval( - colorProperty, - !isMakiIcon ? color : Color.WHITE, - interval - ); - addSampleOrInterval( - pointSizeProperty, - pointSize ?? pointStyle.height ?? pointStyle.width, - interval - ); - addSampleOrInterval(outlineColorProperty, outlineColor, interval); - addSampleOrInterval(outlineWidthProperty, outlineStyle.width, interval); - addSampleOrInterval( - pointRotationProperty, - CesiumMath.toRadians(360 - (pointStyle.rotation ?? 0)), - interval - ); - addSampleOrInterval( - pointPixelOffsetProperty, - new Cartesian2( - pointStyle.pixelOffset?.[0] ?? 0, - pointStyle.pixelOffset?.[1] ?? 0 - ), - interval - ); - addSampleOrInterval( - pointHeightProperty, - pointSize ?? pointStyle.height, - interval - ); - addSampleOrInterval( - pointWidthProperty, - pointSize ?? pointStyle.width, - interval - ); - - if (isMakiIcon) { - usePointGraphics = false; + if (!usePointGraphics) { + usePointGraphicsForId = false; } - addSampleOrInterval( - pointMarkerProperty, - makiIcon ?? pointStyle.marker, - interval - ); + if (pointGraphicsTimeProperties && pointGraphicsOptions) + // Copy all style object values across to time-enabled properties + Object.entries(pointGraphicsOptions).forEach(([key, value]) => { + if (key in pointGraphicsTimeProperties) + addSampleOrInterval( + pointGraphicsTimeProperties[key as keyof SupportedPointGraphics], + value, + interval + ); + }); + + if (billboardGraphicsTimeProperties && billboardGraphicsOptions) + Object.entries(billboardGraphicsOptions).forEach(([key, value]) => { + if (key in billboardGraphicsTimeProperties) + addSampleOrInterval( + billboardGraphicsTimeProperties[ + key as keyof SupportedBillboardGraphics + ], + value, + interval + ); + }); + + if (labelGraphicsTimeProperties && labelGraphicsOptions) + Object.entries(labelGraphicsOptions).forEach(([key, value]) => { + if (key in labelGraphicsTimeProperties) + addSampleOrInterval( + labelGraphicsTimeProperties[key as keyof SupportedLabelGraphics], + value, + interval + ); + }); + + if (pathGraphicsTimeProperties && pathGraphicsOptions) + Object.entries(pathGraphicsOptions).forEach(([key, value]) => { + if (key in pathGraphicsTimeProperties) + addSampleOrInterval( + pathGraphicsTimeProperties[key as keyof SupportedPathGraphics], + value, + interval + ); + }); + if (pathGraphicsSolidColorTimeProperties && pathGraphicsSolidColorOptions) + Object.entries(pathGraphicsSolidColorOptions).forEach(([key, value]) => { + if (key in pathGraphicsSolidColorTimeProperties) + addSampleOrInterval( + pathGraphicsSolidColorTimeProperties[ + key as keyof SupportedSolidColorMaterial + ], + value, + interval + ); + }); + + if ( + pathGraphicsPolylineGlowTimeProperties && + pathGraphicsPolylineGlowOptions + ) + Object.entries(pathGraphicsPolylineGlowOptions).forEach( + ([key, value]) => { + if (key in pathGraphicsPolylineGlowTimeProperties) + addSampleOrInterval( + pathGraphicsPolylineGlowTimeProperties[ + key as keyof SupportedPolylineGlowMaterial + ], + value, + interval + ); + } + ); + + // Feature properties/description addSampleOrInterval( properties, { @@ -176,29 +385,53 @@ function createFeature( const show = calculateShow(availability); const feature = new TerriaFeature({ - position: positionProperty, - point: usePointGraphics + position: + // positionProperty is either SampledPositionProperty or PreSampledPositionProperty + // If it's PreSampledPositionProperty - we need to transform it to SampledPositionProperty by calling `getProperty()` + positionProperty instanceof PreSampledPositionProperty + ? positionProperty.getProperty() + : positionProperty, + point: usePointGraphicsForId ? new PointGraphics({ - color: colorProperty, - outlineColor: outlineColorProperty, - pixelSize: pointSizeProperty, - show: show, - outlineWidth: outlineWidthProperty, + ...convertPreSampledProperties(pointGraphicsTimeProperties), + show, heightReference: HeightReference.CLAMP_TO_GROUND }) : undefined, - billboard: !usePointGraphics + billboard: !usePointGraphicsForId ? new BillboardGraphics({ - image: pointMarkerProperty, - height: pointHeightProperty, - width: pointWidthProperty, - color: colorProperty, - rotation: pointRotationProperty, - pixelOffset: pointPixelOffsetProperty, + ...convertPreSampledProperties(billboardGraphicsTimeProperties), heightReference: HeightReference.CLAMP_TO_GROUND, show }) : undefined, + path: pathGraphicsTimeProperties + ? new PathGraphics({ + show, + ...convertPreSampledProperties(pathGraphicsTimeProperties), + + // Material has to be handled separately from pathGraphicsTimeProperties + material: pathGraphicsPolylineGlowTimeProperties + ? new PolylineGlowMaterialProperty( + convertPreSampledProperties( + pathGraphicsPolylineGlowTimeProperties + ) + ) + : pathGraphicsSolidColorTimeProperties + ? new ColorMaterialProperty( + convertPreSampledProperties( + pathGraphicsSolidColorTimeProperties + ).color + ) + : undefined + }) + : undefined, + label: labelGraphicsTimeProperties + ? new LabelGraphics({ + show, + ...convertPreSampledProperties(labelGraphicsTimeProperties) + }) + : undefined, availability }); @@ -215,22 +448,22 @@ function createFeature( function addSampleOrInterval( property: - | SampledProperty - | SampledPositionProperty + | PreSampledProperty + | PreSampledPositionProperty | TimeIntervalCollectionProperty | TimeIntervalCollectionPositionProperty, data: any, interval: TimeInterval ) { if ( - property instanceof SampledProperty || - property instanceof SampledPositionProperty + property instanceof PreSampledProperty || + property instanceof PreSampledPositionProperty ) { property.addSample(interval.start, data); } else { const thisInterval = interval.clone(); thisInterval.data = data; - property.intervals.addInterval(thisInterval); + property?.intervals.addInterval(thisInterval); } } diff --git a/lib/Table/createLongitudeLatitudeFeaturePerRow.ts b/lib/Table/createLongitudeLatitudeFeaturePerRow.ts index 5b2125e5f3d..b335fa3774e 100644 --- a/lib/Table/createLongitudeLatitudeFeaturePerRow.ts +++ b/lib/Table/createLongitudeLatitudeFeaturePerRow.ts @@ -1,9 +1,8 @@ -import Cartesian2 from "terriajs-cesium/Source/Core/Cartesian2"; import Cartesian3 from "terriajs-cesium/Source/Core/Cartesian3"; -import CesiumMath from "terriajs-cesium/Source/Core/Math"; import TimeIntervalCollection from "terriajs-cesium/Source/Core/TimeIntervalCollection"; import BillboardGraphics from "terriajs-cesium/Source/DataSources/BillboardGraphics"; import ConstantPositionProperty from "terriajs-cesium/Source/DataSources/ConstantPositionProperty"; +import LabelGraphics from "terriajs-cesium/Source/DataSources/LabelGraphics"; import PointGraphics from "terriajs-cesium/Source/DataSources/PointGraphics"; import PropertyBag from "terriajs-cesium/Source/DataSources/PropertyBag"; import HeightReference from "terriajs-cesium/Source/Scene/HeightReference"; @@ -36,12 +35,10 @@ export default function createLongitudeLatitudeFeaturePerRow( } const { - pointStyle, - color, - pointSize, - outlineStyle, - outlineColor, - makiIcon + pointGraphicsOptions, + billboardGraphicsOptions, + labelGraphicsOptions, + usePointGraphics } = getFeatureStyle(style, rowId); const feature = new TerriaFeature({ @@ -49,32 +46,26 @@ export default function createLongitudeLatitudeFeaturePerRow( Cartesian3.fromDegrees(longitude, latitude, 0.0) ), point: - pointStyle.marker === "point" + pointGraphicsOptions && usePointGraphics ? new PointGraphics({ - color: color, - pixelSize: pointSize ?? pointStyle.height ?? pointStyle.width, - outlineWidth: outlineStyle.width, - outlineColor: outlineColor, + ...pointGraphicsOptions, heightReference: HeightReference.CLAMP_TO_GROUND }) : undefined, billboard: - pointStyle.marker !== "point" + billboardGraphicsOptions && !usePointGraphics ? new BillboardGraphics({ - image: makiIcon ?? pointStyle.marker, - color: !makiIcon ? color : undefined, - width: pointStyle.width, - height: pointStyle.height, - rotation: CesiumMath.toRadians( - 360 - (pointStyle.rotation ?? 0) - ), - pixelOffset: new Cartesian2( - pointStyle.pixelOffset?.[0], - pointStyle.pixelOffset?.[1] - ), + ...billboardGraphicsOptions, heightReference: HeightReference.CLAMP_TO_GROUND }) - : undefined + : undefined, + label: labelGraphicsOptions + ? new LabelGraphics({ + ...labelGraphicsOptions, + heightReference: HeightReference.CLAMP_TO_GROUND + }) + : undefined + // Note: we don't add path/PathGraphicsOptions here as it is only relevant to time-series (see `createLongitudeLatitudeFeaturePerId.ts`) }); const timeInterval = intervals[rowId]; if (timeInterval) diff --git a/lib/Table/createRegionMappedImageryProvider.ts b/lib/Table/createRegionMappedImageryProvider.ts index 1d1c7e6331d..67cee9da104 100644 --- a/lib/Table/createRegionMappedImageryProvider.ts +++ b/lib/Table/createRegionMappedImageryProvider.ts @@ -7,6 +7,7 @@ import TimeInterval from "terriajs-cesium/Source/Core/TimeInterval"; import ImageryLayerFeatureInfo from "terriajs-cesium/Source/Scene/ImageryLayerFeatureInfo"; import ImageryProvider from "terriajs-cesium/Source/Scene/ImageryProvider"; import isDefined from "../Core/isDefined"; +import { isJsonNumber } from "../Core/Json"; import MapboxVectorTileImageryProvider from "../Map/ImageryProvider/MapboxVectorTileImageryProvider"; import { TerriaFeatureData } from "../Models/Feature/FeatureData"; import TableStyle from "./TableStyle"; @@ -200,10 +201,11 @@ const getImageryLayerFeatureInfo = action( featureData.id = feature.properties[regionType.uniqueIdProp]; featureInfo.properties = featureData; - featureInfo.data = { - rowIds: regionRows, + const terriaFeatureData: TerriaFeatureData = { + rowIds: isJsonNumber(regionRows) ? [regionRows] : [...regionRows], type: "terriaFeatureData" - } as TerriaFeatureData; + }; + featureInfo.data = terriaFeatureData; featureInfo.configureDescriptionFromProperties(featureData); featureInfo.configureNameFromProperties(featureData); diff --git a/lib/Table/getFeatureStyle.ts b/lib/Table/getFeatureStyle.ts index a4a72132d8b..08c0b74c6a7 100644 --- a/lib/Table/getFeatureStyle.ts +++ b/lib/Table/getFeatureStyle.ts @@ -1,9 +1,85 @@ +import Cartesian2 from "terriajs-cesium/Source/Core/Cartesian2"; import Color from "terriajs-cesium/Source/Core/Color"; +import CesiumMath from "terriajs-cesium/Source/Core/Math"; +import BillboardGraphics from "terriajs-cesium/Source/DataSources/BillboardGraphics"; +import LabelGraphics from "terriajs-cesium/Source/DataSources/LabelGraphics"; +import PathGraphics from "terriajs-cesium/Source/DataSources/PathGraphics"; +import PointGraphics from "terriajs-cesium/Source/DataSources/PointGraphics"; +import Property from "terriajs-cesium/Source/DataSources/Property"; +import LabelStyle from "terriajs-cesium/Source/Scene/LabelStyle"; import { getMakiIcon, isMakiIcon } from "../Map/Icons/Maki/MakiIcons"; import TableStyle from "./TableStyle"; import { isConstantStyleMap } from "./TableStyleMap"; +/** Type to exclude CesiumProperty types in a given Object. + * For example: + * ```ts + * ExcludeCesiumProperty<{someKey: string | Property}> + * => {someKey: string} + * ``` + * + * This is useful when creating style options for cesium primitives (eg `PointGraphics`, `LabelGraphics`, ...), as it means we can + * - directly pass these options into cesium primitive constructors (eg `new PointGraphics(options)`) - which we do in `createLongitudeLatitudeFeaturePerRow` + * - OR we can turn style options into `SampledProperty` or `TimeIntervalCollectionProperty` - which is required for `createLongitudeLatitudeFeaturePerId` + */ +type ExcludeCesiumProperty = { + [key in keyof T]: Exclude; +}; + +// The following "Supported*" types contain all supported properties for different cesium primitives. +// The are used to transform TableStyleTraits into applicable constructor options for cesium primitives: +// - For example - TableLabelStyleTraits are transformed into LabelGraphics.ConstructorOptions - which follows the SupportedLabelGraphics type +// The `ExcludeCesiumProperty` is used here because all "*.ConstructorOptions" properties allow Cesium.Property values - which we don't want - we want the "raw" values (eg `string`, `Color`, ...). + +export type SupportedPointGraphics = Pick< + ExcludeCesiumProperty, + "color" | "outlineColor" | "pixelSize" | "outlineWidth" +>; + +export type SupportedBillboardGraphics = Pick< + ExcludeCesiumProperty, + "image" | "color" | "width" | "height" | "rotation" | "pixelOffset" +>; + +export type SupportedPathGraphics = Pick< + ExcludeCesiumProperty, + "leadTime" | "trailTime" | "width" | "resolution" +>; + +export interface SupportedSolidColorMaterial { + color: Color; +} +export interface SupportedPolylineGlowMaterial { + color: Color; + glowPower?: number; + taperPower?: number; +} + +export type SupportedLabelGraphics = Pick< + ExcludeCesiumProperty, + | "font" + | "text" + | "style" + | "scale" + | "fillColor" + | "outlineColor" + | "outlineWidth" + | "pixelOffset" +>; + +/** For given TableStyle and rowId, return feature styling in a "cesium-friendly" format. + * It returns style options for the following + * - PointGraphics (for point marker) + * - BillboardGraphics (for custom marker) + * - PathGraphics (referred to as "trail" in Traits system) + * - LabelGraphics + * - `usePointGraphics` flag - whether to use PointGraphics or BillboardGraphics for marker symbology + */ export function getFeatureStyle(style: TableStyle, rowId: number) { + // Convert TablePointStyleTraits, TableColorStyleTraits, TableOutlineStyleTraits and TablePointSizeStyleTraits into + // - PointGraphics options + // - BillboardGraphics options + // - makiIcon SVG string (used in BillboardGraphics options) const color = style.colorMap.mapValueToColor(style.colorColumn?.valuesForType[rowId]) ?? null; @@ -15,34 +91,132 @@ export function getFeatureStyle(style: TableStyle, rowId: number) { ) : undefined; - const pointStyle = isConstantStyleMap(style.pointStyleMap.styleMap) - ? style.pointStyleMap.styleMap.style - : style.pointStyleMap.styleMap.mapValueToStyle(rowId); + const pointStyle = style.pointStyleMap.traits.enabled + ? isConstantStyleMap(style.pointStyleMap.styleMap) + ? style.pointStyleMap.styleMap.style + : style.pointStyleMap.styleMap.mapValueToStyle(rowId) + : undefined; + + const outlineStyle = style.outlineStyleMap.traits.enabled + ? isConstantStyleMap(style.outlineStyleMap.styleMap) + ? style.outlineStyleMap.styleMap.style + : style.outlineStyleMap.styleMap.mapValueToStyle(rowId) + : undefined; + + // If no outline color is defined in traits, use current basemap contrast color + const outlineColor = outlineStyle + ? Color.fromCssColorString( + outlineStyle.color ?? style.tableModel.terria.baseMapContrastColor + ) + : undefined; - const outlineStyle = isConstantStyleMap(style.outlineStyleMap.styleMap) - ? style.outlineStyleMap.styleMap.style - : style.outlineStyleMap.styleMap.mapValueToStyle(rowId); + const pointGraphicsOptions: + | ExcludeCesiumProperty + | undefined = pointStyle + ? { + color: color, + pixelSize: pointSize ?? pointStyle?.height ?? pointStyle?.width + } + : undefined; - const outlineColor = Color.fromCssColorString( - outlineStyle.color ?? style.tableModel.terria.baseMapContrastColor - ); + if (pointGraphicsOptions && outlineStyle && outlineColor) { + pointGraphicsOptions.outlineWidth = outlineStyle.width; + pointGraphicsOptions.outlineColor = outlineColor; + } - const makiIcon = getMakiIcon( - pointStyle.marker ?? "circle", - color.toCssColorString(), - outlineStyle.width ?? 1, - outlineColor.toCssColorString(), - pointSize ?? pointStyle.height ?? 24, - pointSize ?? pointStyle.width ?? 24 - ); + // This returns SVG string + const makiIcon = pointStyle + ? getMakiIcon( + pointStyle.marker ?? "circle", + color.toCssColorString(), + outlineStyle?.width, + outlineColor?.toCssColorString(), + pointSize ?? pointStyle.height ?? 24, + pointSize ?? pointStyle.width ?? 24 + ) + : undefined; + + const billboardGraphicsOptions: SupportedBillboardGraphics | undefined = + pointStyle + ? { + image: makiIcon ?? pointStyle.marker, + // Only add color property for non maki icons - as we color maki icons directly (see `makiIcon = getMakiIcon(...)`) + color: !makiIcon ? color : Color.WHITE, + width: pointSize ?? pointStyle.width, + height: pointSize ?? pointStyle.height, + // Convert clockwise degrees to counter-clockwise radians + rotation: CesiumMath.toRadians(360 - (pointStyle.rotation ?? 0)), + pixelOffset: new Cartesian2( + pointStyle.pixelOffset?.[0], + pointStyle.pixelOffset?.[1] + ) + } + : undefined; + + // Convert TableTrailStyleTraits into PathGraphics options + // We also have two supported materials + // - PolylineGlowMaterialTraits -> PolylineGlowMaterial options + // - SolidColorMaterialTraits -> ColorMaterialProperty options + const trailStyle = style.trailStyleMap.traits.enabled + ? isConstantStyleMap(style.trailStyleMap.styleMap) + ? style.trailStyleMap.styleMap.style + : style.trailStyleMap.styleMap.mapValueToStyle(rowId) + : undefined; + + const pathGraphicsOptions: SupportedPathGraphics | undefined = trailStyle; + + const pathGraphicsSolidColorOptions: SupportedSolidColorMaterial | undefined = + trailStyle?.solidColor + ? { + color: Color.fromCssColorString(trailStyle.solidColor.color) + } + : undefined; + + const pathGraphicsPolylineGlowOptions: + | SupportedPolylineGlowMaterial + | undefined = trailStyle?.polylineGlow + ? { + ...trailStyle.polylineGlow, + color: Color.fromCssColorString(trailStyle.polylineGlow.color) + } + : undefined; + + // Convert TableLabelStyleTraits to LabelGraphics options + const labelStyle = style.labelStyleMap.traits.enabled + ? isConstantStyleMap(style.labelStyleMap.styleMap) + ? style.labelStyleMap.styleMap.style + : style.labelStyleMap.styleMap.mapValueToStyle(rowId) + : undefined; + + const labelGraphicsOptions: SupportedLabelGraphics | undefined = labelStyle + ? { + ...labelStyle, + text: style.tableModel.tableColumns.find( + (col) => col.name === labelStyle.labelColumn + )?.values[rowId], + style: + labelStyle.style === "OUTLINE" + ? LabelStyle.OUTLINE + : labelStyle.style === "FILL_AND_OUTLINE" + ? LabelStyle.FILL_AND_OUTLINE + : LabelStyle.FILL, + fillColor: Color.fromCssColorString(labelStyle.fillColor), + outlineColor: Color.fromCssColorString(labelStyle.outlineColor), + pixelOffset: new Cartesian2( + labelStyle.pixelOffset[0], + labelStyle.pixelOffset[1] + ) + } + : undefined; return { - color, - pointSize, - pointStyle, - outlineStyle, - outlineColor, - makiIcon, - isMakiIcon: isMakiIcon(pointStyle.marker) + labelGraphicsOptions, + pointGraphicsOptions, + pathGraphicsOptions, + pathGraphicsSolidColorOptions, + pathGraphicsPolylineGlowOptions, + billboardGraphicsOptions, + /** Use PointGraphics instead of BillboardGraphics, if not using maki icon. */ + usePointGraphics: !isMakiIcon(pointStyle?.marker) }; } diff --git a/lib/Traits/TraitsClasses/CartoMapCatalogItemTraits.ts b/lib/Traits/TraitsClasses/CartoMapV1CatalogItemTraits.ts similarity index 72% rename from lib/Traits/TraitsClasses/CartoMapCatalogItemTraits.ts rename to lib/Traits/TraitsClasses/CartoMapV1CatalogItemTraits.ts index 66ed9972328..e6deaed6bae 100644 --- a/lib/Traits/TraitsClasses/CartoMapCatalogItemTraits.ts +++ b/lib/Traits/TraitsClasses/CartoMapV1CatalogItemTraits.ts @@ -2,14 +2,18 @@ import { JsonObject } from "../../Core/Json"; import anyTrait from "../Decorators/anyTrait"; import primitiveTrait from "../Decorators/primitiveTrait"; import mixTraits from "../mixTraits"; +import { traitClass } from "../Trait"; import CatalogMemberTraits from "./CatalogMemberTraits"; +import ImageryProviderTraits from "./ImageryProviderTraits"; import LayerOrderingTraits from "./LayerOrderingTraits"; import LegendOwnerTraits from "./LegendOwnerTraits"; import MappableTraits from "./MappableTraits"; -import ImageryProviderTraits from "./ImageryProviderTraits"; import UrlTraits from "./UrlTraits"; -export default class CartoMapCatalogItemTraits extends mixTraits( +@traitClass({ + description: `The Carto Map V1 API is soon to be deprecated in favor or Carto Map V3 API (See \`CartoMapV3CatalogItem\`). The V1 API generates a XYZ-based URL to fetch Web Mercator projected tiles.` +}) +export default class CartoMapV1CatalogItemTraits extends mixTraits( ImageryProviderTraits, LayerOrderingTraits, UrlTraits, @@ -23,6 +27,7 @@ export default class CartoMapCatalogItemTraits extends mixTraits( }) config?: JsonObject | string; + /** TODO: Make this camel case please */ @primitiveTrait({ type: "string", name: "Authorization token", diff --git a/lib/Traits/TraitsClasses/CartoMapV3CatalogItemTraits.ts b/lib/Traits/TraitsClasses/CartoMapV3CatalogItemTraits.ts new file mode 100644 index 00000000000..cd05ff590de --- /dev/null +++ b/lib/Traits/TraitsClasses/CartoMapV3CatalogItemTraits.ts @@ -0,0 +1,75 @@ +import primitiveArrayTrait from "../Decorators/primitiveArrayTrait"; +import primitiveTrait from "../Decorators/primitiveTrait"; +import mixTraits from "../mixTraits"; +import { traitClass } from "../Trait"; +import { GeoJsonTraits } from "./GeoJsonTraits"; + +@traitClass({ + description: `Calls Carto V3 API to return GeoJSON. It supports the Query API and the Table API. + +To use the Query API - see traits: +- \`cartoQuery\` +- \`cartoGeoColumn\` + +To use the Table API - see traits: +- \`cartoTableName\` +- \`cartoColumns\` +- \`cartoGeoColumn\`` +}) +export default class CartoMapV3TableCatalogItemTraits extends mixTraits( + GeoJsonTraits +) { + @primitiveTrait({ + type: "string", + name: "Access token", + description: "The access token to pass to the Carto Maps API" + }) + accessToken?: string; + + @primitiveTrait({ + type: "string", + name: "Authorization token", + description: "The authorization token to pass to the Carto Maps API" + }) + connectionName = "carto_dw"; + + @primitiveTrait({ + type: "string", + name: "Base URL", + description: + 'Base URL for Carto API (eg "https://gcp-australia-southeast1.api.carto.com/")' + }) + baseUrl = "https://gcp-australia-southeast1.api.carto.com/"; + + @primitiveTrait({ + type: "string", + name: "Geo column name", + description: + "Column name of the geom at the table (used for Table and Query API)" + }) + cartoGeoColumn = "geom"; + + @primitiveTrait({ + type: "string", + name: "Carto SQL Query", + description: + "Carto SQL Query (used for Query API). If this is defined, then the Query API will be used instead of Table API." + }) + cartoQuery?: string; + + @primitiveTrait({ + type: "string", + name: "Table name", + description: + 'Table fully qualified name - eg "carto-demo-data.demo_tables.airports". (used for Table API). Note if `cartoQuery` defined, then the Query API will be used instead of Table API.' + }) + cartoTableName?: string; + + @primitiveArrayTrait({ + type: "string", + name: "Column", + description: + "Columns to retrieve from the layer, by default all are returned. (used for Table API)" + }) + cartoColumns?: string[]; +} diff --git a/lib/Traits/TraitsClasses/GroupTraits.ts b/lib/Traits/TraitsClasses/GroupTraits.ts index 25b4f2e9a31..732cd341e64 100644 --- a/lib/Traits/TraitsClasses/GroupTraits.ts +++ b/lib/Traits/TraitsClasses/GroupTraits.ts @@ -22,6 +22,13 @@ export default class GroupTraits extends mixTraits(ItemPropertiesTraits) { }) isOpen: boolean = false; + @primitiveTrait({ + name: "Merge by name", + description: "Merge member groups by name.", + type: "boolean" + }) + mergeGroupsByName: boolean = false; + @primitiveTrait({ name: "Sort members by", description: diff --git a/lib/Traits/TraitsClasses/HeadingPitchRollTraits.ts b/lib/Traits/TraitsClasses/HeadingPitchRollTraits.ts index 4648ff10402..1c2690e911c 100644 --- a/lib/Traits/TraitsClasses/HeadingPitchRollTraits.ts +++ b/lib/Traits/TraitsClasses/HeadingPitchRollTraits.ts @@ -69,6 +69,6 @@ export default class HeadingPitchRollTraits extends ModelTraits { heading: CesiumMath.toDegrees(hpr.heading), pitch: CesiumMath.toDegrees(hpr.pitch), roll: CesiumMath.toDegrees(hpr.roll) - }); + }).logError("Error ocurred while setting heading, pitch and roll"); } } diff --git a/lib/Traits/TraitsClasses/TableLabelStyleTraits.ts b/lib/Traits/TraitsClasses/TableLabelStyleTraits.ts new file mode 100644 index 00000000000..b03220dab29 --- /dev/null +++ b/lib/Traits/TraitsClasses/TableLabelStyleTraits.ts @@ -0,0 +1,146 @@ +import { TableStyleMapModel } from "../../Table/TableStyleMap"; +import objectArrayTrait from "../Decorators/objectArrayTrait"; +import objectTrait from "../Decorators/objectTrait"; +import primitiveArrayTrait from "../Decorators/primitiveArrayTrait"; +import primitiveTrait from "../Decorators/primitiveTrait"; +import mixTraits from "../mixTraits"; +import { + BinStyleTraits, + EnumStyleTraits, + TableStyleMapSymbolTraits, + TableStyleMapTraits +} from "./TableStyleMapTraits"; + +/** Supports subset of CZML Label https://github.com/AnalyticalGraphicsInc/czml-writer/wiki/Label + * + * Unimplemented properties + * - show + * - eyeOffset + * - horizontalOrigin + * - verticalOrigin + * - heightReference + * - showBackground + * - backgroundColor + * - backgroundPadding + * - translucencyByDistance + * - pixelOffsetScaleByDistance + * - scaleByDistance + * - distanceDisplayCondition + * - disableDepthTestDistance + + */ +export class LabelSymbolTraits extends mixTraits(TableStyleMapSymbolTraits) { + @primitiveTrait({ + name: "Label column", + description: "ID of column to use as label", + type: "string" + }) + labelColumn?: string; + + @primitiveTrait({ + name: "Font", + description: "Font CSS string. Default is `30px sans-serif`.", + type: "string" + }) + font = "30px sans-serif"; + + @primitiveTrait({ + name: "Style", + description: + 'Label style. Possible values are `"FILL"`, `"OUTLINE"` and `"FILL_AND_OUTLINE"`. Default is `"FILL"`.', + type: "string" + }) + style = "FILL"; + + @primitiveTrait({ + name: "Scale", + description: + "The scale of the label. The scale is multiplied with the pixel size of the label's text.", + type: "number" + }) + scale = 1; + + @primitiveTrait({ + name: "Fill color", + description: "The fill color of the label.", + type: "string" + }) + fillColor = "#ffffff"; + + @primitiveTrait({ + name: "Outline color", + description: "The outline color of the label.", + type: "string" + }) + outlineColor = "#000000"; + + @primitiveTrait({ + name: "Outline width", + description: "The outline width of the label.", + type: "number" + }) + outlineWidth: number = 1; + + @primitiveArrayTrait({ + name: "Pixel offset", + description: "The number of pixels up and to the right to place the label.", + type: "number" + }) + pixelOffset = [0, 0]; +} + +export class EnumLabelSymbolTraits extends mixTraits( + LabelSymbolTraits, + EnumStyleTraits +) { + static isRemoval = EnumStyleTraits.isRemoval; +} + +export class BinLabelSymbolTraits extends mixTraits( + LabelSymbolTraits, + BinStyleTraits +) { + static isRemoval = BinStyleTraits.isRemoval; +} + +export default class TableLabelStyleTraits + extends mixTraits(TableStyleMapTraits) + implements TableStyleMapModel +{ + // Override TableStyleMapTraits.enabled default + @primitiveTrait({ + name: "Enabled", + description: "True to enable. False by default", + type: "boolean" + }) + enabled = false; + + @objectArrayTrait({ + name: "Enum Colors", + description: + "The colors to use for enumerated values. This property is ignored " + + "if the `Color Column` type is not `enum`.", + type: EnumLabelSymbolTraits, + idProperty: "value" + }) + enum: EnumLabelSymbolTraits[] = []; + + @objectArrayTrait({ + name: "Enum Colors", + description: + "The colors to use for enumerated values. This property is ignored " + + "if the `Color Column` type is not `enum`.", + type: BinLabelSymbolTraits, + idProperty: "index" + }) + bin: BinLabelSymbolTraits[] = []; + + @objectTrait({ + name: "Enum Colors", + description: + "The colors to use for enumerated values. This property is ignored " + + "if the `Color Column` type is not `enum`.", + type: LabelSymbolTraits + }) + null = new LabelSymbolTraits(); +} diff --git a/lib/Traits/TraitsClasses/TableStyleMapTraits.ts b/lib/Traits/TraitsClasses/TableStyleMapTraits.ts index 2017f5f9fe1..aead962e2f9 100644 --- a/lib/Traits/TraitsClasses/TableStyleMapTraits.ts +++ b/lib/Traits/TraitsClasses/TableStyleMapTraits.ts @@ -31,6 +31,13 @@ export class EnumStyleTraits extends ModelTraits { } export class TableStyleMapTraits extends ModelTraits { + @primitiveTrait({ + name: "Enabled", + description: "True to enable.", + type: "boolean" + }) + enabled = true; + @primitiveTrait({ name: "Style map type", description: diff --git a/lib/Traits/TraitsClasses/TableStyleTraits.ts b/lib/Traits/TraitsClasses/TableStyleTraits.ts index 26cb25005c0..c304ca2181d 100644 --- a/lib/Traits/TraitsClasses/TableStyleTraits.ts +++ b/lib/Traits/TraitsClasses/TableStyleTraits.ts @@ -4,9 +4,11 @@ import primitiveTrait from "../Decorators/primitiveTrait"; import ModelTraits from "../ModelTraits"; import TableChartStyleTraits from "./TableChartStyleTraits"; import TableColorStyleTraits from "./TableColorStyleTraits"; +import TableLabelStyleTraits from "./TableLabelStyleTraits"; import TableOutlineStyleTraits from "./TableOutlineStyleTraits"; import TablePointSizeStyleTraits from "./TablePointSizeStyleTraits"; import TablePointStyleTraits from "./TablePointStyleTraits"; +import TableTrailStyleTraits from "./TableTrailStyleTraits"; import TableTimeStyleTraits from "./TableTimeStyleTraits"; export default class TableStyleTraits extends ModelTraits { @@ -73,6 +75,21 @@ export default class TableStyleTraits extends ModelTraits { }) outline: TableOutlineStyleTraits = new TableOutlineStyleTraits(); + @objectTrait({ + name: "Point trail", + description: + "Options for controlling the trail or path behind a time-series point.", + type: TableTrailStyleTraits + }) + trail: TableTrailStyleTraits = new TableTrailStyleTraits(); + + @objectTrait({ + name: "Label", + description: "Options for controlling the labels.", + type: TableLabelStyleTraits + }) + label: TableLabelStyleTraits = new TableLabelStyleTraits(); + @objectTrait({ name: "Point Size", description: diff --git a/lib/Traits/TraitsClasses/TableTrailStyleTraits.ts b/lib/Traits/TraitsClasses/TableTrailStyleTraits.ts new file mode 100644 index 00000000000..aafb73b42b3 --- /dev/null +++ b/lib/Traits/TraitsClasses/TableTrailStyleTraits.ts @@ -0,0 +1,182 @@ +import { TableStyleMapModel } from "../../Table/TableStyleMap"; +import objectArrayTrait from "../Decorators/objectArrayTrait"; +import objectTrait from "../Decorators/objectTrait"; +import primitiveTrait from "../Decorators/primitiveTrait"; +import mixTraits from "../mixTraits"; +import ModelTraits from "../ModelTraits"; +import { + BinStyleTraits, + EnumStyleTraits, + TableStyleMapSymbolTraits, + TableStyleMapTraits +} from "./TableStyleMapTraits"; + +/** Supports CZML SolidColorMaterial https://github.com/AnalyticalGraphicsInc/czml-writer/wiki/SolidColorMaterial */ +export class SolidColorMaterialTraits extends ModelTraits { + @primitiveTrait({ + name: "Color", + description: "The color.", + type: "string" + }) + color = "#ffffff"; +} + +/** Supports CZML PolylineGlowMaterial https://github.com/AnalyticalGraphicsInc/czml-writer/wiki/PolylineGlowMaterial */ +export class PolylineGlowMaterialTraits extends ModelTraits { + @primitiveTrait({ + name: "Color", + description: "The color.", + type: "string" + }) + color = "#ffffff"; + + @primitiveTrait({ + name: "Glow power", + description: + "The strength of the glow, as a percentage of the total line width.", + type: "number" + }) + glowPower = 0.25; + + @primitiveTrait({ + name: "Glow taper power", + description: + "The strength of the glow tapering effect, as a percentage of the total line length. If 1.0 or higher, no taper effect is used.", + type: "number" + }) + taperPower = 1; +} + +/** Supports subset of CZML PolylineMaterial https://github.com/AnalyticalGraphicsInc/czml-writer/wiki/PolylineMaterial + * + * Unimplemented materials + * - polylineOutline + * - polylineArrow + * - polylineDash + * - image + * - grid + * - stripe + * - checkerboard + */ +export class PolylineMaterialTraits extends ModelTraits { + @objectTrait({ + type: PolylineGlowMaterialTraits, + name: "Polyline glow material", + description: + 'Polyline glow material. Must also set `materialType = "polylineGlow"`' + }) + polylineGlow?: PolylineGlowMaterialTraits; + + @objectTrait({ + type: SolidColorMaterialTraits, + name: "Solid color material", + description: "Solid color material." + }) + solidColor?: SolidColorMaterialTraits; +} + +/** Supports subset of CZML Path https://github.com/AnalyticalGraphicsInc/czml-writer/wiki/Path + * + * Unimplemented properties + * - show + * - distanceDisplayCondition + * + * Note: materials is handled slightly differently + */ +export class TrailSymbolTraits extends mixTraits( + PolylineMaterialTraits, + TableStyleMapSymbolTraits +) { + @primitiveTrait({ + name: "Lead time", + description: "The number of seconds in front of the object to show.", + type: "number" + }) + leadTime = 0; + + @primitiveTrait({ + name: "Trail time", + description: "The number of seconds behind the object to show.", + type: "number" + }) + trailTime = 10; + + @primitiveTrait({ + name: "Width", + description: "The width in pixels.", + type: "number" + }) + width = 1; + + @primitiveTrait({ + name: "Resolution", + description: + "The maximum number of seconds to step when sampling the position.", + type: "number" + }) + resolution: number = 60; +} + +export class EnumTrailSymbolTraits extends mixTraits( + TrailSymbolTraits, + EnumStyleTraits +) { + static isRemoval = EnumStyleTraits.isRemoval; +} + +export class BinTrailSymbolTraits extends mixTraits( + TrailSymbolTraits, + BinStyleTraits +) { + static isRemoval = BinStyleTraits.isRemoval; +} + +export default class TableTrailStyleTraits + extends mixTraits(TableStyleMapTraits) + implements TableStyleMapModel +{ + // Override TableStyleMapTraits.enabled default + @primitiveTrait({ + name: "Enabled", + description: "True to enable. False by default", + type: "boolean" + }) + enabled = false; + + @primitiveTrait({ + name: "Material type", + description: + "The type of material to use. Possible values: `solidColor` and `polylineGlow`. Default is `solidColor`", + type: "string" + }) + materialType?: keyof PolylineMaterialTraits = "solidColor"; + + @objectArrayTrait({ + name: "Enum Colors", + description: + "The colors to use for enumerated values. This property is ignored " + + "if the `Color Column` type is not `enum`.", + type: EnumTrailSymbolTraits, + idProperty: "value" + }) + enum: EnumTrailSymbolTraits[] = []; + + @objectArrayTrait({ + name: "Enum Colors", + description: + "The colors to use for enumerated values. This property is ignored " + + "if the `Color Column` type is not `enum`.", + type: BinTrailSymbolTraits, + idProperty: "index" + }) + bin: BinTrailSymbolTraits[] = []; + + @objectTrait({ + name: "Enum Colors", + description: + "The colors to use for enumerated values. This property is ignored " + + "if the `Color Column` type is not `enum`.", + type: TrailSymbolTraits + }) + null = new TrailSymbolTraits(); +} diff --git a/lib/Traits/TraitsClasses/WebFeatureServiceCatalogItemTraits.ts b/lib/Traits/TraitsClasses/WebFeatureServiceCatalogItemTraits.ts index a0983aa23e8..1d8ece9eda7 100644 --- a/lib/Traits/TraitsClasses/WebFeatureServiceCatalogItemTraits.ts +++ b/lib/Traits/TraitsClasses/WebFeatureServiceCatalogItemTraits.ts @@ -7,6 +7,16 @@ import { GeoJsonTraits } from "./GeoJsonTraits"; import GetCapabilitiesTraits from "./GetCapabilitiesTraits"; import StyleTraits from "./StyleTraits"; +// TODO: this is repeated in two files, WMS and WFS. In a global config somewhere? +export const SUPPORTED_CRS_4326 = [ + "urn:ogc:def:crs:EPSG::4326", + "EPSG:4326", + "CRS:84", + "EPSG:4283" +]; + +export const SUPPORTED_CRS_3857 = ["EPSG:3857", "EPSG:900913"]; + export default class WebFeatureServiceCatalogItemTraits extends mixTraits( GeoJsonTraits, GetCapabilitiesTraits @@ -25,6 +35,23 @@ export default class WebFeatureServiceCatalogItemTraits extends mixTraits( }) maxFeatures = 1000; + @primitiveTrait({ + type: "string", + name: "Srs Name", + description: `Spatial Reference System to use. For WFS we prefer WGS 84 (${SUPPORTED_CRS_4326.join( + ", " + )}). With WFS requests it is best to use the urn identifier for the srsName, to enforce lat,long order in returned results.` + }) + srsName?: string; + + @primitiveTrait({ + type: "string", + name: "Output Format", + description: + "Output format to request for WFS requests. We prefer GeoJSON. We support gml3 and gml3.1.1 but only in EPSG:4326 projection or similar." + }) + outputFormat?: string; + @anyTrait({ name: "Parameters", description: diff --git a/package.json b/package.json index b89611bff4f..e9fbc0d32b2 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "terriajs", - "version": "8.2.15", + "version": "8.2.20", "description": "Geospatial data visualization platform.", "license": "Apache-2.0", "engines": { @@ -106,7 +106,7 @@ "dompurify": "^2.3.3", "file-loader": "^3.0.1", "file-saver": "^1.3.8", - "flexsearch": "^0.7.21", + "flexsearch": "0.7.21", "geojson-vt": "^3.2.1", "gulp": "^4.0.0", "hammerjs": "^2.0.6", @@ -132,7 +132,6 @@ "mobx-utils": "^5.4.1", "moment": "2.24.0", "mustache": "^2.2.1", - "mutationobserver-shim": "^0.3.1", "papaparse": "^5.2.0", "pbf": "^3.0.1", "point-in-polygon": "^1.0.1", @@ -142,7 +141,6 @@ "raw-loader": "^1.0.0", "rc-slider": "^9.7.2", "react": "^16.14.0", - "react-addons-pure-render-mixin": "^15.6.0", "react-anything-sortable": "^1.5.2", "react-color": "^2.19.3", "react-datepicker": "0.53.0", diff --git a/test/ModelMixins/TableMixinSpec.ts b/test/ModelMixins/TableMixinSpec.ts index 9f9f917dcd3..146dcd016d6 100644 --- a/test/ModelMixins/TableMixinSpec.ts +++ b/test/ModelMixins/TableMixinSpec.ts @@ -1,13 +1,21 @@ import { runInAction } from "mobx"; +import JulianDate from "terriajs-cesium/Source/Core/JulianDate"; import CustomDataSource from "terriajs-cesium/Source/DataSources/CustomDataSource"; +import LabelStyle from "terriajs-cesium/Source/Scene/LabelStyle"; import { getMakiIcon } from "../../lib/Map/Icons/Maki/MakiIcons"; import { ImageryParts } from "../../lib/ModelMixins/MappableMixin"; import CsvCatalogItem from "../../lib/Models/Catalog/CatalogItems/CsvCatalogItem"; import CommonStrata from "../../lib/Models/Definition/CommonStrata"; import createStratumInstance from "../../lib/Models/Definition/createStratumInstance"; import updateModelFromJson from "../../lib/Models/Definition/updateModelFromJson"; +import TerriaFeature from "../../lib/Models/Feature/Feature"; +import { TerriaFeatureData } from "../../lib/Models/Feature/FeatureData"; import Terria from "../../lib/Models/Terria"; import TableColorStyleTraits from "../../lib/Traits/TraitsClasses/TableColorStyleTraits"; +import TableLabelStyleTraits, { + EnumLabelSymbolTraits, + LabelSymbolTraits +} from "../../lib/Traits/TraitsClasses/TableLabelStyleTraits"; import TableOutlineStyleTraits, { BinOutlineSymbolTraits, EnumOutlineSymbolTraits @@ -18,6 +26,10 @@ import TablePointStyleTraits, { } from "../../lib/Traits/TraitsClasses/TablePointStyleTraits"; import TableStyleTraits from "../../lib/Traits/TraitsClasses/TableStyleTraits"; import TableTimeStyleTraits from "../../lib/Traits/TraitsClasses/TableTimeStyleTraits"; +import TableTrailStyleTraits, { + BinTrailSymbolTraits, + EnumTrailSymbolTraits +} from "../../lib/Traits/TraitsClasses/TableTrailStyleTraits"; const LatLonValCsv = require("raw-loader!../../wwwroot/test/csv/lat_lon_val.csv"); const LatLonEnumCsv = require("raw-loader!../../wwwroot/test/csv/lat_lon_enum.csv"); @@ -1272,5 +1284,673 @@ describe("TableMixin", function () { ]); }); }); + + it("enum label style with points", async function () { + item.setTrait(CommonStrata.user, "csvString", LatLonEnumCsv); + + item.setTrait(CommonStrata.user, "styles", [ + createStratumInstance(TableStyleTraits, { + id: "test-style", + color: createStratumInstance(TableColorStyleTraits, { + nullColor: "rgb(255,0,255)" + }), + label: createStratumInstance(TableLabelStyleTraits, { + column: "enum", + enabled: true, + enum: [ + createStratumInstance(EnumLabelSymbolTraits, { + value: "hello", + labelColumn: "enum", + font: "10px sans-serif", + style: "FILL", + scale: 1.5, + fillColor: "#ff00ff", + pixelOffset: [0, 0] + }), + createStratumInstance(EnumLabelSymbolTraits, { + value: "boots", + labelColumn: "enum", + font: "20px Arial", + style: "FILL_AND_OUTLINE", + scale: 2, + fillColor: "#0000ff", + outlineColor: "#00ff00", + outlineWidth: 1, + pixelOffset: [1, 1] + }), + createStratumInstance(EnumLabelSymbolTraits, { + value: "frogs", + labelColumn: "lon", + font: "30px serif", + style: "OUTLINE", + scale: 3, + outlineColor: "#ff0000", + outlineWidth: 2, + pixelOffset: [2, 2] + }) + ] + }) + }) + ]); + item.setTrait(CommonStrata.user, "activeStyle", "test-style"); + + await item.loadMapItems(); + + const mapItem = item.mapItems[0] as CustomDataSource; + + // Note these are slightly different from EnumLabelSymbolTraits above + // This is because some values get converted into cesium formats (eg Cartesian2, LabelStyle etc) + const enumStyles = [ + { + value: "hello", + text: "hello", // labelColumn: "enum", + labelColumn: "enum", + font: "10px sans-serif", + style: LabelStyle.FILL, + scale: 1.5, + fillColor: "rgb(255,0,255)", + pixelOffset: "(0, 0)" // Cartesian2.toString() + }, + { + value: "boots", + text: "boots", //labelColumn: "enum", + font: "20px Arial", + style: LabelStyle.FILL_AND_OUTLINE, + scale: 2, + fillColor: "rgb(0,0,255)", + outlineColor: "rgb(0,255,0)", + outlineWidth: 1, + pixelOffset: "(1, 1)" // Cartesian2.toString() + }, + { + value: "frogs", + text: "145", // labelColumn: "lon", + font: "30px serif", + style: LabelStyle.OUTLINE, + scale: 3, + outlineColor: "rgb(255,0,0)", + outlineWidth: 2, + pixelOffset: "(2, 2)" // Cartesian2.toString() + } + ]; + + mapItem.entities.values.forEach((feature) => { + // Find corresponding style by checking `enum` property + const style = enumStyles.find( + (s) => + s.value === + feature.properties?.getValue(item.terria.timelineClock.currentTime) + .enum + ); + + if (!style) throw "Invalid feature styling!"; + + const failMessage = (prop: string) => + `Failed to test feature ID: ${feature.id}, ID value: ${style.value}, property: ${prop}`; + + expect( + feature.label?.text?.getValue(item.terria.timelineClock.currentTime) + ).toBe(style.text, failMessage("text")); + + expect( + feature.label?.font?.getValue(item.terria.timelineClock.currentTime) + ).toBe(style.font, failMessage("font")); + + expect( + feature.label?.style?.getValue(item.terria.timelineClock.currentTime) + ).toBe(style.style, failMessage("style")); + + expect( + feature.label?.scale?.getValue(item.terria.timelineClock.currentTime) + ).toBe(style.scale, failMessage("scale")); + + expect( + feature.label?.pixelOffset + ?.getValue(item.terria.timelineClock.currentTime) + ?.toString() + ).toBe(style.pixelOffset, failMessage("pixelOffset")); + + if (style.fillColor) + expect( + feature.label?.fillColor + ?.getValue(item.terria.timelineClock.currentTime) + ?.toCssColorString() + ).toBe(style.fillColor, failMessage("fillColor")); + + if (style.outlineColor) + expect( + feature.label?.outlineColor + ?.getValue(item.terria.timelineClock.currentTime) + ?.toCssColorString() + ).toBe(style.outlineColor, failMessage("outlineColor")); + + if (style.outlineWidth) + expect( + feature.label?.outlineWidth?.getValue( + item.terria.timelineClock.currentTime + ) + ).toBe(style.outlineWidth, failMessage("outlineWidth")); + }); + }); + + it("enum label style style with time-enabled points - static styling", async function () { + item.setTrait(CommonStrata.user, "csvString", LatLonEnumDateIdCsv); + + item.setTrait(CommonStrata.user, "styles", [ + createStratumInstance(TableStyleTraits, { + id: "test-style", + color: createStratumInstance(TableColorStyleTraits, { + nullColor: "rgb(255,0,255)" + }), + label: createStratumInstance(TableLabelStyleTraits, { + column: "id", + enabled: true, + null: createStratumInstance(LabelSymbolTraits, { + labelColumn: "id", + font: "40px serif", + style: "OUTLINE", + scale: 4, + outlineColor: "#ffffff", + outlineWidth: 3, + pixelOffset: [3, 3] + }), + enum: [ + createStratumInstance(EnumLabelSymbolTraits, { + value: "feature A", + labelColumn: "id", + font: "10px sans-serif", + style: "FILL", + scale: 1.5, + fillColor: "#ff00ff", + pixelOffset: [0, 0] + }), + createStratumInstance(EnumLabelSymbolTraits, { + value: "feature B", + labelColumn: "id", + font: "20px Arial", + style: "FILL_AND_OUTLINE", + scale: 2, + fillColor: "#0000ff", + outlineColor: "#00ff00", + outlineWidth: 1, + pixelOffset: [1, 1] + }), + createStratumInstance(EnumLabelSymbolTraits, { + value: "feature C", + labelColumn: "id", + font: "30px serif", + style: "OUTLINE", + scale: 3, + outlineColor: "#ff0000", + outlineWidth: 2, + pixelOffset: [2, 2] + }) + ] + }) + }) + ]); + item.setTrait(CommonStrata.user, "activeStyle", "test-style"); + + await item.loadMapItems(); + + const mapItem = item.mapItems[0] as CustomDataSource; + + // Note these are slightly different from EnumLabelSymbolTraits above + // This is because some values get converted into cesium formats (eg Cartesian2, LabelStyle etc) + const enumStyles = [ + { + value: "feature A", + text: "feature A", + labelColumn: "enum", + font: "10px sans-serif", + style: LabelStyle.FILL, + scale: 1.5, + fillColor: "rgb(255,0,255)", + pixelOffset: "(0, 0)" // Cartesian2.toString() + }, + { + value: "feature B", + text: "feature B", + font: "20px Arial", + style: LabelStyle.FILL_AND_OUTLINE, + scale: 2, + fillColor: "rgb(0,0,255)", + outlineColor: "rgb(0,255,0)", + outlineWidth: 1, + pixelOffset: "(1, 1)" // Cartesian2.toString() + }, + { + value: "feature C", + text: "feature C", + font: "30px serif", + style: LabelStyle.OUTLINE, + scale: 3, + outlineColor: "rgb(255,0,0)", + outlineWidth: 2, + pixelOffset: "(2, 2)" // Cartesian2.toString() + } + ]; + + const nullStyle = { + value: undefined, + text: "feature D", // null style only applied to "feature D" + font: "40px serif", + style: LabelStyle.OUTLINE, + scale: 4, + fillColor: undefined, + outlineColor: "rgb(255,255,255)", + outlineWidth: 3, + pixelOffset: "(3, 3)" // Cartesian2.toString() + }; + + mapItem.entities.values.forEach((feature) => { + // We check all discrete times - but all values are the same for every timestamp + item.discreteTimesAsSortedJulianDates?.map((discreteTime) => { + // Don't bother checking point features with no position property + if (!feature.position?.getValue(discreteTime.time)) return; + + // Find corresponding style by checking `enum` property + const featureData = ( + (feature as TerriaFeature).data as TerriaFeatureData + ).timeIntervalCollection; + + if (!featureData) + `Failed to find featureData for feature ID: ${feature.id}`; + + // If feature data doesn't contain current discrete time - we can safely continue + if (!featureData?.intervals.contains(discreteTime.time)) return; + + const featureIdValue = featureData?.getValue(discreteTime.time)?.id; + + const style = + enumStyles.find((s) => s.value === featureIdValue) ?? nullStyle; + + const failMessage = (prop: string) => + `Failed to test feature ID: ${feature.id}, ID value: ${style.value}, time: ${discreteTime.tag}, property: ${prop}`; + + expect(feature.label?.text?.getValue(discreteTime.time)).toBe( + style.text, + failMessage("text") + ); + + expect(feature.label?.font?.getValue(discreteTime.time)).toBe( + style.font, + failMessage("font") + ); + + expect(feature.label?.style?.getValue(discreteTime.time)).toBe( + style.style, + failMessage("style") + ); + + expect(feature.label?.scale?.getValue(discreteTime.time)).toBe( + style.scale, + failMessage("scale") + ); + + expect( + feature.label?.pixelOffset?.getValue(discreteTime.time)?.toString() + ).toBe(style.pixelOffset, failMessage("pixelOffset")); + + if (style.fillColor) + expect( + feature.label?.fillColor + ?.getValue(discreteTime.time) + ?.toCssColorString() + ).toBe(style.fillColor, failMessage("fillColor")); + + if (style.outlineColor) + expect( + feature.label?.outlineColor + ?.getValue(discreteTime.time) + ?.toCssColorString() + ).toBe(style.outlineColor, failMessage("outlineColor")); + + if (style.outlineWidth) + expect( + feature.label?.outlineWidth?.getValue(discreteTime.time) + ).toBe(style.outlineWidth, failMessage("outlineWidth")); + }); + }); + }); + + it("enum trail/path style with time-enabled points - static styling", async function () { + item.setTrait(CommonStrata.user, "csvString", LatLonEnumDateIdCsv); + + const enumStyles = [ + { + value: "feature A", + leadTime: 0, + trailTime: 10, + width: 1, + resolution: 40, + + polylineGlow: { + color: "rgb(255,0,0)", + glowPower: 0.1, + taperPower: 0.4 + } + }, + { + value: "feature B", + leadTime: 10, + trailTime: 20, + width: 1, + resolution: 30, + + polylineGlow: { + color: "rgb(0,255,0)", + glowPower: 0.2, + taperPower: 0.5 + } + }, + { + value: "feature C", + leadTime: 20, + trailTime: 60, + width: 3, + resolution: 30, + + polylineGlow: { + color: "rgb(0,0,255)", + glowPower: 0.3, + taperPower: 0.6 + } + }, + { + value: "feature D", + leadTime: 20, + trailTime: 60, + width: 3, + resolution: 30, + + polylineGlow: { + color: "rgb(0,0,255)", + glowPower: 0.3, + taperPower: 0.6 + } + } + ]; + + item.setTrait(CommonStrata.user, "styles", [ + createStratumInstance(TableStyleTraits, { + id: "test-style", + color: createStratumInstance(TableColorStyleTraits, { + nullColor: "rgb(255,0,255)" + }), + trail: createStratumInstance(TableTrailStyleTraits, { + column: "id", + enabled: true, + materialType: "polylineGlow", + enum: [ + createStratumInstance(EnumTrailSymbolTraits, enumStyles[0]), + createStratumInstance(EnumTrailSymbolTraits, enumStyles[1]), + createStratumInstance(EnumTrailSymbolTraits, enumStyles[2]), + createStratumInstance(EnumTrailSymbolTraits, enumStyles[3]) + ] + }) + }) + ]); + item.setTrait(CommonStrata.user, "activeStyle", "test-style"); + + await item.loadMapItems(); + + const mapItem = item.mapItems[0] as CustomDataSource; + + mapItem.entities.values.forEach((feature) => { + // We check all discrete times - but all values are the same for every timestamp + item.discreteTimesAsSortedJulianDates?.map((discreteTime) => { + // Don't bother checking point features with no position property + if (!feature.position?.getValue(discreteTime.time)) return; + + // Find corresponding style by checking `enum` property + const featureData = ( + (feature as TerriaFeature).data as TerriaFeatureData + ).timeIntervalCollection; + + if (!featureData) + `Failed to find featureData for feature ID: ${feature.id}`; + + // If feature data doesn't contain current discrete time - we can safely continue + if (!featureData?.intervals.contains(discreteTime.time)) return; + + const featureIdValue = featureData?.getValue(discreteTime.time)?.id; + + const style = enumStyles.find((s) => s.value === featureIdValue); + + if (!style) + throw `Failed to find style for feature ID: ${feature.id}, value: ${featureIdValue}`; + + const failMessage = (prop: string) => + `Failed to test feature ID: ${feature.id}, ID value: ${style.value}, time: ${discreteTime.tag}, property: ${prop}`; + + expect(feature.path?.leadTime?.getValue(discreteTime.time)).toBe( + style.leadTime, + failMessage("leadTime") + ); + + expect(feature.path?.trailTime?.getValue(discreteTime.time)).toBe( + style.trailTime, + failMessage("trailTime") + ); + + expect(feature.path?.width?.getValue(discreteTime.time)).toBe( + style.width, + failMessage("width") + ); + + expect(feature.path?.resolution?.getValue(discreteTime.time)).toBe( + style.resolution, + failMessage("resolution") + ); + + const material = feature.path?.material?.getValue(discreteTime.time); + + if (material) { + expect(material.color?.toCssColorString()).toBe( + style.polylineGlow.color, + failMessage("polylineGlow.color") + ); + + expect(material.glowPower).toBe( + style.polylineGlow.glowPower, + failMessage("polylineGlow.glowPower") + ); + + expect(material.taperPower).toBe( + style.polylineGlow.taperPower, + failMessage("polylineGlow.taperPower") + ); + } + }); + }); + }); + + it("bin trail/path style with time-enabled points - dynamic styling", async function () { + item.setTrait(CommonStrata.user, "csvString", LatLonEnumDateIdCsv); + + const binStyles = [ + { + maxValue: 50, + leadTime: 0, + trailTime: 10, + width: 1, + resolution: 40, + + polylineGlow: { + color: "rgb(255,0,0)", + glowPower: 0.1, + taperPower: 0.4 + } + }, + { + maxValue: 60, + leadTime: 10, + trailTime: 20, + width: 2, + resolution: 30, + + polylineGlow: { + color: "rgb(0,255,0)", + glowPower: 0.2, + taperPower: 0.5 + } + }, + { + maxValue: 70, + leadTime: 20, + trailTime: 60, + width: 3, + resolution: 30, + + polylineGlow: { + color: "rgb(0,0,255)", + glowPower: 0.3, + taperPower: 0.6 + } + } + ]; + + item.setTrait(CommonStrata.user, "styles", [ + createStratumInstance(TableStyleTraits, { + id: "test-style", + color: createStratumInstance(TableColorStyleTraits, { + nullColor: "rgb(255,0,255)" + }), + trail: createStratumInstance(TableTrailStyleTraits, { + column: "level", + enabled: true, + materialType: "polylineGlow", + bin: [ + createStratumInstance(BinTrailSymbolTraits, binStyles[0]), + createStratumInstance(BinTrailSymbolTraits, binStyles[1]), + createStratumInstance(BinTrailSymbolTraits, binStyles[2]) + ] + }) + }) + ]); + item.setTrait(CommonStrata.user, "activeStyle", "test-style"); + + await item.loadMapItems(); + + const mapItem = item.mapItems[0] as CustomDataSource; + + // Time = level + // 2015-08-01 = 50 (style 0) + // 2015-08-02 = 60 (style 1) + // 2015-08-04 = 70 (style 2) + + // We also check interpolated level at 2015-08-03 + // 2015-08-03 = 65 (style 1 into style 2) + const interpolatedStyle = { + maxValue: 65, + leadTime: 15, + trailTime: 40, + width: 2.5, + resolution: 30, + + polylineGlow: { + color: "rgb(0,128,128)", + glowPower: 0.25, + taperPower: 0.55 + } + }; + + const times = [ + JulianDate.fromDate(new Date("2015-08-01")), + JulianDate.fromDate(new Date("2015-08-02")), + + JulianDate.fromDate(new Date("2015-08-04")), + JulianDate.fromDate(new Date("2015-08-03")) // Note interpolated date is last + ]; + + mapItem.entities.values.forEach((feature) => { + times.forEach((time, timeIndex) => { + const featureData = ( + (feature as TerriaFeature).data as TerriaFeatureData + ).timeIntervalCollection; + + if (!featureData) + `Failed to find featureData for feature ID: ${feature.id}`; + + const featureIdColumnValue = featureData?.getValue(time)?.id; + + // We only check features with id === "Feature A" + // Otherwise the test would be too large + if (featureIdColumnValue !== "feature A") return; + + const featureBinColumnValue = parseFloat( + featureData?.getValue(time)?.level + ); + + // First three time indices map to binStyles - the last uses interpolatedStyle + const style = binStyles[timeIndex] ?? interpolatedStyle; + + if (!style) + throw `Failed to find style for feature ID: ${feature.id}, value: ${featureBinColumnValue}`; + + const failMessage = (prop: string) => + `Failed to test feature ID: ${feature.id}, ID value: ${featureBinColumnValue}, time: ${time}, property: ${prop}`; + + expect(feature.path?.leadTime?.getValue(time)).toBe( + style.leadTime, + failMessage("leadTime") + ); + + expect(feature.path?.trailTime?.getValue(time)).toBe( + style.trailTime, + failMessage("trailTime") + ); + + expect(feature.path?.width?.getValue(time)).toBe( + style.width, + failMessage("width") + ); + + expect(feature.path?.resolution?.getValue(time)).toBe( + style.resolution, + failMessage("resolution") + ); + + const material = feature.path?.material?.getValue(time); + + if (material) { + expect(material.color?.toCssColorString()).toBe( + style.polylineGlow.color, + failMessage("polylineGlow.color") + ); + + expect(material.glowPower).toBe( + style.polylineGlow.glowPower, + failMessage("polylineGlow.glowPower") + ); + + expect(material.taperPower).toBe( + style.polylineGlow.taperPower, + failMessage("polylineGlow.taperPower") + ); + } + }); + }); + }); + + it("doesn't pick hidden style as default activeStyle", async function () { + item.setTrait(CommonStrata.user, "csvString", ParkingSensorDataCsv); + + await item.loadMapItems(); + + expect(item.activeStyle).toBe("eventid"); + + item.setTrait(CommonStrata.user, "styles", [ + createStratumInstance(TableStyleTraits, { + id: "eventid", + hidden: true + }) + ]); + + await item.loadMapItems(); + + expect(item.activeStyle).toBe("parkflag"); + }); }); }); diff --git a/test/Models/Catalog/CatalogGroupSpec.ts b/test/Models/Catalog/CatalogGroupSpec.ts index 485c93e0948..ada67d2f1b2 100644 --- a/test/Models/Catalog/CatalogGroupSpec.ts +++ b/test/Models/Catalog/CatalogGroupSpec.ts @@ -425,4 +425,80 @@ describe("CatalogGroup", function () { expect(splitRef.target instanceof GeoJsonCatalogItem).toBe(true); }); }); + + describe("mergeGroupsByName", () => { + beforeEach(() => { + json = { + type: "group", + id: "root", + name: "Test Group", + members: [ + { + type: "group", + id: "group-1", + name: "Group with the same name", + members: [ + // Note these two items **won't** be merged when `mergeGroupsByName = true` - as it only applies to top level + { type: "wms", id: "wms-1", name: "wms with the same name" }, + { type: "wms", id: "wms-2", name: "wms with the same name" }, + { + type: "geojson", + id: "geojson-1", + name: "geojson 1" + } + ] + }, + { + type: "group", + id: "group-2", + name: "Group with the same name", + members: [ + { type: "wms", id: "wms-3", name: "wms 3" }, + { + type: "geojson", + id: "geojson-2", + name: "geojson 2" + } + ] + } + ] + }; + upsertModelFromJson( + CatalogMemberFactory, + terria, + "", + "definition", + json, + { replaceStratum: true } + ).throwIfUndefined(); + }); + + it("set to false", async function () { + const item = terria.getModelById(CatalogGroup, "root"); + item.setTrait(CommonStrata.definition, "mergeGroupsByName", false); + (await item.loadMembers()).throwIfError(); + expect(item.memberModels.length).toBe(2); + + const parent1 = item.memberModels[0] as CatalogGroup; + (await parent1.loadMembers()).throwIfError(); + expect(parent1.memberModels.length).toBe(3); + + const parent1Copy = item.memberModels[1] as CatalogGroup; + (await parent1Copy.loadMembers()).throwIfError(); + expect(parent1Copy.memberModels.length).toBe(2); + + expect(parent1.name).toBe(parent1Copy.name); + }); + + it("set to true", async function () { + const item = terria.getModelById(CatalogGroup, "root"); + item.setTrait(CommonStrata.definition, "mergeGroupsByName", true); + (await item.loadMembers()).throwIfError(); + expect(item.memberModels.length).toBe(1); + + const mergedGroup = item.memberModels[0] as CatalogGroup; + (await mergedGroup.loadMembers()).throwIfError(); + expect(mergedGroup.memberModels.length).toBe(5); + }); + }); }); diff --git a/test/Models/Catalog/CatalogGroups/OpenDataSoftCatalogGroupSpec.ts b/test/Models/Catalog/CatalogGroups/OpenDataSoftCatalogGroupSpec.ts index 197f90825bf..93f2fe70f68 100644 --- a/test/Models/Catalog/CatalogGroups/OpenDataSoftCatalogGroupSpec.ts +++ b/test/Models/Catalog/CatalogGroups/OpenDataSoftCatalogGroupSpec.ts @@ -13,6 +13,13 @@ const datasets = JSON.stringify( require("../../../../wwwroot/test/ods/datasets.json") ); +const datasetsCount101Response1 = JSON.stringify( + require("../../../../wwwroot/test/ods/datasets-over-100-1.json") +); +const datasetsCount101Response2 = JSON.stringify( + require("../../../../wwwroot/test/ods/datasets-over-100-2.json") +); + describe("OpenDataSoftCatalogGroup", function () { let terria: Terria; let odsGroup: OpenDataSoftCatalogGroup; @@ -22,16 +29,12 @@ describe("OpenDataSoftCatalogGroup", function () { body: facets }); - fetchMock.mock( - "https://example.com/api/v2/catalog/datasets/?limit=100&order_by=title+asc&refine=features%3Ageo&where=features+%3D+%22geo%22+OR+features+%3D+%22timeserie%22", - { body: datasets } - ); - terria = new Terria(); odsGroup = new OpenDataSoftCatalogGroup("test", terria); }); afterEach(function () { + console.log(fetchMock.calls()); fetchMock.restore(); }); @@ -41,6 +44,10 @@ describe("OpenDataSoftCatalogGroup", function () { describe("loads facets", function () { beforeEach(async function () { + fetchMock.mock( + "https://example.com/api/v2/catalog/datasets/?limit=100&offset=0&order_by=title+asc&refine=features%3Ageo&where=features+%3D+%22geo%22+OR+features+%3D+%22timeserie%22", + { body: datasets } + ); runInAction(() => { odsGroup.setTrait("definition", "url", "https://example.com"); }); @@ -66,4 +73,47 @@ describe("OpenDataSoftCatalogGroup", function () { expect(environmentalSensors.datasetId).toBe("weather-stations"); }); }); + + describe("loads over 100 datasets (in multiple requests)", function () { + beforeEach(async function () { + // Note these two responses don't actually return over 100 datasest + // Both JSON files have "total_count": 101 - and 6 different datasets each + // So we expect total 12 datasets + + // Offset = 0 + fetchMock.mock( + "https://example.com/api/v2/catalog/datasets/?limit=100&offset=0&order_by=title+asc&refine=features%3Ageo&where=features+%3D+%22geo%22+OR+features+%3D+%22timeserie%22", + { body: datasetsCount101Response1 } + ); + + // Offset = 100 + fetchMock.mock( + "https://example.com/api/v2/catalog/datasets/?limit=100&offset=100&order_by=title+asc&refine=features%3Ageo&where=features+%3D+%22geo%22+OR+features+%3D+%22timeserie%22", + { body: datasetsCount101Response2 } + ); + runInAction(() => { + odsGroup.setTrait("definition", "url", "https://example.com"); + }); + }); + + it("loadsNestedMembers", async function () { + await odsGroup.loadMembers(); + const facets = odsGroup.memberModels; + expect(facets.length).toEqual(6); + const featureFacet = facets[1] as OpenDataSoftCatalogGroup; + await featureFacet.loadMembers(); + expect(featureFacet.memberModels.length).toEqual(4); + const geoFeatureFacet = featureFacet.memberModels[1] as CatalogGroup; + await geoFeatureFacet.loadMembers(); + expect(geoFeatureFacet.memberModels.length).toEqual(12); + + const environmentalSensors = geoFeatureFacet + .memberModels[1] as OpenDataSoftCatalogItem; + + expect(environmentalSensors.type).toBe("opendatasoft-item"); + expect(environmentalSensors.name).toBe("Environmental sensors"); + expect(environmentalSensors.description?.length).toBe(244); + expect(environmentalSensors.datasetId).toBe("weather-stations-2"); + }); + }); }); diff --git a/test/Models/Catalog/CatalogItems/CartoMapCatalogItemSpec.ts b/test/Models/Catalog/CatalogItems/CartoMapV1CatalogItemSpec.ts similarity index 92% rename from test/Models/Catalog/CatalogItems/CartoMapCatalogItemSpec.ts rename to test/Models/Catalog/CatalogItems/CartoMapV1CatalogItemSpec.ts index ab8ffe816e7..a7490cdf072 100644 --- a/test/Models/Catalog/CatalogItems/CartoMapCatalogItemSpec.ts +++ b/test/Models/Catalog/CatalogItems/CartoMapV1CatalogItemSpec.ts @@ -2,9 +2,9 @@ import { configure, runInAction } from "mobx"; import Rectangle from "terriajs-cesium/Source/Core/Rectangle"; import UrlTemplateImageryProvider from "terriajs-cesium/Source/Scene/UrlTemplateImageryProvider"; import { ImageryParts } from "../../../../lib/ModelMixins/MappableMixin"; -import CartoMapCatalogItem, { +import CartoMapV1CatalogItem, { CartoLoadableStratum -} from "../../../../lib/Models/Catalog/CatalogItems/CartoMapCatalogItem"; +} from "../../../../lib/Models/Catalog/CatalogItems/CartoMapV1CatalogItem"; import Terria from "../../../../lib/Models/Terria"; configure({ @@ -12,15 +12,15 @@ configure({ computedRequiresReaction: true }); -describe("CartoMapCatalogItem", function () { - let item: CartoMapCatalogItem; +describe("CartoMapV1CatalogItem", function () { + let item: CartoMapV1CatalogItem; beforeEach(function () { - item = new CartoMapCatalogItem("test", new Terria()); + item = new CartoMapV1CatalogItem("test", new Terria()); }); it("has a type", function () { - expect(CartoMapCatalogItem.type).toBe("carto"); + expect(CartoMapV1CatalogItem.type).toBe("carto"); }); describe("when tileUrl has been set", function () { diff --git a/test/Models/Catalog/CatalogItems/CartoMapV3CatalogItemSpec.ts b/test/Models/Catalog/CatalogItems/CartoMapV3CatalogItemSpec.ts new file mode 100644 index 00000000000..aeefd613142 --- /dev/null +++ b/test/Models/Catalog/CatalogItems/CartoMapV3CatalogItemSpec.ts @@ -0,0 +1,132 @@ +import CustomDataSource from "terriajs-cesium/Source/DataSources/CustomDataSource"; +import { isJsonObject } from "../../../../lib/Core/Json"; +import CartoMapV3CatalogItem from "../../../../lib/Models/Catalog/CatalogItems/CartoMapV3CatalogItem"; +import CommonStrata from "../../../../lib/Models/Definition/CommonStrata"; +import Terria from "../../../../lib/Models/Terria"; + +describe("CartoMapV3CatalogItemSpec", function () { + let item: CartoMapV3CatalogItem; + + beforeEach(function () { + item = new CartoMapV3CatalogItem("test", new Terria()); + + jasmine.Ajax.install(); + jasmine.Ajax.stubRequest(/.*/).andError({}); + }); + + afterEach(function () { + jasmine.Ajax.uninstall(); + }); + + it("has a type", function () { + expect(CartoMapV3CatalogItem.type).toBe("carto-v3"); + }); + + describe("table API", function () { + beforeEach(function () { + item.setTrait(CommonStrata.definition, "baseUrl", "https://BASE_URL/"); + item.setTrait( + CommonStrata.definition, + "connectionName", + "CONNECTION_NAME" + ); + item.setTrait(CommonStrata.definition, "cartoTableName", "TABLE_NAME"); + item.setTrait( + CommonStrata.definition, + "cartoGeoColumn", + "GEO_COLUMN_NAME" + ); + item.setTrait(CommonStrata.definition, "cartoColumns", ["COLUMN_1"]); + + jasmine.Ajax.stubRequest( + "https://BASE_URL/v3/maps/CONNECTION_NAME/table?name=TABLE_NAME&columns=COLUMN_1&geo_column=GEO_COLUMN_NAME" + ).andReturn({ + responseJSON: require("../../../../wwwroot/test/CartoMapV3/table-response.json") + }); + jasmine.Ajax.stubRequest( + "https://example.com/table/geojson.json" + ).andReturn({ + responseJSON: require("../../../../wwwroot/test/CartoMapV3/table-geojson-response.json") + }); + }); + + it("gets correct GeoJSON url", async function () { + (await item.loadMetadata()).throwIfError(); + expect(item.geoJsonUrls.length).toBe(1); + expect(item.geoJsonUrls[0]).toBe( + "https://example.com/table/geojson.json" + ); + }); + + it("renders GeoJSON", async function () { + (await item.loadMapItems()).throwIfError(); + + console.log(item.mapItems); + expect(item.mapItems.length).toBe(1); + expect(item.mapItems[0] instanceof CustomDataSource).toBeTruthy(); + expect( + (item.mapItems[0] as CustomDataSource).entities.values.length + ).toBe(1); + }); + }); + + describe("query table API", function () { + beforeEach(function () { + item.setTrait(CommonStrata.definition, "baseUrl", "https://BASE_URL/"); + item.setTrait( + CommonStrata.definition, + "connectionName", + "CONNECTION_NAME" + ); + item.setTrait(CommonStrata.definition, "cartoQuery", "SOME_QUERY"); + item.setTrait( + CommonStrata.definition, + "cartoGeoColumn", + "GEO_COLUMN_NAME" + ); + + jasmine.Ajax.stubRequest( + "https://BASE_URL/v3/maps/CONNECTION_NAME/query" + ).andCallFunction((req) => { + req.data; + const body = req.data(); + // Only respond if correct body parameters + if ( + isJsonObject(body) && + body.q === "SOME_QUERY" && + body.geo_column === "GEO_COLUMN_NAME" + ) { + req.respondWith({ + responseJSON: require("../../../../wwwroot/test/CartoMapV3/query-response.json") + }); + } else { + req.responseError(); + } + }); + + jasmine.Ajax.stubRequest( + "https://example.com/query/geojson.json" + ).andReturn({ + responseJSON: require("../../../../wwwroot/test/CartoMapV3/query-geojson-response.json") + }); + }); + + it("gets correct GeoJSON url", async function () { + (await item.loadMetadata()).throwIfError(); + expect(item.geoJsonUrls.length).toBe(1); + expect(item.geoJsonUrls[0]).toBe( + "https://example.com/query/geojson.json" + ); + }); + + it("renders GeoJSON", async function () { + (await item.loadMapItems()).throwIfError(); + + expect(item.mapItems.length).toBe(1); + expect(item.mapItems[0] instanceof CustomDataSource).toBeTruthy(); + expect( + (item.mapItems[0] as CustomDataSource).entities.values.length + ).toBe(1); + }); + }); +}); diff --git a/wwwroot/languages/en/translation.json b/wwwroot/languages/en/translation.json index ba9d9a4a3ff..6eef52f58b0 100644 --- a/wwwroot/languages/en/translation.json +++ b/wwwroot/languages/en/translation.json @@ -306,16 +306,6 @@ "takeTour": "Take the tour", "mapUserGuide": "Map user guide" }, - "helpMenu": { - "btnText": "Help", - "btnTitle": "get help", - "helpMenuHeader": "What would you like to do?", - "helpMenuOpenWelcome": "Show welcome message", - "helpMenuSatelliteGuideTitle": "View satellite imagery guide", - "helpMenuMoreHelpTitle": "More help", - "done": "DONE", - "next": "NEXT" - }, "sui": { "notifications": { "title": "This map contains a story", @@ -716,7 +706,8 @@ "czml": "CZML", "gpx": "GPX", "json": "Terria Catalog", - "carto": "Carto", + "carto": "Carto V1", + "carto-v3": "Carto V3", "gltf": "glTF", "shp": "Shapefile", "socrata-group": "Socrata Server", @@ -773,6 +764,8 @@ "devError": "bulkConvertAddresses must be implemented in the derived class." }, "cesium": { + "stoppedRenderingTitle": "3D map failed to render", + "stoppedRenderingMessage": "This may have been caused by a dataset just added to the workbench - please try removing it. If this does not resolve your problem you may need to reload {{appName}}.", "devError": "cesium is required.", "failedToObtain": "Failed to obtain image tile X: {{x}} Y: {{y}} Level: {{level}}.", "notWebMercatorTilingScheme": "This dataset cannot be displayed on the 2D map because it does not support the Web Mercator (EPSG:3857) projection.", diff --git a/wwwroot/test/CartoMapV3/query-geojson-response.json b/wwwroot/test/CartoMapV3/query-geojson-response.json new file mode 100644 index 00000000000..549f8f21910 --- /dev/null +++ b/wwwroot/test/CartoMapV3/query-geojson-response.json @@ -0,0 +1,17 @@ +{ + "type": "FeatureCollection", + "features": [ + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [23.167256, 54.365886] + }, + "properties": { + "cartodb_id": 34098, + "gps_code": null, + "name": "Airport" + } + } + ] +} diff --git a/wwwroot/test/CartoMapV3/query-response.json b/wwwroot/test/CartoMapV3/query-response.json new file mode 100644 index 00000000000..4c31c2bb1d6 --- /dev/null +++ b/wwwroot/test/CartoMapV3/query-response.json @@ -0,0 +1,35 @@ +{ + "ndjson": { + "url": ["https://example.com/query/ndjson.json"] + }, + "geojson": { + "url": ["https://example.com/query/geojson.json"] + }, + "json": { + "url": ["https://example.com/query/json.json"] + }, + "binary": { + "url": ["https://example.com/query/binary"] + }, + "tilejson": { + "url": ["https://example.com/query/tilejson.json"] + }, + "schema": [ + { + "name": "cartodb_id", + "type": "number" + }, + { + "name": "gps_code", + "type": "string" + }, + { + "name": "name", + "type": "string" + }, + { + "name": "geom", + "type": "geometry" + } + ] +} diff --git a/wwwroot/test/CartoMapV3/table-geojson-response.json b/wwwroot/test/CartoMapV3/table-geojson-response.json new file mode 100644 index 00000000000..d0c457c16e5 --- /dev/null +++ b/wwwroot/test/CartoMapV3/table-geojson-response.json @@ -0,0 +1,17 @@ +{ + "type": "FeatureCollection", + "features": [ + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [29.474258423, 0.50274682] + }, + "properties": { + "cartodb_id": 16048, + "gps_code": null, + "name": "Beni" + } + } + ] +} diff --git a/wwwroot/test/CartoMapV3/table-response.json b/wwwroot/test/CartoMapV3/table-response.json new file mode 100644 index 00000000000..15f08cd221a --- /dev/null +++ b/wwwroot/test/CartoMapV3/table-response.json @@ -0,0 +1,37 @@ +{ + "size": 70307, + "nrows": 1000, + "ndjson": { + "url": ["https://example.com/table/ndjson.json"] + }, + "geojson": { + "url": ["https://example.com/table/geojson.json"] + }, + "json": { + "url": ["https://example.com/table/json.json"] + }, + "binary": { + "url": ["https://example.com/table/binary"] + }, + "tilejson": { + "url": ["https://example.com/table/tilejson.json"] + }, + "schema": [ + { + "name": "cartodb_id", + "type": "number" + }, + { + "name": "gps_code", + "type": "string" + }, + { + "name": "name", + "type": "string" + }, + { + "name": "geom", + "type": "geometry" + } + ] +} diff --git a/wwwroot/test/ods/datasets-over-100-1.json b/wwwroot/test/ods/datasets-over-100-1.json new file mode 100644 index 00000000000..bbb9a525aa7 --- /dev/null +++ b/wwwroot/test/ods/datasets-over-100-1.json @@ -0,0 +1,1422 @@ +{ + "total_count": 101, + "links": [ + { + "href": "https://www.campbelltownopendataportal.com.au/api/v2/catalog/datasets?include_app_metas=False&order_by=title+asc&limit=100&refine=features%3Ageo&offset=0&where=features+%3D+%22geo%22+OR+features+%3D+%22timeserie%22", + "rel": "self" + }, + { + "href": "https://www.campbelltownopendataportal.com.au/api/v2/catalog/datasets?include_app_metas=False&order_by=title+asc&limit=100&refine=features%3Ageo&offset=0&where=features+%3D+%22geo%22+OR+features+%3D+%22timeserie%22", + "rel": "first" + }, + { + "href": "https://www.campbelltownopendataportal.com.au/api/v2/catalog/datasets?include_app_metas=False&order_by=title+asc&limit=100&refine=features%3Ageo&offset=0&where=features+%3D+%22geo%22+OR+features+%3D+%22timeserie%22", + "rel": "last" + } + ], + "datasets": [ + { + "links": [ + { + "href": "https://www.campbelltownopendataportal.com.au/api/v2/catalog/datasets/campbelltown-heat-aggregated-measures", + "rel": "self" + }, + { + "href": "https://www.campbelltownopendataportal.com.au/api/v2/catalog/datasets", + "rel": "datasets" + }, + { + "href": "https://www.campbelltownopendataportal.com.au/api/v2/catalog/datasets/campbelltown-heat-aggregated-measures/records", + "rel": "records" + }, + { + "href": "https://www.campbelltownopendataportal.com.au/api/v2/catalog/datasets/campbelltown-heat-aggregated-measures/exports", + "rel": "exports" + }, + { + "href": "https://www.campbelltownopendataportal.com.au/api/v2/catalog/datasets/campbelltown-heat-aggregated-measures/aggregates", + "rel": "aggregate" + }, + { + "href": "https://www.campbelltownopendataportal.com.au/api/v2/catalog/datasets/campbelltown-heat-aggregated-measures/facets", + "rel": "facets" + } + ], + "dataset": { + "dataset_id": "campbelltown-heat-aggregated-measures-2", + "dataset_uid": "da_52qfqj", + "attachments": [], + "has_records": true, + "data_visible": true, + "fields": [ + { + "description": null, + "label": "Logger#", + "type": "text", + "name": "logger", + "annotations": { + "facet": [] + } + }, + { + "description": null, + "label": "Serial #", + "type": "text", + "name": "serial", + "annotations": {} + }, + { + "description": null, + "label": "Description 1", + "type": "text", + "name": "description_1", + "annotations": {} + }, + { + "description": null, + "label": "Description 2", + "type": "text", + "name": "description_2", + "annotations": {} + }, + { + "description": null, + "label": "Suburb", + "type": "text", + "name": "suburb", + "annotations": { + "facet": [] + } + }, + { + "description": null, + "label": "Tree Species (if applicable)", + "type": "text", + "name": "tree_species_if_applicable", + "annotations": { + "facet": [] + } + }, + { + "description": null, + "label": "Mean", + "type": "double", + "name": "mean", + "annotations": {} + }, + { + "description": null, + "label": "Max", + "type": "double", + "name": "max", + "annotations": {} + }, + { + "description": null, + "label": "Min", + "type": "double", + "name": "min", + "annotations": {} + }, + { + "description": null, + "label": "location", + "type": "geo_point_2d", + "name": "location", + "annotations": {} + } + ], + "metas": { + "default": { + "records_count": 102, + "modified": "2020-09-16T10:42:08+00:00", + "source_domain_address": null, + "references": null, + "keyword": ["heat", "urban heat", "temperature", "climate"], + "source_domain_title": null, + "geographic_reference": ["au_40_1"], + "timezone": null, + "title": "Benchmarking Heat across Campbelltown - aggregated measures", + "parent_domain": "westernparklands", + "theme": ["Environmental Protection"], + "modified_updates_on_data_change": false, + "metadata_processed": "2021-02-03T01:35:32.280000+00:00", + "data_processed": "2020-09-16T10:47:19+00:00", + "territory": ["New South Wales"], + "description": "

          Contains location and aggregated heat measures captured via a network of more than 100 heat loggers installed in the council area.\u00a0

          ", + "modified_updates_on_metadata_change": false, + "shared_catalog": null, + "source_domain": null, + "attributions": null, + "geographic_area_mode": null, + "geographic_reference_auto": true, + "geographic_area": null, + "publisher": "Campbelltown City Council", + "language": "en", + "license": null, + "source_dataset": null, + "metadata_languages": ["en"], + "oauth_scope": null, + "federated": false, + "license_url": null + } + }, + "features": ["analyze", "geo", "custom_view"] + } + }, + { + "links": [ + { + "href": "https://www.campbelltownopendataportal.com.au/api/v2/catalog/datasets/weather-stations", + "rel": "self" + }, + { + "href": "https://www.campbelltownopendataportal.com.au/api/v2/catalog/datasets", + "rel": "datasets" + }, + { + "href": "https://www.campbelltownopendataportal.com.au/api/v2/catalog/datasets/weather-stations/records", + "rel": "records" + }, + { + "href": "https://www.campbelltownopendataportal.com.au/api/v2/catalog/datasets/weather-stations/exports", + "rel": "exports" + }, + { + "href": "https://www.campbelltownopendataportal.com.au/api/v2/catalog/datasets/weather-stations/aggregates", + "rel": "aggregate" + }, + { + "href": "https://www.campbelltownopendataportal.com.au/api/v2/catalog/datasets/weather-stations/facets", + "rel": "facets" + } + ], + "dataset": { + "dataset_id": "weather-stations-2", + "dataset_uid": "da_7rkvfm", + "attachments": [], + "has_records": true, + "data_visible": true, + "fields": [ + { + "description": null, + "label": "Device name", + "type": "text", + "name": "device_name", + "annotations": { + "facet": [] + } + }, + { + "description": null, + "label": "dev_id", + "type": "text", + "name": "dev_id", + "annotations": { + "facet": [] + } + }, + { + "description": null, + "label": "time", + "type": "datetime", + "name": "metadata_time", + "annotations": { + "facet": [], + "facetsort": ["-alphanum"], + "timeserie_precision": ["hour"] + } + }, + { + "description": null, + "label": "Heat Stress Index", + "type": "double", + "name": "heat_stress_index", + "annotations": { + "decimals": [1], + "facetsort": ["-count"] + } + }, + { + "description": null, + "label": "UVIndex", + "type": "double", + "name": "payload_fields_uvindex", + "annotations": { + "facetsort": ["-count"] + } + }, + { + "description": null, + "label": "wshumidity", + "type": "double", + "name": "payload_fields_wshumidity", + "annotations": { + "facetsort": ["-count"] + } + }, + { + "description": null, + "label": "wstemperature", + "type": "double", + "name": "payload_fields_wstemperature", + "annotations": { + "facetsort": ["-count"] + } + }, + { + "description": null, + "label": "airpressure", + "type": "double", + "name": "payload_fields_airpressure", + "annotations": { + "facetsort": ["-count"] + } + }, + { + "description": null, + "label": "brightness", + "type": "double", + "name": "payload_fields_brightness", + "annotations": { + "facetsort": ["-count"] + } + }, + { + "description": null, + "label": "gustdirection", + "type": "double", + "name": "payload_fields_gustdirection", + "annotations": { + "facetsort": ["-count"] + } + }, + { + "description": null, + "label": "gustspeed", + "type": "double", + "name": "payload_fields_gustspeed", + "annotations": { + "facetsort": ["-count"] + } + }, + { + "description": null, + "label": "precip", + "type": "double", + "name": "payload_fields_precip", + "annotations": { + "facetsort": ["-count"] + } + }, + { + "description": null, + "label": "precipint", + "type": "double", + "name": "payload_fields_precipint", + "annotations": { + "facetsort": ["-count"] + } + }, + { + "description": null, + "label": "radiation", + "type": "double", + "name": "payload_fields_radiation", + "annotations": { + "facetsort": ["-count"] + } + }, + { + "description": null, + "label": "winddirection", + "type": "double", + "name": "payload_fields_winddirection", + "annotations": { + "facetsort": ["-count"] + } + }, + { + "description": null, + "label": "windspeed", + "type": "double", + "name": "payload_fields_windspeed", + "annotations": { + "facetsort": ["-count"] + } + }, + { + "description": null, + "label": "averagespl", + "type": "double", + "name": "payload_fields_averagespl", + "annotations": { + "facetsort": ["-count"] + } + }, + { + "description": null, + "label": "carbonmonoxide", + "type": "double", + "name": "payload_fields_carbonmonoxide", + "annotations": { + "facetsort": ["-count"] + } + }, + { + "description": null, + "label": "humidity", + "type": "double", + "name": "payload_fields_humidity", + "annotations": { + "facetsort": ["-count"] + } + }, + { + "description": null, + "label": "ibatt", + "type": "double", + "name": "payload_fields_ibatt", + "annotations": { + "facetsort": ["-count"] + } + }, + { + "description": null, + "label": "nitrogendioxide", + "type": "double", + "name": "payload_fields_nitrogendioxide", + "annotations": { + "facetsort": ["-count"] + } + }, + { + "description": null, + "label": "ozone", + "type": "double", + "name": "payload_fields_ozone", + "annotations": { + "facetsort": ["-count"] + } + }, + { + "description": null, + "label": "particulateserr", + "type": "double", + "name": "payload_fields_particulateserr", + "annotations": { + "facetsort": ["-count"] + } + }, + { + "description": null, + "label": "particulatesvsn", + "type": "double", + "name": "payload_fields_particulatesvsn", + "annotations": { + "facetsort": ["-count"] + } + }, + { + "description": null, + "label": "peakspl", + "type": "double", + "name": "payload_fields_peakspl", + "annotations": { + "facetsort": ["-count"] + } + }, + { + "description": null, + "label": "pm1", + "type": "double", + "name": "payload_fields_pm1", + "annotations": { + "facetsort": ["-count"] + } + }, + { + "description": null, + "label": "pm10", + "type": "double", + "name": "payload_fields_pm10", + "annotations": { + "facetsort": ["-count"] + } + }, + { + "description": null, + "label": "pm25", + "type": "double", + "name": "payload_fields_pm25", + "annotations": { + "facetsort": ["-count"] + } + }, + { + "description": null, + "label": "temperature", + "type": "double", + "name": "payload_fields_temperature", + "annotations": { + "facetsort": ["-count"] + } + }, + { + "description": null, + "label": "vbatt", + "type": "double", + "name": "payload_fields_vbatt", + "annotations": { + "facetsort": ["-count"] + } + }, + { + "description": null, + "label": "vpanel", + "type": "double", + "name": "payload_fields_vpanel", + "annotations": { + "facetsort": ["-count"] + } + }, + { + "description": null, + "label": "fixstatus", + "type": "double", + "name": "payload_fields_fixstatus", + "annotations": { + "facetsort": ["-count"] + } + }, + { + "description": null, + "label": "hdop", + "type": "double", + "name": "payload_fields_hdop", + "annotations": { + "facetsort": ["-count"] + } + }, + { + "description": null, + "label": "nsat", + "type": "double", + "name": "payload_fields_nsat", + "annotations": { + "facetsort": ["-count"] + } + }, + { + "description": null, + "label": "Geolocation", + "type": "geo_point_2d", + "name": "geolocation", + "annotations": {} + }, + { + "description": null, + "label": "organisation", + "type": "text", + "name": "organisation", + "annotations": {} + } + ], + "metas": { + "default": { + "records_count": 29306, + "modified": "2020-12-07T05:27:41+00:00", + "source_domain_address": null, + "references": null, + "keyword": ["weather"], + "source_domain_title": null, + "geographic_reference": ["au_80_11978", "au_80_10780"], + "timezone": null, + "title": "Environmental sensors", + "parent_domain": "westernparklands", + "theme": ["Environmental Protection"], + "modified_updates_on_data_change": false, + "metadata_processed": "2021-06-18T06:00:13.031000+00:00", + "data_processed": "2021-06-18T05:50:48+00:00", + "territory": ["Ingleburn", "Campbelltown (NSW)"], + "description": "

          Two environmental monitoring stations (EMS) were installed in December 2020. The EMS measures: particulate matter (PM 1.0, PM 2.5, PM 10), Nitrogen Dioxide, Carbon Monoxide, Ozone, temperature, relative humidity, and ambient noise.\u00a0

          ", + "modified_updates_on_metadata_change": false, + "shared_catalog": null, + "source_domain": null, + "attributions": null, + "geographic_area_mode": null, + "geographic_reference_auto": true, + "geographic_area": null, + "publisher": "Campbelltown City Council", + "language": "en", + "license": "CC BY", + "source_dataset": null, + "metadata_languages": ["en"], + "oauth_scope": null, + "federated": false, + "license_url": "https://creativecommons.org/licenses/by/4.0/" + } + }, + "features": ["geo", "analyze", "timeserie"] + } + }, + { + "links": [ + { + "href": "https://www.campbelltownopendataportal.com.au/api/v2/catalog/datasets/campelltown-business-directory", + "rel": "self" + }, + { + "href": "https://www.campbelltownopendataportal.com.au/api/v2/catalog/datasets", + "rel": "datasets" + }, + { + "href": "https://www.campbelltownopendataportal.com.au/api/v2/catalog/datasets/campelltown-business-directory/records", + "rel": "records" + }, + { + "href": "https://www.campbelltownopendataportal.com.au/api/v2/catalog/datasets/campelltown-business-directory/exports", + "rel": "exports" + }, + { + "href": "https://www.campbelltownopendataportal.com.au/api/v2/catalog/datasets/campelltown-business-directory/aggregates", + "rel": "aggregate" + }, + { + "href": "https://www.campbelltownopendataportal.com.au/api/v2/catalog/datasets/campelltown-business-directory/facets", + "rel": "facets" + } + ], + "dataset": { + "dataset_id": "campelltown-business-directory-2", + "dataset_uid": "da_bper3a", + "attachments": [], + "has_records": true, + "data_visible": true, + "fields": [ + { + "description": null, + "label": "Business name", + "type": "text", + "name": "business_name", + "annotations": { + "facet": [] + } + }, + { + "description": null, + "label": "Street address", + "type": "text", + "name": "street_address", + "annotations": {} + }, + { + "description": null, + "label": "Suburb", + "type": "text", + "name": "suburb", + "annotations": {} + }, + { + "description": null, + "label": "State", + "type": "text", + "name": "state", + "annotations": {} + }, + { + "description": null, + "label": "Postcode", + "type": "text", + "name": "postcode", + "annotations": { + "facetsort": ["-count"] + } + }, + { + "description": null, + "label": "Phone number", + "type": "text", + "name": "phone_number", + "annotations": {} + }, + { + "description": null, + "label": "lat_long", + "type": "geo_point_2d", + "name": "lat_long", + "annotations": { + "facetsort": ["-count"] + } + }, + { + "description": null, + "label": "Business email", + "type": "text", + "name": "business_email", + "annotations": {} + }, + { + "description": null, + "label": "Website", + "type": "text", + "name": "website", + "annotations": {} + }, + { + "description": null, + "label": "Instagram", + "type": "text", + "name": "instagram", + "annotations": {} + }, + { + "description": null, + "label": "Facebook", + "type": "text", + "name": "facebook", + "annotations": {} + }, + { + "description": null, + "label": "Type of business", + "type": "text", + "name": "type_of_business", + "annotations": { + "facet": [] + } + }, + { + "description": null, + "label": "Cuisine type", + "type": "text", + "name": "cuisine_type", + "annotations": { + "facet": [] + } + }, + { + "description": null, + "label": "Describe your business, product or service.", + "type": "text", + "name": "describe_your_business_product_or_service", + "annotations": {} + }, + { + "description": null, + "label": "Operating days", + "type": "text", + "name": "operating_days", + "annotations": {} + }, + { + "description": null, + "label": "Delivery", + "type": "text", + "name": "delivery", + "annotations": { + "facet": [] + } + }, + { + "description": null, + "label": "Take out", + "type": "text", + "name": "take_out", + "annotations": { + "facet": [] + } + }, + { + "description": null, + "label": "Online sales", + "type": "text", + "name": "online_sales", + "annotations": { + "facet": [] + } + } + ], + "metas": { + "default": { + "records_count": 172, + "modified": "2021-03-19T02:18:51+00:00", + "source_domain_address": null, + "references": null, + "keyword": [ + "Buy Local", + "Campbelltown City Council", + "Local Businesses" + ], + "source_domain_title": null, + "geographic_reference": ["au_60_11500"], + "timezone": "Australia/Sydney", + "title": "Local Business Directory - Campbelltown", + "parent_domain": "westernparklands", + "theme": ["Investment, Tourism and Growth"], + "modified_updates_on_data_change": true, + "metadata_processed": "2021-03-19T02:18:52.513000+00:00", + "data_processed": "2021-03-19T02:18:51+00:00", + "territory": ["Campbelltown"], + "description": "

          Our local businesses are the heartbeat of our community. To support our local businesses, we encourage our community to use the local business directory to spend local, to keep jobs local.\u00a0\u00a0

          If you are a business in the Campbelltown City Council local government area add yourself to our business directory.

          ", + "modified_updates_on_metadata_change": false, + "shared_catalog": null, + "source_domain": null, + "attributions": null, + "geographic_area_mode": null, + "geographic_reference_auto": true, + "geographic_area": null, + "publisher": "Campbelltown City Council", + "language": "en", + "license": "CC BY", + "source_dataset": null, + "metadata_languages": ["en"], + "oauth_scope": null, + "federated": false, + "license_url": "https://creativecommons.org/licenses/by/4.0/" + } + }, + "features": ["analyze", "geo", "custom_view"] + } + }, + { + "links": [ + { + "href": "https://www.campbelltownopendataportal.com.au/api/v2/catalog/datasets/ccc-combined-facilities-list-excluding-family-day-care-centres", + "rel": "self" + }, + { + "href": "https://www.campbelltownopendataportal.com.au/api/v2/catalog/datasets", + "rel": "datasets" + }, + { + "href": "https://www.campbelltownopendataportal.com.au/api/v2/catalog/datasets/ccc-combined-facilities-list-excluding-family-day-care-centres/records", + "rel": "records" + }, + { + "href": "https://www.campbelltownopendataportal.com.au/api/v2/catalog/datasets/ccc-combined-facilities-list-excluding-family-day-care-centres/exports", + "rel": "exports" + }, + { + "href": "https://www.campbelltownopendataportal.com.au/api/v2/catalog/datasets/ccc-combined-facilities-list-excluding-family-day-care-centres/aggregates", + "rel": "aggregate" + }, + { + "href": "https://www.campbelltownopendataportal.com.au/api/v2/catalog/datasets/ccc-combined-facilities-list-excluding-family-day-care-centres/facets", + "rel": "facets" + } + ], + "dataset": { + "dataset_id": "ccc-combined-facilities-list-excluding-family-day-care-centres-2", + "dataset_uid": "da_tin2td", + "attachments": [], + "has_records": true, + "data_visible": true, + "fields": [ + { + "description": null, + "label": "Name", + "type": "text", + "name": "site_name", + "annotations": {} + }, + { + "description": null, + "label": "Short description", + "type": "text", + "name": "short_description", + "annotations": {} + }, + { + "description": null, + "label": "Service, Facility & POI", + "type": "text", + "name": "service_or_facility_type", + "annotations": { + "facet": [] + } + }, + { + "description": null, + "label": "Opening hours", + "type": "text", + "name": "opening_hours", + "annotations": {} + }, + { + "description": null, + "label": "Things to do", + "type": "text", + "name": "things_to_do", + "annotations": { + "facet": [], + "disjunctive": [] + } + }, + { + "description": null, + "label": "Key Features", + "type": "text", + "name": "key_features", + "annotations": { + "facet": [] + } + }, + { + "description": null, + "label": "Contact", + "type": "text", + "name": "contact", + "annotations": {} + }, + { + "description": null, + "label": "Phone", + "type": "text", + "name": "phone", + "annotations": {} + }, + { + "description": null, + "label": "Email", + "type": "text", + "name": "email", + "annotations": {} + }, + { + "description": null, + "label": "Website URL", + "type": "text", + "name": "website_url", + "annotations": {} + }, + { + "description": null, + "label": "Street address", + "type": "text", + "name": "street_address", + "annotations": {} + }, + { + "description": null, + "label": "Suburb", + "type": "text", + "name": "suburb", + "annotations": { + "facet": [] + } + }, + { + "description": null, + "label": "Postcode", + "type": "double", + "name": "postcode", + "annotations": {} + }, + { + "description": null, + "label": "Additional location information", + "type": "text", + "name": "additional_location_information", + "annotations": {} + }, + { + "description": null, + "label": "Latitude", + "type": "double", + "name": "latitude", + "annotations": {} + }, + { + "description": null, + "label": "Longitude", + "type": "double", + "name": "longitude", + "annotations": {} + }, + { + "description": null, + "label": "Location", + "type": "geo_point_2d", + "name": "site_location", + "annotations": { + "facetsort": ["-count"] + } + } + ], + "metas": { + "default": { + "records_count": 485, + "modified": "2020-08-04T06:21:57+00:00", + "source_domain_address": null, + "references": null, + "keyword": [ + "Libraries", + "Parks", + "Sports Grounds", + "Recreation", + "Child Care", + "Art Centre", + "Culture", + "Leisure Centres", + "Acquatics", + "Fitness", + "Indoor Sports", + "Facilities for Hire", + "Animal Care Facility", + "Sports Stadium", + "Athletics Centre", + "Campbelltown City Council" + ], + "source_domain_title": null, + "geographic_reference": ["au_60_11500", "au_60_18400"], + "timezone": null, + "title": "Services, Facilities & POI - Campbelltown", + "parent_domain": "westernparklands", + "theme": [ + "Arts and Culture", + "Community, Events and Education", + "Parks and Recreation", + "City Planning and Amenities", + "Governance and Administration" + ], + "modified_updates_on_data_change": false, + "metadata_processed": "2021-02-19T02:05:18.161000+00:00", + "data_processed": "2021-02-19T02:05:17+00:00", + "territory": ["Campbelltown", "Wollondilly"], + "description": "

          We provide a wide range of services and facilities including Libraries; Parks, Sport & Recreation; Child Care; Arts & Culture; Aquatics, Fitness & Indoor Sports; Facilities for Hire; Animal Care Facility; Sports Stadium & Athletics Centre.

          ", + "modified_updates_on_metadata_change": false, + "shared_catalog": null, + "source_domain": null, + "attributions": null, + "geographic_area_mode": null, + "geographic_reference_auto": true, + "geographic_area": null, + "publisher": "Campbelltown City Council", + "language": "en", + "license": "CC BY", + "source_dataset": null, + "metadata_languages": ["en"], + "oauth_scope": null, + "federated": false, + "license_url": "https://creativecommons.org/licenses/by/4.0/" + } + }, + "features": ["analyze", "geo", "custom_view"] + } + }, + { + "links": [ + { + "href": "https://www.campbelltownopendataportal.com.au/api/v2/catalog/datasets/vulnerability", + "rel": "self" + }, + { + "href": "https://www.campbelltownopendataportal.com.au/api/v2/catalog/datasets", + "rel": "datasets" + }, + { + "href": "https://www.campbelltownopendataportal.com.au/api/v2/catalog/datasets/vulnerability/records", + "rel": "records" + }, + { + "href": "https://www.campbelltownopendataportal.com.au/api/v2/catalog/datasets/vulnerability/exports", + "rel": "exports" + }, + { + "href": "https://www.campbelltownopendataportal.com.au/api/v2/catalog/datasets/vulnerability/aggregates", + "rel": "aggregate" + }, + { + "href": "https://www.campbelltownopendataportal.com.au/api/v2/catalog/datasets/vulnerability/facets", + "rel": "facets" + } + ], + "dataset": { + "dataset_id": "vulnerability-2", + "dataset_uid": "da_uy1qtz", + "attachments": [], + "has_records": true, + "data_visible": true, + "fields": [ + { + "description": null, + "label": "Geo Point", + "type": "geo_point_2d", + "name": "geo_point_2d", + "annotations": {} + }, + { + "description": null, + "label": "Geo Shape", + "type": "geo_shape", + "name": "geo_shape", + "annotations": {} + }, + { + "description": null, + "label": "primaryindex", + "type": "text", + "name": "primaryindex", + "annotations": {} + }, + { + "description": null, + "label": "sa1_7digitcode_2016", + "type": "text", + "name": "sa1_7digitcode_2016", + "annotations": {} + }, + { + "description": null, + "label": "SA1", + "type": "text", + "name": "sa1", + "annotations": {} + }, + { + "description": null, + "label": "_0_to_4_years__Number_of_PEOPLE", + "type": "int", + "name": "_0_to_4_years_number_of_people", + "annotations": { + "facetsort": ["-count"] + } + }, + { + "description": null, + "label": "_0_to_4_years_Percent", + "type": "double", + "name": "_0_to_4_years_percent", + "annotations": {} + }, + { + "description": null, + "label": "Total_population", + "type": "double", + "name": "total_population", + "annotations": {} + }, + { + "description": null, + "label": "_65_years_and_over_Number_of_PE", + "type": "int", + "name": "_65_years_and_over_number_of_pe", + "annotations": { + "facetsort": ["-count"] + } + }, + { + "description": null, + "label": "_65_years_and_over__Percent", + "type": "double", + "name": "_65_years_and_over_percent", + "annotations": {} + }, + { + "description": null, + "label": "Total_population_of_SA1", + "type": "double", + "name": "total_population_of_sa1", + "annotations": {} + }, + { + "description": null, + "label": "Not_fluent_in_English_Number_o", + "type": "int", + "name": "not_fluent_in_english_number_o", + "annotations": { + "facetsort": ["-count"] + } + }, + { + "description": null, + "label": "Not_fluent_in_English_Percent_", + "type": "double", + "name": "not_fluent_in_english_percent", + "annotations": {} + }, + { + "description": null, + "label": "Total_pop", + "type": "double", + "name": "total_pop", + "annotations": {} + }, + { + "description": null, + "label": "Low_income__650_w__Number_of_H", + "type": "int", + "name": "low_income_650_w_number_of_h", + "annotations": { + "facetsort": ["-count"] + } + }, + { + "description": null, + "label": "Low_income__650_w__Percent_of_", + "type": "double", + "name": "low_income_650_w_percent_of", + "annotations": {} + }, + { + "description": null, + "label": "Households", + "type": "int", + "name": "households", + "annotations": { + "facetsort": ["-count"] + } + }, + { + "description": null, + "label": "Housing_stress_Number_of_HOUSE", + "type": "int", + "name": "housing_stress_number_of_house", + "annotations": { + "facetsort": ["-count"] + } + }, + { + "description": null, + "label": "Housing_stress_Percent_of_HOUS", + "type": "double", + "name": "housing_stress_percent_of_hous", + "annotations": {} + }, + { + "description": null, + "label": "Housing_stress_Households", + "type": "int", + "name": "housing_stress_households", + "annotations": { + "facetsort": ["-count"] + } + }, + { + "description": null, + "label": "Mortgage_stress_Number_of_HOUS", + "type": "int", + "name": "mortgage_stress_number_of_hous", + "annotations": { + "facetsort": ["-count"] + } + }, + { + "description": null, + "label": "Mortgage_stress_Percent_of_HOU", + "type": "int", + "name": "mortgage_stress_percent_of_hou", + "annotations": { + "facetsort": ["-count"] + } + }, + { + "description": null, + "label": "Households1", + "type": "int", + "name": "households1", + "annotations": { + "facetsort": ["-count"] + } + }, + { + "description": null, + "label": "Rental_stress_Number_of_HOUSEH", + "type": "int", + "name": "rental_stress_number_of_househ", + "annotations": { + "facetsort": ["-count"] + } + }, + { + "description": null, + "label": "Rental_stress_Percent_of_HOUSE", + "type": "double", + "name": "rental_stress_percent_of_house", + "annotations": { + "facetsort": ["-count"] + } + }, + { + "description": null, + "label": "Households2", + "type": "int", + "name": "households2", + "annotations": { + "facetsort": ["-count"] + } + } + ], + "metas": { + "default": { + "records_count": 386, + "modified": "2020-09-17T23:44:13+00:00", + "source_domain_address": null, + "references": null, + "keyword": null, + "source_domain_title": null, + "geographic_reference": ["au_60_11500"], + "timezone": null, + "title": "Vulnerability", + "parent_domain": "westernparklands", + "theme": ["Community, Events and Education"], + "modified_updates_on_data_change": false, + "metadata_processed": "2021-04-05T22:51:07.462000+00:00", + "data_processed": "2021-04-05T22:51:06+00:00", + "territory": ["Campbelltown"], + "description": "

          Vulnerability dataset provides statistics on the multiple stressors and shocks within\nthe community including population, social, and economic factors. Data\ncomponents include Population (Susceptible groups); Social (Language); Economic\nstress (Income, Household, Mortgage, Rental).

          ", + "modified_updates_on_metadata_change": false, + "shared_catalog": null, + "source_domain": null, + "attributions": null, + "geographic_area_mode": null, + "geographic_reference_auto": true, + "geographic_area": null, + "publisher": null, + "language": "en", + "license": null, + "source_dataset": null, + "metadata_languages": ["en"], + "oauth_scope": null, + "federated": false, + "license_url": null + } + }, + "features": ["analyze", "geo", "custom_view"] + } + }, + { + "links": [ + { + "href": "https://www.campbelltownopendataportal.com.au/api/v2/catalog/datasets/campbelltown_garbage_runs", + "rel": "self" + }, + { + "href": "https://www.campbelltownopendataportal.com.au/api/v2/catalog/datasets", + "rel": "datasets" + }, + { + "href": "https://www.campbelltownopendataportal.com.au/api/v2/catalog/datasets/campbelltown_garbage_runs/records", + "rel": "records" + }, + { + "href": "https://www.campbelltownopendataportal.com.au/api/v2/catalog/datasets/campbelltown_garbage_runs/exports", + "rel": "exports" + }, + { + "href": "https://www.campbelltownopendataportal.com.au/api/v2/catalog/datasets/campbelltown_garbage_runs/aggregates", + "rel": "aggregate" + }, + { + "href": "https://www.campbelltownopendataportal.com.au/api/v2/catalog/datasets/campbelltown_garbage_runs/facets", + "rel": "facets" + } + ], + "dataset": { + "dataset_id": "campbelltown_garbage_runs-2", + "dataset_uid": "da_tduomw", + "attachments": [], + "has_records": true, + "data_visible": true, + "fields": [ + { + "description": null, + "label": "Geo Point", + "type": "geo_point_2d", + "name": "geo_point_2d", + "annotations": {} + }, + { + "description": null, + "label": "Geo Shape", + "type": "geo_shape", + "name": "geo_shape", + "annotations": {} + }, + { + "description": null, + "label": "genamap_ta", + "type": "text", + "name": "genamap_ta", + "annotations": { + "facet": [], + "disjunctive": [] + } + }, + { + "description": null, + "label": "day", + "type": "text", + "name": "day", + "annotations": {} + }, + { + "description": null, + "label": "council", + "type": "text", + "name": "council", + "annotations": {} + }, + { + "description": null, + "label": "free_text", + "type": "text", + "name": "free_text", + "annotations": {} + } + ], + "metas": { + "default": { + "records_count": 10, + "modified": "2020-08-13T01:56:34+00:00", + "source_domain_address": null, + "references": null, + "keyword": [ + "waste", + "collection zones", + "bins", + "garbage", + "garden", + "organics", + "recycling", + "recycle", + "Campbelltown City Council", + "Waste Service", + "Waste Collection", + "Bin Collection", + "Western Parkland city Waste Collection" + ], + "source_domain_title": null, + "geographic_reference": ["au_60_11500"], + "timezone": "Australia/Sydney", + "title": "Waste Bin Collection Zones - Campbelltown", + "parent_domain": "westernparklands", + "theme": ["Waste and Recycling"], + "modified_updates_on_data_change": false, + "metadata_processed": "2021-03-10T00:22:08.651000+00:00", + "data_processed": "2021-02-11T09:55:21+00:00", + "territory": ["Campbelltown"], + "description": "

          Waste bin collection is just one of the key services Council do for our community.\u00a0 Waste bin collection zones provide the collection day information.

          Data Currency
          Council will endeavour to refresh the dataset every six months until such time we can integrate our systems.\u00a0\u00a0

          This dataset is due to be refreshed in September 2021.

          Data Accuracy\u00a0
          The spatial accuracy of this information is reliant upon the NSW Spatial Services cadastre datasets. Dataset information is sourced from the Campbelltown City Council GIS dataset.\u00a0 All information is provided and updated by the various stakeholders and custodians within the Council.


          ", + "modified_updates_on_metadata_change": false, + "shared_catalog": null, + "source_domain": null, + "attributions": null, + "geographic_area_mode": null, + "geographic_reference_auto": true, + "geographic_area": null, + "publisher": "Campbelltown City Council", + "language": "en", + "license": "CC BY", + "source_dataset": null, + "metadata_languages": ["en"], + "oauth_scope": null, + "federated": false, + "license_url": "https://creativecommons.org/licenses/by/4.0/" + } + }, + "features": ["analyze", "geo", "custom_view"] + } + } + ] +} diff --git a/wwwroot/test/ods/datasets-over-100-2.json b/wwwroot/test/ods/datasets-over-100-2.json new file mode 100644 index 00000000000..029dd387797 --- /dev/null +++ b/wwwroot/test/ods/datasets-over-100-2.json @@ -0,0 +1,1422 @@ +{ + "total_count": 101, + "links": [ + { + "href": "https://www.campbelltownopendataportal.com.au/api/v2/catalog/datasets?include_app_metas=False&order_by=title+asc&limit=100&refine=features%3Ageo&offset=0&where=features+%3D+%22geo%22+OR+features+%3D+%22timeserie%22", + "rel": "self" + }, + { + "href": "https://www.campbelltownopendataportal.com.au/api/v2/catalog/datasets?include_app_metas=False&order_by=title+asc&limit=100&refine=features%3Ageo&offset=0&where=features+%3D+%22geo%22+OR+features+%3D+%22timeserie%22", + "rel": "first" + }, + { + "href": "https://www.campbelltownopendataportal.com.au/api/v2/catalog/datasets?include_app_metas=False&order_by=title+asc&limit=100&refine=features%3Ageo&offset=0&where=features+%3D+%22geo%22+OR+features+%3D+%22timeserie%22", + "rel": "last" + } + ], + "datasets": [ + { + "links": [ + { + "href": "https://www.campbelltownopendataportal.com.au/api/v2/catalog/datasets/campbelltown-heat-aggregated-measures", + "rel": "self" + }, + { + "href": "https://www.campbelltownopendataportal.com.au/api/v2/catalog/datasets", + "rel": "datasets" + }, + { + "href": "https://www.campbelltownopendataportal.com.au/api/v2/catalog/datasets/campbelltown-heat-aggregated-measures/records", + "rel": "records" + }, + { + "href": "https://www.campbelltownopendataportal.com.au/api/v2/catalog/datasets/campbelltown-heat-aggregated-measures/exports", + "rel": "exports" + }, + { + "href": "https://www.campbelltownopendataportal.com.au/api/v2/catalog/datasets/campbelltown-heat-aggregated-measures/aggregates", + "rel": "aggregate" + }, + { + "href": "https://www.campbelltownopendataportal.com.au/api/v2/catalog/datasets/campbelltown-heat-aggregated-measures/facets", + "rel": "facets" + } + ], + "dataset": { + "dataset_id": "campbelltown-heat-aggregated-measures", + "dataset_uid": "da_52qfqj", + "attachments": [], + "has_records": true, + "data_visible": true, + "fields": [ + { + "description": null, + "label": "Logger#", + "type": "text", + "name": "logger", + "annotations": { + "facet": [] + } + }, + { + "description": null, + "label": "Serial #", + "type": "text", + "name": "serial", + "annotations": {} + }, + { + "description": null, + "label": "Description 1", + "type": "text", + "name": "description_1", + "annotations": {} + }, + { + "description": null, + "label": "Description 2", + "type": "text", + "name": "description_2", + "annotations": {} + }, + { + "description": null, + "label": "Suburb", + "type": "text", + "name": "suburb", + "annotations": { + "facet": [] + } + }, + { + "description": null, + "label": "Tree Species (if applicable)", + "type": "text", + "name": "tree_species_if_applicable", + "annotations": { + "facet": [] + } + }, + { + "description": null, + "label": "Mean", + "type": "double", + "name": "mean", + "annotations": {} + }, + { + "description": null, + "label": "Max", + "type": "double", + "name": "max", + "annotations": {} + }, + { + "description": null, + "label": "Min", + "type": "double", + "name": "min", + "annotations": {} + }, + { + "description": null, + "label": "location", + "type": "geo_point_2d", + "name": "location", + "annotations": {} + } + ], + "metas": { + "default": { + "records_count": 102, + "modified": "2020-09-16T10:42:08+00:00", + "source_domain_address": null, + "references": null, + "keyword": ["heat", "urban heat", "temperature", "climate"], + "source_domain_title": null, + "geographic_reference": ["au_40_1"], + "timezone": null, + "title": "Benchmarking Heat across Campbelltown - aggregated measures", + "parent_domain": "westernparklands", + "theme": ["Environmental Protection"], + "modified_updates_on_data_change": false, + "metadata_processed": "2021-02-03T01:35:32.280000+00:00", + "data_processed": "2020-09-16T10:47:19+00:00", + "territory": ["New South Wales"], + "description": "

          Contains location and aggregated heat measures captured via a network of more than 100 heat loggers installed in the council area.\u00a0

          ", + "modified_updates_on_metadata_change": false, + "shared_catalog": null, + "source_domain": null, + "attributions": null, + "geographic_area_mode": null, + "geographic_reference_auto": true, + "geographic_area": null, + "publisher": "Campbelltown City Council", + "language": "en", + "license": null, + "source_dataset": null, + "metadata_languages": ["en"], + "oauth_scope": null, + "federated": false, + "license_url": null + } + }, + "features": ["analyze", "geo", "custom_view"] + } + }, + { + "links": [ + { + "href": "https://www.campbelltownopendataportal.com.au/api/v2/catalog/datasets/weather-stations", + "rel": "self" + }, + { + "href": "https://www.campbelltownopendataportal.com.au/api/v2/catalog/datasets", + "rel": "datasets" + }, + { + "href": "https://www.campbelltownopendataportal.com.au/api/v2/catalog/datasets/weather-stations/records", + "rel": "records" + }, + { + "href": "https://www.campbelltownopendataportal.com.au/api/v2/catalog/datasets/weather-stations/exports", + "rel": "exports" + }, + { + "href": "https://www.campbelltownopendataportal.com.au/api/v2/catalog/datasets/weather-stations/aggregates", + "rel": "aggregate" + }, + { + "href": "https://www.campbelltownopendataportal.com.au/api/v2/catalog/datasets/weather-stations/facets", + "rel": "facets" + } + ], + "dataset": { + "dataset_id": "weather-stations", + "dataset_uid": "da_7rkvfm", + "attachments": [], + "has_records": true, + "data_visible": true, + "fields": [ + { + "description": null, + "label": "Device name", + "type": "text", + "name": "device_name", + "annotations": { + "facet": [] + } + }, + { + "description": null, + "label": "dev_id", + "type": "text", + "name": "dev_id", + "annotations": { + "facet": [] + } + }, + { + "description": null, + "label": "time", + "type": "datetime", + "name": "metadata_time", + "annotations": { + "facet": [], + "facetsort": ["-alphanum"], + "timeserie_precision": ["hour"] + } + }, + { + "description": null, + "label": "Heat Stress Index", + "type": "double", + "name": "heat_stress_index", + "annotations": { + "decimals": [1], + "facetsort": ["-count"] + } + }, + { + "description": null, + "label": "UVIndex", + "type": "double", + "name": "payload_fields_uvindex", + "annotations": { + "facetsort": ["-count"] + } + }, + { + "description": null, + "label": "wshumidity", + "type": "double", + "name": "payload_fields_wshumidity", + "annotations": { + "facetsort": ["-count"] + } + }, + { + "description": null, + "label": "wstemperature", + "type": "double", + "name": "payload_fields_wstemperature", + "annotations": { + "facetsort": ["-count"] + } + }, + { + "description": null, + "label": "airpressure", + "type": "double", + "name": "payload_fields_airpressure", + "annotations": { + "facetsort": ["-count"] + } + }, + { + "description": null, + "label": "brightness", + "type": "double", + "name": "payload_fields_brightness", + "annotations": { + "facetsort": ["-count"] + } + }, + { + "description": null, + "label": "gustdirection", + "type": "double", + "name": "payload_fields_gustdirection", + "annotations": { + "facetsort": ["-count"] + } + }, + { + "description": null, + "label": "gustspeed", + "type": "double", + "name": "payload_fields_gustspeed", + "annotations": { + "facetsort": ["-count"] + } + }, + { + "description": null, + "label": "precip", + "type": "double", + "name": "payload_fields_precip", + "annotations": { + "facetsort": ["-count"] + } + }, + { + "description": null, + "label": "precipint", + "type": "double", + "name": "payload_fields_precipint", + "annotations": { + "facetsort": ["-count"] + } + }, + { + "description": null, + "label": "radiation", + "type": "double", + "name": "payload_fields_radiation", + "annotations": { + "facetsort": ["-count"] + } + }, + { + "description": null, + "label": "winddirection", + "type": "double", + "name": "payload_fields_winddirection", + "annotations": { + "facetsort": ["-count"] + } + }, + { + "description": null, + "label": "windspeed", + "type": "double", + "name": "payload_fields_windspeed", + "annotations": { + "facetsort": ["-count"] + } + }, + { + "description": null, + "label": "averagespl", + "type": "double", + "name": "payload_fields_averagespl", + "annotations": { + "facetsort": ["-count"] + } + }, + { + "description": null, + "label": "carbonmonoxide", + "type": "double", + "name": "payload_fields_carbonmonoxide", + "annotations": { + "facetsort": ["-count"] + } + }, + { + "description": null, + "label": "humidity", + "type": "double", + "name": "payload_fields_humidity", + "annotations": { + "facetsort": ["-count"] + } + }, + { + "description": null, + "label": "ibatt", + "type": "double", + "name": "payload_fields_ibatt", + "annotations": { + "facetsort": ["-count"] + } + }, + { + "description": null, + "label": "nitrogendioxide", + "type": "double", + "name": "payload_fields_nitrogendioxide", + "annotations": { + "facetsort": ["-count"] + } + }, + { + "description": null, + "label": "ozone", + "type": "double", + "name": "payload_fields_ozone", + "annotations": { + "facetsort": ["-count"] + } + }, + { + "description": null, + "label": "particulateserr", + "type": "double", + "name": "payload_fields_particulateserr", + "annotations": { + "facetsort": ["-count"] + } + }, + { + "description": null, + "label": "particulatesvsn", + "type": "double", + "name": "payload_fields_particulatesvsn", + "annotations": { + "facetsort": ["-count"] + } + }, + { + "description": null, + "label": "peakspl", + "type": "double", + "name": "payload_fields_peakspl", + "annotations": { + "facetsort": ["-count"] + } + }, + { + "description": null, + "label": "pm1", + "type": "double", + "name": "payload_fields_pm1", + "annotations": { + "facetsort": ["-count"] + } + }, + { + "description": null, + "label": "pm10", + "type": "double", + "name": "payload_fields_pm10", + "annotations": { + "facetsort": ["-count"] + } + }, + { + "description": null, + "label": "pm25", + "type": "double", + "name": "payload_fields_pm25", + "annotations": { + "facetsort": ["-count"] + } + }, + { + "description": null, + "label": "temperature", + "type": "double", + "name": "payload_fields_temperature", + "annotations": { + "facetsort": ["-count"] + } + }, + { + "description": null, + "label": "vbatt", + "type": "double", + "name": "payload_fields_vbatt", + "annotations": { + "facetsort": ["-count"] + } + }, + { + "description": null, + "label": "vpanel", + "type": "double", + "name": "payload_fields_vpanel", + "annotations": { + "facetsort": ["-count"] + } + }, + { + "description": null, + "label": "fixstatus", + "type": "double", + "name": "payload_fields_fixstatus", + "annotations": { + "facetsort": ["-count"] + } + }, + { + "description": null, + "label": "hdop", + "type": "double", + "name": "payload_fields_hdop", + "annotations": { + "facetsort": ["-count"] + } + }, + { + "description": null, + "label": "nsat", + "type": "double", + "name": "payload_fields_nsat", + "annotations": { + "facetsort": ["-count"] + } + }, + { + "description": null, + "label": "Geolocation", + "type": "geo_point_2d", + "name": "geolocation", + "annotations": {} + }, + { + "description": null, + "label": "organisation", + "type": "text", + "name": "organisation", + "annotations": {} + } + ], + "metas": { + "default": { + "records_count": 29306, + "modified": "2020-12-07T05:27:41+00:00", + "source_domain_address": null, + "references": null, + "keyword": ["weather"], + "source_domain_title": null, + "geographic_reference": ["au_80_11978", "au_80_10780"], + "timezone": null, + "title": "Environmental sensors", + "parent_domain": "westernparklands", + "theme": ["Environmental Protection"], + "modified_updates_on_data_change": false, + "metadata_processed": "2021-06-18T06:00:13.031000+00:00", + "data_processed": "2021-06-18T05:50:48+00:00", + "territory": ["Ingleburn", "Campbelltown (NSW)"], + "description": "

          Two environmental monitoring stations (EMS) were installed in December 2020. The EMS measures: particulate matter (PM 1.0, PM 2.5, PM 10), Nitrogen Dioxide, Carbon Monoxide, Ozone, temperature, relative humidity, and ambient noise.\u00a0

          ", + "modified_updates_on_metadata_change": false, + "shared_catalog": null, + "source_domain": null, + "attributions": null, + "geographic_area_mode": null, + "geographic_reference_auto": true, + "geographic_area": null, + "publisher": "Campbelltown City Council", + "language": "en", + "license": "CC BY", + "source_dataset": null, + "metadata_languages": ["en"], + "oauth_scope": null, + "federated": false, + "license_url": "https://creativecommons.org/licenses/by/4.0/" + } + }, + "features": ["geo", "analyze", "timeserie"] + } + }, + { + "links": [ + { + "href": "https://www.campbelltownopendataportal.com.au/api/v2/catalog/datasets/campelltown-business-directory", + "rel": "self" + }, + { + "href": "https://www.campbelltownopendataportal.com.au/api/v2/catalog/datasets", + "rel": "datasets" + }, + { + "href": "https://www.campbelltownopendataportal.com.au/api/v2/catalog/datasets/campelltown-business-directory/records", + "rel": "records" + }, + { + "href": "https://www.campbelltownopendataportal.com.au/api/v2/catalog/datasets/campelltown-business-directory/exports", + "rel": "exports" + }, + { + "href": "https://www.campbelltownopendataportal.com.au/api/v2/catalog/datasets/campelltown-business-directory/aggregates", + "rel": "aggregate" + }, + { + "href": "https://www.campbelltownopendataportal.com.au/api/v2/catalog/datasets/campelltown-business-directory/facets", + "rel": "facets" + } + ], + "dataset": { + "dataset_id": "campelltown-business-directory", + "dataset_uid": "da_bper3a", + "attachments": [], + "has_records": true, + "data_visible": true, + "fields": [ + { + "description": null, + "label": "Business name", + "type": "text", + "name": "business_name", + "annotations": { + "facet": [] + } + }, + { + "description": null, + "label": "Street address", + "type": "text", + "name": "street_address", + "annotations": {} + }, + { + "description": null, + "label": "Suburb", + "type": "text", + "name": "suburb", + "annotations": {} + }, + { + "description": null, + "label": "State", + "type": "text", + "name": "state", + "annotations": {} + }, + { + "description": null, + "label": "Postcode", + "type": "text", + "name": "postcode", + "annotations": { + "facetsort": ["-count"] + } + }, + { + "description": null, + "label": "Phone number", + "type": "text", + "name": "phone_number", + "annotations": {} + }, + { + "description": null, + "label": "lat_long", + "type": "geo_point_2d", + "name": "lat_long", + "annotations": { + "facetsort": ["-count"] + } + }, + { + "description": null, + "label": "Business email", + "type": "text", + "name": "business_email", + "annotations": {} + }, + { + "description": null, + "label": "Website", + "type": "text", + "name": "website", + "annotations": {} + }, + { + "description": null, + "label": "Instagram", + "type": "text", + "name": "instagram", + "annotations": {} + }, + { + "description": null, + "label": "Facebook", + "type": "text", + "name": "facebook", + "annotations": {} + }, + { + "description": null, + "label": "Type of business", + "type": "text", + "name": "type_of_business", + "annotations": { + "facet": [] + } + }, + { + "description": null, + "label": "Cuisine type", + "type": "text", + "name": "cuisine_type", + "annotations": { + "facet": [] + } + }, + { + "description": null, + "label": "Describe your business, product or service.", + "type": "text", + "name": "describe_your_business_product_or_service", + "annotations": {} + }, + { + "description": null, + "label": "Operating days", + "type": "text", + "name": "operating_days", + "annotations": {} + }, + { + "description": null, + "label": "Delivery", + "type": "text", + "name": "delivery", + "annotations": { + "facet": [] + } + }, + { + "description": null, + "label": "Take out", + "type": "text", + "name": "take_out", + "annotations": { + "facet": [] + } + }, + { + "description": null, + "label": "Online sales", + "type": "text", + "name": "online_sales", + "annotations": { + "facet": [] + } + } + ], + "metas": { + "default": { + "records_count": 172, + "modified": "2021-03-19T02:18:51+00:00", + "source_domain_address": null, + "references": null, + "keyword": [ + "Buy Local", + "Campbelltown City Council", + "Local Businesses" + ], + "source_domain_title": null, + "geographic_reference": ["au_60_11500"], + "timezone": "Australia/Sydney", + "title": "Local Business Directory - Campbelltown", + "parent_domain": "westernparklands", + "theme": ["Investment, Tourism and Growth"], + "modified_updates_on_data_change": true, + "metadata_processed": "2021-03-19T02:18:52.513000+00:00", + "data_processed": "2021-03-19T02:18:51+00:00", + "territory": ["Campbelltown"], + "description": "

          Our local businesses are the heartbeat of our community. To support our local businesses, we encourage our community to use the local business directory to spend local, to keep jobs local.\u00a0\u00a0

          If you are a business in the Campbelltown City Council local government area add yourself to our business directory.

          ", + "modified_updates_on_metadata_change": false, + "shared_catalog": null, + "source_domain": null, + "attributions": null, + "geographic_area_mode": null, + "geographic_reference_auto": true, + "geographic_area": null, + "publisher": "Campbelltown City Council", + "language": "en", + "license": "CC BY", + "source_dataset": null, + "metadata_languages": ["en"], + "oauth_scope": null, + "federated": false, + "license_url": "https://creativecommons.org/licenses/by/4.0/" + } + }, + "features": ["analyze", "geo", "custom_view"] + } + }, + { + "links": [ + { + "href": "https://www.campbelltownopendataportal.com.au/api/v2/catalog/datasets/ccc-combined-facilities-list-excluding-family-day-care-centres", + "rel": "self" + }, + { + "href": "https://www.campbelltownopendataportal.com.au/api/v2/catalog/datasets", + "rel": "datasets" + }, + { + "href": "https://www.campbelltownopendataportal.com.au/api/v2/catalog/datasets/ccc-combined-facilities-list-excluding-family-day-care-centres/records", + "rel": "records" + }, + { + "href": "https://www.campbelltownopendataportal.com.au/api/v2/catalog/datasets/ccc-combined-facilities-list-excluding-family-day-care-centres/exports", + "rel": "exports" + }, + { + "href": "https://www.campbelltownopendataportal.com.au/api/v2/catalog/datasets/ccc-combined-facilities-list-excluding-family-day-care-centres/aggregates", + "rel": "aggregate" + }, + { + "href": "https://www.campbelltownopendataportal.com.au/api/v2/catalog/datasets/ccc-combined-facilities-list-excluding-family-day-care-centres/facets", + "rel": "facets" + } + ], + "dataset": { + "dataset_id": "ccc-combined-facilities-list-excluding-family-day-care-centres", + "dataset_uid": "da_tin2td", + "attachments": [], + "has_records": true, + "data_visible": true, + "fields": [ + { + "description": null, + "label": "Name", + "type": "text", + "name": "site_name", + "annotations": {} + }, + { + "description": null, + "label": "Short description", + "type": "text", + "name": "short_description", + "annotations": {} + }, + { + "description": null, + "label": "Service, Facility & POI", + "type": "text", + "name": "service_or_facility_type", + "annotations": { + "facet": [] + } + }, + { + "description": null, + "label": "Opening hours", + "type": "text", + "name": "opening_hours", + "annotations": {} + }, + { + "description": null, + "label": "Things to do", + "type": "text", + "name": "things_to_do", + "annotations": { + "facet": [], + "disjunctive": [] + } + }, + { + "description": null, + "label": "Key Features", + "type": "text", + "name": "key_features", + "annotations": { + "facet": [] + } + }, + { + "description": null, + "label": "Contact", + "type": "text", + "name": "contact", + "annotations": {} + }, + { + "description": null, + "label": "Phone", + "type": "text", + "name": "phone", + "annotations": {} + }, + { + "description": null, + "label": "Email", + "type": "text", + "name": "email", + "annotations": {} + }, + { + "description": null, + "label": "Website URL", + "type": "text", + "name": "website_url", + "annotations": {} + }, + { + "description": null, + "label": "Street address", + "type": "text", + "name": "street_address", + "annotations": {} + }, + { + "description": null, + "label": "Suburb", + "type": "text", + "name": "suburb", + "annotations": { + "facet": [] + } + }, + { + "description": null, + "label": "Postcode", + "type": "double", + "name": "postcode", + "annotations": {} + }, + { + "description": null, + "label": "Additional location information", + "type": "text", + "name": "additional_location_information", + "annotations": {} + }, + { + "description": null, + "label": "Latitude", + "type": "double", + "name": "latitude", + "annotations": {} + }, + { + "description": null, + "label": "Longitude", + "type": "double", + "name": "longitude", + "annotations": {} + }, + { + "description": null, + "label": "Location", + "type": "geo_point_2d", + "name": "site_location", + "annotations": { + "facetsort": ["-count"] + } + } + ], + "metas": { + "default": { + "records_count": 485, + "modified": "2020-08-04T06:21:57+00:00", + "source_domain_address": null, + "references": null, + "keyword": [ + "Libraries", + "Parks", + "Sports Grounds", + "Recreation", + "Child Care", + "Art Centre", + "Culture", + "Leisure Centres", + "Acquatics", + "Fitness", + "Indoor Sports", + "Facilities for Hire", + "Animal Care Facility", + "Sports Stadium", + "Athletics Centre", + "Campbelltown City Council" + ], + "source_domain_title": null, + "geographic_reference": ["au_60_11500", "au_60_18400"], + "timezone": null, + "title": "Services, Facilities & POI - Campbelltown", + "parent_domain": "westernparklands", + "theme": [ + "Arts and Culture", + "Community, Events and Education", + "Parks and Recreation", + "City Planning and Amenities", + "Governance and Administration" + ], + "modified_updates_on_data_change": false, + "metadata_processed": "2021-02-19T02:05:18.161000+00:00", + "data_processed": "2021-02-19T02:05:17+00:00", + "territory": ["Campbelltown", "Wollondilly"], + "description": "

          We provide a wide range of services and facilities including Libraries; Parks, Sport & Recreation; Child Care; Arts & Culture; Aquatics, Fitness & Indoor Sports; Facilities for Hire; Animal Care Facility; Sports Stadium & Athletics Centre.

          ", + "modified_updates_on_metadata_change": false, + "shared_catalog": null, + "source_domain": null, + "attributions": null, + "geographic_area_mode": null, + "geographic_reference_auto": true, + "geographic_area": null, + "publisher": "Campbelltown City Council", + "language": "en", + "license": "CC BY", + "source_dataset": null, + "metadata_languages": ["en"], + "oauth_scope": null, + "federated": false, + "license_url": "https://creativecommons.org/licenses/by/4.0/" + } + }, + "features": ["analyze", "geo", "custom_view"] + } + }, + { + "links": [ + { + "href": "https://www.campbelltownopendataportal.com.au/api/v2/catalog/datasets/vulnerability", + "rel": "self" + }, + { + "href": "https://www.campbelltownopendataportal.com.au/api/v2/catalog/datasets", + "rel": "datasets" + }, + { + "href": "https://www.campbelltownopendataportal.com.au/api/v2/catalog/datasets/vulnerability/records", + "rel": "records" + }, + { + "href": "https://www.campbelltownopendataportal.com.au/api/v2/catalog/datasets/vulnerability/exports", + "rel": "exports" + }, + { + "href": "https://www.campbelltownopendataportal.com.au/api/v2/catalog/datasets/vulnerability/aggregates", + "rel": "aggregate" + }, + { + "href": "https://www.campbelltownopendataportal.com.au/api/v2/catalog/datasets/vulnerability/facets", + "rel": "facets" + } + ], + "dataset": { + "dataset_id": "vulnerability", + "dataset_uid": "da_uy1qtz", + "attachments": [], + "has_records": true, + "data_visible": true, + "fields": [ + { + "description": null, + "label": "Geo Point", + "type": "geo_point_2d", + "name": "geo_point_2d", + "annotations": {} + }, + { + "description": null, + "label": "Geo Shape", + "type": "geo_shape", + "name": "geo_shape", + "annotations": {} + }, + { + "description": null, + "label": "primaryindex", + "type": "text", + "name": "primaryindex", + "annotations": {} + }, + { + "description": null, + "label": "sa1_7digitcode_2016", + "type": "text", + "name": "sa1_7digitcode_2016", + "annotations": {} + }, + { + "description": null, + "label": "SA1", + "type": "text", + "name": "sa1", + "annotations": {} + }, + { + "description": null, + "label": "_0_to_4_years__Number_of_PEOPLE", + "type": "int", + "name": "_0_to_4_years_number_of_people", + "annotations": { + "facetsort": ["-count"] + } + }, + { + "description": null, + "label": "_0_to_4_years_Percent", + "type": "double", + "name": "_0_to_4_years_percent", + "annotations": {} + }, + { + "description": null, + "label": "Total_population", + "type": "double", + "name": "total_population", + "annotations": {} + }, + { + "description": null, + "label": "_65_years_and_over_Number_of_PE", + "type": "int", + "name": "_65_years_and_over_number_of_pe", + "annotations": { + "facetsort": ["-count"] + } + }, + { + "description": null, + "label": "_65_years_and_over__Percent", + "type": "double", + "name": "_65_years_and_over_percent", + "annotations": {} + }, + { + "description": null, + "label": "Total_population_of_SA1", + "type": "double", + "name": "total_population_of_sa1", + "annotations": {} + }, + { + "description": null, + "label": "Not_fluent_in_English_Number_o", + "type": "int", + "name": "not_fluent_in_english_number_o", + "annotations": { + "facetsort": ["-count"] + } + }, + { + "description": null, + "label": "Not_fluent_in_English_Percent_", + "type": "double", + "name": "not_fluent_in_english_percent", + "annotations": {} + }, + { + "description": null, + "label": "Total_pop", + "type": "double", + "name": "total_pop", + "annotations": {} + }, + { + "description": null, + "label": "Low_income__650_w__Number_of_H", + "type": "int", + "name": "low_income_650_w_number_of_h", + "annotations": { + "facetsort": ["-count"] + } + }, + { + "description": null, + "label": "Low_income__650_w__Percent_of_", + "type": "double", + "name": "low_income_650_w_percent_of", + "annotations": {} + }, + { + "description": null, + "label": "Households", + "type": "int", + "name": "households", + "annotations": { + "facetsort": ["-count"] + } + }, + { + "description": null, + "label": "Housing_stress_Number_of_HOUSE", + "type": "int", + "name": "housing_stress_number_of_house", + "annotations": { + "facetsort": ["-count"] + } + }, + { + "description": null, + "label": "Housing_stress_Percent_of_HOUS", + "type": "double", + "name": "housing_stress_percent_of_hous", + "annotations": {} + }, + { + "description": null, + "label": "Housing_stress_Households", + "type": "int", + "name": "housing_stress_households", + "annotations": { + "facetsort": ["-count"] + } + }, + { + "description": null, + "label": "Mortgage_stress_Number_of_HOUS", + "type": "int", + "name": "mortgage_stress_number_of_hous", + "annotations": { + "facetsort": ["-count"] + } + }, + { + "description": null, + "label": "Mortgage_stress_Percent_of_HOU", + "type": "int", + "name": "mortgage_stress_percent_of_hou", + "annotations": { + "facetsort": ["-count"] + } + }, + { + "description": null, + "label": "Households1", + "type": "int", + "name": "households1", + "annotations": { + "facetsort": ["-count"] + } + }, + { + "description": null, + "label": "Rental_stress_Number_of_HOUSEH", + "type": "int", + "name": "rental_stress_number_of_househ", + "annotations": { + "facetsort": ["-count"] + } + }, + { + "description": null, + "label": "Rental_stress_Percent_of_HOUSE", + "type": "double", + "name": "rental_stress_percent_of_house", + "annotations": { + "facetsort": ["-count"] + } + }, + { + "description": null, + "label": "Households2", + "type": "int", + "name": "households2", + "annotations": { + "facetsort": ["-count"] + } + } + ], + "metas": { + "default": { + "records_count": 386, + "modified": "2020-09-17T23:44:13+00:00", + "source_domain_address": null, + "references": null, + "keyword": null, + "source_domain_title": null, + "geographic_reference": ["au_60_11500"], + "timezone": null, + "title": "Vulnerability", + "parent_domain": "westernparklands", + "theme": ["Community, Events and Education"], + "modified_updates_on_data_change": false, + "metadata_processed": "2021-04-05T22:51:07.462000+00:00", + "data_processed": "2021-04-05T22:51:06+00:00", + "territory": ["Campbelltown"], + "description": "

          Vulnerability dataset provides statistics on the multiple stressors and shocks within\nthe community including population, social, and economic factors. Data\ncomponents include Population (Susceptible groups); Social (Language); Economic\nstress (Income, Household, Mortgage, Rental).

          ", + "modified_updates_on_metadata_change": false, + "shared_catalog": null, + "source_domain": null, + "attributions": null, + "geographic_area_mode": null, + "geographic_reference_auto": true, + "geographic_area": null, + "publisher": null, + "language": "en", + "license": null, + "source_dataset": null, + "metadata_languages": ["en"], + "oauth_scope": null, + "federated": false, + "license_url": null + } + }, + "features": ["analyze", "geo", "custom_view"] + } + }, + { + "links": [ + { + "href": "https://www.campbelltownopendataportal.com.au/api/v2/catalog/datasets/campbelltown_garbage_runs", + "rel": "self" + }, + { + "href": "https://www.campbelltownopendataportal.com.au/api/v2/catalog/datasets", + "rel": "datasets" + }, + { + "href": "https://www.campbelltownopendataportal.com.au/api/v2/catalog/datasets/campbelltown_garbage_runs/records", + "rel": "records" + }, + { + "href": "https://www.campbelltownopendataportal.com.au/api/v2/catalog/datasets/campbelltown_garbage_runs/exports", + "rel": "exports" + }, + { + "href": "https://www.campbelltownopendataportal.com.au/api/v2/catalog/datasets/campbelltown_garbage_runs/aggregates", + "rel": "aggregate" + }, + { + "href": "https://www.campbelltownopendataportal.com.au/api/v2/catalog/datasets/campbelltown_garbage_runs/facets", + "rel": "facets" + } + ], + "dataset": { + "dataset_id": "campbelltown_garbage_runs", + "dataset_uid": "da_tduomw", + "attachments": [], + "has_records": true, + "data_visible": true, + "fields": [ + { + "description": null, + "label": "Geo Point", + "type": "geo_point_2d", + "name": "geo_point_2d", + "annotations": {} + }, + { + "description": null, + "label": "Geo Shape", + "type": "geo_shape", + "name": "geo_shape", + "annotations": {} + }, + { + "description": null, + "label": "genamap_ta", + "type": "text", + "name": "genamap_ta", + "annotations": { + "facet": [], + "disjunctive": [] + } + }, + { + "description": null, + "label": "day", + "type": "text", + "name": "day", + "annotations": {} + }, + { + "description": null, + "label": "council", + "type": "text", + "name": "council", + "annotations": {} + }, + { + "description": null, + "label": "free_text", + "type": "text", + "name": "free_text", + "annotations": {} + } + ], + "metas": { + "default": { + "records_count": 10, + "modified": "2020-08-13T01:56:34+00:00", + "source_domain_address": null, + "references": null, + "keyword": [ + "waste", + "collection zones", + "bins", + "garbage", + "garden", + "organics", + "recycling", + "recycle", + "Campbelltown City Council", + "Waste Service", + "Waste Collection", + "Bin Collection", + "Western Parkland city Waste Collection" + ], + "source_domain_title": null, + "geographic_reference": ["au_60_11500"], + "timezone": "Australia/Sydney", + "title": "Waste Bin Collection Zones - Campbelltown", + "parent_domain": "westernparklands", + "theme": ["Waste and Recycling"], + "modified_updates_on_data_change": false, + "metadata_processed": "2021-03-10T00:22:08.651000+00:00", + "data_processed": "2021-02-11T09:55:21+00:00", + "territory": ["Campbelltown"], + "description": "

          Waste bin collection is just one of the key services Council do for our community.\u00a0 Waste bin collection zones provide the collection day information.

          Data Currency
          Council will endeavour to refresh the dataset every six months until such time we can integrate our systems.\u00a0\u00a0

          This dataset is due to be refreshed in September 2021.

          Data Accuracy\u00a0
          The spatial accuracy of this information is reliant upon the NSW Spatial Services cadastre datasets. Dataset information is sourced from the Campbelltown City Council GIS dataset.\u00a0 All information is provided and updated by the various stakeholders and custodians within the Council.


          ", + "modified_updates_on_metadata_change": false, + "shared_catalog": null, + "source_domain": null, + "attributions": null, + "geographic_area_mode": null, + "geographic_reference_auto": true, + "geographic_area": null, + "publisher": "Campbelltown City Council", + "language": "en", + "license": "CC BY", + "source_dataset": null, + "metadata_languages": ["en"], + "oauth_scope": null, + "federated": false, + "license_url": "https://creativecommons.org/licenses/by/4.0/" + } + }, + "features": ["analyze", "geo", "custom_view"] + } + } + ] +} From fa8d2d50c1c99c101c227f232d4df7b32b835f94 Mon Sep 17 00:00:00 2001 From: glughi Date: Thu, 20 Oct 2022 15:30:08 +0200 Subject: [PATCH 078/215] Fix merge --- CHANGES.md | 1 + lib/Models/SearchProviders/RerSearchProvider.ts | 10 ++++------ lib/ReactViews/Map/MenuBar.jsx | 7 ++++++- 3 files changed, 11 insertions(+), 7 deletions(-) diff --git a/CHANGES.md b/CHANGES.md index 7581d89e365..6405387fadc 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -39,6 +39,7 @@ #### next release (8.2.14) #### next release (8.2.16) + #### next release (8.2.21) - [The next improvement] diff --git a/lib/Models/SearchProviders/RerSearchProvider.ts b/lib/Models/SearchProviders/RerSearchProvider.ts index 5e3fb3ba01c..5259b341b98 100644 --- a/lib/Models/SearchProviders/RerSearchProvider.ts +++ b/lib/Models/SearchProviders/RerSearchProvider.ts @@ -41,12 +41,10 @@ export default class RerSearchProvider extends SearchProvider { }*/ this.flightDurationSeconds = defaultValue(options.flightDurationSeconds, 3); - this.urlHandle = this.terria.corsProxy.getURL( - "https://servizigis.regione.emilia-romagna.it/normalizzatore/eGeoCoding?serviceType=DBServices&serviceName=Normalizzatore&message=GetHandle" - ); - this.urlAddress = this.terria.corsProxy.getURL( - "https://servizigis.regione.emilia-romagna.it/normalizzatore/eGeoCoding?serviceType=DBServices&serviceName=Normalizzatore&message=Norm_Indirizzo_Unico" - ); + this.urlHandle = + "https://servizigis.regione.emilia-romagna.it/normalizzatore/eGeoCoding?serviceType=DBServices&serviceName=Normalizzatore&message=GetHandle"; + this.urlAddress = + "https://servizigis.regione.emilia-romagna.it/normalizzatore/eGeoCoding?serviceType=DBServices&serviceName=Normalizzatore&message=Norm_Indirizzo_Unico"; this.bodyHandle = JSON.stringify({ GetHandleInputParams: { p_Username: "commercio", diff --git a/lib/ReactViews/Map/MenuBar.jsx b/lib/ReactViews/Map/MenuBar.jsx index 47efc49bda0..aa9bd7be28f 100644 --- a/lib/ReactViews/Map/MenuBar.jsx +++ b/lib/ReactViews/Map/MenuBar.jsx @@ -75,7 +75,12 @@ const MenuBar = observer((props) => {
        • - +
        • + +
        • +
        • + +
        • {terria.configParameters?.languageConfiguration?.enabled ? (
        • Date: Fri, 21 Oct 2022 14:06:41 +0200 Subject: [PATCH 079/215] Update repo url --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index e9fbc0d32b2..d4f47049e79 100644 --- a/package.json +++ b/package.json @@ -8,7 +8,7 @@ }, "repository": { "type": "git", - "url": "http://github.com/bioretics/rer3d-terriajs" + "url": "http://github.com/bioretics/terriajs" }, "config": { "docRepo": "git@github.com:TerriaJS/Documentation.git" From c018358a3e12ef466b4ee22622db5cecbb5ee515 Mon Sep 17 00:00:00 2001 From: glughi Date: Wed, 9 Nov 2022 17:50:58 +0100 Subject: [PATCH 080/215] Change zoom movement amount in Leaflet --- lib/Models/Leaflet.ts | 2 +- lib/ReactViews/Map/Navigation/Items/ZoomControl.tsx | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/Models/Leaflet.ts b/lib/Models/Leaflet.ts index 4f2e0b26c87..5a2398daf82 100644 --- a/lib/Models/Leaflet.ts +++ b/lib/Models/Leaflet.ts @@ -149,7 +149,7 @@ export default class Leaflet extends GlobeOrMap { this.map = L.map(container, { zoomControl: false, attributionControl: false, - zoomSnap: 1, // Change to 0.2 for incremental zoom when Chrome fixes canvas scaling gaps + zoomSnap: 0.2, // Change to 0.2 for incremental zoom when Chrome fixes canvas scaling gaps preferCanvas: true, worldCopyJump: false }).setView([-28.5, 135], 5); diff --git a/lib/ReactViews/Map/Navigation/Items/ZoomControl.tsx b/lib/ReactViews/Map/Navigation/Items/ZoomControl.tsx index f24bf3533df..2c86d605f0c 100644 --- a/lib/ReactViews/Map/Navigation/Items/ZoomControl.tsx +++ b/lib/ReactViews/Map/Navigation/Items/ZoomControl.tsx @@ -114,7 +114,7 @@ class ZoomControl extends React.Component { this.props.terria.analytics?.logEvent(Category.view, ViewAction.zoomIn); if (isDefined(this.props.terria.leaflet)) { - this.props.terria.leaflet.map.zoomIn(0.5); + this.props.terria.leaflet.map.zoomIn(); } if (isDefined(this.props.terria.cesium)) { @@ -147,7 +147,7 @@ class ZoomControl extends React.Component { this.props.terria.analytics?.logEvent(Category.view, ViewAction.zoomOut); if (isDefined(this.props.terria.leaflet)) { - this.props.terria.leaflet.map.zoomOut(0.5); + this.props.terria.leaflet.map.zoomOut(); } if (isDefined(this.props.terria.cesium)) { From 27b656588a48911fed28def8fb33cffbc7715cfe Mon Sep 17 00:00:00 2001 From: glughi Date: Wed, 9 Nov 2022 17:57:06 +0100 Subject: [PATCH 081/215] Fix merge of multiple init files workbench --- lib/Models/Terria.ts | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/lib/Models/Terria.ts b/lib/Models/Terria.ts index 890c367cfd6..52f61a02435 100644 --- a/lib/Models/Terria.ts +++ b/lib/Models/Terria.ts @@ -1764,7 +1764,12 @@ export default class Terria { } } - runInAction(() => (this.workbench.items = newItems)); + runInAction( + () => + (this.workbench.items = [ + ...new Set([...this.workbench.items, ...newItems]) + ]) + ); // For ids that don't correspond to models resolve an id by share keys const timelineWithShareKeysResolved = new Set( From 430365c9be0b25731a56a51425b067064ea4b117 Mon Sep 17 00:00:00 2001 From: glughi Date: Thu, 10 Nov 2022 17:55:14 +0100 Subject: [PATCH 082/215] Fix width of "Add data from web" button --- lib/ReactViews/ExplorerWindow/Tabs/MyDataTab/add-data.scss | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/ReactViews/ExplorerWindow/Tabs/MyDataTab/add-data.scss b/lib/ReactViews/ExplorerWindow/Tabs/MyDataTab/add-data.scss index 10ac31ca230..b2453311637 100644 --- a/lib/ReactViews/ExplorerWindow/Tabs/MyDataTab/add-data.scss +++ b/lib/ReactViews/ExplorerWindow/Tabs/MyDataTab/add-data.scss @@ -41,7 +41,7 @@ .url-input { &__text-box { composes: field from "../../../../Sass/common/_form.scss"; - width: calc(100% - 50px); + width: calc(100% - 77px); float: left; font-family: $font-base; } @@ -51,7 +51,7 @@ composes: btn-transparent from "../../../../Sass/common/_buttons.scss"; composes: btn-primary from "../../../../Sass/common/_buttons.scss"; - width: 50px; + width: 77px; float: left; } } From 0505fdf3a44d9b97ae282cfdfba5d5e490fb68fb Mon Sep 17 00:00:00 2001 From: glughi Date: Mon, 21 Nov 2022 15:42:19 +0100 Subject: [PATCH 083/215] Share link URL now use web init/catalog files. --- lib/ReactViews/Map/Panels/SharePanel/BuildShareLink.ts | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/lib/ReactViews/Map/Panels/SharePanel/BuildShareLink.ts b/lib/ReactViews/Map/Panels/SharePanel/BuildShareLink.ts index 308bafc2c89..a95075fb076 100644 --- a/lib/ReactViews/Map/Panels/SharePanel/BuildShareLink.ts +++ b/lib/ReactViews/Map/Panels/SharePanel/BuildShareLink.ts @@ -38,9 +38,10 @@ function buildBaseShareUrl( terria: Terria, hashParams: { [key: string]: string } ) { - const uri = new URI(document.baseURI).fragment("").search(""); + //const uri = new URI(document.baseURI).fragment("").search(""); + const uri = new URL(document.URL); - if (terria.developmentEnv) { + /*if (terria.developmentEnv) { uri.addSearch(toJS(terria.userProperties)); } else { userPropsToShare.forEach((key) => @@ -50,7 +51,9 @@ function buildBaseShareUrl( uri.addSearch(hashParams); - return uri.fragment(uri.query()).query("").toString(); + return uri.fragment(uri.query()).query("").toString();*/ + const params = new URLSearchParams(hashParams); + return new URL(`${uri.href}${uri.href.includes("#") ? "&" : "#"}${params.toString()}`).toString(); } /** From c83369e5ee5a9d9aa5c8be78389c97bebcda90ee Mon Sep 17 00:00:00 2001 From: glughi Date: Fri, 16 Dec 2022 11:26:29 +0100 Subject: [PATCH 084/215] Add RerSearchProvider call with bbox --- .../SearchProviders/RerSearchProvider.ts | 324 +++++++++++------- 1 file changed, 202 insertions(+), 122 deletions(-) diff --git a/lib/Models/SearchProviders/RerSearchProvider.ts b/lib/Models/SearchProviders/RerSearchProvider.ts index 5259b341b98..f2a3f0fce59 100644 --- a/lib/Models/SearchProviders/RerSearchProvider.ts +++ b/lib/Models/SearchProviders/RerSearchProvider.ts @@ -1,11 +1,9 @@ import { observable, runInAction } from "mobx"; import defaultValue from "terriajs-cesium/Source/Core/defaultValue"; -import defined from "terriajs-cesium/Source/Core/defined"; import Ellipsoid from "terriajs-cesium/Source/Core/Ellipsoid"; import CesiumMath from "terriajs-cesium/Source/Core/Math"; import Rectangle from "terriajs-cesium/Source/Core/Rectangle"; import Resource from "terriajs-cesium/Source/Core/Resource"; -import loadJsonp from "../../Core/loadJsonp"; import SearchProvider from "./SearchProvider"; import SearchResult from "./SearchResult"; import Terria from "../Terria"; @@ -15,19 +13,23 @@ import { Category, SearchAction } from "../../Core/AnalyticEvents/analyticEvents"; +import Cartesian2 from "terriajs-cesium/Source/Core/Cartesian2"; interface RerSearchProviderOptions { terria: Terria; flightDurationSeconds?: number; } +const GET_HANDLE_URL = + "https://servizigis.regione.emilia-romagna.it/normalizzatore/eGeoCoding?serviceType=DBServices&serviceName=Normalizzatore&message=GetHandle"; +const NORM_ADDRESS_URL = + "https://servizigis.regione.emilia-romagna.it/normalizzatore/eGeoCoding?serviceType=DBServices&serviceName=Normalizzatore&message=Norm_Indirizzo_Unico"; +const NORM_ADDRESS_AREA_URL = + "https://servizigistest.regione.emilia-romagna.it/normalizzatore/eGeoCoding?serviceType=DBServices&serviceName=Normalizzatore&message=Norm_Indirizzo_Unico_Area"; + export default class RerSearchProvider extends SearchProvider { readonly terria: Terria; @observable flightDurationSeconds: number; - @observable urlHandle: string; - @observable urlAddress: string; - @observable bodyHandle: string; - @observable bodyAddressTemplate: string; @observable handle: string; constructor(options: RerSearchProviderOptions) { @@ -36,29 +38,7 @@ export default class RerSearchProvider extends SearchProvider { this.terria = options.terria; this.name = "Servizi RER"; - /*if (this.url.length > 0 && this.url[this.url.length - 1] !== "/") { - this.url += "/"; - }*/ this.flightDurationSeconds = defaultValue(options.flightDurationSeconds, 3); - - this.urlHandle = - "https://servizigis.regione.emilia-romagna.it/normalizzatore/eGeoCoding?serviceType=DBServices&serviceName=Normalizzatore&message=GetHandle"; - this.urlAddress = - "https://servizigis.regione.emilia-romagna.it/normalizzatore/eGeoCoding?serviceType=DBServices&serviceName=Normalizzatore&message=Norm_Indirizzo_Unico"; - this.bodyHandle = JSON.stringify({ - GetHandleInputParams: { - p_Username: "commercio", - p_Userpassword: "MAy64T7cc76ASn3CaJX8" - } - }); - this.bodyAddressTemplate = JSON.stringify({ - Norm_Indirizzo_UnicoInputParams: { - p_Indirizzo: "$1", - p_Tipo_Coord: "WGS84", - p_Rif_Geo_Civ: "ECIV", - p_Handle: "$2" - } - }); this.handle = ""; } @@ -66,10 +46,15 @@ export default class RerSearchProvider extends SearchProvider { var that = this; return Resource.post({ - url: this.urlHandle, - data: this.bodyHandle, + url: GET_HANDLE_URL, + data: JSON.stringify({ + GetHandleInputParams: { + p_Username: "commercio", + p_Userpassword: "MAy64T7cc76ASn3CaJX8" + } + }), headers: { - soapAction: this.urlHandle, + soapAction: GET_HANDLE_URL, "Content-Type": "application/json" } }) @@ -82,6 +67,110 @@ export default class RerSearchProvider extends SearchProvider { }); } + parseResults(results: any): any[] { + const idSet = new Set(); + const locations: any[] = []; + + results.forEach( + (element: { + sTRADARIO_ID: string; + cIVICO_X: string; + cENTR_X: string; + cIVICO_Y: string; + cENTR_Y: string; + dUG: string; + dENOMINAZIONE: string; + dESCRIZIONE_CIVICO: string; + cOMUNE: string; + pROVINCIA: string; + gR_AFFIDABILITA: string; + }) => { + if (!idSet.has(element.sTRADARIO_ID)) { + const isHouseNumber = element.cIVICO_X !== ""; + const centerX = parseFloat( + isHouseNumber ? element.cIVICO_X : element.cENTR_X + ); + const centerY = parseFloat( + isHouseNumber ? element.cIVICO_Y : element.cENTR_Y + ); + locations.push( + new SearchResult({ + name: + element.dUG + + " " + + element.dENOMINAZIONE + + (isHouseNumber ? " " + element.dESCRIZIONE_CIVICO : "") + + ", " + + element.cOMUNE + + ", " + + element.pROVINCIA, + isImportant: parseFloat(element.gR_AFFIDABILITA) < 1, + location: { + latitude: centerY, + longitude: centerX + }, + clickAction: createZoomToFunction( + this, + centerX, + centerY, + isHouseNumber + ) + }) + ); + idSet.add(element.sTRADARIO_ID); + } + } + ); + + return locations; + } + + computeSearchAreaRectangle(): Rectangle | undefined { + let minX: number = 0, + minY: number = 0, + maxX: number = 0, + maxY: number = 0; + + if (!!this.terria.cesium) { + const scene = this.terria?.cesium?.scene; + const camera = scene?.camera; + const canvas = scene?.canvas; + if (!!!camera || !!!canvas) { + return; + } + + const posUL2d = camera.pickEllipsoid( + new Cartesian2(0, 0), + Ellipsoid.WGS84 + ); + const posLR2d = camera.pickEllipsoid( + new Cartesian2(canvas.width, canvas.height), + Ellipsoid.WGS84 + ); + if (!!posUL2d && !!posLR2d) { + const posUL = Ellipsoid.WGS84.cartesianToCartographic(posUL2d); + const posLR = Ellipsoid.WGS84.cartesianToCartographic(posLR2d); + + return Rectangle.fromRadians( + posUL.longitude, + posLR.latitude, + posLR.longitude, + posUL.latitude + ); + } else { + return; + } + } else if (!!this.terria.leaflet) { + const bbox = this.terria.leaflet.map.getBounds(); + minX = bbox.getWest(); + minY = bbox.getSouth(); + maxX = bbox.getEast(); + maxY = bbox.getNorth(); + + return Rectangle.fromDegrees(minX, minY, maxX, maxY); + } else return; + } + protected async doSearch( searchText: string, searchResults: SearchProviderResults @@ -99,113 +188,104 @@ export default class RerSearchProvider extends SearchProvider { searchText ); - //let promise: Promise | undefined = Promise.resolve(); - let promise: Promise; - if (!!!this.handle) { - //promise = promise.then(() => this.getHandle(searchResults)); await this.getHandle(searchResults); } - await Resource.post({ - url: this.urlAddress, - data: this.bodyAddressTemplate - .replace("$1", searchText) - .replace("$2", this.handle), + const searchPromises = [ + /*Resource.post({ + url: NORM_ADDRESS_URL, + data: JSON.stringify({ + Norm_Indirizzo_UnicoInputParams: { + p_Indirizzo: searchText, + p_Tipo_Coord: "WGS84", + p_Rif_Geo_Civ: "ECIV", + p_Handle: this.handle + } + }), headers: { - soapAction: this.urlAddress, + soapAction: NORM_ADDRESS_URL, "Content-Type": "application/json" } - }) - ?.then((result) => { - const resObj = JSON.parse(result); + })*/ + ]; - if (searchResults.isCanceled) { - // A new search has superseded this one, so ignore the result. - return; - } + const rect = this.computeSearchAreaRectangle(); + + if ( + rect && + rect.width < 2 * CesiumMath.RADIANS_PER_DEGREE && + rect.height < 2 * CesiumMath.RADIANS_PER_DEGREE + ) { + searchPromises.unshift( + Resource.post({ + url: NORM_ADDRESS_AREA_URL, + data: JSON.stringify({ + Norm_Indirizzo_Unico_AreaInputParams: { + p_Indirizzo: searchText, + p_Tipo_Coord: "WGS84", + p_Rif_Geo_Civ: "ECIV", + p_Handle: this.handle, + p_minx: `${CesiumMath.toDegrees(rect.west)}`, + p_miny: `${CesiumMath.toDegrees(rect.south)}`, + p_maxx: `${CesiumMath.toDegrees(rect.east)}`, + p_maxy: `${CesiumMath.toDegrees(rect.north)}` + } + }), + headers: { + soapAction: NORM_ADDRESS_AREA_URL, + "Content-Type": "application/json" + } + }) + ); + } + try { + const results = await Promise.all(searchPromises); + + if (searchResults.isCanceled) { + // A new search has superseded this one, so ignore the result. + return; + } + + let resultsArray: any[] = []; + for (let i in results) { + const obj = JSON.parse(results[i]); if ( - resObj.norm_Indirizzo_UnicoOutput - .norm_Indirizzo_UnicoOutputRecordsetArray.length === 0 + obj?.norm_Indirizzo_UnicoOutput + ?.norm_Indirizzo_UnicoOutputRecordsetArray ) { - searchResults.message = i18next.t("viewModels.searchNoLocations"); - return; + resultsArray = [ + ...resultsArray, + ...obj.norm_Indirizzo_UnicoOutput + .norm_Indirizzo_UnicoOutputRecordsetArray + ]; } + } - const idSet = new Set(); - const locations: any[] = []; - - resObj.norm_Indirizzo_UnicoOutput.norm_Indirizzo_UnicoOutputRecordsetArray.forEach( - (element: { - sTRADARIO_ID: string; - cIVICO_X: string; - cENTR_X: string; - cIVICO_Y: string; - cENTR_Y: string; - dUG: string; - dENOMINAZIONE: string; - dESCRIZIONE_CIVICO: string; - cOMUNE: string; - pROVINCIA: string; - gR_AFFIDABILITA: string; - }) => { - if (!idSet.has(element.sTRADARIO_ID)) { - const isHouseNumber = element.cIVICO_X !== ""; - const centerX = parseFloat( - isHouseNumber ? element.cIVICO_X : element.cENTR_X - ); - const centerY = parseFloat( - isHouseNumber ? element.cIVICO_Y : element.cENTR_Y - ); - locations.push( - new SearchResult({ - name: - element.dUG + - " " + - element.dENOMINAZIONE + - (isHouseNumber ? " " + element.dESCRIZIONE_CIVICO : "") + - ", " + - element.cOMUNE + - ", " + - element.pROVINCIA, - isImportant: parseFloat(element.gR_AFFIDABILITA) < 1, - location: { - latitude: centerY, - longitude: centerX - }, - clickAction: createZoomToFunction( - this, - centerX, - centerY, - isHouseNumber - ) - }) - ); - idSet.add(element.sTRADARIO_ID); - } - } - ); + if (resultsArray.length === 0) { + searchResults.message = i18next.t("viewModels.searchNoLocations"); + return; + } - runInAction(() => { - searchResults.results.push(...locations); - }); + const locations = this.parseResults(resultsArray); - if (searchResults.results.length === 0) { - searchResults.message = i18next.t("viewModels.searchNoLocations"); - } - }) - .catch((err) => { - console.log("ERRORERRR"); - console.log(typeof err); - console.log(err); - - if (searchResults.isCanceled) { - // A new search has superseded this one, so ignore the result. - return; - } - searchResults.message = i18next.t("viewModels.searchErrorOccurred"); + runInAction(() => { + searchResults.results.push(...locations); }); + + if (searchResults.results.length === 0) { + searchResults.message = i18next.t("viewModels.searchNoLocations"); + } + } catch (err) { + console.log("ERROR"); + console.log(err); + if (searchResults.isCanceled) { + // A new search has superseded this one, so ignore the result. + return; + } + searchResults.message = i18next.t("viewModels.searchErrorOccurred"); + } } } From e1710dcd3c10778e527fd0c688cf00bf923d9a6d Mon Sep 17 00:00:00 2001 From: glughi Date: Fri, 16 Dec 2022 11:27:39 +0100 Subject: [PATCH 085/215] Prettify --- lib/ReactViews/Map/Panels/SharePanel/BuildShareLink.ts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/lib/ReactViews/Map/Panels/SharePanel/BuildShareLink.ts b/lib/ReactViews/Map/Panels/SharePanel/BuildShareLink.ts index a95075fb076..0e09ef9e4fb 100644 --- a/lib/ReactViews/Map/Panels/SharePanel/BuildShareLink.ts +++ b/lib/ReactViews/Map/Panels/SharePanel/BuildShareLink.ts @@ -53,7 +53,9 @@ function buildBaseShareUrl( return uri.fragment(uri.query()).query("").toString();*/ const params = new URLSearchParams(hashParams); - return new URL(`${uri.href}${uri.href.includes("#") ? "&" : "#"}${params.toString()}`).toString(); + return new URL( + `${uri.href}${uri.href.includes("#") ? "&" : "#"}${params.toString()}` + ).toString(); } /** From ace986e43d532828d5b92a01825b347b8a48d43e Mon Sep 17 00:00:00 2001 From: glughi Date: Fri, 16 Dec 2022 11:49:38 +0100 Subject: [PATCH 086/215] Fix commit c83369e --- .../SearchProviders/RerSearchProvider.ts | 28 +++++++++---------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/lib/Models/SearchProviders/RerSearchProvider.ts b/lib/Models/SearchProviders/RerSearchProvider.ts index f2a3f0fce59..8014de294f6 100644 --- a/lib/Models/SearchProviders/RerSearchProvider.ts +++ b/lib/Models/SearchProviders/RerSearchProvider.ts @@ -193,21 +193,21 @@ export default class RerSearchProvider extends SearchProvider { } const searchPromises = [ - /*Resource.post({ - url: NORM_ADDRESS_URL, - data: JSON.stringify({ - Norm_Indirizzo_UnicoInputParams: { - p_Indirizzo: searchText, - p_Tipo_Coord: "WGS84", - p_Rif_Geo_Civ: "ECIV", - p_Handle: this.handle + Resource.post({ + url: NORM_ADDRESS_URL, + data: JSON.stringify({ + Norm_Indirizzo_UnicoInputParams: { + p_Indirizzo: searchText, + p_Tipo_Coord: "WGS84", + p_Rif_Geo_Civ: "ECIV", + p_Handle: this.handle + } + }), + headers: { + soapAction: NORM_ADDRESS_URL, + "Content-Type": "application/json" } - }), - headers: { - soapAction: NORM_ADDRESS_URL, - "Content-Type": "application/json" - } - })*/ + }) ]; const rect = this.computeSearchAreaRectangle(); From ae65760e5b2c974eecc8c9e30fe8c99a6cbff9a6 Mon Sep 17 00:00:00 2001 From: glughi Date: Fri, 16 Dec 2022 13:11:20 +0100 Subject: [PATCH 087/215] Fix commit ace986e --- .../SearchProviders/RerSearchProvider.ts | 115 ++++++++++-------- 1 file changed, 64 insertions(+), 51 deletions(-) diff --git a/lib/Models/SearchProviders/RerSearchProvider.ts b/lib/Models/SearchProviders/RerSearchProvider.ts index 8014de294f6..dcc199a7ebb 100644 --- a/lib/Models/SearchProviders/RerSearchProvider.ts +++ b/lib/Models/SearchProviders/RerSearchProvider.ts @@ -71,56 +71,60 @@ export default class RerSearchProvider extends SearchProvider { const idSet = new Set(); const locations: any[] = []; - results.forEach( - (element: { - sTRADARIO_ID: string; - cIVICO_X: string; - cENTR_X: string; - cIVICO_Y: string; - cENTR_Y: string; - dUG: string; - dENOMINAZIONE: string; - dESCRIZIONE_CIVICO: string; - cOMUNE: string; - pROVINCIA: string; - gR_AFFIDABILITA: string; - }) => { - if (!idSet.has(element.sTRADARIO_ID)) { - const isHouseNumber = element.cIVICO_X !== ""; - const centerX = parseFloat( - isHouseNumber ? element.cIVICO_X : element.cENTR_X - ); - const centerY = parseFloat( - isHouseNumber ? element.cIVICO_Y : element.cENTR_Y - ); - locations.push( - new SearchResult({ - name: - element.dUG + - " " + - element.dENOMINAZIONE + - (isHouseNumber ? " " + element.dESCRIZIONE_CIVICO : "") + - ", " + - element.cOMUNE + - ", " + - element.pROVINCIA, - isImportant: parseFloat(element.gR_AFFIDABILITA) < 1, - location: { - latitude: centerY, - longitude: centerX - }, - clickAction: createZoomToFunction( - this, - centerX, - centerY, - isHouseNumber - ) - }) - ); - idSet.add(element.sTRADARIO_ID); + results + .sort((a: any, b: any) => { + return +a.gR_AFFIDABILITA - +b.gR_AFFIDABILITA; + }) + .forEach( + (element: { + sTRADARIO_ID: string; + cIVICO_X: string; + cENTR_X: string; + cIVICO_Y: string; + cENTR_Y: string; + dUG: string; + dENOMINAZIONE: string; + dESCRIZIONE_CIVICO: string; + cOMUNE: string; + pROVINCIA: string; + gR_AFFIDABILITA: string; + }) => { + if (!idSet.has(element.sTRADARIO_ID)) { + const isHouseNumber = element.cIVICO_X !== ""; + const centerX = parseFloat( + isHouseNumber ? element.cIVICO_X : element.cENTR_X + ); + const centerY = parseFloat( + isHouseNumber ? element.cIVICO_Y : element.cENTR_Y + ); + locations.push( + new SearchResult({ + name: + element.dUG + + " " + + element.dENOMINAZIONE + + (isHouseNumber ? " " + element.dESCRIZIONE_CIVICO : "") + + ", " + + element.cOMUNE + + ", " + + element.pROVINCIA, + isImportant: parseFloat(element.gR_AFFIDABILITA) < 1, + location: { + latitude: centerY, + longitude: centerX + }, + clickAction: createZoomToFunction( + this, + centerX, + centerY, + isHouseNumber + ) + }) + ); + idSet.add(element.sTRADARIO_ID); + } } - } - ); + ); return locations; } @@ -214,8 +218,8 @@ export default class RerSearchProvider extends SearchProvider { if ( rect && - rect.width < 2 * CesiumMath.RADIANS_PER_DEGREE && - rect.height < 2 * CesiumMath.RADIANS_PER_DEGREE + (rect.width < 2 * CesiumMath.RADIANS_PER_DEGREE || + rect.height < 2 * CesiumMath.RADIANS_PER_DEGREE) ) { searchPromises.unshift( Resource.post({ @@ -252,6 +256,15 @@ export default class RerSearchProvider extends SearchProvider { for (let i in results) { const obj = JSON.parse(results[i]); if ( + obj?.norm_Indirizzo_Unico_AreaOutput + ?.norm_Indirizzo_Unico_AreaOutputRecordsetArray + ) { + resultsArray = [ + ...resultsArray, + ...obj.norm_Indirizzo_Unico_AreaOutput + .norm_Indirizzo_Unico_AreaOutputRecordsetArray + ]; + } else if ( obj?.norm_Indirizzo_UnicoOutput ?.norm_Indirizzo_UnicoOutputRecordsetArray ) { From 77caed9b110438b95a7eecd4716ad7380c821b2a Mon Sep 17 00:00:00 2001 From: glughi Date: Wed, 25 Jan 2023 09:38:36 +0100 Subject: [PATCH 088/215] Move map query info function in a tool --- lib/Models/Cesium.ts | 62 ++++++++++--------- lib/Models/Leaflet.ts | 8 ++- lib/Models/Terria.ts | 25 +++++--- lib/ReactViewModels/ViewState.ts | 12 ++-- .../Map/Navigation/Items/ToggleInfoTool.ts | 52 ++++++++++++++++ .../Map/Navigation/registerMapNavigations.tsx | 11 ++++ 6 files changed, 125 insertions(+), 45 deletions(-) create mode 100644 lib/ReactViews/Map/Navigation/Items/ToggleInfoTool.ts diff --git a/lib/Models/Cesium.ts b/lib/Models/Cesium.ts index 65ad944ff88..1c0c2403add 100644 --- a/lib/Models/Cesium.ts +++ b/lib/Models/Cesium.ts @@ -374,34 +374,37 @@ export default class Cesium extends GlobeOrMap { this.pauser = new CesiumRenderLoopPauser(this.cesiumWidget, () => { // Post render, update selection indicator position - const feature = this.terria.selectedFeature; - // If the feature has an associated primitive and that primitive has - // a clamped position, use that instead, because the regular - // position doesn't take terrain clamping into account. - if (isDefined(feature)) { - if ( - isDefined(feature.cesiumPrimitive) && - isDefined(feature.cesiumPrimitive._clampedPosition) - ) { - this._selectionIndicator.position = - feature.cesiumPrimitive._clampedPosition; - } else if ( - isDefined(feature.cesiumPrimitive) && - isDefined(feature.cesiumPrimitive._clampedModelMatrix) - ) { - this._selectionIndicator.position = Matrix4.getTranslation( - feature.cesiumPrimitive._clampedModelMatrix, - this._selectionIndicator.position || new Cartesian3() - ); - } else if (isDefined(feature.position)) { - this._selectionIndicator.position = feature.position.getValue( - this.terria.timelineClock.currentTime - ); + if (this.terria.mouseAsInfo) { + const feature = this.terria.selectedFeature; + + // If the feature has an associated primitive and that primitive has + // a clamped position, use that instead, because the regular + // position doesn't take terrain clamping into account. + if (isDefined(feature)) { + if ( + isDefined(feature.cesiumPrimitive) && + isDefined(feature.cesiumPrimitive._clampedPosition) + ) { + this._selectionIndicator.position = + feature.cesiumPrimitive._clampedPosition; + } else if ( + isDefined(feature.cesiumPrimitive) && + isDefined(feature.cesiumPrimitive._clampedModelMatrix) + ) { + this._selectionIndicator.position = Matrix4.getTranslation( + feature.cesiumPrimitive._clampedModelMatrix, + this._selectionIndicator.position || new Cartesian3() + ); + } else if (isDefined(feature.position)) { + this._selectionIndicator.position = feature.position.getValue( + this.terria.timelineClock.currentTime + ); + } } - } - this._selectionIndicator.update(); + this._selectionIndicator.update(); + } }); this._disposeSelectedFeatureSubscription = autorun(() => { @@ -1607,13 +1610,16 @@ export default class Cesium extends GlobeOrMap { const feature = this.terria.selectedFeature; this._highlightFeature(feature); - - if (isDefined(feature) && isDefined(feature.position)) { + if ( + isDefined(feature) && + isDefined(feature.position) && + this.terria.mouseAsInfo + ) { this._selectionIndicator.position = feature.position.getValue( this.terria.timelineClock.currentTime ); this._selectionIndicator.animateAppear(); - } else { + } else if (!(isDefined(feature) && isDefined(feature.position))) { this._selectionIndicator.animateDepart(); } diff --git a/lib/Models/Leaflet.ts b/lib/Models/Leaflet.ts index 5a2398daf82..8da57e7ba96 100644 --- a/lib/Models/Leaflet.ts +++ b/lib/Models/Leaflet.ts @@ -909,7 +909,11 @@ export default class Leaflet extends GlobeOrMap { private _selectFeature(feature: TerriaFeature | undefined) { this._highlightFeature(feature); - if (isDefined(feature) && isDefined(feature.position)) { + if ( + isDefined(feature) && + isDefined(feature.position) && + this.terria.mouseAsInfo + ) { const cartographicScratch = new Cartographic(); const cartographic = Ellipsoid.WGS84.cartesianToCartographic( feature.position.getValue(this.terria.timelineClock.currentTime), @@ -922,7 +926,7 @@ export default class Leaflet extends GlobeOrMap { ]) ); this._selectionIndicator.animateSelectionIndicatorAppear(); - } else { + } else if (!(isDefined(feature) && isDefined(feature.position))) { this._selectionIndicator.animateSelectionIndicatorDepart(); } } diff --git a/lib/Models/Terria.ts b/lib/Models/Terria.ts index 52f61a02435..d21724a4032 100644 --- a/lib/Models/Terria.ts +++ b/lib/Models/Terria.ts @@ -627,6 +627,9 @@ export default class Terria { @observable depthTestAgainstTerrainEnabled = true; + /* Custom Info Tool */ + @observable mouseAsInfo: boolean = false; + @observable stories: StoryData[] = []; @observable storyPromptShown: number = 0; // Story Prompt modal will be rendered when this property changes. See StandardUserInterface, section regarding sui.notifications. Ideally move this to ViewState. @@ -2002,16 +2005,18 @@ export default class Terria { featureIndex[hash] = (featureIndex[hash] || []).concat([feature]); }); - // Find picked feature by matching feature hash - // Also try to match name if defined - const current = pickedFeatures.current; - if (isJsonObject(current) && typeof current.hash === "number") { - const selectedFeature = - (featureIndex[current.hash] || []).find( - (feature) => feature.name === current.name - ) ?? featureIndex[current.hash]?.[0]; - if (selectedFeature) { - this.selectedFeature = selectedFeature; + if (this.mouseAsInfo) { + // Find picked feature by matching feature hash + // Also try to match name if defined + const current = pickedFeatures.current; + if (isJsonObject(current) && typeof current.hash === "number") { + const selectedFeature = + (featureIndex[current.hash] || []).find( + (feature) => feature.name === current.name + ) ?? featureIndex[current.hash]?.[0]; + if (selectedFeature) { + this.selectedFeature = selectedFeature; + } } } }); diff --git a/lib/ReactViewModels/ViewState.ts b/lib/ReactViewModels/ViewState.ts index b0768058841..45cd5f9b307 100644 --- a/lib/ReactViewModels/ViewState.ts +++ b/lib/ReactViewModels/ViewState.ts @@ -372,11 +372,13 @@ export default class ViewState { this._pickedFeaturesSubscription = reaction( () => this.terria.pickedFeatures, (pickedFeatures: PickedFeatures | undefined) => { - if (defined(pickedFeatures)) { - this.featureInfoPanelIsVisible = true; - this.featureInfoPanelIsCollapsed = false; - } else { - this.featureInfoPanelIsVisible = false; + if (this.terria.mouseAsInfo) { + if (defined(pickedFeatures)) { + this.featureInfoPanelIsVisible = true; + this.featureInfoPanelIsCollapsed = false; + } else { + this.featureInfoPanelIsVisible = false; + } } } ); diff --git a/lib/ReactViews/Map/Navigation/Items/ToggleInfoTool.ts b/lib/ReactViews/Map/Navigation/Items/ToggleInfoTool.ts new file mode 100644 index 00000000000..3dc0ef167fa --- /dev/null +++ b/lib/ReactViews/Map/Navigation/Items/ToggleInfoTool.ts @@ -0,0 +1,52 @@ +import { action, computed } from "mobx"; +import ViewerMode from "../../../../Models/ViewerMode"; +import ViewState from "../../../../ReactViewModels/ViewState"; +import Icon from "../../../../Styled/Icon"; +import MapNavigationItemController from "../../../../ViewModels/MapNavigation/MapNavigationItemController"; + +export class ToggleInfoController extends MapNavigationItemController { + static id = "info-tool"; + + constructor(private viewState: ViewState) { + super(); + } + + get glyph(): any { + return Icon.GLYPHS.info; + } + + get viewerMode(): ViewerMode | undefined { + return undefined; + } + + @computed + get visible() { + return super.visible; + } + + @computed + get disabled() { + return false; + } + + @computed + get active(): boolean { + return this.viewState.terria.mouseAsInfo; + } + + @action + activate() { + this.viewState.terria.mouseAsInfo = true; + super.activate(); + } + + @action + deactivate() { + this.viewState.terria.pickedFeatures = undefined; + this.viewState.terria.selectedFeature = undefined; + this.viewState.terria.mouseAsInfo = false; + this.viewState.featureInfoPanelIsVisible = false; + + super.deactivate(); + } +} diff --git a/lib/ReactViews/Map/Navigation/registerMapNavigations.tsx b/lib/ReactViews/Map/Navigation/registerMapNavigations.tsx index 82ee59924b2..737dc4634f3 100644 --- a/lib/ReactViews/Map/Navigation/registerMapNavigations.tsx +++ b/lib/ReactViews/Map/Navigation/registerMapNavigations.tsx @@ -108,6 +108,17 @@ export const registerMapNavigations = (viewState: ViewState) => { order: 6 }); + const toggleInfoController = new ToggleInfoController(viewState); + mapNavigationModel.addItem({ + id: ToggleInfoController.id, + name: "Info", + title: "Info on mouse click", + location: "TOP", + controller: toggleInfoController, + screenSize: undefined, + order: 7 + }); + const pedestrianModeToolController = new ToolButtonController({ toolName: PEDESTRIAN_MODE_ID, viewState: viewState, From 55ae32b6d2753ed32e4138167d724ea01ea3558c Mon Sep 17 00:00:00 2001 From: glughi Date: Wed, 25 Jan 2023 17:04:59 +0100 Subject: [PATCH 089/215] Fix previous commit --- lib/ReactViews/Map/Navigation/registerMapNavigations.tsx | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/ReactViews/Map/Navigation/registerMapNavigations.tsx b/lib/ReactViews/Map/Navigation/registerMapNavigations.tsx index 737dc4634f3..004e6ee4ecc 100644 --- a/lib/ReactViews/Map/Navigation/registerMapNavigations.tsx +++ b/lib/ReactViews/Map/Navigation/registerMapNavigations.tsx @@ -23,6 +23,7 @@ import { import CloseToolButton from "./Items/CloseToolButton"; import Compass, { COMPASS_TOOL_ID } from "./Items/Compass"; import MeasureTool from "./Items/MeasureTool"; +import { ToggleInfoController } from "./Items/ToggleInfoTool"; import MyLocation from "./Items/MyLocation"; import { ToggleSplitterController } from "./Items/ToggleSplitterTool"; import ZoomControl, { ZOOM_CONTROL_ID } from "./Items/ZoomControl"; From bfe8c7d3c25730d623fa891805a499d6742171b2 Mon Sep 17 00:00:00 2001 From: glughi Date: Fri, 3 Feb 2023 17:39:27 +0100 Subject: [PATCH 090/215] Measure tool split in two: line and area --- lib/Models/UserDrawing.ts | 107 ++++- .../Map/Navigation/Items/MeasureAreaTool.ts | 372 ++++++++++++++++++ .../Map/Navigation/Items/MeasureTool.ts | 21 +- .../Map/Navigation/registerMapNavigations.tsx | 58 ++- .../Tools/PedestrianMode/PedestrianMode.tsx | 15 +- lib/Styled/Icon.tsx | 1 + package.json | 2 + wwwroot/images/icons/measure_polygon.svg | 121 ++++++ wwwroot/languages/it/translation.json | 6 +- 9 files changed, 681 insertions(+), 22 deletions(-) create mode 100644 lib/ReactViews/Map/Navigation/Items/MeasureAreaTool.ts create mode 100644 wwwroot/images/icons/measure_polygon.svg diff --git a/lib/Models/UserDrawing.ts b/lib/Models/UserDrawing.ts index f736ddba29a..6a54d4291c9 100644 --- a/lib/Models/UserDrawing.ts +++ b/lib/Models/UserDrawing.ts @@ -31,6 +31,8 @@ import MapInteractionMode from "./MapInteractionMode"; import Terria from "./Terria"; import ConstantProperty from "terriajs-cesium/Source/DataSources/ConstantProperty"; import HeightReference from "terriajs-cesium/Source/Scene/HeightReference"; +import clone from "terriajs-cesium/Source/Core/clone"; +import * as turf from "@turf/turf"; interface OnDrawingCompleteParams { points: Cartesian3[]; @@ -41,6 +43,7 @@ interface Options { terria: Terria; messageHeader?: string | (() => string); allowPolygon?: boolean; + autoClosePolygon?: boolean; drawRectangle?: boolean; onMakeDialogMessage?: () => string; buttonText?: string; @@ -56,6 +59,7 @@ export default class UserDrawing extends MappableMixin( ) { private readonly messageHeader: string | (() => string); private readonly allowPolygon: boolean; + private readonly autoClosePolygon: boolean; private readonly onMakeDialogMessage?: () => string; private readonly buttonText?: string; private readonly onPointClicked?: (dataSource: CustomDataSource) => void; @@ -98,6 +102,11 @@ export default class UserDrawing extends MappableMixin( */ this.allowPolygon = defaultValue(options.allowPolygon, true); + /** + * If true, always close polygon adding the first point also as last point. + */ + this.autoClosePolygon = defaultValue(options.autoClosePolygon, false); + /** * Callback that occurs when the dialog is redrawn, to add additional information to dialog. */ @@ -326,6 +335,11 @@ export default class UserDrawing extends MappableMixin( if (isDefined(pickedFeatures.pickPosition)) { const pickedPoint = pickedFeatures.pickPosition; this.addPointToPointEntities("First Point", pickedPoint); + + if (this.autoClosePolygon) { + this.clickedExistingPoint(this.pointEntities.entities.values); + } + reaction.dispose(); this.prepareToAddNewPoint(); } @@ -360,6 +374,39 @@ export default class UserDrawing extends MappableMixin( } } + private insertPointToPointEntities( + name: string, + position: Cartesian3, + index: number + ) { + var pointEntity = new Entity({ + name: name, + position: new ConstantPositionProperty(position), + billboard: { + image: this.svgPoint, + heightReference: HeightReference.CLAMP_TO_GROUND, + eyeOffset: new Cartesian3(0.0, 0.0, -50.0) + } + }); + this.pointEntities.entities.suspendEvents(); + const points: Entity[] = clone(this.pointEntities.entities.values, false); + + this.pointEntities.entities.removeAll(); + for (let i = 0; i < index && i < points.length; ++i) { + this.pointEntities.entities.add(points[i]); + } + this.pointEntities.entities.add(pointEntity); + for (let i = index; i < points.length; ++i) { + this.pointEntities.entities.add(points[i]); + } + this.pointEntities.entities.resumeEvents(); + + this.dragHelper.updateDraggableObjects(this.pointEntities); + if (isDefined(this.onPointClicked)) { + this.onPointClicked(this.pointEntities); + } + } + endDrawing() { if (this.disposePickedFeatureSubscription) { this.disposePickedFeatureSubscription(); @@ -440,6 +487,43 @@ export default class UserDrawing extends MappableMixin( } if (isDefined(pickedFeatures.pickPosition)) { const pickedPoint = pickedFeatures.pickPosition; + const picketCarto = Cartographic.fromCartesian(pickedPoint); + + let changeOrder: number = -1; + if (!this.autoClosePolygon) { + for ( + let i: number = 1; + i < this.pointEntities.entities.values.length; + ++i + ) { + const pos0 = this.pointEntities.entities.values[ + i - 1 + ].position?.getValue(this.terria.timelineClock.currentTime); + const pos1 = this.pointEntities.entities.values[ + i + ].position?.getValue(this.terria.timelineClock.currentTime); + if (pos0 && pos1) { + const carto0 = Cartographic.fromCartesian(pos0); + const carto1 = Cartographic.fromCartesian(pos1); + const pt = turf.point([ + picketCarto.longitude, + picketCarto.latitude + ]); + const line = turf.lineString([ + [carto1.longitude, carto1.latitude], + [carto0.longitude, carto0.latitude] + ]); + const distance = turf.pointToLineDistance(pt, line, { + units: "meters" + }); + if (distance < Cartesian3.distance(pos1, pos0) * 0.001) { + changeOrder = i; + break; + } + } + } + } + // If existing point was picked, _clickedExistingPoint handles that, and returns true. // getDragCount helps us determine if the point was actually dragged rather than clicked. If it was // dragged, we shouldn't treat it as a clicked-existing-point scenario. @@ -448,7 +532,17 @@ export default class UserDrawing extends MappableMixin( !this.clickedExistingPoint(pickedFeatures.features) ) { // No existing point was picked, so add a new point - this.addPointToPointEntities("Another Point", pickedPoint); + + if (changeOrder >= 0) { + // Add the new point between 2 existing points + this.insertPointToPointEntities( + "Another Point", + pickedPoint, + changeOrder + ); + } else { + this.addPointToPointEntities("Another Point", pickedPoint); + } } else { this.dragHelper.resetDragCount(); } @@ -496,7 +590,9 @@ export default class UserDrawing extends MappableMixin( hierarchy: new CallbackProperty(function () { return new PolygonHierarchy(that.getPointsForShape()); }, false), - material: new Color(0.0, 0.666, 0.843, 0.25), + material: this.autoClosePolygon + ? new Color(0.0, 0.666, 0.843, 0.25) + : new Color(0.0, 0.666, 0.843, 0), outlineColor: new Color(1.0, 1.0, 1.0, 1.0), // Clamp to ground polygons of Measure Tool @@ -600,12 +696,13 @@ export default class UserDrawing extends MappableMixin( if (this.drawRectangle && this.pointEntities.entities.values.length >= 2) { message += "" + i18next.t("models.userDrawing.clickToRedrawRectangle") + ""; - } else if (this.pointEntities.entities.values.length > 0) { + /*} else if (this.pointEntities.entities.values.length > 0) { message += - "" + i18next.t("models.userDrawing.clickToAddAnotherPoint") + ""; + "" + i18next.t("models.userDrawing.clickToAddAnotherPoint") + "";*/ } else { message += - "" + i18next.t("models.userDrawing.clickToAddFirstPoint") + ""; + "
          " /*+ i18next.t("models.userDrawing.clickToAddFirstPoint")*/ + + "
          "; } // htmlToReactParser will fail if html doesn't have only one root element. return "
          " + message + "
          "; diff --git a/lib/ReactViews/Map/Navigation/Items/MeasureAreaTool.ts b/lib/ReactViews/Map/Navigation/Items/MeasureAreaTool.ts new file mode 100644 index 00000000000..ab78de732c8 --- /dev/null +++ b/lib/ReactViews/Map/Navigation/Items/MeasureAreaTool.ts @@ -0,0 +1,372 @@ +"use strict"; +import i18next from "i18next"; +import { action } from "mobx"; +import React, { useEffect } from "react"; +import Cartesian3 from "terriajs-cesium/Source/Core/Cartesian3"; +import Ellipsoid from "terriajs-cesium/Source/Core/Ellipsoid"; +import EllipsoidGeodesic from "terriajs-cesium/Source/Core/EllipsoidGeodesic"; +import CesiumMath from "terriajs-cesium/Source/Core/Math"; +//import PolygonGeometryLibrary from "terriajs-cesium/Source/Core/PolygonGeometryLibrary"; +import PolygonHierarchy from "terriajs-cesium/Source/Core/PolygonHierarchy"; +import VertexFormat from "terriajs-cesium/Source/Core/VertexFormat"; +import CustomDataSource from "terriajs-cesium/Source/DataSources/CustomDataSource"; +import Terria from "../../../../Models/Terria"; +import ViewState from "../../../../ReactViewModels/ViewState"; +import UserDrawing from "../../../../Models/UserDrawing"; +import ViewerMode from "../../../../Models/ViewerMode"; +import { GLYPHS } from "../../../../Styled/Icon"; +import MapNavigationItemController from "../../../../ViewModels/MapNavigation/MapNavigationItemController"; +import EllipsoidTangentPlane from "terriajs-cesium/Source/Core/EllipsoidTangentPlane"; +import Cartographic from "terriajs-cesium/Source/Core/Cartographic"; +import TerrainProvider from "terriajs-cesium/Source/Core/TerrainProvider"; +import sampleTerrainMostDetailed from "terriajs-cesium/Source/Core/sampleTerrainMostDetailed"; +const PolylinePipeline = + require("terriajs-cesium/Source/Core/PolylinePipeline").default; +const PolygonGeometryLibrary = + require("terriajs-cesium/Source/Core/PolygonGeometryLibrary").default; +//import MeasureTool from "../../../Map/Navigation/Items/MeasureTool"; + +interface MeasureToolOptions { + terria: Terria; + viewState: ViewState; + onClose(): void; + onOpen(): void; +} + +export default class MeasureAreaTool extends MapNavigationItemController { + static id = "measure-area-tool"; + static displayName = "MeasureAreaTool"; + + private readonly terria: Terria; + private readonly viewState: ViewState; + private totalDistanceMetres: number = 0; + private totalAreaMetresSquared: number = 0; + private userDrawing: UserDrawing; + + onClose: () => void; + onOpen: () => void; + itemRef: React.RefObject = React.createRef(); + + constructor(props: MeasureToolOptions) { + super(); + this.terria = props.terria; + this.viewState = props.viewState; + this.userDrawing = new UserDrawing({ + terria: props.terria, + messageHeader: "Misura di aree poligonali", + allowPolygon: true, + autoClosePolygon: true, + onPointClicked: this.onPointClicked.bind(this), + onPointMoved: this.onPointMoved.bind(this), + onCleanUp: this.onCleanUp.bind(this), + onMakeDialogMessage: this.onMakeDialogMessage.bind(this) + }); + this.onClose = props.onClose; + this.onOpen = props.onOpen; + } + + get glyph(): any { + return GLYPHS.measurePolygon; + } + + get viewerMode(): ViewerMode | undefined { + return undefined; + } + + prettifyNumber(number: number, squared: boolean) { + if (number <= 0) { + return ""; + } + // Given a number representing a number in metres, make it human readable + let label = "m"; + if (squared) { + if (number > 999999) { + label = "km"; + number = number / 1000000.0; + } + } else { + if (number > 999) { + label = "km"; + number = number / 1000.0; + } + } + let numberStr = number.toFixed(2); + // http://stackoverflow.com/questions/2901102/how-to-print-a-number-with-commas-as-thousands-separators-in-javascript + numberStr.replace(/\B(?=(\d{3})+(?!\d))/g, ","); + numberStr = `${numberStr} ${label}`; + if (squared) { + numberStr += "\u00B2"; + } + return numberStr; + } + + async updateSampledPath( + index: number, + pointA: Cartographic, + pointB: Cartographic, + terrainProvider: TerrainProvider, + ellipsoid: Ellipsoid + ) { + const granularity = 0.00001; + const cartesians = ellipsoid.cartographicArrayToCartesianArray([ + pointA, + pointB + ]); + const interpolatedCartographics = + ellipsoid.cartesianArrayToCartographicArray( + PolylinePipeline.generateCartesianArc({ + positions: cartesians, + granularity: granularity + }) + ); + + const sampledCartographics = await sampleTerrainMostDetailed( + terrainProvider, + interpolatedCartographics + ); + const sampledCartesians = + ellipsoid.cartographicArrayToCartesianArray(sampledCartographics); + + let totalDistance: number = 0; + const stepDistances: number[] = []; + for (let i = 0; i < sampledCartesians.length; ++i) { + const dist: number = + i > 0 + ? Cartesian3.distance(sampledCartesians[i - 1], sampledCartesians[i]) + : 0; + totalDistance += dist; + stepDistances.push(dist); + } + + const res = { + key: `${JSON.stringify(pointA)} ${JSON.stringify(pointB)}`, + index: index, + totalDistance: totalDistance, + stepDistances: stepDistances, + stepHeights: sampledCartographics.map((elem) => elem.height) + }; + + return res; + } + + @action + updateDistance(pointEntities: CustomDataSource) { + this.totalDistanceMetres = 0; + if (pointEntities.entities.values.length < 1) { + return; + } + + const pathPoints: Cartographic[] = []; + const pathDistances: number[] = []; + const prevPoint = pointEntities.entities.values[0]; + let prevPointPos = prevPoint.position!.getValue( + this.terria.timelineClock.currentTime + ); + + pathPoints.push(Cartographic.fromCartesian(prevPointPos, Ellipsoid.WGS84)); + pathDistances.push(0); + + const terrainProvider = this.terria.cesium?.scene.terrainProvider; + const ellipsoid = this.terria.cesium?.scene.globe.ellipsoid; + + for (let i = 1; i < pointEntities.entities.values.length; i++) { + const currentPoint = pointEntities.entities.values[i]; + const currentPointPos = currentPoint.position!.getValue( + this.terria.timelineClock.currentTime + ); + + const dist = this.getGeodesicDistance(prevPointPos, currentPointPos); + + this.totalDistanceMetres = this.totalDistanceMetres + dist; + + const currentCarto = Cartographic.fromCartesian( + currentPointPos, + Ellipsoid.WGS84 + ); + + if (!!terrainProvider && !!ellipsoid) { + const key = `${JSON.stringify( + pathPoints[pathPoints.length - 1] + )} ${JSON.stringify(currentCarto)}`; + if (!(key in this.terria.pathSampled)) { + this.updateSampledPath( + i, + pathPoints[pathPoints.length - 1], + currentCarto, + terrainProvider, + ellipsoid + ).then( + action((res) => { + this.terria.pathSampled = { + ...this.terria.pathSampled, + [res.key]: res + }; + }) + ); + } + } + + pathPoints.push(currentCarto); + pathDistances.push(dist); + + prevPointPos = currentPointPos; + } + if (this.userDrawing.closeLoop) { + const firstPoint = pointEntities.entities.values[0]; + const firstPointPos = firstPoint.position!.getValue( + this.terria.timelineClock.currentTime + ); + + const dist = this.getGeodesicDistance(prevPointPos, firstPointPos); + + this.totalDistanceMetres = this.totalDistanceMetres + dist; + + pathPoints.push( + Cartographic.fromCartesian(firstPointPos, Ellipsoid.WGS84) + ); + pathDistances.push(dist); + } + + this.terria.pathPoints = pathPoints; + this.terria.pathDistances = pathDistances; + + /*if (pathDistances.length > 0) { + this.viewState.elevationPanelIsVisible = true; + }*/ + } + + updateArea(pointEntities: CustomDataSource) { + this.totalAreaMetresSquared = 0; + if (!this.userDrawing.closeLoop) { + // Not a closed polygon? Don't calculate area. + return; + } + if (pointEntities.entities.values.length < 3) { + return; + } + const perPositionHeight = true; + + const positions = []; + for (let i = 0; i < pointEntities.entities.values.length; i++) { + const currentPoint = pointEntities.entities.values[i]; + const currentPointPos = currentPoint.position!.getValue( + this.terria.timelineClock.currentTime + ); + positions.push(currentPointPos); + } + + // Request the triangles that make up the polygon from Cesium. + const tangentPlane = EllipsoidTangentPlane.fromPoints( + positions, + Ellipsoid.WGS84 + ); + const polygons = PolygonGeometryLibrary.polygonsFromHierarchy( + new PolygonHierarchy(positions), + tangentPlane.projectPointsOntoPlane.bind(tangentPlane), + !perPositionHeight, + Ellipsoid.WGS84 + ); + + const geom = PolygonGeometryLibrary.createGeometryFromPositions( + Ellipsoid.WGS84, + polygons.polygons[0], + CesiumMath.RADIANS_PER_DEGREE, + perPositionHeight, + VertexFormat.POSITION_ONLY + ); + if ( + geom.indices.length % 3 !== 0 || + geom.attributes.position.values.length % 3 !== 0 + ) { + // Something has gone wrong. We expect triangles. Can't calcuate area. + return; + } + + const coords = []; + for (let i = 0; i < geom.attributes.position.values.length; i += 3) { + coords.push( + new Cartesian3( + geom.attributes.position.values[i], + geom.attributes.position.values[i + 1], + geom.attributes.position.values[i + 2] + ) + ); + } + let area = 0; + for (let i = 0; i < geom.indices.length; i += 3) { + const ind1 = geom.indices[i]; + const ind2 = geom.indices[i + 1]; + const ind3 = geom.indices[i + 2]; + + const a = Cartesian3.distance(coords[ind1], coords[ind2]); + const b = Cartesian3.distance(coords[ind2], coords[ind3]); + const c = Cartesian3.distance(coords[ind3], coords[ind1]); + + // Heron's formula + const s = (a + b + c) / 2.0; + area += Math.sqrt(s * (s - a) * (s - b) * (s - c)); + } + this.totalAreaMetresSquared = area; + } + + getGeodesicDistance(pointOne: Cartesian3, pointTwo: Cartesian3) { + // Note that Cartesian.distance gives the straight line distance between the two points, ignoring + // curvature. This is not what we want. + const pickedPointCartographic = + Ellipsoid.WGS84.cartesianToCartographic(pointOne); + const lastPointCartographic = + Ellipsoid.WGS84.cartesianToCartographic(pointTwo); + const geodesic = new EllipsoidGeodesic( + pickedPointCartographic, + lastPointCartographic + ); + return geodesic.surfaceDistance; + } + + onCleanUp() { + this.terria.pathSampled = {}; + this.totalDistanceMetres = 0; + this.totalAreaMetresSquared = 0; + //super.deactivate(); + this.deactivate(); + } + + onPointClicked(pointEntities: CustomDataSource) { + this.updateDistance(pointEntities); + this.updateArea(pointEntities); + } + + onPointMoved(pointEntities: CustomDataSource) { + // This is no different to clicking a point. + this.onPointClicked(pointEntities); + } + + onMakeDialogMessage = () => { + const distance = this.prettifyNumber(this.totalDistanceMetres, false); + let message = distance ? `Perimetro: ${distance}` : ""; + if (this.totalAreaMetresSquared !== 0) { + message += + "
          " + + `Area: ${this.prettifyNumber(this.totalAreaMetresSquared, true)}`; + } + return message; + }; + + /** + * @overrides + */ + deactivate() { + this.onClose(); + //this.userDrawing.endDrawing(); + super.deactivate(); + } + + /** + * @overrides + */ + activate() { + this.onOpen(); + this.userDrawing.enterDrawMode(); + super.activate(); + } +} diff --git a/lib/ReactViews/Map/Navigation/Items/MeasureTool.ts b/lib/ReactViews/Map/Navigation/Items/MeasureTool.ts index 94cb384172a..832c3835dad 100644 --- a/lib/ReactViews/Map/Navigation/Items/MeasureTool.ts +++ b/lib/ReactViews/Map/Navigation/Items/MeasureTool.ts @@ -28,6 +28,7 @@ const PolygonGeometryLibrary = interface MeasureToolOptions { terria: Terria; onClose(): void; + onOpen(): void; } export default class MeasureTool extends MapNavigationItemController { @@ -40,22 +41,24 @@ export default class MeasureTool extends MapNavigationItemController { private userDrawing: UserDrawing; onClose: () => void; + onOpen: () => void; itemRef: React.RefObject = React.createRef(); constructor(props: MeasureToolOptions) { super(); this.terria = props.terria; - //this.viewState = props.viewState; this.userDrawing = new UserDrawing({ terria: props.terria, messageHeader: () => i18next.t("measure.measureTool"), allowPolygon: true, + autoClosePolygon: false, onPointClicked: this.onPointClicked.bind(this), onPointMoved: this.onPointMoved.bind(this), onCleanUp: this.onCleanUp.bind(this), onMakeDialogMessage: this.onMakeDialogMessage.bind(this) }); this.onClose = props.onClose; + this.onOpen = props.onOpen; } get glyph(): any { @@ -321,11 +324,12 @@ export default class MeasureTool extends MapNavigationItemController { this.totalDistanceMetres = 0; this.totalAreaMetresSquared = 0; //super.deactivate(); + this.deactivate(); } onPointClicked(pointEntities: CustomDataSource) { this.updateDistance(pointEntities); - this.updateArea(pointEntities); + //this.updateArea(pointEntities); } onPointMoved(pointEntities: CustomDataSource) { @@ -335,10 +339,11 @@ export default class MeasureTool extends MapNavigationItemController { onMakeDialogMessage = () => { const distance = this.prettifyNumber(this.totalDistanceMetres, false); - let message = distance; + let message = distance ? `Lunghezza: ${distance}` : ""; if (this.totalAreaMetresSquared !== 0) { message += - "
          " + this.prettifyNumber(this.totalAreaMetresSquared, true); + "
          " + + `Area: ${this.prettifyNumber(this.totalAreaMetresSquared, true)}`; } return message; }; @@ -347,15 +352,17 @@ export default class MeasureTool extends MapNavigationItemController { * @overrides */ deactivate() { - this.userDrawing.endDrawing(); - //super.deactivate(); + this.onClose(); + //this.userDrawing.endDrawing(); + super.deactivate(); } /** * @overrides */ activate() { + this.onOpen(); this.userDrawing.enterDrawMode(); - //super.activate(); + super.activate(); } } diff --git a/lib/ReactViews/Map/Navigation/registerMapNavigations.tsx b/lib/ReactViews/Map/Navigation/registerMapNavigations.tsx index 004e6ee4ecc..c351420c877 100644 --- a/lib/ReactViews/Map/Navigation/registerMapNavigations.tsx +++ b/lib/ReactViews/Map/Navigation/registerMapNavigations.tsx @@ -23,6 +23,7 @@ import { import CloseToolButton from "./Items/CloseToolButton"; import Compass, { COMPASS_TOOL_ID } from "./Items/Compass"; import MeasureTool from "./Items/MeasureTool"; +import MeasureAreaTool from "./Items/MeasureAreaTool"; import { ToggleInfoController } from "./Items/ToggleInfoTool"; import MyLocation from "./Items/MyLocation"; import { ToggleSplitterController } from "./Items/ToggleSplitterTool"; @@ -92,32 +93,81 @@ export const registerMapNavigations = (viewState: ViewState) => { const measureTool = new MeasureTool({ terria, - //viewState, onClose: () => { runInAction(() => { + viewState.terria.mapNavigationModel.enable(MeasureAreaTool.id); viewState.panel = undefined; }); + }, + onOpen: () => { + runInAction(() => { + const item = viewState.terria.mapNavigationModel.findItem( + MeasureAreaTool.id + )?.controller; + if (item && item.active) { + item.deactivate(); + } + viewState.terria.mapNavigationModel.disable(MeasureAreaTool.id); + }); } }); mapNavigationModel.addItem({ id: MeasureTool.id, name: "translate#measure.measureToolTitle", - title: "translate#measure.measureDistance", + title: `:Misura la lunghezza di una linea spezzata definita tramite punti + clicca sulla mappa per aggiungere un altro punto- + clicca su un punto esistente per rimuoverlo- + trascina un punto per spostarlo-`, location: "TOP", controller: measureTool, screenSize: undefined, order: 6 }); + const measureAreaTool = new MeasureAreaTool({ + terria, + viewState, + onClose: () => { + runInAction(() => { + viewState.terria.mapNavigationModel.enable(MeasureTool.id); + viewState.panel = undefined; + }); + }, + onOpen: () => { + runInAction(() => { + const item = viewState.terria.mapNavigationModel.findItem( + MeasureTool.id + )?.controller; + if (item && item.active) { + item.deactivate(); + } + viewState.terria.mapNavigationModel.disable(MeasureTool.id); + }); + } + }); + mapNavigationModel.addItem({ + id: MeasureAreaTool.id, + name: "Misuratore di aree", + title: `:Misura l'area di un poligono definito tramite punti + i poligoni sono chiusi automaticamente- + clicca sulla mappa per aggiungere un altro punto- + clicca su un punto esistente per rimuoverlo- + trascina un punto per spostarlo-`, + location: "TOP", + controller: measureAreaTool, + screenSize: undefined, + order: 9 + }); + const toggleInfoController = new ToggleInfoController(viewState); mapNavigationModel.addItem({ id: ToggleInfoController.id, name: "Info", - title: "Info on mouse click", + title: "Interroga la mappa cliccando in un punto", location: "TOP", controller: toggleInfoController, screenSize: undefined, - order: 7 + order: 10 }); const pedestrianModeToolController = new ToolButtonController({ diff --git a/lib/ReactViews/Tools/PedestrianMode/PedestrianMode.tsx b/lib/ReactViews/Tools/PedestrianMode/PedestrianMode.tsx index f48dd76fb61..a91d2f100c0 100644 --- a/lib/ReactViews/Tools/PedestrianMode/PedestrianMode.tsx +++ b/lib/ReactViews/Tools/PedestrianMode/PedestrianMode.tsx @@ -9,6 +9,7 @@ import DropPedestrianToGround from "./DropPedestrianToGround"; import MiniMap, { getViewFromScene, MiniMapView } from "./MiniMap"; import MovementControls from "./MovementControls"; import MeasureTool from "../../Map/Navigation/Items/MeasureTool"; +import MeasureAreaTool from "../../Map/Navigation/Items/MeasureAreaTool"; // The desired camera height measured from the surface in metres export const PEDESTRIAN_HEIGHT = 1.7; @@ -37,15 +38,23 @@ const PedestrianMode: React.FC = observer((props) => { const updateView = () => setView(getViewFromScene(cesium.scene)); useEffect(() => { - const item = viewState.terria.mapNavigationModel.findItem( + const itemMeasureTool = viewState.terria.mapNavigationModel.findItem( MeasureTool.id )?.controller; - if (item && item.active) { - item.deactivate(); + if (itemMeasureTool && itemMeasureTool.active) { + itemMeasureTool.deactivate(); } viewState.terria.mapNavigationModel.disable(MeasureTool.id); + const itemMeasureAreaTool = viewState.terria.mapNavigationModel.findItem( + MeasureAreaTool.id + )?.controller; + if (itemMeasureAreaTool && itemMeasureAreaTool.active) { + itemMeasureAreaTool.deactivate(); + } + viewState.terria.mapNavigationModel.disable(MeasureAreaTool.id); return () => { viewState.terria.mapNavigationModel.enable(MeasureTool.id); + viewState.terria.mapNavigationModel.enable(MeasureAreaTool.id); }; }, []); diff --git a/lib/Styled/Icon.tsx b/lib/Styled/Icon.tsx index bece7561070..3a1f31ca848 100644 --- a/lib/Styled/Icon.tsx +++ b/lib/Styled/Icon.tsx @@ -52,6 +52,7 @@ export const GLYPHS = { loop: require("../../wwwroot/images/icons/loop.svg"), menu: require("../../wwwroot/images/icons/menu.svg"), measure: require("../../wwwroot/images/icons/measure.svg"), + measurePolygon: require("../../wwwroot/images/icons/measure_polygon.svg"), opened: require("../../wwwroot/images/icons/opened.svg"), pause: require("../../wwwroot/images/icons/pause.svg"), play: require("../../wwwroot/images/icons/play.svg"), diff --git a/package.json b/package.json index d4f47049e79..80f3e153a3c 100644 --- a/package.json +++ b/package.json @@ -34,6 +34,8 @@ "@turf/circle": "^6.5.0", "@turf/helpers": "^6.5.0", "@turf/meta": "^6.5.0", + "@turf/point-to-line-distance": "^6.5.0", + "@turf/turf": "^6.5.0", "@types/arcgis-rest-api": "^10.4.5", "@types/create-react-class": "^15.6.2", "@types/d3-array": "^2.0.0", diff --git a/wwwroot/images/icons/measure_polygon.svg b/wwwroot/images/icons/measure_polygon.svg new file mode 100644 index 00000000000..5106bb20b46 --- /dev/null +++ b/wwwroot/images/icons/measure_polygon.svg @@ -0,0 +1,121 @@ + + + + + measure + Created with Sketch. + + + + + + + + + + + + + + + + + + + + + + measure + + + + diff --git a/wwwroot/languages/it/translation.json b/wwwroot/languages/it/translation.json index 2722f18234a..ab69d7c2d8c 100644 --- a/wwwroot/languages/it/translation.json +++ b/wwwroot/languages/it/translation.json @@ -49,7 +49,7 @@ }, "measure": { "measureDistance": "Misura la distanza fra punti", - "measureTool": "Strumento di misura", + "measureTool": "Misura di linee e percorsi", "measureToolTitle": "Misuratore lineare" }, "general": { @@ -237,8 +237,8 @@ "devError": "È necessaria un'istanza di Terria.", "otherEntities": "Linee e poligoni", "messageHeader": "Disegnare sulla mappa", - "clickToAddAnotherPoint": "Clicca per aggiungere un altro punto", - "clickToAddFirstPoint": "Clicca per aggiungere un punto" + "clickToAddAnotherPoint": "Clicca per aggiungere un altro punto, clicca su un punto esistente per rimuoverlo, trascina un punto per spostarlo.", + "clickToAddFirstPoint": "Clicca per aggiungere il primo punto." }, "terriaJSONcatalog": { "disclaimer": "Scarico di responsabilità", From de2a5b5c542fdc6c50b859592cbac9be4b9bff9f Mon Sep 17 00:00:00 2001 From: glughi Date: Fri, 3 Feb 2023 17:40:11 +0100 Subject: [PATCH 091/215] Change description of MyLocation layer --- lib/ReactViews/Map/Navigation/Items/MyLocation.ts | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/lib/ReactViews/Map/Navigation/Items/MyLocation.ts b/lib/ReactViews/Map/Navigation/Items/MyLocation.ts index c8a7d67499e..66c72dddd7b 100644 --- a/lib/ReactViews/Map/Navigation/Items/MyLocation.ts +++ b/lib/ReactViews/Map/Navigation/Items/MyLocation.ts @@ -114,6 +114,11 @@ class MyLocation extends MapNavigationItemController { runInAction(() => { const name = t("location.myLocation"); this._marker.setTrait(CommonStrata.user, "name", name); + this._marker.setTrait( + CommonStrata.user, + "description", + "Posizione dell'utente" + ); this._marker.setTrait(CommonStrata.user, "geoJsonData", { type: "Feature", geometry: { From 835103202f7b173c5c35236b11f4b75d571bc0ae Mon Sep 17 00:00:00 2001 From: glughi Date: Fri, 3 Feb 2023 17:40:42 +0100 Subject: [PATCH 092/215] Fix tooltip of close button in ElevationPanel --- lib/ReactViews/Elevation/ElevationPanel.jsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/ReactViews/Elevation/ElevationPanel.jsx b/lib/ReactViews/Elevation/ElevationPanel.jsx index 0820f7f1eee..bed021015bb 100644 --- a/lib/ReactViews/Elevation/ElevationPanel.jsx +++ b/lib/ReactViews/Elevation/ElevationPanel.jsx @@ -133,7 +133,7 @@ const ElevationPanel = observer((props) => { type="button" onClick={close} className={Styles.btnCloseFeature} - title={"featureInfo.btnCloseFeature"} + title="Chiudi pannello" > From 8a34e0979f44258699d61f94e7b74ae0902d9ee3 Mon Sep 17 00:00:00 2001 From: glughi Date: Fri, 3 Feb 2023 18:31:17 +0100 Subject: [PATCH 093/215] Minor improvements in the two measure tools --- lib/ReactViews/Map/Navigation/Items/MeasureAreaTool.ts | 6 +++--- lib/ReactViews/Map/Navigation/Items/MeasureTool.ts | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/lib/ReactViews/Map/Navigation/Items/MeasureAreaTool.ts b/lib/ReactViews/Map/Navigation/Items/MeasureAreaTool.ts index ab78de732c8..4ccd1732aee 100644 --- a/lib/ReactViews/Map/Navigation/Items/MeasureAreaTool.ts +++ b/lib/ReactViews/Map/Navigation/Items/MeasureAreaTool.ts @@ -1,7 +1,7 @@ "use strict"; import i18next from "i18next"; import { action } from "mobx"; -import React, { useEffect } from "react"; +import React from "react"; import Cartesian3 from "terriajs-cesium/Source/Core/Cartesian3"; import Ellipsoid from "terriajs-cesium/Source/Core/Ellipsoid"; import EllipsoidGeodesic from "terriajs-cesium/Source/Core/EllipsoidGeodesic"; @@ -358,7 +358,7 @@ export default class MeasureAreaTool extends MapNavigationItemController { deactivate() { this.onClose(); //this.userDrawing.endDrawing(); - super.deactivate(); + //super.deactivate(); } /** @@ -367,6 +367,6 @@ export default class MeasureAreaTool extends MapNavigationItemController { activate() { this.onOpen(); this.userDrawing.enterDrawMode(); - super.activate(); + //super.activate(); } } diff --git a/lib/ReactViews/Map/Navigation/Items/MeasureTool.ts b/lib/ReactViews/Map/Navigation/Items/MeasureTool.ts index 832c3835dad..f3ffc930baf 100644 --- a/lib/ReactViews/Map/Navigation/Items/MeasureTool.ts +++ b/lib/ReactViews/Map/Navigation/Items/MeasureTool.ts @@ -11,7 +11,7 @@ import PolygonHierarchy from "terriajs-cesium/Source/Core/PolygonHierarchy"; import VertexFormat from "terriajs-cesium/Source/Core/VertexFormat"; import CustomDataSource from "terriajs-cesium/Source/DataSources/CustomDataSource"; import Terria from "../../../../Models/Terria"; -import ViewState from "../../../../ReactViewModels/ViewState"; +//import ViewState from "../../../../ReactViewModels/ViewState"; import UserDrawing from "../../../../Models/UserDrawing"; import ViewerMode from "../../../../Models/ViewerMode"; import { GLYPHS } from "../../../../Styled/Icon"; @@ -354,7 +354,7 @@ export default class MeasureTool extends MapNavigationItemController { deactivate() { this.onClose(); //this.userDrawing.endDrawing(); - super.deactivate(); + //super.deactivate(); } /** @@ -363,6 +363,6 @@ export default class MeasureTool extends MapNavigationItemController { activate() { this.onOpen(); this.userDrawing.enterDrawMode(); - super.activate(); + //super.activate(); } } From 7e17ad9e2b79d453e43e8f63ddce6e41368e2b6e Mon Sep 17 00:00:00 2001 From: glughi Date: Mon, 20 Feb 2023 17:41:14 +0100 Subject: [PATCH 094/215] Allow adding points to existing segments even for closed polygons --- lib/Models/UserDrawing.ts | 58 +++++++++++++++++++-------------------- 1 file changed, 28 insertions(+), 30 deletions(-) diff --git a/lib/Models/UserDrawing.ts b/lib/Models/UserDrawing.ts index 6a54d4291c9..9c262f6421c 100644 --- a/lib/Models/UserDrawing.ts +++ b/lib/Models/UserDrawing.ts @@ -490,36 +490,34 @@ export default class UserDrawing extends MappableMixin( const picketCarto = Cartographic.fromCartesian(pickedPoint); let changeOrder: number = -1; - if (!this.autoClosePolygon) { - for ( - let i: number = 1; - i < this.pointEntities.entities.values.length; - ++i - ) { - const pos0 = this.pointEntities.entities.values[ - i - 1 - ].position?.getValue(this.terria.timelineClock.currentTime); - const pos1 = this.pointEntities.entities.values[ - i - ].position?.getValue(this.terria.timelineClock.currentTime); - if (pos0 && pos1) { - const carto0 = Cartographic.fromCartesian(pos0); - const carto1 = Cartographic.fromCartesian(pos1); - const pt = turf.point([ - picketCarto.longitude, - picketCarto.latitude - ]); - const line = turf.lineString([ - [carto1.longitude, carto1.latitude], - [carto0.longitude, carto0.latitude] - ]); - const distance = turf.pointToLineDistance(pt, line, { - units: "meters" - }); - if (distance < Cartesian3.distance(pos1, pos0) * 0.001) { - changeOrder = i; - break; - } + for ( + let i: number = 1; + i < this.pointEntities.entities.values.length; + ++i + ) { + const pos0 = this.pointEntities.entities.values[ + i - 1 + ].position?.getValue(this.terria.timelineClock.currentTime); + const pos1 = this.pointEntities.entities.values[ + i + ].position?.getValue(this.terria.timelineClock.currentTime); + if (pos0 && pos1) { + const carto0 = Cartographic.fromCartesian(pos0); + const carto1 = Cartographic.fromCartesian(pos1); + const pt = turf.point([ + picketCarto.longitude, + picketCarto.latitude + ]); + const line = turf.lineString([ + [carto1.longitude, carto1.latitude], + [carto0.longitude, carto0.latitude] + ]); + const distance = turf.pointToLineDistance(pt, line, { + units: "meters" + }); + if (distance < Cartesian3.distance(pos1, pos0) * 0.001) { + changeOrder = i; + break; } } } From 4da3cad75f2dd6d21ec9b5d1554e1db6d03217e1 Mon Sep 17 00:00:00 2001 From: glughi Date: Thu, 23 Mar 2023 10:29:02 +0100 Subject: [PATCH 095/215] In ArcGisMapServer shows all the elements of the legend, regardless of the equality of their images --- lib/Models/Catalog/Esri/ArcGisMapServerCatalogItem.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/Models/Catalog/Esri/ArcGisMapServerCatalogItem.ts b/lib/Models/Catalog/Esri/ArcGisMapServerCatalogItem.ts index e8f355b611c..2331d0d279b 100644 --- a/lib/Models/Catalog/Esri/ArcGisMapServerCatalogItem.ts +++ b/lib/Models/Catalog/Esri/ArcGisMapServerCatalogItem.ts @@ -354,7 +354,8 @@ class MapServerStratum extends LoadableStratum( }); }); - items = uniqWith(items, (a, b) => a.imageUrl === b.imageUrl); + // Comment, otherwise the legend may be truncated when the same symbol is used multiple times + //items = uniqWith(items, (a, b) => a.imageUrl === b.imageUrl); return [createStratumInstance(LegendTraits, { items })]; } From 24a3fa493490c400a178645df74dc624ccee6eb6 Mon Sep 17 00:00:00 2001 From: glughi Date: Thu, 23 Mar 2023 10:35:49 +0100 Subject: [PATCH 096/215] Fix minor bug in UserDrawing --- lib/Models/UserDrawing.ts | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/lib/Models/UserDrawing.ts b/lib/Models/UserDrawing.ts index 9c262f6421c..9f5a5c74bfb 100644 --- a/lib/Models/UserDrawing.ts +++ b/lib/Models/UserDrawing.ts @@ -173,7 +173,10 @@ export default class UserDrawing extends MappableMixin( this.disposeClampMeasureLineToGround = reaction( () => this.terria?.clampMeasureLineToGround, (clampMeasureLineToGround) => { - if (!!this.otherEntities.entities.values[0].polyline) { + if ( + this.otherEntities.entities.values.length > 0 && + this.otherEntities.entities.values[0]?.polyline + ) { this.otherEntities.entities.values[0].polyline.clampToGround = new ConstantProperty(clampMeasureLineToGround); } From f464af801c8ee99e904559ffc6c73404ac2e2f51 Mon Sep 17 00:00:00 2001 From: glughi Date: Thu, 23 Mar 2023 10:43:37 +0100 Subject: [PATCH 097/215] In MeasureTool allows you to open closed polylines by deleting the last vertex --- lib/Models/UserDrawing.ts | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/lib/Models/UserDrawing.ts b/lib/Models/UserDrawing.ts index 9f5a5c74bfb..f548c04e65c 100644 --- a/lib/Models/UserDrawing.ts +++ b/lib/Models/UserDrawing.ts @@ -610,6 +610,20 @@ export default class UserDrawing extends MappableMixin( } userClickedExistingPoint = true; return; + } else if ( + index === 0 && + this.closeLoop && + this.allowPolygon && + !this.autoClosePolygon + ) { + this.closeLoop = false; + this.polygon = undefined; + + // Also let client of UserDrawing know if a point has been removed. + if (typeof that.onPointClicked === "function") { + that.onPointClicked(that.pointEntities); + } + userClickedExistingPoint = true; } else { // User clicked on a point that's not the end of the loop. Remove it. this.pointEntities.entities.removeById(feature.id); From fa62e58f610e6ff361dfbbe74ec297b19f54fe5d Mon Sep 17 00:00:00 2001 From: glughi Date: Thu, 23 Mar 2023 10:49:40 +0100 Subject: [PATCH 098/215] Refactorize the measurement and path data saved in the state of Terria --- lib/ModelMixins/MeasurableMixin.ts | 9 +++++++-- lib/Models/Terria.ts | 23 +++++++++++++---------- lib/ReactViewModels/ViewState.ts | 8 ++++---- lib/ReactViews/BottomDock/BottomDock.tsx | 4 ++-- 4 files changed, 26 insertions(+), 18 deletions(-) diff --git a/lib/ModelMixins/MeasurableMixin.ts b/lib/ModelMixins/MeasurableMixin.ts index 34c7d6d0314..7b3afb9cd2b 100644 --- a/lib/ModelMixins/MeasurableMixin.ts +++ b/lib/ModelMixins/MeasurableMixin.ts @@ -7,6 +7,7 @@ import sampleTerrainMostDetailed from "terriajs-cesium/Source/Core/sampleTerrain import EllipsoidGeodesic from "terriajs-cesium/Source/Core/EllipsoidGeodesic"; import Cartographic from "terriajs-cesium/Source/Core/Cartographic"; import TerrainProvider from "terriajs-cesium/Source/Core/TerrainProvider"; +import { PathCustom } from "../Models/Terria"; type MixinModel = Model; @@ -40,8 +41,12 @@ function MeasurableMixin>(Base: T) { } }); if (newPositions.length > 1) { - this.terria.pathPoints = newPositions; - this.terria.pathDistances = stepDistanceMeters; + //this.terria.pathPoints = newPositions; + //this.terria.pathDistances = stepDistanceMeters; + this.terria.path = { + stopPoints: newPositions, + stopGeodeticDistances: stepDistanceMeters + }; } } diff --git a/lib/Models/Terria.ts b/lib/Models/Terria.ts index d21724a4032..2ca266204df 100644 --- a/lib/Models/Terria.ts +++ b/lib/Models/Terria.ts @@ -390,13 +390,16 @@ interface HomeCameraInit { west: number; } -interface PathSampled { - [key: string]: { - index: number; - totalDistance: number; - stepDistances: number[]; - stepHeights: number[]; - }; +export interface PathCustom { + stopPoints: Cartographic[]; + stopGeodeticDistances: number[]; + stopAirDistances: number[] | undefined; + stopGroundDistances: number[] | undefined; + geodeticDistance: number | undefined; + airDistance: number | undefined; + groundDistance: number | undefined; + sampledPoints: Cartographic[] | undefined; + sampledDistances: number[] | undefined; } export default class Terria { @@ -566,10 +569,10 @@ export default class Terria { @observable pathPoints: Cartographic[] | undefined; /** - * Gets or sets the distances between stages of a path drawn with the MeasureTool. - * @type {number[]} + * Gets or sets the data computed sampling a path drawn with the MeasureTool. + * @type {PathCustom} */ - @observable pathDistances: number[] | undefined; + @observable path: PathCustom | undefined; /** * Gets or sets the data computed sampling a path drawn with the MeasureTool. diff --git a/lib/ReactViewModels/ViewState.ts b/lib/ReactViewModels/ViewState.ts index 45cd5f9b307..0c8f2160e24 100644 --- a/lib/ReactViewModels/ViewState.ts +++ b/lib/ReactViewModels/ViewState.ts @@ -25,7 +25,7 @@ import ReferenceMixin from "../ModelMixins/ReferenceMixin"; import CommonStrata from "../Models/Definition/CommonStrata"; import { BaseModel } from "../Models/Definition/Model"; import getAncestors from "../Models/getAncestors"; -import Terria from "../Models/Terria"; +import Terria, { PathCustom } from "../Models/Terria"; import { ViewingControl } from "../Models/ViewingControls"; import { SATELLITE_HELP_PROMPT_KEY } from "../ReactViews/HelpScreens/SatelliteHelpPrompt"; import { animationDuration } from "../ReactViews/StandardUserInterface/StandardUserInterface"; @@ -483,9 +483,9 @@ export default class ViewState { ); this._elevationPanelIsVisibleSubscription = reaction( - () => this.terria.pathPoints, - (pathPoints: Cartographic[] | undefined) => { - if (defined(pathPoints) && pathPoints && pathPoints.length > 0) { + () => this.terria.path, + (path: PathCustom | undefined) => { + if (defined(path) && path?.stopPoints && path.stopPoints.length > 0) { this.elevationPanelIsVisible = true; } else { this.elevationPanelIsVisible = false; diff --git a/lib/ReactViews/BottomDock/BottomDock.tsx b/lib/ReactViews/BottomDock/BottomDock.tsx index 7f6d5640007..2870609cb11 100644 --- a/lib/ReactViews/BottomDock/BottomDock.tsx +++ b/lib/ReactViews/BottomDock/BottomDock.tsx @@ -61,8 +61,8 @@ class BottomDock extends React.Component { {this.props.viewState.elevationChartIsVisible && - !!terria.pathPoints && - terria.pathPoints.length > 0 && ( + !!terria?.path?.stopPoints && + terria.path.stopPoints.length > 0 && ( Date: Thu, 23 Mar 2023 10:50:22 +0100 Subject: [PATCH 099/215] Update MeasurePolygon icon --- wwwroot/images/icons/measure_polygon.svg | 160 ++++++++++++----------- 1 file changed, 85 insertions(+), 75 deletions(-) diff --git a/wwwroot/images/icons/measure_polygon.svg b/wwwroot/images/icons/measure_polygon.svg index 5106bb20b46..48ed5cc7ac9 100644 --- a/wwwroot/images/icons/measure_polygon.svg +++ b/wwwroot/images/icons/measure_polygon.svg @@ -1,11 +1,11 @@ + inkscape:current-layer="Page-1" + inkscape:snap-bbox="false" /> measure + id="title31">plygon_measure Created with Sketch. - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + - measure + plygon_measure - + \ No newline at end of file From 7952f02a0144b3ad4eb7bce3374344a5f2d1f7af Mon Sep 17 00:00:00 2001 From: glughi Date: Thu, 23 Mar 2023 10:51:04 +0100 Subject: [PATCH 100/215] Improve the visibility of MyLocation placeholder --- lib/ReactViews/Map/Navigation/Items/MyLocation.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/ReactViews/Map/Navigation/Items/MyLocation.ts b/lib/ReactViews/Map/Navigation/Items/MyLocation.ts index 66c72dddd7b..d24af2a60a4 100644 --- a/lib/ReactViews/Map/Navigation/Items/MyLocation.ts +++ b/lib/ReactViews/Map/Navigation/Items/MyLocation.ts @@ -141,6 +141,7 @@ class MyLocation extends MapNavigationItemController { "stroke-width": 3 }) ); + this._marker.setTrait(CommonStrata.user, "clampToGround", true); this.terria.workbench.add(this._marker); }); From 6d18a3827a3d269f19a022c435e2aa352b68edba Mon Sep 17 00:00:00 2001 From: glughi Date: Thu, 23 Mar 2023 10:52:18 +0100 Subject: [PATCH 101/215] Refactorize and improve MeasureTool and MeasureAreaTool --- .../Map/Navigation/Items/MeasureAreaTool.ts | 168 +++-------- .../Map/Navigation/Items/MeasureTool.ts | 264 +++++++++++------- .../Map/Navigation/registerMapNavigations.tsx | 5 +- 3 files changed, 195 insertions(+), 242 deletions(-) diff --git a/lib/ReactViews/Map/Navigation/Items/MeasureAreaTool.ts b/lib/ReactViews/Map/Navigation/Items/MeasureAreaTool.ts index 4ccd1732aee..2837171aab6 100644 --- a/lib/ReactViews/Map/Navigation/Items/MeasureAreaTool.ts +++ b/lib/ReactViews/Map/Navigation/Items/MeasureAreaTool.ts @@ -1,34 +1,24 @@ "use strict"; -import i18next from "i18next"; import { action } from "mobx"; import React from "react"; import Cartesian3 from "terriajs-cesium/Source/Core/Cartesian3"; import Ellipsoid from "terriajs-cesium/Source/Core/Ellipsoid"; import EllipsoidGeodesic from "terriajs-cesium/Source/Core/EllipsoidGeodesic"; import CesiumMath from "terriajs-cesium/Source/Core/Math"; -//import PolygonGeometryLibrary from "terriajs-cesium/Source/Core/PolygonGeometryLibrary"; import PolygonHierarchy from "terriajs-cesium/Source/Core/PolygonHierarchy"; import VertexFormat from "terriajs-cesium/Source/Core/VertexFormat"; import CustomDataSource from "terriajs-cesium/Source/DataSources/CustomDataSource"; import Terria from "../../../../Models/Terria"; -import ViewState from "../../../../ReactViewModels/ViewState"; import UserDrawing from "../../../../Models/UserDrawing"; import ViewerMode from "../../../../Models/ViewerMode"; import { GLYPHS } from "../../../../Styled/Icon"; import MapNavigationItemController from "../../../../ViewModels/MapNavigation/MapNavigationItemController"; import EllipsoidTangentPlane from "terriajs-cesium/Source/Core/EllipsoidTangentPlane"; -import Cartographic from "terriajs-cesium/Source/Core/Cartographic"; -import TerrainProvider from "terriajs-cesium/Source/Core/TerrainProvider"; -import sampleTerrainMostDetailed from "terriajs-cesium/Source/Core/sampleTerrainMostDetailed"; -const PolylinePipeline = - require("terriajs-cesium/Source/Core/PolylinePipeline").default; const PolygonGeometryLibrary = require("terriajs-cesium/Source/Core/PolygonGeometryLibrary").default; -//import MeasureTool from "../../../Map/Navigation/Items/MeasureTool"; interface MeasureToolOptions { terria: Terria; - viewState: ViewState; onClose(): void; onOpen(): void; } @@ -38,7 +28,6 @@ export default class MeasureAreaTool extends MapNavigationItemController { static displayName = "MeasureAreaTool"; private readonly terria: Terria; - private readonly viewState: ViewState; private totalDistanceMetres: number = 0; private totalAreaMetresSquared: number = 0; private userDrawing: UserDrawing; @@ -50,7 +39,6 @@ export default class MeasureAreaTool extends MapNavigationItemController { constructor(props: MeasureToolOptions) { super(); this.terria = props.terria; - this.viewState = props.viewState; this.userDrawing = new UserDrawing({ terria: props.terria, messageHeader: "Misura di aree poligonali", @@ -100,55 +88,6 @@ export default class MeasureAreaTool extends MapNavigationItemController { return numberStr; } - async updateSampledPath( - index: number, - pointA: Cartographic, - pointB: Cartographic, - terrainProvider: TerrainProvider, - ellipsoid: Ellipsoid - ) { - const granularity = 0.00001; - const cartesians = ellipsoid.cartographicArrayToCartesianArray([ - pointA, - pointB - ]); - const interpolatedCartographics = - ellipsoid.cartesianArrayToCartographicArray( - PolylinePipeline.generateCartesianArc({ - positions: cartesians, - granularity: granularity - }) - ); - - const sampledCartographics = await sampleTerrainMostDetailed( - terrainProvider, - interpolatedCartographics - ); - const sampledCartesians = - ellipsoid.cartographicArrayToCartesianArray(sampledCartographics); - - let totalDistance: number = 0; - const stepDistances: number[] = []; - for (let i = 0; i < sampledCartesians.length; ++i) { - const dist: number = - i > 0 - ? Cartesian3.distance(sampledCartesians[i - 1], sampledCartesians[i]) - : 0; - totalDistance += dist; - stepDistances.push(dist); - } - - const res = { - key: `${JSON.stringify(pointA)} ${JSON.stringify(pointB)}`, - index: index, - totalDistance: totalDistance, - stepDistances: stepDistances, - stepHeights: sampledCartographics.map((elem) => elem.height) - }; - - return res; - } - @action updateDistance(pointEntities: CustomDataSource) { this.totalDistanceMetres = 0; @@ -156,58 +95,19 @@ export default class MeasureAreaTool extends MapNavigationItemController { return; } - const pathPoints: Cartographic[] = []; - const pathDistances: number[] = []; const prevPoint = pointEntities.entities.values[0]; let prevPointPos = prevPoint.position!.getValue( this.terria.timelineClock.currentTime ); - - pathPoints.push(Cartographic.fromCartesian(prevPointPos, Ellipsoid.WGS84)); - pathDistances.push(0); - - const terrainProvider = this.terria.cesium?.scene.terrainProvider; - const ellipsoid = this.terria.cesium?.scene.globe.ellipsoid; - for (let i = 1; i < pointEntities.entities.values.length; i++) { const currentPoint = pointEntities.entities.values[i]; const currentPointPos = currentPoint.position!.getValue( this.terria.timelineClock.currentTime ); - const dist = this.getGeodesicDistance(prevPointPos, currentPointPos); - - this.totalDistanceMetres = this.totalDistanceMetres + dist; - - const currentCarto = Cartographic.fromCartesian( - currentPointPos, - Ellipsoid.WGS84 - ); - - if (!!terrainProvider && !!ellipsoid) { - const key = `${JSON.stringify( - pathPoints[pathPoints.length - 1] - )} ${JSON.stringify(currentCarto)}`; - if (!(key in this.terria.pathSampled)) { - this.updateSampledPath( - i, - pathPoints[pathPoints.length - 1], - currentCarto, - terrainProvider, - ellipsoid - ).then( - action((res) => { - this.terria.pathSampled = { - ...this.terria.pathSampled, - [res.key]: res - }; - }) - ); - } - } - - pathPoints.push(currentCarto); - pathDistances.push(dist); + this.totalDistanceMetres = + this.totalDistanceMetres + + this.getGeodesicDistance(prevPointPos, currentPointPos); prevPointPos = currentPointPos; } @@ -216,23 +116,10 @@ export default class MeasureAreaTool extends MapNavigationItemController { const firstPointPos = firstPoint.position!.getValue( this.terria.timelineClock.currentTime ); - - const dist = this.getGeodesicDistance(prevPointPos, firstPointPos); - - this.totalDistanceMetres = this.totalDistanceMetres + dist; - - pathPoints.push( - Cartographic.fromCartesian(firstPointPos, Ellipsoid.WGS84) - ); - pathDistances.push(dist); + this.totalDistanceMetres = + this.totalDistanceMetres + + this.getGeodesicDistance(prevPointPos, firstPointPos); } - - this.terria.pathPoints = pathPoints; - this.terria.pathDistances = pathDistances; - - /*if (pathDistances.length > 0) { - this.viewState.elevationPanelIsVisible = true; - }*/ } updateArea(pointEntities: CustomDataSource) { @@ -324,10 +211,8 @@ export default class MeasureAreaTool extends MapNavigationItemController { } onCleanUp() { - this.terria.pathSampled = {}; this.totalDistanceMetres = 0; this.totalAreaMetresSquared = 0; - //super.deactivate(); this.deactivate(); } @@ -342,14 +227,36 @@ export default class MeasureAreaTool extends MapNavigationItemController { } onMakeDialogMessage = () => { - const distance = this.prettifyNumber(this.totalDistanceMetres, false); - let message = distance ? `Perimetro: ${distance}` : ""; - if (this.totalAreaMetresSquared !== 0) { - message += - "
          " + - `Area: ${this.prettifyNumber(this.totalAreaMetresSquared, true)}`; - } - return message; + return ` + + + + + + + + + + + + + + + +
          Perimetro:${ + this.totalDistanceMetres + ? this.prettifyNumber(this.totalDistanceMetres, false) + : "" + }
          Area:${ + this.totalAreaMetresSquared + ? this.prettifyNumber(this.totalAreaMetresSquared, true) + : "" + }
          ${ + this.totalAreaMetresSquared + ? (this.totalAreaMetresSquared * 0.0001).toFixed(2) + " ha" + : "" + }
          + `; }; /** @@ -357,8 +264,6 @@ export default class MeasureAreaTool extends MapNavigationItemController { */ deactivate() { this.onClose(); - //this.userDrawing.endDrawing(); - //super.deactivate(); } /** @@ -367,6 +272,5 @@ export default class MeasureAreaTool extends MapNavigationItemController { activate() { this.onOpen(); this.userDrawing.enterDrawMode(); - //super.activate(); } } diff --git a/lib/ReactViews/Map/Navigation/Items/MeasureTool.ts b/lib/ReactViews/Map/Navigation/Items/MeasureTool.ts index f3ffc930baf..d6e29180f8c 100644 --- a/lib/ReactViews/Map/Navigation/Items/MeasureTool.ts +++ b/lib/ReactViews/Map/Navigation/Items/MeasureTool.ts @@ -1,27 +1,23 @@ "use strict"; import i18next from "i18next"; -import { action } from "mobx"; +import { action, reaction, IReactionDisposer } from "mobx"; import React from "react"; import Cartesian3 from "terriajs-cesium/Source/Core/Cartesian3"; import Ellipsoid from "terriajs-cesium/Source/Core/Ellipsoid"; import EllipsoidGeodesic from "terriajs-cesium/Source/Core/EllipsoidGeodesic"; import CesiumMath from "terriajs-cesium/Source/Core/Math"; -//import PolygonGeometryLibrary from "terriajs-cesium/Source/Core/PolygonGeometryLibrary"; import PolygonHierarchy from "terriajs-cesium/Source/Core/PolygonHierarchy"; import VertexFormat from "terriajs-cesium/Source/Core/VertexFormat"; import CustomDataSource from "terriajs-cesium/Source/DataSources/CustomDataSource"; import Terria from "../../../../Models/Terria"; -//import ViewState from "../../../../ReactViewModels/ViewState"; import UserDrawing from "../../../../Models/UserDrawing"; import ViewerMode from "../../../../Models/ViewerMode"; import { GLYPHS } from "../../../../Styled/Icon"; +import isDefined from "../../../../Core/isDefined"; import MapNavigationItemController from "../../../../ViewModels/MapNavigation/MapNavigationItemController"; import EllipsoidTangentPlane from "terriajs-cesium/Source/Core/EllipsoidTangentPlane"; import Cartographic from "terriajs-cesium/Source/Core/Cartographic"; -import TerrainProvider from "terriajs-cesium/Source/Core/TerrainProvider"; import sampleTerrainMostDetailed from "terriajs-cesium/Source/Core/sampleTerrainMostDetailed"; -const PolylinePipeline = - require("terriajs-cesium/Source/Core/PolylinePipeline").default; const PolygonGeometryLibrary = require("terriajs-cesium/Source/Core/PolygonGeometryLibrary").default; @@ -40,6 +36,8 @@ export default class MeasureTool extends MapNavigationItemController { private totalAreaMetresSquared: number = 0; private userDrawing: UserDrawing; + private disposeSamplingPathStep?: IReactionDisposer; + onClose: () => void; onOpen: () => void; itemRef: React.RefObject = React.createRef(); @@ -59,6 +57,14 @@ export default class MeasureTool extends MapNavigationItemController { }); this.onClose = props.onClose; this.onOpen = props.onOpen; + + // sampleEntirePath is the reaction to samplingPathStep changes + this.disposeSamplingPathStep = reaction( + () => this.terria.samplingPathStep, + () => { + this.sampleEntirePath(this.userDrawing.pointEntities); + } + ); } get glyph(): any { @@ -96,53 +102,139 @@ export default class MeasureTool extends MapNavigationItemController { return numberStr; } - async updateSampledPath( - index: number, - pointA: Cartographic, - pointB: Cartographic, - terrainProvider: TerrainProvider, - ellipsoid: Ellipsoid - ) { - const granularity = 0.00001; - const cartesians = ellipsoid.cartographicArrayToCartesianArray([ - pointA, - pointB - ]); - const interpolatedCartographics = - ellipsoid.cartesianArrayToCartographicArray( - PolylinePipeline.generateCartesianArc({ - positions: cartesians, - granularity: granularity - }) - ); + // sample the entire path (polyline) every "samplingPathStep" meters + sampleEntirePath(pointEntities: CustomDataSource) { + const terrainProvider = this.terria.cesium?.scene.terrainProvider; + const ellipsoid = this.terria.cesium?.scene.globe.ellipsoid; + + if (!terrainProvider || !ellipsoid) { + return; + } - const sampledCartographics = await sampleTerrainMostDetailed( - terrainProvider, - interpolatedCartographics + // extract valid points from CustomDataSource + const castesianEntities = pointEntities.entities.values.filter( + (elem) => elem?.position !== undefined && elem?.position !== null ); - const sampledCartesians = - ellipsoid.cartographicArrayToCartesianArray(sampledCartographics); - - let totalDistance: number = 0; - const stepDistances: number[] = []; - for (let i = 0; i < sampledCartesians.length; ++i) { - const dist: number = - i > 0 - ? Cartesian3.distance(sampledCartesians[i - 1], sampledCartesians[i]) - : 0; - totalDistance += dist; - stepDistances.push(dist); + // if the path is a closed loop add the first point also as last point + if ( + this.userDrawing.closeLoop && + pointEntities.entities.values.length > 0 + ) { + castesianEntities.push(pointEntities.entities.values[0]); + } + // convert from cartesian to cartographic becouse "sampleTerrainMostDetailed" work with cartographic + const cartoPositions = castesianEntities.map((elem) => { + return Cartographic.fromCartesian( + elem.position!.getValue(this.terria.timelineClock.currentTime), + Ellipsoid.WGS84 + ); + }); + + // index of the original stops in the new array of sampling points + const originalStopsIndex: number[] = [0]; + // geodetic distance between two stops + const stopGeodeticDistances: number[] = [0]; + + // compute sampling points every "samplingPathStep" meters + const interpolatedCartographics = [cartoPositions[0]]; + for (let i = 0; i < cartoPositions.length - 1; ++i) { + const geodesic = new EllipsoidGeodesic( + cartoPositions[i], + cartoPositions[i + 1], + ellipsoid + ); + const segmentDistance = geodesic.surfaceDistance; + stopGeodeticDistances.push(segmentDistance); + let y = 0; + while ((y += this.terria.samplingPathStep) < segmentDistance) { + interpolatedCartographics.push( + geodesic.interpolateUsingSurfaceDistance(y) + ); + } + // original points have to be used + originalStopsIndex.push(interpolatedCartographics.length); + interpolatedCartographics.push(cartoPositions[i + 1]); } - const res = { - key: `${JSON.stringify(pointA)} ${JSON.stringify(pointB)}`, - index: index, - totalDistance: totalDistance, - stepDistances: stepDistances, - stepHeights: sampledCartographics.map((elem) => elem.height) - }; + // sample points on terrain + sampleTerrainMostDetailed(terrainProvider, interpolatedCartographics).then( + (sampledCartographics) => { + const sampledCartesians = + ellipsoid.cartographicArrayToCartesianArray(sampledCartographics); + + // compute distances + const stepDistances: number[] = []; + for (let i = 0; i < sampledCartesians.length; ++i) { + const dist: number = + i > 0 + ? Cartesian3.distance( + sampledCartesians[i - 1], + sampledCartesians[i] + ) + : 0; + stepDistances.push(dist); + } + + const stopAirDistances: number[] = [0]; + const distances3d: number[] = [0]; + for (let i = 0; i < originalStopsIndex.length - 1; ++i) { + stopAirDistances.push( + Cartesian3.distance( + sampledCartesians[originalStopsIndex[i + 1]], + sampledCartesians[originalStopsIndex[i]] + ) + ); + distances3d.push( + stepDistances + .filter( + (_, index) => + index > originalStopsIndex[i] && + index <= originalStopsIndex[i + 1] + ) + .reduce((sum: number, current: number) => sum + current, 0) + ); + } + + // update state of Terria + this.updatePath( + cartoPositions, + stopGeodeticDistances, + stopAirDistances, + distances3d, + sampledCartographics, + stepDistances + ); + } + ); + } - return res; + // action to update state of the path in Terria + @action + updatePath( + stopPoints: Cartographic[], + stopGeodeticDistances: number[], + stopAirDistances: number[], + stopGroundDistances: number[], + sampledPoints: Cartographic[], + sampledDistances: number[] + ) { + this.terria.path = { + stopPoints: stopPoints, + stopGeodeticDistances: stopGeodeticDistances, + stopAirDistances: stopAirDistances, + stopGroundDistances: stopGroundDistances, + geodeticDistance: stopGeodeticDistances.reduce( + (sum: number, current: number) => sum + current, + 0 + ), + airDistance: stopAirDistances.reduce((sum, current) => sum + current, 0), + groundDistance: stopGroundDistances.reduce( + (sum, current) => sum + current, + 0 + ), + sampledPoints: sampledPoints, + sampledDistances: sampledDistances + }; } @action @@ -152,58 +244,19 @@ export default class MeasureTool extends MapNavigationItemController { return; } - const pathPoints: Cartographic[] = []; - const pathDistances: number[] = []; const prevPoint = pointEntities.entities.values[0]; let prevPointPos = prevPoint.position!.getValue( this.terria.timelineClock.currentTime ); - - pathPoints.push(Cartographic.fromCartesian(prevPointPos, Ellipsoid.WGS84)); - pathDistances.push(0); - - const terrainProvider = this.terria.cesium?.scene.terrainProvider; - const ellipsoid = this.terria.cesium?.scene.globe.ellipsoid; - for (let i = 1; i < pointEntities.entities.values.length; i++) { const currentPoint = pointEntities.entities.values[i]; const currentPointPos = currentPoint.position!.getValue( this.terria.timelineClock.currentTime ); - const dist = this.getGeodesicDistance(prevPointPos, currentPointPos); - - this.totalDistanceMetres = this.totalDistanceMetres + dist; - - const currentCarto = Cartographic.fromCartesian( - currentPointPos, - Ellipsoid.WGS84 - ); - - if (!!terrainProvider && !!ellipsoid) { - const key = `${JSON.stringify( - pathPoints[pathPoints.length - 1] - )} ${JSON.stringify(currentCarto)}`; - if (!(key in this.terria.pathSampled)) { - this.updateSampledPath( - i, - pathPoints[pathPoints.length - 1], - currentCarto, - terrainProvider, - ellipsoid - ).then( - action((res) => { - this.terria.pathSampled = { - ...this.terria.pathSampled, - [res.key]: res - }; - }) - ); - } - } - - pathPoints.push(currentCarto); - pathDistances.push(dist); + this.totalDistanceMetres = + this.totalDistanceMetres + + this.getGeodesicDistance(prevPointPos, currentPointPos); prevPointPos = currentPointPos; } @@ -212,25 +265,13 @@ export default class MeasureTool extends MapNavigationItemController { const firstPointPos = firstPoint.position!.getValue( this.terria.timelineClock.currentTime ); - - const dist = this.getGeodesicDistance(prevPointPos, firstPointPos); - - this.totalDistanceMetres = this.totalDistanceMetres + dist; - - pathPoints.push( - Cartographic.fromCartesian(firstPointPos, Ellipsoid.WGS84) - ); - pathDistances.push(dist); + this.totalDistanceMetres = + this.totalDistanceMetres + + this.getGeodesicDistance(prevPointPos, firstPointPos); } - - this.terria.pathPoints = pathPoints; - this.terria.pathDistances = pathDistances; - - /*if (pathDistances.length > 0) { - this.viewState.elevationPanelIsVisible = true; - }*/ } + // unused since the split of MeasureAreaTool from MeasureTool updateArea(pointEntities: CustomDataSource) { this.totalAreaMetresSquared = 0; if (!this.userDrawing.closeLoop) { @@ -320,7 +361,6 @@ export default class MeasureTool extends MapNavigationItemController { } onCleanUp() { - this.terria.pathSampled = {}; this.totalDistanceMetres = 0; this.totalAreaMetresSquared = 0; //super.deactivate(); @@ -329,7 +369,11 @@ export default class MeasureTool extends MapNavigationItemController { onPointClicked(pointEntities: CustomDataSource) { this.updateDistance(pointEntities); + // avoid to compute area //this.updateArea(pointEntities); + + // compute sampled path + this.sampleEntirePath(pointEntities); } onPointMoved(pointEntities: CustomDataSource) { @@ -339,7 +383,7 @@ export default class MeasureTool extends MapNavigationItemController { onMakeDialogMessage = () => { const distance = this.prettifyNumber(this.totalDistanceMetres, false); - let message = distance ? `Lunghezza: ${distance}` : ""; + let message = distance ? `
          Dist. geodetica: ${distance}` : ""; if (this.totalAreaMetresSquared !== 0) { message += "
          " + @@ -355,6 +399,10 @@ export default class MeasureTool extends MapNavigationItemController { this.onClose(); //this.userDrawing.endDrawing(); //super.deactivate(); + + if (isDefined(this.disposeSamplingPathStep)) { + this.disposeSamplingPathStep(); + } } /** diff --git a/lib/ReactViews/Map/Navigation/registerMapNavigations.tsx b/lib/ReactViews/Map/Navigation/registerMapNavigations.tsx index c351420c877..68c8544334c 100644 --- a/lib/ReactViews/Map/Navigation/registerMapNavigations.tsx +++ b/lib/ReactViews/Map/Navigation/registerMapNavigations.tsx @@ -114,8 +114,9 @@ export const registerMapNavigations = (viewState: ViewState) => { mapNavigationModel.addItem({ id: MeasureTool.id, name: "translate#measure.measureToolTitle", - title: `:Misura la lunghezza di una linea spezzata definita tramite punti + title: `:Misura la lunghezza di una linea spezzata (o percorso) definita tramite punti clicca sulla mappa per aggiungere un altro punto- + clicca su un segmento esistente per spezzarlo con un nuovo punto- clicca su un punto esistente per rimuoverlo- trascina un punto per spostarlo-`, location: "TOP", @@ -126,7 +127,6 @@ export const registerMapNavigations = (viewState: ViewState) => { const measureAreaTool = new MeasureAreaTool({ terria, - viewState, onClose: () => { runInAction(() => { viewState.terria.mapNavigationModel.enable(MeasureTool.id); @@ -151,6 +151,7 @@ export const registerMapNavigations = (viewState: ViewState) => { title: `:Misura l'area di un poligono definito tramite punti i poligoni sono chiusi automaticamente- clicca sulla mappa per aggiungere un altro punto- + clicca su un segmento esistente per spezzarlo con un nuovo punto- clicca su un punto esistente per rimuoverlo- trascina un punto per spostarlo-`, location: "TOP", From 7cb568b74b91f540006127036673c530a4c9b20d Mon Sep 17 00:00:00 2001 From: glughi Date: Thu, 23 Mar 2023 10:54:44 +0100 Subject: [PATCH 102/215] Convert to TS and improve ElevationPanel, ElevationDownload and ElevationChartPanel --- .../Custom/Chart/ElevationChartPanel.jsx | 173 --------- .../Custom/Chart/ElevationChartPanel.tsx | 194 ++++++++++ ...tionDownload.jsx => ElevationDownload.tsx} | 64 ++-- lib/ReactViews/Elevation/ElevationPanel.jsx | 247 ------------ lib/ReactViews/Elevation/ElevationPanel.tsx | 352 ++++++++++++++++++ lib/ReactViews/Elevation/elevation-panel.scss | 4 +- 6 files changed, 585 insertions(+), 449 deletions(-) delete mode 100644 lib/ReactViews/Custom/Chart/ElevationChartPanel.jsx create mode 100644 lib/ReactViews/Custom/Chart/ElevationChartPanel.tsx rename lib/ReactViews/Elevation/{ElevationDownload.jsx => ElevationDownload.tsx} (65%) delete mode 100644 lib/ReactViews/Elevation/ElevationPanel.jsx create mode 100644 lib/ReactViews/Elevation/ElevationPanel.tsx diff --git a/lib/ReactViews/Custom/Chart/ElevationChartPanel.jsx b/lib/ReactViews/Custom/Chart/ElevationChartPanel.jsx deleted file mode 100644 index 430363d0943..00000000000 --- a/lib/ReactViews/Custom/Chart/ElevationChartPanel.jsx +++ /dev/null @@ -1,173 +0,0 @@ -"use strict"; - -import { values } from "mobx"; -import { observer } from "mobx-react"; -import PropTypes from "prop-types"; -import React from "react"; -import defined from "terriajs-cesium/Source/Core/defined"; -import Icon from "../../../Styled/Icon"; -import Chart from "./BottomDockChart"; -import Styles from "./chart-panel.scss"; -import { action } from "mobx"; - -const height = 300; - -@observer -class ElevationChartPanel extends React.Component { - static displayName = "ElevationChartPanel"; - - static propTypes = { - terria: PropTypes.object.isRequired, - onHeightChange: PropTypes.func, - viewState: PropTypes.object.isRequired, - animationDuration: PropTypes.number - }; - - @action - closePanel() { - this.props.viewState.elevationChartIsVisible = false; - } - - componentDidUpdate() { - if (defined(this.props.onHeightChange)) { - this.props.onHeightChange(); - } - } - - render() { - const chartItems = []; - - if ( - !!this.props.terria?.pathPoints && - this.props.terria.pathPoints.slice().length > 0 - ) { - /* const pointItem = new GeoJsonCatalogItem(createGuid(), this.props.terria); - pointItem.setTrait( - CommonStrata.user, - "style", - createStratumInstance(StyleTraits, { - "stroke-width": 3, - "marker-size": "30", - stroke: "#ffffff", - "marker-color": "#f00", - "marker-opacity": 1 - }) - ); - pointItem.setTrait(CommonStrata.user, "geoJsonData", { - type: "Feature", - properties: {}, - geometry: { - type: "Point", - //coordinates: [props.point.longitude, props.point.latitude] - coordinates: [this.props.terria.pathPoints[0].longitude, this.props.terria.pathPoints[0].latitude] - } - }); - pointItem.setTrait(CommonStrata.user, "show", true); - pointItem.setTrait(CommonStrata.user, "isOpenInWorkbench", true); - pointItem.setTrait(CommonStrata.user, "isOpen", true); - pointItem.setTrait(CommonStrata.underride, "name", "marco"); - this.props.terria.addModel(pointItem); - this.props.terria.overlays.add(pointItem); */ - - const pathDistances = this.props.terria.pathDistances.slice(); - const y = this.props.terria.pathPoints - .slice() - .map((p) => Math.round(p.height)); - const item = { - categoryName: "Percorso", - name: "in aria", - units: "m", - isSelectedInWorkbench: false, - points: y.map((h, i) => ({ - x: pathDistances - .map((v, j) => (j <= i ? v : 0)) - .reduce((a, b) => a + b, 0) - .toFixed(2), - y: h - })), - // "pointOnMap": points.map(p => ({ "latitude": p.latitude, "longitude": p.longitude })), - key: "path", - type: "lineAndPoint", - glyphStyle: "circle", - getColor: () => "#f00", - domain: { - x: [0, pathDistances.reduce((a, b) => a + b, 0)], - y: [Math.min(...y), Math.max(...y)] - } - }; - chartItems.push(item); - - const pathSampled = values(this.props.terria.pathSampled).sort( - (a, b) => a.index > b.index - ); - const sampledX = []; - const sampledY = []; - let distance = 0; - pathSampled.forEach((elem) => { - elem.stepDistances.forEach((dist, i) => { - distance += dist; - sampledX.push(distance.toFixed(2)); - sampledY.push(Math.round(elem.stepHeights[i])); - }); - }); - const itemSampled = { - categoryName: "Percorso", - name: "a terra", - units: "m", - isSelectedInWorkbench: false, - points: sampledX.map((v, i) => { - return { x: v, y: sampledY[i] }; - }), - key: "path_sampled", - type: "line", - glyphStyle: "circle", - getColor: () => "#0f0", - domain: { - x: [0, distance], - y: [Math.min(...sampledY), Math.max(...sampledY)] - } - }; - chartItems.push(itemSampled); - - this.props.terria.currentViewer.notifyRepaintRequired(); - } - - return ( -
          -
          -
          -
          -
          - - -
          -
          - {!!chartItems && ( - - )} -
          -
          -
          -
          -
          - ); - } -} - -export default ElevationChartPanel; diff --git a/lib/ReactViews/Custom/Chart/ElevationChartPanel.tsx b/lib/ReactViews/Custom/Chart/ElevationChartPanel.tsx new file mode 100644 index 00000000000..05f4eb14f89 --- /dev/null +++ b/lib/ReactViews/Custom/Chart/ElevationChartPanel.tsx @@ -0,0 +1,194 @@ +//"use strict"; + +import { observer } from "mobx-react"; +import React, { useState, useEffect } from "react"; +import Icon from "../../../Styled/Icon"; +import Chart from "./BottomDockChart"; +import Styles from "./chart-panel.scss"; +import { action } from "mobx"; +import ViewState from "../../../ReactViewModels/ViewState"; +import Terria from "../../../Models/Terria"; +import Cartographic from "terriajs-cesium/Source/Core/Cartographic"; +import GeoJsonCatalogItem from "../../../Models/Catalog/CatalogItems/GeoJsonCatalogItem"; +import CommonStrata from "../../../Models/Definition/CommonStrata"; +import createStratumInstance from "../../../Models/Definition/createStratumInstance"; +import StyleTraits from "../../../Traits/TraitsClasses/StyleTraits"; +import createGuid from "terriajs-cesium/Source/Core/createGuid"; +import CesiumMath from "terriajs-cesium/Source/Core/Math"; +import { addMarker } from "../../../Models/LocationMarkerUtils"; + +const height = 300; + +interface Props { + terria: Terria; + viewState: ViewState; +} + +const ElevationChartPanel = observer((props: Props) => { + const { terria, viewState } = props; + + const [chartItems, setChartItems] = useState(); + + const closePanel = action(() => { + viewState.elevationChartIsVisible = false; + }); + + const fetchPathDataChart = ( + points: Cartographic[] | undefined, + distances: number[] | undefined, + totalDistance: number | undefined + ) => { + if (!points || !distances || !totalDistance) { + return; + } + + const pointsHeight = points.map((point) => point.height); + + const chartPoints = pointsHeight.map((height, i) => ({ + x: distances.map((v, j) => (j <= i ? v : 0)).reduce((a, b) => a + b, 0), + y: height + })); + + const chartDomain = { + x: [0, totalDistance], + y: [Math.min(...pointsHeight), Math.max(...pointsHeight)] + }; + + return { chartPoints, chartDomain }; + }; + + useEffect(() => { + if (terria?.path) { + const airData = fetchPathDataChart( + terria.path.stopPoints, + terria.path.stopAirDistances, + terria.path.airDistance + ); + const groundData = fetchPathDataChart( + terria.path.sampledPoints, + terria.path.sampledDistances, + terria.path.groundDistance + ); + + const items = []; + + if (airData?.chartPoints && airData.chartDomain) { + items.push({ + categoryName: "Percorso", + name: "in aria", + units: "m", + isSelectedInWorkbench: false, + key: "path", + type: "lineAndPoint", + glyphStyle: "circle", + getColor: () => "#f00", + points: airData?.chartPoints, + domain: airData?.chartDomain + }); + } + if (groundData?.chartPoints && groundData.chartDomain) { + //////////////////// + /*const _marker = new GeoJsonCatalogItem(createGuid(), terria); + _marker.setTrait(CommonStrata.user, "name", "ciccio"); + _marker.setTrait( + CommonStrata.user, + "description", + "Posizione dell'utente" + ); + _marker.setTrait(CommonStrata.user, "geoJsonData", { + type: "Feature", + geometry: { + type: "Point", + coordinates: [ + CesiumMath.toDegrees(terria.path?.sampledPoints?.[2].longitude ?? 0), + CesiumMath.toDegrees(terria.path?.sampledPoints?.[2].latitude ?? 0) + ] + }, + properties: { + title: "urca urca", + longitude: terria.path?.sampledPoints?.[20].longitude, + latitude: terria.path?.sampledPoints?.[20].latitude + } + }); + _marker.setTrait( + CommonStrata.user, + "style", + createStratumInstance(StyleTraits, { + "marker-size": "25", + "marker-color": "#FFABD5", + stroke: "#ffffff", + "stroke-width": 3 + }) + ); + _marker.setTrait(CommonStrata.user, "clampToGround", true); + terria.workbench.add(_marker);*/ + + console.log("birra"); + addMarker(terria, { + name: "ciao", + location: { + longitude: CesiumMath.toDegrees( + terria.path?.sampledPoints?.[2].longitude ?? 0 + ), + latitude: CesiumMath.toDegrees( + terria.path?.sampledPoints?.[2].latitude ?? 0 + ) + } + }); + + items.push({ + categoryName: "Percorso", + name: "al suolo", + units: "m", + //isSelectedInWorkbench: false, + key: "path_sampled", + type: "line", + glyphStyle: "circle", + getColor: () => "#0f0", + points: groundData?.chartPoints, + domain: groundData?.chartDomain /*, + pointOnMap: { "latitude": terria.path?.sampledPoints?.[20].latitude, "longitude": terria.path?.sampledPoints?.[20].longitude }, + isSelectedInWorkbench: true, + showInChartPanel: true, + updateIsSelectedInWorkbench: () => {},*/ + }); + } + + setChartItems(items); + } + }, [terria.path, terria.samplingPathStep]); + + return ( +
          +
          +
          +
          + + +
          +
          + {chartItems && ( + + )} +
          +
          +
          +
          + ); +}); + +export default ElevationChartPanel; diff --git a/lib/ReactViews/Elevation/ElevationDownload.jsx b/lib/ReactViews/Elevation/ElevationDownload.tsx similarity index 65% rename from lib/ReactViews/Elevation/ElevationDownload.jsx rename to lib/ReactViews/Elevation/ElevationDownload.tsx index 4359a994925..2384413ef20 100644 --- a/lib/ReactViews/Elevation/ElevationDownload.jsx +++ b/lib/ReactViews/Elevation/ElevationDownload.tsx @@ -1,25 +1,36 @@ import React, { useState } from "react"; import CesiumMath from "terriajs-cesium/Source/Core/Math"; +import Ellipsoid from "terriajs-cesium/Source/Core/Ellipsoid"; import Cartographic from "terriajs-cesium/Source/Core/Cartographic"; import Entity from "terriajs-cesium/Source/DataSources/Entity"; import EntityCollection from "terriajs-cesium/Source/DataSources/EntityCollection"; import PolylineGraphics from "terriajs-cesium/Source/DataSources/PolylineGraphics"; import exportKml from "terriajs-cesium/Source/DataSources/exportKml"; import DataUri from "../../Core/DataUri"; -import Dropdown from "../Generic/Dropdown"; +//import Dropdown from "../Generic/Dropdown"; import Icon from "../../Styled/Icon"; import Styles from "./elevation-download.scss"; -import PropTypes from "prop-types"; +//import PropTypes from "prop-types"; +import { PathCustom } from "../../Models/Terria"; +import { exportKmlResultKml } from "terriajs-cesium"; -const ElevationDownload = (props) => { - const { data, name, ellipsoid } = props; +const Dropdown = require("../Generic/Dropdown"); - const [kml, setKml] = useState(null); +interface Props { + path: PathCustom; + name: string; + ellipsoid: Ellipsoid; +} + +const ElevationDownload = (props: Props) => { + const { path, name, ellipsoid } = props; + + const [kml, setKml] = useState(); const getLinks = () => { return [ { - href: DataUri.make("csv", generateCsvData(data)), + href: DataUri.make("csv", generateCsvData(path)), download: `${name}.csv`, label: "CSV" }, @@ -34,15 +45,15 @@ const ElevationDownload = (props) => { label: "KML" }, { - href: DataUri.make("json", generateJson(data)), + href: DataUri.make("json", generateJson(path)), download: `${name}.json`, label: "JSON" } ].filter((download) => !!download.href); }; - const generateKml = async (data) => { - if (!data || !data.pathPoints) { + const generateKml = async (path: PathCustom) => { + if (!path?.stopPoints) { return; } const output = { @@ -52,41 +63,40 @@ const ElevationDownload = (props) => { }; output.entities.add( new Entity({ - id: 0, + id: "0", polyline: new PolylineGraphics({ - positions: data.pathPoints.map((elem) => + positions: path.stopPoints.map((elem) => Cartographic.toCartesian(elem, ellipsoid) ) }) }) ); - const res = await exportKml(output); + const res = (await exportKml(output)) as exportKmlResultKml; return res.kml; }; - const generateJson = (data) => { - if (!data || !data.pathPoints) { + const generateJson = (path: PathCustom) => { + /*if (!path?.stopPoints) { return; - } - + }*/ return JSON.stringify({ type: "LineString", - coordinates: data.pathPoints.map((elem) => [ + coordinates: path.stopPoints.map((elem) => [ CesiumMath.toDegrees(elem.longitude), CesiumMath.toDegrees(elem.latitude), Math.round(elem.height) - ]), - properties: data?.properties + ]) + //properties: data?.properties }); }; - const generateCsvData = (data) => { - if (!data || !data.pathPoints) { + const generateCsvData = (path: PathCustom) => { + /*if (!path?.stopPoints) { return; - } - const rows = [Object.keys(data.pathPoints[0]).join(",")]; + }*/ + const rows = [Object.keys(path.stopPoints[0]).join(",")]; rows.push( - ...data.pathPoints.map((elem) => + ...path.stopPoints.map((elem) => [ CesiumMath.toDegrees(elem.longitude), CesiumMath.toDegrees(elem.latitude), @@ -104,7 +114,7 @@ const ElevationDownload = (props) => { ); if (ellipsoid) { - generateKml(data).then((res) => { + generateKml(path).then((res) => { setKml(res); }); } @@ -126,10 +136,10 @@ const ElevationDownload = (props) => { ); }; -ElevationDownload.propTypes = { +/*ElevationDownload.propTypes = { data: PropTypes.object, name: PropTypes.string, ellipsoid: PropTypes.object -}; +};*/ export default ElevationDownload; diff --git a/lib/ReactViews/Elevation/ElevationPanel.jsx b/lib/ReactViews/Elevation/ElevationPanel.jsx deleted file mode 100644 index bed021015bb..00000000000 --- a/lib/ReactViews/Elevation/ElevationPanel.jsx +++ /dev/null @@ -1,247 +0,0 @@ -"use strict"; - -import React from "react"; -import DragWrapper from "../DragWrapper"; -import Styles from "./elevation-panel.scss"; -import classNames from "classnames"; -import Icon, { StyledIcon } from "../../Styled/Icon"; -import { action, computed } from "mobx"; -import { observer } from "mobx-react"; -import ElevationDownload from "./ElevationDownload"; -import EllipsoidGeodesic from "terriajs-cesium/Source/Core/EllipsoidGeodesic"; -import CesiumMath from "terriajs-cesium/Source/Core/Math"; -import Button from "../../Styled/Button"; -import Box from "../../Styled/Box"; - -const ElevationPanel = observer((props) => { - const { terria, viewState } = props; - - const panelClassName = classNames(Styles.panel, { - [Styles.isCollapsed]: viewState.elevationPanelIsCollapsed, - [Styles.isVisible]: viewState.elevationPanelIsVisible, - [Styles.isTranslucent]: viewState.explorerPanelIsVisible - }); - - const close = action(() => { - viewState.elevationPanelIsVisible = false; - }); - - const toggleCollapsed = action(() => { - viewState.elevationPanelIsCollapsed = !viewState.elevationPanelIsCollapsed; - }); - - const toggleChart = action(() => { - viewState.elevationChartIsVisible = !viewState.elevationChartIsVisible; - }); - - const toggleLineClampToGround = action(() => { - terria.clampMeasureLineToGround = !terria.clampMeasureLineToGround; - }); - - const prettifyNumber = (number, squared) => { - if (typeof number === "undefined") { - return 0; - } - - if (number <= 0) { - return ""; - } - // Given a number representing a number in metres, make it human readable - let label = "m"; - if (squared) { - if (number > 999999) { - label = "km"; - number = number / 1000000.0; - } - } else { - if (number > 999) { - label = "km"; - number = number / 1000.0; - } - } - - number = number.toFixed(2); - // http://stackoverflow.com/questions/2901102/how-to-print-a-number-with-commas-as-thousands-separators-in-javascript - number = number.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ","); - let numberStr = number + " " + label; - if (squared) { - numberStr += "\u00B2"; - } - return numberStr; - }; - - const getBearing = () => { - if ( - !terria?.cesium?.scene?.globe?.ellipsoid || - !terria.pathPoints || - terria.pathPoints.length === 0 - ) { - return ""; - } - - const ellipsoid = terria.cesium.scene.globe.ellipsoid; - const start = terria.pathPoints[0]; - const end = terria.pathPoints[terria.pathPoints.length - 1]; - const geo = new EllipsoidGeodesic(start, end, ellipsoid); - const bearing = (CesiumMath.toDegrees(geo.startHeading) + 360) % 360; - - return `${bearing.toFixed(0)}°`; - }; - - const getHeightDifference = () => { - if (!terria.pathPoints || terria.pathPoints.length === 0) { - return ""; - } - - const start = terria.pathPoints[0]; - const end = terria.pathPoints[terria.pathPoints.length - 1]; - const difference = end.height - start.height; - - return `${difference.toFixed(0)}m`; - }; - - const heights = computed(() => { - return terria.pathPoints?.map((elem) => elem.height) || []; - }); - - return ( - -
          -
          -
          - -
          - PERCORSO -
          -
          - -
          - -
          -
          - - - - - - - - - - - - - - - - - - - - - -
          Alt. minAlt. maxRottaDislivello
          {prettifyNumber(Math.min(...heights.get()))}{prettifyNumber(Math.max(...heights.get()))}{getBearing()}{getHeightDifference()}
          -
          -
          - Dettaglio tappe -
          - - - - - - - - - - - - {terria.pathPoints && - terria.pathPoints.map((point, idx) => { - const key = `${JSON.stringify( - terria.pathPoints[idx - 1] - )} ${JSON.stringify(point)}`; - return ( - - - - - - - - ); - })} - -
          #AltitudineDislivelloDistanzaDistanza 3D
          {idx + 1}{point.height.toFixed(0)} - {idx > 0 - ? ( - point.height - terria.pathPoints[idx - 1].height - ).toFixed(0) - : ""} - - {idx > 0 ? terria.pathDistances[idx].toFixed(2) : ""} - - {idx > 0 && key in terria.pathSampled - ? terria.pathSampled[key].totalDistance.toFixed(2) - : ""} -
          - {!!terria?.cesium?.scene?.globe?.ellipsoid && ( - - )} -
          -
          -
          - ); -}); - -export default ElevationPanel; diff --git a/lib/ReactViews/Elevation/ElevationPanel.tsx b/lib/ReactViews/Elevation/ElevationPanel.tsx new file mode 100644 index 00000000000..c0a0f35772e --- /dev/null +++ b/lib/ReactViews/Elevation/ElevationPanel.tsx @@ -0,0 +1,352 @@ +//"use strict"; + +import React from "react"; +//import DragWrapper from "../DragWrapper"; +import Styles from "./elevation-panel.scss"; +import classNames from "classnames"; +import Icon, { StyledIcon } from "../../Styled/Icon"; +import { action, computed } from "mobx"; +import { observer } from "mobx-react"; +import ElevationDownload from "./ElevationDownload"; +import EllipsoidGeodesic from "terriajs-cesium/Source/Core/EllipsoidGeodesic"; +import CesiumMath from "terriajs-cesium/Source/Core/Math"; +import Cartographic from "terriajs-cesium/Source/Core/Cartographic"; +import Button from "../../Styled/Button"; +//import Slider from "rc-slider"; +import Text from "../../Styled/Text"; +import Box from "../../Styled/Box"; +import Input from "../../Styled/Input"; +import ViewState from "../../ReactViewModels/ViewState"; +import Terria, { PathCustom } from "../../Models/Terria"; + +const DragWrapper = require("../DragWrapper"); + +interface Props { + viewState: ViewState; + terria: Terria; +} + +const ElevationPanel = observer((props: Props) => { + const { terria, viewState } = props; + + //const [numOfSamplingPoints, setNumOfSamplingPoints] = React.useState(10); + + const panelClassName = classNames(Styles.panel, { + [Styles.isCollapsed]: viewState.elevationPanelIsCollapsed, + [Styles.isVisible]: viewState.elevationPanelIsVisible, + [Styles.isTranslucent]: viewState.explorerPanelIsVisible + }); + + const close = action(() => { + viewState.elevationPanelIsVisible = false; + }); + + const toggleCollapsed = action(() => { + viewState.elevationPanelIsCollapsed = !viewState.elevationPanelIsCollapsed; + }); + + const toggleChart = action(() => { + viewState.elevationChartIsVisible = !viewState.elevationChartIsVisible; + }); + + const toggleLineClampToGround = action(() => { + terria.clampMeasureLineToGround = !terria.clampMeasureLineToGround; + }); + + const prettifyNumber = (number: number, squared: boolean = false) => { + if (number <= 0) { + return ""; + } + // Given a number representing a number in metres, make it human readable + let label = "m"; + if (squared) { + if (number > 999999) { + label = "km"; + number = number / 1000000.0; + } + } else { + if (number > 999) { + label = "km"; + number = number / 1000.0; + } + } + let numberStr = number.toFixed(2); + // http://stackoverflow.com/questions/2901102/how-to-print-a-number-with-commas-as-thousands-separators-in-javascript + numberStr.replace(/\B(?=(\d{3})+(?!\d))/g, ","); + numberStr = `${numberStr} ${label}`; + if (squared) { + numberStr += "\u00B2"; + } + return numberStr; + }; + + const getBearing = () => { + if ( + !terria?.cesium?.scene?.globe?.ellipsoid || + !terria?.path?.stopPoints || + terria.path.stopPoints.length === 0 + ) { + return ""; + } + + const ellipsoid = terria.cesium.scene.globe.ellipsoid; + const start = terria.path.stopPoints[0]; + const end = terria.path.stopPoints.at(-1); + const geo = new EllipsoidGeodesic(start, end, ellipsoid); + const bearing = (CesiumMath.toDegrees(geo.startHeading) + 360) % 360; + + return `${bearing.toFixed(0)}°`; + }; + + const getHeightDifference = () => { + if (!terria?.path?.stopPoints || terria.path.stopPoints.length < 2) { + return ""; + } + + const start = terria.path.stopPoints[0]; + const end = terria.path.stopPoints.at(-1) as Cartographic; + const difference = end.height - start.height; + + return `${difference.toFixed(0)} m`; + }; + + const heights = computed(() => { + return terria?.path?.stopPoints?.map((elem) => elem.height) || []; + }); + + const changeSamplingPathStep = action((val: number) => { + terria.samplingPathStep = val; + }); + + return ( + +
          +
          +
          + + PERCORSO + + +
          + +
          +
          + + + + + + {/* + Punti di campionamento per tappa: {numOfSamplingPoints} + + { + changeSamplingPointsNumber(val) + }} + />*/} + + Passo di campionamento del terreno (metri): + + + changeSamplingPathStep(parseInt(e.target.value))} + /> + +
          + + Dettaglio percorso + + + + + + + + + + + + + + + + + + + +
          Alt. minAlt. maxRottaDisl.
          {prettifyNumber(Math.min(...heights.get()))}{prettifyNumber(Math.max(...heights.get()))}{getBearing()}{getHeightDifference()}
          + + + + + + + + + + + + + + + +
          + Dist. +
          + geodetica +
          + Dist. +
          + in aria +
          + Dist. +
          + al suolo +
          {prettifyNumber(terria.path?.geodeticDistance ?? 0)}{prettifyNumber(terria.path?.airDistance ?? 0)}{prettifyNumber(terria.path?.groundDistance ?? 0)}
          +
          +
          + + Dettaglio tappe + + + + + + + + + + + + + + + {terria?.path?.stopPoints && + terria.path.stopPoints.length > 0 && + terria.path.stopPoints.map((point, idx, array) => { + return ( + + + + + + + + + ); + })} + +
          #Alt.Disl. + Dist. +
          + geodetica +
          + Dist. +
          + in aria +
          + Dist. +
          + al suolo +
          {idx + 1}{`${point.height.toFixed(0)} m`} + {idx > 0 + ? `${(point.height - array[idx - 1].height).toFixed( + 0 + )} m` + : ""} + + {idx > 0 && terria?.path + ? prettifyNumber( + terria.path.stopGeodeticDistances[idx] + ) + : ""} + + {idx > 0 && terria?.path?.stopAirDistances + ? prettifyNumber(terria.path.stopAirDistances[idx]) + : ""} + + {idx > 0 && terria?.path?.stopGroundDistances + ? prettifyNumber( + terria.path.stopGroundDistances[idx] + ) + : ""} +
          +
          + {!!terria?.cesium?.scene?.globe?.ellipsoid && terria.path && ( + + )} +
          +
          +
          + ); +}); + +export default ElevationPanel; diff --git a/lib/ReactViews/Elevation/elevation-panel.scss b/lib/ReactViews/Elevation/elevation-panel.scss index cd9cc58cd25..07f24e55c7c 100644 --- a/lib/ReactViews/Elevation/elevation-panel.scss +++ b/lib/ReactViews/Elevation/elevation-panel.scss @@ -90,10 +90,10 @@ overflow-y: auto; overflow-x: auto; - max-height: calc(80vh - #{$padding * 2 + $btn-default-line-height}); + max-height: calc(60vh - #{$padding * 2 + $btn-default-line-height}); font-size: $font-size-feature-info; - padding-bottom: 40px; + padding-bottom: 120px; } .location { From aa88170e7ba37e98898ffddf1d03b5c33ab15323 Mon Sep 17 00:00:00 2001 From: glughi Date: Thu, 23 Mar 2023 11:07:11 +0100 Subject: [PATCH 103/215] Adds samplingPathStep to state of Terria --- lib/Models/Terria.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/Models/Terria.ts b/lib/Models/Terria.ts index 2ca266204df..82ee60d5902 100644 --- a/lib/Models/Terria.ts +++ b/lib/Models/Terria.ts @@ -575,10 +575,10 @@ export default class Terria { @observable path: PathCustom | undefined; /** - * Gets or sets the data computed sampling a path drawn with the MeasureTool. - * @type {PathSampled} + * Gets or sets the distance, in meters, at which sampling the terrain along the path. + * @type {number} */ - @observable pathSampled: PathSampled = {}; + @observable samplingPathStep: number = 500; /** * Gets or sets a value indicating whether the path line drawn by MeasureTool is clamped to ground. From 14dabf65296ddf6e622d49fbb03ea6c2cfefa7c1 Mon Sep 17 00:00:00 2001 From: glughi Date: Tue, 4 Apr 2023 10:52:22 +0200 Subject: [PATCH 104/215] Working on Path and ElevationPanel --- lib/Models/Terria.ts | 20 +- lib/ReactViews/Elevation/ElevationPanel.tsx | 601 +++++++++++------- .../Map/Navigation/Items/MeasureAreaTool.ts | 121 ++++ .../Map/Navigation/Items/MeasureTool.ts | 16 +- 4 files changed, 507 insertions(+), 251 deletions(-) diff --git a/lib/Models/Terria.ts b/lib/Models/Terria.ts index 82ee60d5902..727f861f231 100644 --- a/lib/Models/Terria.ts +++ b/lib/Models/Terria.ts @@ -391,15 +391,19 @@ interface HomeCameraInit { } export interface PathCustom { + isClosed: boolean; + hasArea: boolean; stopPoints: Cartographic[]; stopGeodeticDistances: number[]; - stopAirDistances: number[] | undefined; - stopGroundDistances: number[] | undefined; - geodeticDistance: number | undefined; - airDistance: number | undefined; - groundDistance: number | undefined; - sampledPoints: Cartographic[] | undefined; - sampledDistances: number[] | undefined; + stopAirDistances?: number[]; + stopGroundDistances?: number[]; + geodeticDistance?: number; + airDistance?: number; + groundDistance?: number; + sampledPoints?: Cartographic[]; + sampledDistances?: number[]; + geodeticArea?: number; + airArea?: number; } export default class Terria { @@ -572,7 +576,7 @@ export default class Terria { * Gets or sets the data computed sampling a path drawn with the MeasureTool. * @type {PathCustom} */ - @observable path: PathCustom | undefined; + @observable path: PathCustom | undefined; /** * Gets or sets the distance, in meters, at which sampling the terrain along the path. diff --git a/lib/ReactViews/Elevation/ElevationPanel.tsx b/lib/ReactViews/Elevation/ElevationPanel.tsx index c0a0f35772e..a8ab25e956a 100644 --- a/lib/ReactViews/Elevation/ElevationPanel.tsx +++ b/lib/ReactViews/Elevation/ElevationPanel.tsx @@ -18,6 +18,7 @@ import Box from "../../Styled/Box"; import Input from "../../Styled/Input"; import ViewState from "../../ReactViewModels/ViewState"; import Terria, { PathCustom } from "../../Models/Terria"; +import { useTheme } from "styled-components"; const DragWrapper = require("../DragWrapper"); @@ -29,7 +30,13 @@ interface Props { const ElevationPanel = observer((props: Props) => { const { terria, viewState } = props; - //const [numOfSamplingPoints, setNumOfSamplingPoints] = React.useState(10); + const theme = useTheme(); + + const [samplingPathStep, setSamplingPathStep] = React.useState( + terria.samplingPathStep + ); + const [isValidSamplingPathStep, setIsValidSamplingPathStep] = + React.useState(true); const panelClassName = classNames(Styles.panel, { [Styles.isCollapsed]: viewState.elevationPanelIsCollapsed, @@ -53,34 +60,11 @@ const ElevationPanel = observer((props: Props) => { terria.clampMeasureLineToGround = !terria.clampMeasureLineToGround; }); - const prettifyNumber = (number: number, squared: boolean = false) => { - if (number <= 0) { - return ""; - } - // Given a number representing a number in metres, make it human readable - let label = "m"; - if (squared) { - if (number > 999999) { - label = "km"; - number = number / 1000000.0; - } - } else { - if (number > 999) { - label = "km"; - number = number / 1000.0; - } - } - let numberStr = number.toFixed(2); - // http://stackoverflow.com/questions/2901102/how-to-print-a-number-with-commas-as-thousands-separators-in-javascript - numberStr.replace(/\B(?=(\d{3})+(?!\d))/g, ","); - numberStr = `${numberStr} ${label}`; - if (squared) { - numberStr += "\u00B2"; - } - return numberStr; - }; + const changeSamplingPathStep = action((val: number) => { + terria.samplingPathStep = val; + }); - const getBearing = () => { + const getBearing = computed(() => { if ( !terria?.cesium?.scene?.globe?.ellipsoid || !terria?.path?.stopPoints || @@ -96,9 +80,9 @@ const ElevationPanel = observer((props: Props) => { const bearing = (CesiumMath.toDegrees(geo.startHeading) + 360) % 360; return `${bearing.toFixed(0)}°`; - }; + }); - const getHeightDifference = () => { + const getHeightDifference = computed(() => { if (!terria?.path?.stopPoints || terria.path.stopPoints.length < 2) { return ""; } @@ -108,50 +92,151 @@ const ElevationPanel = observer((props: Props) => { const difference = end.height - start.height; return `${difference.toFixed(0)} m`; - }; + }); const heights = computed(() => { return terria?.path?.stopPoints?.map((elem) => elem.height) || []; }); - const changeSamplingPathStep = action((val: number) => { - terria.samplingPathStep = val; + const rangeSamplingPathStep = computed(() => { + if (!terria?.path?.geodeticDistance) { + return [0, 0]; + } + const minExponent = 0; + const maxExponent = 3; + const thousandthExponent = 4; + const exponent = Math.min( + maxExponent, + Math.max( + minExponent, + terria.path.geodeticDistance.toFixed(0).length - thousandthExponent + ) + ); + const minSamplingPathStep = 10 ** exponent; + const maxSamplingPathStep = 2 * 10 ** maxExponent; + return [minSamplingPathStep, maxSamplingPathStep]; }); - return ( - -
          -
          -
          - - PERCORSO - - -
          + const prettifyNumber = (number: number, squared: boolean = false) => { + if (number <= 0) { + return ""; + } + // Given a number representing a number in metres, make it human readable + let label = "m"; + if (squared) { + if (number > 999999) { + label = "km"; + number = number / 1000000.0; + } + } else { + if (number > 999) { + label = "km"; + number = number / 1000.0; + } + } + let numberStr = number.toFixed(2); + // http://stackoverflow.com/questions/2901102/how-to-print-a-number-with-commas-as-thousands-separators-in-javascript + numberStr.replace(/\B(?=(\d{3})+(?!\d))/g, ","); + numberStr = `${numberStr} ${label}`; + if (squared) { + numberStr += "\u00B2"; + } + return numberStr; + }; + + const renderHeader = () => { + return ( +
          +
          + + PERCORSO +
          -
          - + +
          + ); + }; + + const renderSamplingStep = () => { + return ( + <> + + Passo di campionamento del terreno (metri): +
          + [min {rangeSamplingPathStep.get()[0]}, max{" "} + {rangeSamplingPathStep.get()[1]}] +
          + + + { + const val = parseInt(e.target.value); + setIsValidSamplingPathStep( + val >= rangeSamplingPathStep.get()[0] && + val <= rangeSamplingPathStep.get()[1] + ); + setSamplingPathStep(val); + }} + /> + + + + + ); + }; + + const renderBody = () => { + return ( +
          + + {!terria?.path?.hasArea && ( - - - - {/* - Punti di campionamento per tappa: {numOfSamplingPoints} - - { - changeSamplingPointsNumber(val) - }} - />*/} - - Passo di campionamento del terreno (metri): - - - changeSamplingPathStep(parseInt(e.target.value))} - /> - -
          - - Dettaglio percorso - - - - - - - - - - - - - - - - - - - -
          Alt. minAlt. maxRottaDisl.
          {prettifyNumber(Math.min(...heights.get()))}{prettifyNumber(Math.max(...heights.get()))}{getBearing()}{getHeightDifference()}
          - - - - - - - - - - - - - - - -
          - Dist. -
          - geodetica -
          - Dist. -
          - in aria -
          - Dist. -
          - al suolo -
          {prettifyNumber(terria.path?.geodeticDistance ?? 0)}{prettifyNumber(terria.path?.airDistance ?? 0)}{prettifyNumber(terria.path?.groundDistance ?? 0)}
          -
          -
          - - Dettaglio tappe - - - - - - - - - - - - - - - {terria?.path?.stopPoints && - terria.path.stopPoints.length > 0 && - terria.path.stopPoints.map((point, idx, array) => { - return ( - - - - - - - - - ); - })} - -
          #Alt.Disl. - Dist. -
          - geodetica -
          - Dist. -
          - in aria -
          - Dist. -
          - al suolo -
          {idx + 1}{`${point.height.toFixed(0)} m`} - {idx > 0 - ? `${(point.height - array[idx - 1].height).toFixed( - 0 - )} m` - : ""} - - {idx > 0 && terria?.path - ? prettifyNumber( - terria.path.stopGeodeticDistances[idx] - ) - : ""} - - {idx > 0 && terria?.path?.stopAirDistances - ? prettifyNumber(terria.path.stopAirDistances[idx]) - : ""} - - {idx > 0 && terria?.path?.stopGroundDistances - ? prettifyNumber( - terria.path.stopGroundDistances[idx] - ) - : ""} -
          -
          - {!!terria?.cesium?.scene?.globe?.ellipsoid && terria.path && ( - )} -
          + + + {!terria?.path?.hasArea && renderSamplingStep()} +
          + {!terria?.path?.hasArea ? renderPathSummary() : renderAreaSummary()} +
          + {terria.path?.sampledDistances && renderStepDetails()} + {!!terria?.cesium?.scene?.globe?.ellipsoid && terria.path && ( + + )} +
          + ); + }; + + const renderPathSummary = () => { + return ( + <> + + Dettaglio percorso + + + + + + + + + + + + + + + + + + + +
          Alt. minAlt. maxRottaDisl.
          {prettifyNumber(Math.min(...heights.get()))}{prettifyNumber(Math.max(...heights.get()))}{getBearing.get()}{getHeightDifference.get()}
          + + + + + + + + + + + + + + + +
          + Dist. +
          + geodetica +
          + Dist. +
          + in aria +
          + Dist. +
          + al suolo +
          {prettifyNumber(terria.path?.geodeticDistance ?? 0)}{prettifyNumber(terria.path?.airDistance ?? 0)}{prettifyNumber(terria.path?.groundDistance ?? 0)}
          +
          + + ); + }; + + const renderAreaSummary = () => { + return ( + <> + + Dettaglio area poligonale + + + + + + + + + + + + + + + + + + + +
          + Perimetro +
          + geodetico +
          + Perimetro +
          + in aria +
          + Area +
          + geodetica +
          + Area +
          + in aria +
          {prettifyNumber(terria.path?.geodeticArea ?? 0)}{prettifyNumber(terria.path?.airArea ?? 0)}{prettifyNumber(terria.path?.geodeticDistance ?? 0)}{prettifyNumber(terria.path?.airDistance ?? 0)}
          +
          + + ); + }; + + const renderStepDetails = () => { + return ( + <> + + Dettaglio tappe + + + + + + + + + + + + + + + {terria?.path?.stopPoints && + terria.path.stopPoints.length > 0 && + terria.path.stopPoints.map((point, idx, array) => { + return ( + + + + + + + + + ); + })} + +
          #Alt.Disl. + Dist. +
          + geodetica +
          + Dist. +
          + in aria +
          + Dist. +
          + al suolo +
          {idx + 1}{`${point.height.toFixed(0)} m`} + {idx > 0 + ? `${(point.height - array[idx - 1].height).toFixed( + 0 + )} m` + : ""} + + {idx > 0 && terria?.path + ? prettifyNumber( + terria.path.stopGeodeticDistances[idx] + ) + : ""} + + {idx > 0 && terria?.path?.stopAirDistances + ? prettifyNumber(terria.path.stopAirDistances[idx]) + : ""} + + {idx > 0 && terria?.path?.stopGroundDistances + ? prettifyNumber(terria.path.stopGroundDistances[idx]) + : ""} +
          +
          + + ); + }; + + return ( + +
          + {renderHeader()} + {renderBody()}
          ); diff --git a/lib/ReactViews/Map/Navigation/Items/MeasureAreaTool.ts b/lib/ReactViews/Map/Navigation/Items/MeasureAreaTool.ts index 2837171aab6..e6bcaa570bd 100644 --- a/lib/ReactViews/Map/Navigation/Items/MeasureAreaTool.ts +++ b/lib/ReactViews/Map/Navigation/Items/MeasureAreaTool.ts @@ -14,6 +14,8 @@ import ViewerMode from "../../../../Models/ViewerMode"; import { GLYPHS } from "../../../../Styled/Icon"; import MapNavigationItemController from "../../../../ViewModels/MapNavigation/MapNavigationItemController"; import EllipsoidTangentPlane from "terriajs-cesium/Source/Core/EllipsoidTangentPlane"; +import Cartographic from "terriajs-cesium/Source/Core/Cartographic"; + const PolygonGeometryLibrary = require("terriajs-cesium/Source/Core/PolygonGeometryLibrary").default; @@ -30,6 +32,7 @@ export default class MeasureAreaTool extends MapNavigationItemController { private readonly terria: Terria; private totalDistanceMetres: number = 0; private totalAreaMetresSquared: number = 0; + private totalFlatAreaMetresSquared: number = 0; private userDrawing: UserDrawing; onClose: () => void; @@ -88,6 +91,104 @@ export default class MeasureAreaTool extends MapNavigationItemController { return numberStr; } + // sample the entire path (polyline) every "samplingPathStep" meters + sampleEntirePath(pointEntities: CustomDataSource) { + const terrainProvider = this.terria.cesium?.scene.terrainProvider; + const ellipsoid = this.terria.cesium?.scene.globe.ellipsoid; + + if (!terrainProvider || !ellipsoid) { + return; + } + + // extract valid points from CustomDataSource + const cartesianEntities = pointEntities.entities.values.filter( + (elem) => elem?.position !== undefined && elem?.position !== null + ); + // if the path is a closed loop add the first point also as last point + if ( + this.userDrawing.closeLoop && + pointEntities.entities.values.length > 0 + ) { + cartesianEntities.push(pointEntities.entities.values[0]); + } + + const cartesianPostions = cartesianEntities.map((elem) => + elem.position!.getValue(this.terria.timelineClock.currentTime) + ); + + const stopAirDistances: number[] = [0]; + for (let i = 0; i < cartesianPostions.length - 1; ++i) { + stopAirDistances.push( + Cartesian3.distance(cartesianPostions[i + 1], cartesianPostions[i]) + ); + } + + // convert from cartesian to cartographic becouse "sampleTerrainMostDetailed" work with cartographic + const cartoPositions = cartesianPostions.map((elem) => { + return Cartographic.fromCartesian(elem, Ellipsoid.WGS84); + }); + + // index of the original stops in the new array of sampling points + const originalStopsIndex: number[] = [0]; + // geodetic distance between two stops + const stopGeodeticDistances: number[] = [0]; + + // compute sampling points every "samplingPathStep" meters + const interpolatedCartographics = [cartoPositions[0]]; + for (let i = 0; i < cartoPositions.length - 1; ++i) { + const geodesic = new EllipsoidGeodesic( + cartoPositions[i], + cartoPositions[i + 1], + ellipsoid + ); + const segmentDistance = geodesic.surfaceDistance; + stopGeodeticDistances.push(segmentDistance); + let y = 0; + while ((y += this.terria.samplingPathStep) < segmentDistance) { + interpolatedCartographics.push( + geodesic.interpolateUsingSurfaceDistance(y) + ); + } + // original points have to be used + originalStopsIndex.push(interpolatedCartographics.length); + interpolatedCartographics.push(cartoPositions[i + 1]); + } + + // update state of Terria + this.updatePath( + cartoPositions, + stopGeodeticDistances, + stopAirDistances, + this.totalFlatAreaMetresSquared, + this.totalAreaMetresSquared + ); + } + + // action to update state of the path in Terria + @action + updatePath( + stopPoints: Cartographic[], + stopGeodeticDistances: number[], + stopAirDistances: number[], + geodeticArea: number, + airArea: number + ) { + this.terria.path = { + isClosed: true, + hasArea: true, + stopPoints: stopPoints, + stopGeodeticDistances: stopGeodeticDistances, + stopAirDistances: stopAirDistances, + geodeticDistance: stopGeodeticDistances.reduce( + (sum: number, current: number) => sum + current, + 0 + ), + airDistance: stopAirDistances.reduce((sum, current) => sum + current, 0), + geodeticArea: geodeticArea, + airArea: airArea + }; + } + @action updateDistance(pointEntities: CustomDataSource) { this.totalDistanceMetres = 0; @@ -124,6 +225,7 @@ export default class MeasureAreaTool extends MapNavigationItemController { updateArea(pointEntities: CustomDataSource) { this.totalAreaMetresSquared = 0; + this.totalFlatAreaMetresSquared = 0; if (!this.userDrawing.closeLoop) { // Not a closed polygon? Don't calculate area. return; @@ -180,6 +282,7 @@ export default class MeasureAreaTool extends MapNavigationItemController { ); } let area = 0; + let flatArea = 0; for (let i = 0; i < geom.indices.length; i += 3) { const ind1 = geom.indices[i]; const ind2 = geom.indices[i + 1]; @@ -192,8 +295,22 @@ export default class MeasureAreaTool extends MapNavigationItemController { // Heron's formula const s = (a + b + c) / 2.0; area += Math.sqrt(s * (s - a) * (s - b) * (s - c)); + + // Flat area with Heron's formula + const carto1 = Cartographic.fromCartesian(coords[ind1], Ellipsoid.WGS84); + const carto2 = Cartographic.fromCartesian(coords[ind2], Ellipsoid.WGS84); + const carto3 = Cartographic.fromCartesian(coords[ind3], Ellipsoid.WGS84); + const aGeod = new EllipsoidGeodesic(carto1, carto2, Ellipsoid.WGS84); + const aDist = aGeod.surfaceDistance; + const bGeod = new EllipsoidGeodesic(carto2, carto3, Ellipsoid.WGS84); + const bDist = bGeod.surfaceDistance; + const cGeod = new EllipsoidGeodesic(carto3, carto1, Ellipsoid.WGS84); + const cDist = cGeod.surfaceDistance; + const s2 = (aDist + bDist + cDist) / 2.0; + flatArea += Math.sqrt(s2 * (s2 - aDist) * (s2 - bDist) * (s2 - cDist)); } this.totalAreaMetresSquared = area; + this.totalFlatAreaMetresSquared = flatArea; } getGeodesicDistance(pointOne: Cartesian3, pointTwo: Cartesian3) { @@ -213,12 +330,16 @@ export default class MeasureAreaTool extends MapNavigationItemController { onCleanUp() { this.totalDistanceMetres = 0; this.totalAreaMetresSquared = 0; + this.totalFlatAreaMetresSquared = 0; this.deactivate(); } onPointClicked(pointEntities: CustomDataSource) { this.updateDistance(pointEntities); this.updateArea(pointEntities); + + // compute sampled path + this.sampleEntirePath(pointEntities); } onPointMoved(pointEntities: CustomDataSource) { diff --git a/lib/ReactViews/Map/Navigation/Items/MeasureTool.ts b/lib/ReactViews/Map/Navigation/Items/MeasureTool.ts index d6e29180f8c..5762f628542 100644 --- a/lib/ReactViews/Map/Navigation/Items/MeasureTool.ts +++ b/lib/ReactViews/Map/Navigation/Items/MeasureTool.ts @@ -112,7 +112,7 @@ export default class MeasureTool extends MapNavigationItemController { } // extract valid points from CustomDataSource - const castesianEntities = pointEntities.entities.values.filter( + const cartesianEntities = pointEntities.entities.values.filter( (elem) => elem?.position !== undefined && elem?.position !== null ); // if the path is a closed loop add the first point also as last point @@ -120,13 +120,13 @@ export default class MeasureTool extends MapNavigationItemController { this.userDrawing.closeLoop && pointEntities.entities.values.length > 0 ) { - castesianEntities.push(pointEntities.entities.values[0]); + cartesianEntities.push(pointEntities.entities.values[0]); } // convert from cartesian to cartographic becouse "sampleTerrainMostDetailed" work with cartographic - const cartoPositions = castesianEntities.map((elem) => { + const cartoPositions = cartesianEntities.map((elem) => { return Cartographic.fromCartesian( elem.position!.getValue(this.terria.timelineClock.currentTime), - Ellipsoid.WGS84 + ellipsoid ); }); @@ -202,7 +202,8 @@ export default class MeasureTool extends MapNavigationItemController { stopAirDistances, distances3d, sampledCartographics, - stepDistances + stepDistances, + this.userDrawing.closeLoop ); } ); @@ -216,9 +217,12 @@ export default class MeasureTool extends MapNavigationItemController { stopAirDistances: number[], stopGroundDistances: number[], sampledPoints: Cartographic[], - sampledDistances: number[] + sampledDistances: number[], + isClosed: boolean ) { this.terria.path = { + isClosed: isClosed, + hasArea: false, stopPoints: stopPoints, stopGeodeticDistances: stopGeodeticDistances, stopAirDistances: stopAirDistances, From 96f40b1bda49fe0e2260572d48878d92edbbe54f Mon Sep 17 00:00:00 2001 From: glughi Date: Tue, 4 Apr 2023 10:55:01 +0200 Subject: [PATCH 105/215] Comment debug code --- lib/ReactViews/Custom/Chart/ElevationChartPanel.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/ReactViews/Custom/Chart/ElevationChartPanel.tsx b/lib/ReactViews/Custom/Chart/ElevationChartPanel.tsx index 05f4eb14f89..0ba2cef11f6 100644 --- a/lib/ReactViews/Custom/Chart/ElevationChartPanel.tsx +++ b/lib/ReactViews/Custom/Chart/ElevationChartPanel.tsx @@ -123,7 +123,7 @@ const ElevationChartPanel = observer((props: Props) => { _marker.setTrait(CommonStrata.user, "clampToGround", true); terria.workbench.add(_marker);*/ - console.log("birra"); + /*console.log("birra"); addMarker(terria, { name: "ciao", location: { @@ -134,7 +134,7 @@ const ElevationChartPanel = observer((props: Props) => { terria.path?.sampledPoints?.[2].latitude ?? 0 ) } - }); + });*/ items.push({ categoryName: "Percorso", From 82169b726a912e65e82e250bf5fe0fcd06309252 Mon Sep 17 00:00:00 2001 From: glughi Date: Tue, 4 Apr 2023 10:56:21 +0200 Subject: [PATCH 106/215] Invert drawing order of elevation charts --- .../Custom/Chart/ElevationChartPanel.tsx | 28 +++++++++---------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/lib/ReactViews/Custom/Chart/ElevationChartPanel.tsx b/lib/ReactViews/Custom/Chart/ElevationChartPanel.tsx index 0ba2cef11f6..b2b1e253ded 100644 --- a/lib/ReactViews/Custom/Chart/ElevationChartPanel.tsx +++ b/lib/ReactViews/Custom/Chart/ElevationChartPanel.tsx @@ -72,20 +72,6 @@ const ElevationChartPanel = observer((props: Props) => { const items = []; - if (airData?.chartPoints && airData.chartDomain) { - items.push({ - categoryName: "Percorso", - name: "in aria", - units: "m", - isSelectedInWorkbench: false, - key: "path", - type: "lineAndPoint", - glyphStyle: "circle", - getColor: () => "#f00", - points: airData?.chartPoints, - domain: airData?.chartDomain - }); - } if (groundData?.chartPoints && groundData.chartDomain) { //////////////////// /*const _marker = new GeoJsonCatalogItem(createGuid(), terria); @@ -153,6 +139,20 @@ const ElevationChartPanel = observer((props: Props) => { updateIsSelectedInWorkbench: () => {},*/ }); } + if (airData?.chartPoints && airData.chartDomain) { + items.push({ + categoryName: "Percorso", + name: "in aria", + units: "m", + isSelectedInWorkbench: false, + key: "path", + type: "lineAndPoint", + glyphStyle: "circle", + getColor: () => "#f00", + points: airData?.chartPoints, + domain: airData?.chartDomain + }); + } setChartItems(items); } From 3ba28efa19541ba301ddcb65c59f506e54a8e1b8 Mon Sep 17 00:00:00 2001 From: glughi Date: Mon, 8 May 2023 18:51:54 +0200 Subject: [PATCH 107/215] Link elevation chart to map --- .../Custom/Chart/BottomDockChart.jsx | 35 +++- .../Custom/Chart/ElevationChartPanel.tsx | 156 ++++++++++-------- lib/ReactViews/Custom/Chart/markerIcon.js | 2 + 3 files changed, 117 insertions(+), 76 deletions(-) create mode 100644 lib/ReactViews/Custom/Chart/markerIcon.js diff --git a/lib/ReactViews/Custom/Chart/BottomDockChart.jsx b/lib/ReactViews/Custom/Chart/BottomDockChart.jsx index 29743c53ea4..d419619d901 100644 --- a/lib/ReactViews/Custom/Chart/BottomDockChart.jsx +++ b/lib/ReactViews/Custom/Chart/BottomDockChart.jsx @@ -1,5 +1,5 @@ import { observer } from "mobx-react"; -import { action, computed, observable } from "mobx"; +import { action, computed, observable, autorun } from "mobx"; import { AxisLeft, AxisBottom } from "@visx/axis"; import { RectClipPath } from "@visx/clip-path"; import { localPoint } from "@visx/event"; @@ -35,7 +35,9 @@ class BottomDockChart extends React.Component { height: PropTypes.number, chartItems: PropTypes.array.isRequired, xAxis: PropTypes.object.isRequired, - margin: PropTypes.object + margin: PropTypes.object, + chartItemKeyForPointMouseNear: PropTypes.string, + onPointMouseNear: PropTypes.func }; static defaultProps = { @@ -50,6 +52,8 @@ class BottomDockChart extends React.Component { chartMinWidth, this.props.width || this.props.parentWidth )} + chartItemKeyForPointMouseNear={this.props.chartItemKeyForPointMouseNear} + onPointMouseNear={this.props.onPointMouseNear} /> ); } @@ -65,7 +69,9 @@ class Chart extends React.Component { height: PropTypes.number, chartItems: PropTypes.array.isRequired, xAxis: PropTypes.object.isRequired, - margin: PropTypes.object + margin: PropTypes.object, + chartItemKeyForPointMouseNear: PropTypes.string, + onPointMouseNear: PropTypes.func }; static defaultProps = { @@ -236,6 +242,23 @@ class Chart extends React.Component { if (prevProps.chartItems.length !== this.props.chartItems.length) { this.setZoomedXScale(undefined); } + + // When pointsNearMouse changes, call onPointMouseNear callback to create the placeholder + autorun(() => { + if ( + this.pointsNearMouse && + this.pointsNearMouse.length > 0 && + this.props.onPointMouseNear + ) { + const pointNearMouse = this.pointsNearMouse.find( + (elem) => + elem.chartItem.key === this.props.chartItemKeyForPointMouseNear + ); + if (pointNearMouse) { + this.props.onPointMouseNear(pointNearMouse.point); + } + } + }); } render() { @@ -260,7 +283,11 @@ class Chart extends React.Component { width="100%" height={height} onMouseMove={this.setMouseCoordsFromEvent.bind(this)} - onMouseLeave={() => this.setMouseCoords(undefined)} + onMouseLeave={() => { + this.setMouseCoords(undefined); + // On mouseLeave event remove position placeholder + this.props.onPointMouseNear(undefined); + }} > string; + points: ChartPoint[]; + domain: { x: number[]; y: number[] }; +} interface Props { terria: Terria; @@ -27,7 +47,13 @@ interface Props { const ElevationChartPanel = observer((props: Props) => { const { terria, viewState } = props; - const [chartItems, setChartItems] = useState(); + const PANEL_HEIGHT = 300; + const CHART_HEIGHT = 266; + + const [chartItems, setChartItems] = useState(); + + const chartPoint = useRef(); + const billboardCollection = useRef(); const closePanel = action(() => { viewState.elevationChartIsVisible = false; @@ -57,6 +83,45 @@ const ElevationChartPanel = observer((props: Props) => { return { chartPoints, chartDomain }; }; + const updateChartPointNearMouse = (newPoint: ChartPoint) => { + if ( + newPoint && + terria?.cesium?.scene && + (!chartPoint?.current || chartPoint.current !== newPoint) + ) { + chartPoint.current = newPoint; + + const pointIndex = chartItems + ?.find((item) => item.key === ChartKeys.GroundChart) + ?.points.findIndex((elem) => elem === newPoint); + if (!pointIndex) return; + const coords = terria?.path?.sampledPoints?.[pointIndex]; + if (!coords) return; + + if (!billboardCollection.current) { + billboardCollection.current = new BillboardCollection({ + scene: terria.cesium.scene + }); + terria.cesium.scene.primitives.add(billboardCollection.current); + } + billboardCollection.current.removeAll(); + billboardCollection.current.add({ + position: Cartographic.toCartesian(coords), + scale: 0.4, + verticalOrigin: VerticalOrigin.BOTTOM, + image: markerIcon, + //color: new CesiumColor(0.0, 1.0, 0.0, 0.5), + //disableDepthTestDistance: Number.POSITIVE_INFINITY, + heightReference: HeightReference.CLAMP_TO_GROUND, + id: "chartPointPlaceholder" + }); + + terria.currentViewer.notifyRepaintRequired(); + } else if (newPoint === undefined && billboardCollection.current) { + billboardCollection.current.removeAll(); + } + }; + useEffect(() => { if (terria?.path) { const airData = fetchPathDataChart( @@ -70,73 +135,19 @@ const ElevationChartPanel = observer((props: Props) => { terria.path.groundDistance ); - const items = []; + const items: ChartItem[] = []; if (groundData?.chartPoints && groundData.chartDomain) { - //////////////////// - /*const _marker = new GeoJsonCatalogItem(createGuid(), terria); - _marker.setTrait(CommonStrata.user, "name", "ciccio"); - _marker.setTrait( - CommonStrata.user, - "description", - "Posizione dell'utente" - ); - _marker.setTrait(CommonStrata.user, "geoJsonData", { - type: "Feature", - geometry: { - type: "Point", - coordinates: [ - CesiumMath.toDegrees(terria.path?.sampledPoints?.[2].longitude ?? 0), - CesiumMath.toDegrees(terria.path?.sampledPoints?.[2].latitude ?? 0) - ] - }, - properties: { - title: "urca urca", - longitude: terria.path?.sampledPoints?.[20].longitude, - latitude: terria.path?.sampledPoints?.[20].latitude - } - }); - _marker.setTrait( - CommonStrata.user, - "style", - createStratumInstance(StyleTraits, { - "marker-size": "25", - "marker-color": "#FFABD5", - stroke: "#ffffff", - "stroke-width": 3 - }) - ); - _marker.setTrait(CommonStrata.user, "clampToGround", true); - terria.workbench.add(_marker);*/ - - /*console.log("birra"); - addMarker(terria, { - name: "ciao", - location: { - longitude: CesiumMath.toDegrees( - terria.path?.sampledPoints?.[2].longitude ?? 0 - ), - latitude: CesiumMath.toDegrees( - terria.path?.sampledPoints?.[2].latitude ?? 0 - ) - } - });*/ - items.push({ categoryName: "Percorso", name: "al suolo", units: "m", - //isSelectedInWorkbench: false, - key: "path_sampled", - type: "line", + key: ChartKeys.GroundChart, + type: "lineAndPoint", glyphStyle: "circle", getColor: () => "#0f0", points: groundData?.chartPoints, - domain: groundData?.chartDomain /*, - pointOnMap: { "latitude": terria.path?.sampledPoints?.[20].latitude, "longitude": terria.path?.sampledPoints?.[20].longitude }, - isSelectedInWorkbench: true, - showInChartPanel: true, - updateIsSelectedInWorkbench: () => {},*/ + domain: groundData?.chartDomain }); } if (airData?.chartPoints && airData.chartDomain) { @@ -144,8 +155,7 @@ const ElevationChartPanel = observer((props: Props) => { categoryName: "Percorso", name: "in aria", units: "m", - isSelectedInWorkbench: false, - key: "path", + key: ChartKeys.AirChart, type: "lineAndPoint", glyphStyle: "circle", getColor: () => "#f00", @@ -161,7 +171,7 @@ const ElevationChartPanel = observer((props: Props) => { return (
          -
          +
          diff --git a/lib/ReactViews/Custom/Chart/markerIcon.js b/lib/ReactViews/Custom/Chart/markerIcon.js new file mode 100644 index 00000000000..017593c40f3 --- /dev/null +++ b/lib/ReactViews/Custom/Chart/markerIcon.js @@ -0,0 +1,2 @@ +import markerIcon from "../../../../wwwroot/images/map-pin-green.svg"; +export default markerIcon; From 9aab9dbfbeaf16d0557cb5e04a18dedd0e35a241 Mon Sep 17 00:00:00 2001 From: glughi Date: Tue, 9 May 2023 11:07:06 +0200 Subject: [PATCH 108/215] Add missing chart placeholder icon --- wwwroot/images/map-pin-green.svg | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 wwwroot/images/map-pin-green.svg diff --git a/wwwroot/images/map-pin-green.svg b/wwwroot/images/map-pin-green.svg new file mode 100644 index 00000000000..7a4b503d332 --- /dev/null +++ b/wwwroot/images/map-pin-green.svg @@ -0,0 +1,16 @@ + + + + map-location + Created with Sketch. + + + + + + + + + + + From 8a11e936b1361cd6865836024d2401d616557d16 Mon Sep 17 00:00:00 2001 From: glughi Date: Thu, 11 May 2023 09:51:59 +0200 Subject: [PATCH 109/215] Improve visibility of the chart placeholder on map --- lib/ReactViews/Custom/Chart/ElevationChartPanel.tsx | 13 +++++++------ lib/ReactViews/Custom/Chart/markerIcon.js | 2 +- wwwroot/images/map-circle-green-yellow.svg | 6 ++++++ 3 files changed, 14 insertions(+), 7 deletions(-) create mode 100644 wwwroot/images/map-circle-green-yellow.svg diff --git a/lib/ReactViews/Custom/Chart/ElevationChartPanel.tsx b/lib/ReactViews/Custom/Chart/ElevationChartPanel.tsx index 635d335ea80..a17e9e3cf15 100644 --- a/lib/ReactViews/Custom/Chart/ElevationChartPanel.tsx +++ b/lib/ReactViews/Custom/Chart/ElevationChartPanel.tsx @@ -9,12 +9,12 @@ import { action } from "mobx"; import ViewState from "../../../ReactViewModels/ViewState"; import Terria from "../../../Models/Terria"; import Cartographic from "terriajs-cesium/Source/Core/Cartographic"; -import CesiumColor from "terriajs-cesium/Source/Core/Color"; +import Cartesian3 from "terriajs-cesium/Source/Core/Cartesian3"; import HeightReference from "terriajs-cesium/Source/Scene/HeightReference"; -import VerticalOrigin from "terriajs-cesium/Source/Scene/VerticalOrigin"; import BillboardCollection from "terriajs-cesium/Source/Scene/BillboardCollection"; +//import CesiumColor from "terriajs-cesium/Source/Core/Color"; +//import VerticalOrigin from "terriajs-cesium/Source/Scene/VerticalOrigin"; -//import markerIcon from "../../../Models/markerIcon"; import markerIcon from "./markerIcon"; enum ChartKeys { @@ -107,12 +107,13 @@ const ElevationChartPanel = observer((props: Props) => { billboardCollection.current.removeAll(); billboardCollection.current.add({ position: Cartographic.toCartesian(coords), - scale: 0.4, - verticalOrigin: VerticalOrigin.BOTTOM, image: markerIcon, + eyeOffset: new Cartesian3(0.0, 0.0, -50.0), + heightReference: HeightReference.CLAMP_TO_GROUND, + //scale: 0.5, + //verticalOrigin: VerticalOrigin.BOTTOM, //color: new CesiumColor(0.0, 1.0, 0.0, 0.5), //disableDepthTestDistance: Number.POSITIVE_INFINITY, - heightReference: HeightReference.CLAMP_TO_GROUND, id: "chartPointPlaceholder" }); diff --git a/lib/ReactViews/Custom/Chart/markerIcon.js b/lib/ReactViews/Custom/Chart/markerIcon.js index 017593c40f3..941e9b0d56e 100644 --- a/lib/ReactViews/Custom/Chart/markerIcon.js +++ b/lib/ReactViews/Custom/Chart/markerIcon.js @@ -1,2 +1,2 @@ -import markerIcon from "../../../../wwwroot/images/map-pin-green.svg"; +import markerIcon from "../../../../wwwroot/images/map-circle-green-yellow.svg"; export default markerIcon; diff --git a/wwwroot/images/map-circle-green-yellow.svg b/wwwroot/images/map-circle-green-yellow.svg new file mode 100644 index 00000000000..9d6ea483371 --- /dev/null +++ b/wwwroot/images/map-circle-green-yellow.svg @@ -0,0 +1,6 @@ + + + + + + From 55be4f757cf9721db661a90c833bae02283f0a5e Mon Sep 17 00:00:00 2001 From: glughi Date: Tue, 23 May 2023 11:33:23 +0200 Subject: [PATCH 110/215] Format altitude to show 1 decimal --- lib/Map/Vector/prettifyCoordinates.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/Map/Vector/prettifyCoordinates.ts b/lib/Map/Vector/prettifyCoordinates.ts index 9d3eddae1c9..028a8065b61 100644 --- a/lib/Map/Vector/prettifyCoordinates.ts +++ b/lib/Map/Vector/prettifyCoordinates.ts @@ -41,7 +41,8 @@ export default function prettifyCoordinates( let prettyElevation = undefined; if (height !== undefined) { prettyElevation = - Math.round(height) + + //Math.round(height) + + height.toFixed(1) + //(errorBar !== undefined ? "±" + Math.round(errorBar) : "") + "m"; } From 9aaff47017d9ba0f01aeed712a29df023dce7990 Mon Sep 17 00:00:00 2001 From: glughi Date: Tue, 30 May 2023 10:04:33 +0200 Subject: [PATCH 111/215] Minor changes to italian translation --- wwwroot/languages/it/translation.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/wwwroot/languages/it/translation.json b/wwwroot/languages/it/translation.json index ab69d7c2d8c..f12c8c8b69e 100644 --- a/wwwroot/languages/it/translation.json +++ b/wwwroot/languages/it/translation.json @@ -101,7 +101,7 @@ "settingPanel": { "performanceLabel": "Prestazioni", "qualityLabel": "Qualità", - "baseMap": "Mappa base", + "baseMap": "Mappa di base", "btnTitle": "Cambia vista", "screen": "schermo", "native": "nativa", @@ -927,7 +927,7 @@ "extraCreditLinks": { "disclaimer": "Scarico di responsabilità", "dataAttribution": "Attribuzione dei dati", - "basemap": "Mappa di base" + "basemap": "Attribuzione dei dati" }, "drawExtentHelper": { "drawExtent": "Disegnare l'estensione", From f891401fc52e1f93259802857acbb9d4d530e5ee Mon Sep 17 00:00:00 2001 From: glughi Date: Tue, 13 Jun 2023 16:53:03 +0200 Subject: [PATCH 112/215] Add imageryProvider case to zoom function --- lib/Models/Cesium.ts | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/lib/Models/Cesium.ts b/lib/Models/Cesium.ts index 1c0c2403add..4a3eb703189 100644 --- a/lib/Models/Cesium.ts +++ b/lib/Models/Cesium.ts @@ -897,6 +897,11 @@ export default class Cesium extends GlobeOrMap { duration: flightDurationSeconds, destination: target.rectangle }); + } else if (defined(target.imageryProvider) && defined(target.imageryProvider.rectangle)) { + return flyToPromise(camera, { + duration: flightDurationSeconds, + destination: target.imageryProvider.rectangle + }); } else { return Promise.resolve(); } From 1c4593df005b78c69d1115d3cde2070f115961de Mon Sep 17 00:00:00 2001 From: glughi Date: Tue, 13 Jun 2023 16:56:52 +0200 Subject: [PATCH 113/215] Fix zoomToDataSource --- lib/Models/Cesium.ts | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/lib/Models/Cesium.ts b/lib/Models/Cesium.ts index 4a3eb703189..e6e3df7e927 100644 --- a/lib/Models/Cesium.ts +++ b/lib/Models/Cesium.ts @@ -897,7 +897,10 @@ export default class Cesium extends GlobeOrMap { duration: flightDurationSeconds, destination: target.rectangle }); - } else if (defined(target.imageryProvider) && defined(target.imageryProvider.rectangle)) { + } else if ( + defined(target.imageryProvider) && + defined(target.imageryProvider.rectangle) + ) { return flyToPromise(camera, { duration: flightDurationSeconds, destination: target.imageryProvider.rectangle @@ -1780,7 +1783,9 @@ function zoomToDataSource( // cesium calculate an appropriate zoom distance. For the rest // use the radius as the zoom distance because the offset // distance cesium calculates for large models is often too far away. - boundingSphere.radius < 100 ? undefined : boundingSphere.radius + boundingSphere.radius < 2000 + ? undefined + : boundingSphere.radius * 1.2 ) } ); From 6613ca54e07d14722a972e61fcdc6be026df45dc Mon Sep 17 00:00:00 2001 From: glughi Date: Tue, 13 Jun 2023 17:26:33 +0200 Subject: [PATCH 114/215] Add a new feature to search within opened layers --- lib/ModelMixins/GeojsonMixin.ts | 42 ++++- lib/ModelMixins/SearchableCatalogItemMixin.ts | 156 ++++++++++++++++++ .../Catalog/CatalogItems/KmlCatalogItem.ts | 13 +- .../CatalogItemsSearchProvider.ts | 105 ++++++++++++ .../SearchProviders/SearchProviderResults.ts | 3 +- lib/ReactViewModels/SearchState.ts | 48 ++++++ lib/ReactViewModels/ViewState.ts | 1 + lib/ReactViews/Search/SearchBoxAndResults.jsx | 61 +++++++ lib/Traits/TraitsClasses/GeoJsonTraits.ts | 4 +- .../TraitsClasses/KmlCatalogItemTraits.ts | 4 +- .../SearchableCatalogItemTraits.ts | 11 ++ 11 files changed, 438 insertions(+), 10 deletions(-) create mode 100644 lib/ModelMixins/SearchableCatalogItemMixin.ts create mode 100644 lib/Models/SearchProviders/CatalogItemsSearchProvider.ts create mode 100644 lib/Traits/TraitsClasses/SearchableCatalogItemTraits.ts diff --git a/lib/ModelMixins/GeojsonMixin.ts b/lib/ModelMixins/GeojsonMixin.ts index 7d900f771bc..70bc814e92a 100644 --- a/lib/ModelMixins/GeojsonMixin.ts +++ b/lib/ModelMixins/GeojsonMixin.ts @@ -102,6 +102,7 @@ import FeatureInfoUrlTemplateMixin from "./FeatureInfoUrlTemplateMixin"; import { isDataSource } from "./MappableMixin"; import TableMixin from "./TableMixin"; import MeasurableMixin from "./MeasurableMixin"; +import SearchableCatalogItemMixin, { SearchableData } from "./SearchableCatalogItemMixin"; enum PathTypes { noPath = 0, @@ -231,8 +232,13 @@ interface FeatureCounts { } function GeoJsonMixin>>(Base: T) { - abstract class GeoJsonMixin extends MeasurableMixin( - TableMixin(FeatureInfoUrlTemplateMixin(UrlMixin(CatalogMemberMixin(Base)))) + abstract class GeoJsonMixin extends SearchableCatalogItemMixin( + MeasurableMixin( + TableMixin( + FeatureInfoUrlTemplateMixin( + UrlMixin( + CatalogMemberMixin(Base) + )))) ) { @observable private _dataSource: @@ -1453,6 +1459,38 @@ function GeoJsonMixin>>(Base: T) { this.asPath(coordinates); } + searchWithinItemData(text: string) { + // Search in TerriaJS Feature and Turf Geometry + const elements: SearchableData[] | undefined = this.readyData?.features.map(feature => { + const fieldContent: string = feature.properties?.[this.nameOfCatalogItemSearchField] ?? ""; + + const type = feature.geometry.type; + let lat: number; + let lon: number; + if (type === "Point" && (feature.geometry as Geometry).coordinates.length === 2) { + lon = (feature.geometry as Geometry).coordinates[0] as number; + lat = (feature.geometry as Geometry).coordinates[1] as number; + } + else { + const geojsonBbox = bbox(feature); + const west = geojsonBbox[0]; + const south = geojsonBbox[1]; + const east = geojsonBbox[2]; + const north = geojsonBbox[3]; + lon = (east - west) * 0.5 + west; + lat = (north - south) * 0.5 + south; + } + + return { + searchField: fieldContent, + latitude: lat, + longitude: lon + }; + }); + + return this.search(text, elements); + } + @computed get viewingControls(): ViewingControl[] { return !this.useTableStylingAndProtomaps ? super.viewingControls.filter( diff --git a/lib/ModelMixins/SearchableCatalogItemMixin.ts b/lib/ModelMixins/SearchableCatalogItemMixin.ts new file mode 100644 index 00000000000..ec0378fc95c --- /dev/null +++ b/lib/ModelMixins/SearchableCatalogItemMixin.ts @@ -0,0 +1,156 @@ +import { computed } from "mobx"; +import Constructor from "../Core/Constructor"; +import Model from "../Models/Definition/Model"; +import StratumOrder from "../Models/Definition/StratumOrder"; +import SearchableCatalogItemTraits from "../Traits/TraitsClasses/SearchableCatalogItemTraits"; +import Cartographic from "terriajs-cesium/Source/Core/Cartographic"; +import SearchResult from "../Models/SearchProviders/SearchResult"; +import createZoomToFunction from "../Map/Vector/zoomRectangleFromPoint"; +import CesiumMath from "terriajs-cesium/Source/Core/Math"; +import EntityCollection from "terriajs-cesium/Source/DataSources/EntityCollection"; +import JulianDate from "terriajs-cesium/Source/Core/JulianDate"; +import Cartesian3 from "terriajs-cesium/Source/Core/Cartesian3"; +import PolygonHierarchy from "terriajs-cesium/Source/Core/PolygonHierarchy"; +import Rectangle from "terriajs-cesium/Source/Core/Rectangle"; + +export interface SearchableData { + searchField: string; + latitude: number; + longitude: number; +} + +type MixinModel = Model; + +function SearchableCatalogItemMixin>( + Base: T +) { + abstract class SearchableCatalogItemMixin extends Base { + @computed + get hasSearchableCatalogItemMixin() { + return true; + } + + abstract searchWithinItemData(text: string): SearchResult[] | undefined; + + search( + text: string, + elements: SearchableData[] | undefined + ): SearchResult[] | undefined { + const bboxSize = 0.005; + const time = 2.0; + + if (!elements) return; + + const filteredElements = elements.filter((element) => { + return element.searchField.toLowerCase().includes(text); + }); + + if (filteredElements.length === 0) return; + + const results = filteredElements.map((element) => { + return new SearchResult({ + name: element.searchField, + isImportant: false, + clickAction: () => + this.terria.currentViewer.zoomTo( + createZoomToFunction( + element.latitude, + element.longitude, + bboxSize + ), + time + ), + location: { latitude: element.latitude, longitude: element.longitude } + }); + }); + + return results.filter((res) => res !== undefined) as SearchResult[]; + } + + searchInEntityCollection( + text: string, + entityCollection: EntityCollection | undefined + ): SearchResult[] | undefined { + const bboxSize = 0.005; + const time = 2.0; + + if (!entityCollection) return; + + const filtered = entityCollection.values.filter((entity) => { + return ( + (entity.billboard || + entity.point || + entity.polyline || + entity.polygon) && + (entity.properties?.[this.nameOfCatalogItemSearchField] + .valueOf() + .toLowerCase() + .includes(text) || + entity.name?.toLowerCase().includes(text)) + ); + }); + if (filtered.length === 0) return; + const results = filtered.map((entity) => { + let cartesianPosition: Cartesian3; + let cartoPosition: Cartographic; + + if (entity.position) { + cartesianPosition = entity.position.getValue(JulianDate.now()); + if (!cartesianPosition) return; + cartoPosition = Cartographic.fromCartesian(cartesianPosition); + } else if (entity.polyline) { + cartoPosition = Rectangle.center( + Rectangle.fromCartesianArray( + entity.polyline?.positions?.getValue(JulianDate.now()) ?? [] + ) + ); + } else if (entity.polygon) { + cartoPosition = Rectangle.center( + Rectangle.fromCartesianArray( + ( + entity.polygon?.hierarchy?.getValue(JulianDate.now()) as + | PolygonHierarchy + | undefined + )?.positions ?? [] + ) + ); + } else return; + + const lat = CesiumMath.toDegrees(cartoPosition.latitude); + const lon = CesiumMath.toDegrees(cartoPosition.longitude); + + return new SearchResult({ + name: + entity.name ?? + (entity.properties![ + this.nameOfCatalogItemSearchField + ].valueOf() as string), + isImportant: false, + clickAction: () => + this.terria.currentViewer.zoomTo( + createZoomToFunction(lat, lon, bboxSize), + time + ), + location: { latitude: lat, longitude: lon } + }); + }); + + return results.filter((res) => res !== undefined) as SearchResult[]; + } + } + return SearchableCatalogItemMixin; +} + +namespace SearchableCatalogItemMixin { + export interface Instance + extends InstanceType> {} + + export function isMixedInto(model: any): model is Instance { + return model?.hasSearchableCatalogItemMixin; + } + + export const stratumName = "searchableCatalogItemStratum"; + StratumOrder.addLoadStratum(stratumName); +} + +export default SearchableCatalogItemMixin; diff --git a/lib/Models/Catalog/CatalogItems/KmlCatalogItem.ts b/lib/Models/Catalog/CatalogItems/KmlCatalogItem.ts index 5272efb6457..aec2e2dfa14 100644 --- a/lib/Models/Catalog/CatalogItems/KmlCatalogItem.ts +++ b/lib/Models/Catalog/CatalogItems/KmlCatalogItem.ts @@ -24,13 +24,16 @@ import HeightReference from "terriajs-cesium/Source/Scene/HeightReference"; import ArcType from "terriajs-cesium/Source/Core/ArcType"; import MeasurableMixin from "../../../ModelMixins/MeasurableMixin"; import Entity from "terriajs-cesium/Source/DataSources/Entity"; +import SearchableCatalogItemMixin from "../../../ModelMixins/SearchableCatalogItemMixin"; const kmzRegex = /\.kmz$/i; class KmlCatalogItem - extends MeasurableMixin( - MappableMixin( - UrlMixin(CatalogMemberMixin(CreateModel(KmlCatalogItemTraits))) + extends SearchableCatalogItemMixin( + MeasurableMixin( + MappableMixin( + UrlMixin(CatalogMemberMixin(CreateModel(KmlCatalogItemTraits))) + ) ) ) implements HasLocalData @@ -227,6 +230,10 @@ class KmlCatalogItem this.asPath(positions); } } + + searchWithinItemData(text: string) { + return this.searchInEntityCollection(text, this._dataSource?.entities); + } } export default KmlCatalogItem; diff --git a/lib/Models/SearchProviders/CatalogItemsSearchProvider.ts b/lib/Models/SearchProviders/CatalogItemsSearchProvider.ts new file mode 100644 index 00000000000..4796e72420a --- /dev/null +++ b/lib/Models/SearchProviders/CatalogItemsSearchProvider.ts @@ -0,0 +1,105 @@ +import { computed, observable, runInAction } from "mobx"; +import { fromPromise } from "mobx-utils"; +import isDefined from "../../Core/isDefined"; +import { TerriaErrorSeverity } from "../../Core/TerriaError"; +import Terria from "../Terria"; +import SearchProvider from "./SearchProvider"; +import SearchProviderResults from "./SearchProviderResults"; +import SearchableCatalogItemMixin from "../../ModelMixins/SearchableCatalogItemMixin"; +interface CatalogItemsSearchProviderOptions { + terria: Terria; +} + +export function searchInOpenedCatalogItems( + terria: Terria, + searchTextLowercase: string, + searchResults: SearchProviderResults +): Promise { + return new Promise((resolve) => { + for (let i = 0; i < terria.workbench.items.length; ++i) { + const item = terria.workbench.items[i]; + if (SearchableCatalogItemMixin.isMixedInto(item)) { + const res = item.searchWithinItemData(searchTextLowercase); + if (res !== undefined) { + searchResults.results = res; + } + } + } + }); +} + +export default class CatalogItemsSearchProvider extends SearchProvider { + readonly terria: Terria; + @observable isSearching: boolean = false; + @observable debounceDurationOnceLoaded: number = 300; + + constructor(options: CatalogItemsSearchProviderOptions) { + super(); + + this.terria = options.terria; + this.name = "Layers aperti"; + } + + @computed get canUse() { + return this.terria.workbench.items.some( + (item) => + SearchableCatalogItemMixin.isMixedInto(item) && + item.nameOfCatalogItemSearchField + ); + } + + @computed get resultsAreReferences() { + return ( + isDefined(this.terria.catalogIndex?.loadPromise) && + fromPromise(this.terria.catalogIndex!.loadPromise).state === "fulfilled" + ); + } + + protected async doSearch( + searchText: string, + searchResults: SearchProviderResults + ): Promise { + runInAction(() => (this.isSearching = true)); + + searchResults.results.length = 0; + searchResults.message = undefined; + + if (searchText === undefined || /^\s*$/.test(searchText)) { + runInAction(() => (this.isSearching = false)); + return Promise.resolve(); + } + + try { + await searchInOpenedCatalogItems( + this.terria, + searchText.toLowerCase(), + searchResults + ); + + runInAction(() => { + this.isSearching = false; + }); + + if (searchResults.isCanceled) { + // A new search has superseded this one, so ignore the result. + return; + } + + if (searchResults.results.length === 0) { + searchResults.message = "Sorry, no locations match your search query."; + } + } catch (e) { + this.terria.raiseErrorToUser(e, { + message: "An error occurred while searching", + severity: TerriaErrorSeverity.Warning + }); + if (searchResults.isCanceled) { + // A new search has superseded this one, so ignore the result. + return; + } + + searchResults.message = + "An error occurred while searching. Please check your internet connection or try again later."; + } + } +} diff --git a/lib/Models/SearchProviders/SearchProviderResults.ts b/lib/Models/SearchProviders/SearchProviderResults.ts index 92ddfd1ddca..cdf9b75473b 100644 --- a/lib/Models/SearchProviders/SearchProviderResults.ts +++ b/lib/Models/SearchProviders/SearchProviderResults.ts @@ -14,6 +14,7 @@ export default class SearchProviderResults { constructor(readonly searchProvider: SearchProvider) {} get isSearching() { - return this.resultsCompletePromise.state === "pending"; + //return this.resultsCompletePromise.state === "pending"; + return false; } } diff --git a/lib/ReactViewModels/SearchState.ts b/lib/ReactViewModels/SearchState.ts index 92657356823..2e20b6c57df 100644 --- a/lib/ReactViewModels/SearchState.ts +++ b/lib/ReactViewModels/SearchState.ts @@ -11,10 +11,12 @@ import SearchProviderResults from "../Models/SearchProviders/SearchProviderResul import SearchProvider from "../Models/SearchProviders/SearchProvider"; import filterOutUndefined from "../Core/filterOutUndefined"; import CatalogSearchProvider from "../Models/SearchProviders/CatalogSearchProvider"; +import CatalogItemsSearchProvider from "../Models/SearchProviders/CatalogItemsSearchProvider"; interface SearchStateOptions { terria: Terria; catalogSearchProvider?: CatalogSearchProvider; + catalogItemsSearchProvider?: CatalogItemsSearchProvider; locationSearchProviders?: SearchProvider[]; } @@ -22,11 +24,16 @@ export default class SearchState { @observable catalogSearchProvider: SearchProvider | undefined; + @observable catalogItemsSearchProvider: SearchProvider | undefined; + @observable locationSearchProviders: SearchProvider[]; @observable catalogSearchText: string = ""; @observable isWaitingToStartCatalogSearch: boolean = false; + @observable catalogItemsSearchText: string = ""; + @observable isWaitingToStartCatalogItemsSearch: boolean = false; + @observable locationSearchText: string = ""; @observable isWaitingToStartLocationSearch: boolean = false; @@ -39,9 +46,11 @@ export default class SearchState { @observable locationSearchResults: SearchProviderResults[] = []; @observable catalogSearchResults: SearchProviderResults | undefined; + @observable catalogItemsSearchResults: SearchProviderResults | undefined; @observable unifiedSearchResults: SearchProviderResults[] = []; private _catalogSearchDisposer: IReactionDisposer; + private _catalogItemsSearchDisposer: IReactionDisposer; private _locationSearchDisposer: IReactionDisposer; private _unifiedSearchDisposer: IReactionDisposer; @@ -49,6 +58,9 @@ export default class SearchState { this.catalogSearchProvider = options.catalogSearchProvider || new CatalogSearchProvider({ terria: options.terria }); + this.catalogItemsSearchProvider = new CatalogItemsSearchProvider({ + terria: options.terria + }); this.locationSearchProviders = options.locationSearchProviders || []; this._catalogSearchDisposer = reaction( @@ -61,6 +73,17 @@ export default class SearchState { } ); + this._catalogItemsSearchDisposer = reaction( + () => this.catalogItemsSearchText, + () => { + this.isWaitingToStartCatalogItemsSearch = true; + if (this.catalogItemsSearchProvider) { + this.catalogItemsSearchResults = + this.catalogItemsSearchProvider.search(""); + } + } + ); + this._locationSearchDisposer = reaction( () => this.locationSearchText, () => { @@ -88,6 +111,7 @@ export default class SearchState { dispose() { this._catalogSearchDisposer(); + this._catalogItemsSearchDisposer(); this._locationSearchDisposer(); this._unifiedSearchDisposer(); } @@ -115,6 +139,26 @@ export default class SearchState { } } + @action + searchCatalogItems() { + if (this.isWaitingToStartCatalogItemsSearch) { + this.isWaitingToStartCatalogItemsSearch = false; + if (this.catalogItemsSearchResults) { + this.catalogItemsSearchResults.isCanceled = true; + } + if (this.catalogItemsSearchProvider) { + this.catalogItemsSearchResults = this.catalogItemsSearchProvider.search( + this.catalogItemsSearchText + ); + } + } + } + + @action + setCatalogItemsSearchText(newText: string) { + this.catalogItemsSearchText = newText; + } + @action setCatalogSearchText(newText: string) { this.catalogSearchText = newText; @@ -131,6 +175,10 @@ export default class SearchState { (searchProvider) => searchProvider.search(this.locationSearchText) ); } + + if (this.catalogItemsSearchProvider && this.locationSearchText === "") { + this.catalogItemsSearchResults = undefined; + } } @action diff --git a/lib/ReactViewModels/ViewState.ts b/lib/ReactViewModels/ViewState.ts index 0c8f2160e24..4d97def7a66 100644 --- a/lib/ReactViewModels/ViewState.ts +++ b/lib/ReactViewModels/ViewState.ts @@ -47,6 +47,7 @@ export const WORKBENCH_RESIZE_ANIMATION_DURATION = 500; interface ViewStateOptions { terria: Terria; catalogSearchProvider: any; + catalogItemsSearchProvider: any; locationSearchProviders: any[]; errorHandlingProvider?: any; } diff --git a/lib/ReactViews/Search/SearchBoxAndResults.jsx b/lib/ReactViews/Search/SearchBoxAndResults.jsx index 42eb1d1b551..7c0a650d120 100644 --- a/lib/ReactViews/Search/SearchBoxAndResults.jsx +++ b/lib/ReactViews/Search/SearchBoxAndResults.jsx @@ -19,6 +19,33 @@ import { RawButton } from "../../Styled/Button"; import { addMarker } from "../../Models/LocationMarkerUtils"; +export function SearchInCatalogItems({ viewState, handleClick }) { + const locationSearchText = viewState.searchState.locationSearchText; + return ( + { + const { searchState } = viewState; + searchState.setCatalogItemsSearchText(searchState.locationSearchText); + handleClick && handleClick(); + }} + > + + + + + Cerca {locationSearchText} nei layers aperti + + + + + ); +} +SearchInCatalogItems.propTypes = { + handleClick: PropTypes.func.isRequired, + viewState: PropTypes.object.isRequired +}; + export function SearchInDataCatalog({ viewState, handleClick }) { const locationSearchText = viewState.searchState.locationSearchText; return ( @@ -192,12 +219,46 @@ export class SearchBoxAndResultsRaw extends React.Component { /> )} + {searchState?.catalogItemsSearchProvider?.canUse && ( + + { + searchState.searchCatalogItems(); + }} + /> + + )} + {this.props.viewState.searchState + ?.catalogItemsSearchResults && ( + { + addMarker(this.props.terria, result); + result.clickAction(); + runInAction(() => { + searchState.showLocationSearchResults = false; + }); + }} + isWaitingForSearchToStart={false} + /> + )} Date: Fri, 16 Jun 2023 18:28:34 +0200 Subject: [PATCH 115/215] Remove useless MeasurableTraits --- lib/ModelMixins/MeasurableMixin.ts | 8 ++------ lib/Traits/TraitsClasses/MeasurableTraits.ts | 12 ------------ 2 files changed, 2 insertions(+), 18 deletions(-) delete mode 100644 lib/Traits/TraitsClasses/MeasurableTraits.ts diff --git a/lib/ModelMixins/MeasurableMixin.ts b/lib/ModelMixins/MeasurableMixin.ts index 7b3afb9cd2b..1cbf57bdafe 100644 --- a/lib/ModelMixins/MeasurableMixin.ts +++ b/lib/ModelMixins/MeasurableMixin.ts @@ -2,21 +2,17 @@ import { computed, action } from "mobx"; import Constructor from "../Core/Constructor"; import Model from "../Models/Definition/Model"; import StratumOrder from "../Models/Definition/StratumOrder"; -import MeasurableTraits from "../Traits/TraitsClasses/MeasurableTraits"; +import MappableTraits from "../Traits/TraitsClasses/MappableTraits"; import sampleTerrainMostDetailed from "terriajs-cesium/Source/Core/sampleTerrainMostDetailed"; import EllipsoidGeodesic from "terriajs-cesium/Source/Core/EllipsoidGeodesic"; import Cartographic from "terriajs-cesium/Source/Core/Cartographic"; import TerrainProvider from "terriajs-cesium/Source/Core/TerrainProvider"; import { PathCustom } from "../Models/Terria"; -type MixinModel = Model; +type MixinModel = Model; function MeasurableMixin>(Base: T) { abstract class MeasurableMixin extends Base { - //abstract get styleSelectableDimensions(): - // | SelectableDimensionSelect[] - // | undefined; - @computed get hasMeasurableMixin() { return true; diff --git a/lib/Traits/TraitsClasses/MeasurableTraits.ts b/lib/Traits/TraitsClasses/MeasurableTraits.ts deleted file mode 100644 index cbaf5741f7c..00000000000 --- a/lib/Traits/TraitsClasses/MeasurableTraits.ts +++ /dev/null @@ -1,12 +0,0 @@ -import ModelTraits from "../ModelTraits"; -import primitiveTrait from "../Decorators/primitiveTrait"; -// import primitiveArrayTrait from "../Decorators/primitiveArrayTrait"; - -export default class MeasurableTraits extends ModelTraits { - @primitiveTrait({ - type: "string", - name: "measure", - description: "" - }) - measure?: string; -} From 182ed15ca957500a2b2f5153167eaa5ae74d10fa Mon Sep 17 00:00:00 2001 From: glughi Date: Tue, 20 Jun 2023 11:30:44 +0200 Subject: [PATCH 116/215] Add the GPX format and differentiate the export of lines and points --- .../Elevation/ElevationDownload.tsx | 144 +++++++++++++++--- lib/ReactViews/Elevation/elevation-panel.scss | 2 +- 2 files changed, 120 insertions(+), 26 deletions(-) diff --git a/lib/ReactViews/Elevation/ElevationDownload.tsx b/lib/ReactViews/Elevation/ElevationDownload.tsx index 2384413ef20..ad99b67ab37 100644 --- a/lib/ReactViews/Elevation/ElevationDownload.tsx +++ b/lib/ReactViews/Elevation/ElevationDownload.tsx @@ -12,7 +12,7 @@ import Icon from "../../Styled/Icon"; import Styles from "./elevation-download.scss"; //import PropTypes from "prop-types"; import { PathCustom } from "../../Models/Terria"; -import { exportKmlResultKml } from "terriajs-cesium"; +import { exportKmlResultKml, PointGraphics } from "terriajs-cesium"; const Dropdown = require("../Generic/Dropdown"); @@ -25,7 +25,8 @@ interface Props { const ElevationDownload = (props: Props) => { const { path, name, ellipsoid } = props; - const [kml, setKml] = useState(); + const [kmlLines, setKmlLines] = useState(); + const [kmlPoints, setKmlPoints] = useState(); const getLinks = () => { return [ @@ -35,24 +36,49 @@ const ElevationDownload = (props: Props) => { label: "CSV" }, { - href: kml + href: kmlLines ? DataUri.make( "application/vnd.google-earth.kml+xml;charset=utf-8", - kml + kmlLines ) : false, - download: `${name}.kml`, - label: "KML" + download: `${name}_lines.kml`, + label: "Linee KML" }, { - href: DataUri.make("json", generateJson(path)), - download: `${name}.json`, - label: "JSON" + href: kmlPoints + ? DataUri.make( + "application/vnd.google-earth.kml+xml;charset=utf-8", + kmlPoints + ) + : false, + download: `${name}_points.kml`, + label: "Punti KML" + }, + { + href: DataUri.make("json", generateJsonLineStrings(path)), + download: `${name}_lines.json`, + label: "Linee JSON" + }, + { + href: DataUri.make("json", generateJsonPoints(path)), + download: `${name}_points.json`, + label: "Punti JSON" + }, + { + href: DataUri.make("xml", generateGpxTracks(path)), + download: `${name}_lines.gpx`, + label: "Linee GPX" + }, + { + href: DataUri.make("xml", generateGpxWaypoints(path)), + download: `${name}_points.gpx`, + label: "Punti GPX" } ].filter((download) => !!download.href); }; - const generateKml = async (path: PathCustom) => { + const generateKmlLines = async (path: PathCustom) => { if (!path?.stopPoints) { return; } @@ -75,10 +101,29 @@ const ElevationDownload = (props: Props) => { return res.kml; }; - const generateJson = (path: PathCustom) => { - /*if (!path?.stopPoints) { + const generateKmlPoints = async (path: PathCustom) => { + if (!path?.stopPoints) { return; - }*/ + } + const output = { + entities: new EntityCollection(), + kmz: false, + ellipsoid: ellipsoid + }; + path.stopPoints.forEach((elem, index) => { + output.entities.add( + new Entity({ + id: index.toString(), + point: new PointGraphics({}), + position: Cartographic.toCartesian(elem, ellipsoid) + }) + ); + }); + const res = (await exportKml(output)) as exportKmlResultKml; + return res.kml; + }; + + const generateJsonLineStrings = (path: PathCustom) => { return JSON.stringify({ type: "LineString", coordinates: path.stopPoints.map((elem) => [ @@ -86,14 +131,66 @@ const ElevationDownload = (props: Props) => { CesiumMath.toDegrees(elem.latitude), Math.round(elem.height) ]) - //properties: data?.properties }); }; + const generateJsonPoints = (path: PathCustom) => { + return JSON.stringify({ + type: "FeatureCollection", + features: path.stopPoints.map((elem) => { + return { + type: "Feature", + properties: {}, + geometry: { + coordinates: [ + CesiumMath.toDegrees(elem.longitude), + CesiumMath.toDegrees(elem.latitude), + elem.height + ], + type: "Point" + } + }; + }) + }); + }; + + const generateGpxTracks = (path: PathCustom): string => { + return ` + + + Percorso + Percorso salvato da rer3d-map + + ${path.stopPoints + .map( + (elem) => + `` + ) + .join("")} + + + `; + }; + + const generateGpxWaypoints = (path: PathCustom): string => { + return ` + + ${path.stopPoints + .map( + (elem, index) => + `` + ) + .join("")} + `; + }; + const generateCsvData = (path: PathCustom) => { - /*if (!path?.stopPoints) { - return; - }*/ const rows = [Object.keys(path.stopPoints[0]).join(",")]; rows.push( ...path.stopPoints.map((elem) => @@ -114,8 +211,11 @@ const ElevationDownload = (props: Props) => { ); if (ellipsoid) { - generateKml(path).then((res) => { - setKml(res); + generateKmlLines(path).then((res) => { + setKmlLines(res); + }); + generateKmlPoints(path).then((res) => { + setKmlPoints(res); }); } @@ -136,10 +236,4 @@ const ElevationDownload = (props: Props) => { ); }; -/*ElevationDownload.propTypes = { - data: PropTypes.object, - name: PropTypes.string, - ellipsoid: PropTypes.object -};*/ - export default ElevationDownload; diff --git a/lib/ReactViews/Elevation/elevation-panel.scss b/lib/ReactViews/Elevation/elevation-panel.scss index 07f24e55c7c..0b207c65322 100644 --- a/lib/ReactViews/Elevation/elevation-panel.scss +++ b/lib/ReactViews/Elevation/elevation-panel.scss @@ -93,7 +93,7 @@ max-height: calc(60vh - #{$padding * 2 + $btn-default-line-height}); font-size: $font-size-feature-info; - padding-bottom: 120px; + padding-bottom: 180px; } .location { From 66c54b095305dd0794b53c794c8fee9a08f34480 Mon Sep 17 00:00:00 2001 From: glughi Date: Tue, 20 Jun 2023 11:36:57 +0200 Subject: [PATCH 117/215] Add a button to copy coordinates to clipboard --- .../FeatureInfo/FeatureInfoPanel.tsx | 51 +++++++++++++++---- 1 file changed, 41 insertions(+), 10 deletions(-) diff --git a/lib/ReactViews/FeatureInfo/FeatureInfoPanel.tsx b/lib/ReactViews/FeatureInfo/FeatureInfoPanel.tsx index 9122f0cff15..024c5fc7419 100644 --- a/lib/ReactViews/FeatureInfo/FeatureInfoPanel.tsx +++ b/lib/ReactViews/FeatureInfo/FeatureInfoPanel.tsx @@ -27,12 +27,13 @@ import { import Terria from "../../Models/Terria"; import Workbench from "../../Models/Workbench"; import ViewState from "../../ReactViewModels/ViewState"; -import Icon from "../../Styled/Icon"; +import Icon, { StyledIcon } from "../../Styled/Icon"; import Loader from "../Loader"; import { withViewState } from "../StandardUserInterface/ViewStateContext"; import Styles from "./feature-info-panel.scss"; import FeatureInfoCatalogItem from "./FeatureInfoCatalogItem"; -import sampleTerrainMostDetailed from "terriajs-cesium/Source/Core/sampleTerrainMostDetailed"; +import clipboard from "clipboard"; +import Button from "../../Styled/Button"; const DragWrapper = require("../DragWrapper"); @@ -52,6 +53,8 @@ class FeatureInfoPanel extends React.Component { const { t } = this.props; const terria = this.props.viewState.terria; + const clipboardBtn = new clipboard(`.btn-copy-featureinfopanel`); + disposeOnUnmount( this, reaction( @@ -256,9 +259,9 @@ class FeatureInfoPanel extends React.Component { that.pinClicked(longitude, latitude); }; - const locationButtonStyle = isMarkerVisible(this.props.viewState.terria) + /*const locationButtonStyle = isMarkerVisible(this.props.viewState.terria) ? Styles.btnLocationSelected - : Styles.btnLocation; + : Styles.btnLocation;*/ return (
          @@ -271,16 +274,44 @@ class FeatureInfoPanel extends React.Component {
          Lat / Lon  - {pretty.latitude + ", " + pretty.longitude} + {pretty.latitude + ", " + pretty.longitude} {!this.props.printView && ( - + + + )} From be6d25ebe62371afe8ea2c7dcdeeca3174ad96e1 Mon Sep 17 00:00:00 2001 From: glughi Date: Tue, 20 Jun 2023 11:53:54 +0200 Subject: [PATCH 118/215] Fix commit 6613ca5 --- lib/ReactViewModels/ViewState.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/ReactViewModels/ViewState.ts b/lib/ReactViewModels/ViewState.ts index 4d97def7a66..2b8779dd057 100644 --- a/lib/ReactViewModels/ViewState.ts +++ b/lib/ReactViewModels/ViewState.ts @@ -361,6 +361,7 @@ export default class ViewState { this.searchState = new SearchState({ terria: terria, catalogSearchProvider: options.catalogSearchProvider, + catalogItemsSearchProvider: options.catalogItemsSearchProvider, locationSearchProviders: options.locationSearchProviders }); From 7cc377b2eb77d0b21b3db109bd53f867465bd78d Mon Sep 17 00:00:00 2001 From: glughi Date: Tue, 20 Jun 2023 11:55:44 +0200 Subject: [PATCH 119/215] Fix warning --- .../FeatureInfo/FeatureInfoCatalogItem.tsx | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/lib/ReactViews/FeatureInfo/FeatureInfoCatalogItem.tsx b/lib/ReactViews/FeatureInfo/FeatureInfoCatalogItem.tsx index ce65ec45bba..67a3b77dc0a 100644 --- a/lib/ReactViews/FeatureInfo/FeatureInfoCatalogItem.tsx +++ b/lib/ReactViews/FeatureInfo/FeatureInfoCatalogItem.tsx @@ -6,6 +6,7 @@ import TerriaFeature from "../../Models/Feature/Feature"; import ViewState from "../../ReactViewModels/ViewState"; import Styles from "./feature-info-catalog-item.scss"; import FeatureInfoSection from "./FeatureInfoSection"; +import { autorun } from "mobx"; interface Props { features: TerriaFeature[]; @@ -21,9 +22,23 @@ export default (props: Props) => { const catalogItem = props.catalogItem; const terria = props.viewState.terria; - const maximumShownFeatureInfos = + /*const maximumShownFeatureInfos = catalogItem.maximumShownFeatureInfos ?? - terria.configParameters.defaultMaximumShownFeatureInfos; + terria.configParameters.defaultMaximumShownFeatureInfos;*/ + + const [maximumShownFeatureInfos, setMaximumShownFeatureInfos] = + React.useState(terria.configParameters.defaultMaximumShownFeatureInfos); + + React.useEffect( + () => + autorun(() => { + setMaximumShownFeatureInfos( + catalogItem.maximumShownFeatureInfos ?? + terria.configParameters.defaultMaximumShownFeatureInfos + ); + }), + [] + ); const hiddenNumber = features.length - maximumShownFeatureInfos; // A positive hiddenNumber => some are hidden; negative means none are. From 1312ed586a4c72e10ae0a397f9f8c67419f6c5d8 Mon Sep 17 00:00:00 2001 From: glughi Date: Tue, 20 Jun 2023 14:03:42 +0200 Subject: [PATCH 120/215] Fix Cesium import at commit 182ed15 --- lib/ReactViews/Elevation/ElevationDownload.tsx | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/ReactViews/Elevation/ElevationDownload.tsx b/lib/ReactViews/Elevation/ElevationDownload.tsx index ad99b67ab37..510558f01d3 100644 --- a/lib/ReactViews/Elevation/ElevationDownload.tsx +++ b/lib/ReactViews/Elevation/ElevationDownload.tsx @@ -6,13 +6,14 @@ import Entity from "terriajs-cesium/Source/DataSources/Entity"; import EntityCollection from "terriajs-cesium/Source/DataSources/EntityCollection"; import PolylineGraphics from "terriajs-cesium/Source/DataSources/PolylineGraphics"; import exportKml from "terriajs-cesium/Source/DataSources/exportKml"; +import PointGraphics from "terriajs-cesium/Source/DataSources/PointGraphics"; import DataUri from "../../Core/DataUri"; //import Dropdown from "../Generic/Dropdown"; import Icon from "../../Styled/Icon"; import Styles from "./elevation-download.scss"; //import PropTypes from "prop-types"; import { PathCustom } from "../../Models/Terria"; -import { exportKmlResultKml, PointGraphics } from "terriajs-cesium"; +import { exportKmlResultKml } from "terriajs-cesium"; const Dropdown = require("../Generic/Dropdown"); From ce91fa1f12478a3d1eba389e5dc743441df220f8 Mon Sep 17 00:00:00 2001 From: glughi Date: Tue, 20 Jun 2023 23:59:01 +0200 Subject: [PATCH 121/215] Improve coords of a point management in state --- lib/Models/Terria.ts | 10 +-- lib/ReactViewModels/MouseCoords.ts | 4 +- .../FeatureInfo/FeatureInfoPanel.tsx | 61 +++++++++++-------- .../Map/Panels/CoordsPanel/CoordsPanel.jsx | 20 +++--- 4 files changed, 51 insertions(+), 44 deletions(-) diff --git a/lib/Models/Terria.ts b/lib/Models/Terria.ts index 727f861f231..2b786e7db0d 100644 --- a/lib/Models/Terria.ts +++ b/lib/Models/Terria.ts @@ -562,15 +562,15 @@ export default class Terria { /** * Gets or sets the last position picked by FeatureInfo. - * @type {Cartesian3} + * @type {Cartographic} */ - @observable pickedPosition: Cartesian3 | undefined; + @observable pickedPosition: Cartographic | undefined; /** - * Gets or sets the points of a path drawn with the MeasureTool. - * @type {Cartographic[]} + * Gets or sets the elevation in the last position picked by FeatureInfo. + * @type {string} */ - @observable pathPoints: Cartographic[] | undefined; + @observable pickedPositionElevation: string | undefined; /** * Gets or sets the data computed sampling a path drawn with the MeasureTool. diff --git a/lib/ReactViewModels/MouseCoords.ts b/lib/ReactViewModels/MouseCoords.ts index 15fa10d711c..398e080db4c 100644 --- a/lib/ReactViewModels/MouseCoords.ts +++ b/lib/ReactViewModels/MouseCoords.ts @@ -11,15 +11,13 @@ import JSEarthGravityModel1996 from "../Map/Vector/EarthGravityModel1996"; import prettifyCoordinates from "../Map/Vector/prettifyCoordinates"; import prettifyProjection from "../Map/Vector/prettifyProjection"; import Terria from "../Models/Terria"; +import sampleTerrainMostDetailed from "terriajs-cesium/Source/Core/sampleTerrainMostDetailed"; // TypeScript 3.6.3 can't tell JSEarthGravityModel1996 is a class and reports // Cannot use namespace 'JSEarthGravityModel1996' as a type.ts(2709) // This is a dodgy workaround. class EarthGravityModel1996 extends JSEarthGravityModel1996 {} -const sampleTerrainMostDetailed = - require("terriajs-cesium/Source/Core/sampleTerrainMostDetailed").default; - interface Cancelable { cancel: () => void; } diff --git a/lib/ReactViews/FeatureInfo/FeatureInfoPanel.tsx b/lib/ReactViews/FeatureInfo/FeatureInfoPanel.tsx index 024c5fc7419..e1ab253f8ec 100644 --- a/lib/ReactViews/FeatureInfo/FeatureInfoPanel.tsx +++ b/lib/ReactViews/FeatureInfo/FeatureInfoPanel.tsx @@ -7,7 +7,6 @@ import { withTranslation } from "react-i18next"; import Cartesian3 from "terriajs-cesium/Source/Core/Cartesian3"; import Ellipsoid from "terriajs-cesium/Source/Core/Ellipsoid"; import CesiumMath from "terriajs-cesium/Source/Core/Math"; -import DataSource from "terriajs-cesium/Source/DataSources/DataSource"; import Entity from "terriajs-cesium/Source/DataSources/Entity"; import flatten from "../../Core/flatten"; import isDefined from "../../Core/isDefined"; @@ -32,6 +31,7 @@ import Loader from "../Loader"; import { withViewState } from "../StandardUserInterface/ViewStateContext"; import Styles from "./feature-info-panel.scss"; import FeatureInfoCatalogItem from "./FeatureInfoCatalogItem"; +import Cartographic from "terriajs-cesium/Source/Core/Cartographic"; import clipboard from "clipboard"; import Button from "../../Styled/Button"; @@ -45,10 +45,6 @@ interface Props { @observer class FeatureInfoPanel extends React.Component { - state = { - elev: 0 - }; - componentDidMount() { const { t } = this.props; const terria = this.props.viewState.terria; @@ -230,6 +226,7 @@ class FeatureInfoPanel extends React.Component { renderLocationItem(cartesianPosition: Cartesian3) { const cartographic = + this.props.viewState.terria.pickedPosition ?? Ellipsoid.WGS84.cartesianToCartographic(cartesianPosition); if (cartographic === undefined) { return <>; @@ -240,21 +237,6 @@ class FeatureInfoPanel extends React.Component { // this.locationUpdated(longitude, latitude); const that = this; - - if ( - !!this.props.viewState.terria.cesium && - this.props.viewState.terria.cesium.scene.terrainProvider - ) { - sampleTerrainMostDetailed( - this.props.viewState.terria.cesium.scene.terrainProvider, - [cartographic] - ).then(function (newPositions) { - that.setState({ elev: Math.round(newPositions[0].height) }); - }); - } else if (typeof this.state.elev !== "undefined") { - this.setState({ elev: undefined }); - } - const pinClicked = function () { that.pinClicked(longitude, latitude); }; @@ -265,16 +247,20 @@ class FeatureInfoPanel extends React.Component { return (
          - {!!this.props.viewState.terria.cesium && this.state.elev && ( + {!!cartographic && (
          Altitudine - {this.state.elev} m s.l.m. + + {this.props.viewState.terria.pickedPositionElevation} m s.l.m. +
          )}
          Lat / Lon  - {pretty.latitude + ", " + pretty.longitude} + + {pretty.latitude + ", " + pretty.longitude} + {!this.props.printView && ( )} @@ -320,6 +310,23 @@ class FeatureInfoPanel extends React.Component { ); } + @action + setPicked(terria: Terria, position: Cartesian3) { + const cartographic = Ellipsoid.WGS84.cartesianToCartographic(position); + if ( + terria?.cesium?.scene?.terrainProvider && + !Cartographic.equals(terria.pickedPosition, cartographic) + ) { + terria.currentViewer.mouseCoords.debounceSampleAccurateHeight( + terria.cesium.scene.terrainProvider, + cartographic + ); + terria.pickedPosition = terria.currentViewer.mouseCoords.cartographic; + terria.pickedPositionElevation = + terria.currentViewer.mouseCoords.elevation; + } + } + render() { const { t } = this.props; const terria = this.props.viewState.terria; @@ -381,7 +388,7 @@ class FeatureInfoPanel extends React.Component { // Store position in Terria state if (position) { - terria.pickedPosition = position; + this.setPicked(terria, position); } const locationElements = position ? ( diff --git a/lib/ReactViews/Map/Panels/CoordsPanel/CoordsPanel.jsx b/lib/ReactViews/Map/Panels/CoordsPanel/CoordsPanel.jsx index 8b105b88046..f977e350041 100644 --- a/lib/ReactViews/Map/Panels/CoordsPanel/CoordsPanel.jsx +++ b/lib/ReactViews/Map/Panels/CoordsPanel/CoordsPanel.jsx @@ -3,19 +3,16 @@ import classNames from "classnames"; import React, { useState, useEffect } from "react"; import Icon, { StyledIcon } from "../../../../Styled/Icon"; -// import Loader from "../../../Loader"; import MenuPanel from "../../../StandardUserInterface/customizable/MenuPanel"; import Input from "../../../../Styled/Input"; import DropdownStyles from "../panel.scss"; import Styles from "./coords-panel.scss"; - import clipboard from "clipboard"; import Box from "../../../../Styled/Box"; import Button from "../../../../Styled/Button"; import Select from "../../../../Styled/Select"; import CesiumResource from "terriajs-cesium/Source/Core/Resource"; import createZoomToFunction from "../../../../Map/Vector/zoomRectangleFromPoint"; -import Ellipsoid from "terriajs-cesium/Source/Core/Ellipsoid"; import CesiumMath from "terriajs-cesium/Source/Core/Math"; import PropTypes from "prop-types"; @@ -538,12 +535,17 @@ const CoordsPanel = (props) => { }, [coordsInputTxt]); useEffect(() => { - if (!!terria && !!terria.pickedPosition) { - const cartographic = Ellipsoid.WGS84.cartesianToCartographic( - terria.pickedPosition - ); - const latitude = CesiumMath.toDegrees(cartographic.latitude).toFixed(6); - const longitude = CesiumMath.toDegrees(cartographic.longitude).toFixed(6); + if ( + !!terria && + !!terria.pickedPosition && + typeof terria.pickedPosition !== "undefined" + ) { + const latitude = CesiumMath.toDegrees( + terria.pickedPosition.latitude + ).toFixed(6); + const longitude = CesiumMath.toDegrees( + terria.pickedPosition.longitude + ).toFixed(6); if (coordsInputTxt !== `${latitude}, ${longitude}`) { setCoordsInputTxt(`${latitude}, ${longitude}`); } From ae2a1e3ddeb96365c15e37387a583d008feabfb9 Mon Sep 17 00:00:00 2001 From: glughi Date: Wed, 21 Jun 2023 16:03:07 +0200 Subject: [PATCH 122/215] Fix zoomTo MappableMixin with a single entity --- lib/Models/Cesium.ts | 26 ++++++++++++++++++++++---- 1 file changed, 22 insertions(+), 4 deletions(-) diff --git a/lib/Models/Cesium.ts b/lib/Models/Cesium.ts index e6e3df7e927..febd3d0d2ff 100644 --- a/lib/Models/Cesium.ts +++ b/lib/Models/Cesium.ts @@ -836,6 +836,11 @@ export default class Cesium extends GlobeOrMap { duration: flightDurationSeconds, destination: finalDestination }); + } else if (target instanceof BoundingSphere) { + return flyToBoundingSpherePromise(camera, target, { + offset: new HeadingPitchRange(0, -0.7, undefined), + duration: flightDurationSeconds + }); } else if (defined(target.entities)) { // target is some DataSource return waitForDataSourceToLoad(target).then(() => { @@ -881,10 +886,23 @@ export default class Cesium extends GlobeOrMap { } else if (MappableMixin.isMixedInto(target)) { // target is a Mappable if (isDefined(target.cesiumRectangle)) { - return flyToPromise(camera, { - duration: flightDurationSeconds, - destination: target.cesiumRectangle - }); + if ( + target.cesiumRectangle.width > 0 && + target.cesiumRectangle.height > 0 + ) { + return flyToPromise(camera, { + duration: flightDurationSeconds, + destination: target.cesiumRectangle + }); + } else { + const sphere = new BoundingSphere( + Cartographic.toCartesian( + Rectangle.center(target.cesiumRectangle) + ), + 500 + ); + return this.doZoomTo(sphere, flightDurationSeconds); + } } else if (target.mapItems.length > 0) { // Zoom to the first item! return this.doZoomTo(target.mapItems[0], flightDurationSeconds); From 17295ed6757640c561e1e6ce65354d26edbaecc7 Mon Sep 17 00:00:00 2001 From: glughi Date: Wed, 21 Jun 2023 16:05:03 +0200 Subject: [PATCH 123/215] Simplify prettified latitude and longitude. --- lib/Map/Vector/prettifyCoordinates.ts | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/lib/Map/Vector/prettifyCoordinates.ts b/lib/Map/Vector/prettifyCoordinates.ts index 028a8065b61..d88295849fb 100644 --- a/lib/Map/Vector/prettifyCoordinates.ts +++ b/lib/Map/Vector/prettifyCoordinates.ts @@ -33,10 +33,8 @@ export default function prettifyCoordinates( latitude: number, { height, errorBar, digits = 6 }: PrettifyOptions = {} ) { - const prettyLatitude = - Math.abs(latitude).toFixed(digits) + "°" + (latitude < 0.0 ? "S" : "N"); - const prettyLongitude = - Math.abs(longitude).toFixed(digits) + "°" + (longitude < 0.0 ? "W" : "E"); + const prettyLatitude = Math.abs(latitude).toFixed(digits); //+ "°" + (latitude < 0.0 ? "S" : "N"); + const prettyLongitude = Math.abs(longitude).toFixed(digits); //+ "°" + (longitude < 0.0 ? "W" : "E"); let prettyElevation = undefined; if (height !== undefined) { From b1110c83e71a3b871025dd72779a5772d714e93f Mon Sep 17 00:00:00 2001 From: glughi Date: Wed, 21 Jun 2023 16:08:28 +0200 Subject: [PATCH 124/215] Slow down zoom on a new layer --- lib/Models/Terria.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/Models/Terria.ts b/lib/Models/Terria.ts index 2b786e7db0d..d369176177e 100644 --- a/lib/Models/Terria.ts +++ b/lib/Models/Terria.ts @@ -1672,7 +1672,7 @@ export default class Terria { if (isJsonObject(initData.initialCamera)) { const initialCamera = CameraView.fromJson(initData.initialCamera); - this.currentViewer.zoomTo(initialCamera, 2.0); + this.currentViewer.zoomTo(initialCamera); } if (isJsonBoolean(initData.showSplitter)) { From 5034f48b18a126274d962e7b4abdfdaeff1c550e Mon Sep 17 00:00:00 2001 From: glughi Date: Wed, 21 Jun 2023 16:12:48 +0200 Subject: [PATCH 125/215] Add "download as gpx" button to FeatureInfo --- .../Elevation/ElevationDownload.tsx | 17 +-- .../FeatureInfo/FeatureInfoPanel.tsx | 135 +++++++++++------- .../FeatureInfo/feature-info-panel.scss | 5 +- 3 files changed, 100 insertions(+), 57 deletions(-) diff --git a/lib/ReactViews/Elevation/ElevationDownload.tsx b/lib/ReactViews/Elevation/ElevationDownload.tsx index 510558f01d3..06b96b88c96 100644 --- a/lib/ReactViews/Elevation/ElevationDownload.tsx +++ b/lib/ReactViews/Elevation/ElevationDownload.tsx @@ -165,11 +165,10 @@ const ElevationDownload = (props: Props) => { ${path.stopPoints .map( (elem) => - `` + ` + ` ) .join("")} @@ -183,9 +182,11 @@ const ElevationDownload = (props: Props) => { ${path.stopPoints .map( (elem, index) => - `` + ` + ` ) .join("")} `; diff --git a/lib/ReactViews/FeatureInfo/FeatureInfoPanel.tsx b/lib/ReactViews/FeatureInfo/FeatureInfoPanel.tsx index e1ab253f8ec..e95d0e7af8a 100644 --- a/lib/ReactViews/FeatureInfo/FeatureInfoPanel.tsx +++ b/lib/ReactViews/FeatureInfo/FeatureInfoPanel.tsx @@ -34,6 +34,7 @@ import FeatureInfoCatalogItem from "./FeatureInfoCatalogItem"; import Cartographic from "terriajs-cesium/Source/Core/Cartographic"; import clipboard from "clipboard"; import Button from "../../Styled/Button"; +import DataUri from "../../Core/DataUri"; const DragWrapper = require("../DragWrapper"); @@ -224,6 +225,24 @@ class FeatureInfoPanel extends React.Component { } } + generateGpxWaypoints(location: Cartographic): string { + return ` + + + + `; + } + + downloadLocationAsGpx(locationGpx: string): void { + const a = document.createElement("a"); + a.href = DataUri.make("xml", locationGpx); + a.download = "location.gpx"; + a.click(); + } + renderLocationItem(cartesianPosition: Cartesian3) { const cartographic = this.props.viewState.terria.pickedPosition ?? @@ -241,6 +260,10 @@ class FeatureInfoPanel extends React.Component { that.pinClicked(longitude, latitude); }; + const downloadLocationAsGpx = () => { + that.downloadLocationAsGpx(that.generateGpxWaypoints(cartographic)); + }; + /*const locationButtonStyle = isMarkerVisible(this.props.viewState.terria) ? Styles.btnLocationSelected : Styles.btnLocation;*/ @@ -256,56 +279,72 @@ class FeatureInfoPanel extends React.Component {
          )}
          - Lat / Lon  - - - {pretty.latitude + ", " + pretty.longitude} - - {!this.props.printView && ( - - - - - )} + Lat / Lon + + {pretty.latitude + ", " + pretty.longitude}
          +
          + + {!this.props.printView && ( + + + + + + )} +
          ); } diff --git a/lib/ReactViews/FeatureInfo/feature-info-panel.scss b/lib/ReactViews/FeatureInfo/feature-info-panel.scss index e8811fd0ee2..7459d9c589e 100644 --- a/lib/ReactViews/FeatureInfo/feature-info-panel.scss +++ b/lib/ReactViews/FeatureInfo/feature-info-panel.scss @@ -91,7 +91,10 @@ } .location { - margin: 10px; + margin-top: 15px; + margin-bottom: 10px; + margin-left: 10px; + margin-right: 10px; display: flex; align-items: center; justify-content: space-between; From 828c5109798bc420f7d2c680a79780359783c91c Mon Sep 17 00:00:00 2001 From: glughi Date: Wed, 21 Jun 2023 19:10:40 +0200 Subject: [PATCH 126/215] Rearrange the bottons of the navigation menu --- .../Map/Navigation/registerMapNavigations.tsx | 21 +++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/lib/ReactViews/Map/Navigation/registerMapNavigations.tsx b/lib/ReactViews/Map/Navigation/registerMapNavigations.tsx index 68c8544334c..7031dca22a5 100644 --- a/lib/ReactViews/Map/Navigation/registerMapNavigations.tsx +++ b/lib/ReactViews/Map/Navigation/registerMapNavigations.tsx @@ -72,7 +72,16 @@ export const registerMapNavigations = (viewState: ViewState) => { title: "translate#location.centreMap", location: "TOP", controller: myLocation, - screenSize: undefined, + screenSize: "medium", + order: 7 + }); + mapNavigationModel.addItem({ + id: MyLocation.id + "_small", + name: "translate#location.location", + title: "translate#location.centreMap", + location: "TOP", + controller: myLocation, + screenSize: "small", order: 3 }); @@ -88,7 +97,7 @@ export const registerMapNavigations = (viewState: ViewState) => { location: "TOP", controller: toggleSplitterController, screenSize: undefined, - order: 4 + order: 6 }); const measureTool = new MeasureTool({ @@ -122,7 +131,7 @@ export const registerMapNavigations = (viewState: ViewState) => { location: "TOP", controller: measureTool, screenSize: undefined, - order: 6 + order: 4 }); const measureAreaTool = new MeasureAreaTool({ @@ -157,7 +166,7 @@ export const registerMapNavigations = (viewState: ViewState) => { location: "TOP", controller: measureAreaTool, screenSize: undefined, - order: 9 + order: 5 }); const toggleInfoController = new ToggleInfoController(viewState); @@ -168,7 +177,7 @@ export const registerMapNavigations = (viewState: ViewState) => { location: "TOP", controller: toggleInfoController, screenSize: undefined, - order: 10 + order: 3 }); const pedestrianModeToolController = new ToolButtonController({ @@ -184,7 +193,7 @@ export const registerMapNavigations = (viewState: ViewState) => { location: "TOP", screenSize: "medium", controller: pedestrianModeToolController, - order: 5 + order: 9 }); const closeToolButtonController = new GenericMapNavigationItemController({ From 9524c795ef921f305eba2506cb5be63c99d0ed20 Mon Sep 17 00:00:00 2001 From: glughi Date: Thu, 22 Jun 2023 10:16:04 +0200 Subject: [PATCH 127/215] Add queryable properties to catalog items --- lib/ModelMixins/GeojsonMixin.ts | 150 ++++++++++--- lib/ModelMixins/QueryableCatalogItemMixin.ts | 103 +++++++++ .../Controls/FilterFeaturesSection.tsx | 201 ++++++++++++++++++ .../Controls/WorkbenchItemControls.tsx | 11 +- lib/Traits/TraitsClasses/GeoJsonTraits.ts | 2 + .../QueryableCatalogItemTraits.ts | 45 ++++ 6 files changed, 477 insertions(+), 35 deletions(-) create mode 100644 lib/ModelMixins/QueryableCatalogItemMixin.ts create mode 100644 lib/ReactViews/Workbench/Controls/FilterFeaturesSection.tsx create mode 100644 lib/Traits/TraitsClasses/QueryableCatalogItemTraits.ts diff --git a/lib/ModelMixins/GeojsonMixin.ts b/lib/ModelMixins/GeojsonMixin.ts index 70bc814e92a..2e5cb629273 100644 --- a/lib/ModelMixins/GeojsonMixin.ts +++ b/lib/ModelMixins/GeojsonMixin.ts @@ -102,7 +102,10 @@ import FeatureInfoUrlTemplateMixin from "./FeatureInfoUrlTemplateMixin"; import { isDataSource } from "./MappableMixin"; import TableMixin from "./TableMixin"; import MeasurableMixin from "./MeasurableMixin"; -import SearchableCatalogItemMixin, { SearchableData } from "./SearchableCatalogItemMixin"; +import SearchableCatalogItemMixin, { + SearchableData +} from "./SearchableCatalogItemMixin"; +import QueryableCatalogItemMixin from "./QueryableCatalogItemMixin"; enum PathTypes { noPath = 0, @@ -232,13 +235,14 @@ interface FeatureCounts { } function GeoJsonMixin>>(Base: T) { - abstract class GeoJsonMixin extends SearchableCatalogItemMixin( - MeasurableMixin( - TableMixin( - FeatureInfoUrlTemplateMixin( - UrlMixin( - CatalogMemberMixin(Base) - )))) + abstract class GeoJsonMixin extends QueryableCatalogItemMixin( + SearchableCatalogItemMixin( + MeasurableMixin( + TableMixin( + FeatureInfoUrlTemplateMixin(UrlMixin(CatalogMemberMixin(Base))) + ) + ) + ) ) { @observable private _dataSource: @@ -1461,36 +1465,116 @@ function GeoJsonMixin>>(Base: T) { searchWithinItemData(text: string) { // Search in TerriaJS Feature and Turf Geometry - const elements: SearchableData[] | undefined = this.readyData?.features.map(feature => { - const fieldContent: string = feature.properties?.[this.nameOfCatalogItemSearchField] ?? ""; - - const type = feature.geometry.type; - let lat: number; - let lon: number; - if (type === "Point" && (feature.geometry as Geometry).coordinates.length === 2) { - lon = (feature.geometry as Geometry).coordinates[0] as number; - lat = (feature.geometry as Geometry).coordinates[1] as number; - } - else { - const geojsonBbox = bbox(feature); - const west = geojsonBbox[0]; - const south = geojsonBbox[1]; - const east = geojsonBbox[2]; - const north = geojsonBbox[3]; - lon = (east - west) * 0.5 + west; - lat = (north - south) * 0.5 + south; - } + const elements: SearchableData[] | undefined = + this.readyData?.features.map((feature) => { + const fieldContent: string = + feature.properties?.[this.nameOfCatalogItemSearchField] ?? ""; + + const type = feature.geometry.type; + let lat: number; + let lon: number; + if ( + type === "Point" && + (feature.geometry as Geometry).coordinates.length === 2 + ) { + lon = (feature.geometry as Geometry).coordinates[0] as number; + lat = (feature.geometry as Geometry).coordinates[1] as number; + } else { + const geojsonBbox = bbox(feature); + const west = geojsonBbox[0]; + const south = geojsonBbox[1]; + const east = geojsonBbox[2]; + const north = geojsonBbox[3]; + lon = (east - west) * 0.5 + west; + lat = (north - south) * 0.5 + south; + } - return { - searchField: fieldContent, - latitude: lat, - longitude: lon - }; - }); + return { + searchField: fieldContent, + latitude: lat, + longitude: lon + }; + }); return this.search(text, elements); } + getEnumValues(propertyName: string): string[] | undefined { + if ( + this.mapItems && + this.mapItems.length > 0 && + (this.mapItems[0] instanceof CustomDataSource || + this.mapItems[0] instanceof GeoJsonDataSource || + this.mapItems[0] instanceof CzmlDataSource) + ) { + const values: Set = new Set(["all"]); + + for (let entity of this.mapItems[0].entities.values) { + if (entity?.properties) { + if (entity.properties.hasProperty(propertyName)) { + values.add( + entity.properties.getValue(JulianDate.now())[propertyName] + ); + } + } + } + + return Array.from(values); + } + } + + filterData() { + if (!this.queryProperties || !this.queryValues) return; + const selectedValuesArray = Object.values(this.queryValues); + + const showAll = !selectedValuesArray + .flat() + .some((value) => value !== "" && value !== "all"); + + if ( + this.mapItems && + this.mapItems.length > 0 && + (this.mapItems[0] instanceof CustomDataSource || + this.mapItems[0] instanceof GeoJsonDataSource || + this.mapItems[0] instanceof CzmlDataSource) + ) { + for (let entity of this.mapItems[0].entities.values) { + const visibility: boolean[] = selectedValuesArray.map((_) => true); + if (!showAll) { + Object.entries(this.queryValues).forEach(([key, value], index) => { + if (entity?.properties?.hasProperty(key)) { + const qqq = entity.properties.getValue(JulianDate.now())[key]; + + if ( + this.queryProperties?.[key].type === "enum" || + this.queryProperties?.[key].type === "string" || + this.queryProperties?.[key].type === "number" + ) { + visibility[index] = + value[0].toLowerCase() === "all" || + value[0].toLowerCase() === "" || + qqq.toLowerCase() === value[0].toLowerCase(); + } else if (this.queryProperties?.[key].type === "date") { + if (value[0] === "" || value[1] === "") { + visibility[index] = true; + } else { + const fromDate = new Date(value[0]); + const toDate = new Date(value[1]); + const entityDate = new Date(qqq); + visibility[index] = + fromDate.getTime() < entityDate.getTime() && + entityDate.getTime() < toDate.getTime(); + } + } + } + }); + } + + entity.show = visibility.every((vis) => vis); + } + } + } + @computed get viewingControls(): ViewingControl[] { return !this.useTableStylingAndProtomaps ? super.viewingControls.filter( diff --git a/lib/ModelMixins/QueryableCatalogItemMixin.ts b/lib/ModelMixins/QueryableCatalogItemMixin.ts new file mode 100644 index 00000000000..6fcdcc4299f --- /dev/null +++ b/lib/ModelMixins/QueryableCatalogItemMixin.ts @@ -0,0 +1,103 @@ +import { computed, observable, action } from "mobx"; +import Constructor from "../Core/Constructor"; +import Model from "../Models/Definition/Model"; +import StratumOrder from "../Models/Definition/StratumOrder"; +import QueryableCatalogItemTraits from "../Traits/TraitsClasses/QueryableCatalogItemTraits"; + +type MixinModel = Model; + +interface QueryableProperties { + [name: string]: { + label: string; + type: string; + canAggregate: boolean; + enumValues: string[]; + }; +} + +function QueryableCatalogItemMixin>(Base: T) { + abstract class QueryableCatalogItemMixin extends Base { + constructor(...args: any[]) { + super(...args); + } + + @observable + queryValues?: { [name: string]: string[] }; + + @computed + get queryProperties(): QueryableProperties | undefined { + return Object.assign( + {}, + ...this.queryableProperties.map((property) => { + return { + [property.propertyName]: { + type: property.propertyType, + label: property.propertyLabel, + canAggregate: property.canAggregate, + enumValues: + property.propertyType === "enum" + ? this.getEnumValues(property.propertyName) + : [] + } + }; + }) + ); + } + + @computed + get hasQueryableCatalogItemMixin() { + return true; + } + + abstract filterData(): void; + + abstract getEnumValues(keys: string): string[] | undefined; + + @action + initQueryValues() { + if (!this.queryProperties) return; + + const initialValues = Object.entries(this.queryProperties).map( + ([name, property]) => { + if (property.type === "enum" /*&& this.urca*/) { + return property.enumValues; + } else if (property.type === "date") { + return { [name]: ["", ""] }; + } else { + return { [name]: [""] }; + } + } + ); + + this.queryValues = Object.assign({}, ...initialValues); + } + + @action + resetQueryValues() { + this.queryValues = undefined; + } + + @action + setQuery(propertyName: string, value: string[]): void { + if (this.queryValues) { + this.queryValues[propertyName] = value; + this.filterData(); + } + } + } + return QueryableCatalogItemMixin; +} + +namespace QueryableCatalogItemMixin { + export interface Instance + extends InstanceType> {} + + export function isMixedInto(model: any): model is Instance { + return model?.hasQueryableCatalogItemMixin; + } + + export const stratumName = "queryableCatalogItemStratum"; + StratumOrder.addLoadStratum(stratumName); +} + +export default QueryableCatalogItemMixin; diff --git a/lib/ReactViews/Workbench/Controls/FilterFeaturesSection.tsx b/lib/ReactViews/Workbench/Controls/FilterFeaturesSection.tsx new file mode 100644 index 00000000000..3a975efa385 --- /dev/null +++ b/lib/ReactViews/Workbench/Controls/FilterFeaturesSection.tsx @@ -0,0 +1,201 @@ +import { observer } from "mobx-react"; +import React, { useEffect, useState } from "react"; +import { runInAction } from "mobx"; +import { BaseModel } from "../../../Models/Definition/Model"; +import Box from "../../../Styled/Box"; +import Select from "../../../Styled/Select"; +import styled from "styled-components"; +import Text, { TextSpan } from "../../../Styled/Text"; +import Spacing from "../../../Styled/Spacing"; +import QueryableCatalogItemMixin from "../../../ModelMixins/QueryableCatalogItemMixin"; +import Input from "../../../Styled/Input"; +import { GLYPHS, StyledIcon } from "../../../Styled/Icon"; +import { RawButton } from "../../../Styled/Button"; +import Hr from "../../../Styled/Hr"; + +interface PropsType { + item: BaseModel; +} + +const FilterFeaturesSection: React.FC = observer( + ({ item }: PropsType) => { + const [showQuerySection, setShowQuerySection] = useState(false); + + const toggleQuerySection = () => { + setShowQuerySection((prevState) => !prevState); + }; + + useEffect(() => { + if ( + QueryableCatalogItemMixin.isMixedInto(item) && + item.queryableProperties && + item.queryableProperties.length && + !item.queryValues + ) { + item.initQueryValues(); + } + }, [showQuerySection, item]); + + useEffect(() => { + return () => { + if (QueryableCatalogItemMixin.isMixedInto(item)) { + item.resetQueryValues(); + } + }; + }, []); + + if ( + !QueryableCatalogItemMixin.isMixedInto(item) || + !item.queryableProperties || + item.queryableProperties.length === 0 + ) + return null; + + return ( + + + + + Query + + {showQuerySection ? ( + + ) : ( + + )} + + {showQuerySection && item.queryValues && item.queryProperties && ( + <> + + + {Object.entries(item.queryProperties).map( + ([propertyName, property]) => { + return ( + + + {property.label} + + + {property.type === "enum" && ( + + )} + {(property.type === "string" || + property.type === "number") && ( + + ) => { + runInAction(() => { + item.setQuery(propertyName, [e.target.value]); + }); + }} + /> + )} + {property.type === "date" && ( + + + ) => { + runInAction(() => { + const oldValue = + item.queryValues?.[propertyName]; + if (oldValue) { + item.setQuery(propertyName, [ + e.target.value, + oldValue[1] + ]); + } + }); + }} + /> + + ) => { + runInAction(() => { + const oldValue = + item.queryValues?.[propertyName]; + if (oldValue) { + item.setQuery(propertyName, [ + oldValue[0], + e.target.value + ]); + } + }); + }} + /> + + )} + + ); + } + )} + + + )} + + + ); + } +); + +const StyledLabel = styled(Text).attrs({ as: "label" })<{ htmlFor: string }>` + white-space: nowrap; + flex-basis: 50%; +`; + +const AdvanceOptionsIcon = styled(StyledIcon).attrs({ + styledWidth: "10px", + light: true +})``; + +const MydHr = styled(Hr).attrs((props) => ({ + size: 1 +}))` + margin: 10px -10px; +`; + +export default FilterFeaturesSection; diff --git a/lib/ReactViews/Workbench/Controls/WorkbenchItemControls.tsx b/lib/ReactViews/Workbench/Controls/WorkbenchItemControls.tsx index 4101fa45053..aebc475b7cb 100644 --- a/lib/ReactViews/Workbench/Controls/WorkbenchItemControls.tsx +++ b/lib/ReactViews/Workbench/Controls/WorkbenchItemControls.tsx @@ -19,6 +19,7 @@ import { ScaleWorkbenchInfo } from "./ScaleWorkbenchInfo"; import DimensionSelectorSection from "./SelectableDimensionSection"; import ShortReport from "./ShortReport"; import TimerSection from "./TimerSection"; +import FilterFeaturesSection from "./FilterFeaturesSection"; import ViewingControls from "./ViewingControls"; type WorkbenchControls = { @@ -35,6 +36,7 @@ type WorkbenchControls = { colorScaleRange?: boolean; shortReport?: boolean; legend?: boolean; + filterFeatures?: boolean; }; type WorkbenchItemControlsProps = { @@ -57,7 +59,8 @@ export const defaultControls: Complete = { selectableDimensions: true, colorScaleRange: true, shortReport: true, - legend: true + legend: true, + filterFeatures: true }; export const hideAllControls: Complete = { @@ -73,7 +76,8 @@ export const hideAllControls: Complete = { selectableDimensions: false, colorScaleRange: false, shortReport: false, - legend: false + legend: false, + filterFeatures: false }; const WorkbenchItemControls: React.FC = observer( @@ -92,6 +96,9 @@ const WorkbenchItemControls: React.FC = observer( {controls?.splitter ? : null} {controls?.chartItems ? : null} {controls?.filter ? : null} + {controls?.filterFeatures ? ( + + ) : null} {controls?.dateTime && DiscretelyTimeVaryingMixin.isMixedInto(item) ? ( ) : null} diff --git a/lib/Traits/TraitsClasses/GeoJsonTraits.ts b/lib/Traits/TraitsClasses/GeoJsonTraits.ts index 9f9093f27e5..5104a92ab83 100644 --- a/lib/Traits/TraitsClasses/GeoJsonTraits.ts +++ b/lib/Traits/TraitsClasses/GeoJsonTraits.ts @@ -11,6 +11,7 @@ import StyleTraits from "./StyleTraits"; import TableTraits from "./TableTraits"; import UrlTraits from "./UrlTraits"; import SearchableCatalogItemTraits from "./SearchableCatalogItemTraits"; +import QueryableCatalogItemTraits from "./QueryableCatalogItemTraits"; export class PerPropertyGeoJsonStyleTraits extends ModelTraits { @anyTrait({ @@ -38,6 +39,7 @@ export class PerPropertyGeoJsonStyleTraits extends ModelTraits { } export class GeoJsonTraits extends mixTraits( + QueryableCatalogItemTraits, SearchableCatalogItemTraits, FeatureInfoUrlTemplateTraits, LegendOwnerTraits, diff --git a/lib/Traits/TraitsClasses/QueryableCatalogItemTraits.ts b/lib/Traits/TraitsClasses/QueryableCatalogItemTraits.ts new file mode 100644 index 00000000000..62d0e842c0f --- /dev/null +++ b/lib/Traits/TraitsClasses/QueryableCatalogItemTraits.ts @@ -0,0 +1,45 @@ +import ModelTraits from "../ModelTraits"; +import primitiveTrait from "../Decorators/primitiveTrait"; +import objectArrayTrait from "../Decorators/objectArrayTrait"; + +export class QueryablePropertyTraits extends ModelTraits { + @primitiveTrait({ + type: "string", + name: "propertyName", + description: "" + }) + propertyName: string = + "The name of the property of the layer to use to query the data (case insensitive)"; + + @primitiveTrait({ + type: "string", + name: "propertyLabel", + description: "" + }) + propertyLabel: string = "The label to show in the interface"; + + @primitiveTrait({ + type: "string", + name: "propertyType", + description: + "The type of the property, one of string, number, enum (use all property values from the layer), date (use a range of two dates)" + }) + propertyType: "string" | "number" | "enum" | "date" = "string"; + + @primitiveTrait({ + type: "boolean", + name: "canAggregate", + description: "If true, user can aggregate the data by this property" + }) + canAggregate: boolean = false; +} + +export default class QueryableCatalogItemTraits extends ModelTraits { + @objectArrayTrait({ + type: QueryablePropertyTraits, + name: "queryableProperties", + description: "The properties to use to query the layer data", + idProperty: "propertyName" + }) + queryableProperties?: QueryablePropertyTraits[]; +} From 69daebb2f2a0e5b028541aed51a0d329aacff0e7 Mon Sep 17 00:00:00 2001 From: glughi Date: Tue, 27 Jun 2023 18:25:02 +0200 Subject: [PATCH 128/215] Fix repainting when the visibility of an entity changes --- lib/ModelMixins/GeojsonMixin.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/ModelMixins/GeojsonMixin.ts b/lib/ModelMixins/GeojsonMixin.ts index 2e5cb629273..0010422d163 100644 --- a/lib/ModelMixins/GeojsonMixin.ts +++ b/lib/ModelMixins/GeojsonMixin.ts @@ -1572,6 +1572,7 @@ function GeoJsonMixin>>(Base: T) { entity.show = visibility.every((vis) => vis); } + this.terria.currentViewer.notifyRepaintRequired(); } } From b4cf8a19f876dc7301273d23c465c2d7bb8d12c9 Mon Sep 17 00:00:00 2001 From: glughi Date: Wed, 12 Jul 2023 16:36:32 +0200 Subject: [PATCH 129/215] Add QueryPanel for QueryableCatalogItem --- lib/ModelMixins/GeojsonMixin.ts | 29 +- lib/ModelMixins/QueryableCatalogItemMixin.ts | 18 +- lib/Models/Terria.ts | 7 +- lib/ReactViewModels/ViewState.ts | 23 + lib/ReactViews/QueryWindow/QueryChart.tsx | 431 ++++++++++++++++++ lib/ReactViews/QueryWindow/QueryPanel.tsx | 260 +++++++++++ lib/ReactViews/QueryWindow/QuerySelector.tsx | 51 +++ lib/ReactViews/QueryWindow/QueryWindow.tsx | 62 +++ lib/ReactViews/QueryWindow/query-panel.scss | 22 + .../QueryWindow/query-panel.scss.d.ts | 9 + lib/ReactViews/QueryWindow/query-window.scss | 36 ++ .../QueryWindow/query-window.scss.d.ts | 14 + .../StandardUserInterface.tsx | 2 + .../Controls/FilterFeaturesSection.tsx | 12 +- .../Workbench/Controls/ViewingControls.tsx | 16 +- .../QueryableCatalogItemTraits.ts | 34 +- 16 files changed, 1005 insertions(+), 21 deletions(-) create mode 100644 lib/ReactViews/QueryWindow/QueryChart.tsx create mode 100644 lib/ReactViews/QueryWindow/QueryPanel.tsx create mode 100644 lib/ReactViews/QueryWindow/QuerySelector.tsx create mode 100644 lib/ReactViews/QueryWindow/QueryWindow.tsx create mode 100644 lib/ReactViews/QueryWindow/query-panel.scss create mode 100644 lib/ReactViews/QueryWindow/query-panel.scss.d.ts create mode 100644 lib/ReactViews/QueryWindow/query-window.scss create mode 100644 lib/ReactViews/QueryWindow/query-window.scss.d.ts diff --git a/lib/ModelMixins/GeojsonMixin.ts b/lib/ModelMixins/GeojsonMixin.ts index 0010422d163..a2acc5aaf7d 100644 --- a/lib/ModelMixins/GeojsonMixin.ts +++ b/lib/ModelMixins/GeojsonMixin.ts @@ -1507,10 +1507,10 @@ function GeoJsonMixin>>(Base: T) { this.mapItems[0] instanceof GeoJsonDataSource || this.mapItems[0] instanceof CzmlDataSource) ) { - const values: Set = new Set(["all"]); + const values: Set = new Set(["--all"]); for (let entity of this.mapItems[0].entities.values) { - if (entity?.properties) { + if (entity?.properties && entity.show) { if (entity.properties.hasProperty(propertyName)) { values.add( entity.properties.getValue(JulianDate.now())[propertyName] @@ -1523,13 +1523,34 @@ function GeoJsonMixin>>(Base: T) { } } + getFeaturePropertiesByName( + propertyNames: string[] + ): { [key: string]: any }[] | undefined { + if ( + this.mapItems && + this.mapItems.length > 0 && + (this.mapItems[0] instanceof CustomDataSource || + this.mapItems[0] instanceof GeoJsonDataSource || + this.mapItems[0] instanceof CzmlDataSource) + ) { + const results = this.mapItems[0].entities.values.map((entity) => { + const obj = Object.fromEntries( + propertyNames.map((name) => [name, entity.properties?.[name]]) + ); + obj["show"] = new ConstantProperty(entity.show); + return obj; + }); + return results; + } + } + filterData() { if (!this.queryProperties || !this.queryValues) return; const selectedValuesArray = Object.values(this.queryValues); const showAll = !selectedValuesArray .flat() - .some((value) => value !== "" && value !== "all"); + .some((value) => value !== "" && value !== "--all"); if ( this.mapItems && @@ -1551,7 +1572,7 @@ function GeoJsonMixin>>(Base: T) { this.queryProperties?.[key].type === "number" ) { visibility[index] = - value[0].toLowerCase() === "all" || + value[0].toLowerCase() === "--all" || value[0].toLowerCase() === "" || qqq.toLowerCase() === value[0].toLowerCase(); } else if (this.queryProperties?.[key].type === "date") { diff --git a/lib/ModelMixins/QueryableCatalogItemMixin.ts b/lib/ModelMixins/QueryableCatalogItemMixin.ts index 6fcdcc4299f..96caa21f52d 100644 --- a/lib/ModelMixins/QueryableCatalogItemMixin.ts +++ b/lib/ModelMixins/QueryableCatalogItemMixin.ts @@ -6,11 +6,14 @@ import QueryableCatalogItemTraits from "../Traits/TraitsClasses/QueryableCatalog type MixinModel = Model; -interface QueryableProperties { +export interface QueryableProperties { [name: string]: { label: string; type: string; + measureUnit?: string; + decimalPlaces: number; canAggregate: boolean; + sumOnAggregation: boolean; enumValues: string[]; }; } @@ -33,10 +36,13 @@ function QueryableCatalogItemMixin>(Base: T) { [property.propertyName]: { type: property.propertyType, label: property.propertyLabel, + measureUnit: property.propertyMeasureUnit, + decimalPlaces: property.propertyDecimalPlaces, canAggregate: property.canAggregate, + sumOnAggregation: property.sumOnAggregation, enumValues: property.propertyType === "enum" - ? this.getEnumValues(property.propertyName) + ? this.getEnumValues(property.propertyName)?.sort() : [] } }; @@ -53,15 +59,17 @@ function QueryableCatalogItemMixin>(Base: T) { abstract getEnumValues(keys: string): string[] | undefined; + abstract getFeaturePropertiesByName( + propertyNames: string[] + ): { [key: string]: any }[] | undefined; + @action initQueryValues() { if (!this.queryProperties) return; const initialValues = Object.entries(this.queryProperties).map( ([name, property]) => { - if (property.type === "enum" /*&& this.urca*/) { - return property.enumValues; - } else if (property.type === "date") { + if (property.type === "date") { return { [name]: ["", ""] }; } else { return { [name]: [""] }; diff --git a/lib/Models/Terria.ts b/lib/Models/Terria.ts index d369176177e..71a92e8c87e 100644 --- a/lib/Models/Terria.ts +++ b/lib/Models/Terria.ts @@ -110,7 +110,6 @@ import TimelineStack from "./TimelineStack"; import { isViewerMode, setViewerMode } from "./ViewerMode"; import Workbench from "./Workbench"; import SelectableDimensionWorkflow from "./Workflows/SelectableDimensionWorkflow"; -import Cartesian3 from "terriajs-cesium/Source/Core/Cartesian3"; import Cartographic from "terriajs-cesium/Source/Core/Cartographic"; // import overrides from "../Overrides/defaults.jsx"; @@ -590,6 +589,12 @@ export default class Terria { */ @observable clampMeasureLineToGround: boolean = true; + /** + * Gets or sets the item to query. + * @type {BaseModel} + */ + @observable itemToQuery: BaseModel | undefined = undefined; + /** * Gets or sets the stack of map interactions modes. The mode at the top of the stack * (highest index) handles click interactions with the map diff --git a/lib/ReactViewModels/ViewState.ts b/lib/ReactViewModels/ViewState.ts index 2b8779dd057..7ec48116167 100644 --- a/lib/ReactViewModels/ViewState.ts +++ b/lib/ReactViewModels/ViewState.ts @@ -307,6 +307,17 @@ export default class ViewState { * @type {Boolean} */ @observable elevationPanelIsCollapsed: boolean = false; + + /** + * Gets or sets a value indicating whether the QueryPanel is visible. + * @type {Boolean} + */ + @observable queryPanelIsVisible: boolean = false; + /** + * Gets or sets a value indicating whether the QueryPanel is collapsed. + * @type {Boolean} + */ + @observable queryPanelIsCollapsed: boolean = false; /** * Gets or sets a value indicating whether the ElevationChart is visible. * @type {Boolean} @@ -562,6 +573,18 @@ export default class ViewState { this.topElement = key; } + @action + openQueryData(queryItem: BaseModel) { + this.terria.itemToQuery = queryItem; + this.queryPanelIsVisible = true; + } + + @action + closeQuery() { + this.queryPanelIsVisible = false; + this.terria.itemToQuery = undefined; + } + @action openAddData() { this.explorerPanelIsVisible = true; diff --git a/lib/ReactViews/QueryWindow/QueryChart.tsx b/lib/ReactViews/QueryWindow/QueryChart.tsx new file mode 100644 index 00000000000..a64630d992c --- /dev/null +++ b/lib/ReactViews/QueryWindow/QueryChart.tsx @@ -0,0 +1,431 @@ +import React from "react"; +import { + ResponsiveContainer, + PieChart, + Pie, + Legend, + Tooltip, + Cell, + BarChart, + CartesianGrid, + Bar, + XAxis, + YAxis +} from "recharts"; +import { ChartType } from "./QueryPanel"; + +const COLORS = [ + "#63b598", + "#ce7d78", + "#ea9e70", + "#a48a9e", + "#c6e1e8", + "#648177", + "#0d5ac1", + "#f205e6", + "#1c0365", + "#14a9ad", + "#4ca2f9", + "#a4e43f", + "#d298e2", + "#6119d0", + "#d2737d", + "#c0a43c", + "#f2510e", + "#651be6", + "#79806e", + "#61da5e", + "#cd2f00", + "#9348af", + "#01ac53", + "#c5a4fb", + "#996635", + "#b11573", + "#4bb473", + "#75d89e", + "#2f3f94", + "#2f7b99", + "#da967d", + "#34891f", + "#b0d87b", + "#ca4751", + "#7e50a8", + "#c4d647", + "#e0eeb8", + "#11dec1", + "#289812", + "#566ca0", + "#ffdbe1", + "#2f1179", + "#935b6d", + "#916988", + "#513d98", + "#aead3a", + "#9e6d71", + "#4b5bdc", + "#0cd36d", + "#250662", + "#cb5bea", + "#228916", + "#ac3e1b", + "#df514a", + "#539397", + "#880977", + "#f697c1", + "#ba96ce", + "#679c9d", + "#c6c42c", + "#5d2c52", + "#48b41b", + "#e1cf3b", + "#5be4f0", + "#57c4d8", + "#a4d17a", + "#be608b", + "#96b00c", + "#088baf", + "#f158bf", + "#e145ba", + "#ee91e3", + "#05d371", + "#5426e0", + "#4834d0", + "#802234", + "#6749e8", + "#0971f0", + "#8fb413", + "#b2b4f0", + "#c3c89d", + "#c9a941", + "#41d158", + "#fb21a3", + "#51aed9", + "#5bb32d", + "#21538e", + "#89d534", + "#d36647", + "#7fb411", + "#0023b8", + "#3b8c2a", + "#986b53", + "#f50422", + "#983f7a", + "#ea24a3", + "#79352c", + "#521250", + "#c79ed2", + "#d6dd92", + "#e33e52", + "#b2be57", + "#fa06ec", + "#1bb699", + "#6b2e5f", + "#64820f", + "#21538e", + "#89d534", + "#d36647", + "#7fb411", + "#0023b8", + "#3b8c2a", + "#986b53", + "#f50422", + "#983f7a", + "#ea24a3", + "#79352c", + "#521250", + "#c79ed2", + "#d6dd92", + "#e33e52", + "#b2be57", + "#fa06ec", + "#1bb699", + "#6b2e5f", + "#64820f", + "#9cb64a", + "#996c48", + "#9ab9b7", + "#06e052", + "#e3a481", + "#0eb621", + "#fc458e", + "#b2db15", + "#aa226d", + "#792ed8", + "#73872a", + "#520d3a", + "#cefcb8", + "#a5b3d9", + "#7d1d85", + "#c4fd57", + "#f1ae16", + "#8fe22a", + "#ef6e3c", + "#243eeb", + "#dd93fd", + "#3f8473", + "#e7dbce", + "#421f79", + "#7a3d93", + "#635f6d", + "#93f2d7", + "#9b5c2a", + "#15b9ee", + "#0f5997", + "#409188", + "#911e20", + "#1350ce", + "#10e5b1", + "#fff4d7", + "#cb2582", + "#ce00be", + "#32d5d6", + "#608572", + "#c79bc2", + "#00f87c", + "#77772a", + "#6995ba", + "#fc6b57", + "#f07815", + "#8fd883", + "#060e27", + "#96e591", + "#21d52e", + "#d00043", + "#b47162", + "#1ec227", + "#4f0f6f", + "#1d1d58", + "#947002", + "#bde052", + "#e08c56", + "#28fcfd", + "#36486a", + "#d02e29", + "#1ae6db", + "#3e464c", + "#a84a8f", + "#911e7e", + "#3f16d9", + "#0f525f", + "#ac7c0a", + "#b4c086", + "#c9d730", + "#30cc49", + "#3d6751", + "#fb4c03", + "#640fc1", + "#62c03e", + "#d3493a", + "#88aa0b", + "#406df9", + "#615af0", + "#2a3434", + "#4a543f", + "#79bca0", + "#a8b8d4", + "#00efd4", + "#7ad236", + "#7260d8", + "#1deaa7", + "#06f43a", + "#823c59", + "#e3d94c", + "#dc1c06", + "#f53b2a", + "#b46238", + "#2dfff6", + "#a82b89", + "#1a8011", + "#436a9f", + "#1a806a", + "#4cf09d", + "#c188a2", + "#67eb4b", + "#b308d3", + "#fc7e41", + "#af3101", + "#71b1f4", + "#a2f8a5", + "#e23dd0", + "#d3486d", + "#00f7f9", + "#474893", + "#3cec35", + "#1c65cb", + "#5d1d0c", + "#2d7d2a", + "#ff3420", + "#5cdd87", + "#a259a4", + "#e4ac44", + "#1bede6", + "#8798a4", + "#d7790f", + "#b2c24f", + "#de73c2", + "#d70a9c", + "#88e9b8", + "#c2b0e2", + "#86e98f", + "#ae90e2", + "#1a806b", + "#436a9e", + "#0ec0ff", + "#f812b3", + "#b17fc9", + "#8d6c2f", + "#d3277a", + "#2ca1ae", + "#9685eb", + "#8a96c6", + "#dba2e6", + "#76fc1b", + "#608fa4", + "#20f6ba", + "#07d7f6", + "#dce77a", + "#77ecca" +]; + +interface PropsType { + data: { name: string; value: number }[]; + valueKey: string; + valuePercKey: string; + measureUnit?: string; + decimalPlaces: number; + chartType: ChartType; +} + +const QueryChart = React.forwardRef( + ( + { data, valueKey, valuePercKey, measureUnit, decimalPlaces, chartType }, + ref + ) => { + const currencyFormatter = new Intl.NumberFormat("it", { + style: "currency", + currency: "EUR", + maximumFractionDigits: 0 + }); + const randomIndex = Math.floor(Math.random() * COLORS.length); + + const renderPieChart = () => { + return ( + + { + return `${elem[valuePercKey]}%`; + }} + > + {data?.map((_, index) => ( + + ))} + + { + return `${v}% (${ + measureUnit === "€" + ? currencyFormatter.format(props.payload.payload[valueKey]) + : props.payload.payload[valueKey].toFixed(decimalPlaces) + } ${measureUnit ?? ""})`; + }} + /> + + + ); + }; + + const renderBarVChart = () => { + return ( + + + + + { + return measureUnit === "€" + ? `${currencyFormatter.format(v)}` + : v.toFixed(decimalPlaces); + }} + /> + + + ); + }; + + const renderBarHChart = () => { + return ( + + + + { + return measureUnit === "€" + ? `${currencyFormatter.format(v)}` + : v.toFixed(decimalPlaces); + }} + /> + + + ); + }; + + const renderChart = () => { + switch (chartType) { + case ChartType.BarV: + return renderBarVChart(); + case ChartType.BarH: + return renderBarHChart(); + default: + return renderPieChart(); + } + }; + + return ( +
          + {renderChart()} +
          + ); + } +); + +export default QueryChart; diff --git a/lib/ReactViews/QueryWindow/QueryPanel.tsx b/lib/ReactViews/QueryWindow/QueryPanel.tsx new file mode 100644 index 00000000000..dc982f54aa1 --- /dev/null +++ b/lib/ReactViews/QueryWindow/QueryPanel.tsx @@ -0,0 +1,260 @@ +import React, { useState, useEffect, useRef } from "react"; +import { observer } from "mobx-react"; +import html2canvas from "terriajs-html2canvas"; +import Styles from "./query-panel.scss"; +import Box from "../../Styled/Box"; +import QueryableCatalogItemMixin from "../../ModelMixins/QueryableCatalogItemMixin"; +import { BaseModel } from "../../Models/Definition/Model"; +import QueryChart from "./QueryChart"; +import QuerySelector from "./QuerySelector"; +import Checkbox from "../../Styled/Checkbox"; +import { ConstantProperty } from "terriajs-cesium"; +import Button from "../../Styled/Button"; +import { downloadImg } from "../Map/Panels/SharePanel/Print/PrintView"; +import { SpacingSpan } from "../../Styled/Spacing"; + +interface PropsType { + item: BaseModel; +} + +export enum ChartType { + Pie = "torta", + BarV = "barre verticali", + BarH = "barre orizzontali" +} + +const defaultAggregationFunction = { key: "count", label: "Conta" }; + +const QueryPanel = observer(({ item }: PropsType) => { + const [firstProperty, setFirstProperty] = useState(); + const [aggregationFunction, setAggregationFunction] = useState(); + const [chartType, setChartType] = useState(ChartType.Pie); + const [data, setData] = useState<{ name: string; value: number }[]>(); + const [useHidden, setUseHidden] = useState(false); + const [componentUpdated, setComponentUpdated] = useState(0); + const [filterText, setFilterText] = useState([]); + + const canvasRef = useRef(null); + const aggregateFieldOptions = useRef<{ key: string; label: string }[]>(); + const aggregateFunctionOptions = useRef<{ key: string; label: string }[]>(); + const featureProperties = useRef<{ [key: string]: any }[]>(); + + useEffect(() => { + if ( + item && + QueryableCatalogItemMixin.isMixedInto(item) && + item.queryProperties + ) { + const featProps = item.getFeaturePropertiesByName( + Object.entries(item.queryProperties) + .filter(([_, elem]) => elem.canAggregate || elem.sumOnAggregation) + .map(([key, _]) => key) + ); + + if (featProps) { + featureProperties.current = featProps; + } + + const fields = Object.entries(item.queryProperties ?? {}) + .filter(([_, elem]) => elem.canAggregate) + .map(([key, elem]) => { + return { key: key, label: elem.label }; + }); + aggregateFieldOptions.current = fields; + if (!firstProperty) { + setFirstProperty(fields[0].key); + } + const functions = [ + ...[defaultAggregationFunction], + ...Object.entries(item.queryProperties ?? {}) + .filter(([_, elem]) => elem.sumOnAggregation) + .map(([key, elem]) => { + return { key: key, label: `Somma "${elem.label}"` }; + }) + ]; + aggregateFunctionOptions.current = functions; + if (!aggregationFunction) { + setAggregationFunction(functions[0].key); + } + + setFilterText( + Object.entries(item.queryValues ?? {}) + .filter(([_, val]) => val.some((elem) => elem !== "")) + .map(([key, val]) => { + return `${item.queryProperties?.[key].label}: ${val}`; + }) + ); + } + }, []); + + useEffect(() => { + if (featureProperties?.current && firstProperty && aggregationFunction) { + const functionIsCount = + aggregationFunction === defaultAggregationFunction.key; + const features = useHidden + ? featureProperties.current + : featureProperties.current.filter( + (elem) => !!(elem.show as ConstantProperty).valueOf() + ); + const featuresPerClass: { [key: string]: number } = features.reduce( + (obj, val) => { + const name = val[firstProperty]; + obj[name] = + (obj[name] ?? 0) + (functionIsCount ? 1 : val[aggregationFunction]); + return obj; + }, + {} + ); + + const tot = functionIsCount + ? featureProperties.current.length + : Object.values(featuresPerClass).reduce((result, val) => { + return result + val; + }); + + setData( + Object.entries(featuresPerClass).map(([key, value]) => { + return { + name: key, + value: value, + valuePerc: Math.round((value / tot + Number.EPSILON) * 100) + }; + }) + ); + } + }, [ + featureProperties.current, + firstProperty, + aggregationFunction, + useHidden + ]); + + const downloadScreenshot = () => { + const promise = html2canvas(canvasRef.current, {}); + + return promise + .then((canvas: HTMLCanvasElement) => { + return canvas.toDataURL("image/png"); + }) + .then((dataString: string) => { + downloadImg(dataString, "chartScreenshot.png"); + }); + }; + + const changeColors = () => { + setComponentUpdated(componentUpdated + 1); + }; + + if ( + !QueryableCatalogItemMixin.isMixedInto(item) || + !item.queryProperties || + !aggregateFieldOptions.current || + !aggregateFunctionOptions.current || + !firstProperty || + !aggregationFunction + ) { + return null; + } + return ( +
          + + + + { + setFirstProperty(newValue); + }} + options={aggregateFieldOptions.current} + /> + { + setAggregationFunction(newValue); + }} + options={aggregateFunctionOptions.current} + /> + { + setChartType(newValue as ChartType); + }} + options={Object.values(ChartType).map((val) => { + return { key: val, label: val }; + })} + /> + + {filterText.length > 0 && ( + <> +
          +
          Filtri applicati:
          + {filterText.map((txt, index) => ( +
          • {txt}
          + ))} +
          +
          + Ignora filtri + { + setUseHidden(!useHidden); + }} + /> +
          + + )} +
          + + + + + +
          + + {data && ( + + )} + +
          +
          +
          + ); +}); + +export default QueryPanel; diff --git a/lib/ReactViews/QueryWindow/QuerySelector.tsx b/lib/ReactViews/QueryWindow/QuerySelector.tsx new file mode 100644 index 00000000000..84b157165c8 --- /dev/null +++ b/lib/ReactViews/QueryWindow/QuerySelector.tsx @@ -0,0 +1,51 @@ +import { observer } from "mobx-react"; +import React from "react"; +import Box from "../../Styled/Box"; +import Select from "../../Styled/Select"; + +interface PropsType { + label: string; + options: { key: string; label: string }[] | undefined; + value: string | undefined; + onSelect: (newValue: string) => void; +} + +const QuerySelector = observer( + ({ label, options, value, onSelect }: PropsType) => { + return ( + <> + {label} + + + + + ); + } +); + +export default QuerySelector; diff --git a/lib/ReactViews/QueryWindow/QueryWindow.tsx b/lib/ReactViews/QueryWindow/QueryWindow.tsx new file mode 100644 index 00000000000..23a6341df19 --- /dev/null +++ b/lib/ReactViews/QueryWindow/QueryWindow.tsx @@ -0,0 +1,62 @@ +import { action } from "mobx"; +import { observer } from "mobx-react"; +import React from "react"; +import { useViewState } from "../StandardUserInterface/ViewStateContext"; +import ModalPopup from "../ExplorerWindow/ModalPopup"; +import Styles from "./query-window.scss"; +import classNames from "classnames"; +import QueryPanel from "./QueryPanel"; + +export const QueryWindowElementName = "QueryData"; + +export default observer(function QueryWindow() { + const viewState = useViewState(); + + const onClose = action(() => { + viewState.closeQuery(); + viewState.switchMobileView("nowViewing"); + }); + + const onStartAnimatingIn = action(() => { + viewState.explorerPanelAnimating = true; + }); + + const onDoneAnimatingIn = action(() => { + viewState.explorerPanelAnimating = false; + }); + + const isVisible = + !viewState.useSmallScreenInterface && + !viewState.hideMapUi && + viewState.queryPanelIsVisible; + + if (!viewState.terria.itemToQuery) return null; + + return ( + +
          +
            +
          • +
            + Query +
            +
          • +
          +
          +
          + +
          +
          +
          +
          + ); +}); diff --git a/lib/ReactViews/QueryWindow/query-panel.scss b/lib/ReactViews/QueryWindow/query-panel.scss new file mode 100644 index 00000000000..527555634e3 --- /dev/null +++ b/lib/ReactViews/QueryWindow/query-panel.scss @@ -0,0 +1,22 @@ +@import "~terriajs-variables"; +@import "../../Sass/common/mixins"; + +.root { + height: 100%; +} + +.data-explorer { + @media (min-width: $sm) { + width: 40%; + float: left; + height: 100%; + padding: 0 $padding-small; + background: $modal-secondary-bg; + display: flex; + flex-direction: column; + + form { + margin: $padding 0; + } + } +} diff --git a/lib/ReactViews/QueryWindow/query-panel.scss.d.ts b/lib/ReactViews/QueryWindow/query-panel.scss.d.ts new file mode 100644 index 00000000000..32f5775459d --- /dev/null +++ b/lib/ReactViews/QueryWindow/query-panel.scss.d.ts @@ -0,0 +1,9 @@ +// This file is automatically generated. +// Please do not change this file! +interface CssExports { + 'data-explorer': string; + 'dataExplorer': string; + 'root': string; +} +declare var cssExports: CssExports; +export = cssExports; diff --git a/lib/ReactViews/QueryWindow/query-window.scss b/lib/ReactViews/QueryWindow/query-window.scss new file mode 100644 index 00000000000..b5b53c0108e --- /dev/null +++ b/lib/ReactViews/QueryWindow/query-window.scss @@ -0,0 +1,36 @@ +@import "~terriajs-variables"; +@import "../../Sass/common/mixins"; + +.tab-list { + composes: list-reset from "../../Sass/common/_base.scss"; + composes: clearfix from "../../Sass/common/_base.scss"; + padding-right: 100px; + background: $color-primary; + border-radius: 3px 3px 0 0; + height: 50px; +} + +.tab-list__item { + display: inline-block; + float: left; +} + +.tab-panel { + width: 100%; + height: $modal-content-height; + + &:focus { + outline: none; + } +} + +.panel-content { + composes: clearfix from "../../Sass/common/_base.scss"; + position: relative; + background: $modal-bg; + color: $modal-text; + border-top: 1px solid $grey-lighter; + height: 100%; + overflow: hidden; + border-radius: 3px; +} diff --git a/lib/ReactViews/QueryWindow/query-window.scss.d.ts b/lib/ReactViews/QueryWindow/query-window.scss.d.ts new file mode 100644 index 00000000000..c17d6b3ed95 --- /dev/null +++ b/lib/ReactViews/QueryWindow/query-window.scss.d.ts @@ -0,0 +1,14 @@ +// This file is automatically generated. +// Please do not change this file! +interface CssExports { + 'panel-content': string; + 'panelContent': string; + 'tab-list': string; + 'tab-list__item': string; + 'tab-panel': string; + 'tabList': string; + 'tabListItem': string; + 'tabPanel': string; +} +declare var cssExports: CssExports; +export = cssExports; diff --git a/lib/ReactViews/StandardUserInterface/StandardUserInterface.tsx b/lib/ReactViews/StandardUserInterface/StandardUserInterface.tsx index 05c2626a274..f3b93be1dfa 100644 --- a/lib/ReactViews/StandardUserInterface/StandardUserInterface.tsx +++ b/lib/ReactViews/StandardUserInterface/StandardUserInterface.tsx @@ -12,6 +12,7 @@ import Disclaimer from "../Disclaimer"; import DragDropFile from "../DragDropFile"; import DragDropNotification from "../DragDropNotification"; import ExplorerWindow from "../ExplorerWindow/ExplorerWindow"; +import QueryWindow from "../QueryWindow/QueryWindow"; import FeatureInfoPanel from "../FeatureInfo/FeatureInfoPanel"; import FeedbackForm from "../Feedback/FeedbackForm"; import { Medium, Small } from "../Generic/Responsive"; @@ -238,6 +239,7 @@ const StandardUserInterface: React.FC = observer(
          + {props.terria.configParameters.experimentalFeatures && !props.viewState.hideMapUi && ( = observer( display: flex; `} > - Query + Filtro {showQuerySection ? ( @@ -80,8 +80,11 @@ const FilterFeaturesSection: React.FC = observer( <> - {Object.entries(item.queryProperties).map( - ([propertyName, property]) => { + {Object.entries(item.queryProperties) + .filter(([_, property]) => { + return !property.sumOnAggregation; + }) + .map(([propertyName, property]) => { return ( @@ -171,8 +174,7 @@ const FilterFeaturesSection: React.FC = observer( )} ); - } - )} + })} )} diff --git a/lib/ReactViews/Workbench/Controls/ViewingControls.tsx b/lib/ReactViews/Workbench/Controls/ViewingControls.tsx index 0f876371b04..e18aed090ee 100644 --- a/lib/ReactViews/Workbench/Controls/ViewingControls.tsx +++ b/lib/ReactViews/Workbench/Controls/ViewingControls.tsx @@ -48,6 +48,7 @@ import SplitterTraits from "../../../Traits/TraitsClasses/SplitterTraits"; import { exportData } from "../../Preview/ExportData"; import LazyItemSearchTool from "../../Tools/ItemSearchTool/LazyItemSearchTool"; import WorkbenchButton from "../WorkbenchButton"; +import QueryableCatalogItemMixin from "../../../ModelMixins/QueryableCatalogItemMixin"; const BoxViewingControl = styled(Box).attrs({ centered: true, @@ -466,12 +467,25 @@ class ViewingControls extends React.Component< title="Usa il dato del layer come percorso di cui misurare altitudine e statistiche" > - + Percorso
        • )} + {QueryableCatalogItemMixin.isMixedInto(item) && ( +
        • + runInAction(() => viewState.openQueryData(item))} + title="Mostra la finestra di aggregazione dei dati" + > + + + Aggrega + + +
        • + )}
        • Date: Fri, 14 Jul 2023 11:14:21 +0200 Subject: [PATCH 130/215] Minor fix and improvements to QueryableCatalogItem components --- lib/ModelMixins/GeojsonMixin.ts | 15 ++++---- lib/ModelMixins/QueryableCatalogItemMixin.ts | 34 +++++++++++++++---- .../Controls/FilterFeaturesSection.tsx | 2 +- 3 files changed, 36 insertions(+), 15 deletions(-) diff --git a/lib/ModelMixins/GeojsonMixin.ts b/lib/ModelMixins/GeojsonMixin.ts index a2acc5aaf7d..b1d65865e3e 100644 --- a/lib/ModelMixins/GeojsonMixin.ts +++ b/lib/ModelMixins/GeojsonMixin.ts @@ -1507,8 +1507,7 @@ function GeoJsonMixin>>(Base: T) { this.mapItems[0] instanceof GeoJsonDataSource || this.mapItems[0] instanceof CzmlDataSource) ) { - const values: Set = new Set(["--all"]); - + const values: Set = new Set([this.ENUM_ALL_VALUE]); for (let entity of this.mapItems[0].entities.values) { if (entity?.properties && entity.show) { if (entity.properties.hasProperty(propertyName)) { @@ -1550,7 +1549,7 @@ function GeoJsonMixin>>(Base: T) { const showAll = !selectedValuesArray .flat() - .some((value) => value !== "" && value !== "--all"); + .some((value) => value !== "" && value !== this.ENUM_ALL_VALUE); if ( this.mapItems && @@ -1564,7 +1563,9 @@ function GeoJsonMixin>>(Base: T) { if (!showAll) { Object.entries(this.queryValues).forEach(([key, value], index) => { if (entity?.properties?.hasProperty(key)) { - const qqq = entity.properties.getValue(JulianDate.now())[key]; + const entityValue = entity.properties.getValue( + JulianDate.now() + )[key]; if ( this.queryProperties?.[key].type === "enum" || @@ -1572,16 +1573,16 @@ function GeoJsonMixin>>(Base: T) { this.queryProperties?.[key].type === "number" ) { visibility[index] = - value[0].toLowerCase() === "--all" || + value[0].toLowerCase() === this.ENUM_ALL_VALUE || value[0].toLowerCase() === "" || - qqq.toLowerCase() === value[0].toLowerCase(); + entityValue.toLowerCase() === value[0].toLowerCase(); } else if (this.queryProperties?.[key].type === "date") { if (value[0] === "" || value[1] === "") { visibility[index] = true; } else { const fromDate = new Date(value[0]); const toDate = new Date(value[1]); - const entityDate = new Date(qqq); + const entityDate = new Date(entityValue); visibility[index] = fromDate.getTime() < entityDate.getTime() && entityDate.getTime() < toDate.getTime(); diff --git a/lib/ModelMixins/QueryableCatalogItemMixin.ts b/lib/ModelMixins/QueryableCatalogItemMixin.ts index 96caa21f52d..3fedce56a51 100644 --- a/lib/ModelMixins/QueryableCatalogItemMixin.ts +++ b/lib/ModelMixins/QueryableCatalogItemMixin.ts @@ -14,7 +14,6 @@ export interface QueryableProperties { decimalPlaces: number; canAggregate: boolean; sumOnAggregation: boolean; - enumValues: string[]; }; } @@ -24,9 +23,16 @@ function QueryableCatalogItemMixin>(Base: T) { super(...args); } + get ENUM_ALL_VALUE(): string { + return "--all"; + } + @observable queryValues?: { [name: string]: string[] }; + @observable + enumValues?: { [name: string]: string[] }; + @computed get queryProperties(): QueryableProperties | undefined { return Object.assign( @@ -39,11 +45,7 @@ function QueryableCatalogItemMixin>(Base: T) { measureUnit: property.propertyMeasureUnit, decimalPlaces: property.propertyDecimalPlaces, canAggregate: property.canAggregate, - sumOnAggregation: property.sumOnAggregation, - enumValues: - property.propertyType === "enum" - ? this.getEnumValues(property.propertyName)?.sort() - : [] + sumOnAggregation: property.sumOnAggregation } }; }) @@ -57,16 +59,33 @@ function QueryableCatalogItemMixin>(Base: T) { abstract filterData(): void; - abstract getEnumValues(keys: string): string[] | undefined; + abstract getEnumValues(propertyName: string): string[] | undefined; abstract getFeaturePropertiesByName( propertyNames: string[] ): { [key: string]: any }[] | undefined; + @action + updateEnumValues() { + if (!this.queryProperties) return; + + const enums = Object.entries(this.queryProperties) + .filter(([name, property]) => property.type === "enum") + .map(([name, property]) => { + return { [name]: this.getEnumValues(name) }; + }); + this.enumValues = Object.assign( + {}, + ...enums.filter((elem) => elem !== undefined) + ); + } + @action initQueryValues() { if (!this.queryProperties) return; + this.updateEnumValues(); + const initialValues = Object.entries(this.queryProperties).map( ([name, property]) => { if (property.type === "date") { @@ -90,6 +109,7 @@ function QueryableCatalogItemMixin>(Base: T) { if (this.queryValues) { this.queryValues[propertyName] = value; this.filterData(); + this.updateEnumValues(); } } } diff --git a/lib/ReactViews/Workbench/Controls/FilterFeaturesSection.tsx b/lib/ReactViews/Workbench/Controls/FilterFeaturesSection.tsx index 178c60fb7e6..b045c7f031d 100644 --- a/lib/ReactViews/Workbench/Controls/FilterFeaturesSection.tsx +++ b/lib/ReactViews/Workbench/Controls/FilterFeaturesSection.tsx @@ -103,7 +103,7 @@ const FilterFeaturesSection: React.FC = observer( }); }} > - {property.enumValues.map((value) => { + {item.enumValues?.[propertyName].map((value) => { return (
        • )} - {QueryableCatalogItemMixin.isMixedInto(item) && ( -
        • - runInAction(() => viewState.openQueryData(item))} - title="Mostra la finestra di aggregazione dei dati" - > - - - Aggrega - - -
        • - )} + {QueryableCatalogItemMixin.isMixedInto(item) && + item.queryableProperties?.length > 0 && ( +
        • + runInAction(() => viewState.openQueryData(item))} + title="Mostra la finestra di aggregazione dei dati" + > + + + Aggrega + + +
        • + )}
        • Date: Fri, 21 Jul 2023 11:47:58 +0200 Subject: [PATCH 138/215] Minor fix to filters in QueryPanel --- lib/ReactViews/QueryWindow/QueryPanel.tsx | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/lib/ReactViews/QueryWindow/QueryPanel.tsx b/lib/ReactViews/QueryWindow/QueryPanel.tsx index d24f8815285..7c163bb9596 100644 --- a/lib/ReactViews/QueryWindow/QueryPanel.tsx +++ b/lib/ReactViews/QueryWindow/QueryPanel.tsx @@ -86,7 +86,9 @@ const QueryPanel = observer(({ item }: PropsType) => { setFilterText( Object.entries(item.queryValues ?? {}) - .filter(([_, val]) => val.some((elem) => elem !== "")) + .filter(([_, val]) => + val.some((elem) => elem !== "" && elem !== item.ENUM_ALL_VALUE) + ) .map(([key, val]) => { return `${item.queryProperties?.[key].label}: ${val}`; }) From 576c4bee097d02ce0f936cddd5c8d38e155e2f01 Mon Sep 17 00:00:00 2001 From: glughi Date: Tue, 1 Aug 2023 16:09:33 +0200 Subject: [PATCH 139/215] Refactorize WhereAmI feature --- lib/Models/Terria.ts | 5 - lib/ReactViewModels/MouseCoords.ts | 58 ++++++++ .../FeatureInfo/FeatureInfoPanel.tsx | 135 ++++++++++++------ lib/ReactViews/Map/Legend/LocationBar.jsx | 5 + 4 files changed, 151 insertions(+), 52 deletions(-) diff --git a/lib/Models/Terria.ts b/lib/Models/Terria.ts index 99cfae1f9da..a615c1bb602 100644 --- a/lib/Models/Terria.ts +++ b/lib/Models/Terria.ts @@ -589,11 +589,6 @@ export default class Terria { */ @observable pickedPositionElevation: string | undefined; - /** - * Gets or sets the "Where Am I" of the last position picked by FeatureInfo. - * @type {string} - */ - @observable pickedPositionWhereAmI: string | undefined; /** * Gets or sets the data computed sampling a path drawn with the MeasureTool. diff --git a/lib/ReactViewModels/MouseCoords.ts b/lib/ReactViewModels/MouseCoords.ts index 398e080db4c..e1196ea702e 100644 --- a/lib/ReactViewModels/MouseCoords.ts +++ b/lib/ReactViewModels/MouseCoords.ts @@ -12,6 +12,7 @@ import prettifyCoordinates from "../Map/Vector/prettifyCoordinates"; import prettifyProjection from "../Map/Vector/prettifyProjection"; import Terria from "../Models/Terria"; import sampleTerrainMostDetailed from "terriajs-cesium/Source/Core/sampleTerrainMostDetailed"; +import CesiumResource from "terriajs-cesium/Source/Core/Resource"; // TypeScript 3.6.3 can't tell JSEarthGravityModel1996 is a class and reports // Cannot use namespace 'JSEarthGravityModel1996' as a type.ts(2709) @@ -33,6 +34,11 @@ export default class MouseCoords { position: Cartographic ) => void) & Cancelable; + readonly debounceAskWhereAmI: (( + terria: Terria, + position: Cartographic + ) => void) & + Cancelable; tileRequestInFlight?: unknown; @observable elevation?: string; @@ -43,6 +49,8 @@ export default class MouseCoords { @observable east?: unknown; @observable cartographic?: Cartographic; @observable useProjection = false; + @observable whereAmI?: string; + @observable whereAmIDetailed?: string; constructor() { this.geoidModel = new EarthGravityModel1996( @@ -60,6 +68,10 @@ export default class MouseCoords { this.sampleAccurateHeight, this.accurateSamplingDebounceTime ); + this.debounceAskWhereAmI = debounce( + this.askWhereAmI, + this.accurateSamplingDebounceTime + ); } @action @@ -143,6 +155,9 @@ export default class MouseCoords { if (!(terrainProvider instanceof EllipsoidTerrainProvider)) { this.debounceSampleAccurateHeight(terrainProvider, intersection); } + if (terria.configParameters.whereAmIUrl) { + this.debounceAskWhereAmI(terria, intersection); + } } else { runInAction(() => { this.elevation = undefined; @@ -195,6 +210,49 @@ export default class MouseCoords { this.elevation = prettyCoordinate.elevation; } + askWhereAmI(terria: Terria | undefined, cartographicPosition: Cartographic) { + if (!terria?.configParameters?.whereAmIUrl) { + return; + } + const url = terria?.corsProxy.getURL(terria.configParameters.whereAmIUrl); + if (!url) { + return; + } + //const whereAmIFieldName = "LOCALIZZAZ"; + //const whereAmIDetailedFieldName = "DETTAGLIO"; + + const latitude = CesiumMath.toDegrees(cartographicPosition.latitude); + const longitude = CesiumMath.toDegrees(cartographicPosition.longitude); + + CesiumResource.fetchJson({ + url: url, + queryParameters: { + geometry: `${longitude}, ${latitude}` //, + /*geometryType: "esriGeometryPoint", + //spatialRel: "esriSpatialRelIntersects", + spatialRel: "esriSpatialRelIndexIntersects", + outFields: [whereAmIFieldName, whereAmIDetailedFieldName].join(","), + returnGeometry: false, + f: "json"*/ + } + })?.then( + action((results): void => { + if (results?.features?.length > 0) { + const attributes = results?.features[0]?.attributes; + if (attributes) { + const keys = Object.keys(attributes); + if (keys && keys.length > 0) { + this.whereAmI = attributes[keys[0]]; + if (keys.length > 1) { + this.whereAmIDetailed = attributes[keys[1]]; + } + } + } + } + }) + ); + } + sampleAccurateHeight( terrainProvider: TerrainProvider, position: Cartographic diff --git a/lib/ReactViews/FeatureInfo/FeatureInfoPanel.tsx b/lib/ReactViews/FeatureInfo/FeatureInfoPanel.tsx index e0e032bede0..df2984eb7f8 100644 --- a/lib/ReactViews/FeatureInfo/FeatureInfoPanel.tsx +++ b/lib/ReactViews/FeatureInfo/FeatureInfoPanel.tsx @@ -33,9 +33,11 @@ import Styles from "./feature-info-panel.scss"; import FeatureInfoCatalogItem from "./FeatureInfoCatalogItem"; import Cartographic from "terriajs-cesium/Source/Core/Cartographic"; import clipboard from "clipboard"; -import Button from "../../Styled/Button"; +import Button, { RawButton } from "../../Styled/Button"; import DataUri from "../../Core/DataUri"; -import CesiumResource from "terriajs-cesium/Source/Core/Resource"; +import { TextSpan } from "../../Styled/Text"; +import { StyledHr } from "../Map/Panels/SharePanel/StyledHr"; +import styled from "styled-components"; const DragWrapper = require("../DragWrapper"); @@ -244,40 +246,6 @@ class FeatureInfoPanel extends React.Component { a.click(); } - whereAmI(cartographic: Cartographic): void { - //const url = "https://servizigis.regione.emilia-romagna.it/geoags/rest/services/portale/where/MapServer/0/query"; - const url = this.props.viewState.terria.configParameters.whereAmIUrl; - if (url) { - const whereAmIFieldName = "LOCALIZZAZ"; - - const latitude = CesiumMath.toDegrees(cartographic.latitude); - const longitude = CesiumMath.toDegrees(cartographic.longitude); - - const that = this; - - CesiumResource.fetchJson({ - url: this.props.viewState.terria?.corsProxy.getURL(url), - queryParameters: { - geometry: `${longitude}, ${latitude}`, - geometryType: "esriGeometryPoint", - //spatialRel: "esriSpatialRelIntersects", - spatialRel: "esriSpatialRelIndexIntersects", - outFields: whereAmIFieldName, - returnGeometry: false, - f: "json" - } - })?.then( - action((results): void => { - if (results?.features?.length > 0) { - const res: string | undefined = - results?.features[0]?.attributes?.[whereAmIFieldName]; - that.props.viewState.terria.pickedPositionWhereAmI = res; - } - }) - ); - } - } - renderLocationItem(cartesianPosition: Cartesian3) { const cartographic = this.props.viewState.terria.pickedPosition ?? @@ -299,18 +267,22 @@ class FeatureInfoPanel extends React.Component { that.downloadLocationAsGpx(that.generateGpxWaypoints(cartographic)); }; - /*const locationButtonStyle = isMarkerVisible(this.props.viewState.terria) - ? Styles.btnLocationSelected - : Styles.btnLocation;*/ - return (
          - {!!cartographic && this.props.viewState.terria.pickedPositionWhereAmI && ( -
          - Dove sono? - {this.props.viewState.terria.pickedPositionWhereAmI} -
          - )} + {!!cartographic && + this.props.viewState.terria.pickedPosition && + this.props.viewState.terria.configParameters.whereAmIUrl && ( + + )} + {!!cartographic && (
          Altitudine @@ -401,11 +373,15 @@ class FeatureInfoPanel extends React.Component { terria.cesium.scene.terrainProvider, cartographic ); + terria.currentViewer.mouseCoords.debounceAskWhereAmI( + terria, + cartographic + ); terria.pickedPosition = terria.currentViewer.mouseCoords.cartographic; terria.pickedPositionElevation = terria.currentViewer.mouseCoords.elevation; - this.whereAmI(cartographic); + //this.whereAmI(cartographic); } } @@ -567,6 +543,71 @@ class FeatureInfoPanel extends React.Component { } } +interface IWhereAmIProps { + whereAmI?: string; + whereAmIDetailed?: string; +} + +const WhereAmI: React.VoidFunctionComponent = ({ + whereAmI, + whereAmIDetailed +}) => { + const [advancedOptions, setAdvancedOptions] = React.useState(false); + //const [whereAmI, setWhereAmI] = React.useState(); + //const [detailedWhereAmI, setDetailedWhereAmI] = React.useState(); + + const toogleAdvancedOptions = () => { + setAdvancedOptions((prevState) => !prevState); + }; + + return ( + <> + +
          + Dove sono? + {whereAmI} +
          +
          + + + Dettagli + + {advancedOptions ? ( + + ) : ( + + )} + +
          + {advancedOptions && ( +
          + {whereAmIDetailed} +
          + )} + + ); +}; + +const DetailsIcon = styled(StyledIcon).attrs({ + styledWidth: "10px", + light: true +})``; + function getFeatureMapByCatalogItems(terria: Terria) { const featureMap = new Map(); const catalogItems = new Set(); // Will contain a list of all unique catalog items. diff --git a/lib/ReactViews/Map/Legend/LocationBar.jsx b/lib/ReactViews/Map/Legend/LocationBar.jsx index 7580e63a8a1..b16c36cd06b 100644 --- a/lib/ReactViews/Map/Legend/LocationBar.jsx +++ b/lib/ReactViews/Map/Legend/LocationBar.jsx @@ -43,6 +43,11 @@ const LocationBar = observer( } `} > + {this.props.mouseCoords.whereAmI && ( +
          + {this.props.mouseCoords.whereAmI} +
          + )}
          From 95ca1cd07f6800c916d325d898f49f711a3d20c7 Mon Sep 17 00:00:00 2001 From: glughi Date: Thu, 3 Aug 2023 11:03:04 +0200 Subject: [PATCH 140/215] Add % slope to Path table --- lib/ReactViews/Elevation/ElevationPanel.tsx | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/lib/ReactViews/Elevation/ElevationPanel.tsx b/lib/ReactViews/Elevation/ElevationPanel.tsx index a8ab25e956a..7d39c8d60ce 100644 --- a/lib/ReactViews/Elevation/ElevationPanel.tsx +++ b/lib/ReactViews/Elevation/ElevationPanel.tsx @@ -419,6 +419,10 @@ const ElevationPanel = observer((props: Props) => {
          al suolo + + Pendenza +
          % + @@ -453,6 +457,14 @@ const ElevationPanel = observer((props: Props) => { ? prettifyNumber(terria.path.stopGroundDistances[idx]) : ""} + + {idx > 0 && terria?.path?.stopAirDistances + ? Math.abs( + (100 * (point.height - array[idx - 1].height)) / + terria.path.stopAirDistances[idx] + ).toFixed(1) + : ""} + ); })} From 953329f1a6463e5a1e2798cb56b3cd0556bdc932 Mon Sep 17 00:00:00 2001 From: glughi Date: Thu, 3 Aug 2023 13:11:29 +0200 Subject: [PATCH 141/215] Add number of features to QueryableCatalogItem --- lib/ModelMixins/GeojsonMixin.ts | 8 ++++++++ lib/ModelMixins/QueryableCatalogItemMixin.ts | 6 ++++++ .../Workbench/Controls/FilterFeaturesSection.tsx | 6 ++++++ 3 files changed, 20 insertions(+) diff --git a/lib/ModelMixins/GeojsonMixin.ts b/lib/ModelMixins/GeojsonMixin.ts index d88e29c0c84..84863162b1c 100644 --- a/lib/ModelMixins/GeojsonMixin.ts +++ b/lib/ModelMixins/GeojsonMixin.ts @@ -1523,6 +1523,8 @@ function GeoJsonMixin>>(Base: T) { } } + this.numberOfTotalElements = this.mapItems[0].entities.values.length; + return Array.from(values); } } @@ -1599,6 +1601,12 @@ function GeoJsonMixin>>(Base: T) { entity.show = visibility.every((vis) => vis); } + + this.numberOfTotalElements = this.mapItems[0].entities.values.length; + this.numberOfVisibleElements = this.mapItems[0].entities.values.filter( + (elem) => elem.show + ).length; + this.terria.currentViewer.notifyRepaintRequired(); } } diff --git a/lib/ModelMixins/QueryableCatalogItemMixin.ts b/lib/ModelMixins/QueryableCatalogItemMixin.ts index f28e5e8e529..6c154e3ed82 100644 --- a/lib/ModelMixins/QueryableCatalogItemMixin.ts +++ b/lib/ModelMixins/QueryableCatalogItemMixin.ts @@ -33,6 +33,12 @@ function QueryableCatalogItemMixin>(Base: T) { @observable enumValues?: { [name: string]: string[] }; + @observable + numberOfTotalElements?: number; + + @observable + numberOfVisibleElements?: number; + @computed get queryProperties(): QueryableProperties | undefined { return Object.assign( diff --git a/lib/ReactViews/Workbench/Controls/FilterFeaturesSection.tsx b/lib/ReactViews/Workbench/Controls/FilterFeaturesSection.tsx index 4dd35f1cfa8..6929a04e0fc 100644 --- a/lib/ReactViews/Workbench/Controls/FilterFeaturesSection.tsx +++ b/lib/ReactViews/Workbench/Controls/FilterFeaturesSection.tsx @@ -180,6 +180,12 @@ const FilterFeaturesSection: React.FC = observer( ); })} + + + {item.numberOfVisibleElements === item.numberOfTotalElements || !item.numberOfVisibleElements ? + `Numero di elementi: ${item.numberOfTotalElements}` : + `Numero di elementi filtrati: ${item.numberOfVisibleElements} (su ${item.numberOfTotalElements})`} + )} From 35fdfa20b3d7a59e3d9e046bb9e852555ee91eaf Mon Sep 17 00:00:00 2001 From: glughi Date: Thu, 3 Aug 2023 13:12:42 +0200 Subject: [PATCH 142/215] Move the button to open QueryPanel in FilterFeaturesSection --- .../Controls/FilterFeaturesSection.tsx | 28 +++++++++++++++---- .../Workbench/Controls/ViewingControls.tsx | 4 +-- .../Controls/WorkbenchItemControls.tsx | 2 +- 3 files changed, 26 insertions(+), 8 deletions(-) diff --git a/lib/ReactViews/Workbench/Controls/FilterFeaturesSection.tsx b/lib/ReactViews/Workbench/Controls/FilterFeaturesSection.tsx index 6929a04e0fc..bb68da3eb6a 100644 --- a/lib/ReactViews/Workbench/Controls/FilterFeaturesSection.tsx +++ b/lib/ReactViews/Workbench/Controls/FilterFeaturesSection.tsx @@ -10,15 +10,17 @@ import Spacing from "../../../Styled/Spacing"; import QueryableCatalogItemMixin from "../../../ModelMixins/QueryableCatalogItemMixin"; import Input from "../../../Styled/Input"; import { GLYPHS, StyledIcon } from "../../../Styled/Icon"; -import { RawButton } from "../../../Styled/Button"; +import Button, { RawButton } from "../../../Styled/Button"; import Hr from "../../../Styled/Hr"; +import ViewState from "../../../ReactViewModels/ViewState"; interface PropsType { item: BaseModel; + viewState: ViewState; } const FilterFeaturesSection: React.FC = observer( - ({ item }: PropsType) => { + ({ item, viewState }: PropsType) => { const [showQuerySection, setShowQuerySection] = useState(false); const toggleQuerySection = () => { @@ -182,10 +184,26 @@ const FilterFeaturesSection: React.FC = observer( - {item.numberOfVisibleElements === item.numberOfTotalElements || !item.numberOfVisibleElements ? - `Numero di elementi: ${item.numberOfTotalElements}` : - `Numero di elementi filtrati: ${item.numberOfVisibleElements} (su ${item.numberOfTotalElements})`} + {item.numberOfVisibleElements === item.numberOfTotalElements || + !item.numberOfVisibleElements + ? `Numero di elementi: ${item.numberOfTotalElements}` + : `Numero di elementi filtrati: ${item.numberOfVisibleElements} (su ${item.numberOfTotalElements})`} + + + + )} diff --git a/lib/ReactViews/Workbench/Controls/ViewingControls.tsx b/lib/ReactViews/Workbench/Controls/ViewingControls.tsx index edfc6a3fcfd..4f46c830e55 100644 --- a/lib/ReactViews/Workbench/Controls/ViewingControls.tsx +++ b/lib/ReactViews/Workbench/Controls/ViewingControls.tsx @@ -473,7 +473,7 @@ class ViewingControls extends React.Component<
        • )} - {QueryableCatalogItemMixin.isMixedInto(item) && + {/*QueryableCatalogItemMixin.isMixedInto(item) && item.queryableProperties?.length > 0 && (
        • - )} + )*/}
        • = observer( {controls?.chartItems ? : null} {controls?.filter ? : null} {controls?.filterFeatures ? ( - + ) : null} {controls?.dateTime && DiscretelyTimeVaryingMixin.isMixedInto(item) ? ( From b6394e790ec1d5a158d3b37a596f009c79dc5bc9 Mon Sep 17 00:00:00 2001 From: glughi Date: Wed, 30 Aug 2023 12:31:02 +0200 Subject: [PATCH 143/215] Fix WhereAmI --- lib/ReactViewModels/MouseCoords.ts | 32 ++++++++++++++++--- .../FeatureInfo/FeatureInfoPanel.tsx | 28 +++++++++------- 2 files changed, 45 insertions(+), 15 deletions(-) diff --git a/lib/ReactViewModels/MouseCoords.ts b/lib/ReactViewModels/MouseCoords.ts index e1196ea702e..49eacf4b1b4 100644 --- a/lib/ReactViewModels/MouseCoords.ts +++ b/lib/ReactViewModels/MouseCoords.ts @@ -23,6 +23,11 @@ interface Cancelable { cancel: () => void; } +export type AskWhereAmICallback = ( + whereAmI: string | undefined, + whereAmIDetailed: string | undefined +) => void; + export default class MouseCoords { readonly geoidModel: EarthGravityModel1996; readonly proj4Projection: string; @@ -36,7 +41,8 @@ export default class MouseCoords { Cancelable; readonly debounceAskWhereAmI: (( terria: Terria, - position: Cartographic + position: Cartographic, + setResult?: AskWhereAmICallback ) => void) & Cancelable; tileRequestInFlight?: unknown; @@ -210,7 +216,11 @@ export default class MouseCoords { this.elevation = prettyCoordinate.elevation; } - askWhereAmI(terria: Terria | undefined, cartographicPosition: Cartographic) { + askWhereAmI( + terria: Terria | undefined, + cartographicPosition: Cartographic, + setResult?: AskWhereAmICallback + ) { if (!terria?.configParameters?.whereAmIUrl) { return; } @@ -237,22 +247,36 @@ export default class MouseCoords { } })?.then( action((results): void => { + let newWhereAmI = ""; + let newWhereAmIDetailed = ""; if (results?.features?.length > 0) { const attributes = results?.features[0]?.attributes; if (attributes) { const keys = Object.keys(attributes); if (keys && keys.length > 0) { - this.whereAmI = attributes[keys[0]]; + newWhereAmI = attributes[keys[0]]; if (keys.length > 1) { - this.whereAmIDetailed = attributes[keys[1]]; + newWhereAmIDetailed = attributes[keys[1]]; } } } } + if (setResult) { + setResult(newWhereAmI, newWhereAmIDetailed); + } + this.setWhereAmI(newWhereAmI, newWhereAmIDetailed); }) ); } + setWhereAmI = ( + whereAmI: string | undefined, + whereAmIDetailed: string | undefined + ) => { + this.whereAmI = whereAmI; + this.whereAmIDetailed = whereAmIDetailed; + }; + sampleAccurateHeight( terrainProvider: TerrainProvider, position: Cartographic diff --git a/lib/ReactViews/FeatureInfo/FeatureInfoPanel.tsx b/lib/ReactViews/FeatureInfo/FeatureInfoPanel.tsx index df2984eb7f8..982f993efb8 100644 --- a/lib/ReactViews/FeatureInfo/FeatureInfoPanel.tsx +++ b/lib/ReactViews/FeatureInfo/FeatureInfoPanel.tsx @@ -1,6 +1,6 @@ import classNames from "classnames"; import { TFunction } from "i18next"; -import { action, reaction, runInAction } from "mobx"; +import { action, reaction, runInAction, observable } from "mobx"; import { disposeOnUnmount, observer } from "mobx-react"; import React from "react"; import { withTranslation } from "react-i18next"; @@ -49,6 +49,9 @@ interface Props { @observer class FeatureInfoPanel extends React.Component { + @observable whereAmI?: string = ""; + @observable whereAmIDetailed?: string = ""; + componentDidMount() { const { t } = this.props; const terria = this.props.viewState.terria; @@ -273,13 +276,8 @@ class FeatureInfoPanel extends React.Component { this.props.viewState.terria.pickedPosition && this.props.viewState.terria.configParameters.whereAmIUrl && ( )} @@ -362,6 +360,15 @@ class FeatureInfoPanel extends React.Component { ); } + @action + setWhereAmI = ( + whereAmI: string | undefined, + whereAmIDetailed: string | undefined + ) => { + this.whereAmI = whereAmI; + this.whereAmIDetailed = whereAmIDetailed; + }; + @action setPicked(terria: Terria, position: Cartesian3) { const cartographic = Ellipsoid.WGS84.cartesianToCartographic(position); @@ -375,13 +382,12 @@ class FeatureInfoPanel extends React.Component { ); terria.currentViewer.mouseCoords.debounceAskWhereAmI( terria, - cartographic + cartographic, + this.setWhereAmI ); terria.pickedPosition = terria.currentViewer.mouseCoords.cartographic; terria.pickedPositionElevation = terria.currentViewer.mouseCoords.elevation; - - //this.whereAmI(cartographic); } } From 10ed06c5b5ce5c918e53dbc2f647db46408d6bdb Mon Sep 17 00:00:00 2001 From: glughi Date: Tue, 5 Sep 2023 15:38:20 +0200 Subject: [PATCH 144/215] Add tables to Query UI --- lib/ReactViews/Mobile/MobileModalWindow.jsx | 2 +- lib/ReactViews/QueryWindow/QueryChart.tsx | 2 +- lib/ReactViews/QueryWindow/QueryPanel.tsx | 275 -------------- .../QueryWindow/QueryTabAggregation.tsx | 357 ++++++++++++++++++ lib/ReactViews/QueryWindow/QueryTabTable.tsx | 89 +++++ lib/ReactViews/QueryWindow/QueryWindow.tsx | 86 ++++- ...{query-panel.scss => query-tab-panel.scss} | 0 ...el.scss.d.ts => query-tab-panel.scss.d.ts} | 0 package.json | 1 + 9 files changed, 526 insertions(+), 286 deletions(-) delete mode 100644 lib/ReactViews/QueryWindow/QueryPanel.tsx create mode 100644 lib/ReactViews/QueryWindow/QueryTabAggregation.tsx create mode 100644 lib/ReactViews/QueryWindow/QueryTabTable.tsx rename lib/ReactViews/QueryWindow/{query-panel.scss => query-tab-panel.scss} (100%) rename lib/ReactViews/QueryWindow/{query-panel.scss.d.ts => query-tab-panel.scss.d.ts} (100%) diff --git a/lib/ReactViews/Mobile/MobileModalWindow.jsx b/lib/ReactViews/Mobile/MobileModalWindow.jsx index 9803a7badb9..50e7a5b21c8 100644 --- a/lib/ReactViews/Mobile/MobileModalWindow.jsx +++ b/lib/ReactViews/Mobile/MobileModalWindow.jsx @@ -15,7 +15,7 @@ import Styles from "./mobile-modal-window.scss"; import MobileSearch from "./MobileSearch"; import MappableMixin from "../../ModelMixins/MappableMixin"; -import QueryPanel from "../QueryWindow/QueryPanel"; +import QueryPanel from "../QueryWindow/QueryTabAggregation"; const MobileModalWindow = observer( createReactClass({ diff --git a/lib/ReactViews/QueryWindow/QueryChart.tsx b/lib/ReactViews/QueryWindow/QueryChart.tsx index f2a95be4bd6..52264d96721 100644 --- a/lib/ReactViews/QueryWindow/QueryChart.tsx +++ b/lib/ReactViews/QueryWindow/QueryChart.tsx @@ -12,7 +12,7 @@ import { XAxis, YAxis } from "recharts"; -import { ChartType } from "./QueryPanel"; +import { ChartType } from "./QueryTabAggregation"; const COLORS = [ "#63b598", diff --git a/lib/ReactViews/QueryWindow/QueryPanel.tsx b/lib/ReactViews/QueryWindow/QueryPanel.tsx deleted file mode 100644 index 7c163bb9596..00000000000 --- a/lib/ReactViews/QueryWindow/QueryPanel.tsx +++ /dev/null @@ -1,275 +0,0 @@ -import React, { useState, useEffect, useRef } from "react"; -import { observer } from "mobx-react"; -import html2canvas from "terriajs-html2canvas"; -import Styles from "./query-panel.scss"; -import Box from "../../Styled/Box"; -import QueryableCatalogItemMixin from "../../ModelMixins/QueryableCatalogItemMixin"; -import { BaseModel } from "../../Models/Definition/Model"; -import QueryChart from "./QueryChart"; -import QuerySelector from "./QuerySelector"; -import Checkbox from "../../Styled/Checkbox"; -import { ConstantProperty } from "terriajs-cesium"; -import Button from "../../Styled/Button"; -import { downloadImg } from "../Map/Panels/SharePanel/Print/PrintView"; -import { SpacingSpan } from "../../Styled/Spacing"; - -interface PropsType { - item: BaseModel; -} - -export enum ChartType { - Pie = "torta", - BarV = "barre verticali", - BarH = "barre orizzontali" -} - -const defaultAggregationFunction = { key: "count", label: "Conta" }; - -const QueryPanel = observer(({ item }: PropsType) => { - const [aggregationProperty, setAggregationProperty] = useState(); - const [aggregationFunction, setAggregationFunction] = useState(); - const [chartType, setChartType] = useState(ChartType.Pie); - const [data, setData] = useState<{ name: string; value: number }[]>(); - const [useHidden, setUseHidden] = useState(false); - const [componentUpdated, setComponentUpdated] = useState(0); - const [filterText, setFilterText] = useState([]); - - const canvasRef = useRef(null); - const aggregateFieldOptions = useRef<{ key: string; label: string }[]>(); - const aggregateFunctionOptions = useRef<{ key: string; label: string }[]>(); - const featureProperties = useRef<{ [key: string]: any }[]>(); - - useEffect(() => { - if ( - item && - QueryableCatalogItemMixin.isMixedInto(item) && - item.queryProperties - ) { - const featProps = item.getFeaturePropertiesByName( - Object.entries(item.queryProperties) - .filter(([_, elem]) => elem.canAggregate || elem.sumOnAggregation) - .map(([key, _]) => key) - ); - - if (featProps) { - featureProperties.current = featProps; - } - - const fields = Object.entries(item.queryProperties ?? {}) - .filter(([key, elem]) => { - return ( - elem.canAggregate && - !item.queryValues?.[key].some( - (val) => val && val !== "" && val !== item.ENUM_ALL_VALUE - ) - ); - }) - .map(([key, elem]) => { - return { key: key, label: elem.label }; - }); - aggregateFieldOptions.current = fields; - if (!aggregationProperty) { - setAggregationProperty(fields[0].key); - } - const functions = [ - ...[defaultAggregationFunction], - ...Object.entries(item.queryProperties ?? {}) - .filter(([_, elem]) => elem.sumOnAggregation) - .map(([key, elem]) => { - return { key: key, label: `Somma "${elem.label}"` }; - }) - ]; - aggregateFunctionOptions.current = functions; - if (!aggregationFunction) { - setAggregationFunction(functions[0].key); - } - - setFilterText( - Object.entries(item.queryValues ?? {}) - .filter(([_, val]) => - val.some((elem) => elem !== "" && elem !== item.ENUM_ALL_VALUE) - ) - .map(([key, val]) => { - return `${item.queryProperties?.[key].label}: ${val}`; - }) - ); - } - }, []); - - useEffect(() => { - if ( - featureProperties?.current && - aggregationProperty && - aggregationFunction - ) { - const functionIsCount = - aggregationFunction === defaultAggregationFunction.key; - const features = useHidden - ? featureProperties.current - : featureProperties.current.filter( - (elem) => !!(elem.show as ConstantProperty).valueOf() - ); - const featuresPerClass: { [key: string]: number } = features.reduce( - (obj, val) => { - const name = val[aggregationProperty]; - obj[name] = - (obj[name] ?? 0) + (functionIsCount ? 1 : val[aggregationFunction]); - return obj; - }, - {} - ); - - const tot = functionIsCount - ? features.length - : Object.values(featuresPerClass).reduce((result, val) => { - return result + val; - }); - - setData( - Object.entries(featuresPerClass).map(([key, value]) => { - return { - name: key, - value: value, - valuePerc: Math.round((value / tot + Number.EPSILON) * 100) - }; - }) - ); - } - }, [ - featureProperties.current, - aggregationProperty, - aggregationFunction, - useHidden - ]); - - const downloadScreenshot = () => { - const promise = html2canvas(canvasRef.current, {}); - - return promise - .then((canvas: HTMLCanvasElement) => { - return canvas.toDataURL("image/png"); - }) - .then((dataString: string) => { - downloadImg(dataString, "chartScreenshot.png"); - }); - }; - - const changeColors = () => { - setComponentUpdated(componentUpdated + 1); - }; - - if ( - !QueryableCatalogItemMixin.isMixedInto(item) || - !item.queryProperties || - !aggregateFieldOptions.current || - !aggregateFunctionOptions.current || - !aggregationProperty || - !aggregationFunction - ) { - return null; - } - return ( -
          - - - - { - setAggregationProperty(newValue); - }} - options={aggregateFieldOptions.current} - /> - { - setAggregationFunction(newValue); - }} - options={aggregateFunctionOptions.current} - /> - { - setChartType(newValue as ChartType); - }} - options={Object.values(ChartType).map((val) => { - return { key: val, label: val }; - })} - /> - - {filterText.length > 0 && ( - <> -
          -
          Filtri applicati:
          - {filterText.map((txt, index) => ( -
          • {txt}
          - ))} -
          -
          - Ignora filtri - { - setUseHidden(!useHidden); - }} - /> -
          - - )} -
          - 0 ? 40 : 60} /> - - - - -
          - - {data && ( - - )} - -
          -
          -
          - ); -}); - -export default QueryPanel; diff --git a/lib/ReactViews/QueryWindow/QueryTabAggregation.tsx b/lib/ReactViews/QueryWindow/QueryTabAggregation.tsx new file mode 100644 index 00000000000..2d1edd01e5e --- /dev/null +++ b/lib/ReactViews/QueryWindow/QueryTabAggregation.tsx @@ -0,0 +1,357 @@ +import React, { useState, useEffect, useRef } from "react"; +import { observer } from "mobx-react"; +import html2canvas from "terriajs-html2canvas"; +import Styles from "./query-tab-panel.scss"; +import Box from "../../Styled/Box"; +import QueryableCatalogItemMixin from "../../ModelMixins/QueryableCatalogItemMixin"; +//import { BaseModel } from "../../Models/Definition/Model"; +import QueryChart from "./QueryChart"; +import QuerySelector from "./QuerySelector"; +import Checkbox from "../../Styled/Checkbox"; +import { ConstantProperty } from "terriajs-cesium"; +import Button from "../../Styled/Button"; +import { downloadImg } from "../Map/Panels/SharePanel/Print/PrintView"; +import { SpacingSpan } from "../../Styled/Spacing"; +import DataTable, { TableColumn } from "react-data-table-component"; +import { TabPropsType } from "./QueryWindow"; + +export enum ChartType { + Pie = "torta", + BarV = "barre verticali", + BarH = "barre orizzontali", + Pivot = "tabella pivot" +} + +const defaultAggregationFunction = { + key: "count", + label: "Conta", + measureUnit: undefined, + decimalPlaces: 0 +}; + +const QueryTabPanel: React.FC = observer( + ({ item }: TabPropsType) => { + const [aggregationProperty, setAggregationProperty] = useState(); + const [aggregationFunction, setAggregationFunction] = useState(); + const [chartType, setChartType] = useState(ChartType.Pie); + const [data, setData] = + useState<{ name: string; value: number; valuePerc: number }[]>(); + const [useHidden, setUseHidden] = useState(false); + const [componentUpdated, setComponentUpdated] = useState(0); + const [filterText, setFilterText] = useState([]); + const [columns, setColumns] = useState< + TableColumn<{ name: string; value: number; valuePerc: number }>[] + >([]); + + const canvasRef = useRef(null); + const aggregateFieldOptions = useRef<{ key: string; label: string }[]>(); + const aggregateFunctionOptions = + useRef< + { + key: string; + label: string; + measureUnit?: string; + decimalPlaces: number; + }[] + >(); + const featureProperties = useRef<{ [key: string]: any }[]>(); + + useEffect(() => { + if (item.queryProperties) { + const featProps = item.getFeaturePropertiesByName( + Object.entries(item.queryProperties) + .filter(([_, elem]) => elem.canAggregate || elem.sumOnAggregation) + .map(([key, _]) => key) + ); + + if (featProps) { + featureProperties.current = featProps; + } + + const fields = Object.entries(item.queryProperties ?? {}) + .filter(([key, elem]) => { + return ( + elem.canAggregate && + !item.queryValues?.[key].some( + (val) => val && val !== "" && val !== item.ENUM_ALL_VALUE + ) + ); + }) + .map(([key, elem]) => { + return { key: key, label: elem.label }; + }); + aggregateFieldOptions.current = fields; + if (!aggregationProperty) { + setAggregationProperty(fields[0].key); + } + const functions = [ + ...[defaultAggregationFunction], + ...Object.entries(item.queryProperties ?? {}) + .filter(([_, elem]) => elem.sumOnAggregation) + .map(([key, elem]) => { + return { + key: key, + label: `Somma "${elem.label}"`, + measureUnit: elem.measureUnit, + decimalPlaces: elem.decimalPlaces + }; + }) + ]; + aggregateFunctionOptions.current = functions; + if (!aggregationFunction) { + setAggregationFunction(functions[0].key); + } + + setFilterText( + Object.entries(item.queryValues ?? {}) + .filter(([_, val]) => + val.some((elem) => elem !== "" && elem !== item.ENUM_ALL_VALUE) + ) + .map(([key, val]) => { + return `${item.queryProperties?.[key].label}: ${val}`; + }) + ); + } + }, []); + + useEffect(() => { + if ( + featureProperties?.current && + aggregationProperty && + aggregationFunction + ) { + const functionIsCount = + aggregationFunction === defaultAggregationFunction.key; + const features = useHidden + ? featureProperties.current + : featureProperties.current.filter( + (elem) => !!(elem.show as ConstantProperty).valueOf() + ); + const featuresPerClass: { [key: string]: number } = features.reduce( + (obj, val) => { + const name = val[aggregationProperty]; + obj[name] = + (obj[name] ?? 0) + + (functionIsCount ? 1 : val[aggregationFunction]); + return obj; + }, + {} + ); + + const tot = functionIsCount + ? features.length + : Object.values(featuresPerClass).reduce((result, val) => { + return result + val; + }); + + setData( + Object.entries(featuresPerClass).map(([key, value]) => { + return { + name: key, + value: value, + valuePerc: Math.round((value / tot + Number.EPSILON) * 100) + }; + }) + ); + } + }, [ + featureProperties.current, + aggregationProperty, + aggregationFunction, + useHidden + ]); + + useEffect(() => { + if (data && aggregationFunction && chartType) { + const functionProperty = + aggregationFunction !== defaultAggregationFunction.key + ? item.queryProperties?.[aggregationFunction] + : undefined; + const measureUnit = functionProperty?.measureUnit ?? ""; + const decimalPlaces = functionProperty?.decimalPlaces ?? 0; + + setColumns([ + { + name: "Categoria", + selector: (row) => row.name, + sortable: true + }, + { + name: "Valore", + selector: (row) => row.value, + sortable: true, + format: (row) => + `${measureUnit} ${row.value.toFixed(decimalPlaces)}` + }, + { + name: "Percentuale", + selector: (row) => row.valuePerc, + sortable: true, + format: (row) => `${row.valuePerc}%` + } + ]); + } + }, [aggregationProperty, chartType, data]); + + const downloadScreenshot = () => { + const promise = html2canvas(canvasRef.current, {}); + + return promise + .then((canvas: HTMLCanvasElement) => { + return canvas.toDataURL("image/png"); + }) + .then((dataString: string) => { + downloadImg(dataString, "chartScreenshot.png"); + }); + }; + + const changeColors = () => { + setComponentUpdated(componentUpdated + 1); + }; + + const renderControls = () => { + if ( + !aggregateFieldOptions.current || + !aggregateFunctionOptions.current || + !aggregationProperty || + !aggregationFunction + ) { + return null; + } + + return ( + <> + { + setAggregationProperty(newValue); + }} + options={aggregateFieldOptions.current} + /> + { + setAggregationFunction(newValue); + }} + options={aggregateFunctionOptions.current} + /> + { + setChartType(newValue as ChartType); + }} + options={Object.values(ChartType).map((val) => { + return { key: val, label: val }; + })} + /> + + {filterText.length > 0 && ( + <> +
          +
          Filtri applicati:
          + {filterText.map((txt, index) => ( +
          • {txt}
          + ))} +
          +
          + Ignora filtri + { + setUseHidden(!useHidden); + }} + /> +
          + + )} +
          + 0 ? 40 : 60} /> + {chartType !== ChartType.Pivot && ( + + + + + )} + + ); + }; + + const renderData = () => { + if (data && aggregationProperty && item.queryProperties) { + if (chartType !== ChartType.Pivot) { + return ( + + ); + } else { + return ( + + ); + } + } + }; + + return ( +
          + + + + {renderControls()} + + + {renderData()} + + + +
          + ); + } +); + +export default QueryTabPanel; diff --git a/lib/ReactViews/QueryWindow/QueryTabTable.tsx b/lib/ReactViews/QueryWindow/QueryTabTable.tsx new file mode 100644 index 00000000000..d5810d6f608 --- /dev/null +++ b/lib/ReactViews/QueryWindow/QueryTabTable.tsx @@ -0,0 +1,89 @@ +import React, { useEffect, useState, useRef } from "react"; +import { observer } from "mobx-react"; +import { BaseModel } from "../../Models/Definition/Model"; +import DataTable, { TableColumn } from "react-data-table-component"; +import QueryableCatalogItemMixin from "../../ModelMixins/QueryableCatalogItemMixin"; +import { TabPropsType } from "./QueryWindow"; + +interface PropsType { + item: BaseModel; +} + +const QueryTabTable: React.FC = observer( + ({ item }: TabPropsType) => { + const [columns, setColumns] = useState>[]>([]); + const [data, setData] = useState[]>([]); + + const featureProperties = useRef<{ [key: string]: any }[]>(); + + useEffect(() => { + if ( + data && + item && + QueryableCatalogItemMixin.isMixedInto(item) && + item.queryProperties + ) { + const fields = Object.entries(item.queryProperties ?? {}) + .filter(([key, elem]) => { + return ( + elem.canAggregate && + !item.queryValues?.[key].some( + (val) => val && val !== "" && val !== item.ENUM_ALL_VALUE + ) + ); + }) + .map(([key, elem]) => { + return { key: key, label: elem.label }; + }); + + setColumns( + fields?.map((field) => { + return { + name: field.label, + selector: (row) => row.get(field.key).toString(), + sortable: true + }; + }) ?? [] + ); + } + }, [data]); + + useEffect(() => { + if ( + item && + QueryableCatalogItemMixin.isMixedInto(item) && + item.queryProperties + ) { + const featProps = item.getFeaturePropertiesByName( + Object.entries(item.queryProperties) + .filter(([_, elem]) => elem.canAggregate || elem.sumOnAggregation) + .map(([key, _]) => key) + ); + + if (featProps) { + featureProperties.current = featProps; + setData( + featProps.map( + (elem) => new Map(Object.entries(elem)) + ) ?? [] + ); + } + } + }, []); + + return ( + + ); + } +); + +export default QueryTabTable; diff --git a/lib/ReactViews/QueryWindow/QueryWindow.tsx b/lib/ReactViews/QueryWindow/QueryWindow.tsx index 23a6341df19..7c1c1d7ec60 100644 --- a/lib/ReactViews/QueryWindow/QueryWindow.tsx +++ b/lib/ReactViews/QueryWindow/QueryWindow.tsx @@ -5,13 +5,36 @@ import { useViewState } from "../StandardUserInterface/ViewStateContext"; import ModalPopup from "../ExplorerWindow/ModalPopup"; import Styles from "./query-window.scss"; import classNames from "classnames"; -import QueryPanel from "./QueryPanel"; +import QueryTabAggregation from "./QueryTabAggregation"; +import QueryTabTable from "./QueryTabTable"; +import styled from "styled-components"; +import { Button } from "../../Styled/Button"; +import QueryableCatalogItemMixin from "../../ModelMixins/QueryableCatalogItemMixin"; + +export interface TabPropsType { + item: QueryableCatalogItemMixin.Instance; +} + +const Tabs: { + [key: string]: { title: string; component: React.FC }; +} = { + chartView: { + title: "Charts", + component: QueryTabAggregation + }, + tableView: { + title: "Table", + component: QueryTabTable + } +}; export const QueryWindowElementName = "QueryData"; export default observer(function QueryWindow() { const viewState = useViewState(); + const [currentTab, setCurrentTab] = React.useState("chartView"); + const onClose = action(() => { viewState.closeQuery(); viewState.switchMobileView("nowViewing"); @@ -32,6 +55,8 @@ export default observer(function QueryWindow() { if (!viewState.terria.itemToQuery) return null; + const CurrentComponent = Tabs[currentTab].component; + return ( (function QueryWindow() { >
            -
          • -
            - Query -
            -
          • + {Object.keys(Tabs).map((keyTab) => ( +
          • +
            + { + setCurrentTab(keyTab); + }} + isCurrent={currentTab === keyTab} + > + {Tabs[keyTab].title} + +
            +
          • + ))}
          - + {viewState.terria.itemToQuery && + QueryableCatalogItemMixin.isMixedInto( + viewState.terria.itemToQuery + ) && }
          ); }); + +const ButtonTab = styled(Button)<{ isCurrent: boolean }>` + ${(props) => ` + background: transparent; + font-size: $font-size-mid-small; + padding: $padding-small; + margin: $padding; + height: 3vh; + min-height: 3vh; + border-radius: 3px; + color: ${props.theme.textLight}; + &:hover, + &:focus { + background: ${props.theme.textLight}; + color: ${props.theme.colorPrimary}; + } + ${ + props.isCurrent && + ` + background: ${props.theme.textLight}; + color: ${props.theme.colorPrimary}; + ` + } + `} +`; diff --git a/lib/ReactViews/QueryWindow/query-panel.scss b/lib/ReactViews/QueryWindow/query-tab-panel.scss similarity index 100% rename from lib/ReactViews/QueryWindow/query-panel.scss rename to lib/ReactViews/QueryWindow/query-tab-panel.scss diff --git a/lib/ReactViews/QueryWindow/query-panel.scss.d.ts b/lib/ReactViews/QueryWindow/query-tab-panel.scss.d.ts similarity index 100% rename from lib/ReactViews/QueryWindow/query-panel.scss.d.ts rename to lib/ReactViews/QueryWindow/query-tab-panel.scss.d.ts diff --git a/package.json b/package.json index c4ad2352c70..b2a48de548e 100644 --- a/package.json +++ b/package.json @@ -145,6 +145,7 @@ "react": "^16.14.0", "react-anything-sortable": "^1.5.2", "react-color": "^2.19.3", + "react-data-table-component": "^7.5.4", "react-datepicker": "0.53.0", "react-dom": "^16.14.0", "react-i18next": "^11.18.0", From 96a98c69c40139dc16f80788068b58c83f178ff3 Mon Sep 17 00:00:00 2001 From: glughi Date: Wed, 20 Sep 2023 17:07:26 +0200 Subject: [PATCH 145/215] Add MessageModal --- lib/Models/Terria.ts | 12 +++ lib/ReactViewModels/ViewState.ts | 18 ++++ lib/ReactViews/MessageModal/MessageModal.tsx | 88 +++++++++++++++++++ .../StandardUserInterface.tsx | 8 ++ 4 files changed, 126 insertions(+) create mode 100644 lib/ReactViews/MessageModal/MessageModal.tsx diff --git a/lib/Models/Terria.ts b/lib/Models/Terria.ts index a615c1bb602..4c3824b7081 100644 --- a/lib/Models/Terria.ts +++ b/lib/Models/Terria.ts @@ -420,6 +420,12 @@ export interface PathCustom { airArea?: number; } +export interface MessageModal { + isVisible: boolean; + header?: string; + message?: string; +} + export default class Terria { private readonly models = observable.map(); @@ -614,6 +620,12 @@ export default class Terria { */ @observable itemToQuery: BaseModel | undefined = undefined; + /** + * Gets or sets the item to query. + * @type {Message} + */ + @observable messageModal?: MessageModal; + /** * Gets or sets the stack of map interactions modes. The mode at the top of the stack * (highest index) handles click interactions with the map diff --git a/lib/ReactViewModels/ViewState.ts b/lib/ReactViewModels/ViewState.ts index 4eedbf9d626..e93e435a20b 100644 --- a/lib/ReactViewModels/ViewState.ts +++ b/lib/ReactViewModels/ViewState.ts @@ -623,6 +623,24 @@ export default class ViewState { this._previewedItem = undefined; } + @action + openMessageModal(header: string, message: string) { + this.terria.messageModal = { + isVisible: true, + header: header, + message: message + }; + } + + @action + closeMessageModal() { + this.terria.messageModal = { + isVisible: false, + header: undefined, + message: undefined + }; + } + /** * Views a model in the catalog. If model is a * diff --git a/lib/ReactViews/MessageModal/MessageModal.tsx b/lib/ReactViews/MessageModal/MessageModal.tsx new file mode 100644 index 00000000000..9a860e216f3 --- /dev/null +++ b/lib/ReactViews/MessageModal/MessageModal.tsx @@ -0,0 +1,88 @@ +import { observer } from "mobx-react"; +import React, { FC } from "react"; +import ReactDOM from "react-dom"; +import styled from "styled-components"; +import Box from "../../Styled/Box"; +import Text from "../../Styled/Text"; +import { PrefaceBox } from "../Generic/PrefaceBox"; +import CloseButton from "../Generic/CloseButton"; +import Spacing from "../../Styled/Spacing"; + +interface IMessageModalProps { + closeModal?: () => void; + header?: string; + message?: string; +} + +const AttributionText = styled(Text).attrs(() => ({ medium: true }))` + a { + color: ${(props) => props.theme.textDark}; + text-decoration: underline; + + img { + height: 19px; + vertical-align: middle; + } + } +`; + +const DataAttributionBox = styled(Box).attrs({ + position: "absolute", + styledWidth: "500px", + styledMaxHeight: "320px", + backgroundColor: "white", + rounded: true, + paddedRatio: 4, + overflowY: "auto", + scroll: true, + column: true +})` + z-index: 99989; + left: 50%; + top: 50%; + transform: translate(-50%, -50%); + box-shadow: 0 6px 6px 0 rgba(0, 0, 0, 0.12), 0 10px 20px 0 rgba(0, 0, 0, 0.05); + @media (max-width: ${(props) => props.theme.mobile}px) { + width: 100%; + } + + /* Default cesium bing map logo is white on transparent which is rendered invisible + on our modal with white background. This rule forces the background color of the + bing imagery to grey so that it is visible. + */ + ${AttributionText} img[title="Bing Imagery"] { + filter: invert(1); + } +`; + +export const MessageModal: FC = observer( + ({ closeModal, header, message }) => { + return ReactDOM.createPortal( + <> + + + + + {header} + + + + {message} + + + , + document.getElementById("map-data-attribution") || document.body + ); + } +); diff --git a/lib/ReactViews/StandardUserInterface/StandardUserInterface.tsx b/lib/ReactViews/StandardUserInterface/StandardUserInterface.tsx index f3b93be1dfa..ed2dfe9042a 100644 --- a/lib/ReactViews/StandardUserInterface/StandardUserInterface.tsx +++ b/lib/ReactViews/StandardUserInterface/StandardUserInterface.tsx @@ -45,6 +45,7 @@ import Styles from "./standard-user-interface.scss"; import { terriaTheme } from "./StandardTheme"; import WorkflowPanelContainer from "./WorkflowPanelContainer"; import ElevationPanel from "../Elevation/ElevationPanel"; +import { MessageModal } from "../MessageModal/MessageModal"; export const animationDuration = 250; @@ -240,6 +241,13 @@ const StandardUserInterface: React.FC = observer(
          + {props.terria.messageModal?.isVisible && ( + props.viewState.closeMessageModal()} + header={props.terria.messageModal.header} + message={props.terria.messageModal.message} + /> + )} {props.terria.configParameters.experimentalFeatures && !props.viewState.hideMapUi && ( Date: Wed, 20 Sep 2023 17:10:24 +0200 Subject: [PATCH 146/215] Refactorize and improve WhereAmI --- lib/Models/Terria.ts | 15 ++- lib/ReactViewModels/MouseCoords.ts | 101 +++++++++++------- .../FeatureInfo/FeatureInfoPanel.tsx | 90 ++++++---------- lib/ReactViews/Map/Legend/LocationBar.jsx | 6 +- 4 files changed, 111 insertions(+), 101 deletions(-) diff --git a/lib/Models/Terria.ts b/lib/Models/Terria.ts index 4c3824b7081..96a3fe7268e 100644 --- a/lib/Models/Terria.ts +++ b/lib/Models/Terria.ts @@ -328,9 +328,15 @@ interface ConfigParameters { customSearchProviderUrl?: string; /** - * Url to whereAmI service. - */ - whereAmIUrl?: string; + * Parameters to whereAmI service. + */ + whereAmIParams?: { + urlFast: string; + urlSlowButAccurate?: string; + fieldId?: string; + fieldResult: string; + fieldResultDetailed?: string; + }; /** * Url to coordinates converter service. @@ -570,7 +576,7 @@ export default class Terria { googleAnalyticsOptions: undefined, relatedMaps: defaultRelatedMaps, customSearchProviderUrl: undefined, - whereAmIUrl: undefined, + whereAmIParams: undefined, coordsConverterUrl: undefined }; @@ -595,7 +601,6 @@ export default class Terria { */ @observable pickedPositionElevation: string | undefined; - /** * Gets or sets the data computed sampling a path drawn with the MeasureTool. * @type {PathCustom} diff --git a/lib/ReactViewModels/MouseCoords.ts b/lib/ReactViewModels/MouseCoords.ts index 49eacf4b1b4..c1dc3bb4347 100644 --- a/lib/ReactViewModels/MouseCoords.ts +++ b/lib/ReactViewModels/MouseCoords.ts @@ -161,7 +161,7 @@ export default class MouseCoords { if (!(terrainProvider instanceof EllipsoidTerrainProvider)) { this.debounceSampleAccurateHeight(terrainProvider, intersection); } - if (terria.configParameters.whereAmIUrl) { + if (terria.configParameters.whereAmIParams) { this.debounceAskWhereAmI(terria, intersection); } } else { @@ -216,59 +216,86 @@ export default class MouseCoords { this.elevation = prettyCoordinate.elevation; } - askWhereAmI( + @action + async askWhereAmI( terria: Terria | undefined, cartographicPosition: Cartographic, setResult?: AskWhereAmICallback ) { - if (!terria?.configParameters?.whereAmIUrl) { + if ( + !terria?.configParameters?.whereAmIParams?.urlFast || + !terria?.configParameters?.whereAmIParams?.fieldResult + ) { return; } - const url = terria?.corsProxy.getURL(terria.configParameters.whereAmIUrl); - if (!url) { + const urlFast = terria?.corsProxy.getURL( + terria.configParameters.whereAmIParams.urlFast + ); + if (!urlFast) { return; } - //const whereAmIFieldName = "LOCALIZZAZ"; - //const whereAmIDetailedFieldName = "DETTAGLIO"; + const urlSlowButAccurate = terria.configParameters.whereAmIParams + .urlSlowButAccurate + ? terria?.corsProxy.getURL( + terria.configParameters.whereAmIParams.urlSlowButAccurate + ) + : ""; const latitude = CesiumMath.toDegrees(cartographicPosition.latitude); const longitude = CesiumMath.toDegrees(cartographicPosition.longitude); - CesiumResource.fetchJson({ - url: url, + let newWhereAmI = ""; + let newWhereAmIDetailed = ""; + const tmpResults = await CesiumResource.fetchJson({ + url: urlFast, queryParameters: { - geometry: `${longitude}, ${latitude}` //, - /*geometryType: "esriGeometryPoint", - //spatialRel: "esriSpatialRelIntersects", - spatialRel: "esriSpatialRelIndexIntersects", - outFields: [whereAmIFieldName, whereAmIDetailedFieldName].join(","), - returnGeometry: false, - f: "json"*/ + geometry: `${longitude}, ${latitude}` } - })?.then( - action((results): void => { - let newWhereAmI = ""; - let newWhereAmIDetailed = ""; - if (results?.features?.length > 0) { - const attributes = results?.features[0]?.attributes; - if (attributes) { - const keys = Object.keys(attributes); - if (keys && keys.length > 0) { - newWhereAmI = attributes[keys[0]]; - if (keys.length > 1) { - newWhereAmIDetailed = attributes[keys[1]]; - } - } - } - } - if (setResult) { - setResult(newWhereAmI, newWhereAmIDetailed); + }); + if ( + tmpResults?.features?.length > 1 && + urlSlowButAccurate && + terria.configParameters.whereAmIParams?.fieldId + ) { + const fieldId = terria.configParameters.whereAmIParams.fieldId; + const results = await CesiumResource.fetchJson({ + url: urlSlowButAccurate, + queryParameters: { + geometry: `${longitude}, ${latitude}`, + objectIds: `${tmpResults?.features.map( + (feat: any) => feat.attributes[fieldId] + )}` } - this.setWhereAmI(newWhereAmI, newWhereAmIDetailed); - }) - ); + }); + newWhereAmI = + results?.features[0].attributes[ + terria.configParameters.whereAmIParams.fieldResult + ]; + const fieldResultDetailed = + terria.configParameters.whereAmIParams?.fieldResultDetailed; + if (fieldResultDetailed) { + newWhereAmIDetailed = + results?.features[0].attributes[fieldResultDetailed]; + } + } else if (tmpResults?.features?.length > 0) { + newWhereAmI = + tmpResults?.features[0].attributes[ + terria.configParameters.whereAmIParams.fieldResult + ]; + const fieldResultDetailed = + terria.configParameters.whereAmIParams?.fieldResultDetailed; + if (fieldResultDetailed) { + newWhereAmIDetailed = + tmpResults?.features[0].attributes[fieldResultDetailed]; + } + } + if (setResult) { + setResult(newWhereAmI, newWhereAmIDetailed); + } + this.setWhereAmI(newWhereAmI, newWhereAmIDetailed); } + @action setWhereAmI = ( whereAmI: string | undefined, whereAmIDetailed: string | undefined diff --git a/lib/ReactViews/FeatureInfo/FeatureInfoPanel.tsx b/lib/ReactViews/FeatureInfo/FeatureInfoPanel.tsx index 982f993efb8..33cd57372b9 100644 --- a/lib/ReactViews/FeatureInfo/FeatureInfoPanel.tsx +++ b/lib/ReactViews/FeatureInfo/FeatureInfoPanel.tsx @@ -37,7 +37,6 @@ import Button, { RawButton } from "../../Styled/Button"; import DataUri from "../../Core/DataUri"; import { TextSpan } from "../../Styled/Text"; import { StyledHr } from "../Map/Panels/SharePanel/StyledHr"; -import styled from "styled-components"; const DragWrapper = require("../DragWrapper"); @@ -72,6 +71,7 @@ class FeatureInfoPanel extends React.Component { position: pickedFeatures.pickPosition }) ); + this.setPicked(terria, pickedFeatures.pickPosition); if (isDefined(pickedFeatures.allFeaturesAvailablePromise)) { pickedFeatures.allFeaturesAvailablePromise.then(() => { if (this.props.viewState.featureInfoPanelIsVisible === false) { @@ -273,19 +273,23 @@ class FeatureInfoPanel extends React.Component { return (
          {!!cartographic && - this.props.viewState.terria.pickedPosition && - this.props.viewState.terria.configParameters.whereAmIUrl && ( + this.props.viewState.terria.configParameters.whereAmIParams && + this.whereAmI && ( )} - {!!cartographic && (
          Altitudine - {this.props.viewState.terria.pickedPositionElevation} m s.l.m. + {this.props.viewState.terria.cesium + ? `${ + this.props.viewState.terria.pickedPositionElevation ?? "" + } m s.l.m.` + : `modalità 2D`}
          )} @@ -356,6 +360,7 @@ class FeatureInfoPanel extends React.Component { )}
          +
    ); } @@ -370,16 +375,10 @@ class FeatureInfoPanel extends React.Component { }; @action - setPicked(terria: Terria, position: Cartesian3) { + setPicked(terria: Terria, position: Cartesian3 | undefined) { + if (!position) return; const cartographic = Ellipsoid.WGS84.cartesianToCartographic(position); - if ( - terria?.cesium?.scene?.terrainProvider && - !Cartographic.equals(terria.pickedPosition, cartographic) - ) { - terria.currentViewer.mouseCoords.debounceSampleAccurateHeight( - terria.cesium.scene.terrainProvider, - cartographic - ); + if (!Cartographic.equals(terria.pickedPosition, cartographic)) { terria.currentViewer.mouseCoords.debounceAskWhereAmI( terria, cartographic, @@ -450,11 +449,6 @@ class FeatureInfoPanel extends React.Component { position = terria.pickedFeatures?.pickPosition; } - // Store position in Terria state - if (position) { - this.setPicked(terria, position); - } - const locationElements = position ? (
  • {this.renderLocationItem(position)}
  • ) : null; @@ -494,7 +488,7 @@ class FeatureInfoPanel extends React.Component {
    )}
      - {this.props.printView && locationElements} + {/*this.props.printView &&*/ locationElements} { // Is feature info visible @@ -519,7 +513,7 @@ class FeatureInfoPanel extends React.Component { ) : null } - {!this.props.printView && locationElements} + {/*!this.props.printView && locationElements*/} { // Add "filter by location" buttons if supported filterableCatalogItems.map((pair) => @@ -552,67 +546,47 @@ class FeatureInfoPanel extends React.Component { interface IWhereAmIProps { whereAmI?: string; whereAmIDetailed?: string; + viewState: ViewState; } const WhereAmI: React.VoidFunctionComponent = ({ whereAmI, - whereAmIDetailed + whereAmIDetailed, + viewState }) => { - const [advancedOptions, setAdvancedOptions] = React.useState(false); - //const [whereAmI, setWhereAmI] = React.useState(); - //const [detailedWhereAmI, setDetailedWhereAmI] = React.useState(); - - const toogleAdvancedOptions = () => { - setAdvancedOptions((prevState) => !prevState); - }; - return ( <> -
      Dove sono? {whereAmI}
      - { + viewState.openMessageModal( + "Dettagli della posizione", + whereAmIDetailed ?? "" + ); + }} css={` display: flex; align-items: center; + border-radius: 2px; `} > - - Dettagli - - {advancedOptions ? ( - - ) : ( - - )} - + Dettagli +
      - {advancedOptions && ( -
      - {whereAmIDetailed} -
      - )} + ); }; -const DetailsIcon = styled(StyledIcon).attrs({ +/*const DetailsIcon = styled(StyledIcon).attrs({ styledWidth: "10px", light: true -})``; +})``;*/ function getFeatureMapByCatalogItems(terria: Terria) { const featureMap = new Map(); diff --git a/lib/ReactViews/Map/Legend/LocationBar.jsx b/lib/ReactViews/Map/Legend/LocationBar.jsx index b16c36cd06b..c30a16a41c8 100644 --- a/lib/ReactViews/Map/Legend/LocationBar.jsx +++ b/lib/ReactViews/Map/Legend/LocationBar.jsx @@ -76,7 +76,11 @@ const LocationBar = observer(
      {t("legend.elev")} - {this.props.mouseCoords.elevation} + + {this.props.terria.cesium + ? this.props.mouseCoords.elevation + : "modalità 2D"} +
      ); From 3adb3a6eca46fe62f53ae794c1aff3da7c434ffd Mon Sep 17 00:00:00 2001 From: glughi Date: Wed, 20 Sep 2023 17:10:48 +0200 Subject: [PATCH 147/215] Disable 3dsmoot mode --- lib/Models/ViewerMode.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/Models/ViewerMode.ts b/lib/Models/ViewerMode.ts index 52533c9af34..027ccff4014 100644 --- a/lib/Models/ViewerMode.ts +++ b/lib/Models/ViewerMode.ts @@ -13,12 +13,12 @@ export const MapViewers = Object.seal({ label: "settingPanel.viewerModeLabels.CesiumTerrain", available: true }, - "3dsmooth": { + /*"3dsmooth": { viewerMode: ViewerMode.Cesium, terrain: false, label: "settingPanel.viewerModeLabels.CesiumEllipsoid", available: true - }, + },*/ "2d": { viewerMode: ViewerMode.Leaflet, terrain: false, @@ -35,7 +35,7 @@ export function setViewerMode( viewer: TerriaViewer ): void { runInAction(() => { - if (viewerMode === "3d" || viewerMode === "3dsmooth") { + if (viewerMode === "3d" /*|| viewerMode === "3dsmooth"*/) { viewer.viewerMode = ViewerMode.Cesium; viewer.viewerOptions.useTerrain = viewerMode === "3d"; } else if (viewerMode === "2d") { From 22193c4ab3176151f58de620444760d79bf55339 Mon Sep 17 00:00:00 2001 From: glughi Date: Thu, 21 Sep 2023 11:09:24 +0200 Subject: [PATCH 148/215] Add WhereAmI to 2D --- lib/ReactViewModels/MouseCoords.ts | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/lib/ReactViewModels/MouseCoords.ts b/lib/ReactViewModels/MouseCoords.ts index c1dc3bb4347..df7f849dfae 100644 --- a/lib/ReactViewModels/MouseCoords.ts +++ b/lib/ReactViewModels/MouseCoords.ts @@ -185,6 +185,10 @@ export default class MouseCoords { const coordinates = Cartographic.fromDegrees(latLng.lng, latLng.lat); coordinates.height = undefined; this.cartographicToFields(coordinates); + + if (terria.configParameters.whereAmIParams) { + this.debounceAskWhereAmI(terria, coordinates); + } } @action From 55bb695abce9869dbc375c3b01cd19cd4ec61603 Mon Sep 17 00:00:00 2001 From: glughi Date: Fri, 22 Sep 2023 12:01:09 +0200 Subject: [PATCH 149/215] Reduce the max width of FeatureInfoPanel --- lib/ReactViews/FeatureInfo/feature-info-panel.scss | 2 ++ 1 file changed, 2 insertions(+) diff --git a/lib/ReactViews/FeatureInfo/feature-info-panel.scss b/lib/ReactViews/FeatureInfo/feature-info-panel.scss index 7459d9c589e..130e80928c0 100644 --- a/lib/ReactViews/FeatureInfo/feature-info-panel.scss +++ b/lib/ReactViews/FeatureInfo/feature-info-panel.scss @@ -88,6 +88,8 @@ overflow-x: auto; max-height: calc(80vh - #{$padding * 2 + $btn-default-line-height}); font-size: $font-size-feature-info; + + max-width: 50vw; } .location { From 9ce1a0cf4273fdf84797c6cfa7603c66dbde363f Mon Sep 17 00:00:00 2001 From: glughi Date: Fri, 22 Sep 2023 12:02:12 +0200 Subject: [PATCH 150/215] Fix WhereAmI detailed message showed under FeatureInfoPanel --- lib/ReactViews/FeatureInfo/FeatureInfoPanel.tsx | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/lib/ReactViews/FeatureInfo/FeatureInfoPanel.tsx b/lib/ReactViews/FeatureInfo/FeatureInfoPanel.tsx index 33cd57372b9..164f54c0dbc 100644 --- a/lib/ReactViews/FeatureInfo/FeatureInfoPanel.tsx +++ b/lib/ReactViews/FeatureInfo/FeatureInfoPanel.tsx @@ -564,10 +564,14 @@ const WhereAmI: React.VoidFunctionComponent = ({ + From 75e0004ca68eed8b3f1b5360a5767226da096bfe Mon Sep 17 00:00:00 2001 From: glughi Date: Tue, 7 Nov 2023 19:42:52 +0100 Subject: [PATCH 161/215] All charts in QueryChart use the same colors --- lib/ReactViews/QueryWindow/QueryChart.tsx | 23 +++++++++++++++---- .../QueryWindow/QueryTabAggregation.tsx | 7 ++++-- 2 files changed, 23 insertions(+), 7 deletions(-) diff --git a/lib/ReactViews/QueryWindow/QueryChart.tsx b/lib/ReactViews/QueryWindow/QueryChart.tsx index 52264d96721..e13a018d69f 100644 --- a/lib/ReactViews/QueryWindow/QueryChart.tsx +++ b/lib/ReactViews/QueryWindow/QueryChart.tsx @@ -294,6 +294,7 @@ interface PropsType { measureUnit?: string; decimalPlaces: number; chartType: ChartType; + randomNumber: number; } const QueryChart = React.forwardRef( @@ -304,9 +305,7 @@ const QueryChart = React.forwardRef( const currencyFormatter = new Intl.NumberFormat("it", { style: "currency", currency: "EUR", - maximumFractionDigits: 0 - }); - const randomIndex = Math.floor(Math.random() * COLORS.length); + const randomIndex = Math.floor((randomNumber ?? Math.random()) * COLORS.length); const renderPieChart = () => { return ( @@ -370,7 +369,14 @@ const QueryChart = React.forwardRef( : v.toFixed(decimalPlaces); }} /> - + + {data?.map((_, index) => + + )} + ); }; @@ -404,7 +410,14 @@ const QueryChart = React.forwardRef( : v.toFixed(decimalPlaces); }} /> - + + {data?.map((_, index) => + + )} + ); }; diff --git a/lib/ReactViews/QueryWindow/QueryTabAggregation.tsx b/lib/ReactViews/QueryWindow/QueryTabAggregation.tsx index 2d1edd01e5e..5480261fff8 100644 --- a/lib/ReactViews/QueryWindow/QueryTabAggregation.tsx +++ b/lib/ReactViews/QueryWindow/QueryTabAggregation.tsx @@ -37,7 +37,8 @@ const QueryTabPanel: React.FC = observer( const [data, setData] = useState<{ name: string; value: number; valuePerc: number }[]>(); const [useHidden, setUseHidden] = useState(false); - const [componentUpdated, setComponentUpdated] = useState(0); + //const [componentUpdated, setComponentUpdated] = useState(0); + const [randomNumber, setRandomNumber] = useState(0); const [filterText, setFilterText] = useState([]); const [columns, setColumns] = useState< TableColumn<{ name: string; value: number; valuePerc: number }>[] @@ -206,7 +207,8 @@ const QueryTabPanel: React.FC = observer( }; const changeColors = () => { - setComponentUpdated(componentUpdated + 1); + //setComponentUpdated(componentUpdated + 1); + setRandomNumber(Math.random()); }; const renderControls = () => { @@ -317,6 +319,7 @@ const QueryTabPanel: React.FC = observer( item.queryProperties[aggregationProperty].decimalPlaces } chartType={chartType} + randomNumber={randomNumber} ref={canvasRef} /> ); From 6b69caa3dc3b4e523ba843bdfde028523e68e66b Mon Sep 17 00:00:00 2001 From: glughi Date: Tue, 7 Nov 2023 19:44:38 +0100 Subject: [PATCH 162/215] QueryTabTable shows only not filtered features. --- lib/ReactViews/QueryWindow/QueryTabTable.tsx | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/lib/ReactViews/QueryWindow/QueryTabTable.tsx b/lib/ReactViews/QueryWindow/QueryTabTable.tsx index d5810d6f608..d9503129455 100644 --- a/lib/ReactViews/QueryWindow/QueryTabTable.tsx +++ b/lib/ReactViews/QueryWindow/QueryTabTable.tsx @@ -1,13 +1,10 @@ import React, { useEffect, useState, useRef } from "react"; import { observer } from "mobx-react"; -import { BaseModel } from "../../Models/Definition/Model"; import DataTable, { TableColumn } from "react-data-table-component"; import QueryableCatalogItemMixin from "../../ModelMixins/QueryableCatalogItemMixin"; import { TabPropsType } from "./QueryWindow"; +import { ConstantProperty } from "terriajs-cesium"; -interface PropsType { - item: BaseModel; -} const QueryTabTable: React.FC = observer( ({ item }: TabPropsType) => { @@ -26,14 +23,14 @@ const QueryTabTable: React.FC = observer( const fields = Object.entries(item.queryProperties ?? {}) .filter(([key, elem]) => { return ( - elem.canAggregate && + (elem.canAggregate || elem.sumOnAggregation) /*&& !item.queryValues?.[key].some( (val) => val && val !== "" && val !== item.ENUM_ALL_VALUE - ) + )*/ ); }) .map(([key, elem]) => { - return { key: key, label: elem.label }; + return { key: key, label: elem.label, sumOnAggregation: elem.sumOnAggregation }; }); setColumns( @@ -58,7 +55,7 @@ const QueryTabTable: React.FC = observer( Object.entries(item.queryProperties) .filter(([_, elem]) => elem.canAggregate || elem.sumOnAggregation) .map(([key, _]) => key) - ); + )?.filter((elem) => !!(elem.show as ConstantProperty).valueOf()); if (featProps) { featureProperties.current = featProps; From e5fa30970502ba5e48b24390852431022aeb21ec Mon Sep 17 00:00:00 2001 From: glughi Date: Tue, 7 Nov 2023 19:45:58 +0100 Subject: [PATCH 163/215] Fix currency and measureUnit in QueryWindow --- lib/ReactViews/QueryWindow/QueryChart.tsx | 66 ++++++++++++++----- .../QueryWindow/QueryTabAggregation.tsx | 41 +++++++----- lib/ReactViews/QueryWindow/QueryTabTable.tsx | 37 ++++++++--- 3 files changed, 103 insertions(+), 41 deletions(-) diff --git a/lib/ReactViews/QueryWindow/QueryChart.tsx b/lib/ReactViews/QueryWindow/QueryChart.tsx index e13a018d69f..877db175fa9 100644 --- a/lib/ReactViews/QueryWindow/QueryChart.tsx +++ b/lib/ReactViews/QueryWindow/QueryChart.tsx @@ -299,13 +299,33 @@ interface PropsType { const QueryChart = React.forwardRef( ( - { data, valueKey, valuePercKey, measureUnit, decimalPlaces, chartType }, + { + data, + valueKey, + valuePercKey, + measureUnit, + decimalPlaces, + chartType, + randomNumber + }, ref ) => { - const currencyFormatter = new Intl.NumberFormat("it", { + const currencyFormatter = new Intl.NumberFormat("it-IT", { style: "currency", currency: "EUR", - const randomIndex = Math.floor((randomNumber ?? Math.random()) * COLORS.length); + notation: "compact" + }); + + const formatCurrency = (value: number) => { + return currencyFormatter + .format(value) + .replace("Mio", "Mln") + .replace("Mrd", "Mld"); + }; + + const randomIndex = Math.floor( + (randomNumber ?? Math.random()) * COLORS.length + ); const renderPieChart = () => { return ( @@ -338,9 +358,9 @@ const QueryChart = React.forwardRef( formatter={(v, _, props) => { return `${v}% (${ measureUnit === "€" - ? currencyFormatter.format(props.payload.payload[valueKey]) + ? formatCurrency(props.payload.payload[valueKey]) : props.payload.payload[valueKey].toFixed(decimalPlaces) - } ${measureUnit ?? ""})`; + })`; }} /> {data.length <= 20 && } @@ -355,27 +375,34 @@ const QueryChart = React.forwardRef( margin={{ top: 5, right: 10, - left: 30, + left: 40, bottom: 5 }} > - + { + return measureUnit === "€" + ? `${formatCurrency(v)}` + : v.toFixed(decimalPlaces); + }} + /> { return measureUnit === "€" - ? `${currencyFormatter.format(v)}` + ? `${formatCurrency(v)}` : v.toFixed(decimalPlaces); }} /> - - {data?.map((_, index) => + + {data?.map((_, index) => ( - )} + ))} ); @@ -402,21 +429,28 @@ const QueryChart = React.forwardRef( width={5} tick={{ width: 260 }} /> - + { + return measureUnit === "€" + ? `${formatCurrency(v)}` + : v.toFixed(decimalPlaces); + }} + /> { return measureUnit === "€" - ? `${currencyFormatter.format(v)}` + ? `${formatCurrency(v)}` : v.toFixed(decimalPlaces); }} /> - - {data?.map((_, index) => + + {data?.map((_, index) => ( - )} + ))} ); diff --git a/lib/ReactViews/QueryWindow/QueryTabAggregation.tsx b/lib/ReactViews/QueryWindow/QueryTabAggregation.tsx index 5480261fff8..11625fff5bb 100644 --- a/lib/ReactViews/QueryWindow/QueryTabAggregation.tsx +++ b/lib/ReactViews/QueryWindow/QueryTabAggregation.tsx @@ -3,8 +3,6 @@ import { observer } from "mobx-react"; import html2canvas from "terriajs-html2canvas"; import Styles from "./query-tab-panel.scss"; import Box from "../../Styled/Box"; -import QueryableCatalogItemMixin from "../../ModelMixins/QueryableCatalogItemMixin"; -//import { BaseModel } from "../../Models/Definition/Model"; import QueryChart from "./QueryChart"; import QuerySelector from "./QuerySelector"; import Checkbox from "../../Styled/Checkbox"; @@ -46,15 +44,14 @@ const QueryTabPanel: React.FC = observer( const canvasRef = useRef(null); const aggregateFieldOptions = useRef<{ key: string; label: string }[]>(); - const aggregateFunctionOptions = - useRef< - { - key: string; - label: string; - measureUnit?: string; - decimalPlaces: number; - }[] - >(); + const aggregateFunctionOptions = useRef< + { + key: string; + label: string; + measureUnit?: string; + decimalPlaces: number; + }[] + >(); const featureProperties = useRef<{ [key: string]: any }[]>(); useEffect(() => { @@ -171,6 +168,11 @@ const QueryTabPanel: React.FC = observer( const measureUnit = functionProperty?.measureUnit ?? ""; const decimalPlaces = functionProperty?.decimalPlaces ?? 0; + const currencyFormatter = new Intl.NumberFormat("it-IT", { + style: "currency", + currency: "EUR" + }); + setColumns([ { name: "Categoria", @@ -181,8 +183,11 @@ const QueryTabPanel: React.FC = observer( name: "Valore", selector: (row) => row.value, sortable: true, - format: (row) => - `${measureUnit} ${row.value.toFixed(decimalPlaces)}` + format: (row) => { + return measureUnit === "€" + ? currencyFormatter.format(row.value) + : `${measureUnit} ${row.value.toFixed(decimalPlaces)}`; + } }, { name: "Percentuale", @@ -313,10 +318,16 @@ const QueryTabPanel: React.FC = observer( valueKey="value" valuePercKey="valuePerc" measureUnit={ - item.queryProperties[aggregationProperty].measureUnit + aggregationFunction && + aggregationFunction in item.queryProperties + ? item.queryProperties[aggregationFunction].measureUnit + : undefined } decimalPlaces={ - item.queryProperties[aggregationProperty].decimalPlaces + aggregationFunction && + aggregationFunction in item.queryProperties + ? item.queryProperties[aggregationFunction].decimalPlaces + : 0 } chartType={chartType} randomNumber={randomNumber} diff --git a/lib/ReactViews/QueryWindow/QueryTabTable.tsx b/lib/ReactViews/QueryWindow/QueryTabTable.tsx index d9503129455..e6239e36e0c 100644 --- a/lib/ReactViews/QueryWindow/QueryTabTable.tsx +++ b/lib/ReactViews/QueryWindow/QueryTabTable.tsx @@ -5,7 +5,6 @@ import QueryableCatalogItemMixin from "../../ModelMixins/QueryableCatalogItemMix import { TabPropsType } from "./QueryWindow"; import { ConstantProperty } from "terriajs-cesium"; - const QueryTabTable: React.FC = observer( ({ item }: TabPropsType) => { const [columns, setColumns] = useState>[]>([]); @@ -23,22 +22,38 @@ const QueryTabTable: React.FC = observer( const fields = Object.entries(item.queryProperties ?? {}) .filter(([key, elem]) => { return ( - (elem.canAggregate || elem.sumOnAggregation) /*&& + elem.canAggregate || elem.sumOnAggregation /*&& !item.queryValues?.[key].some( (val) => val && val !== "" && val !== item.ENUM_ALL_VALUE )*/ ); }) .map(([key, elem]) => { - return { key: key, label: elem.label, sumOnAggregation: elem.sumOnAggregation }; + return { + key: key, + label: elem.label, + sumOnAggregation: elem.sumOnAggregation + }; }); + const currencyFormatter = new Intl.NumberFormat("it-IT", { + style: "currency", + currency: "EUR", + maximumFractionDigits: 0 + }); + setColumns( fields?.map((field) => { return { name: field.label, - selector: (row) => row.get(field.key).toString(), - sortable: true + selector: (row) => row.get(field.key), + sortable: true, + format: (row) => { + return field.sumOnAggregation + ? currencyFormatter.format(row.get(field.key)) + : row.get(field.key).toString(); + }, + right: field.sumOnAggregation }; }) ?? [] ); @@ -51,11 +66,13 @@ const QueryTabTable: React.FC = observer( QueryableCatalogItemMixin.isMixedInto(item) && item.queryProperties ) { - const featProps = item.getFeaturePropertiesByName( - Object.entries(item.queryProperties) - .filter(([_, elem]) => elem.canAggregate || elem.sumOnAggregation) - .map(([key, _]) => key) - )?.filter((elem) => !!(elem.show as ConstantProperty).valueOf()); + const featProps = item + .getFeaturePropertiesByName( + Object.entries(item.queryProperties) + .filter(([_, elem]) => elem.canAggregate || elem.sumOnAggregation) + .map(([key, _]) => key) + ) + ?.filter((elem) => !!(elem.show as ConstantProperty).valueOf()); if (featProps) { featureProperties.current = featProps; From 273eacdbeb1423cfaeeafbc08b7b7154cc3cb27a Mon Sep 17 00:00:00 2001 From: glughi Date: Wed, 8 Nov 2023 11:11:04 +0100 Subject: [PATCH 164/215] Change Geojson cluster color --- lib/ModelMixins/GeojsonMixin.ts | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/lib/ModelMixins/GeojsonMixin.ts b/lib/ModelMixins/GeojsonMixin.ts index d0db09b9fce..0f481f66724 100644 --- a/lib/ModelMixins/GeojsonMixin.ts +++ b/lib/ModelMixins/GeojsonMixin.ts @@ -602,11 +602,7 @@ function GeoJsonMixin>>(Base: T) { cluster.label.show = false; cluster.billboard.verticalOrigin = VerticalOrigin.BOTTOM; cluster.billboard.image = pinBuilder - .fromText( - entities.length.toLocaleString(), - Color.LIGHTPINK, - 60 - ) + .fromText(entities.length.toLocaleString(), Color.BLUE, 60) .toDataURL(); cluster.billboard.show = true; }); From e003e84bd0f93d18b8f48f1b378308cfa3a2514a Mon Sep 17 00:00:00 2001 From: glughi Date: Wed, 8 Nov 2023 11:12:39 +0100 Subject: [PATCH 165/215] Ignore TS error using compact notation for currency --- lib/ReactViews/QueryWindow/QueryChart.tsx | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/ReactViews/QueryWindow/QueryChart.tsx b/lib/ReactViews/QueryWindow/QueryChart.tsx index 877db175fa9..68784c3f56b 100644 --- a/lib/ReactViews/QueryWindow/QueryChart.tsx +++ b/lib/ReactViews/QueryWindow/QueryChart.tsx @@ -313,6 +313,7 @@ const QueryChart = React.forwardRef( const currencyFormatter = new Intl.NumberFormat("it-IT", { style: "currency", currency: "EUR", + //@ts-ignore notation: "compact" }); From 30a45a8edce70dd1d7dd69246b483ee195a40ec8 Mon Sep 17 00:00:00 2001 From: glughi Date: Tue, 21 Nov 2023 12:20:42 +0100 Subject: [PATCH 166/215] Refactorize SearchableCatalogItemTraits --- lib/ModelMixins/GeojsonMixin.ts | 70 ++++++----- lib/ModelMixins/SearchableCatalogItemMixin.ts | 114 +++--------------- .../Catalog/CatalogItems/KmlCatalogItem.ts | 64 +++++++++- .../CatalogItemsSearchProvider.ts | 33 +++-- lib/ReactViews/Search/SearchBoxAndResults.jsx | 9 ++ .../SearchableCatalogItemTraits.ts | 4 +- 6 files changed, 145 insertions(+), 149 deletions(-) diff --git a/lib/ModelMixins/GeojsonMixin.ts b/lib/ModelMixins/GeojsonMixin.ts index 0f481f66724..8515f55f826 100644 --- a/lib/ModelMixins/GeojsonMixin.ts +++ b/lib/ModelMixins/GeojsonMixin.ts @@ -1489,40 +1489,48 @@ function GeoJsonMixin>>(Base: T) { this.asPath(coordinates); } - searchWithinItemData(text: string) { + doSearch(text: string): Promise { // Search in TerriaJS Feature and Turf Geometry - const elements: SearchableData[] | undefined = - this.readyData?.features.map((feature) => { - const fieldContent: string = - feature.properties?.[this.nameOfCatalogItemSearchField] ?? ""; - - const type = feature.geometry.type; - let lat: number; - let lon: number; - if ( - type === "Point" && - (feature.geometry as Geometry).coordinates.length === 2 - ) { - lon = (feature.geometry as Geometry).coordinates[0] as number; - lat = (feature.geometry as Geometry).coordinates[1] as number; - } else { - const geojsonBbox = bbox(feature); - const west = geojsonBbox[0]; - const south = geojsonBbox[1]; - const east = geojsonBbox[2]; - const north = geojsonBbox[3]; - lon = (east - west) * 0.5 + west; - lat = (north - south) * 0.5 + south; - } - return { - searchField: fieldContent, - latitude: lat, - longitude: lon - }; - }); + if (!this.nameOfCatalogItemSearchField || !this.readyData?.features) + return Promise.resolve([]); + const nameOfCatalogItemSearchField = this.nameOfCatalogItemSearchField; + + const filteredElements = this.readyData.features.filter((feature) => { + const fieldContent = + feature.properties?.[nameOfCatalogItemSearchField] ?? ""; + return fieldContent.toLowerCase().includes(text); + }); + const searchableData = filteredElements.map((feature) => { + const fieldContent = + feature.properties?.[nameOfCatalogItemSearchField] ?? ""; + const type = feature.geometry.type; + let lat: number; + let lon: number; + if ( + type === "Point" && + (feature.geometry as Geometry).coordinates.length === 2 + ) { + lon = (feature.geometry as Geometry).coordinates[0] as number; + lat = (feature.geometry as Geometry).coordinates[1] as number; + } else { + const geojsonBbox = bbox(feature); + const west = geojsonBbox[0]; + const south = geojsonBbox[1]; + const east = geojsonBbox[2]; + const north = geojsonBbox[3]; + lon = (east - west) * 0.5 + west; + lat = (north - south) * 0.5 + south; + } + + return { + searchField: fieldContent, + latitude: lat, + longitude: lon + }; + }); - return this.search(text, elements); + return Promise.resolve(searchableData); } getEnumValues(propertyName: string): string[] | undefined { diff --git a/lib/ModelMixins/SearchableCatalogItemMixin.ts b/lib/ModelMixins/SearchableCatalogItemMixin.ts index ec0378fc95c..29fe1600e98 100644 --- a/lib/ModelMixins/SearchableCatalogItemMixin.ts +++ b/lib/ModelMixins/SearchableCatalogItemMixin.ts @@ -1,22 +1,20 @@ -import { computed } from "mobx"; +import { computed, action } from "mobx"; import Constructor from "../Core/Constructor"; import Model from "../Models/Definition/Model"; import StratumOrder from "../Models/Definition/StratumOrder"; import SearchableCatalogItemTraits from "../Traits/TraitsClasses/SearchableCatalogItemTraits"; -import Cartographic from "terriajs-cesium/Source/Core/Cartographic"; import SearchResult from "../Models/SearchProviders/SearchResult"; import createZoomToFunction from "../Map/Vector/zoomRectangleFromPoint"; -import CesiumMath from "terriajs-cesium/Source/Core/Math"; -import EntityCollection from "terriajs-cesium/Source/DataSources/EntityCollection"; -import JulianDate from "terriajs-cesium/Source/Core/JulianDate"; -import Cartesian3 from "terriajs-cesium/Source/Core/Cartesian3"; -import PolygonHierarchy from "terriajs-cesium/Source/Core/PolygonHierarchy"; -import Rectangle from "terriajs-cesium/Source/Core/Rectangle"; + +import { Geometry } from "@turf/turf"; +import TerriaFeature from "../Models/Feature/Feature"; +import { JsonObject } from "../Core/Json"; export interface SearchableData { searchField: string; latitude: number; longitude: number; + geometry?: Geometry; } type MixinModel = Model; @@ -30,28 +28,26 @@ function SearchableCatalogItemMixin>( return true; } - abstract searchWithinItemData(text: string): SearchResult[] | undefined; + abstract doSearch(text: string): Promise; - search( - text: string, - elements: SearchableData[] | undefined - ): SearchResult[] | undefined { + async searchWithinItemData(text: string): Promise { const bboxSize = 0.005; const time = 2.0; - if (!elements) return; - - const filteredElements = elements.filter((element) => { - return element.searchField.toLowerCase().includes(text); - }); + const elements = await this.doSearch(text); - if (filteredElements.length === 0) return; + if (!elements || elements.length === 0) return Promise.resolve([]); - const results = filteredElements.map((element) => { + const results = elements.map((element) => { return new SearchResult({ name: element.searchField, isImportant: false, - clickAction: () => + clickAction: action(() => { + if (element.geometry) { + const newEntity = new TerriaFeature({}); + newEntity.data = element.geometry as unknown as JsonObject; + this.terria.cesium?._highlightFeature(newEntity); + } this.terria.currentViewer.zoomTo( createZoomToFunction( element.latitude, @@ -59,83 +55,13 @@ function SearchableCatalogItemMixin>( bboxSize ), time - ), + ); + }), location: { latitude: element.latitude, longitude: element.longitude } }); }); - return results.filter((res) => res !== undefined) as SearchResult[]; - } - - searchInEntityCollection( - text: string, - entityCollection: EntityCollection | undefined - ): SearchResult[] | undefined { - const bboxSize = 0.005; - const time = 2.0; - - if (!entityCollection) return; - - const filtered = entityCollection.values.filter((entity) => { - return ( - (entity.billboard || - entity.point || - entity.polyline || - entity.polygon) && - (entity.properties?.[this.nameOfCatalogItemSearchField] - .valueOf() - .toLowerCase() - .includes(text) || - entity.name?.toLowerCase().includes(text)) - ); - }); - if (filtered.length === 0) return; - const results = filtered.map((entity) => { - let cartesianPosition: Cartesian3; - let cartoPosition: Cartographic; - - if (entity.position) { - cartesianPosition = entity.position.getValue(JulianDate.now()); - if (!cartesianPosition) return; - cartoPosition = Cartographic.fromCartesian(cartesianPosition); - } else if (entity.polyline) { - cartoPosition = Rectangle.center( - Rectangle.fromCartesianArray( - entity.polyline?.positions?.getValue(JulianDate.now()) ?? [] - ) - ); - } else if (entity.polygon) { - cartoPosition = Rectangle.center( - Rectangle.fromCartesianArray( - ( - entity.polygon?.hierarchy?.getValue(JulianDate.now()) as - | PolygonHierarchy - | undefined - )?.positions ?? [] - ) - ); - } else return; - - const lat = CesiumMath.toDegrees(cartoPosition.latitude); - const lon = CesiumMath.toDegrees(cartoPosition.longitude); - - return new SearchResult({ - name: - entity.name ?? - (entity.properties![ - this.nameOfCatalogItemSearchField - ].valueOf() as string), - isImportant: false, - clickAction: () => - this.terria.currentViewer.zoomTo( - createZoomToFunction(lat, lon, bboxSize), - time - ), - location: { latitude: lat, longitude: lon } - }); - }); - - return results.filter((res) => res !== undefined) as SearchResult[]; + return results; } } return SearchableCatalogItemMixin; diff --git a/lib/Models/Catalog/CatalogItems/KmlCatalogItem.ts b/lib/Models/Catalog/CatalogItems/KmlCatalogItem.ts index aec2e2dfa14..ec8d50ebcb2 100644 --- a/lib/Models/Catalog/CatalogItems/KmlCatalogItem.ts +++ b/lib/Models/Catalog/CatalogItems/KmlCatalogItem.ts @@ -24,7 +24,11 @@ import HeightReference from "terriajs-cesium/Source/Scene/HeightReference"; import ArcType from "terriajs-cesium/Source/Core/ArcType"; import MeasurableMixin from "../../../ModelMixins/MeasurableMixin"; import Entity from "terriajs-cesium/Source/DataSources/Entity"; -import SearchableCatalogItemMixin from "../../../ModelMixins/SearchableCatalogItemMixin"; +import SearchableCatalogItemMixin, { + SearchableData +} from "../../../ModelMixins/SearchableCatalogItemMixin"; +import CesiumMath from "terriajs-cesium/Source/Core/Math"; +import Rectangle from "terriajs-cesium/Source/Core/Rectangle"; const kmzRegex = /\.kmz$/i; @@ -231,8 +235,62 @@ class KmlCatalogItem } } - searchWithinItemData(text: string) { - return this.searchInEntityCollection(text, this._dataSource?.entities); + doSearch(text: string): Promise { + if (!this.nameOfCatalogItemSearchField || !this._dataSource?.entities) + return Promise.resolve([]); + const nameOfCatalogItemSearchField = this.nameOfCatalogItemSearchField; + + const filteredElements = this._dataSource.entities.values.filter( + (entity) => { + return ( + (entity.billboard || + entity.point || + entity.polyline || + entity.polygon) && + (entity.properties?.[nameOfCatalogItemSearchField] + .valueOf() + .toLowerCase() + .includes(text) || + entity.name?.toLowerCase().includes(text)) + ); + } + ); + const searchableData = filteredElements.map((entity) => { + let cartoPosition: Cartographic; + + if (entity.polyline) { + cartoPosition = Rectangle.center( + Rectangle.fromCartesianArray( + entity.polyline?.positions?.getValue(JulianDate.now()) ?? [] + ) + ); + } else if (entity.polygon) { + cartoPosition = Rectangle.center( + Rectangle.fromCartesianArray( + ( + entity.polygon?.hierarchy?.getValue(JulianDate.now()) as + | PolygonHierarchy + | undefined + )?.positions ?? [] + ) + ); + } else { + const cartesianPosition = entity.position!.getValue(JulianDate.now()); + cartoPosition = Cartographic.fromCartesian(cartesianPosition); + } + + return { + searchField: + entity.name ?? + (entity.properties![ + nameOfCatalogItemSearchField + ].valueOf() as string), + latitude: CesiumMath.toDegrees(cartoPosition.latitude), + longitude: CesiumMath.toDegrees(cartoPosition.longitude) + }; + }); + + return Promise.resolve(searchableData); } } diff --git a/lib/Models/SearchProviders/CatalogItemsSearchProvider.ts b/lib/Models/SearchProviders/CatalogItemsSearchProvider.ts index 4796e72420a..4a42f3b1a0f 100644 --- a/lib/Models/SearchProviders/CatalogItemsSearchProvider.ts +++ b/lib/Models/SearchProviders/CatalogItemsSearchProvider.ts @@ -1,4 +1,4 @@ -import { computed, observable, runInAction } from "mobx"; +import { computed, observable, runInAction, action } from "mobx"; import { fromPromise } from "mobx-utils"; import isDefined from "../../Core/isDefined"; import { TerriaErrorSeverity } from "../../Core/TerriaError"; @@ -6,26 +6,19 @@ import Terria from "../Terria"; import SearchProvider from "./SearchProvider"; import SearchProviderResults from "./SearchProviderResults"; import SearchableCatalogItemMixin from "../../ModelMixins/SearchableCatalogItemMixin"; +import SearchResult from "./SearchResult"; interface CatalogItemsSearchProviderOptions { terria: Terria; } -export function searchInOpenedCatalogItems( +async function searchInOpenedCatalogItems( terria: Terria, - searchTextLowercase: string, - searchResults: SearchProviderResults -): Promise { - return new Promise((resolve) => { - for (let i = 0; i < terria.workbench.items.length; ++i) { - const item = terria.workbench.items[i]; - if (SearchableCatalogItemMixin.isMixedInto(item)) { - const res = item.searchWithinItemData(searchTextLowercase); - if (res !== undefined) { - searchResults.results = res; - } - } - } - }); + searchTextLowercase: string +): Promise { + //TODO: the results will probably have to be kept separate in the future + const searchableCatalogItems = terria.workbench.items.filter(item => SearchableCatalogItemMixin.isMixedInto(item)) as SearchableCatalogItemMixin.Instance[]; + const searchPromiseList = searchableCatalogItems.map(item => { return item.searchWithinItemData(searchTextLowercase); }); + return Promise.all(searchPromiseList); } export default class CatalogItemsSearchProvider extends SearchProvider { @@ -55,6 +48,7 @@ export default class CatalogItemsSearchProvider extends SearchProvider { ); } + @action protected async doSearch( searchText: string, searchResults: SearchProviderResults @@ -70,11 +64,12 @@ export default class CatalogItemsSearchProvider extends SearchProvider { } try { - await searchInOpenedCatalogItems( + const res = await searchInOpenedCatalogItems( this.terria, - searchText.toLowerCase(), - searchResults + searchText.toLowerCase() ); + runInAction(() => (searchResults.results = res.flat())); + runInAction(() => { this.isSearching = false; diff --git a/lib/ReactViews/Search/SearchBoxAndResults.jsx b/lib/ReactViews/Search/SearchBoxAndResults.jsx index 7c0a650d120..4b54a6e5369 100644 --- a/lib/ReactViews/Search/SearchBoxAndResults.jsx +++ b/lib/ReactViews/Search/SearchBoxAndResults.jsx @@ -18,6 +18,8 @@ import Spacing from "../../Styled/Spacing"; import { RawButton } from "../../Styled/Button"; import { addMarker } from "../../Models/LocationMarkerUtils"; +import GeoJsonCatalogItem from "../../Models/Catalog/CatalogItems/GeoJsonCatalogItem"; +import GlobeOrMap from "../../Models/GlobeOrMap"; export function SearchInCatalogItems({ viewState, handleClick }) { const locationSearchText = viewState.searchState.locationSearchText; @@ -146,6 +148,13 @@ export class SearchBoxAndResultsRaw extends React.Component { if (newText.length === 0) { removeMarker(this.props.terria); + + const catalogItem = this.props.terria.getModelById( + GeoJsonCatalogItem, + GlobeOrMap.featureHighlightID + ); + this.props.terria.overlays.remove(catalogItem); + runInAction(() => { this.toggleShowLocationSearchResults(false); }); diff --git a/lib/Traits/TraitsClasses/SearchableCatalogItemTraits.ts b/lib/Traits/TraitsClasses/SearchableCatalogItemTraits.ts index 15c03ed4e5c..cfd6a901172 100644 --- a/lib/Traits/TraitsClasses/SearchableCatalogItemTraits.ts +++ b/lib/Traits/TraitsClasses/SearchableCatalogItemTraits.ts @@ -5,7 +5,7 @@ export default class SearchableCatalogItemTraits extends ModelTraits { @primitiveTrait({ type: "string", name: "nameOfCatalogItemSearchField", - description: "The field in which to search" + description: "The field in which to search for vector layers" }) - nameOfCatalogItemSearchField: string = ""; + nameOfCatalogItemSearchField?: string = ""; } From fee4ccee06d8eaad8a983165a2b5935e38e94e39 Mon Sep 17 00:00:00 2001 From: glughi Date: Tue, 21 Nov 2023 12:22:19 +0100 Subject: [PATCH 167/215] Add SearchableCatalogItemTraits to ArcGisMapServerCatalogItem --- .../Esri/ArcGisMapServerCatalogItem.ts | 65 +++++++++++++++++-- .../CatalogItemsSearchProvider.ts | 11 ++-- .../ArcGisMapServerCatalogItemTraits.ts | 2 + .../SearchableCatalogItemTraits.ts | 24 +++++++ 4 files changed, 94 insertions(+), 8 deletions(-) diff --git a/lib/Models/Catalog/Esri/ArcGisMapServerCatalogItem.ts b/lib/Models/Catalog/Esri/ArcGisMapServerCatalogItem.ts index 2331d0d279b..2e705e00701 100644 --- a/lib/Models/Catalog/Esri/ArcGisMapServerCatalogItem.ts +++ b/lib/Models/Catalog/Esri/ArcGisMapServerCatalogItem.ts @@ -38,6 +38,12 @@ import StratumOrder from "../../Definition/StratumOrder"; import MinMaxLevelMixin from "./../../../ModelMixins/MinMaxLevelMixin"; import { scaleDenominatorToLevel } from "../../../Core/scaleToDenominator"; import CommonStrata from "../../../Models/Definition/CommonStrata"; +import SearchableCatalogItemMixin, { + SearchableData +} from "../../../ModelMixins/SearchableCatalogItemMixin"; +import CesiumResource from "terriajs-cesium/Source/Core/Resource"; +import { FeatureCollection, Geometry, bbox } from "@turf/turf"; +import { JsonObject } from "../../../Core/Json"; const proj4 = require("proj4").default; @@ -363,10 +369,12 @@ class MapServerStratum extends LoadableStratum( StratumOrder.addLoadStratum(MapServerStratum.stratumName); -export default class ArcGisMapServerCatalogItem extends UrlMixin( - DiscretelyTimeVaryingMixin( - MinMaxLevelMixin( - CatalogMemberMixin(CreateModel(ArcGisMapServerCatalogItemTraits)) +export default class ArcGisMapServerCatalogItem extends SearchableCatalogItemMixin( + UrlMixin( + DiscretelyTimeVaryingMixin( + MinMaxLevelMixin( + CatalogMemberMixin(CreateModel(ArcGisMapServerCatalogItemTraits)) + ) ) ) ) { @@ -567,6 +575,55 @@ export default class ArcGisMapServerCatalogItem extends UrlMixin( layerIds.find((x) => x == id.toString()) ); } + + async doSearch(text: string): Promise { + if ( + !this.catalogItemWebSearch?.url || + !this.catalogItemWebSearch.returnFields + ) + return Promise.resolve([]); + + const filteredElements: FeatureCollection = await CesiumResource.fetchJson({ + url: this.catalogItemWebSearch.url, + queryParameters: { + text: text, + outFields: this.catalogItemWebSearch.returnFields + } + }); + + const elements = filteredElements.features.map((feature) => { + const type = feature.geometry.type; + let lat: number; + let lon: number; + if ( + type === "Point" && + (feature.geometry as Geometry).coordinates.length === 2 + ) { + lon = (feature.geometry as Geometry).coordinates[0] as number; + lat = (feature.geometry as Geometry).coordinates[1] as number; + } else { + const geojsonBbox = bbox(feature); + const west = geojsonBbox[0]; + const south = geojsonBbox[1]; + const east = geojsonBbox[2]; + const north = geojsonBbox[3]; + lon = (east - west) * 0.5 + west; + lat = (north - south) * 0.5 + south; + } + + return { + searchField: Object.values(feature.properties as JsonObject).join( + " - " + ), + latitude: lat, + longitude: lon, + geometry: + "coordinates" in feature.geometry ? feature.geometry : undefined + }; + }); + + return elements; + } } function getBaseURI(item: ArcGisMapServerCatalogItem) { diff --git a/lib/Models/SearchProviders/CatalogItemsSearchProvider.ts b/lib/Models/SearchProviders/CatalogItemsSearchProvider.ts index 4a42f3b1a0f..33aabc6c8fe 100644 --- a/lib/Models/SearchProviders/CatalogItemsSearchProvider.ts +++ b/lib/Models/SearchProviders/CatalogItemsSearchProvider.ts @@ -16,8 +16,12 @@ async function searchInOpenedCatalogItems( searchTextLowercase: string ): Promise { //TODO: the results will probably have to be kept separate in the future - const searchableCatalogItems = terria.workbench.items.filter(item => SearchableCatalogItemMixin.isMixedInto(item)) as SearchableCatalogItemMixin.Instance[]; - const searchPromiseList = searchableCatalogItems.map(item => { return item.searchWithinItemData(searchTextLowercase); }); + const searchableCatalogItems = terria.workbench.items.filter((item) => + SearchableCatalogItemMixin.isMixedInto(item) + ) as SearchableCatalogItemMixin.Instance[]; + const searchPromiseList = searchableCatalogItems.map((item) => { + return item.searchWithinItemData(searchTextLowercase); + }); return Promise.all(searchPromiseList); } @@ -37,7 +41,7 @@ export default class CatalogItemsSearchProvider extends SearchProvider { return this.terria.workbench.items.some( (item) => SearchableCatalogItemMixin.isMixedInto(item) && - item.nameOfCatalogItemSearchField + (item.nameOfCatalogItemSearchField || item.catalogItemWebSearch) ); } @@ -70,7 +74,6 @@ export default class CatalogItemsSearchProvider extends SearchProvider { ); runInAction(() => (searchResults.results = res.flat())); - runInAction(() => { this.isSearching = false; }); diff --git a/lib/Traits/TraitsClasses/ArcGisMapServerCatalogItemTraits.ts b/lib/Traits/TraitsClasses/ArcGisMapServerCatalogItemTraits.ts index 4c69f78239c..ccd92ef644a 100644 --- a/lib/Traits/TraitsClasses/ArcGisMapServerCatalogItemTraits.ts +++ b/lib/Traits/TraitsClasses/ArcGisMapServerCatalogItemTraits.ts @@ -9,8 +9,10 @@ import LayerOrderingTraits from "./LayerOrderingTraits"; import LegendOwnerTraits from "./LegendOwnerTraits"; import { MinMaxLevelTraits } from "./MinMaxLevelTraits"; import UrlTraits from "./UrlTraits"; +import SearchableCatalogItemTraits from "./SearchableCatalogItemTraits"; export default class ArcGisMapServerCatalogItemTraits extends mixTraits( + SearchableCatalogItemTraits, ImageryProviderTraits, LayerOrderingTraits, UrlTraits, diff --git a/lib/Traits/TraitsClasses/SearchableCatalogItemTraits.ts b/lib/Traits/TraitsClasses/SearchableCatalogItemTraits.ts index cfd6a901172..12b8dbea7c5 100644 --- a/lib/Traits/TraitsClasses/SearchableCatalogItemTraits.ts +++ b/lib/Traits/TraitsClasses/SearchableCatalogItemTraits.ts @@ -1,5 +1,22 @@ import ModelTraits from "../ModelTraits"; import primitiveTrait from "../Decorators/primitiveTrait"; +import objectTrait from "../Decorators/objectTrait"; + +export class SearchableWebCatalogItemTraits extends ModelTraits { + @primitiveTrait({ + type: "string", + name: "url", + description: "The url of the search webservice" + }) + url: string | undefined; + + @primitiveTrait({ + type: "string", + name: "returnFields", + description: "The fields to return from webservice (separated by comma)" + }) + returnFields: string | undefined; +} export default class SearchableCatalogItemTraits extends ModelTraits { @primitiveTrait({ @@ -8,4 +25,11 @@ export default class SearchableCatalogItemTraits extends ModelTraits { description: "The field in which to search for vector layers" }) nameOfCatalogItemSearchField?: string = ""; + + @objectTrait({ + type: SearchableWebCatalogItemTraits, + name: "catalogItemWebSearch", + description: "Data of the query webservice" + }) + catalogItemWebSearch?: SearchableWebCatalogItemTraits; } From 7970644df15df9672e227e118430337131fc292d Mon Sep 17 00:00:00 2001 From: glughi Date: Wed, 29 Nov 2023 10:36:28 +0100 Subject: [PATCH 168/215] Translate a label to italian --- lib/ModelMixins/QueryableCatalogItemMixin.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/ModelMixins/QueryableCatalogItemMixin.ts b/lib/ModelMixins/QueryableCatalogItemMixin.ts index 8d56a510ada..5b205c9d95e 100644 --- a/lib/ModelMixins/QueryableCatalogItemMixin.ts +++ b/lib/ModelMixins/QueryableCatalogItemMixin.ts @@ -24,7 +24,7 @@ function QueryableCatalogItemMixin>(Base: T) { } get ENUM_ALL_VALUE(): string { - return "--all"; + return "--tutto"; } @observable From 13526dbbbf46ae1aa89ebef72cf1983998007230 Mon Sep 17 00:00:00 2001 From: glughi Date: Wed, 29 Nov 2023 10:38:11 +0100 Subject: [PATCH 169/215] Add br after FeatureInfoDownload to ensure its visibility --- .../FeatureInfo/FeatureInfoSection.tsx | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/lib/ReactViews/FeatureInfo/FeatureInfoSection.tsx b/lib/ReactViews/FeatureInfo/FeatureInfoSection.tsx index 567df453149..f7be2e84117 100644 --- a/lib/ReactViews/FeatureInfo/FeatureInfoSection.tsx +++ b/lib/ReactViews/FeatureInfo/FeatureInfoSection.tsx @@ -447,11 +447,19 @@ export class FeatureInfoSection extends React.Component { !this.props.printView && showFeatureInfoDownload && isDefined(this.downloadableData.data) ? ( - + <> + +
      +
      +
      +
      +
      +
      + ) : null }
    From 95f20d6845ed52b68db00b8fdfb39e4e4733d643 Mon Sep 17 00:00:00 2001 From: glughi Date: Wed, 29 Nov 2023 10:43:28 +0100 Subject: [PATCH 170/215] Add filter list to QueryChart --- lib/ReactViews/QueryWindow/QueryChart.tsx | 51 +++++++++++++++++-- .../QueryWindow/QueryTabAggregation.tsx | 10 ++-- 2 files changed, 53 insertions(+), 8 deletions(-) diff --git a/lib/ReactViews/QueryWindow/QueryChart.tsx b/lib/ReactViews/QueryWindow/QueryChart.tsx index 68784c3f56b..56d82de415d 100644 --- a/lib/ReactViews/QueryWindow/QueryChart.tsx +++ b/lib/ReactViews/QueryWindow/QueryChart.tsx @@ -13,6 +13,7 @@ import { YAxis } from "recharts"; import { ChartType } from "./QueryTabAggregation"; +import Box from "../../Styled/Box"; const COLORS = [ "#63b598", @@ -287,14 +288,22 @@ const COLORS = [ "#77ecca" ]; +export interface DataType { + name: string; + value: number; + valuePerc: number; +} + interface PropsType { - data: { name: string; value: number }[]; + data: DataType[]; valueKey: string; valuePercKey: string; measureUnit?: string; decimalPlaces: number; chartType: ChartType; randomNumber: number; + filterText: string[]; + useHidden: boolean; } const QueryChart = React.forwardRef( @@ -306,7 +315,9 @@ const QueryChart = React.forwardRef( measureUnit, decimalPlaces, chartType, - randomNumber + randomNumber, + filterText, + useHidden }, ref ) => { @@ -370,6 +381,10 @@ const QueryChart = React.forwardRef( }; const renderBarVChart = () => { + const xLabelsHeight = Math.min( + Math.max(...data.map((elem) => elem.name.length)) * 3 + 80, + 220 + ); return ( ( bottom: 5 }} > - + { @@ -468,9 +489,31 @@ const QueryChart = React.forwardRef( } }; + const showFilters = filterText.length > 0 && !useHidden; + return (
    - {renderChart()} + + + + {renderChart()} + + {showFilters && ( + +
    + Filtri applicati: + {filterText.map((txt, index) => ( +
    • {txt}
    + ))} +
    +
    + )} +
    +
    ); } diff --git a/lib/ReactViews/QueryWindow/QueryTabAggregation.tsx b/lib/ReactViews/QueryWindow/QueryTabAggregation.tsx index 11625fff5bb..7f1afd51824 100644 --- a/lib/ReactViews/QueryWindow/QueryTabAggregation.tsx +++ b/lib/ReactViews/QueryWindow/QueryTabAggregation.tsx @@ -223,7 +223,7 @@ const QueryTabPanel: React.FC = observer( !aggregationProperty || !aggregationFunction ) { - return null; + return <>

    La combinazione di filtri non permette di generare grafici di aggregazione

    ; } return ( @@ -257,12 +257,12 @@ const QueryTabPanel: React.FC = observer( {filterText.length > 0 && ( <> -
    + {/*
    Filtri applicati:
    {filterText.map((txt, index) => (
    • {txt}
    ))} -
    +
    */}
    @@ -278,7 +278,7 @@ const QueryTabPanel: React.FC = observer( )} - 0 ? 40 : 60} /> + 0 ? 10 : 20*/ 5} /> {chartType !== ChartType.Pivot && ( + + ); } ); From c6f2c902fcd2f1f81296b3574a36c7b4bc73a15b Mon Sep 17 00:00:00 2001 From: glughi Date: Tue, 5 Dec 2023 17:44:17 +0100 Subject: [PATCH 173/215] Add summary footer to QueryTabAggregation in pivot mode --- lib/ReactViews/QueryWindow/QueryChart.tsx | 9 ++- .../QueryWindow/QueryTabAggregation.tsx | 66 +++++++++++++------ 2 files changed, 51 insertions(+), 24 deletions(-) diff --git a/lib/ReactViews/QueryWindow/QueryChart.tsx b/lib/ReactViews/QueryWindow/QueryChart.tsx index 56d82de415d..108ce94df97 100644 --- a/lib/ReactViews/QueryWindow/QueryChart.tsx +++ b/lib/ReactViews/QueryWindow/QueryChart.tsx @@ -340,6 +340,7 @@ const QueryChart = React.forwardRef( ); const renderPieChart = () => { + const dataPurged = data.filter((elem) => elem.valuePerc > 0); return ( ( { return `${elem[valuePercKey]}%`; }} > - {data?.map((_, index) => ( + {dataPurged?.map((_, index) => ( ( })`; }} /> - {data.length <= 20 && } + {dataPurged.length <= 20 && ( + + )} ); }; diff --git a/lib/ReactViews/QueryWindow/QueryTabAggregation.tsx b/lib/ReactViews/QueryWindow/QueryTabAggregation.tsx index 5d9f2f8351a..85d2f30503f 100644 --- a/lib/ReactViews/QueryWindow/QueryTabAggregation.tsx +++ b/lib/ReactViews/QueryWindow/QueryTabAggregation.tsx @@ -27,6 +27,11 @@ const defaultAggregationFunction = { decimalPlaces: 0 }; +const currencyFormatter = new Intl.NumberFormat("it-IT", { + style: "currency", + currency: "EUR" +}); + const QueryTabPanel: React.FC = observer( ({ item }: TabPropsType) => { const [aggregationProperty, setAggregationProperty] = useState(); @@ -139,15 +144,14 @@ const QueryTabPanel: React.FC = observer( }); setData( - Object.entries(featuresPerClass) - .map(([key, value]) => { - return { - name: key, - value: value, - valuePerc: Math.round((value / tot + Number.EPSILON) * 100) - }; - }) - .filter((elem) => elem.valuePerc > 0) + Object.entries(featuresPerClass).map(([key, value]) => { + return { + name: key, + value: value, + valuePerc: Math.round((value / tot + Number.EPSILON) * 100) + }; + }) + //.filter((elem) => elem.valuePerc > 0) ); } }, [ @@ -166,10 +170,10 @@ const QueryTabPanel: React.FC = observer( const measureUnit = functionProperty?.measureUnit ?? ""; const decimalPlaces = functionProperty?.decimalPlaces ?? 0; - const currencyFormatter = new Intl.NumberFormat("it-IT", { + /*const currencyFormatter = new Intl.NumberFormat("it-IT", { style: "currency", currency: "EUR" - }); + });*/ setColumns([ { @@ -342,16 +346,36 @@ const QueryTabPanel: React.FC = observer( ); } else { return ( - + + + + + +

    + Valore totale:{" "} + {aggregationFunction === defaultAggregationFunction.key + ? data.reduce( + (accumulator, current) => accumulator + current.value, + 0 + ) + : currencyFormatter.format( + data.reduce( + (accumulator, current) => accumulator + current.value, + 0 + ) + )} +

    +
    +
    ); } } From 5ad5203d06feac20e9cd8b9647255b68996fc075 Mon Sep 17 00:00:00 2001 From: glughi Date: Thu, 7 Dec 2023 10:09:53 +0100 Subject: [PATCH 174/215] Minor changes to clustering GeoJson entities --- lib/ModelMixins/GeojsonMixin.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/ModelMixins/GeojsonMixin.ts b/lib/ModelMixins/GeojsonMixin.ts index 8515f55f826..fb142f74e21 100644 --- a/lib/ModelMixins/GeojsonMixin.ts +++ b/lib/ModelMixins/GeojsonMixin.ts @@ -594,7 +594,7 @@ function GeoJsonMixin>>(Base: T) { const pinBuilder = new PinBuilder(); dataSource.clustering.enabled = true; dataSource.clustering.pixelRange = 35; - dataSource.clustering.minimumClusterSize = 3; + dataSource.clustering.minimumClusterSize = 4; dataSource.clustering.clusterEvent.addEventListener(function ( entities, cluster @@ -602,7 +602,7 @@ function GeoJsonMixin>>(Base: T) { cluster.label.show = false; cluster.billboard.verticalOrigin = VerticalOrigin.BOTTOM; cluster.billboard.image = pinBuilder - .fromText(entities.length.toLocaleString(), Color.BLUE, 60) + .fromText(entities.length.toLocaleString(), Color.GRAY, 60) .toDataURL(); cluster.billboard.show = true; }); From 6a28ec9a98d3a276408af43da1994ad350ef50b6 Mon Sep 17 00:00:00 2001 From: glughi Date: Thu, 7 Dec 2023 10:10:28 +0100 Subject: [PATCH 175/215] Sort enum values in FilterFeatureSection --- .../Workbench/Controls/FilterFeaturesSection.tsx | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/lib/ReactViews/Workbench/Controls/FilterFeaturesSection.tsx b/lib/ReactViews/Workbench/Controls/FilterFeaturesSection.tsx index d6e28b889e8..72546d324da 100644 --- a/lib/ReactViews/Workbench/Controls/FilterFeaturesSection.tsx +++ b/lib/ReactViews/Workbench/Controls/FilterFeaturesSection.tsx @@ -107,15 +107,15 @@ const FilterFeaturesSection: React.FC = observer( }); }} > - {(item.enumValues?.[propertyName] ?? []).map( - (value) => { + {(item.enumValues?.[propertyName] ?? []) + .sort() + .map((value) => { return ( ); - } - )} + })} )} {(property.type === "string" || From d1e0d73440ed788ae819a319a5bd703d931d94fb Mon Sep 17 00:00:00 2001 From: glughi Date: Thu, 7 Dec 2023 10:12:54 +0100 Subject: [PATCH 176/215] Fix 3d map crash after search with a clustered billboards layer --- lib/Models/LocationMarkerUtils.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/Models/LocationMarkerUtils.ts b/lib/Models/LocationMarkerUtils.ts index 12867814ad5..2408151171e 100644 --- a/lib/Models/LocationMarkerUtils.ts +++ b/lib/Models/LocationMarkerUtils.ts @@ -86,6 +86,7 @@ export function removeMarker(terria: Terria) { const catalogItem = terria.getModelById(CzmlCatalogItem, MARKER_UNIQUE_ID); if (catalogItem !== undefined) { terria.overlays.remove(catalogItem); + terria.removeModelReferences(catalogItem); } } From 1e377fef6d500a50e369c4d800dfbc1dbe68d312 Mon Sep 17 00:00:00 2001 From: glughi Date: Tue, 12 Dec 2023 10:13:55 +0100 Subject: [PATCH 177/215] Add useElevationMeanSeaLevel option to compute elevation correctly. --- lib/Map/Vector/EarthGravityModel1996.js | 14 +- lib/Models/Terria.ts | 8 +- lib/ReactViewModels/MouseCoords.ts | 27 ++-- .../FeatureInfo/FeatureInfoPanel.tsx | 2 +- .../Map/Navigation/Items/MeasureTool.ts | 120 +++++++++++------- 5 files changed, 107 insertions(+), 64 deletions(-) diff --git a/lib/Map/Vector/EarthGravityModel1996.js b/lib/Map/Vector/EarthGravityModel1996.js index 01d75defd56..b0410b65c2f 100644 --- a/lib/Map/Vector/EarthGravityModel1996.js +++ b/lib/Map/Vector/EarthGravityModel1996.js @@ -3,6 +3,7 @@ var CesiumMath = require("terriajs-cesium/Source/Core/Math").default; var defined = require("terriajs-cesium/Source/Core/defined").default; var loadArrayBuffer = require("../../Core/loadArrayBuffer"); +var Cartographic = require("terriajs-cesium/Source/Core/Cartographic").default; /** * The Earth Gravity Model 1996 (EGM96) geoid. @@ -43,15 +44,18 @@ EarthGravityModel1996.prototype.getHeight = function (longitude, latitude) { EarthGravityModel1996.prototype.getHeights = function (cartographicArray) { return getHeightData(this).then(function (data) { + const results = []; for (var i = 0; i < cartographicArray.length; ++i) { var cartographic = cartographicArray[i]; - cartographic.height = getHeightFromData( - data, - cartographic.longitude, - cartographic.latitude + results.push( + new Cartographic( + cartographic.longitude, + cartographic.latitude, + getHeightFromData(data, cartographic.longitude, cartographic.latitude) + ) ); } - return cartographicArray; + return results; }); }; diff --git a/lib/Models/Terria.ts b/lib/Models/Terria.ts index eebc3acddda..1737cfa576a 100644 --- a/lib/Models/Terria.ts +++ b/lib/Models/Terria.ts @@ -352,6 +352,11 @@ interface ConfigParameters { * If false hide MyLocation button in desktop mode */ useMyLocationFromDesktop: boolean; + + /** + * If true elevation is intended MSL, otherwise WGS84 + */ + useElevationMeanSeaLevel: boolean; } interface StartOptions { @@ -589,7 +594,8 @@ export default class Terria { whereAmIParams: undefined, coordsConverterUrl: undefined, mouseAsInfoDefaultValue: false, - useMyLocationFromDesktop: true + useMyLocationFromDesktop: true, + useElevationMeanSeaLevel: false }; @observable diff --git a/lib/ReactViewModels/MouseCoords.ts b/lib/ReactViewModels/MouseCoords.ts index df7f849dfae..3f689a93d3e 100644 --- a/lib/ReactViewModels/MouseCoords.ts +++ b/lib/ReactViewModels/MouseCoords.ts @@ -35,6 +35,7 @@ export default class MouseCoords { readonly proj4longlat: string; readonly accurateSamplingDebounceTime: number; readonly debounceSampleAccurateHeight: (( + terria: Terria, terrainProvider: TerrainProvider, position: Cartographic ) => void) & @@ -105,7 +106,7 @@ export default class MouseCoords { const intersection = ellipsoid.cartesianToCartographic( pickedTriangle.intersection ); - let errorBar; + //let errorBar; if (globe.terrainProvider instanceof EllipsoidTerrainProvider) { intersection.height = undefined; @@ -133,7 +134,7 @@ export default class MouseCoords { intersection.height = height; } - const geometricError = + /*const geometricError = globe.terrainProvider.getLevelMaximumGeometricError( pickedTriangle.tile.level ); @@ -153,13 +154,17 @@ export default class MouseCoords { errorBar = Math.max( Math.abs(approximateHeight - minHeightGeoid), Math.abs(maxHeightGeoid - approximateHeight) - ); + );*/ } const terrainProvider = globe.terrainProvider; - this.cartographicToFields(intersection, errorBar); + this.cartographicToFields(intersection, 1); if (!(terrainProvider instanceof EllipsoidTerrainProvider)) { - this.debounceSampleAccurateHeight(terrainProvider, intersection); + this.debounceSampleAccurateHeight( + terria, + terrainProvider, + intersection + ); } if (terria.configParameters.whereAmIParams) { this.debounceAskWhereAmI(terria, intersection); @@ -217,7 +222,9 @@ export default class MouseCoords { }); this.latitude = prettyCoordinate.latitude; this.longitude = prettyCoordinate.longitude; - this.elevation = prettyCoordinate.elevation; + if (!errorBar) { + this.elevation = prettyCoordinate.elevation; + } } @action @@ -309,13 +316,14 @@ export default class MouseCoords { }; sampleAccurateHeight( + terria: Terria, terrainProvider: TerrainProvider, position: Cartographic ) { if (this.tileRequestInFlight) { // A tile request is already in flight, so reschedule for later. this.debounceSampleAccurateHeight.cancel(); - this.debounceSampleAccurateHeight(terrainProvider, position); + this.debounceSampleAccurateHeight(terria, terrainProvider, position); return; } @@ -332,8 +340,9 @@ export default class MouseCoords { const geoidHeight = result[0] || 0.0; this.tileRequestInFlight = undefined; if (Cartographic.equals(position, this.cartographic)) { - // Comments to use SLM instead of ellipsoid height - //position.height = positionWithHeight.height - geoidHeight; + if (!terria.configParameters.useElevationMeanSeaLevel) { + position.height = positionWithHeight.height - geoidHeight; + } this.cartographicToFields(position); } else { // Mouse moved since we started this request, so the result isn't useful. Try again next time. diff --git a/lib/ReactViews/FeatureInfo/FeatureInfoPanel.tsx b/lib/ReactViews/FeatureInfo/FeatureInfoPanel.tsx index 164f54c0dbc..4e034173aca 100644 --- a/lib/ReactViews/FeatureInfo/FeatureInfoPanel.tsx +++ b/lib/ReactViews/FeatureInfo/FeatureInfoPanel.tsx @@ -288,7 +288,7 @@ class FeatureInfoPanel extends React.Component { {this.props.viewState.terria.cesium ? `${ this.props.viewState.terria.pickedPositionElevation ?? "" - } m s.l.m.` + } s.l.m.` : `modalità 2D`}
    diff --git a/lib/ReactViews/Map/Navigation/Items/MeasureTool.ts b/lib/ReactViews/Map/Navigation/Items/MeasureTool.ts index 5762f628542..7291f929c7b 100644 --- a/lib/ReactViews/Map/Navigation/Items/MeasureTool.ts +++ b/lib/ReactViews/Map/Navigation/Items/MeasureTool.ts @@ -18,6 +18,7 @@ import MapNavigationItemController from "../../../../ViewModels/MapNavigation/Ma import EllipsoidTangentPlane from "terriajs-cesium/Source/Core/EllipsoidTangentPlane"; import Cartographic from "terriajs-cesium/Source/Core/Cartographic"; import sampleTerrainMostDetailed from "terriajs-cesium/Source/Core/sampleTerrainMostDetailed"; +import EarthGravityModel1996 from "../../../../Map/Vector/EarthGravityModel1996"; const PolygonGeometryLibrary = require("terriajs-cesium/Source/Core/PolygonGeometryLibrary").default; @@ -42,6 +43,8 @@ export default class MeasureTool extends MapNavigationItemController { onOpen: () => void; itemRef: React.RefObject = React.createRef(); + readonly geoidModel: EarthGravityModel1996; + constructor(props: MeasureToolOptions) { super(); this.terria = props.terria; @@ -58,6 +61,10 @@ export default class MeasureTool extends MapNavigationItemController { this.onClose = props.onClose; this.onOpen = props.onOpen; + this.geoidModel = new EarthGravityModel1996( + require("file-loader!../../../../../wwwroot/data/WW15MGH.DAC") + ); + // sampleEntirePath is the reaction to samplingPathStep changes this.disposeSamplingPathStep = reaction( () => this.terria.samplingPathStep, @@ -122,7 +129,7 @@ export default class MeasureTool extends MapNavigationItemController { ) { cartesianEntities.push(pointEntities.entities.values[0]); } - // convert from cartesian to cartographic becouse "sampleTerrainMostDetailed" work with cartographic + // convert from cartesian to cartographic because "sampleTerrainMostDetailed" work with cartographic const cartoPositions = cartesianEntities.map((elem) => { return Cartographic.fromCartesian( elem.position!.getValue(this.terria.timelineClock.currentTime), @@ -157,56 +164,73 @@ export default class MeasureTool extends MapNavigationItemController { } // sample points on terrain - sampleTerrainMostDetailed(terrainProvider, interpolatedCartographics).then( - (sampledCartographics) => { - const sampledCartesians = - ellipsoid.cartographicArrayToCartesianArray(sampledCartographics); - - // compute distances - const stepDistances: number[] = []; - for (let i = 0; i < sampledCartesians.length; ++i) { - const dist: number = - i > 0 - ? Cartesian3.distance( - sampledCartesians[i - 1], - sampledCartesians[i] - ) - : 0; - stepDistances.push(dist); - } - - const stopAirDistances: number[] = [0]; - const distances3d: number[] = [0]; - for (let i = 0; i < originalStopsIndex.length - 1; ++i) { - stopAirDistances.push( - Cartesian3.distance( - sampledCartesians[originalStopsIndex[i + 1]], - sampledCartesians[originalStopsIndex[i]] - ) - ); - distances3d.push( - stepDistances - .filter( - (_, index) => - index > originalStopsIndex[i] && - index <= originalStopsIndex[i + 1] + const terrainPromises = [ + sampleTerrainMostDetailed(terrainProvider, interpolatedCartographics) + ]; + if (!this.terria.configParameters.useElevationMeanSeaLevel) { + terrainPromises.push( + this.geoidModel.getHeights(interpolatedCartographics) + ); + } + Promise.all(terrainPromises).then((sampledCartographics) => { + if (sampledCartographics.length === 2) { + const geoidHeights = sampledCartographics[1]; + sampledCartographics[0].forEach( + (elem, i) => (elem.height -= geoidHeights[i].height) + ); + } + + const sampledCartesians = ellipsoid.cartographicArrayToCartesianArray( + sampledCartographics[0] + ); + + // compute distances + const stepDistances: number[] = []; + for (let i = 0; i < sampledCartesians.length; ++i) { + const dist: number = + i > 0 + ? Cartesian3.distance( + sampledCartesians[i - 1], + sampledCartesians[i] ) - .reduce((sum: number, current: number) => sum + current, 0) - ); - } - - // update state of Terria - this.updatePath( - cartoPositions, - stopGeodeticDistances, - stopAirDistances, - distances3d, - sampledCartographics, - stepDistances, - this.userDrawing.closeLoop + : 0; + stepDistances.push(dist); + } + + const stopAirDistances: number[] = [0]; + const distances3d: number[] = [0]; + for (let i = 0; i < originalStopsIndex.length - 1; ++i) { + cartoPositions[i].height = + sampledCartographics[0][originalStopsIndex[i]].height; + + stopAirDistances.push( + Cartesian3.distance( + sampledCartesians[originalStopsIndex[i + 1]], + sampledCartesians[originalStopsIndex[i]] + ) + ); + distances3d.push( + stepDistances + .filter( + (_, index) => + index > originalStopsIndex[i] && + index <= originalStopsIndex[i + 1] + ) + .reduce((sum: number, current: number) => sum + current, 0) ); } - ); + + // update state of Terria + this.updatePath( + cartoPositions, + stopGeodeticDistances, + stopAirDistances, + distances3d, + sampledCartographics[0], + stepDistances, + this.userDrawing.closeLoop + ); + }); } // action to update state of the path in Terria From ab0344e58577b4a1f2b52594301e635f926e6797 Mon Sep 17 00:00:00 2001 From: glughi Date: Mon, 18 Dec 2023 09:12:27 +0100 Subject: [PATCH 178/215] A minor change in italian translation. --- wwwroot/languages/it/translation.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/wwwroot/languages/it/translation.json b/wwwroot/languages/it/translation.json index 8408e88c08c..00041287f73 100644 --- a/wwwroot/languages/it/translation.json +++ b/wwwroot/languages/it/translation.json @@ -15,7 +15,7 @@ "noInfoAvailable": "Nessuna informazione disponibile", "panelHeading": "Informazioni dell'elemento", "userSelection": "Seleziona utente", - "showCuratedData": "Mostra i dati curati", + "showCuratedData": "Mostra i dati", "showRawData": "Mostra i dati grezzi", "satelliteSuggestionBtn": "Mostra {{catalogItemName}} in questa posizione", "clickToAddData": "Clicca su '$t(addData.addDataBtnText)' per aggiungere dati alla mappa.", From 4ad2629ea0282bc4d94004b1c21a5a8c8e112fb2 Mon Sep 17 00:00:00 2001 From: glughi Date: Mon, 18 Dec 2023 09:21:23 +0100 Subject: [PATCH 179/215] Add "target" to MenuButton props. --- lib/ReactViews/Map/MenuButton.jsx | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/lib/ReactViews/Map/MenuButton.jsx b/lib/ReactViews/Map/MenuButton.jsx index 52395c1ec2b..d5f821dd393 100644 --- a/lib/ReactViews/Map/MenuButton.jsx +++ b/lib/ReactViews/Map/MenuButton.jsx @@ -10,7 +10,8 @@ import Styles from "./menu-button.scss"; * @constructor */ function MenuButton(props) { - const target = props.href !== "#" ? "_blank" : undefined; + // const target = props.href !== "#" ? "_blank" : undefined; + const target = props.target; const rel = target === "_blank" ? "noreferrer" : undefined; return ( Date: Wed, 20 Dec 2023 21:52:08 +0100 Subject: [PATCH 180/215] Add management of user profiles --- lib/Models/Terria.ts | 59 ++++++++++++++++++- .../FeatureInfo/FeatureInfoCatalogItem.tsx | 1 + .../FeatureInfo/FeatureInfoSection.tsx | 54 ++++++++++++++++- .../FeatureInfo/getFeatureProperties.ts | 14 ++++- lib/ReactViews/QueryWindow/QueryTabTable.tsx | 30 +++++----- lib/ReactViews/QueryWindow/QueryWindow.tsx | 9 ++- .../Controls/FilterFeaturesSection.tsx | 36 ++++++----- lib/Traits/TraitsClasses/FeatureInfoTraits.ts | 15 +++++ 8 files changed, 183 insertions(+), 35 deletions(-) diff --git a/lib/Models/Terria.ts b/lib/Models/Terria.ts index 1737cfa576a..0fffe380eb3 100644 --- a/lib/Models/Terria.ts +++ b/lib/Models/Terria.ts @@ -357,6 +357,18 @@ interface ConfigParameters { * If true elevation is intended MSL, otherwise WGS84 */ useElevationMeanSeaLevel: boolean; + + /** + * Url to login service + */ + userProfileLoginServiceUrl?: string; + + /** + * Types of user profile + */ + userProfilesDefinition?: { + [key: string]: { allowed: string[]; isAdmin: boolean }; + }; } interface StartOptions { @@ -595,7 +607,9 @@ export default class Terria { coordsConverterUrl: undefined, mouseAsInfoDefaultValue: false, useMyLocationFromDesktop: true, - useElevationMeanSeaLevel: false + useElevationMeanSeaLevel: false, + userProfilesDefinition: undefined, + userProfileLoginServiceUrl: undefined }; @observable @@ -649,6 +663,18 @@ export default class Terria { */ @observable messageModal?: MessageModal; + /** + * Gets or sets user profile. + * @type {string} + */ + @observable userProfile?: string; + + /** + * Gets or sets user auth token. + * @type {string} + */ + @observable userAuthToken?: string; + /** * Gets or sets the stack of map interactions modes. The mode at the top of the stack * (highest index) handles click interactions with the map @@ -709,6 +735,13 @@ export default class Terria { return this._previewedItemId; } + @computed + get profile() { + return this.userProfile + ? this.configParameters.userProfilesDefinition?.[this.userProfile] + : undefined; + } + /** * Base ratio for maximumScreenSpaceError * @type {number} @@ -2130,6 +2163,14 @@ export default class Terria { window.localStorage.setItem(this.appName + "." + key, value.toString()); return true; } + + isFeatureAllowedByProfile(featureName: string): boolean { + if (!this.configParameters.userProfilesDefinition) return true; + if (!this.userProfile) return false; + const profile = + this.configParameters.userProfilesDefinition[this.userProfile]; + return profile.isAdmin || profile.allowed.includes(featureName); + } } function generateInitializationUrl( @@ -2169,7 +2210,16 @@ async function interpretHash( runInAction(() => { Object.keys(hashProperties).forEach(function (property) { - if (["clean", "hideWelcomeMessage", "start", "share"].includes(property)) + if ( + [ + "clean", + "hideWelcomeMessage", + "start", + "share", + "profile", + "authToken" + ].includes(property) + ) return; const propertyValue = hashProperties[property]; if (defined(propertyValue) && propertyValue.length > 0) { @@ -2189,6 +2239,11 @@ async function interpretHash( }); }); + if (isDefined(hashProperties.profile)) { + terria.userProfile = hashProperties.profile; + terria.userAuthToken = hashProperties.authToken; + } + if (isDefined(hashProperties.hideWelcomeMessage)) { terria.configParameters.showWelcomeMessage = false; } diff --git a/lib/ReactViews/FeatureInfo/FeatureInfoCatalogItem.tsx b/lib/ReactViews/FeatureInfo/FeatureInfoCatalogItem.tsx index 67a3b77dc0a..0c86bcc7e28 100644 --- a/lib/ReactViews/FeatureInfo/FeatureInfoCatalogItem.tsx +++ b/lib/ReactViews/FeatureInfo/FeatureInfoCatalogItem.tsx @@ -85,6 +85,7 @@ export default (props: Props) => { isOpen={!!(feature === terria.selectedFeature || props.printView)} onClickHeader={props.onToggleOpen} printView={props.printView} + terria={terria} /> ); })} diff --git a/lib/ReactViews/FeatureInfo/FeatureInfoSection.tsx b/lib/ReactViews/FeatureInfo/FeatureInfoSection.tsx index f7be2e84117..38e927219a3 100644 --- a/lib/ReactViews/FeatureInfo/FeatureInfoSection.tsx +++ b/lib/ReactViews/FeatureInfo/FeatureInfoSection.tsx @@ -36,6 +36,8 @@ import { mustacheURLEncodeText, mustacheURLEncodeTextComponent } from "./mustacheExpressions"; +import Terria from "../../Models/Terria"; +import CesiumResource from "terriajs-cesium/Source/Core/Resource"; // We use Mustache templates inside React views, where React does the escaping; don't escape twice, or eg. " => " Mustache.escape = function (string) { @@ -50,6 +52,7 @@ interface FeatureInfoProps extends WithViewState { onClickHeader?: (feature: TerriaFeature) => void; printView?: boolean; t: TFunction; + terria?: Terria; } @observer @@ -57,6 +60,8 @@ export class FeatureInfoSection extends React.Component { private templateReactionDisposer: IDisposer | undefined; private removeFeatureChangedSubscription: (() => void) | undefined; + @observable private fields?: string[]; + /** Rendered feature info template - this is set using reaction. * We can't use `@computed` values for custom templates - as CustomComponents may cause side-effects. * For example @@ -83,6 +88,8 @@ export class FeatureInfoSection extends React.Component { this.mustacheContextData ], () => { + this.checkAuth(); + if ( this.props.catalogItem.featureInfoTemplate.template && this.mustacheContextData @@ -150,7 +157,8 @@ export class FeatureInfoSection extends React.Component { MappableMixin.isMixedInto(this.props.catalogItem) && this.props.catalogItem.featureInfoTemplate.formats ? this.props.catalogItem.featureInfoTemplate.formats - : undefined + : undefined, + this.fields ); } @@ -281,6 +289,12 @@ export class FeatureInfoSection extends React.Component { let description: string | undefined = feature.description?.getValue(currentTime); + if (this.fields && this.fields.length > 0) { + return `
    ${this.fields.map(fieldName => { + return `${fieldName}${feature.properties?.[fieldName]}`; + }).join("
    ")}
    `; + } + if (isDefined(description)) return description; if (isDefined(feature.properties)) { @@ -345,6 +359,44 @@ export class FeatureInfoSection extends React.Component { }; } + checkAuth = async () => { + const feature = this.props.feature; + + if (this.props.terria?.configParameters.userProfilesDefinition && + MappableMixin.isMixedInto(this.props.catalogItem) && + (!this.props.terria.profile || (this.props.terria.profile && !this.props.terria.profile?.isAdmin))) { + if (this.props.terria.userAuthToken && this.props.terria.userProfile && this.props.catalogItem.featureInfoTemplate.webServiceUrlProfileCheck) { + const proxiedUrl = this.props.terria?.corsProxy.getURL(this.props.catalogItem.featureInfoTemplate.webServiceUrlProfileCheck); + try { + const result = await CesiumResource.fetchJson({ + url: proxiedUrl, + queryParameters: { + idIntervento: /*feature.properties?.["id"]*/feature.properties?.[feature.properties.propertyNames[0]], + authToken: this.props.terria.userAuthToken + } + }); + + if (result && result.status === 200) { + this.setFields(undefined); + } else { + throw "Request failed"; + } + } catch (error) { + this.setFields(this.props.catalogItem.featureInfoTemplate.perProfileInfoFields[String(this.props.terria?.userProfile)] as string[]); + } + } else { + this.setFields(this.props.catalogItem.featureInfoTemplate.perProfileInfoFields[String(this.props.terria?.userProfile)] as string[]); + } + } else { + this.setFields(undefined); + } + } + + @action + setFields = (newFields: string[] | undefined) => { + this.fields = newFields; + } + render() { const { t } = this.props; diff --git a/lib/ReactViews/FeatureInfo/getFeatureProperties.ts b/lib/ReactViews/FeatureInfo/getFeatureProperties.ts index b693d17ba28..51902283ad9 100644 --- a/lib/ReactViews/FeatureInfo/getFeatureProperties.ts +++ b/lib/ReactViews/FeatureInfo/getFeatureProperties.ts @@ -21,7 +21,8 @@ import { formatDateTime } from "./mustacheExpressions"; export default function getFeatureProperties( feature: TerriaFeature, currentTime: JulianDate, - formats?: Record + formats?: Record, + featureFields?: string[] ) { const properties = propertyGetTimeValues(feature, currentTime); @@ -31,6 +32,17 @@ export default function getFeatureProperties( let result = parseValues(properties); result = replaceBadKeyCharacters(result); + if (featureFields) { + result = Object.assign( + {}, + ...Object.entries(result) + .filter(([key, _]) => featureFields.includes(key)) + .map(([key, value]) => { + return { [key]: value }; + }) + ); + } + if (formats) { applyFormatsInPlace(result, formats); } diff --git a/lib/ReactViews/QueryWindow/QueryTabTable.tsx b/lib/ReactViews/QueryWindow/QueryTabTable.tsx index c5bc0ddafb1..c0905f94dcf 100644 --- a/lib/ReactViews/QueryWindow/QueryTabTable.tsx +++ b/lib/ReactViews/QueryWindow/QueryTabTable.tsx @@ -9,7 +9,7 @@ import Button from "../../Styled/Button"; import DataUri from "../../Core/DataUri"; const QueryTabTable: React.FC = observer( - ({ item }: TabPropsType) => { + ({ item, terria }: TabPropsType) => { const [columns, setColumns] = useState>[]>([]); const [data, setData] = useState[]>([]); @@ -111,19 +111,21 @@ const QueryTabTable: React.FC = observer( striped highlightOnHover /> - - - + {terria.isFeatureAllowedByProfile("DownloadQueryData") && ( + + + + )} ); } diff --git a/lib/ReactViews/QueryWindow/QueryWindow.tsx b/lib/ReactViews/QueryWindow/QueryWindow.tsx index 7c1c1d7ec60..c1a8a7c928c 100644 --- a/lib/ReactViews/QueryWindow/QueryWindow.tsx +++ b/lib/ReactViews/QueryWindow/QueryWindow.tsx @@ -10,9 +10,11 @@ import QueryTabTable from "./QueryTabTable"; import styled from "styled-components"; import { Button } from "../../Styled/Button"; import QueryableCatalogItemMixin from "../../ModelMixins/QueryableCatalogItemMixin"; +import Terria from "../../Models/Terria"; export interface TabPropsType { item: QueryableCatalogItemMixin.Instance; + terria: Terria; } const Tabs: { @@ -96,7 +98,12 @@ export default observer(function QueryWindow() { {viewState.terria.itemToQuery && QueryableCatalogItemMixin.isMixedInto( viewState.terria.itemToQuery - ) && } + ) && ( + + )}
    diff --git a/lib/ReactViews/Workbench/Controls/FilterFeaturesSection.tsx b/lib/ReactViews/Workbench/Controls/FilterFeaturesSection.tsx index 72546d324da..0fc28f564d5 100644 --- a/lib/ReactViews/Workbench/Controls/FilterFeaturesSection.tsx +++ b/lib/ReactViews/Workbench/Controls/FilterFeaturesSection.tsx @@ -191,22 +191,26 @@ const FilterFeaturesSection: React.FC = observer( - + {viewState.terria.isFeatureAllowedByProfile("QueryData") && ( + + )}
    From 09790e77cb4f0b5bd9263ffb437ba45cefc54c6b Mon Sep 17 00:00:00 2001 From: glughi Date: Wed, 20 Dec 2023 22:20:51 +0100 Subject: [PATCH 182/215] Add enumMultiValue to QueriableCatalogItem --- lib/ModelMixins/GeojsonMixin.ts | 32 ++++++++++++--- lib/ModelMixins/QueryableCatalogItemMixin.ts | 29 +++++++++----- .../QueryWindow/QueryTabAggregation.tsx | 40 ++++++++++--------- .../QueryableCatalogItemTraits.ts | 7 ++++ 4 files changed, 73 insertions(+), 35 deletions(-) diff --git a/lib/ModelMixins/GeojsonMixin.ts b/lib/ModelMixins/GeojsonMixin.ts index fb142f74e21..bf004ed7a8e 100644 --- a/lib/ModelMixins/GeojsonMixin.ts +++ b/lib/ModelMixins/GeojsonMixin.ts @@ -1533,7 +1533,7 @@ function GeoJsonMixin>>(Base: T) { return Promise.resolve(searchableData); } - getEnumValues(propertyName: string): string[] | undefined { + getEnumValues(propertyName: string): string[] { if ( this.mapItems && this.mapItems.length > 0 && @@ -1555,12 +1555,12 @@ function GeoJsonMixin>>(Base: T) { this.numberOfTotalElements = this.mapItems[0].entities.values.length; return Array.from(values); - } + } else return []; } getFeaturePropertiesByName( propertyNames: string[] - ): { [key: string]: any }[] | undefined { + ): { [key: string]: any }[] { if ( this.mapItems && this.mapItems.length > 0 && @@ -1570,13 +1570,24 @@ function GeoJsonMixin>>(Base: T) { ) { const results = this.mapItems[0].entities.values.map((entity) => { const obj = Object.fromEntries( - propertyNames.map((name) => [name, entity.properties?.[name]]) + propertyNames.map((name) => { + const value = entity.properties?.[name]; + const property = this.queryProperties?.[name]; + return [ + name, + property?.type === "enum" && property?.enumMultiValue + ? ((value as ConstantProperty).valueOf() as string) + .split(",") + .map((txt) => txt.trim()) + : value + ]; + }) ); obj["show"] = new ConstantProperty(entity.show); return obj; }); return results; - } + } else return []; } filterData() { @@ -1604,7 +1615,8 @@ function GeoJsonMixin>>(Base: T) { )[key]; if ( - this.queryProperties?.[key].type === "enum" || + (this.queryProperties?.[key].type === "enum" && + !this.queryProperties?.[key].enumMultiValue) || this.queryProperties?.[key].type === "string" || this.queryProperties?.[key].type === "number" ) { @@ -1612,6 +1624,14 @@ function GeoJsonMixin>>(Base: T) { value[0].toLowerCase() === this.ENUM_ALL_VALUE || value[0].toLowerCase() === "" || entityValue.toLowerCase() === value[0].toLowerCase(); + } else if ( + this.queryProperties?.[key].type === "enum" && + this.queryProperties?.[key].enumMultiValue + ) { + visibility[index] = + value[0].toLowerCase() === this.ENUM_ALL_VALUE || + value[0].toLowerCase() === "" || + entityValue.toLowerCase().includes(value[0].toLowerCase()); } else if (this.queryProperties?.[key].type === "date") { if (value[0] === "" || value[1] === "") { visibility[index] = true; diff --git a/lib/ModelMixins/QueryableCatalogItemMixin.ts b/lib/ModelMixins/QueryableCatalogItemMixin.ts index 5b205c9d95e..f938dc8caf7 100644 --- a/lib/ModelMixins/QueryableCatalogItemMixin.ts +++ b/lib/ModelMixins/QueryableCatalogItemMixin.ts @@ -14,6 +14,7 @@ export interface QueryableProperties { decimalPlaces: number; canAggregate: boolean; sumOnAggregation: boolean; + enumMultiValue: boolean; }; } @@ -51,7 +52,8 @@ function QueryableCatalogItemMixin>(Base: T) { measureUnit: property.propertyMeasureUnit, decimalPlaces: property.propertyDecimalPlaces, canAggregate: property.canAggregate, - sumOnAggregation: property.sumOnAggregation + sumOnAggregation: property.sumOnAggregation, + enumMultiValue: property.enumMultiValue } }; }) @@ -65,11 +67,11 @@ function QueryableCatalogItemMixin>(Base: T) { abstract filterData(): void; - abstract getEnumValues(propertyName: string): string[] | undefined; + abstract getEnumValues(propertyName: string): string[]; abstract getFeaturePropertiesByName( propertyNames: string[] - ): { [key: string]: any }[] | undefined; + ): { [key: string]: any }[]; @action updateEnumValues() { @@ -77,14 +79,21 @@ function QueryableCatalogItemMixin>(Base: T) { const enums = Object.entries(this.queryProperties) .filter(([_, property]) => property.type === "enum") - .map(([name, _]) => { - return { [name]: this.getEnumValues(name) }; + .map(([name, property]) => { + const values = this.getEnumValues(name); + return { + [name]: property.enumMultiValue + ? Array.from( + new Set( + values + ?.map((elem) => elem.split(",").map((txt) => txt.trim())) + .flat() + ) + ) + : values + }; }); - - this.enumValues = Object.assign( - {}, - ...enums.filter((elem) => elem !== undefined) - ); + this.enumValues = Object.assign({}, ...enums); } @action diff --git a/lib/ReactViews/QueryWindow/QueryTabAggregation.tsx b/lib/ReactViews/QueryWindow/QueryTabAggregation.tsx index 85d2f30503f..b570bf5ca81 100644 --- a/lib/ReactViews/QueryWindow/QueryTabAggregation.tsx +++ b/lib/ReactViews/QueryWindow/QueryTabAggregation.tsx @@ -129,9 +129,19 @@ const QueryTabPanel: React.FC = observer( const featuresPerClass: { [key: string]: number } = features.reduce( (obj, val) => { const name = val[aggregationProperty]; - obj[name] = - (obj[name] ?? 0) + - (functionIsCount ? 1 : val[aggregationFunction]); + + if (Array.isArray(name)) { + name.forEach((kk) => { + obj[kk] = + (obj[kk] ?? 0) + + (functionIsCount ? 1 : val[aggregationFunction]) / + name.length; + }); + } else { + obj[name] = + (obj[name] ?? 0) + + (functionIsCount ? 1 : val[aggregationFunction]); + } return obj; }, {} @@ -170,11 +180,6 @@ const QueryTabPanel: React.FC = observer( const measureUnit = functionProperty?.measureUnit ?? ""; const decimalPlaces = functionProperty?.decimalPlaces ?? 0; - /*const currencyFormatter = new Intl.NumberFormat("it-IT", { - style: "currency", - currency: "EUR" - });*/ - setColumns([ { name: "Categoria", @@ -360,20 +365,17 @@ const QueryTabPanel: React.FC = observer( /> -

    - Valore totale:{" "} - {aggregationFunction === defaultAggregationFunction.key - ? data.reduce( + {aggregationFunction !== defaultAggregationFunction.key && ( +

    + Valore totale:{" "} + {currencyFormatter.format( + data.reduce( (accumulator, current) => accumulator + current.value, 0 ) - : currencyFormatter.format( - data.reduce( - (accumulator, current) => accumulator + current.value, - 0 - ) - )} -

    + )} + + )}
    ); diff --git a/lib/Traits/TraitsClasses/QueryableCatalogItemTraits.ts b/lib/Traits/TraitsClasses/QueryableCatalogItemTraits.ts index c4587513ba0..60ffe52d63f 100644 --- a/lib/Traits/TraitsClasses/QueryableCatalogItemTraits.ts +++ b/lib/Traits/TraitsClasses/QueryableCatalogItemTraits.ts @@ -56,6 +56,13 @@ export class QueryablePropertyTraits extends ModelTraits { "If true, on aggregation show also se sum of this value (only if type is 'number')" }) sumOnAggregation: boolean = false; + + @primitiveTrait({ + type: "boolean", + name: "enumMultiValue", + description: "If true, enum values can represents multiple values." + }) + enumMultiValue: boolean = false; } export default class QueryableCatalogItemTraits extends ModelTraits { From be9ccb55de083dfcacdfda9f2117de43569bf6d4 Mon Sep 17 00:00:00 2001 From: glughi Date: Wed, 10 Jan 2024 22:38:34 +0100 Subject: [PATCH 183/215] Check bbox of WMS layers also in parent. --- lib/Models/Catalog/Ows/WebMapServiceCapabilities.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/Models/Catalog/Ows/WebMapServiceCapabilities.ts b/lib/Models/Catalog/Ows/WebMapServiceCapabilities.ts index 411c1074c62..452f03f03bf 100644 --- a/lib/Models/Catalog/Ows/WebMapServiceCapabilities.ts +++ b/lib/Models/Catalog/Ows/WebMapServiceCapabilities.ts @@ -132,7 +132,8 @@ type Mutable = { -readonly [P in keyof T]: T[P] }; export function getRectangleFromLayer( layer: CapabilitiesLayer ): StratumFromTraits | undefined { - var egbb = layer.EX_GeographicBoundingBox; // required in WMS 1.3.0 + var egbb = + layer.EX_GeographicBoundingBox ?? layer._parent?.EX_GeographicBoundingBox; // required in WMS 1.3.0 if (egbb) { return { west: egbb.westBoundLongitude, From 5bac307fe135245e9d17cee9692f5f090240d7fb Mon Sep 17 00:00:00 2001 From: glughi Date: Wed, 10 Jan 2024 22:39:22 +0100 Subject: [PATCH 184/215] Enlarge pick features area --- lib/Models/Cesium.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/Models/Cesium.ts b/lib/Models/Cesium.ts index febd3d0d2ff..0c60c762c7b 100644 --- a/lib/Models/Cesium.ts +++ b/lib/Models/Cesium.ts @@ -1362,7 +1362,7 @@ export default class Cesium extends GlobeOrMap { private pickVectorFeatures(screenPosition: Cartesian2) { // Pick vector features const vectorFeatures = []; - const pickedList = this.scene.drillPick(screenPosition); + const pickedList = this.scene.drillPick(screenPosition, undefined, 7, 7); for (let i = 0; i < pickedList.length; ++i) { const picked = pickedList[i]; let id = picked.id; From f6420c64cc21b00ed465e3901336d494899520ef Mon Sep 17 00:00:00 2001 From: glughi Date: Thu, 11 Jan 2024 17:19:26 +0100 Subject: [PATCH 185/215] Add Download screenshot to Profile manager --- .../QueryWindow/QueryTabAggregation.tsx | 26 ++++++++++--------- 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/lib/ReactViews/QueryWindow/QueryTabAggregation.tsx b/lib/ReactViews/QueryWindow/QueryTabAggregation.tsx index b570bf5ca81..011073007ea 100644 --- a/lib/ReactViews/QueryWindow/QueryTabAggregation.tsx +++ b/lib/ReactViews/QueryWindow/QueryTabAggregation.tsx @@ -33,7 +33,7 @@ const currencyFormatter = new Intl.NumberFormat("it-IT", { }); const QueryTabPanel: React.FC = observer( - ({ item }: TabPropsType) => { + ({ item, terria }: TabPropsType) => { const [aggregationProperty, setAggregationProperty] = useState(); const [aggregationFunction, setAggregationFunction] = useState(); const [chartType, setChartType] = useState(ChartType.Pie); @@ -305,17 +305,19 @@ const QueryTabPanel: React.FC = observer( > Cambia colori - + {terria.isFeatureAllowedByProfile("DownloadQueryData") && ( + + )} )} From 04bb39df33bec221222d6904a40c5752d6677e4b Mon Sep 17 00:00:00 2001 From: glughi Date: Fri, 19 Jan 2024 18:15:56 +0100 Subject: [PATCH 186/215] Minor clusterization change. --- lib/ModelMixins/GeojsonMixin.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/ModelMixins/GeojsonMixin.ts b/lib/ModelMixins/GeojsonMixin.ts index bf004ed7a8e..5849af70ebf 100644 --- a/lib/ModelMixins/GeojsonMixin.ts +++ b/lib/ModelMixins/GeojsonMixin.ts @@ -594,7 +594,7 @@ function GeoJsonMixin>>(Base: T) { const pinBuilder = new PinBuilder(); dataSource.clustering.enabled = true; dataSource.clustering.pixelRange = 35; - dataSource.clustering.minimumClusterSize = 4; + dataSource.clustering.minimumClusterSize = 5; dataSource.clustering.clusterEvent.addEventListener(function ( entities, cluster From 561db2e357e1495fefbdbb0adc9d41ab96a99f21 Mon Sep 17 00:00:00 2001 From: glughi Date: Fri, 19 Jan 2024 18:16:45 +0100 Subject: [PATCH 187/215] Minor changes in QueryTabAggregation --- lib/ReactViews/QueryWindow/QueryChart.tsx | 3 ++- lib/ReactViews/QueryWindow/QueryTabAggregation.tsx | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/lib/ReactViews/QueryWindow/QueryChart.tsx b/lib/ReactViews/QueryWindow/QueryChart.tsx index 108ce94df97..49e475b4d2c 100644 --- a/lib/ReactViews/QueryWindow/QueryChart.tsx +++ b/lib/ReactViews/QueryWindow/QueryChart.tsx @@ -357,7 +357,8 @@ const QueryChart = React.forwardRef( fill="#8884d8" labelLine={false} label={(elem) => { - return `${elem[valuePercKey]}%`; + const val = elem[valuePercKey]; + return val > 1 ? `${val}%` : ""; }} > {dataPurged?.map((_, index) => ( diff --git a/lib/ReactViews/QueryWindow/QueryTabAggregation.tsx b/lib/ReactViews/QueryWindow/QueryTabAggregation.tsx index 011073007ea..c2cb8ec3128 100644 --- a/lib/ReactViews/QueryWindow/QueryTabAggregation.tsx +++ b/lib/ReactViews/QueryWindow/QueryTabAggregation.tsx @@ -158,7 +158,7 @@ const QueryTabPanel: React.FC = observer( return { name: key, value: value, - valuePerc: Math.round((value / tot + Number.EPSILON) * 100) + valuePerc: Math.round((value / tot + Number.EPSILON) * 1000) / 10 }; }) //.filter((elem) => elem.valuePerc > 0) From 39682f56595a1689822bc5be759f54494477bfc7 Mon Sep 17 00:00:00 2001 From: glughi Date: Fri, 19 Jan 2024 18:29:19 +0100 Subject: [PATCH 188/215] Fix measure tools clamp to ground --- lib/Models/UserDrawing.ts | 33 +++++++++++++++++---------------- 1 file changed, 17 insertions(+), 16 deletions(-) diff --git a/lib/Models/UserDrawing.ts b/lib/Models/UserDrawing.ts index f548c04e65c..dbda4f6df85 100644 --- a/lib/Models/UserDrawing.ts +++ b/lib/Models/UserDrawing.ts @@ -169,20 +169,6 @@ export default class UserDrawing extends MappableMixin( } this.prepareToAddNewPoint(); }); - - this.disposeClampMeasureLineToGround = reaction( - () => this.terria?.clampMeasureLineToGround, - (clampMeasureLineToGround) => { - if ( - this.otherEntities.entities.values.length > 0 && - this.otherEntities.entities.values[0]?.polyline - ) { - this.otherEntities.entities.values[0].polyline.clampToGround = - new ConstantProperty(clampMeasureLineToGround); - } - }, - { equals: (a, b) => a === b } - ); } protected forceLoadMapItems(): Promise { @@ -230,6 +216,19 @@ export default class UserDrawing extends MappableMixin( this.inDrawMode = true; }); + this.disposeClampMeasureLineToGround = reaction( + () => this.terria?.clampMeasureLineToGround, + (clampMeasureLineToGround) => { + if ( + this.otherEntities.entities.values.length > 0 && + this.otherEntities.entities.values[0]?.polyline + ) { + this.otherEntities.entities.values[0].polyline.clampToGround = + new ConstantProperty(clampMeasureLineToGround); + } + } + ); + if (isDefined(this.terria.cesium)) { this.terria.cesium.cesiumWidget.canvas.setAttribute( "style", @@ -648,8 +647,10 @@ export default class UserDrawing extends MappableMixin( */ cleanUp() { this.terria.overlays.remove(this); - this.pointEntities = new CustomDataSource("Points"); - this.otherEntities = new CustomDataSource("Lines and polygons"); + //this.pointEntities = new CustomDataSource("Points"); + //this.otherEntities = new CustomDataSource("Lines and polygons"); + this.pointEntities.entities.removeAll(); + this.otherEntities.entities.removeAll(); this.terria.allowFeatureInfoRequests = true; From 963717940ca0714ad8662017114da5f596e01d28 Mon Sep 17 00:00:00 2001 From: glughi Date: Mon, 22 Jan 2024 10:34:46 +0100 Subject: [PATCH 189/215] Improves render update on clamping mode change --- lib/Models/UserDrawing.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/Models/UserDrawing.ts b/lib/Models/UserDrawing.ts index dbda4f6df85..1d36b43a02e 100644 --- a/lib/Models/UserDrawing.ts +++ b/lib/Models/UserDrawing.ts @@ -225,6 +225,7 @@ export default class UserDrawing extends MappableMixin( ) { this.otherEntities.entities.values[0].polyline.clampToGround = new ConstantProperty(clampMeasureLineToGround); + this.terria.currentViewer.notifyRepaintRequired(); } } ); From a96fddc853b2ec8a745beb9d0404b6e869467a14 Mon Sep 17 00:00:00 2001 From: glughi Date: Wed, 24 Jan 2024 10:33:03 +0100 Subject: [PATCH 190/215] Improve templatint and check auth in FeatureInfoSection --- .../FeatureInfo/FeatureInfoSection.tsx | 39 ++++++++++++------- 1 file changed, 25 insertions(+), 14 deletions(-) diff --git a/lib/ReactViews/FeatureInfo/FeatureInfoSection.tsx b/lib/ReactViews/FeatureInfo/FeatureInfoSection.tsx index cdb430a4125..64a1163e310 100644 --- a/lib/ReactViews/FeatureInfo/FeatureInfoSection.tsx +++ b/lib/ReactViews/FeatureInfo/FeatureInfoSection.tsx @@ -80,24 +80,23 @@ export class FeatureInfoSection extends React.Component { @observable featureChangedCounter = 0; componentDidMount() { + this.checkAuth(); + this.templateReactionDisposer = reaction( () => [ this.props.feature, this.props.catalogItem.featureInfoTemplate.template, this.props.catalogItem.featureInfoTemplate.partials, + this.props.catalogItem.featureInfoTemplate.perProfileInfoFields, // Note `mustacheContextData` will trigger update when `currentTime` changes (through this.featureProperties) this.mustacheContextData ], () => { - this.checkAuth(); - - if ( - this.props.catalogItem.featureInfoTemplate.template && - this.mustacheContextData - ) { + if (this.template && this.mustacheContextData) { this.templatedFeatureInfoReactNode = parseCustomMarkdownToReact( Mustache.render( - this.props.catalogItem.featureInfoTemplate.template, + //this.props.catalogItem.featureInfoTemplate.template, + this.template, this.mustacheContextData, this.props.catalogItem.featureInfoTemplate.partials ), @@ -163,6 +162,20 @@ export class FeatureInfoSection extends React.Component { ); } + @computed get template() { + if (this.fields && this.fields.length > 0) { + return `
    + ${this.fields + .map((fieldName) => { + return `{{#terria.partialByName}}${fieldName}{{/terria.partialByName}}{{${fieldName}}}`; + }) + .join("
    ")} +
    `; + } else { + return this.props.catalogItem.featureInfoTemplate.template; + } + } + /** This monstrosity contains properties which can be used by Mustache templates: * - All feature properties * - `properties` = array of key:value from feature properties @@ -291,11 +304,11 @@ export class FeatureInfoSection extends React.Component { feature.description?.getValue(currentTime); if (this.fields && this.fields.length > 0) { - return `
    ${this.fields + return `
    ${this.fields .map((fieldName) => { - return `${fieldName}${feature.properties?.[fieldName]}`; + return `${fieldName}${feature.properties?.[fieldName]}`; }) - .join("
    ")}
    `; + .join("
    ")}
    `; } if (isDefined(description)) return description; @@ -384,15 +397,13 @@ export class FeatureInfoSection extends React.Component { url: proxiedUrl, queryParameters: { idIntervento: - /*feature.properties?.["id"]*/ feature.properties?.[ - feature.properties.propertyNames[0] - ], + feature.properties?.[feature.properties.propertyNames[0]], authToken: this.props.terria.userAuthToken } }); if (result && result.status === 200) { - this.setFields(undefined); + this.setFields(this.props.feature.properties?.propertyNames); } else { throw "Request failed"; } From 710ef175000d3d18942ba3b16e3db93902e84ab2 Mon Sep 17 00:00:00 2001 From: glughi Date: Mon, 29 Jan 2024 16:29:37 +0100 Subject: [PATCH 191/215] Add "dictionary" type to QueryabkeCatalogItem --- lib/ModelMixins/GeojsonMixin.ts | 4 +- lib/ModelMixins/QueryableCatalogItemMixin.ts | 10 +++- .../QueryWindow/QueryTabAggregation.tsx | 32 +++++++++---- .../Controls/FilterFeaturesSection.tsx | 2 +- .../QueryableCatalogItemTraits.ts | 48 ++++++++++++++++++- 5 files changed, 84 insertions(+), 12 deletions(-) diff --git a/lib/ModelMixins/GeojsonMixin.ts b/lib/ModelMixins/GeojsonMixin.ts index 5849af70ebf..503b82be9b6 100644 --- a/lib/ModelMixins/GeojsonMixin.ts +++ b/lib/ModelMixins/GeojsonMixin.ts @@ -1575,7 +1575,9 @@ function GeoJsonMixin>>(Base: T) { const property = this.queryProperties?.[name]; return [ name, - property?.type === "enum" && property?.enumMultiValue + property?.type === "dictionary" + ? JSON.parse((value as ConstantProperty).valueOf() as string) + : property?.type === "enum" && property?.enumMultiValue ? ((value as ConstantProperty).valueOf() as string) .split(",") .map((txt) => txt.trim()) diff --git a/lib/ModelMixins/QueryableCatalogItemMixin.ts b/lib/ModelMixins/QueryableCatalogItemMixin.ts index f938dc8caf7..7ec44819a4a 100644 --- a/lib/ModelMixins/QueryableCatalogItemMixin.ts +++ b/lib/ModelMixins/QueryableCatalogItemMixin.ts @@ -14,7 +14,9 @@ export interface QueryableProperties { decimalPlaces: number; canAggregate: boolean; sumOnAggregation: boolean; + distributionOnAggregation: boolean; enumMultiValue: boolean; + dictionaryKeyProperties: {key: string, alias: string, queryProperty: string, valueProperty: string}[]; }; } @@ -45,6 +47,10 @@ function QueryableCatalogItemMixin>(Base: T) { return Object.assign( {}, ...this.queryableProperties.map((property) => { + const dictionaryKeyProperties = property.dictionaryKeyProperties.map(elem => { + return { key: elem.key, alias: elem.alias, queryProperty: elem.queryProperty, valueProperty: elem.valueProperty }; + }); + return { [property.propertyName]: { type: property.propertyType, @@ -53,7 +59,9 @@ function QueryableCatalogItemMixin>(Base: T) { decimalPlaces: property.propertyDecimalPlaces, canAggregate: property.canAggregate, sumOnAggregation: property.sumOnAggregation, - enumMultiValue: property.enumMultiValue + distributionOnAggregation: property.distributionOnAggregation, + enumMultiValue: property.enumMultiValue, + dictionaryKeyProperties: dictionaryKeyProperties } }; }) diff --git a/lib/ReactViews/QueryWindow/QueryTabAggregation.tsx b/lib/ReactViews/QueryWindow/QueryTabAggregation.tsx index c2cb8ec3128..83d23710510 100644 --- a/lib/ReactViews/QueryWindow/QueryTabAggregation.tsx +++ b/lib/ReactViews/QueryWindow/QueryTabAggregation.tsx @@ -36,6 +36,7 @@ const QueryTabPanel: React.FC = observer( ({ item, terria }: TabPropsType) => { const [aggregationProperty, setAggregationProperty] = useState(); const [aggregationFunction, setAggregationFunction] = useState(); + const [distributionProperty, setDistributionProperty] = useState(); const [chartType, setChartType] = useState(ChartType.Pie); const [data, setData] = useState(); const [useHidden, setUseHidden] = useState(false); @@ -59,7 +60,7 @@ const QueryTabPanel: React.FC = observer( if (item.queryProperties) { const featProps = item.getFeaturePropertiesByName( Object.entries(item.queryProperties) - .filter(([_, elem]) => elem.canAggregate || elem.sumOnAggregation) + .filter(([_, elem]) => elem.canAggregate || elem.sumOnAggregation || elem.distributionOnAggregation) .map(([key, _]) => key) ); @@ -101,6 +102,9 @@ const QueryTabPanel: React.FC = observer( setAggregationFunction(functions[0].key); } + setDistributionProperty(Object.entries(item.queryProperties ?? {}) + .find(([_, elem]) => { return elem.distributionOnAggregation })?.[0]); + setFilterText( Object.entries(item.queryValues ?? {}) .filter(([_, val]) => @@ -126,21 +130,34 @@ const QueryTabPanel: React.FC = observer( : featureProperties.current.filter( (elem) => !!(elem.show as ConstantProperty).valueOf() ); + + const distrib = !functionIsCount && distributionProperty ? + item.queryProperties?.[distributionProperty].dictionaryKeyProperties.find(elem => elem.queryProperty === aggregationProperty) : + undefined; + + const percCount: { [key: string]: number } = {}; const featuresPerClass: { [key: string]: number } = features.reduce( (obj, val) => { const name = val[aggregationProperty]; - if (Array.isArray(name)) { + if(distrib && distributionProperty) { + const distribDictionary = val[distributionProperty][distrib.key] as { [key: string]: any }[]; + distribDictionary.forEach((elem) => { + const alias = elem[distrib.alias] as string; + const distribution = elem[distrib.valueProperty] as number * 0.01; + obj[alias] = (obj[alias] ?? 0) + (functionIsCount ? 1 : val[aggregationFunction]) * distribution; + }); + } + else if (Array.isArray(name)) { name.forEach((kk) => { - obj[kk] = - (obj[kk] ?? 0) + - (functionIsCount ? 1 : val[aggregationFunction]) / - name.length; + obj[kk] = (obj[kk] ?? 0) + (functionIsCount ? 1 : val[aggregationFunction]); + percCount[kk] = (percCount[kk] ?? 0) + 1 / name.length; }); } else { obj[name] = (obj[name] ?? 0) + (functionIsCount ? 1 : val[aggregationFunction]); + percCount[name] = (percCount[name] ?? 0) + 1; } return obj; }, @@ -158,10 +175,9 @@ const QueryTabPanel: React.FC = observer( return { name: key, value: value, - valuePerc: Math.round((value / tot + Number.EPSILON) * 1000) / 10 + valuePerc: Math.round(((functionIsCount ? percCount[key] : value) / tot + Number.EPSILON) * 1000) / 10 }; }) - //.filter((elem) => elem.valuePerc > 0) ); } }, [ diff --git a/lib/ReactViews/Workbench/Controls/FilterFeaturesSection.tsx b/lib/ReactViews/Workbench/Controls/FilterFeaturesSection.tsx index 0fc28f564d5..392a4bc1e77 100644 --- a/lib/ReactViews/Workbench/Controls/FilterFeaturesSection.tsx +++ b/lib/ReactViews/Workbench/Controls/FilterFeaturesSection.tsx @@ -86,7 +86,7 @@ const FilterFeaturesSection: React.FC = observer( {Object.entries(item.queryProperties) .filter(([_, property]) => { - return !property.sumOnAggregation; + return !(property.sumOnAggregation || property.distributionOnAggregation); }) .map(([propertyName, property]) => { return ( diff --git a/lib/Traits/TraitsClasses/QueryableCatalogItemTraits.ts b/lib/Traits/TraitsClasses/QueryableCatalogItemTraits.ts index 60ffe52d63f..69d8b414277 100644 --- a/lib/Traits/TraitsClasses/QueryableCatalogItemTraits.ts +++ b/lib/Traits/TraitsClasses/QueryableCatalogItemTraits.ts @@ -2,6 +2,36 @@ import ModelTraits from "../ModelTraits"; import primitiveTrait from "../Decorators/primitiveTrait"; import objectArrayTrait from "../Decorators/objectArrayTrait"; +export class DictionaryPropertyTraits extends ModelTraits { + @primitiveTrait({ + type: "string", + name: "key", + description: "The dictionary key" + }) + key: string = ""; + + @primitiveTrait({ + type: "string", + name: "alias", + description: "The alias used" + }) + alias: string = ""; + + @primitiveTrait({ + type: "string", + name: "queryProperty", + description: "The QueryableProperty to use in key" + }) + queryProperty: string = ""; + + @primitiveTrait({ + type: "string", + name: "valueProperty", + description: "The QueryableProperty to use in value" + }) + valueProperty: string = ""; +} + export class QueryablePropertyTraits extends ModelTraits { @primitiveTrait({ type: "string", @@ -40,7 +70,7 @@ export class QueryablePropertyTraits extends ModelTraits { description: "The type of the property, one of string, number, enum (use all property values from the layer), date (use a range of two dates)" }) - propertyType: "string" | "number" | "enum" | "date" = "string"; + propertyType: "string" | "number" | "enum" | "date" | "dictionary" = "string"; @primitiveTrait({ type: "boolean", @@ -63,6 +93,22 @@ export class QueryablePropertyTraits extends ModelTraits { description: "If true, enum values can represents multiple values." }) enumMultiValue: boolean = false; + + @objectArrayTrait({ + name: "Properties used key of dictionary", + type: DictionaryPropertyTraits, + description: "The properties to use as key of dictionary properties", + idProperty: "key" + }) + dictionaryKeyProperties?: DictionaryPropertyTraits[]; + + @primitiveTrait({ + type: "boolean", + name: "distributionOnAggregation", + description: + "If true, on aggregation use the properties to distribute values (only if type is 'dictionary')" + }) + distributionOnAggregation: boolean = false; } export default class QueryableCatalogItemTraits extends ModelTraits { From 64450ad2430f120824d5f2e78802f3f336d58c0e Mon Sep 17 00:00:00 2001 From: glughi Date: Mon, 29 Jan 2024 16:32:19 +0100 Subject: [PATCH 192/215] Prettify --- lib/ModelMixins/QueryableCatalogItemMixin.ts | 20 +++++-- .../QueryWindow/QueryTabAggregation.tsx | 55 ++++++++++++++----- .../Controls/FilterFeaturesSection.tsx | 5 +- 3 files changed, 60 insertions(+), 20 deletions(-) diff --git a/lib/ModelMixins/QueryableCatalogItemMixin.ts b/lib/ModelMixins/QueryableCatalogItemMixin.ts index 7ec44819a4a..c3f063533a2 100644 --- a/lib/ModelMixins/QueryableCatalogItemMixin.ts +++ b/lib/ModelMixins/QueryableCatalogItemMixin.ts @@ -16,7 +16,12 @@ export interface QueryableProperties { sumOnAggregation: boolean; distributionOnAggregation: boolean; enumMultiValue: boolean; - dictionaryKeyProperties: {key: string, alias: string, queryProperty: string, valueProperty: string}[]; + dictionaryKeyProperties: { + key: string; + alias: string; + queryProperty: string; + valueProperty: string; + }[]; }; } @@ -47,9 +52,16 @@ function QueryableCatalogItemMixin>(Base: T) { return Object.assign( {}, ...this.queryableProperties.map((property) => { - const dictionaryKeyProperties = property.dictionaryKeyProperties.map(elem => { - return { key: elem.key, alias: elem.alias, queryProperty: elem.queryProperty, valueProperty: elem.valueProperty }; - }); + const dictionaryKeyProperties = property.dictionaryKeyProperties.map( + (elem) => { + return { + key: elem.key, + alias: elem.alias, + queryProperty: elem.queryProperty, + valueProperty: elem.valueProperty + }; + } + ); return { [property.propertyName]: { diff --git a/lib/ReactViews/QueryWindow/QueryTabAggregation.tsx b/lib/ReactViews/QueryWindow/QueryTabAggregation.tsx index 83d23710510..9a91a90ff6c 100644 --- a/lib/ReactViews/QueryWindow/QueryTabAggregation.tsx +++ b/lib/ReactViews/QueryWindow/QueryTabAggregation.tsx @@ -60,7 +60,12 @@ const QueryTabPanel: React.FC = observer( if (item.queryProperties) { const featProps = item.getFeaturePropertiesByName( Object.entries(item.queryProperties) - .filter(([_, elem]) => elem.canAggregate || elem.sumOnAggregation || elem.distributionOnAggregation) + .filter( + ([_, elem]) => + elem.canAggregate || + elem.sumOnAggregation || + elem.distributionOnAggregation + ) .map(([key, _]) => key) ); @@ -102,8 +107,11 @@ const QueryTabPanel: React.FC = observer( setAggregationFunction(functions[0].key); } - setDistributionProperty(Object.entries(item.queryProperties ?? {}) - .find(([_, elem]) => { return elem.distributionOnAggregation })?.[0]); + setDistributionProperty( + Object.entries(item.queryProperties ?? {}).find(([_, elem]) => { + return elem.distributionOnAggregation; + })?.[0] + ); setFilterText( Object.entries(item.queryValues ?? {}) @@ -130,27 +138,39 @@ const QueryTabPanel: React.FC = observer( : featureProperties.current.filter( (elem) => !!(elem.show as ConstantProperty).valueOf() ); - - const distrib = !functionIsCount && distributionProperty ? - item.queryProperties?.[distributionProperty].dictionaryKeyProperties.find(elem => elem.queryProperty === aggregationProperty) : - undefined; + + const distrib = + !functionIsCount && distributionProperty + ? item.queryProperties?.[ + distributionProperty + ].dictionaryKeyProperties.find( + (elem) => elem.queryProperty === aggregationProperty + ) + : undefined; const percCount: { [key: string]: number } = {}; const featuresPerClass: { [key: string]: number } = features.reduce( (obj, val) => { const name = val[aggregationProperty]; - if(distrib && distributionProperty) { - const distribDictionary = val[distributionProperty][distrib.key] as { [key: string]: any }[]; + if (distrib && distributionProperty) { + const distribDictionary = val[distributionProperty][ + distrib.key + ] as { [key: string]: any }[]; distribDictionary.forEach((elem) => { const alias = elem[distrib.alias] as string; - const distribution = elem[distrib.valueProperty] as number * 0.01; - obj[alias] = (obj[alias] ?? 0) + (functionIsCount ? 1 : val[aggregationFunction]) * distribution; + const distribution = + (elem[distrib.valueProperty] as number) * 0.01; + obj[alias] = + (obj[alias] ?? 0) + + (functionIsCount ? 1 : val[aggregationFunction]) * + distribution; }); - } - else if (Array.isArray(name)) { + } else if (Array.isArray(name)) { name.forEach((kk) => { - obj[kk] = (obj[kk] ?? 0) + (functionIsCount ? 1 : val[aggregationFunction]); + obj[kk] = + (obj[kk] ?? 0) + + (functionIsCount ? 1 : val[aggregationFunction]); percCount[kk] = (percCount[kk] ?? 0) + 1 / name.length; }); } else { @@ -175,7 +195,12 @@ const QueryTabPanel: React.FC = observer( return { name: key, value: value, - valuePerc: Math.round(((functionIsCount ? percCount[key] : value) / tot + Number.EPSILON) * 1000) / 10 + valuePerc: + Math.round( + ((functionIsCount ? percCount[key] : value) / tot + + Number.EPSILON) * + 1000 + ) / 10 }; }) ); diff --git a/lib/ReactViews/Workbench/Controls/FilterFeaturesSection.tsx b/lib/ReactViews/Workbench/Controls/FilterFeaturesSection.tsx index 392a4bc1e77..d1ea854a1f2 100644 --- a/lib/ReactViews/Workbench/Controls/FilterFeaturesSection.tsx +++ b/lib/ReactViews/Workbench/Controls/FilterFeaturesSection.tsx @@ -86,7 +86,10 @@ const FilterFeaturesSection: React.FC = observer( {Object.entries(item.queryProperties) .filter(([_, property]) => { - return !(property.sumOnAggregation || property.distributionOnAggregation); + return !( + property.sumOnAggregation || + property.distributionOnAggregation + ); }) .map(([propertyName, property]) => { return ( From 7d250aafc0de859ba747ffa72a431540926cd133 Mon Sep 17 00:00:00 2001 From: glughi Date: Mon, 29 Jan 2024 16:37:54 +0100 Subject: [PATCH 193/215] Minor changes --- lib/ModelMixins/QueryableCatalogItemMixin.ts | 6 +++--- lib/ReactViews/QueryWindow/QueryTabAggregation.tsx | 8 +++++--- lib/ReactViews/QueryWindow/QueryTabTable.tsx | 11 +++-------- .../Workbench/Controls/FilterFeaturesSection.tsx | 6 +++--- 4 files changed, 14 insertions(+), 17 deletions(-) diff --git a/lib/ModelMixins/QueryableCatalogItemMixin.ts b/lib/ModelMixins/QueryableCatalogItemMixin.ts index c3f063533a2..aac6e6913d2 100644 --- a/lib/ModelMixins/QueryableCatalogItemMixin.ts +++ b/lib/ModelMixins/QueryableCatalogItemMixin.ts @@ -135,10 +135,10 @@ function QueryableCatalogItemMixin>(Base: T) { this.queryValues = Object.assign({}, ...initialValues); } - @action - resetQueryValues() { + /*@action + resetQueryValues() { this.queryValues = undefined; - } + }*/ @action cleanQueryValues() { diff --git a/lib/ReactViews/QueryWindow/QueryTabAggregation.tsx b/lib/ReactViews/QueryWindow/QueryTabAggregation.tsx index 9a91a90ff6c..f4187579cf3 100644 --- a/lib/ReactViews/QueryWindow/QueryTabAggregation.tsx +++ b/lib/ReactViews/QueryWindow/QueryTabAggregation.tsx @@ -235,13 +235,15 @@ const QueryTabPanel: React.FC = observer( return measureUnit === "€" ? currencyFormatter.format(row.value) : `${measureUnit} ${row.value.toFixed(decimalPlaces)}`; - } + }, + right: true }, { name: "Percentuale", selector: (row) => row.valuePerc, sortable: true, - format: (row) => `${row.valuePerc}%` + format: (row) => `${row.valuePerc.toFixed(1)}%`, + right: true } ]); } @@ -346,7 +348,7 @@ const QueryTabPanel: React.FC = observer( > Cambia colori - {terria.isFeatureAllowedByProfile("DownloadQueryData") && ( + {terria?.isFeatureAllowedByProfile("DownloadQueryData") && ( - )} + {viewState.terria.isFeatureAllowedByProfile("QueryData") && + !viewState.useSmallScreenInterface && ( + + )} -
    + +
    + )} ); From 1d166598296c035f390412abea5fed89c4c4691f Mon Sep 17 00:00:00 2001 From: glughi Date: Fri, 23 Feb 2024 18:52:37 +0100 Subject: [PATCH 205/215] Refactorize Path --- lib/ModelMixins/MeasurableMixin.ts | 25 +- lib/Models/Terria.ts | 28 +-- lib/ReactViewModels/MouseCoords.ts | 2 +- lib/ReactViewModels/ViewState.ts | 6 +- lib/ReactViews/BottomDock/BottomDock.tsx | 4 +- .../Custom/Chart/ElevationChartPanel.tsx | 20 +- .../Elevation/ElevationDownload.tsx | 4 +- lib/ReactViews/Elevation/ElevationPanel.tsx | 124 ++++++---- .../Map/Navigation/Items/MeasureAreaTool.ts | 103 +------- .../Map/Navigation/Items/MeasureTool.ts | 186 +-------------- lib/ViewModels/PathManager.ts | 223 ++++++++++++++++++ 11 files changed, 340 insertions(+), 385 deletions(-) create mode 100644 lib/ViewModels/PathManager.ts diff --git a/lib/ModelMixins/MeasurableMixin.ts b/lib/ModelMixins/MeasurableMixin.ts index 1cbf57bdafe..5ca707bd839 100644 --- a/lib/ModelMixins/MeasurableMixin.ts +++ b/lib/ModelMixins/MeasurableMixin.ts @@ -4,10 +4,8 @@ import Model from "../Models/Definition/Model"; import StratumOrder from "../Models/Definition/StratumOrder"; import MappableTraits from "../Traits/TraitsClasses/MappableTraits"; import sampleTerrainMostDetailed from "terriajs-cesium/Source/Core/sampleTerrainMostDetailed"; -import EllipsoidGeodesic from "terriajs-cesium/Source/Core/EllipsoidGeodesic"; import Cartographic from "terriajs-cesium/Source/Core/Cartographic"; import TerrainProvider from "terriajs-cesium/Source/Core/TerrainProvider"; -import { PathCustom } from "../Models/Terria"; type MixinModel = Model; @@ -23,27 +21,8 @@ function MeasurableMixin>(Base: T) { abstract computePath(): void; @action - update(newPositions: Cartographic[]) { - //let dist = 0.0; - const stepDistanceMeters: number[] = [0.0]; - - newPositions.forEach((elem, index) => { - elem.height = Math.round(elem.height); - if (index > 0) { - const geodesic = new EllipsoidGeodesic(elem, newPositions[index - 1]); - /*dist += geodesic.surfaceDistance; - stepDistanceMeters.push(dist);*/ - stepDistanceMeters.push(geodesic.surfaceDistance); - } - }); - if (newPositions.length > 1) { - //this.terria.pathPoints = newPositions; - //this.terria.pathDistances = stepDistanceMeters; - this.terria.path = { - stopPoints: newPositions, - stopGeodeticDistances: stepDistanceMeters - }; - } + update(stopPoints: Cartographic[]) { + this.terria.pathManager.sampleFromCartographics(stopPoints); } asPath(positions: Cartographic[]) { diff --git a/lib/Models/Terria.ts b/lib/Models/Terria.ts index cff60cf6321..f9d66447fd4 100644 --- a/lib/Models/Terria.ts +++ b/lib/Models/Terria.ts @@ -111,6 +111,7 @@ import { isViewerMode, setViewerMode } from "./ViewerMode"; import Workbench from "./Workbench"; import SelectableDimensionWorkflow from "./Workflows/SelectableDimensionWorkflow"; import Cartographic from "terriajs-cesium/Source/Core/Cartographic"; +import PathManager from "../ViewModels/PathManager"; // import overrides from "../Overrides/defaults.jsx"; @@ -442,22 +443,6 @@ interface HomeCameraInit { west: number; } -export interface PathCustom { - isClosed: boolean; - hasArea: boolean; - stopPoints: Cartographic[]; - stopGeodeticDistances: number[]; - stopAirDistances?: number[]; - stopGroundDistances?: number[]; - geodeticDistance?: number; - airDistance?: number; - groundDistance?: number; - sampledPoints?: Cartographic[]; - sampledDistances?: number[]; - geodeticArea?: number; - airArea?: number; -} - export interface MessageModal { isVisible: boolean; header?: string; @@ -514,6 +499,9 @@ export default class Terria { ) ); + @observable + readonly pathManager = new PathManager(this); + appName: string = "TerriaJS App"; supportEmail: string = "info@terria.io"; @@ -639,12 +627,6 @@ export default class Terria { */ @observable pickedPositionElevation: string | undefined; - /** - * Gets or sets the data computed sampling a path drawn with the MeasureTool. - * @type {PathCustom} - */ - @observable path: PathCustom | undefined; - /** * Gets or sets the distance, in meters, at which sampling the terrain along the path. * @type {number} @@ -1267,6 +1249,8 @@ export default class Terria { dispose() { this._initSourceLoader.dispose(); + + this.pathManager.dispose(); } async updateFromStartData( diff --git a/lib/ReactViewModels/MouseCoords.ts b/lib/ReactViewModels/MouseCoords.ts index 3f689a93d3e..f05a4d2af4b 100644 --- a/lib/ReactViewModels/MouseCoords.ts +++ b/lib/ReactViewModels/MouseCoords.ts @@ -340,7 +340,7 @@ export default class MouseCoords { const geoidHeight = result[0] || 0.0; this.tileRequestInFlight = undefined; if (Cartographic.equals(position, this.cartographic)) { - if (!terria.configParameters.useElevationMeanSeaLevel) { + if (terria.configParameters.useElevationMeanSeaLevel) { position.height = positionWithHeight.height - geoidHeight; } this.cartographicToFields(position); diff --git a/lib/ReactViewModels/ViewState.ts b/lib/ReactViewModels/ViewState.ts index e93e435a20b..d49333e7877 100644 --- a/lib/ReactViewModels/ViewState.ts +++ b/lib/ReactViewModels/ViewState.ts @@ -8,7 +8,6 @@ import { } from "mobx"; import { Ref } from "react"; import defined from "terriajs-cesium/Source/Core/defined"; -import Cartographic from "terriajs-cesium/Source/Core/Cartographic"; import addedByUser from "../Core/addedByUser"; import { Category, @@ -25,7 +24,7 @@ import ReferenceMixin from "../ModelMixins/ReferenceMixin"; import CommonStrata from "../Models/Definition/CommonStrata"; import { BaseModel } from "../Models/Definition/Model"; import getAncestors from "../Models/getAncestors"; -import Terria, { PathCustom } from "../Models/Terria"; +import Terria from "../Models/Terria"; import { ViewingControl } from "../Models/ViewingControls"; import { SATELLITE_HELP_PROMPT_KEY } from "../ReactViews/HelpScreens/SatelliteHelpPrompt"; import { animationDuration } from "../ReactViews/StandardUserInterface/StandardUserInterface"; @@ -36,6 +35,7 @@ import { } from "./defaultTourPoints"; import DisclaimerHandler from "./DisclaimerHandler"; import SearchState from "./SearchState"; +import { PathCustom } from "../ViewModels/PathManager"; export const DATA_CATALOG_NAME = "data-catalog"; export const USER_DATA_NAME = "my-data"; @@ -497,7 +497,7 @@ export default class ViewState { ); this._elevationPanelIsVisibleSubscription = reaction( - () => this.terria.path, + () => this.terria.pathManager.path, (path: PathCustom | undefined) => { if (defined(path) && path?.stopPoints && path.stopPoints.length > 0) { this.elevationPanelIsVisible = true; diff --git a/lib/ReactViews/BottomDock/BottomDock.tsx b/lib/ReactViews/BottomDock/BottomDock.tsx index 2870609cb11..5b1a500638e 100644 --- a/lib/ReactViews/BottomDock/BottomDock.tsx +++ b/lib/ReactViews/BottomDock/BottomDock.tsx @@ -61,8 +61,8 @@ class BottomDock extends React.Component { {this.props.viewState.elevationChartIsVisible && - !!terria?.path?.stopPoints && - terria.path.stopPoints.length > 0 && ( + !!terria?.pathManager?.path?.stopPoints && + terria.pathManager.path.stopPoints.length > 0 && ( { ?.find((item) => item.key === ChartKeys.GroundChart) ?.points.findIndex((elem) => elem === newPoint); if (!pointIndex) return; - const coords = terria?.path?.sampledPoints?.[pointIndex]; + const coords = terria?.pathManager?.path?.sampledPoints?.[pointIndex]; if (!coords) return; if (!billboardCollection.current) { @@ -124,16 +122,16 @@ const ElevationChartPanel = observer((props: Props) => { }; useEffect(() => { - if (terria?.path) { + if (terria?.pathManager?.path) { const airData = fetchPathDataChart( - terria.path.stopPoints, - terria.path.stopAirDistances, - terria.path.airDistance + terria.pathManager.path.stopPoints, + terria.pathManager.path.stopAirDistances, + terria.pathManager.path.airDistance ); const groundData = fetchPathDataChart( - terria.path.sampledPoints, - terria.path.sampledDistances, - terria.path.groundDistance + terria.pathManager.path.sampledPoints, + terria.pathManager.path.sampledDistances, + terria.pathManager.path.groundDistance ); const items: ChartItem[] = []; @@ -167,7 +165,7 @@ const ElevationChartPanel = observer((props: Props) => { setChartItems(items); } - }, [terria.path, terria.samplingPathStep]); + }, [terria.pathManager.path, terria.samplingPathStep]); return (
    diff --git a/lib/ReactViews/Elevation/ElevationDownload.tsx b/lib/ReactViews/Elevation/ElevationDownload.tsx index 06b96b88c96..08c3a6f37c4 100644 --- a/lib/ReactViews/Elevation/ElevationDownload.tsx +++ b/lib/ReactViews/Elevation/ElevationDownload.tsx @@ -8,12 +8,10 @@ import PolylineGraphics from "terriajs-cesium/Source/DataSources/PolylineGraphic import exportKml from "terriajs-cesium/Source/DataSources/exportKml"; import PointGraphics from "terriajs-cesium/Source/DataSources/PointGraphics"; import DataUri from "../../Core/DataUri"; -//import Dropdown from "../Generic/Dropdown"; import Icon from "../../Styled/Icon"; import Styles from "./elevation-download.scss"; -//import PropTypes from "prop-types"; -import { PathCustom } from "../../Models/Terria"; import { exportKmlResultKml } from "terriajs-cesium"; +import { PathCustom } from "../../ViewModels/PathManager"; const Dropdown = require("../Generic/Dropdown"); diff --git a/lib/ReactViews/Elevation/ElevationPanel.tsx b/lib/ReactViews/Elevation/ElevationPanel.tsx index f3efb66b839..a21d7a848ba 100644 --- a/lib/ReactViews/Elevation/ElevationPanel.tsx +++ b/lib/ReactViews/Elevation/ElevationPanel.tsx @@ -17,8 +17,9 @@ import Text from "../../Styled/Text"; import Box from "../../Styled/Box"; import Input from "../../Styled/Input"; import ViewState from "../../ReactViewModels/ViewState"; -import Terria, { PathCustom } from "../../Models/Terria"; +import Terria from "../../Models/Terria"; import { useTheme } from "styled-components"; +import { PathCustom } from "../../ViewModels/PathManager"; const DragWrapper = require("../DragWrapper"); @@ -67,15 +68,15 @@ const ElevationPanel = observer((props: Props) => { const getBearing = computed(() => { if ( !terria?.cesium?.scene?.globe?.ellipsoid || - !terria?.path?.stopPoints || - terria.path.stopPoints.length === 0 + !terria?.pathManager?.path?.stopPoints || + terria.pathManager.path.stopPoints.length === 0 ) { return ""; } const ellipsoid = terria.cesium.scene.globe.ellipsoid; - const start = terria.path.stopPoints[0]; - const end = terria.path.stopPoints.at(-1); + const start = terria.pathManager.path.stopPoints[0]; + const end = terria.pathManager.path.stopPoints.at(-1); const geo = new EllipsoidGeodesic(start, end, ellipsoid); const bearing = (CesiumMath.toDegrees(geo.startHeading) + 360) % 360; @@ -83,23 +84,28 @@ const ElevationPanel = observer((props: Props) => { }); const getHeightDifference = computed(() => { - if (!terria?.path?.stopPoints || terria.path.stopPoints.length < 2) { + if ( + !terria?.pathManager?.path?.stopPoints || + terria.pathManager.path.stopPoints.length < 2 + ) { return ""; } - const start = terria.path.stopPoints[0]; - const end = terria.path.stopPoints.at(-1) as Cartographic; + const start = terria.pathManager.path.stopPoints[0]; + const end = terria.pathManager.path.stopPoints.at(-1) as Cartographic; const difference = end.height - start.height; return `${difference.toFixed(0)} m`; }); const heights = computed(() => { - return terria?.path?.stopPoints?.map((elem) => elem.height) || []; + return ( + terria?.pathManager?.path?.stopPoints?.map((elem) => elem.height) || [] + ); }); const rangeSamplingPathStep = computed(() => { - if (!terria?.path?.geodeticDistance) { + if (!terria?.pathManager?.path?.geodeticDistance) { return [0, 0]; } const minExponent = 0; @@ -109,7 +115,8 @@ const ElevationPanel = observer((props: Props) => { maxExponent, Math.max( minExponent, - terria.path.geodeticDistance.toFixed(0).length - thousandthExponent + terria.pathManager.path.geodeticDistance.toFixed(0).length - + thousandthExponent ) ); const minSamplingPathStep = 10 ** exponent; @@ -237,7 +244,7 @@ const ElevationPanel = observer((props: Props) => { return (
    - {!terria?.path?.hasArea && ( + {!terria?.pathManager?.path?.hasArea && ( - {!terria?.path?.hasArea && renderSamplingStep()} + {!terria?.pathManager?.path?.hasArea && renderSamplingStep()}
    - {!terria?.path?.hasArea ? renderPathSummary() : renderAreaSummary()} + {!terria?.pathManager?.path?.hasArea + ? renderPathSummary() + : renderAreaSummary()}
    - {terria.path?.sampledDistances && renderStepDetails()} - {!!terria?.cesium?.scene?.globe?.ellipsoid && terria.path && ( - - )} + {terria.pathManager.path?.sampledDistances && renderStepDetails()} + {!!terria?.cesium?.scene?.globe?.ellipsoid && + terria.pathManager.path && ( + + )}
    ); }; @@ -335,9 +345,17 @@ const ElevationPanel = observer((props: Props) => { - {prettifyNumber(terria.path?.geodeticDistance ?? 0)} - {prettifyNumber(terria.path?.airDistance ?? 0)} - {prettifyNumber(terria.path?.groundDistance ?? 0)} + + {prettifyNumber( + terria.pathManager.path?.geodeticDistance ?? 0 + )} + + + {prettifyNumber(terria.pathManager.path?.airDistance ?? 0)} + + + {prettifyNumber(terria.pathManager.path?.groundDistance ?? 0)} + @@ -380,10 +398,23 @@ const ElevationPanel = observer((props: Props) => { - {prettifyNumber(terria.path?.geodeticDistance ?? 0)} - {prettifyNumber(terria.path?.airDistance ?? 0)} - {prettifyNumber(terria.path?.geodeticArea ?? 0, true)} - {prettifyNumber(terria.path?.airArea ?? 0, true)} + + {prettifyNumber( + terria.pathManager.path?.geodeticDistance ?? 0 + )} + + + {prettifyNumber(terria.pathManager.path?.airDistance ?? 0)} + + + {prettifyNumber( + terria.pathManager.path?.geodeticArea ?? 0, + true + )} + + + {prettifyNumber(terria.pathManager.path?.airArea ?? 0, true)} + @@ -427,9 +458,9 @@ const ElevationPanel = observer((props: Props) => { - {terria?.path?.stopPoints && - terria.path.stopPoints.length > 0 && - terria.path.stopPoints.map((point, idx, array) => { + {terria?.pathManager?.path?.stopPoints && + terria.pathManager.path.stopPoints.length > 0 && + terria.pathManager.path.stopPoints.map((point, idx, array) => { return ( {idx + 1} @@ -442,27 +473,40 @@ const ElevationPanel = observer((props: Props) => { : ""} - {idx > 0 && terria?.path + {idx > 0 && + terria?.pathManager?.path?.stopGeodeticDistances && + terria.pathManager.path.stopGeodeticDistances.length > + idx ? prettifyNumber( - terria.path.stopGeodeticDistances[idx] + terria.pathManager.path.stopGeodeticDistances[idx] ) : ""} - {idx > 0 && terria?.path?.stopAirDistances - ? prettifyNumber(terria.path.stopAirDistances[idx]) + {idx > 0 && + terria?.pathManager?.path?.stopAirDistances && + terria.pathManager.path.stopAirDistances.length > idx + ? prettifyNumber( + terria.pathManager.path.stopAirDistances[idx] + ) : ""} - {idx > 0 && terria?.path?.stopGroundDistances - ? prettifyNumber(terria.path.stopGroundDistances[idx]) + {idx > 0 && + terria?.pathManager?.path?.stopGroundDistances && + terria.pathManager.path.stopGroundDistances.length > idx + ? prettifyNumber( + terria.pathManager.path.stopGroundDistances[idx] + ) : ""} - {idx > 0 && terria?.path?.stopAirDistances + {idx > 0 && + terria?.pathManager?.path?.stopAirDistances && + terria.pathManager.path.stopAirDistances.length > idx ? Math.abs( (100 * (point.height - array[idx - 1].height)) / - terria.path.stopAirDistances[idx] + terria.pathManager.path.stopAirDistances[idx] ).toFixed(1) : ""} diff --git a/lib/ReactViews/Map/Navigation/Items/MeasureAreaTool.ts b/lib/ReactViews/Map/Navigation/Items/MeasureAreaTool.ts index 7ba07ff21c2..c87acbb8f7a 100644 --- a/lib/ReactViews/Map/Navigation/Items/MeasureAreaTool.ts +++ b/lib/ReactViews/Map/Navigation/Items/MeasureAreaTool.ts @@ -91,104 +91,6 @@ export default class MeasureAreaTool extends MapNavigationItemController { return numberStr; } - // sample the entire path (polyline) every "samplingPathStep" meters - sampleEntirePath(pointEntities: CustomDataSource) { - const terrainProvider = this.terria.cesium?.scene.terrainProvider; - const ellipsoid = this.terria.cesium?.scene.globe.ellipsoid; - - if (!terrainProvider || !ellipsoid) { - return; - } - - // extract valid points from CustomDataSource - const cartesianEntities = pointEntities.entities.values.filter( - (elem) => elem?.position !== undefined && elem?.position !== null - ); - // if the path is a closed loop add the first point also as last point - if ( - this.userDrawing.closeLoop && - pointEntities.entities.values.length > 0 - ) { - cartesianEntities.push(pointEntities.entities.values[0]); - } - - const cartesianPostions = cartesianEntities.map((elem) => - elem.position!.getValue(this.terria.timelineClock.currentTime) - ); - - const stopAirDistances: number[] = [0]; - for (let i = 0; i < cartesianPostions.length - 1; ++i) { - stopAirDistances.push( - Cartesian3.distance(cartesianPostions[i + 1], cartesianPostions[i]) - ); - } - - // convert from cartesian to cartographic becouse "sampleTerrainMostDetailed" work with cartographic - const cartoPositions = cartesianPostions.map((elem) => { - return Cartographic.fromCartesian(elem, Ellipsoid.WGS84); - }); - - // index of the original stops in the new array of sampling points - const originalStopsIndex: number[] = [0]; - // geodetic distance between two stops - const stopGeodeticDistances: number[] = [0]; - - // compute sampling points every "samplingPathStep" meters - const interpolatedCartographics = [cartoPositions[0]]; - for (let i = 0; i < cartoPositions.length - 1; ++i) { - const geodesic = new EllipsoidGeodesic( - cartoPositions[i], - cartoPositions[i + 1], - ellipsoid - ); - const segmentDistance = geodesic.surfaceDistance; - stopGeodeticDistances.push(segmentDistance); - let y = 0; - while ((y += this.terria.samplingPathStep) < segmentDistance) { - interpolatedCartographics.push( - geodesic.interpolateUsingSurfaceDistance(y) - ); - } - // original points have to be used - originalStopsIndex.push(interpolatedCartographics.length); - interpolatedCartographics.push(cartoPositions[i + 1]); - } - - // update state of Terria - this.updatePath( - cartoPositions, - stopGeodeticDistances, - stopAirDistances, - this.totalAreaMetresSquared, - this.totalFlatAreaMetresSquared - ); - } - - // action to update state of the path in Terria - @action - updatePath( - stopPoints: Cartographic[], - stopGeodeticDistances: number[], - stopAirDistances: number[], - geodeticArea: number, - airArea: number - ) { - this.terria.path = { - isClosed: true, - hasArea: true, - stopPoints: stopPoints, - stopGeodeticDistances: stopGeodeticDistances, - stopAirDistances: stopAirDistances, - geodeticDistance: stopGeodeticDistances.reduce( - (sum: number, current: number) => sum + current, - 0 - ), - airDistance: stopAirDistances.reduce((sum, current) => sum + current, 0), - geodeticArea: geodeticArea, - airArea: airArea - }; - } - @action updateDistance(pointEntities: CustomDataSource) { this.totalDistanceMetres = 0; @@ -339,7 +241,10 @@ export default class MeasureAreaTool extends MapNavigationItemController { this.updateArea(pointEntities); // compute sampled path - this.sampleEntirePath(pointEntities); + this.terria.pathManager.sampleFromCustomDataSource( + pointEntities, + this.userDrawing.closeLoop + ); } onPointMoved(pointEntities: CustomDataSource) { diff --git a/lib/ReactViews/Map/Navigation/Items/MeasureTool.ts b/lib/ReactViews/Map/Navigation/Items/MeasureTool.ts index 7291f929c7b..65ad566e665 100644 --- a/lib/ReactViews/Map/Navigation/Items/MeasureTool.ts +++ b/lib/ReactViews/Map/Navigation/Items/MeasureTool.ts @@ -1,6 +1,6 @@ "use strict"; import i18next from "i18next"; -import { action, reaction, IReactionDisposer } from "mobx"; +import { action } from "mobx"; import React from "react"; import Cartesian3 from "terriajs-cesium/Source/Core/Cartesian3"; import Ellipsoid from "terriajs-cesium/Source/Core/Ellipsoid"; @@ -16,9 +16,6 @@ import { GLYPHS } from "../../../../Styled/Icon"; import isDefined from "../../../../Core/isDefined"; import MapNavigationItemController from "../../../../ViewModels/MapNavigation/MapNavigationItemController"; import EllipsoidTangentPlane from "terriajs-cesium/Source/Core/EllipsoidTangentPlane"; -import Cartographic from "terriajs-cesium/Source/Core/Cartographic"; -import sampleTerrainMostDetailed from "terriajs-cesium/Source/Core/sampleTerrainMostDetailed"; -import EarthGravityModel1996 from "../../../../Map/Vector/EarthGravityModel1996"; const PolygonGeometryLibrary = require("terriajs-cesium/Source/Core/PolygonGeometryLibrary").default; @@ -37,14 +34,10 @@ export default class MeasureTool extends MapNavigationItemController { private totalAreaMetresSquared: number = 0; private userDrawing: UserDrawing; - private disposeSamplingPathStep?: IReactionDisposer; - onClose: () => void; onOpen: () => void; itemRef: React.RefObject = React.createRef(); - readonly geoidModel: EarthGravityModel1996; - constructor(props: MeasureToolOptions) { super(); this.terria = props.terria; @@ -60,18 +53,6 @@ export default class MeasureTool extends MapNavigationItemController { }); this.onClose = props.onClose; this.onOpen = props.onOpen; - - this.geoidModel = new EarthGravityModel1996( - require("file-loader!../../../../../wwwroot/data/WW15MGH.DAC") - ); - - // sampleEntirePath is the reaction to samplingPathStep changes - this.disposeSamplingPathStep = reaction( - () => this.terria.samplingPathStep, - () => { - this.sampleEntirePath(this.userDrawing.pointEntities); - } - ); } get glyph(): any { @@ -109,162 +90,6 @@ export default class MeasureTool extends MapNavigationItemController { return numberStr; } - // sample the entire path (polyline) every "samplingPathStep" meters - sampleEntirePath(pointEntities: CustomDataSource) { - const terrainProvider = this.terria.cesium?.scene.terrainProvider; - const ellipsoid = this.terria.cesium?.scene.globe.ellipsoid; - - if (!terrainProvider || !ellipsoid) { - return; - } - - // extract valid points from CustomDataSource - const cartesianEntities = pointEntities.entities.values.filter( - (elem) => elem?.position !== undefined && elem?.position !== null - ); - // if the path is a closed loop add the first point also as last point - if ( - this.userDrawing.closeLoop && - pointEntities.entities.values.length > 0 - ) { - cartesianEntities.push(pointEntities.entities.values[0]); - } - // convert from cartesian to cartographic because "sampleTerrainMostDetailed" work with cartographic - const cartoPositions = cartesianEntities.map((elem) => { - return Cartographic.fromCartesian( - elem.position!.getValue(this.terria.timelineClock.currentTime), - ellipsoid - ); - }); - - // index of the original stops in the new array of sampling points - const originalStopsIndex: number[] = [0]; - // geodetic distance between two stops - const stopGeodeticDistances: number[] = [0]; - - // compute sampling points every "samplingPathStep" meters - const interpolatedCartographics = [cartoPositions[0]]; - for (let i = 0; i < cartoPositions.length - 1; ++i) { - const geodesic = new EllipsoidGeodesic( - cartoPositions[i], - cartoPositions[i + 1], - ellipsoid - ); - const segmentDistance = geodesic.surfaceDistance; - stopGeodeticDistances.push(segmentDistance); - let y = 0; - while ((y += this.terria.samplingPathStep) < segmentDistance) { - interpolatedCartographics.push( - geodesic.interpolateUsingSurfaceDistance(y) - ); - } - // original points have to be used - originalStopsIndex.push(interpolatedCartographics.length); - interpolatedCartographics.push(cartoPositions[i + 1]); - } - - // sample points on terrain - const terrainPromises = [ - sampleTerrainMostDetailed(terrainProvider, interpolatedCartographics) - ]; - if (!this.terria.configParameters.useElevationMeanSeaLevel) { - terrainPromises.push( - this.geoidModel.getHeights(interpolatedCartographics) - ); - } - Promise.all(terrainPromises).then((sampledCartographics) => { - if (sampledCartographics.length === 2) { - const geoidHeights = sampledCartographics[1]; - sampledCartographics[0].forEach( - (elem, i) => (elem.height -= geoidHeights[i].height) - ); - } - - const sampledCartesians = ellipsoid.cartographicArrayToCartesianArray( - sampledCartographics[0] - ); - - // compute distances - const stepDistances: number[] = []; - for (let i = 0; i < sampledCartesians.length; ++i) { - const dist: number = - i > 0 - ? Cartesian3.distance( - sampledCartesians[i - 1], - sampledCartesians[i] - ) - : 0; - stepDistances.push(dist); - } - - const stopAirDistances: number[] = [0]; - const distances3d: number[] = [0]; - for (let i = 0; i < originalStopsIndex.length - 1; ++i) { - cartoPositions[i].height = - sampledCartographics[0][originalStopsIndex[i]].height; - - stopAirDistances.push( - Cartesian3.distance( - sampledCartesians[originalStopsIndex[i + 1]], - sampledCartesians[originalStopsIndex[i]] - ) - ); - distances3d.push( - stepDistances - .filter( - (_, index) => - index > originalStopsIndex[i] && - index <= originalStopsIndex[i + 1] - ) - .reduce((sum: number, current: number) => sum + current, 0) - ); - } - - // update state of Terria - this.updatePath( - cartoPositions, - stopGeodeticDistances, - stopAirDistances, - distances3d, - sampledCartographics[0], - stepDistances, - this.userDrawing.closeLoop - ); - }); - } - - // action to update state of the path in Terria - @action - updatePath( - stopPoints: Cartographic[], - stopGeodeticDistances: number[], - stopAirDistances: number[], - stopGroundDistances: number[], - sampledPoints: Cartographic[], - sampledDistances: number[], - isClosed: boolean - ) { - this.terria.path = { - isClosed: isClosed, - hasArea: false, - stopPoints: stopPoints, - stopGeodeticDistances: stopGeodeticDistances, - stopAirDistances: stopAirDistances, - stopGroundDistances: stopGroundDistances, - geodeticDistance: stopGeodeticDistances.reduce( - (sum: number, current: number) => sum + current, - 0 - ), - airDistance: stopAirDistances.reduce((sum, current) => sum + current, 0), - groundDistance: stopGroundDistances.reduce( - (sum, current) => sum + current, - 0 - ), - sampledPoints: sampledPoints, - sampledDistances: sampledDistances - }; - } - @action updateDistance(pointEntities: CustomDataSource) { this.totalDistanceMetres = 0; @@ -401,7 +226,10 @@ export default class MeasureTool extends MapNavigationItemController { //this.updateArea(pointEntities); // compute sampled path - this.sampleEntirePath(pointEntities); + this.terria.pathManager.sampleFromCustomDataSource( + pointEntities, + this.userDrawing.closeLoop + ); } onPointMoved(pointEntities: CustomDataSource) { @@ -427,10 +255,6 @@ export default class MeasureTool extends MapNavigationItemController { this.onClose(); //this.userDrawing.endDrawing(); //super.deactivate(); - - if (isDefined(this.disposeSamplingPathStep)) { - this.disposeSamplingPathStep(); - } } /** diff --git a/lib/ViewModels/PathManager.ts b/lib/ViewModels/PathManager.ts new file mode 100644 index 00000000000..1c8051a8ce8 --- /dev/null +++ b/lib/ViewModels/PathManager.ts @@ -0,0 +1,223 @@ +import Terria from "../Models/Terria"; +import { reaction, IReactionDisposer, action, observable } from "mobx"; +import Cartographic from "terriajs-cesium/Source/Core/Cartographic"; +import Cartesian3 from "terriajs-cesium/Source/Core/Cartesian3"; +import EllipsoidGeodesic from "terriajs-cesium/Source/Core/EllipsoidGeodesic"; +import sampleTerrainMostDetailed from "terriajs-cesium/Source/Core/sampleTerrainMostDetailed"; +import CustomDataSource from "terriajs-cesium/Source/DataSources/CustomDataSource"; +import EarthGravityModel1996 from "../Map/Vector/EarthGravityModel1996"; + +export interface PathCustom { + isClosed: boolean; + hasArea: boolean; + stopPoints: Cartographic[]; + stopGeodeticDistances: number[]; + stopAirDistances?: number[]; + stopGroundDistances?: number[]; + geodeticDistance?: number; + airDistance?: number; + groundDistance?: number; + sampledPoints?: Cartographic[]; + sampledDistances?: number[]; + geodeticArea?: number; + airArea?: number; +} + +export default class PathManager { + readonly terria: Terria; + + readonly geoidModel: EarthGravityModel1996; + + private disposeSamplingPathStep?: IReactionDisposer; + + @observable path: PathCustom | undefined; + + constructor(terria: Terria) { + this.terria = terria; + + this.geoidModel = new EarthGravityModel1996( + require("file-loader!../../wwwroot/data/WW15MGH.DAC") + ); + + this.disposeSamplingPathStep = reaction( + () => this.terria.samplingPathStep, + () => { + this.sampleFromCartographics(this.path?.stopPoints ?? []); + } + ); + } + + dispose() { + if (this.disposeSamplingPathStep) { + this.disposeSamplingPathStep(); + } + } + + sampleFromCustomDataSource( + pointEntities: CustomDataSource, + closeLoop: boolean = false + ) { + const ellipsoid = this.terria.cesium?.scene.globe.ellipsoid; + if (!ellipsoid) { + return; + } + + // extract valid points from CustomDataSource + const cartesianEntities = pointEntities.entities.values.filter( + (elem) => elem?.position !== undefined && elem?.position !== null + ); + // if the path is a closed loop add the first point also as last point + if (closeLoop && pointEntities.entities.values.length > 0) { + cartesianEntities.push(pointEntities.entities.values[0]); + } + // convert from cartesian to cartographic because "sampleTerrainMostDetailed" work with cartographic + const cartoPositions = cartesianEntities.map((elem) => { + return Cartographic.fromCartesian( + elem.position!.getValue(this.terria.timelineClock.currentTime), + ellipsoid + ); + }); + + this.sampleFromCartographics(cartoPositions, closeLoop); + } + + // sample the entire path (polyline) every "samplingPathStep" meters + sampleFromCartographics( + cartoPositions: Cartographic[], + closeLoop: boolean = false + ) { + const terrainProvider = this.terria.cesium?.scene.terrainProvider; + const ellipsoid = this.terria.cesium?.scene.globe.ellipsoid; + + if (!terrainProvider || !ellipsoid) { + return; + } + + // index of the original stops in the new array of sampling points + const originalStopsIndex: number[] = [0]; + // geodetic distance between two stops + const stopGeodeticDistances: number[] = [0]; + + // compute sampling points every "samplingPathStep" meters + const interpolatedCartographics = [cartoPositions[0]]; + for (let i = 0; i < cartoPositions.length - 1; ++i) { + const geodesic = new EllipsoidGeodesic( + cartoPositions[i], + cartoPositions[i + 1], + ellipsoid + ); + const segmentDistance = geodesic.surfaceDistance; + stopGeodeticDistances.push(segmentDistance); + let y = 0; + while ((y += this.terria.samplingPathStep) < segmentDistance) { + interpolatedCartographics.push( + geodesic.interpolateUsingSurfaceDistance(y) + ); + } + // original points have to be used + originalStopsIndex.push(interpolatedCartographics.length); + interpolatedCartographics.push(cartoPositions[i + 1]); + } + + // sample points on terrain + const terrainPromises = [ + sampleTerrainMostDetailed(terrainProvider, interpolatedCartographics) + ]; + if (this.terria.configParameters.useElevationMeanSeaLevel) { + terrainPromises.push( + this.geoidModel.getHeights(interpolatedCartographics) + ); + } + Promise.all(terrainPromises).then((sampledCartographics) => { + if (sampledCartographics.length === 2) { + const geoidHeights = sampledCartographics[1]; + sampledCartographics[0].forEach( + (elem, i) => (elem.height -= geoidHeights[i].height) + ); + } + + const sampledCartesians = ellipsoid.cartographicArrayToCartesianArray( + sampledCartographics[0] + ); + + // compute distances + const stepDistances: number[] = []; + for (let i = 0; i < sampledCartesians.length; ++i) { + const dist: number = + i > 0 + ? Cartesian3.distance( + sampledCartesians[i - 1], + sampledCartesians[i] + ) + : 0; + stepDistances.push(dist); + } + + const stopAirDistances: number[] = [0]; + const distances3d: number[] = [0]; + for (let i = 0; i < originalStopsIndex.length - 1; ++i) { + cartoPositions[i].height = + sampledCartographics[0][originalStopsIndex[i]].height; + + stopAirDistances.push( + Cartesian3.distance( + sampledCartesians[originalStopsIndex[i + 1]], + sampledCartesians[originalStopsIndex[i]] + ) + ); + distances3d.push( + stepDistances + .filter( + (_, index) => + index > originalStopsIndex[i] && + index <= originalStopsIndex[i + 1] + ) + .reduce((sum: number, current: number) => sum + current, 0) + ); + } + + // update state of Terria + this.updatePath( + cartoPositions, + stopGeodeticDistances, + stopAirDistances, + distances3d, + sampledCartographics[0], + stepDistances, + closeLoop + ); + }); + } + + @action + updatePath( + stopPoints: Cartographic[], + stopGeodeticDistances: number[], + stopAirDistances: number[], + stopGroundDistances: number[], + sampledPoints: Cartographic[], + sampledDistances: number[], + isClosed: boolean + ) { + //this.terria.path = { + this.path = { + isClosed: isClosed, + hasArea: false, + stopPoints: stopPoints, + stopGeodeticDistances: stopGeodeticDistances, + stopAirDistances: stopAirDistances, + stopGroundDistances: stopGroundDistances, + geodeticDistance: stopGeodeticDistances.reduce( + (sum: number, current: number) => sum + current, + 0 + ), + airDistance: stopAirDistances.reduce((sum, current) => sum + current, 0), + groundDistance: stopGroundDistances.reduce( + (sum, current) => sum + current, + 0 + ), + sampledPoints: sampledPoints, + sampledDistances: sampledDistances + }; + } +} From be9b5429a0edd52726fd99ccc8a2a56d74555127 Mon Sep 17 00:00:00 2001 From: glughi Date: Wed, 28 Feb 2024 17:13:33 +0100 Subject: [PATCH 206/215] Minor improvements to the RelatedMaps component --- lib/ReactViews/RelatedMaps/RelatedMaps.tsx | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) diff --git a/lib/ReactViews/RelatedMaps/RelatedMaps.tsx b/lib/ReactViews/RelatedMaps/RelatedMaps.tsx index 8464d3490e9..15d4a15bdb5 100644 --- a/lib/ReactViews/RelatedMaps/RelatedMaps.tsx +++ b/lib/ReactViews/RelatedMaps/RelatedMaps.tsx @@ -41,15 +41,15 @@ class RelatedMaps extends React.Component { return ( -

    Related Maps

    +

    Collegamenti

    -

    Clicking on a map below will open it in a separate window or tab.

    + {/*

    Clicking on a map below will open it in a separate window or tab.

    */} {this.props.relatedMaps.map((map, i) => ( @@ -59,8 +59,8 @@ class RelatedMaps extends React.Component { style={{ marginRight: "10px", marginBottom: "10px", - width: "200px", - height: "150px" + width: "200px" + //height: "150px" }} src={map.imageUrl} alt={map.title} @@ -69,11 +69,7 @@ class RelatedMaps extends React.Component { -
    + {map.title} From 46e0c68d01b13ce743f4df48a7dabe0bc883ad73 Mon Sep 17 00:00:00 2001 From: glughi Date: Mon, 4 Mar 2024 18:31:46 +0100 Subject: [PATCH 207/215] If "feedbackUrl" is a mailto link, close the FeedbackForm automatically --- lib/ReactViews/Feedback/FeedbackForm.tsx | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/ReactViews/Feedback/FeedbackForm.tsx b/lib/ReactViews/Feedback/FeedbackForm.tsx index f70cd4ef94e..2a005a9e339 100644 --- a/lib/ReactViews/Feedback/FeedbackForm.tsx +++ b/lib/ReactViews/Feedback/FeedbackForm.tsx @@ -173,6 +173,7 @@ class FeedbackForm extends React.Component { `${viewState.terria.configParameters?.feedbackUrl}?subject=${viewState.terria.configParameters?.feedbackPreamble}`, "_blank" ); + this.onDismiss(); return null; } From 8fad8756ec38199306687f9604bf19c29df5ea1c Mon Sep 17 00:00:00 2001 From: glughi Date: Mon, 11 Mar 2024 17:57:42 +0100 Subject: [PATCH 208/215] Improve italian translation --- wwwroot/languages/it/translation.json | 103 ++++++++++++++++++++++++-- 1 file changed, 98 insertions(+), 5 deletions(-) diff --git a/wwwroot/languages/it/translation.json b/wwwroot/languages/it/translation.json index a226df02e84..0108bc7b2e7 100644 --- a/wwwroot/languages/it/translation.json +++ b/wwwroot/languages/it/translation.json @@ -47,6 +47,12 @@ "resetAlignmentMessage": "Ripristino dell'allineamento della bussola. Se l'allineamento non corrisponde al mondo reale, prova a muovere il dispositivo con un movimento a 8 per ricalibrarlo. Questo può essere fatto in qualsiasi momento.

    Evitare luoghi con campi magnetici o oggetti metallici, poiché questi possono disorientare la bussola del dispositivo.", "experimentalFeatureMessage": "La modalità Realtà Aumentata è attualmente in beta. Questa modalità è progettata solo per l'uso sui più recenti dispositivi mobili di fascia alta.

    ATTENZIONE: Questa modalità può consumare molti dati, fai attenzione ai costi di utilizzo dei dati da parte del tuo provider di rete.

    La precisione di questa modalità dipende dalla precisione della bussola interna del tuo dispositivo mobile." }, + "browsers": { + "chrome": "Google Chrome", + "edge": "Microsoft Edge", + "firefox": "Mozilla Firefox", + "safari": "Apple Safari" + }, "measure": { "measureDistance": "Misura la distanza fra punti", "measureTool": "Misura di linee e percorsi", @@ -168,7 +174,10 @@ "convertNotificationMessage": "Questo link di condivisione è basato su una vecchia versione di TerriaJS - il software che alimenta questa mappa web. Anche se sono stati fatti i migliori sforzi per preservare il link, potresti incontrare problemi con la visualizzazione dei dati. \n\nSe sei l'utente che ha condiviso il link, clicca su OK per far scomparire il messaggio di avviso e continuare ad accedere ai dati.", "convertErrorTitle": "Impossibile aggiornare il link di condivisione alla versione 8", "convertNotificationFeedback": "Per domande o feedback, clicca qui.", - "convertNotificationHelp": "Se hai creato il link di condivisione, controlla il menu Aiuto per vedere i suggerimenti su come aggiornare il link di condivisione." + "convertNotificationHelp": "Se hai creato il link di condivisione, controlla il menu Aiuto per vedere i suggerimenti su come aggiornare il link di condivisione.", + "downloadMap": "Download (png)", + "embedDescription": "Per includere questa mappa in una pagina HTML copiate questo codice:", + "getShareSaveHelpMessage": "How to Bookmark Sharelinks" }, "zoomCotrol": { "zoomReset": "Ripristina lo zoom", @@ -237,6 +246,7 @@ "devError": "È necessaria un'istanza di Terria.", "otherEntities": "Linee e poligoni", "messageHeader": "Disegnare sulla mappa", + "clickToRedrawRectangle": "Click another point to redraw the rectangle", "clickToAddAnotherPoint": "Clicca per aggiungere un altro punto, clicca su un punto esistente per rimuoverlo, trascina un punto per spostarlo.", "clickToAddFirstPoint": "Clicca per aggiungere il primo punto." }, @@ -906,6 +916,19 @@ "terria-reference": { "failedToLoadTarget": "Impossibile caricare un membro dal catalogo esterno" }, + "clippingBox": { + "clipDirection": { + "name": "Direzione del taglio", + "options": { + "inside": "Taglia l'interno del box", + "outside": "Taglia l'esterno del box" + } + }, + "clipModel": "Taglia il modello", + "groupName": "Box di taglio", + "keepBoxAboveGround": "Solo sopra il terreno", + "showClippingBox": "Mostra il box di taglio" + }, "commonModelErrors": { "3dTypeIn2dMode": "**Nota:** Questo set di dati non può essere visualizzato nel visualizzatore 2D. Passa a una delle modalità di mappa 3D." } @@ -927,6 +950,7 @@ "extraCreditLinks": { "disclaimer": "Scarico di responsabilità", "dataAttribution": "Attribuzione dei dati", + "dataProvider": "Dati forniti da:", "basemap": "Attribuzione dei dati" }, "drawExtentHelper": { @@ -946,6 +970,8 @@ "devError": "cesium è richiesto.", "unusalTilingScheme": "Questo set di dati non può essere visualizzato sulla mappa 2D perché utilizza uno schema di tile insolito che non è supportato.", "notWebMercatorTilingScheme": "Questo set di dati non può essere visualizzato sulla mappa 2D perché non supporta la proiezione Web Mercator (EPSG:3857).", + "stoppedRenderingMessage": "L'errore potrebbe essere stato causato dall'aggiunta di un layer. Prova a rimuoverlo, se il problema rimane prova a ricaricare l'applicazione {{appName}}.", + "stoppedRenderingTitle": "Errore nel rendering della mappa Cesium", "failedToObtain": "Impossibile ottenere la tile dell'immagine X: {{x}} Y: {{y}} Livello: {{level}}." }, "imageryProviderHooks": { @@ -980,6 +1006,7 @@ "dataType": { "json": "JSON", "gpx": "GPX", + "ifc": "IFC", "csv": "CSV", "opendatasoft-group": "Portale Opendatasoft", "shp": "Shapefile (zip)", @@ -988,6 +1015,7 @@ "sdmx-group": "SDMX-JSON", "gltf": "GLTF", "carto": "Carto", + "carto-v3": "Carto V3", "czml": "CZML", "geoRss": "GeoRSS", "other": "Altro (usare il servizio di conversione)", @@ -995,12 +1023,17 @@ "kml": "KML o KMZ", "esri-group": "Esri ArcGIS Server", "geojson": "GeoJSON", + "socrata-group": "Socrata Server", "esri-featureServer": "Esri ArcGIS FeatureServer (singolo livello)", "esri-mapServer": "Esri ArcGIS MapServer (singolo livello)", "wps-getCapabilities": "Server Web Processing Service (WPS)", "wfs-group": "Server Web Feature Service (WFS)", "wms-group": "Server Web Map Service (WMS)", - "wmts-group": "Server Web Map Tile Service (WMTS)" + "wmts-group": "Server Web Map Tile Service (WMTS)", + "assimp-local": "3D file converter (zip) (experimental)", + "assimp-local-description": "**Warning:** 3D file converter is experimental. \nSee list of [supported formats](https://github.com/assimp/assimp/blob/master/doc/Fileformats.md). \nFiles must be zipped.", + "assimp-remote": "3D file converter (experimental)", + "assimp-remote-description": "**Warning:** 3D file converter is experimental. \nSee list of [supported formats](https://github.com/assimp/assimp/blob/master/doc/Fileformats.md). \nZip files are also supported" }, "printWindow": { "errorTitle": "Errore nella stampa", @@ -1019,6 +1052,12 @@ "networkRequestMessage": "I dati potrebbero non essere disponibili o visualizzati correttamente a causa di un'interruzione del servizio del custode dei dati. Prova a ricaricare la mappa, ad accedere ai dati in un secondo momento o a selezionare un altro set di dati. ", "networkRequestMessageDetailed": "Questo può indicare una delle seguenti cose:\n\n* L'hostname del server non può essere risolto\n* Il server non ha risposto alla richiesta - o è temporaneamente non disponibile\n* Il server ha negato l'accesso [Cross-Origin Resource Sharing (CORS)](https://docs.terria.io/guide/connecting-to-data/cross-origin-resource-sharing/) a questo URL\n* C'è un problema con la tua connessione internet\n\nSe hai inserito il link manualmente, verifica che il link sia corretto." }, + "unverifiedExternalLink": { + "confirmText": "Apri in una nuova tab", + "denyText": "Cancella", + "message": "Stai per aprire: \n\n`{{url}}` \n\nQuesto link non è verificato e potrebbe non essere sicuro.", + "title": "Attenzione: link non verificato" + }, "chartData": "Dati del grafico", "userAddedData": "Dati aggiunti dall'utente", "readText": { @@ -1133,7 +1172,10 @@ "toggleSplitterToolTitle": "Confronta", "title": "Trascina a sinistra o a destra per regolare le viste", "toggleSplitterToolDisabled": "Si prega di disabilitare le altre funzionalità di confronto fianco a fianco per abilitare il confronto standard", - "toggleSplitterTool": "Abilita il confronto affiancato tra due diversi set di dati" + "toggleSplitterTool": "Abilita il confronto affiancato tra due diversi set di dati", + "duplicateModelErrorMessage": "Errore nel confronto del layer `\"{{name}}\"`. Questo layer potrebbe non supportare la funzionalità di \"confronto\"", + "errorTitle": "Errore nella comparazione dei layer.", + "modelNotFoundErrorMessage": "Model ID `\"{{id}}\"` could not be found" }, "deltaTool": { "cancelBtn": "Annulla", @@ -1175,7 +1217,8 @@ "sectionLabel": "Grafici", "closePanel": "Chiudi pannello", "loading": "Caricamento dei dati del grafico...", - "noData": "Non sono stati trovati dati cartografici." + "noData": "Non sono stati trovati dati cartografici.", + "showItemInChart": "Mostra il grafico di {{value}}" }, "catalogItem": { "add": "Aggiungi", @@ -1210,6 +1253,9 @@ "addMoreText": "Aggiungi una condizione" } }, + "printView": { + "loading": "Creazione della vista di stampa in corso…" + }, "satellite": { "newLocation": "Nuova posizione", "zoomTo": "Zoom a", @@ -1269,6 +1315,7 @@ "previewItem": "Informazioni", "zoomTo": "Zoom ideale", "splitItemTitle": "Duplicare e mostrare lo splitter", + "splitScreenMode": "Confronta", "colorScaleRangeTitle": "Gamma di scala di colore non valida", "addItemErrorMessage": "Si è verificato un errore durante il caricamento dell'elemento del catalogo.", "addItemErrorTitle": "L'articolo del catalogo non può essere aggiunto alla workbench.", @@ -1341,6 +1388,12 @@ "cancelBtn": "annulla", "placeholder": "Inserisci un titolo" }, + "collapse": "Collassa", + "expand": "Espandi", + "next": "Prossimo", + "playStory": "Storia", + "prev": "Precedente", + "restart": "Riavvia", "removeAllStories": "Rimuovi Tutto", "delete": "Cancella", "deleteStory": "elimina", @@ -1509,6 +1562,43 @@ }, "closeButtonTitle": "Chiudere lo strumento {{toolName}}" }, + "compare": { + "dataset": { + "label": "Dataset", + "selectOne": "Seleziona" + }, + "dateButton": { + "left": "Sinistra", + "right": "Destra", + "select": "Seleziona una data" + }, + "dateLocationFilter": { + "cancel": "Cancella", + "filter": "Filtra per posizione", + "loading": "Caricamento...", + "location": "Ora mostra i dati disponibili in {{latitude}}, {{longitude}}", + "mouseTooltipMessage": "Click del tasto detro per cancellare", + "mouseTooltipTitle": "Seleziona una posizione" + }, + "dimensionSelector": { + "undefinedLabel": "Non specificato" + }, + "done": "Fatto", + "entireMap": { + "emptyText": "Add new data to show across the entire map via the dotted menu above.", + "title": "Mappa intera" + }, + "entireMapMenu": { + "browse": "Browse map data", + "hideAll": "Nascondi tutto", + "sendAllToBack": "Porta dietro", + "sendAllToFront": "Porta in primo piano" + }, + "info": "Compare spatial datasets from your workbench side-by-side on the map.", + "leftPanel": "Pannello di sinistra", + "rightPanel": "Pannello di destra", + "title": "Compara" + }, "compass": { "guidance": { "outerRingTitle": "Anello esterno", @@ -1576,6 +1666,9 @@ "promptMessage": "Trova il Tour, i video come fare e altri contenuti di aiuto qui", "menuPaneBody": "Trova consigli utili su come usare TerriaJS controllando le guide qui sotto o contattando il team a [{{supportEmail}}]({{supportEmail}})" }, + "includeStory": { + "message": "Includi la Storia nella condivisione" + }, "term": { "missingContent": "contenuto mancante" }, @@ -1608,4 +1701,4 @@ "errorParsingIndexRoot": "Errore nell'analizzare il file indexRoot: {{indexRootUrl}}.", "missingOptionIndexRootUrl": "L'opzione `indexRootUrl` manca nella configurazione di ricerca dell'elemento." } -} +} \ No newline at end of file From 349dba6da1a300d52bed71b150f179d98c466eb4 Mon Sep 17 00:00:00 2001 From: glughi Date: Mon, 11 Mar 2024 17:58:00 +0100 Subject: [PATCH 209/215] Improve copy icon --- wwwroot/images/icons/copy.svg | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/wwwroot/images/icons/copy.svg b/wwwroot/images/icons/copy.svg index bc00e6c305d..c7638eca61b 100644 --- a/wwwroot/images/icons/copy.svg +++ b/wwwroot/images/icons/copy.svg @@ -1,8 +1,6 @@ - - - - - - + + + + \ No newline at end of file From d6c3897111d66e97ea802123f4a4acbcfb14030c Mon Sep 17 00:00:00 2001 From: glughi Date: Mon, 11 Mar 2024 17:59:00 +0100 Subject: [PATCH 210/215] Remove copy layer from split function and add it as new feature --- .../Workbench/Controls/ViewingControls.tsx | 53 +++++++++++++++++-- 1 file changed, 49 insertions(+), 4 deletions(-) diff --git a/lib/ReactViews/Workbench/Controls/ViewingControls.tsx b/lib/ReactViews/Workbench/Controls/ViewingControls.tsx index 3d2e4698d64..c9ba9b3b5e0 100644 --- a/lib/ReactViews/Workbench/Controls/ViewingControls.tsx +++ b/lib/ReactViews/Workbench/Controls/ViewingControls.tsx @@ -224,7 +224,7 @@ class ViewingControls extends React.Component< const item = this.props.item; const terria = item.terria; - const splitRef = new SplitItemReference(createGuid(), terria); + //const splitRef = new SplitItemReference(createGuid(), terria); runInAction(async () => { if (!hasTraits(item, SplitterTraits, "splitDirection")) return; @@ -236,11 +236,11 @@ class ViewingControls extends React.Component< ); } - splitRef.setTrait(CommonStrata.user, "splitSourceItemId", item.uniqueId); - terria.addModel(splitRef); + //splitRef.setTrait(CommonStrata.user, "splitSourceItemId", item.uniqueId); + //terria.addModel(splitRef); terria.showSplitter = true; - await splitRef.loadReference(); + /*await splitRef.loadReference(); runInAction(() => { const target = splitRef.target; if (target) { @@ -263,6 +263,38 @@ class ViewingControls extends React.Component< } }); + // Add it to terria.catalog, which is required so the new item can be shared. + addUserCatalogMember(terria, splitRef, { + open: false + });*/ + }); + } + + copyItem() { + const { t } = this.props; + const item = this.props.item; + const terria = item.terria; + + const splitRef = new SplitItemReference(createGuid(), terria); + + runInAction(async () => { + splitRef.setTrait(CommonStrata.user, "splitSourceItemId", item.uniqueId); + terria.addModel(splitRef); + + await splitRef.loadReference(); + runInAction(() => { + const target = splitRef.target; + if (target) { + target.setTrait( + CommonStrata.user, + "name", + t("splitterTool.workbench.copyName", { + name: getName(item) + }) + ); + } + }); + // Add it to terria.catalog, which is required so the new item can be shared. addUserCatalogMember(terria, splitRef, { open: false @@ -413,6 +445,19 @@ class ViewingControls extends React.Component< ) : null} + {canSplit ? ( +
  • + + + + Copia + + +
  • + ) : null} {viewState.useSmallScreenInterface === false && DiffableMixin.isMixedInto(item) && !item.isShowingDiff && From c416b1becc27a9599931b796470d41ba0875dcf0 Mon Sep 17 00:00:00 2001 From: glughi Date: Mon, 11 Mar 2024 18:26:57 +0100 Subject: [PATCH 211/215] Add useCesiumAs2DViewer parameter --- lib/Models/Terria.ts | 16 ++++++++++++++-- lib/Models/ViewerMode.ts | 4 ++-- lib/ReactViews/Map/Panels/SettingPanel.tsx | 2 +- 3 files changed, 17 insertions(+), 5 deletions(-) diff --git a/lib/Models/Terria.ts b/lib/Models/Terria.ts index f9d66447fd4..0d1a00322f3 100644 --- a/lib/Models/Terria.ts +++ b/lib/Models/Terria.ts @@ -107,7 +107,7 @@ import CatalogIndex from "./SearchProviders/CatalogIndex"; import ShareDataService from "./ShareDataService"; import { StoryVideoSettings } from "./StoryVideoSettings"; import TimelineStack from "./TimelineStack"; -import { isViewerMode, setViewerMode } from "./ViewerMode"; +import ViewerMode, { isViewerMode, setViewerMode } from "./ViewerMode"; import Workbench from "./Workbench"; import SelectableDimensionWorkflow from "./Workflows/SelectableDimensionWorkflow"; import Cartographic from "terriajs-cesium/Source/Core/Cartographic"; @@ -375,6 +375,11 @@ interface ConfigParameters { * Side size for the drill pick in Cesium */ pickSize?: number; + + /** + * If true use Cesium2D instead of Leaflet + */ + useCesiumAs2DViewer: boolean; } interface StartOptions { @@ -603,7 +608,8 @@ export default class Terria { useElevationMeanSeaLevel: false, userProfilesDefinition: undefined, userProfileLoginServiceUrl: undefined, - pickSize: undefined + pickSize: undefined, + useCesiumAs2DViewer: false }; @observable @@ -730,6 +736,12 @@ export default class Terria { : undefined; } + @computed + get viewer2DMode () { + //TODO: tmp! + return this.configParameters.useCesiumAs2DViewer ? ViewerMode.Leaflet : ViewerMode.Preview; + } + /** * Base ratio for maximumScreenSpaceError * @type {number} diff --git a/lib/Models/ViewerMode.ts b/lib/Models/ViewerMode.ts index 6efae66494d..0857edf94a9 100644 --- a/lib/Models/ViewerMode.ts +++ b/lib/Models/ViewerMode.ts @@ -21,7 +21,7 @@ export const MapViewers = Object.seal({ available: true },*/ "2d": { - viewerMode: ViewerMode.Leaflet, + viewerMode: ViewerMode.Preview, terrain: false, label: "settingPanel.viewerModeLabels.Leaflet", available: true @@ -40,7 +40,7 @@ export function setViewerMode( viewer.viewerMode = ViewerMode.Cesium; viewer.viewerOptions.useTerrain = viewerMode === "3d"; } else if (viewerMode === "2d") { - viewer.viewerMode = ViewerMode.Leaflet; + viewer.viewerMode = viewer.terria.viewer2DMode; } else { console.error( `Trying to select ViewerMode ${viewerMode} that doesn't exist` diff --git a/lib/ReactViews/Map/Panels/SettingPanel.tsx b/lib/ReactViews/Map/Panels/SettingPanel.tsx index 8ed5d82d85c..e419aeb622d 100644 --- a/lib/ReactViews/Map/Panels/SettingPanel.tsx +++ b/lib/ReactViews/Map/Panels/SettingPanel.tsx @@ -354,7 +354,7 @@ class SettingPanel extends React.Component { - {this.props.terria.mainViewer.viewerMode !== ViewerMode.Leaflet && ( + {this.props.terria.mainViewer.viewerMode !== this.props.terria.viewer2DMode && ( <> From a917759e716bcbf9989fe6f30c2e1966dcb6b309 Mon Sep 17 00:00:00 2001 From: glughi Date: Tue, 12 Mar 2024 12:48:03 +0100 Subject: [PATCH 212/215] Show quality slider for raster layers also with Cesium2D --- lib/ReactViews/Map/Panels/SettingPanel.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/ReactViews/Map/Panels/SettingPanel.tsx b/lib/ReactViews/Map/Panels/SettingPanel.tsx index e419aeb622d..d43ac365cdb 100644 --- a/lib/ReactViews/Map/Panels/SettingPanel.tsx +++ b/lib/ReactViews/Map/Panels/SettingPanel.tsx @@ -354,7 +354,7 @@ class SettingPanel extends React.Component { - {this.props.terria.mainViewer.viewerMode !== this.props.terria.viewer2DMode && ( + {this.props.terria.mainViewer.viewerMode !== ViewerMode.Preview /*this.props.terria.viewer2DMode*/ && ( <> From 26348909dc0266291794839036df31af7593fe9f Mon Sep 17 00:00:00 2001 From: glughi Date: Thu, 14 Mar 2024 15:22:19 +0100 Subject: [PATCH 213/215] =?UTF-8?q?Fix=20Timeline=20that=20doesn=E2=80=99t?= =?UTF-8?q?=20restart=20after=20it=20has=20been=20closed=20once?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/Models/TimelineStack.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/Models/TimelineStack.ts b/lib/Models/TimelineStack.ts index b7cf3507ca3..e6e3034060c 100644 --- a/lib/Models/TimelineStack.ts +++ b/lib/Models/TimelineStack.ts @@ -86,6 +86,7 @@ export default class TimelineStack { } if (this._disposeTickSubscription) { this._disposeTickSubscription(); + this._disposeTickSubscription = undefined; } } From 66022334e0186b39ef88df1a77ee6690c022c9c4 Mon Sep 17 00:00:00 2001 From: glughi Date: Thu, 29 Aug 2024 10:30:31 +0200 Subject: [PATCH 214/215] Fix switch viewer mode in mobile ui --- lib/Models/ViewerMode.ts | 2 +- lib/ReactViews/Mobile/MobileHeader.jsx | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/Models/ViewerMode.ts b/lib/Models/ViewerMode.ts index 0857edf94a9..8d9fd600def 100644 --- a/lib/Models/ViewerMode.ts +++ b/lib/Models/ViewerMode.ts @@ -38,7 +38,7 @@ export function setViewerMode( runInAction(() => { if (viewerMode === "3d" /*|| viewerMode === "3dsmooth"*/) { viewer.viewerMode = ViewerMode.Cesium; - viewer.viewerOptions.useTerrain = viewerMode === "3d"; + //viewer.viewerOptions.useTerrain = viewerMode === "3d"; } else if (viewerMode === "2d") { viewer.viewerMode = viewer.terria.viewer2DMode; } else { diff --git a/lib/ReactViews/Mobile/MobileHeader.jsx b/lib/ReactViews/Mobile/MobileHeader.jsx index 8ce333c1a73..bb57392062a 100644 --- a/lib/ReactViews/Mobile/MobileHeader.jsx +++ b/lib/ReactViews/Mobile/MobileHeader.jsx @@ -94,7 +94,7 @@ class MobileHeader extends React.Component { onMobileSwitchViewClicked() { runInAction(() => { const mainViewer = this.props.viewState.terria.mainViewer; - if (mainViewer.viewerMode === ViewerMode.Leaflet) { + if (mainViewer.viewerMode === ViewerMode.Leaflet || mainViewer.viewerMode === ViewerMode.Preview) { setViewerMode("3d", mainViewer); this.props.viewState.terria.setLocalProperty( "viewermode", From 44a975ba82794c4e0e830eaa1af9e98fef532ca2 Mon Sep 17 00:00:00 2001 From: Giovanni Lughi <17862087+glughi@users.noreply.github.com> Date: Thu, 24 Oct 2024 10:59:00 +0200 Subject: [PATCH 215/215] Update ci.yml to TerriaJS 8.7.7 --- .github/workflows/ci.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 9f84d346a5a..c666368a339 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -19,16 +19,16 @@ jobs: # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it - uses: actions/checkout@v2 - - uses: actions/setup-node@v2 + - uses: actions/setup-node@v4 with: - node-version: "14.x" + node-version-file: ".nvmrc" - run: npm install -g yarn@^1.19.0 && yarn install - name: Check formatting with prettier run: yarn prettier-check - name: Build TerriaJS tests - run: yarn gulp lint release -- --continue + run: yarn gulp lint release --continue env: NODE_OPTIONS: --max_old_space_size=4096