Acabo de abrir un PR para solucionar este problema en QGIS v3 (en Windows). Recuerda que esta es una versión de desarrollo.
Mientras tanto, podrías utilizar este instalador y ajustarlo por ti mismo (¡el software libre es genial!) después de la instalación. Solo necesitas cambiar la línea 602 de C:\\Program Files\\QGIS 2.99\\apps\\qgis-dev\\python\\qgis\\utils.py
por:
("spatialite", "spatialite_init_ex"),
Reinicia QGIS y ahora podrás utilizar conexiones de sqlite3
con soporte de SpatiaLite
utilizando la siguiente línea desde la Consola de Python de QGIS o desde tu complemento:
con = qgis.utils.spatialite_connect("/ruta/a/tu/base_de_datos_spatialite.sqlite")
Ahora, puedes crear una nueva capa de punto en tu base de datos de esta forma (ver la documentación):
cur = con.cursor()
# Ejecuta la siguiente línea si tu base de datos fue recién creada, podría tardar un momento...
cur.execute("SELECT InitSpatialMetaData()")
cur.execute("""CREATE TABLE test_geom (
id INTEGER NOT NULL
PRIMARY KEY AUTOINCREMENT,
name TEXT NOT NULL,
measured_value DOUBLE NOT NULL);""")
cur.execute("""SELECT AddGeometryColumn('test_geom', 'the_geom',
4326, 'POINT', 'XY');""")
cur.close()
con.close()
Este pequeño arreglo también hace que db_manager pueda abrir bases de datos de SpatiaLite.