Message posté par : lylambda
----------------------------------------
Bonjour,
Si le besoin est d’intégrer les photos dans une couche/base de donnée géographique, je ne
saurais aider. Peut être quelqu’un d'autre apportera une solution spécfique.
Par contre il est possible de stocker des photos géoréferencés dans un dossier (ou une
arborescence de dossier) en l'accompagnant d'une couche géographique les
localisant et les affichant dans QGIS.
Comme l'indique Joseph, pour que le déplacement de ce dossier de photos ne
"casse" les liens contenue dans la couche, il faut utiliser un style basé sur
des variables relatives.
Concrètement voici la procédure que je suis :
1. Classement et éventuellement renommage de mes photos géoreferencés dans un dossier
(avec des sous-dossiers au besoins, cela ne change rien)
2. Dans QGIS, création d'un géopackage à l'aide du traitement "Importer des
photos géolocalisées". Le gpkg est créé dans le dossier photo (le dossier
"racine" si il y a une arborescence de sous-dossiers)
3. Création de champs VIRTUELS :
- Ouvrir "Propriétés de la couche" > "Champs" > Bouton
"Calculatrice de champ" > Cocher "Créer un champ virtuel". Remplir
les "Nom" et "Expression" suivantes.
- "Dossier", basé la variable layer_property(@layer_id,'source'). Pour
faire simple, le code suivant indique automatiquement le dossier où se situe le gpkg
référençant toutes les photos. Oui c'est pas très propre, mais ça marche sur Windows
comme sur Linux !
-----------------
Code :
replace((regexp_replace( left( layer_property(@layer_id,'source'), 4+strpos(
layer_property(@layer_id,'source') ,'.gpkg')), '/' ||
'(\\w+)' || '.gpkg', '') || '/'), array('//',
'\\\\'), array('/','\\'))
-----------------
- "Fichier", basé sur les champs automatiquement créé par le traitement
"Importer des photos géolocalisées" de QGIS (C'est à adapter si la photo est
par exemple généré dans QField, mais ce n'est pas le sujet ici). Le code ci-dessous
renvoi le nom du fichier photo pour chaque entité du gpkg.
-----------------
Code :
replace( "photo" , "directory"||'\\' ,'')
-----------------
- "Chemin", qui concatène les 2 précédentes variable pour créer à la volée le
chemin où est situé chaque photo dans le dossier photo (ou ses sous-dossier).
-----------------
Code :
"Dossier"||"Fichier"
-----------------
4. OPTIONNEL / Afficher les miniatures des photos dans QGIS :
- Ouvrir "Propriétés de la couche" > "Symbologie" > Encart
"Symbole" > Sélectionner "Symbole image raster" > Bouton
"Valeur définie par des données (expression)" à droite du chemin à renseigner
> "Editer..." > Encart "Expression", choisir notre champ virtuel
-----------------
Code :
"Chemin"
-----------------
5. OPTIONNEL / Afficher la photo correspondante lorsque la souris survol une entité dans
QGIS :
- Ouvrir "Propriétés de la couche" > "Infobulles" > Encart
Infobulle "HTML"
-----------------
Code :
<img src="file:/[%"Chemin"%]"; style='max-width: 400px;
max-height: 400px;' > </img>
<div style="font-size:16px; text-align:center"> [% "filename" %]
</div>
-----------------
6. OPTIONNEL / Ouvrir une photo dans la visionneuse au clic-action sur une entité :
- Ouvrir "Propriétés de la couche" > "Actions" > Bouton
"+"
- Type , choisir "Ouvrir l'URL"
- Description, écrire "Photo" (ou tout autre nom)
- Action
-----------------
Code :
file:/[% "Chemin" %]"
-----------------
7. Enregistrer le style DANS le gpkg
- Ouvrir "Propriétés de la couche" > Bouton "Style" en bas >
"Enregistrer le style..." >
- Enregistrer le style "Sans la base de données (Géopackage)"
- Nom du style "defaut" (ou tout autre nom, peu importe)
- Cocher "Utiliser comme style par défaut pour cette couche
En ce qui me concerne le style est saugardé en qml, et un "Modele" automatise en
partie ce processus de création de couche de photos géoréferencées.
En tout cas, je peux ensuite renommer/déplacer/transmettre le dossier contenant le gpkg et
les photos, sans que les chemins soient cassées.
----------------------------------------
Le message est situé
https://georezo.net/forum/viewtopic.php?pid=342230#p342230
Pour y répondre : qgis_fr(a)ml.georezo.net ou reply de votre messagerie
Pour vous désabonner connectez-vous sur le forum puis Profil / Abonnement
--
Association GeoRezo - le portail géomatique
https://georezo.net