<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic How to use QML Extras ExifInfo &amp; FileInfo classes? in Qt Maps SDK Questions</title>
    <link>https://community.esri.com/t5/qt-maps-sdk-questions/how-to-use-qml-extras-exifinfo-fileinfo-classes/m-p/311820#M1551</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;As part of a QML QtQuick app I'm working on, I want to retrieve certain photo file metadata: latitude, longitude, and file-create date. To this end, I've tried to use the ExifInfo class in ArcGISExtras 1.1. However, it doesn't seem to be working for me.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;When I set ExifInfo.filePath, the resulting ExifInfo.isExifValid is always false, and the gpsLongitude and gpsLatitude properties are always NaN. Not even the undocumented refresh() method seems to do anything. I have verified that the filePath and url properties do change properly after this. I've tried this on Windows 10 and Android 9.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Do you have a sample that might show how to set the file and retrieve its EXIF properties? The doc page sample is lacking a little context.&lt;BR /&gt;&lt;A class="link-titled" href="https://developers.arcgis.com/qt/latest/extras/api-reference/qml-esri-arcgisextras-exifinfo.html" title="https://developers.arcgis.com/qt/latest/extras/api-reference/qml-esri-arcgisextras-exifinfo.html"&gt;ExifInfo QML Type | ArcGIS for Developers&lt;/A&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;[Edit]&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;A little trial and error showed me that it works to set ExifInfo.filePath with a value like "c:/photos/photo1.jpg" rather than using a url-style value such as "file:///c:/photos/photo1.jpg", and that setting the url property doesn't work.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Thu, 10 Jan 2019 23:30:33 GMT</pubDate>
    <dc:creator>MarkDeaton</dc:creator>
    <dc:date>2019-01-10T23:30:33Z</dc:date>
    <item>
      <title>How to use QML Extras ExifInfo &amp; FileInfo classes?</title>
      <link>https://community.esri.com/t5/qt-maps-sdk-questions/how-to-use-qml-extras-exifinfo-fileinfo-classes/m-p/311820#M1551</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;As part of a QML QtQuick app I'm working on, I want to retrieve certain photo file metadata: latitude, longitude, and file-create date. To this end, I've tried to use the ExifInfo class in ArcGISExtras 1.1. However, it doesn't seem to be working for me.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;When I set ExifInfo.filePath, the resulting ExifInfo.isExifValid is always false, and the gpsLongitude and gpsLatitude properties are always NaN. Not even the undocumented refresh() method seems to do anything. I have verified that the filePath and url properties do change properly after this. I've tried this on Windows 10 and Android 9.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Do you have a sample that might show how to set the file and retrieve its EXIF properties? The doc page sample is lacking a little context.&lt;BR /&gt;&lt;A class="link-titled" href="https://developers.arcgis.com/qt/latest/extras/api-reference/qml-esri-arcgisextras-exifinfo.html" title="https://developers.arcgis.com/qt/latest/extras/api-reference/qml-esri-arcgisextras-exifinfo.html"&gt;ExifInfo QML Type | ArcGIS for Developers&lt;/A&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;[Edit]&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;A little trial and error showed me that it works to set ExifInfo.filePath with a value like "c:/photos/photo1.jpg" rather than using a url-style value such as "file:///c:/photos/photo1.jpg", and that setting the url property doesn't work.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 10 Jan 2019 23:30:33 GMT</pubDate>
      <guid>https://community.esri.com/t5/qt-maps-sdk-questions/how-to-use-qml-extras-exifinfo-fileinfo-classes/m-p/311820#M1551</guid>
      <dc:creator>MarkDeaton</dc:creator>
      <dc:date>2019-01-10T23:30:33Z</dc:date>
    </item>
    <item>
      <title>Re: How to use QML Extras ExifInfo &amp; FileInfo classes?</title>
      <link>https://community.esri.com/t5/qt-maps-sdk-questions/how-to-use-qml-extras-exifinfo-fileinfo-classes/m-p/311821#M1552</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I gave this a try with a photo from my iPhone (attached) and it seems to work for me. Here is what I had (just copied from the API doc pretty much):&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;&lt;CODE&gt;&lt;SPAN class="comment token"&gt;// Copyright 2016 ESRI&lt;/SPAN&gt;
&lt;SPAN class="comment token"&gt;//&lt;/SPAN&gt;
&lt;SPAN class="comment token"&gt;// All rights reserved under the copyright laws of the United States&lt;/SPAN&gt;
&lt;SPAN class="comment token"&gt;// and applicable international laws, treaties, and conventions.&lt;/SPAN&gt;
&lt;SPAN class="comment token"&gt;//&lt;/SPAN&gt;
&lt;SPAN class="comment token"&gt;// You may freely redistribute and use this sample code, with or&lt;/SPAN&gt;
&lt;SPAN class="comment token"&gt;// without modification, provided you include the original copyright&lt;/SPAN&gt;
&lt;SPAN class="comment token"&gt;// notice and use restrictions.&lt;/SPAN&gt;
&lt;SPAN class="comment token"&gt;//&lt;/SPAN&gt;
&lt;SPAN class="comment token"&gt;// See the Sample code usage restrictions document for further information.&lt;/SPAN&gt;
&lt;SPAN class="comment token"&gt;//&lt;/SPAN&gt;


&lt;SPAN class="keyword token"&gt;import&lt;/SPAN&gt; QtQuick &lt;SPAN class="number token"&gt;2.6&lt;/SPAN&gt;
&lt;SPAN class="keyword token"&gt;import&lt;/SPAN&gt; QtQuick&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;Controls &lt;SPAN class="number token"&gt;2.2&lt;/SPAN&gt;
&lt;SPAN class="keyword token"&gt;import&lt;/SPAN&gt; Esri&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;ArcGISExtras &lt;SPAN class="number token"&gt;1.1&lt;/SPAN&gt;

ApplicationWindow &lt;SPAN class="punctuation token"&gt;{&lt;/SPAN&gt;
    id&lt;SPAN class="punctuation token"&gt;:&lt;/SPAN&gt; appWindow
    width&lt;SPAN class="punctuation token"&gt;:&lt;/SPAN&gt; &lt;SPAN class="number token"&gt;800&lt;/SPAN&gt;
    height&lt;SPAN class="punctuation token"&gt;:&lt;/SPAN&gt; &lt;SPAN class="number token"&gt;600&lt;/SPAN&gt;
    title&lt;SPAN class="punctuation token"&gt;:&lt;/SPAN&gt; &lt;SPAN class="string token"&gt;"Untitled16"&lt;/SPAN&gt;


    ExifInfo &lt;SPAN class="punctuation token"&gt;{&lt;/SPAN&gt;
        id&lt;SPAN class="punctuation token"&gt;:&lt;/SPAN&gt; exif1
        filePath&lt;SPAN class="punctuation token"&gt;:&lt;/SPAN&gt; &lt;SPAN class="string token"&gt;"C:/temp/IMG_2776.jpg"&lt;/SPAN&gt;
        &lt;SPAN class="keyword token"&gt;function&lt;/SPAN&gt; &lt;SPAN class="token function"&gt;logExifMetadata&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt; &lt;SPAN class="punctuation token"&gt;{&lt;/SPAN&gt;
            console&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;&lt;SPAN class="token function"&gt;log&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;
                        &lt;SPAN class="string token"&gt;"\nFile:              "&lt;/SPAN&gt; &lt;SPAN class="operator token"&gt;+&lt;/SPAN&gt; exif1&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;filePath &lt;SPAN class="operator token"&gt;+&lt;/SPAN&gt;
                        &lt;SPAN class="string token"&gt;"\nCreated:           "&lt;/SPAN&gt; &lt;SPAN class="operator token"&gt;+&lt;/SPAN&gt; exif1&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;created &lt;SPAN class="operator token"&gt;+&lt;/SPAN&gt;
                        &lt;SPAN class="string token"&gt;"\nIs Exif valid?     "&lt;/SPAN&gt; &lt;SPAN class="operator token"&gt;+&lt;/SPAN&gt; exif1&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;isExifValid &lt;SPAN class="operator token"&gt;+&lt;/SPAN&gt;
                        &lt;SPAN class="string token"&gt;"\nExif version:      "&lt;/SPAN&gt; &lt;SPAN class="operator token"&gt;+&lt;/SPAN&gt; exif1&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;&lt;SPAN class="token function"&gt;extendedValue&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;&lt;SPAN class="number token"&gt;0x9000&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt; &lt;SPAN class="operator token"&gt;+&lt;/SPAN&gt;
                        &lt;SPAN class="string token"&gt;"\nCamera manuf:      "&lt;/SPAN&gt; &lt;SPAN class="operator token"&gt;+&lt;/SPAN&gt; exif1&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;&lt;SPAN class="token function"&gt;imageValue&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;&lt;SPAN class="number token"&gt;0x010F&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt; &lt;SPAN class="operator token"&gt;+&lt;/SPAN&gt;
                        &lt;SPAN class="string token"&gt;"\nCamera model:      "&lt;/SPAN&gt; &lt;SPAN class="operator token"&gt;+&lt;/SPAN&gt; exif1&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;&lt;SPAN class="token function"&gt;imageValue&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;&lt;SPAN class="number token"&gt;0x0110&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt; &lt;SPAN class="operator token"&gt;+&lt;/SPAN&gt;
                        &lt;SPAN class="string token"&gt;"\nGPS latitude:      "&lt;/SPAN&gt; &lt;SPAN class="operator token"&gt;+&lt;/SPAN&gt; exif1&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;gpsLatitude &lt;SPAN class="operator token"&gt;+&lt;/SPAN&gt;
                        &lt;SPAN class="string token"&gt;"\nGPS longitude:     "&lt;/SPAN&gt; &lt;SPAN class="operator token"&gt;+&lt;/SPAN&gt; exif1&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;gpsLongitude &lt;SPAN class="operator token"&gt;+&lt;/SPAN&gt;
                        &lt;SPAN class="string token"&gt;"\nGPS altitude:      "&lt;/SPAN&gt; &lt;SPAN class="operator token"&gt;+&lt;/SPAN&gt; exif1&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;gpsAltitude &lt;SPAN class="operator token"&gt;+&lt;/SPAN&gt;
                        &lt;SPAN class="string token"&gt;"\nGPS speed:         "&lt;/SPAN&gt; &lt;SPAN class="operator token"&gt;+&lt;/SPAN&gt; exif1&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;&lt;SPAN class="token function"&gt;gpsValue&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;&lt;SPAN class="number token"&gt;0x000D&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt; &lt;SPAN class="operator token"&gt;+&lt;/SPAN&gt;
                        &lt;SPAN class="string token"&gt;"\nAll image tags:    "&lt;/SPAN&gt; &lt;SPAN class="operator token"&gt;+&lt;/SPAN&gt; exif1&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;imageTags &lt;SPAN class="operator token"&gt;+&lt;/SPAN&gt;
                        &lt;SPAN class="string token"&gt;"\nAll extended tags: "&lt;/SPAN&gt; &lt;SPAN class="operator token"&gt;+&lt;/SPAN&gt; exif1&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;extendedTags &lt;SPAN class="operator token"&gt;+&lt;/SPAN&gt;
                        &lt;SPAN class="string token"&gt;"\nAll GPS tags:      "&lt;/SPAN&gt; &lt;SPAN class="operator token"&gt;+&lt;/SPAN&gt; exif1&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;gpsTags&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;
        &lt;SPAN class="punctuation token"&gt;}&lt;/SPAN&gt;
    &lt;SPAN class="punctuation token"&gt;}&lt;/SPAN&gt;

    Button &lt;SPAN class="punctuation token"&gt;{&lt;/SPAN&gt;
        onClicked&lt;SPAN class="punctuation token"&gt;:&lt;/SPAN&gt; exif1&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;&lt;SPAN class="token function"&gt;logExifMetadata&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;
    &lt;SPAN class="punctuation token"&gt;}&lt;/SPAN&gt;
&lt;SPAN class="punctuation token"&gt;}&lt;/SPAN&gt;

‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍&lt;SPAN class="line-numbers-rows"&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;And here is the output:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;&lt;CODE&gt;File: C:/temp/IMG_2776.jpg
Created: Wed Jan 23 14:42:26 2019 GMT-0600
Is Exif valid? true
Exif version:  
Camera manuf: Apple
Camera model: iPhone XR
GPS latitude: 19.699025
GPS longitude: -155.46133333333333
GPS altitude: 34.08290480371253
GPS speed: 0
All image tags: 271,272,274,282,283,296,305,306,322,323
All extended tags: 33434,33437,34850,34855,36864,36867,36868,37121,37377,37378,37379,37380,37383,37385,37386,37396,37500,37521,37522,40960,40962,40963,41495,41729,41986,41987,41989,41990,42034,42035,42036
All GPS tags: 1,2,3,4,5,6,7,12,13,16,17,23,24,29,31&lt;SPAN class="line-numbers-rows"&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Perhaps there is something up with the images you are using, or maybe the formats being used aren't working correctly with the ExifInfo class.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FYI, we missed in the doc that this class inherits FileInfo, so we will be fixing that up. All properties/methods on FileInfo are therefore also available on ExifInfo&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 11 Dec 2021 14:54:47 GMT</pubDate>
      <guid>https://community.esri.com/t5/qt-maps-sdk-questions/how-to-use-qml-extras-exifinfo-fileinfo-classes/m-p/311821#M1552</guid>
      <dc:creator>LucasDanzinger</dc:creator>
      <dc:date>2021-12-11T14:54:47Z</dc:date>
    </item>
    <item>
      <title>Re: How to use QML Extras ExifInfo &amp; FileInfo classes?</title>
      <link>https://community.esri.com/t5/qt-maps-sdk-questions/how-to-use-qml-extras-exifinfo-fileinfo-classes/m-p/311822#M1553</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thanks, Lucas. As I mentioned in the edit to my original message, I did get it to work in much the same way as you've illustrated. The API doc could use your updates, as it was the filePath parameter that finally made it work for me; that's missing from the Esri doc example and properties list.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;--Mark&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 23 Jan 2019 21:04:32 GMT</pubDate>
      <guid>https://community.esri.com/t5/qt-maps-sdk-questions/how-to-use-qml-extras-exifinfo-fileinfo-classes/m-p/311822#M1553</guid>
      <dc:creator>MarkDeaton</dc:creator>
      <dc:date>2019-01-23T21:04:32Z</dc:date>
    </item>
  </channel>
</rss>

