Intégrer des photos géolocalisées dans QGis avec Photo2shape

Mise à jour du 19 janvier 2017:

Cet article est obsolète. Pour intégrer des photos géolocalisées dans QGis, référez-vous à l’article : Geotag and import photos remplace photo2shape dans QGis

Dans cet article nous verrons comment créer une couche de points dans QGis contenant les positions et les liens vers des photos « geotaggées ». Pour cela nos allons utiliser le plugin QGis Photo2Shape.

Introduction

Le geotagging consiste à préciser les coordonnées géographiques de photographies en modifiant leurs données (ou tags) EXIF. Les données EXIF (Exchangeable image file format ) d’une photo contiennent diverses informations comme le type d’appareil photo, la date et l’heure de la prise de vue etc…

Si vous disposez d’un appareil pour la prise de vue équipé d’un GPS, les données de géolocalisation peuvent être incluses automatiquement. Par exemple, si vous disposez d’un iPhone vous pouvez activer la géolocalisation des photos (voir comment l’activer sur cette page:How to turn photo geotagging on or off on your iPhone or iPad).

Si non, vous pouvez utiliser des logiciels tels que Locr GPS Photo (gratuit) ou Robogeo (payant) pour inclure une localisation dans vos images.

Pour télécharger le logiciel « Locr GPS Photo for Windows » : http://fr.locr.com/downloads

Pour télécharger le logiciel Robogeo, allez sur cette page :http://www.robogeo.com/home/download.asp

Installation du plugin Photo2Shape

Ce plugin a besoin d’un module Python complémentaire. Vous devez télécharger et installe ce module AVANT d’installer le plugin dans QGis.

Le module complémentaire est ExifRead. Vous pouvez le télécharger ici.

Pour avoir un version actualisée, allez à la page d’accueil du Repository Python: https://pypi.python.org/packages , recherchez exifread avec la fenêtre de recherche et téléchargez la dernière version disponible de exifread en version source (et non en Python wheel).

Pour l’installation, référez-vous à l’article Comment installer des modules complémentaires Python pour ArcGis et QGis .

Une fois ce module installé, ouvrez la console de gestion des extensions de QGis (menu Extension -> Installer/Gérer les extensions). Recherchez le plugin photo2shape et cliquez sur le bouton Installer l’extension.

installation du plugin photo2shape dans qgisAprès l’installation vous verrez le bouton correspondant, qui a été ajouté à la barre d’outils.

bouton photo2shape dans qgisChargement des photos dans QGis

Supposons que vous utilisez un iPhone ou équivalent. La procédure d’intégration des images dans QGis est extrêmement simple.

1- copiez vos images dans un répertoire. Avec la visionneuse de photos Windows, par exemple, assurez vous que les photos sont orientées correctement. Comme vous allez lier les images à la couche créée, les images pourront être visualisées directement avec QGis. Il est donc indispensable qu’elles soient stockées à l’endroit.

Cliquez sur le bouton Photo2Shape pour ouvrir la fenêtre de paramétrage.

paramétrage du plugin photo2shapeIndiquez le répertoire contenant les photos et le nom du fichier shape à créer. Cliquez sur OK. Le résultat s’affiche sur votre fenêtre cartographique de QGis.

résultat du plugin photo2shapeSi vous ouvrez la table associée, vous verrez les différentes informations récupérées à partir des photos originales.

table attributaire des photos chargées dans qgisAffichage des photos dans QGis

Pour afficher automatiquement les photos lors du déplacement de la souris sur un point du shape, nous allons utiliser les infobulles.

  • Ouvrez le menu contextuel de la couche shape créée.
  • Sélectionnez l’item Infobulles
  • Sélectionnez HTML
  • cliquez sur Insérer une expression

paramétrage des infobullesDans la fenêtre Expression tapez la commande suivante:

CONCAT('<img src="',filepath,'" width="400"></img>')

La valeur de width est à adapter selon la taille de vos photos.

expressionde l'infobulle

  • Cliquez sur OK et OK.

Maintenant, quand vous sélectionnez l’outil Infobulles, quand vous vous arrêtez sur un point du shape, l’image apparaît automatiquement.

résultat des infobulles

 

 

 

 

