gdal3.js icon indicating copy to clipboard operation
gdal3.js copied to clipboard

Open options (`-oo`) support

Open mthh opened this issue 3 years ago • 1 comments

Hi,

Are the "open options" of ogr2ogr supported?

I tried to use them without success like this:

const input = await Gdal.open(citiesFile);
const options = [
  '-oo', 'AUTODETECT_TYPE=YES',
  '-oo', 'X_POSSIBLE_NAMES=lng',
  '-oo', 'Y_POSSIBLE_NAMES=lat',
  '-f', 'GeoJSON',
  '-s_srs', 'EPSG:4326',
  '-t_srs', 'EPSG:4326',
  '-lco', 'RFC7946=YES'
];
const output = await Gdal.ogr2ogr(input.datasets[0], options);
const bytes = await Gdal.getFileBytes(output);
await Gdal.close(input);
const result = JSON.parse(new TextDecoder().decode(bytes));

I don't get any error but the 3 "open options" that I use do not appear to have been used. The numeric fields are still parsed as strings (so the AUTODETECT_TYPE option does not seem to have been used) and no geometry is created in the resulting GeoJSON (so X_POSSIBLE_NAMES and Y_POSSIBLE_NAMES do not seem to have been used).

On the other hand, if I test with the desktop version of ogr2ogr with the command ogr2ogr -f GeoJSON cities-output.geojson cities.csv -t_srs EPSG:4326 -s_srs EPSG:4326 -lco RFC7946=YES -oo X_POSSIBLE_NAMES=lng -oo Y_POSSIBLE_NAMES=lat -oo AUTODETECT_TYPE=YES, I get the expected result (geometries are created and the type of the fields becomes numeric when detected this way).

See the attached archive (cities.zip) that contains the 3 following files if it helps:

  • cities.csv (the input file)
  • cities-output-gdal3js.geojson (the output from gdal3.js)
  • citites-output-desktop-ogr2ogr.geojson (the output from the desktop version of ogr2ogr)

mthh avatar Oct 06 '22 08:10 mthh

In fact the open options should be passed as an argument to the OpenEx function (wrapped by the Gdal.open JS function) which doesn't seem to be supported yet. I will try to submit a PR soon.

mthh avatar Oct 06 '22 22:10 mthh

Hi @mthh, thanks for the pull request, it's merged. A new version will be released in a few days.

bugra9 avatar Oct 23 '22 23:10 bugra9