Line data Source code
1 : /****************************************************************************** 2 : * 3 : * Project: PlanetLabs scene driver 4 : * Purpose: PlanetLabs scene driver 5 : * Author: Even Rouault, even dot rouault at spatialys.com 6 : * 7 : ****************************************************************************** 8 : * Copyright (c) 2015-2016, Planet Labs 9 : * 10 : * SPDX-License-Identifier: MIT 11 : ****************************************************************************/ 12 : 13 : #include "gdal_frmts.h" 14 : 15 : #ifdef PLUGIN_FILENAME 16 : #include "gdalplugindriverproxy.h" 17 : #endif 18 : 19 : #include "ogrsf_frmts.h" 20 : 21 : #include "ogrplscenesdrivercore.h" 22 : 23 : /************************************************************************/ 24 : /* OGRPLSCENESDriverIdentify() */ 25 : /************************************************************************/ 26 : 27 59695 : int OGRPLSCENESDriverIdentify(GDALOpenInfo *poOpenInfo) 28 : 29 : { 30 59695 : return STARTS_WITH_CI(poOpenInfo->pszFilename, "PLSCENES:"); 31 : } 32 : 33 : /************************************************************************/ 34 : /* OGRPLSCENESDriverSetCommonMetadata() */ 35 : /************************************************************************/ 36 : 37 1755 : void OGRPLSCENESDriverSetCommonMetadata(GDALDriver *poDriver) 38 : { 39 1755 : poDriver->SetDescription(DRIVER_NAME); 40 1755 : poDriver->SetMetadataItem(GDAL_DCAP_RASTER, "YES"); 41 1755 : poDriver->SetMetadataItem(GDAL_DCAP_VECTOR, "YES"); 42 1755 : poDriver->SetMetadataItem(GDAL_DMD_LONGNAME, "Planet Labs Scenes API"); 43 1755 : poDriver->SetMetadataItem(GDAL_DMD_HELPTOPIC, 44 1755 : "drivers/vector/plscenes.html"); 45 1755 : poDriver->SetMetadataItem(GDAL_DMD_CONNECTION_PREFIX, "PLSCENES:"); 46 1755 : poDriver->SetMetadataItem( 47 : GDAL_DMD_OPENOPTIONLIST, 48 : "<OpenOptionList>" 49 : " <Option name='VERSION' type='string-select' description='API " 50 : "version' default='DATA_V1'>" 51 : " <Value>DATA_V1</Value>" 52 : " </Option>" 53 : " <Option name='API_KEY' type='string' description='Account API key' " 54 : "required='true'/>" 55 : " <Option name='FOLLOW_LINKS' type='boolean' description='Whether " 56 : "assets links should be followed for each scene' default='NO'/>" 57 : " <Option name='SCENE' type='string' description='Scene id (for " 58 : "raster fetching)'/>" 59 : " <Option name='ITEMTYPES' alias='CATALOG' type='string' " 60 : "description='Catalog id (mandatory for raster fetching)'/>" 61 : " <Option name='ASSET' type='string' description='Asset category' " 62 : "default='visual'/>" 63 : " <Option name='RANDOM_ACCESS' type='boolean' description='Whether " 64 : "raster should be accessed in random access mode (but with potentially " 65 : "not optimal throughput). If no, in-memory ingestion is done' " 66 : "default='YES'/>" 67 : " <Option name='ACTIVATION_TIMEOUT' type='int' description='Number of " 68 : "seconds during which to wait for asset activation (raster)' " 69 : "default='3600'/>" 70 : " <Option name='FILTER' type='string' description='Custom filter'/>" 71 : " <Option name='METADATA' type='boolean' description='(Raster only) " 72 : "Whether scene metadata should be fetched from the API and attached to " 73 : "the raster dataset' default='YES'/>" 74 1755 : "</OpenOptionList>"); 75 1755 : poDriver->SetMetadataItem(GDAL_DMD_SUPPORTED_SQL_DIALECTS, "OGRSQL SQLITE"); 76 : 77 1755 : poDriver->pfnIdentify = OGRPLSCENESDriverIdentify; 78 1755 : poDriver->SetMetadataItem(GDAL_DCAP_OPEN, "YES"); 79 1755 : } 80 : 81 : /************************************************************************/ 82 : /* DeclareDeferredOGRPLSCENESPlugin() */ 83 : /************************************************************************/ 84 : 85 : #ifdef PLUGIN_FILENAME 86 : void DeclareDeferredOGRPLSCENESPlugin() 87 : { 88 : if (GDALGetDriverByName(DRIVER_NAME) != nullptr) 89 : { 90 : return; 91 : } 92 : auto poDriver = new GDALPluginDriverProxy(PLUGIN_FILENAME); 93 : #ifdef PLUGIN_INSTALLATION_MESSAGE 94 : poDriver->SetMetadataItem(GDAL_DMD_PLUGIN_INSTALLATION_MESSAGE, 95 : PLUGIN_INSTALLATION_MESSAGE); 96 : #endif 97 : OGRPLSCENESDriverSetCommonMetadata(poDriver); 98 : GetGDALDriverManager()->DeclareDeferredPluginDriver(poDriver); 99 : } 100 : #endif