43 pensées sur “Intégrer des photos géolocalisées dans QGis avec Photo2shape”

  1. Bonjour,

    Votre article est très intéressant et la fonction Photo2Shape très intéressante à vous lire.
    J’utilise QGis 2.8.9 LTR.

    J’ai intégré ExifRead 2.1.2 dans C:\Program Files\QGIS Wien\apps\Python27\lib ; le module Photo2Shape ne fonctionne toujours pas (j’ai aussi essayé avec les versions antérieures de exifread sans succès).

    J’ai par contre utilisé une ancienne version (QGIS2.6) avec ExifRead 2.1.2 et le module s’installe; par contre, il n’apparaît pas dans l’interface graphique de QGis.

    Pourriez-vous m’éclairer sur le sujet ?

    1. En effet, il y a un souci avec le plugin. Voici une réponse que je viens de faire dans un forum et qui peut-être résout votre problème

      « Confronté au même problème, j’ai trouvé comment contourner le problème.
      Il y a une erreur dans le script python du plugin.
      J’ai commencé par télécharger le plugin pour une installation manuelle -> copié le répertoire « photo2shape » du téléchargement dans QGIS Essen/apps/qgis/plugins (remplacer Essen par le nom de votre version)
      Dans ce répertoire vous avez le fichier photo2shape_plugin.py
      Ouvrez-le avec un éditeur de texte (NotePad en mode administrateur fait l’affaire, comme on est dans le répertoire Programmes on ne peut pas faire n’importe quoi…)
      Cherchez les lignes suivantes:
      if os.path.exists(qmPath):
      self.translator = QTranslator()
      self.translator.load(translationPath)
      QCoreApplication.installTranslator(self.translator )

      Modifiez la ligne
      self.translator.load(translationPath)
      en
      self.translator.load(qmPath)

      Enregistrez le fichier
      Et c’est tout
      Photo2shape aura perdu sa fâcheuse couleur rouge dans le gestionnaire d’extensions de QGis. N’oubliez pas de la cocher pour l’activer. »

      1. Rien n’y fait …

        J’ai téléchargé la dernière version « essen » et appliquer votre solution, sans résultat.

        J’obtient ce message d’erreur:

        Impossible de charger l’extension photo2shape provoque une erreur lors de l’appel de sa méthode classFactory()

        ImportError: No module named exifread
        Traceback (most recent call last):
        File « C:/PROGRA~1/QGISES~1/apps/qgis/./python\qgis\utils.py », line 306, in startPlugin
        plugins[packageName] = package.classFactory(iface)
        File « C:/Users/m.hennequin/.qgis2/python/plugins\photo2shape\__init__.py », line 30, in classFactory
        from photo2shape.photo2shape_plugin import Photo2ShapePlugin
        File « C:/PROGRA~1/QGISES~1/apps/qgis/./python\qgis\utils.py », line 572, in _import
        mod = _builtin_import(name, globals, locals, fromlist, level)
        File « C:/Users/m.hennequin/.qgis2/python/plugins\photo2shape\photo2shape_plugin.py », line 35, in
        from photo2shape.gui.photo2shapedialog import Photo2ShapeDialog
        File « C:/PROGRA~1/QGISES~1/apps/qgis/./python\qgis\utils.py », line 572, in _import
        mod = _builtin_import(name, globals, locals, fromlist, level)
        File « C:/Users/m.hennequin/.qgis2/python/plugins\photo2shape\gui\photo2shapedialog.py », line 37, in
        from photo2shape.photoimporter import PhotoImporter
        File « C:/PROGRA~1/QGISES~1/apps/qgis/./python\qgis\utils.py », line 572, in _import
        mod = _builtin_import(name, globals, locals, fromlist, level)
        File « C:/Users/m.hennequin/.qgis2/python/plugins\photo2shape\photoimporter.py », line 30, in
        import exifread
        File « C:/PROGRA~1/QGISES~1/apps/qgis/./python\qgis\utils.py », line 572, in _import
        mod = _builtin_import(name, globals, locals, fromlist, level)
        ImportError: No module named exifread

        Version de Python : 2.7.5 (default, May 15 2013, 22:44:16) [MSC v.1500 64 bit (AMD64)]
        Version de QGIS : 2.14.3-Essen Essen, cf2ebb8

        Chemin Python :
        C:/PROGRA~1/QGISES~1/apps/qgis/./python/plugins\processing
        C:/PROGRA~1/QGISES~1/apps/qgis/./python
        C:/Users/m.hennequin/.qgis2/python
        C:/Users/m.hennequin/.qgis2/python/plugins
        C:/PROGRA~1/QGISES~1/apps/qgis/./python/plugins
        C:\PROGRA~1\QGISES~1\apps\Python27\lib\site-packages\matplotlib-1.3.1-py2.7-win-amd64.egg
        C:\PROGRA~1\QGISES~1\apps\Python27\lib\site-packages\nose-1.3.3-py2.7.egg
        C:\PROGRA~1\QGISES~1\apps\Python27\lib\site-packages\tornado-4.0.1-py2.7-win-amd64.egg
        C:\PROGRA~1\QGISES~1\apps\Python27\lib\site-packages\backports.ssl_match_hostname-3.4.0.2-py2.7.egg
        C:\PROGRA~1\QGISES~1\apps\Python27\lib\site-packages\certifi-14.05.14-py2.7.egg
        C:\PROGRA~1\QGISES~1\bin\python27.zip
        C:\PROGRA~1\QGISES~1\apps\Python27\DLLs
        C:\PROGRA~1\QGISES~1\apps\Python27\lib
        C:\PROGRA~1\QGISES~1\apps\Python27\lib\plat-win
        C:\PROGRA~1\QGISES~1\apps\Python27\lib\lib-tk
        C:\PROGRA~1\QGISES~1\bin
        C:\PROGRA~1\QGISES~1\apps\Python27
        C:\PROGRA~1\QGISES~1\apps\Python27\lib\site-packages
        C:\PROGRA~1\QGISES~1\apps\Python27\lib\site-packages\PIL
        C:\PROGRA~1\QGISES~1\apps\Python27\lib\site-packages\jinja2-2.7.2-py2.7.egg
        C:\PROGRA~1\QGISES~1\apps\Python27\lib\site-packages\markupsafe-0.23-py2.7-win-amd64.egg
        C:\PROGRA~1\QGISES~1\apps\Python27\lib\site-packages\pytz-2012j-py2.7.egg
        C:\PROGRA~1\QGISES~1\apps\Python27\lib\site-packages\win32
        C:\PROGRA~1\QGISES~1\apps\Python27\lib\site-packages\win32\lib
        C:\PROGRA~1\QGISES~1\apps\Python27\lib\site-packages\Pythonwin
        C:\PROGRA~1\QGISES~1\apps\Python27\lib\site-packages\Shapely-1.2.18-py2.7-win-amd64.egg
        C:\PROGRA~1\QGISES~1\apps\Python27\lib\site-packages\wx-2.8-msw-unicode
        C:\PROGRA~1\QGISES~1\apps\Python27\lib\site-packages\xlrd-0.9.2-py2.7.egg
        C:\PROGRA~1\QGISES~1\apps\Python27\lib\site-packages\xlwt-0.7.5-py2.7.egg
        C:/Users/m.hennequin/.qgis2//python
        C:\PROGRA~1\QGISES~1\apps\qgis\python\plugins\fTools\tools

          1. Bonjour,

            J’ai suivi à la lettre les étapes indiquées, j’ai recommencé la procédure en mode administrateur et j’ai malheureusement toujours ce message:

            Impossible de charger l’extension photo2shape provoque une erreur lors de l’appel de sa méthode classFactory()

            NameError: global name ‘translationPath’ is not defined
            Traceback (most recent call last):
            File « C:/PROGRA~1/QGISES~1/apps/qgis/./python\qgis\utils.py », line 306, in startPlugin
            plugins[packageName] = package.classFactory(iface)
            File « C:/Users/adminfrw/.qgis2/python/plugins\photo2shape\__init__.py », line 31, in classFactory
            return Photo2ShapePlugin(iface)
            File « C:/Users/adminfrw/.qgis2/python/plugins\photo2shape\photo2shape_plugin.py », line 59, in __init__
            self.translator.load(translationPath)
            NameError: global name ‘translationPath’ is not defined

            Version de Python : 2.7.5 (default, May 15 2013, 22:44:16) [MSC v.1500 64 bit (AMD64)]
            Version de QGIS : 2.14.3-Essen Essen, cf2ebb8

            Chemin Python :
            C:/Users/adminfrw/.qgis2/python/plugins\processing
            C:/PROGRA~1/QGISES~1/apps/qgis/./python
            C:/Users/adminfrw/.qgis2/python
            C:/Users/adminfrw/.qgis2/python/plugins
            C:/PROGRA~1/QGISES~1/apps/qgis/./python/plugins
            C:\PROGRA~1\QGISES~1\apps\Python27\lib\site-packages\matplotlib-1.3.1-py2.7-win-amd64.egg
            C:\PROGRA~1\QGISES~1\apps\Python27\lib\site-packages\nose-1.3.3-py2.7.egg
            C:\PROGRA~1\QGISES~1\apps\Python27\lib\site-packages\tornado-4.0.1-py2.7-win-amd64.egg
            C:\PROGRA~1\QGISES~1\apps\Python27\lib\site-packages\backports.ssl_match_hostname-3.4.0.2-py2.7.egg
            C:\PROGRA~1\QGISES~1\apps\Python27\lib\site-packages\certifi-14.05.14-py2.7.egg
            C:\PROGRA~1\QGISES~1\bin\python27.zip
            C:\PROGRA~1\QGISES~1\apps\Python27\DLLs
            C:\PROGRA~1\QGISES~1\apps\Python27\lib
            C:\PROGRA~1\QGISES~1\apps\Python27\lib\plat-win
            C:\PROGRA~1\QGISES~1\apps\Python27\lib\lib-tk
            C:\PROGRA~1\QGISES~1\bin
            C:\PROGRA~1\QGISES~1\apps\Python27
            C:\PROGRA~1\QGISES~1\apps\Python27\lib\site-packages
            C:\PROGRA~1\QGISES~1\apps\Python27\lib\site-packages\PIL
            C:\PROGRA~1\QGISES~1\apps\Python27\lib\site-packages\jinja2-2.7.2-py2.7.egg
            C:\PROGRA~1\QGISES~1\apps\Python27\lib\site-packages\markupsafe-0.23-py2.7-win-amd64.egg
            C:\PROGRA~1\QGISES~1\apps\Python27\lib\site-packages\pytz-2012j-py2.7.egg
            C:\PROGRA~1\QGISES~1\apps\Python27\lib\site-packages\win32
            C:\PROGRA~1\QGISES~1\apps\Python27\lib\site-packages\win32\lib
            C:\PROGRA~1\QGISES~1\apps\Python27\lib\site-packages\Pythonwin
            C:\PROGRA~1\QGISES~1\apps\Python27\lib\site-packages\Shapely-1.2.18-py2.7-win-amd64.egg
            C:\PROGRA~1\QGISES~1\apps\Python27\lib\site-packages\wx-2.8-msw-unicode
            C:\PROGRA~1\QGISES~1\apps\Python27\lib\site-packages\xlrd-0.9.2-py2.7.egg
            C:\PROGRA~1\QGISES~1\apps\Python27\lib\site-packages\xlwt-0.7.5-py2.7.egg
            C:/Users/adminfrw/.qgis2//python
            C:\PROGRA~1\QGISES~1\apps\qgis\python\plugins\fTools\tools

          2. Bonjour, merci pour cette réponse.
            Malheureusement, cela ne fonctionne toujours pas.

            J’ai veiller à suivre la procédure, je l’ai faite en mode administrateur mais photo2shape ne fonctionne toujours pas …

            Pouvez-vous m’éclairer ?
            Voici mon message d’erreur:

            Impossible de charger l’extension photo2shape provoque une erreur lors de l’appel de sa méthode classFactory()

            NameError: global name ‘translationPath’ is not defined
            Traceback (most recent call last):
            File « C:/PROGRA~1/QGISES~1/apps/qgis/./python\qgis\utils.py », line 306, in startPlugin
            plugins[packageName] = package.classFactory(iface)
            File « C:/Users/adminfrw/.qgis2/python/plugins\photo2shape\__init__.py », line 31, in classFactory
            return Photo2ShapePlugin(iface)
            File « C:/Users/adminfrw/.qgis2/python/plugins\photo2shape\photo2shape_plugin.py », line 59, in __init__
            self.translator.load(translationPath)
            NameError: global name ‘translationPath’ is not defined

            Version de Python : 2.7.5 (default, May 15 2013, 22:44:16) [MSC v.1500 64 bit (AMD64)]
            Version de QGIS : 2.14.3-Essen Essen, cf2ebb8

            Chemin Python :
            C:/Users/adminfrw/.qgis2/python/plugins\processing
            C:/PROGRA~1/QGISES~1/apps/qgis/./python
            C:/Users/adminfrw/.qgis2/python
            C:/Users/adminfrw/.qgis2/python/plugins
            C:/PROGRA~1/QGISES~1/apps/qgis/./python/plugins
            C:\PROGRA~1\QGISES~1\apps\Python27\lib\site-packages\matplotlib-1.3.1-py2.7-win-amd64.egg
            C:\PROGRA~1\QGISES~1\apps\Python27\lib\site-packages\nose-1.3.3-py2.7.egg
            C:\PROGRA~1\QGISES~1\apps\Python27\lib\site-packages\tornado-4.0.1-py2.7-win-amd64.egg
            C:\PROGRA~1\QGISES~1\apps\Python27\lib\site-packages\backports.ssl_match_hostname-3.4.0.2-py2.7.egg
            C:\PROGRA~1\QGISES~1\apps\Python27\lib\site-packages\certifi-14.05.14-py2.7.egg
            C:\PROGRA~1\QGISES~1\bin\python27.zip
            C:\PROGRA~1\QGISES~1\apps\Python27\DLLs
            C:\PROGRA~1\QGISES~1\apps\Python27\lib
            C:\PROGRA~1\QGISES~1\apps\Python27\lib\plat-win
            C:\PROGRA~1\QGISES~1\apps\Python27\lib\lib-tk
            C:\PROGRA~1\QGISES~1\bin
            C:\PROGRA~1\QGISES~1\apps\Python27
            C:\PROGRA~1\QGISES~1\apps\Python27\lib\site-packages
            C:\PROGRA~1\QGISES~1\apps\Python27\lib\site-packages\PIL
            C:\PROGRA~1\QGISES~1\apps\Python27\lib\site-packages\jinja2-2.7.2-py2.7.egg
            C:\PROGRA~1\QGISES~1\apps\Python27\lib\site-packages\markupsafe-0.23-py2.7-win-amd64.egg
            C:\PROGRA~1\QGISES~1\apps\Python27\lib\site-packages\pytz-2012j-py2.7.egg
            C:\PROGRA~1\QGISES~1\apps\Python27\lib\site-packages\win32
            C:\PROGRA~1\QGISES~1\apps\Python27\lib\site-packages\win32\lib
            C:\PROGRA~1\QGISES~1\apps\Python27\lib\site-packages\Pythonwin
            C:\PROGRA~1\QGISES~1\apps\Python27\lib\site-packages\Shapely-1.2.18-py2.7-win-amd64.egg
            C:\PROGRA~1\QGISES~1\apps\Python27\lib\site-packages\wx-2.8-msw-unicode
            C:\PROGRA~1\QGISES~1\apps\Python27\lib\site-packages\xlrd-0.9.2-py2.7.egg
            C:\PROGRA~1\QGISES~1\apps\Python27\lib\site-packages\xlwt-0.7.5-py2.7.egg
            C:/Users/adminfrw/.qgis2//python
            C:\PROGRA~1\QGISES~1\apps\qgis\python\plugins\fTools\tools

  2. Bonjour,

    Merci pour cet article, j’avais le même problème mais en mettant à jour le fichier photo2shape_plugin.py (et en enlevant l’accent du nom du dossier de chemin d’accès que j’avais) ça marche nickel!

    Viz

  3. Bonour,

    excellent article et excellent tutoriel, qui m’a été très utile!

    J’ai néanmoins une petite interrogation. J’ai réalisé un projet qui me permet d’avoir sur un fond raster la localisation de photo grace à Photo2shape et votre article. J’aurais aimé le partager avec le responsable de l’étude que je mène. Or étant stagiaire je n’ai pas accès au réseau sur mon PC, le seul moyen de partage est donc la clef USB. Après test, il semblerait que les chemins des images soient des chemins absolue, ils sont donc faussé quand on passe d’un ordinateur a un autre. Pour l’instant, le seul moyen que nous ayons trouvé est de modifier le chemin des photos manuellement dans la table attributaire. C’est correct pour quelques photos, mais ça risque de devenir très laborieux lorsque l’étude sera terminée et qu’il y aura un nombre important de photos… Existe-t-il un moyen de palier a ce problème?

    1. Il y a en effet plein de possibilités pour palier à ce problème. D’une manière générale on peut dire qu’il faut utiliser les « Actions ». Mais dans ce cas particulier il suffit de changer la commande de concaténation du lien html
      CONCAT(‘’)
      Filepath est le hamp dont vous parlez, mais il y a un deuxième champ créé appelé « filename » qui contient seulement le nom du fichier photo. Remplacez filepath par « nouveau chemin »,filename et ça devrait marcher

      1. Bonjour,

        D’abord, je vous remercie pour cette réponse rapide!

        Par contre la solution donnée n’a pas fonctionné chez moi, mais peut-être ai-je mal compris?
        j’ai essayé avec les codes HTML suivants:
        CONCAT( »)
        et
        CONCAT( »)
        Mais les deux me renvoient une image vide (http://zupimages.net/up/16/30/w3pb.png).

        Je vais essayer de trouver une solution de mon côté, mais tout aide sera le bienvenu^^

        (j’ai oublié de préciser, je travaille avec QGIS 2.14 Essen sur MacOS.)

        1. (je viens de constater que le site avait fait sauter les codes que j’ai testés ^^’ j’enlève donc les parenthèses en espérant qu’ils s’afficheront)
          CONCAT  »
          CONCAT  »

        2. Désolé mais je suis en congés avec des conditions informatiques minimales (mon iphone). Je ne me suis pas rendu compte que dans ma réponse il y avait des caractères spéciaux qui ont tronqué le texte.
          Il ne fallait pas voir concat(«  ») mais la ligne complète de l’article: CONCAT( img src=,filepath, width=”400″>/img) .J’ai enlevé les caractères ‘ et < pour que le texte ne disparaisse pas. Reportez vous à l'article pour avoir la vrai syntaxe. Remplacez filepath dans cette ligne par le path entre simple côtes, une virgule et filename (sans côtes car c'est un nom de champ).

          1. J’avais pris en compte la syntaxe d’origine du code HTML, ne remplaçant que filepath, mais le site internet a fait disparaitre le code^^ »
            je viens de réessayer avec :
            CONCAT({simple côtes}img src={double côtes}{simple côtes},{simple côtes}path{simple côtes},filename,{simple côtes}{double côtes}width={double côtes}400{double côtes}>/img) (en retirant les < pour que le code s'affiche ici)
            donc en remplaçant juste filepath dans la syntaxe de l'article par {simple côtes}path{simple côtes},filename ; mais sans succès

            Je vous remercie quand même et ne vais pas vous déranger plus longtemps pendant vos congés^^

  4. Pour dire vrai j’ai essayé le deux (avec le chemin où sont stockées mes images ET avec juste le texte « path »), un peu en désespoir de cause

      1. Je n’y avait pas pensé, mais après essais ça ne fonctionne pas non plus chez moi…

        Je pense que je vais essayer de trouver une autre solution pour le partage, ne voulant pas abuser de votre temps. Je vous remercie énormément et vous souhaite une bonne journée^^

  5. Bonjour,

    je tente d’utiliser photo2shape. J’ai suivi différents tutoriels et réussi à bypasser les problèmes d’installation dont celui du plugin, exifread, et python27.

    Un coup Photo2shape installé, quand je veux télécharger des photos, on me répond : erreur python survenue lors de l’exécution du code python. ca plante et tout ferme.

    est ce un problème de compatibilité de versions ou un problème avec python?

    pouvez vous m’aider?
    merci d’avance!

    1. Celui-là c’est nouveau! Je ne l’ai jamais rencontré, donc,pas de solution toute prête.
      Quelque chose me met la puce à l’oreille: vous avez installé Python 27? Normalement c’est déjà fait avec l’installation de QGis.
      Pour mieux chercher: quelle version de QGis utilisez-vous?
      Si vous avez installé Python, dans quel répertoire l’avez-vous installé?

      1. j’utilise la version 2.16 et le python qui était deja installé, soit le 27.
        J’ai suivi votre procédure dans une réponse du 20 mai en remplaçant self.translator.load(…) pour …(qmPath) pour le problème avec le plugin.

        ça vous dis quelque chose?
        merci encore!

          1. Bonjour,

            j’ai révisé mes procédures et je ne voit pas ce que je fais de pas correct.

            voici le message d’erreur:

            2016-08-08T09:09:33 1 Traceback (most recent call last):
            File « C:/Users/travauxpublics/.qgis2/python/plugins\photo2shape\photoimporter.py », line 119, in importPhotos
            north, azimuth = self._extractDirection(tags)
            File « C:/Users/travauxpublics/.qgis2/python/plugins\photo2shape\photoimporter.py », line 255, in _extractDirection
            azimuth = float(v.num) if v.den == 1 else (v.num * 1.0) / v.den
            ZeroDivisionError: float division by zero

            Sinon, les photos que je tente de charger, proviennent d’une caméra NikoncoolPix aw100, dont les coordonnées géographiques sont présentées en deg-min-sec. pensez vous que ca peut être le problème (données exifread)?

            merci encore!

  6. merci pour le lien! l’exif de mes photos est effectivement bien lu.
    Je vais tout déinstaller et réinstaller du commencement pour voir.

    merci pour votre aide.

    1. Bonjour Valérie (et les autres!),
      Même problème chez moi, avec osgeo 2.18 (et 2.16). Avez-vous pu trouver une solution?

      Pour alimenter un peu le problème :
      En cherchant un peu, le log affiche une erreur (qui dump) en appelant photoimporter.py :
      line 65, in importPhotos
      if exifread.__version__==’2.0.0′:
      AttributeError:’module’ object has no attribute’__version__’
      J’en déduis qu’Exifread est mal installé ou paramétré. J’ai pourtant la version 2.1.2 bien présente dans site-packages.
      Quelqu’un à une idée?
      merci d’avance

  7. Bonjour,
    Malgré plusieurs essais je ne parvient pas a faire fonctionné les infobulles

    Message d’erreur de l’éditeur d’expression :
    Erreur d’analyse:
    syntax error, unexpected COLUMN_REF, expecting COMMA or ‘)’
    Erreur d’évaluation:
    Pas de nœud racine !

    avez vous une piste

    1. Il ne faut surtout pas faire de copier-coller entre l’article et la fenêtre d’expression de QGis. Les apostrophes et guillemets html ne sont pas du tout compatibles avec la fenêtyre d’expression.
      Retapez la commande en utilisant l’apostrophe (touche du chiffre 4) et les guillemets (touche du chiffre 3) de votre clavier.
      CONCAT(apostrophe img src= guillemet apostrophe ,filepath, apostrophe guillemet width= guillemet 400 guillemet >/img> apostrophe)
      J’ai enlevé des < de la ligne précédente car si non elle n'est pas affichée ici)

  8. Merci de votre réponse rapide
    j’ai donc recopié scrupuleusement l’ensemble, malheureusement l’éditeur d’expression me refuse la touche OK
    l’expression est invalide
    Erreur d’analyse:
    syntax error, unexpected NUMBER_INT, expecting COMMA or ‘)’
    Erreur d’évaluation:
    Pas de nœud racine !

    Je suis sur Qgis 2.16

  9. Hourra!
    Un grand merci pour votre aide.

    Après quelques essais infructueux et après avoir un peu cherché, j’ai installé le module photo2shape à la fois dans le dossier programme sur le c: et dans mon dossier d’utilisateur comme proposé dans ce message: http://www.sigterritoires.fr/index.php/resoudre-les-problemes-dinstallation-de-photo2shape-qgis/

    et cela marche !!!

    Il n’y a plus qu’à l’utiliser maintenant.

    Encore merci.

    1. Horreur, j’ai parlé trop vite.

      Le module s’est bien installé, mais il ne fonctionne pas …

      Voici le message d’erreur:

      Une erreur est survenue lors de l’éxécution du code Python:

      AttributeError: ‘Photo2ShapeDialog’ object has no attribute ‘encoding’
      Traceback (most recent call last):
      File « C:/Users/m.hennequin/.qgis2/python/plugins\photo2shape\gui\photo2shapedialog.py », line 143, in accept
      self.importer.setEncoding(self.encoding)
      AttributeError: ‘Photo2ShapeDialog’ object has no attribute ‘encoding’

      Version de Python : 2.7.5 (default, May 15 2013, 22:44:16) [MSC v.1500 64 bit (AMD64)]
      Version de QGIS : 2.14.3-Essen Essen, cf2ebb8

      Chemin Python :
      C:/PROGRA~1/QGISES~1/apps/qgis/./python/plugins\processing
      C:/PROGRA~1/QGISES~1/apps/qgis/./python
      C:/Users/m.hennequin/.qgis2/python
      C:/Users/m.hennequin/.qgis2/python/plugins
      C:/PROGRA~1/QGISES~1/apps/qgis/./python/plugins
      C:\PROGRA~1\QGISES~1\apps\Python27\lib\site-packages\matplotlib-1.3.1-py2.7-win-amd64.egg
      C:\PROGRA~1\QGISES~1\apps\Python27\lib\site-packages\nose-1.3.3-py2.7.egg
      C:\PROGRA~1\QGISES~1\apps\Python27\lib\site-packages\tornado-4.0.1-py2.7-win-amd64.egg
      C:\PROGRA~1\QGISES~1\apps\Python27\lib\site-packages\backports.ssl_match_hostname-3.4.0.2-py2.7.egg
      C:\PROGRA~1\QGISES~1\apps\Python27\lib\site-packages\certifi-14.05.14-py2.7.egg
      C:\PROGRA~1\QGISES~1\bin\python27.zip
      C:\PROGRA~1\QGISES~1\apps\Python27\DLLs
      C:\PROGRA~1\QGISES~1\apps\Python27\lib
      C:\PROGRA~1\QGISES~1\apps\Python27\lib\plat-win
      C:\PROGRA~1\QGISES~1\apps\Python27\lib\lib-tk
      C:\PROGRA~1\QGISES~1\bin
      C:\PROGRA~1\QGISES~1\apps\Python27
      C:\PROGRA~1\QGISES~1\apps\Python27\lib\site-packages
      C:\PROGRA~1\QGISES~1\apps\Python27\lib\site-packages\PIL
      C:\PROGRA~1\QGISES~1\apps\Python27\lib\site-packages\jinja2-2.7.2-py2.7.egg
      C:\PROGRA~1\QGISES~1\apps\Python27\lib\site-packages\markupsafe-0.23-py2.7-win-amd64.egg
      C:\PROGRA~1\QGISES~1\apps\Python27\lib\site-packages\pytz-2012j-py2.7.egg
      C:\PROGRA~1\QGISES~1\apps\Python27\lib\site-packages\win32
      C:\PROGRA~1\QGISES~1\apps\Python27\lib\site-packages\win32\lib
      C:\PROGRA~1\QGISES~1\apps\Python27\lib\site-packages\Pythonwin
      C:\PROGRA~1\QGISES~1\apps\Python27\lib\site-packages\Shapely-1.2.18-py2.7-win-amd64.egg
      C:\PROGRA~1\QGISES~1\apps\Python27\lib\site-packages\wx-2.8-msw-unicode
      C:\PROGRA~1\QGISES~1\apps\Python27\lib\site-packages\xlrd-0.9.2-py2.7.egg
      C:\PROGRA~1\QGISES~1\apps\Python27\lib\site-packages\xlwt-0.7.5-py2.7.egg
      C:/Users/m.hennequin/.qgis2//python
      C:\PROGRA~1\QGISES~1\apps\qgis\python\plugins\fTools\tools
      B:/CARTOGRAPHIE/GIS/2_PROJECT

      Pouvez-vous m’aider ?

      1. Désolé, mais cette erreur je ne l’ai jamais eue!
        La seule chose que je peux vous dire c’est que d’après le message, self.importer.setEncoding(self.encoding) self.encoding est vide.
        Essayez de remplacer dans C:/Users/m.hennequin/.qgis2/python/plugins\photo2shape\gui\photo2shapedialog.py, sur la ligne 143
        self.importer.setEncoding(self.encoding) par self.importer.setEncoding(‘utf-8’)

  10. Bonsoir,
    à mon tour je viens alimenter cette page avec mon problème :
    Il me semble avoir installé correctement exifread et photo2shape sur QGIS 2.14.8, je peux ouvrir le module de photo2shape, je rentre le dossier de photos dont je veux extraire les coordonnées mais lorsque je lance « l’extraction » en cliquant sur OK, QGIS me sort ce message : Erreur Pyhton : une erreur est survenue, voir le journal des erreurs python pour plus de détails », après ce message, quoi que j’essaie de faire, QGIS plante en me disant qu’un mini dump a été déposé dans un répertoire. Du coup je sais pas comment faire pour trouver l’historique des erreurs de Python.
    Qu’est ce que je peux essayer pour résoudre ça ?

  11. Bonjour et un grand merci à vous pour l’aide à l’installation de photo2shape!
    Il semble enfin fonctionner chez moi, il charge les photos et me crée sans problème le shp de points par contre quand j’essaye d’utiliser les infobulles avec l’expression;
    CONCAT( »)
    (j’ai du remplacé les guillemets doubles et simples de l’exemple pour qu’il la considère comme valide) il valide d’expression mais n’affiche pas l’aperçu de l’image mais seulement le début du chemin d’accès suivi par « … »
    Quand je valide et que j’utilise l’infobulle sur un point rien ne se passe.
    Auriez-vous une idée? Est ce que le chemin d’accès peut être trop long?
    En vous remerciant
    Cordialement

    1. Désolé pour le problème des guillemets.J’ai remis à jour l’article et maintenant vous pouvez bien copier-coller la chaîne concat.
      C’est le problème d’utiliser des balises html (vous remarquerez qu’elles disparaissent dans vos commentaires) J’utilise wordpress pour mon blog et il y a un problème ennuyeux: pour que les guillemets apparaissent dans le texte il faut les remplacer par le code html (& quot; pour les guillemets et & #039; pour les apostrophes) Mais si je reviens sur l’article pour faire une modification , ces codes disparaissent remplacé par des guillemets, qui eux sont affichés comme guillemets typographiques. Bref! Dans l’article original, c’était bien. Quand j’ai fait une mise à jour de l’article cela a tout chamboulé.
      Maintenant tout est rentré dans l’ordre.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *