GDAL versión 2.1.1
Si puedo abrir una geoespacial de archivo raster, tales como GeoTIFF o archivo DTED, con GDAL, luego puedo conseguir el sistema de coordenadas de información del archivo, como una cadena en OpenGIS formato WKT. Por ejemplo:
GEOGCS["WGS 84",
DATUM["WGS_1984",
SPHEROID["WGS 84",6378137,298.257223563]],
PRIMEM["Greenwich",0],
UNIT["degree",0.0174532925199433],
AUTHORITY["EPSG","4326"]]
El código de C++ que uso para conseguir que la información es sencilla y directa.
string path = "somewhere.dt1";
unsigned int openFlags = GA_ReadOnly;
GDALDataset * pDataset = static_cast<GDALDataset *>( GDALOpenEx(
path.c_str(),
openFlags,
NULL, NULL, NULL ) );
string projWkt = pDataset->GetProjectionRef();
OGRSpatialReference srs( projWkt.c_str() );
srs.dumpReadable();
Sin embargo, cuando abro un geoespacial vector de archivo, como un archivo shapefile, con GDAL, sólo obtengo una cadena en blanco para el sistema de coordenadas de información. La única diferencia en el código de C++ que yo uso es que yo también deben proporcionar la GDAL_OF_VECTOR
indicador GDALOpenEx()
.
string path = "elsewhere.shp";
unsigned int openFlags = GA_ReadOnly | GDAL_OF_VECTOR;
GDALDataset * pDataset = static_cast<GDALDataset *>( GDALOpenEx(
path.c_str(),
openFlags,
NULL, NULL, NULL ) );
El shapefile estoy de apertura tiene un válido sistema de coordenadas. Puedo confirmar que, al abrir el archivo shapefile en ArcMap o ArcCatalog. Ambas aplicaciones son capaces de decirme el sistema de coordenadas y proyección de la información.
Así que, ¿por qué no soy capaz de ir a través de este GDAL API?
Hay un mecanismo diferente para los archivos vectoriales?