Bug report #21958
Problem outputting xyz tiles as MBTiles file
Status: | Closed | ||
---|---|---|---|
Priority: | Normal | ||
Assignee: | - | ||
Category: | Processing/QGIS | ||
Affected QGIS version: | 3.7(master) | Regression?: | No |
Operating System: | Easy fix?: | No | |
Pull Request or Patch supplied: | Yes | Resolution: | fixed/implemented |
Crashes QGIS or corrupts data: | No | Copied to github as #: | 29773 |
Description
GDAL/OGR: 2.4.0
QGIS: master
I am trying to create an mbtiles file using xyz tile generator. If the output file is not defined (i.e. not pointing to an existing mbtiles file), I get this:
Traceback (most recent call last):
File "/usr/local/src/QGIS_master/build/output/python/plugins/processing/algs/qgis/TilesXYZ.py", line 335, in processAlgorithm
writer = MBTilesWriter(output_file, tile_params, wgs_extent, min_zoom, max_zoom)
File "/usr/local/src/QGIS_master/build/output/python/plugins/processing/algs/qgis/TilesXYZ.py", line 158, in __init__
ds.ExecuteSQL("INSERT INTO metadata(name, value) VALUES ('{}', '{}');".format('minzoom', min_zoom))
AttributeError: 'NoneType' object has no attribute 'ExecuteSQL'
Execution failed after 0.01 seconds
The algorithm creates an empty mbtiles file. When I run gdalinfo, I get this:
ERROR 1: Cannot find min and max zoom_level
gdalinfo failed - unable to open 'OUTPUT_FILE.mbtiles'.
If I point the output file to overwrite an existing mbtiles, I get this error:
Traceback (most recent call last):
File "/usr/local/src/QGIS_master/build/output/python/plugins/processing/algs/qgis/TilesXYZ.py", line 335, in processAlgorithm
writer = MBTilesWriter(output_file, tile_params, wgs_extent, min_zoom, max_zoom)
File "/usr/local/src/QGIS_master/build/output/python/plugins/processing/algs/qgis/TilesXYZ.py", line 154, in __init__
ds = driver.Create(filename, 1, 1, 1, options=['TILE_FORMAT=%s' % tile_format] + options)
File "/usr/lib/python3/dist-packages/osgeo/gdal.py", line 1736, in Create
return _gdal.Driver_Create(self, *args, **kwargs)
RuntimeError
Execution failed after 0.02 seconds
Associated revisions
[processing] fix #21958 used sqlite3 module instead of GDAL/ORG's SQLite driver
History
#1 Updated by Saber Razmjooei over 5 years ago
- Description updated (diff)
#2 Updated by Peter Petrik over 5 years ago
looks more like sqlite issue, which version do you have?
#3 Updated by Saber Razmjooei over 5 years ago
3.27.2 2019-02-25 on Ubuntu 19.04
#4 Updated by Saber Razmjooei over 5 years ago
On Windows, with qgis master:
3.26.0 2018-12-01
#5 Updated by Giovanni Manghi over 5 years ago
- Category changed from Processing/Core to Processing/QGIS
#6 Updated by Saber Razmjooei over 5 years ago
- Status changed from Open to In Progress
- Assignee set to Nathan Woodrow
It appears that updating metadata for mbtiles through gdal/ogr sqlite driver is the source of problem. By using python-sqlite3 library, the issue should be resolved hopefully.
#7 Updated by Saber Razmjooei over 5 years ago
- Assignee deleted (
Nathan Woodrow) - Pull Request or Patch supplied changed from No to Yes
#8 Updated by Anonymous over 5 years ago
- Status changed from In Progress to Closed
- % Done changed from 0 to 100
Applied in changeset qgis|b1106b9f1e5f0986c769246e162afbe4d057d813.
#9 Updated by Peter Petrik over 5 years ago
- Resolution set to fixed/implemented