The GDAL and OGR drivers are now basically the same but separate ones in Swig bindings, maybe it has something to do with this oddity.

When I open GDAL driver "Memory", it does not advertise capability DCAP_RASTER and CreateDataset silently fails.

When I open GDAL driver "MEM", it advertises capability DCAP_RASTER and CreateDataset returns a valid object.

When I open MEM driver and then Memory driver, both behave similarly.

Both MEM and Memory are listed as GDAL drivers.

Cheers,

Ari

first run:

perl x.pl Memory
DCAP_CREATE => YES
DCAP_OPEN => YES
DCAP_VECTOR => YES
DMD_CREATIONFIELDDATATYPES => Integer Integer64 Real String Date DateTime Time IntegerList Integer64List RealList StringList Binary
DMD_LONGNAME => Memory
OGR_DRIVER => YES


DCAP_CREATE => YES
DCAP_OPEN => YES
DCAP_VECTOR => YES
DMD_CREATIONFIELDDATATYPES => Integer Integer64 Real String Date DateTime Time IntegerList Integer64List RealList StringList Binary
DMD_LONGNAME => Memory
OGR_DRIVER => YES

second run:

perl x.pl MEM
DCAP_CREATE => YES
DCAP_OPEN => YES
DCAP_RASTER => YES
DMD_CREATIONDATATYPES => Byte Int16 UInt16 Int32 UInt32 Float32 Float64 CInt16 CInt32 CFloat32 CFloat64 DMD_CREATIONOPTIONLIST => <CreationOptionList> <Option name='INTERLEAVE' type='string-select' default='BAND'> <Value>BAND</Value> <Value>PIXEL</Value> </Option></CreationOptionList>
DMD_LONGNAME => In Memory Raster
Geo::GDAL::Dataset=HASH(0xd020a0)

DCAP_CREATE => YES
DCAP_OPEN => YES
DCAP_RASTER => YES
DMD_CREATIONDATATYPES => Byte Int16 UInt16 Int32 UInt32 Float32 Float64 CInt16 CInt32 CFloat32 CFloat64 DMD_CREATIONOPTIONLIST => <CreationOptionList> <Option name='INTERLEAVE' type='string-select' default='BAND'> <Value>BAND</Value> <Value>PIXEL</Value> </Option></CreationOptionList>
DMD_LONGNAME => In Memory Raster
Geo::GDAL::Dataset=HASH(0xd77df0)

the program:

use Geo::GDAL;

$driver = shift @ARGV;

$d = Geo::GDAL::Driver($driver);
$m = $d->GetMetadata;
for my $k (sort keys %$m) {
    print "$k => $m->{$k}\n";
}
$s = $d->Create();
print $s,"\n";

print "\n";
$d = Geo::GDAL::Driver('Memory');
$m = $d->GetMetadata;
for my $k (sort keys %$m) {
    print "$k => $m->{$k}\n";
}
$s = $d->Create();
print $s,"\n";

_______________________________________________
gdal-dev mailing list
[email protected]
http://lists.osgeo.org/mailman/listinfo/gdal-dev

Reply via email to