terriajs
Version:
Geospatial data visualization platform.
404 lines (396 loc) • 14.5 kB
text/typescript
import YDYRCatalogFunction from "./CatalogFunctions/YDYRCatalogFunction";
import YDYRCatalogFunctionJob from "./CatalogFunctions/YDYRCatalogFunctionJob";
import CatalogGroup from "./CatalogGroup";
import OpenDataSoftCatalogGroup from "./CatalogGroups/OpenDataSoftCatalogGroup";
import SocrataCatalogGroup from "./CatalogGroups/SocrataCatalogGroup";
import ThreddsCatalogGroup from "./CatalogGroups/ThreddsCatalogGroup";
import { ApiTableCatalogItem } from "./CatalogItems/ApiTableCatalogItem";
import BingMapsCatalogItem from "./CatalogItems/BingMapsCatalogItem";
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";
import CsvCatalogItem from "./CatalogItems/CsvCatalogItem";
import CzmlCatalogItem from "./CatalogItems/CzmlCatalogItem";
import GeoJsonCatalogItem from "./CatalogItems/GeoJsonCatalogItem";
import GeoRssCatalogItem from "./CatalogItems/GeoRssCatalogItem";
import GpxCatalogItem from "./CatalogItems/GpxCatalogItem";
import IonImageryCatalogItem from "./CatalogItems/IonImageryCatalogItem";
import KmlCatalogItem from "./CatalogItems/KmlCatalogItem";
import MapboxMapCatalogItem from "./CatalogItems/MapboxMapCatalogItem";
import MapboxStyleCatalogItem from "./CatalogItems/MapboxStyleCatalogItem";
import MapboxVectorTileCatalogItem from "./CatalogItems/MapboxVectorTileCatalogItem";
import OpenDataSoftCatalogItem from "./CatalogItems/OpenDataSoftCatalogItem";
import OpenStreetMapCatalogItem from "./CatalogItems/OpenStreetMapCatalogItem";
import SenapsLocationsCatalogItem from "./CatalogItems/SenapsLocationsCatalogItem";
import ShapefileCatalogItem from "./CatalogItems/ShapefileCatalogItem";
import SocrataMapViewCatalogItem from "./CatalogItems/SocrataMapViewCatalogItem";
import StubCatalogItem from "./CatalogItems/StubCatalogItem";
import UrlTemplateImageryCatalogItem from "./CatalogItems/UrlTemplateImageryCatalogItem";
import CatalogMemberFactory from "./CatalogMemberFactory";
import CatalogIndexReference from "./CatalogReferences/CatalogIndexReference";
import MagdaReference from "./CatalogReferences/MagdaReference";
import SplitItemReference from "./CatalogReferences/SplitItemReference";
import TerriaReference from "./CatalogReferences/TerriaReference";
import UrlReference, {
UrlToCatalogMemberMapping
} from "./CatalogReferences/UrlReference";
import CkanCatalogGroup from "./Ckan/CkanCatalogGroup";
import CkanItemReference from "./Ckan/CkanItemReference";
import ArcGisCatalogGroup from "./Esri/ArcGisCatalogGroup";
import ArcGisFeatureServerCatalogGroup from "./Esri/ArcGisFeatureServerCatalogGroup";
import ArcGisFeatureServerCatalogItem from "./Esri/ArcGisFeatureServerCatalogItem";
import ArcGisMapServerCatalogGroup from "./Esri/ArcGisMapServerCatalogGroup";
import ArcGisMapServerCatalogItem from "./Esri/ArcGisMapServerCatalogItem";
import ArcGisPortalCatalogGroup from "./Esri/ArcGisPortalCatalogGroup";
import ArcGisPortalItemReference from "./Esri/ArcGisPortalItemReference";
import ArcGisTerrainCatalogItem from "./Esri/ArcGisTerrainCatalogItem";
import AssImpCatalogItem from "./Gltf/AssImpCatalogItem";
import GltfCatalogItem from "./Gltf/GltfCatalogItem";
import GtfsCatalogItem from "./Gtfs/GtfsCatalogItem";
import CswCatalogGroup from "./Ows/CswCatalogGroup";
import SensorObservationServiceCatalogItem from "./Ows/SensorObservationServiceCatalogItem";
import WebFeatureServiceCatalogGroup from "./Ows/WebFeatureServiceCatalogGroup";
import WebFeatureServiceCatalogItem from "./Ows/WebFeatureServiceCatalogItem";
import WebMapServiceCatalogGroup from "./Ows/WebMapServiceCatalogGroup";
import WebMapServiceCatalogItem from "./Ows/WebMapServiceCatalogItem";
import WebMapTileServiceCatalogGroup from "./Ows/WebMapTileServiceCatalogGroup";
import WebMapTileServiceCatalogItem from "./Ows/WebMapTileServiceCatalogItem";
import WebProcessingServiceCatalogFunction from "./Ows/WebProcessingServiceCatalogFunction";
import WebProcessingServiceCatalogFunctionJob from "./Ows/WebProcessingServiceCatalogFunctionJob";
import WebProcessingServiceCatalogGroup from "./Ows/WebProcessingServiceCatalogGroup";
import SdmxJsonCatalogGroup from "./SdmxJson/SdmxJsonCatalogGroup";
import SdmxJsonCatalogItem from "./SdmxJson/SdmxJsonCatalogItem";
export default function registerCatalogMembers() {
CatalogMemberFactory.register(CatalogGroup.type, CatalogGroup);
CatalogMemberFactory.register(StubCatalogItem.type, StubCatalogItem);
CatalogMemberFactory.register(
WebMapServiceCatalogItem.type,
WebMapServiceCatalogItem
);
CatalogMemberFactory.register(
WebMapServiceCatalogGroup.type,
WebMapServiceCatalogGroup
);
CatalogMemberFactory.register(
WebFeatureServiceCatalogItem.type,
WebFeatureServiceCatalogItem
);
CatalogMemberFactory.register(
WebFeatureServiceCatalogGroup.type,
WebFeatureServiceCatalogGroup
);
CatalogMemberFactory.register(
WebMapTileServiceCatalogGroup.type,
WebMapTileServiceCatalogGroup
);
CatalogMemberFactory.register(
WebMapTileServiceCatalogItem.type,
WebMapTileServiceCatalogItem
);
CatalogMemberFactory.register(GltfCatalogItem.type, GltfCatalogItem);
CatalogMemberFactory.register(GeoJsonCatalogItem.type, GeoJsonCatalogItem);
CatalogMemberFactory.register(GpxCatalogItem.type, GpxCatalogItem);
CatalogMemberFactory.register(GeoRssCatalogItem.type, GeoRssCatalogItem);
CatalogMemberFactory.register(CsvCatalogItem.type, CsvCatalogItem);
CatalogMemberFactory.register(CzmlCatalogItem.type, CzmlCatalogItem);
CatalogMemberFactory.register(
ShapefileCatalogItem.type,
ShapefileCatalogItem
);
CatalogMemberFactory.register(ArcGisCatalogGroup.type, ArcGisCatalogGroup);
CatalogMemberFactory.register(
ArcGisMapServerCatalogItem.type,
ArcGisMapServerCatalogItem
);
CatalogMemberFactory.register(
ArcGisMapServerCatalogGroup.type,
ArcGisMapServerCatalogGroup
);
CatalogMemberFactory.register(
ArcGisFeatureServerCatalogItem.type,
ArcGisFeatureServerCatalogItem
);
CatalogMemberFactory.register(
ArcGisFeatureServerCatalogGroup.type,
ArcGisFeatureServerCatalogGroup
);
CatalogMemberFactory.register(
ArcGisPortalCatalogGroup.type,
ArcGisPortalCatalogGroup
);
CatalogMemberFactory.register(
ArcGisPortalItemReference.type,
ArcGisPortalItemReference
);
CatalogMemberFactory.register(
ArcGisTerrainCatalogItem.type,
ArcGisTerrainCatalogItem
);
CatalogMemberFactory.register(
Cesium3DTilesCatalogItem.type,
Cesium3DTilesCatalogItem
);
CatalogMemberFactory.register(GtfsCatalogItem.type, GtfsCatalogItem);
CatalogMemberFactory.register(BingMapsCatalogItem.type, BingMapsCatalogItem);
CatalogMemberFactory.register(
CesiumTerrainCatalogItem.type,
CesiumTerrainCatalogItem
);
CatalogMemberFactory.register(
IonImageryCatalogItem.type,
IonImageryCatalogItem
);
CatalogMemberFactory.register(
OpenStreetMapCatalogItem.type,
OpenStreetMapCatalogItem
);
CatalogMemberFactory.register(MagdaReference.type, MagdaReference);
CatalogMemberFactory.register(TerriaReference.type, TerriaReference);
CatalogMemberFactory.register(KmlCatalogItem.type, KmlCatalogItem);
CatalogMemberFactory.register(
MapboxVectorTileCatalogItem.type,
MapboxVectorTileCatalogItem
);
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);
CatalogMemberFactory.register(
YDYRCatalogFunctionJob.type,
YDYRCatalogFunctionJob
);
CatalogMemberFactory.register(
SdmxJsonCatalogGroup.type,
SdmxJsonCatalogGroup
);
CatalogMemberFactory.register(SdmxJsonCatalogItem.type, SdmxJsonCatalogItem);
CatalogMemberFactory.register(
SenapsLocationsCatalogItem.type,
SenapsLocationsCatalogItem
);
CatalogMemberFactory.register(
WebProcessingServiceCatalogFunction.type,
WebProcessingServiceCatalogFunction
);
CatalogMemberFactory.register(
WebProcessingServiceCatalogGroup.type,
WebProcessingServiceCatalogGroup
);
CatalogMemberFactory.register(
SensorObservationServiceCatalogItem.type,
SensorObservationServiceCatalogItem
);
CatalogMemberFactory.register(
WebProcessingServiceCatalogFunctionJob.type,
WebProcessingServiceCatalogFunctionJob
);
CatalogMemberFactory.register(
CompositeCatalogItem.type,
CompositeCatalogItem
);
CatalogMemberFactory.register(CkanCatalogGroup.type, CkanCatalogGroup);
CatalogMemberFactory.register(CkanItemReference.type, CkanItemReference);
CatalogMemberFactory.register(ThreddsCatalogGroup.type, ThreddsCatalogGroup);
CatalogMemberFactory.register(CswCatalogGroup.type, CswCatalogGroup);
CatalogMemberFactory.register(ApiTableCatalogItem.type, ApiTableCatalogItem);
CatalogMemberFactory.register(
OpenDataSoftCatalogGroup.type,
OpenDataSoftCatalogGroup
);
CatalogMemberFactory.register(
OpenDataSoftCatalogItem.type,
OpenDataSoftCatalogItem
);
CatalogMemberFactory.register(SocrataCatalogGroup.type, SocrataCatalogGroup);
CatalogMemberFactory.register(
SocrataMapViewCatalogItem.type,
SocrataMapViewCatalogItem
);
CatalogMemberFactory.register(
MapboxMapCatalogItem.type,
MapboxMapCatalogItem
);
CatalogMemberFactory.register(
MapboxStyleCatalogItem.type,
MapboxStyleCatalogItem
);
CatalogMemberFactory.register(
CatalogIndexReference.type,
CatalogIndexReference
);
CatalogMemberFactory.register(
UrlTemplateImageryCatalogItem.type,
UrlTemplateImageryCatalogItem
);
CatalogMemberFactory.register(AssImpCatalogItem.type, AssImpCatalogItem);
UrlToCatalogMemberMapping.register(
matchesExtension("csv"),
CsvCatalogItem.type
);
UrlToCatalogMemberMapping.register(
matchesExtension("czm"),
CzmlCatalogItem.type
);
UrlToCatalogMemberMapping.register(
matchesExtension("czml"),
CzmlCatalogItem.type
);
UrlToCatalogMemberMapping.register(
matchesExtension("geojson"),
GeoJsonCatalogItem.type
);
UrlToCatalogMemberMapping.register(
matchesExtension("json"),
GeoJsonCatalogItem.type
);
UrlToCatalogMemberMapping.register(
matchesExtension("kml"),
KmlCatalogItem.type
);
UrlToCatalogMemberMapping.register(
matchesExtension("gpx"),
GpxCatalogItem.type
);
UrlToCatalogMemberMapping.register(
matchesExtension("kmz"),
KmlCatalogItem.type
);
UrlToCatalogMemberMapping.register(
matchesExtension("topojson"),
GeoJsonCatalogItem.type
);
UrlToCatalogMemberMapping.register(
matchesExtension("georss"),
GeoRssCatalogItem.type
);
// We try to convert zipped shapefiles to geojson
UrlToCatalogMemberMapping.register(
matchesExtension("zip"),
ShapefileCatalogItem.type
);
// These items work by trying to match a URL, then loading the data. If it fails, they move on.
UrlToCatalogMemberMapping.register(
matchesUrl(/\/wms|\=wms/i),
WebMapServiceCatalogGroup.type,
true
);
UrlToCatalogMemberMapping.register(
matchesUrl(/\/wfs|\=wfs/i),
WebFeatureServiceCatalogGroup.type,
true
);
UrlToCatalogMemberMapping.register(
matchesUrl(/\/wmts|\=wmts/i),
WebMapTileServiceCatalogGroup.type,
true
);
UrlToCatalogMemberMapping.register(
matchesUrl(/\/arcgis\/rest\/.*\/MapServer\/\d+\b/i),
ArcGisMapServerCatalogItem.type,
true
);
UrlToCatalogMemberMapping.register(
matchesUrl(/\/arcgis\/rest\/.*\/MapServer(\/.*)?$/i),
ArcGisMapServerCatalogGroup.type,
true
);
UrlToCatalogMemberMapping.register(
matchesUrl(/\/arcgis\/rest\/.*\/FeatureServer\/\d+\b/i),
ArcGisFeatureServerCatalogItem.type,
true
);
UrlToCatalogMemberMapping.register(
matchesUrl(/\/arcgis\/rest\/.*\/FeatureServer(\/.*)?$/i),
ArcGisFeatureServerCatalogGroup.type,
true
);
UrlToCatalogMemberMapping.register(
matchesUrl(/\/arcgis\/rest\/.*\/\d+\b/i),
ArcGisMapServerCatalogItem.type,
true
);
UrlToCatalogMemberMapping.register(
matchesUrl(/\/arcgis\/rest\//i),
ArcGisCatalogGroup.type,
true
);
UrlToCatalogMemberMapping.register(
matchesUrl(/\/rest\/.*\/MapServer\/\d+\b/i),
ArcGisMapServerCatalogItem.type,
true
);
UrlToCatalogMemberMapping.register(
matchesUrl(/\/rest\/.*\/MapServer(\/.*)?$/i),
ArcGisMapServerCatalogGroup.type,
true
);
UrlToCatalogMemberMapping.register(
matchesUrl(/\/rest\/.*\/FeatureServer\/\d+\b/i),
ArcGisFeatureServerCatalogItem.type,
true
);
UrlToCatalogMemberMapping.register(
matchesUrl(/\/rest\/.*\/FeatureServer(\/.*)?$/i),
ArcGisFeatureServerCatalogGroup.type,
true
);
UrlToCatalogMemberMapping.register(
matchesUrl(/\/rest\/.*\/\d+\b/i),
ArcGisMapServerCatalogItem.type,
true
);
// These don't even try to match a URL, they're just total fallbacks. We really, really want something to work.
UrlToCatalogMemberMapping.register(
(s) => true,
WebMapServiceCatalogGroup.type,
true
);
UrlToCatalogMemberMapping.register(
(s) => true,
WebFeatureServiceCatalogGroup.type,
true
);
UrlToCatalogMemberMapping.register(
(s) => true,
ArcGisMapServerCatalogItem.type,
true
);
UrlToCatalogMemberMapping.register(
(s) => true,
ArcGisMapServerCatalogGroup.type,
true
);
UrlToCatalogMemberMapping.register(
(s) => true,
ArcGisFeatureServerCatalogItem.type,
true
);
UrlToCatalogMemberMapping.register(
(s) => true,
ArcGisCatalogGroup.type,
true
);
UrlToCatalogMemberMapping.register(
(s) => true,
ArcGisFeatureServerCatalogGroup.type,
true
);
}
function matchesUrl(regex: RegExp) {
return /./.test.bind(regex);
}
export function matchesExtension(extension: string) {
var regex = new RegExp("\\." + extension + "$", "i");
return function (url: string) {
return Boolean(url.match(regex));
};
}