This Chat is read-only. Login to resume chatting.
import sqlite3
# Chemin vers votre fichier GeoPackage
gpkg_path = "votre_fichier.gpkg"
# Connexion à la base de données GeoPackage
conn = sqlite3.connect(gpkg_path)
conn.enable_load_extension(True)
# Activation des extensions spatiales (nécessaire pour les requêtes géométriques)
conn.execute("SELECT load_extension('mod_spatialite');")
# Exemple 1: Lister les tables disponibles
print("Tables disponibles dans le GeoPackage:")
tables = conn.execute("SELECT name FROM sqlite_master WHERE type='table';").fetchall()
for table in tables:
print(f"- {table[0]}")
# Exemple 2: Exécuter une requête spatiale simple (ex: sélectionner les géométries d'une table)
table_name = "votre_table" # Remplacez par le nom de votre table
query = f"""
SELECT id, ST_AsText(geom) as geometry
FROM {table_name}
LIMIT 5;
"""
print(f"\nExemple de géométries dans la table '{table_name}':")
for row in conn.execute(query):
print(f"ID: {row[0]}, Géométrie: {row[1]}")
# Exemple 3: Requête spatiale avec filtre (ex: sélectionner les objets dans une zone)
# Supposons que vous ayez une table 'batiments' avec une colonne 'geom'
bbox = (48.85, 2.35, 48.86, 2.36) # Exemple de bbox (minx, miny, maxx, maxy)
query = f"""
SELECT id, ST_AsText(geom)
FROM batiments
WHERE ST_Intersects(
geom,
ST_MakeEnvelope({bbox[0]}, {bbox[1]}, {bbox[2]}, {bbox[3]}, 4326)
);
"""
print(f"\nBâtiments dans la bbox {bbox}:")
for row in conn.execute(query):
print(f"ID: {row[0]}, Géométrie: {row[1]}")
# Fermeture de la connexion
conn.close()SELECT name FROM sqlite_master WHERE type='table';import sqlite3
conn = sqlite3.connect("ton_fichier.gpkg")
conn.enable_load_extension(True)
conn.execute("SELECT load_extension('mod_spatialite');")
# Pas besoin de InitSpatialMetaData() !
# Exemple de requête spatiale
result = conn.execute("""
SELECT id, ST_AsText(geom)
FROM ta_table
LIMIT 1;
""").fetchone()
print(result)
conn.close()