The GpxModel class expose la liste des fichiers GPX du sous-dossier de photos.
Plus de détails...
#include <GpxModel.h>
|
| void | refresh (const QUrl &folderUrl) |
| | Vide le modèle et le remplit avec les fichiers GPX trouvés dans les sous-dossiers.
|
| void | selectTrack (int row) |
| | Charge le tracé du fichier GPX sélectionné dans currentTrackPoints.
|
| void | matchPhotos (QObject *photoModelObj, int offsetHours) |
| | Pour chaque photo du modèle, recherche si son horodatage correspond à un point du track. En cas de correspondance, stocke les coordonnées GPS interpolées dans la photo (temporaire).
|
|
|
void | currentTrackPointsChanged () |
| | Emis quand une nouvelle track est chargée.
|
|
void | matchCountChanged () |
| | Emis quand le nombre de photos matchées change.
|
|
void | trackPointCountChanged () |
| | Emis quand le nombre de points du track change.
|
|
void | firstOnTrackFound (int sourceRow) |
| | Émis après matchPhotos() si au moins une photo est sur la track.
|
|
|
QVariantList | currentTrackPoints () const |
|
int | matchCount () const |
|
int | trackPointCount () const |
| | GpxModel (QObject *parent=nullptr) |
| | Constructeur.
|
| int | rowCount (const QModelIndex &parent=QModelIndex()) const override |
| | Retourne le nombre de fichiers GPX dans le modèle.
|
| QVariant | data (const QModelIndex &index, int role=Qt::DisplayRole) const override |
| | Retourne la donnée pour un rôle donné.
|
| QHash< int, QByteArray > | roleNames () const override |
| | Retourne la table de correspondance rôle → nom QML.
|
|
|
QVariantList | currentTrackPoints |
|
int | matchCount |
|
int | trackPointCount |
|
| QString | readStartTime (const QString &filePath) |
| | Détermine le StartTime de la trace GPS.
|
| QString | readNmeaStartTime (const QString &filePath) |
| | Lit le premier $GPRMC valide du fichier .LOG et retourne l'heure de début "HH:MM:SS" (UTC).
|
| QString | readGpxStartTime (const QString &filePath) |
| | Lit la première balise XML "time" du fichier .GPX et retourne l'heure de début "HH:MM:SS" (UTC).
|
| QVector< GpxTrackPoint > | parseTrack (const QString &filePath) |
| | Dispatche vers parseNmeaTrack() ou le parseur GPX/XML selon l'extension du fichier.
|
| QVector< GpxTrackPoint > | parseNmeaTrack (const QString &filePath) |
| | Parse un fichier .LOG Olympus OI.Track et retourne les track-points GPS.
|
| QVector< GpxTrackPoint > | parseGpxTrack (const QString &filePath) |
| | Parse un fichier .GPX et retourne les track-points GPS. Parcourt les balises XML "trkpt" et lit les attributs "lat", "long" et la balise fille "time". Structure GPX : <trkpt lat="..." lon="..."><time>ISO8601</time>...</trkpt>
|
|
|
QVector< GpxFileInfo > | m_files |
| | Liste des fichiers GPX détectés.
|
|
QVector< GpxTrackPoint > | m_currentTrack |
| | Points du track sélectionné (avec timestamps).
|
|
QVariantList | m_currentTrackPoints |
| | Coordonnées seules pour MapPolyline QML.
|
|
int | m_matchCount = 0 |
| | Nombre de photos matchées sur le track courant.
|
|
int | m_trackPointCount = 0 |
| | Nombre de points GPS dans le track courant.
|
The GpxModel class expose la liste des fichiers GPX du sous-dossier de photos.
Les fichiers sont recherchés dans les sous-dossiers "GPX" et "GPSLOG" du dossier de photos courant. L'heure de début de chaque track est extraite du premier élément <time> du fichier XML GPX.
◆ Roles
Rôles exposés au QML.
| Valeurs énumérées |
|---|
| NameRole | Nom du fichier.
|
| FilePathRole | Chemin absolu.
|
| StartTimeRole | Heure de début "HH:MM:SS".
|
◆ GpxModel()
| GpxModel::GpxModel |
( |
QObject * | parent = nullptr | ) |
|
|
explicit |
◆ data()
| QVariant GpxModel::data |
( |
const QModelIndex & | index, |
|
|
int | role = Qt::DisplayRole ) const |
|
override |
Retourne la donnée pour un rôle donné.
- Paramètres
-
| index | : index de la ligne dans le modèle. |
| role | : rôle demandé (NameRole, FilePathRole, StartTimeRole). |
- Renvoie
- QVariant contenant la valeur, ou QVariant vide si index ou rôle invalide.
◆ matchPhotos
| void GpxModel::matchPhotos |
( |
QObject * | photoModelObj, |
|
|
int | offsetHours ) |
|
slot |
Pour chaque photo du modèle, recherche si son horodatage correspond à un point du track. En cas de correspondance, stocke les coordonnées GPS interpolées dans la photo (temporaire).
- Paramètres
-
| photoModelObj | : le PhotoModel (passé comme QObject* pour être appelable depuis QML). |
| offsetHours | : décalage caméra - GPS en heures entières. Exemple : +2 signifie que la caméra affiche 14:00 quand le GPS indique 12:00. |
◆ parseGpxTrack()
| QVector< GpxTrackPoint > GpxModel::parseGpxTrack |
( |
const QString & | filePath | ) |
|
|
private |
Parse un fichier .GPX et retourne les track-points GPS. Parcourt les balises XML "trkpt" et lit les attributs "lat", "long" et la balise fille "time". Structure GPX : <trkpt lat="..." lon="..."><time>ISO8601</time>...</trkpt>
- Paramètres
-
| filePath | : chemin absolu du fichier .GPX. |
- Renvoie
- QVector<GpxTrackPoint> trié chronologiquement (l'ordre du fichier est supposé croissant).
◆ parseNmeaTrack()
| QVector< GpxTrackPoint > GpxModel::parseNmeaTrack |
( |
const QString & | filePath | ) |
|
|
private |
Parse un fichier .LOG Olympus OI.Track et retourne les track-points GPS.
Seules les sentences $GPRMC avec statut "A" (fix valide) sont traitées. Les timestamps sont en UTC (convention NMEA).
- Paramètres
-
| filePath | : chemin absolu du fichier .LOG. |
- Renvoie
- QVector<GpxTrackPoint> trié chronologiquement (l'ordre du fichier est supposé croissant).
◆ parseTrack()
| QVector< GpxTrackPoint > GpxModel::parseTrack |
( |
const QString & | filePath | ) |
|
|
private |
Dispatche vers parseNmeaTrack() ou le parseur GPX/XML selon l'extension du fichier.
- Paramètres
-
| filePath | : chemin absolu du fichier (.gpx ou .LOG). |
- Renvoie
- QVector<GpxTrackPoint> des points du tracé, ou vecteur vide si le fichier est illisible.
◆ readGpxStartTime()
| QString GpxModel::readGpxStartTime |
( |
const QString & | filePath | ) |
|
|
private |
Lit la première balise XML "time" du fichier .GPX et retourne l'heure de début "HH:MM:SS" (UTC).
- Paramètres
-
| filePath | : chemin absolu du fichier .GPX. |
- Renvoie
- "HH:MM:SS" (UTC) ou chaîne vide si aucun fix valide trouvé / fichier illisible.
◆ readNmeaStartTime()
| QString GpxModel::readNmeaStartTime |
( |
const QString & | filePath | ) |
|
|
private |
Lit le premier $GPRMC valide du fichier .LOG et retourne l'heure de début "HH:MM:SS" (UTC).
- Paramètres
-
| filePath | : chemin absolu du fichier .LOG. |
- Renvoie
- "HH:MM:SS" (UTC) ou chaîne vide si aucun fix valide trouvé / fichier illisible.
◆ readStartTime()
| QString GpxModel::readStartTime |
( |
const QString & | filePath | ) |
|
|
private |
Détermine le StartTime de la trace GPS.
- Paramètres
-
| filePath | : chemin absolu du fichier (.gpx ou .LOG). |
- Renvoie
- "HH:MM:SS" (UTC) ou chaîne vide si non trouvé / fichier illisible.
◆ refresh
| void GpxModel::refresh |
( |
const QUrl & | folderUrl | ) |
|
|
slot |
Vide le modèle et le remplit avec les fichiers GPX trouvés dans les sous-dossiers.
Recherche dans <folderUrl>/GPX/ et <folderUrl>/GPSLOG/ (insensible à la casse sur Windows). Les GPX sont dans les sous-dossiers GPX/ ou GPSLOG/. Les fichiers sont triés par ordre alphabétique.
- Paramètres
-
| folderUrl | : URL du dossier de photos actif. |
◆ roleNames()
| QHash< int, QByteArray > GpxModel::roleNames |
( |
| ) |
const |
|
override |
Retourne la table de correspondance rôle → nom QML.
- Renvoie
- Table associant chaque valeur de Roles à son nom exposé en QML.
◆ rowCount()
| int GpxModel::rowCount |
( |
const QModelIndex & | parent = QModelIndex() | ) |
const |
|
override |
Retourne le nombre de fichiers GPX dans le modèle.
- Paramètres
-
| parent | : index parent (doit être invalide pour un modèle à plat). |
- Renvoie
- Nombre d'entrées dans m_files, ou 0 si parent est valide.
◆ selectTrack
| void GpxModel::selectTrack |
( |
int | row | ) |
|
|
slot |
Charge le tracé du fichier GPX sélectionné dans currentTrackPoints.
- Paramètres
-
| row | : index dans le modèle. Passer -1 pour vider le tracé. |
La documentation de cette classe a été générée à partir des fichiers suivants :
- Sources/cpp/Models/GpxModel.h
- Sources/cpp/Models/GpxModel.cpp