/usr/share/qt5/doc/qtpositioning/qtpositioning-geoflickr-example.html is in qtlocation5-doc-html 5.5.1-3ubuntu1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 | <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<!-- geoflickr.qdoc -->
<title>GeoFlickr (QML) | Qt Positioning 5.5</title>
<link rel="stylesheet" type="text/css" href="style/offline.css" />
</head>
<body>
<div class="header" id="qtdocheader">
<div class="main">
<div class="main-rounded">
<div class="navigationbar">
<ul>
<li>Qt 5.5</li>
<li><a href="qtpositioning-index.html">Qt Positioning</a></li>
<li>GeoFlickr (QML)</li>
<li id="buildversion">Qt 5.5.1 Reference Documentation</li>
</ul>
</div>
</div>
<div class="content">
<div class="line">
<div class="content mainContent">
<div class="sidebar">
<div class="toc">
<h3><a name="toc">Contents</a></h3>
<ul>
<li class="level1"><a href="#running-the-example">Running the Example</a></li>
<li class="level1"><a href="#retrieving-the-current-position">Retrieving the Current Position</a></li>
<li class="level1"><a href="#using-the-current-position">Using the Current Position</a></li>
</ul>
</div>
<div class="sidebar-content" id="sidebar-content"></div></div>
<h1 class="title">GeoFlickr (QML)</h1>
<span class="subtitle"></span>
<!-- $$$geoflickr-description -->
<div class="descr"> <a name="details"></a>
<p>This is a small example, illustrating one of the very core parts of the <a href="qtpositioning-index.html">Qt Positioning</a> API: the ability to retrieve and use the user's current geographic position.</p>
<p>Key QML types shown in this example:</p>
<ul>
<li><a href="qml-qtpositioning-positionsource.html">PositionSource</a></li>
<li>XmlListModel</li>
</ul>
<p class="centerAlign"><img src="images/qml-flickr-1.jpg" alt="" /></p><a name="running-the-example"></a>
<h2 id="running-the-example">Running the Example</h2>
<p>To run the example from Qt Creator, open the <b>Welcome</b> mode and select the example from <b>Examples</b>. For more information, visit Building and Running an Example.</p>
<a name="retrieving-the-current-position"></a>
<h2 id="retrieving-the-current-position">Retrieving the Current Position</h2>
<p>Retrieving the user's current position is achieved using the <a href="location-positioning-qml.html#positionsource">PositionSource</a> type. In this example, we instantiate the <a href="location-positioning-qml.html#positionsource">PositionSource</a> as part of the GeoTab component (the floating "window" describing current position and status).</p>
<pre class="qml"> <span class="type"><a href="qml-qtpositioning-positionsource.html">PositionSource</a></span> {
<span class="name">id</span>: <span class="name">positionSource</span>
<span class="name">onPositionChanged</span>: { <span class="name">planet</span>.<span class="name">source</span> <span class="operator">=</span> <span class="string">"images/sun.png"</span>; }
<span class="name">onUpdateTimeout</span>: {
<span class="name">activityText</span>.<span class="name">fadeOut</span> <span class="operator">=</span> <span class="number">true</span>
}
}</pre>
<p>When the "Locate and update" button is pressed, we first interrogate the <a href="location-positioning-qml.html#positionsource">PositionSource</a> to check if it has an available backend for positioning data. If it does not, we fall back to using a pre-recorded NMEA log for demonstration. We then instruct the <a href="location-positioning-qml.html#positionsource">PositionSource</a> to update.</p>
<pre class="qml"> <span class="type">Button</span> {
<span class="name">id</span>: <span class="name">locateButton</span>
<span class="name">text</span>: <span class="string">"Locate & update"</span>
<span class="name">onClicked</span>: {
<span class="keyword">if</span> (<span class="name">positionSource</span>.<span class="name">supportedPositioningMethods</span> <span class="operator">===</span>
<span class="name">PositionSource</span>.<span class="name">NoPositioningMethods</span>) {
<span class="name">positionSource</span>.<span class="name">nmeaSource</span> <span class="operator">=</span> <span class="string">"nmealog.txt"</span>;
<span class="name">sourceText</span>.<span class="name">text</span> <span class="operator">=</span> <span class="string">"(filesource): "</span> <span class="operator">+</span> <span class="name">printableMethod</span>(<span class="name">positionSource</span>.<span class="name">supportedPositioningMethods</span>);
}
<span class="name">positionSource</span>.<span class="name">update</span>();
}
}</pre>
<p>To share the new position data with the rest of the application, we use properties that we have created on the GeoTab component:</p>
<pre class="qml"> property <span class="type">variant</span> <span class="name">coordinate</span></pre>
<a name="using-the-current-position"></a>
<h2 id="using-the-current-position">Using the Current Position</h2>
<p>The longitude and latitude values retrieved here are eventually set on in properties on the RestModel component. The RestModel is an XmlListModel, which retrieves XML data from a URL and creates a data model by performing XPath queries on it.</p>
<p>In this case, it retrieves data from the Flickr REST API online, based on our current position</p>
<pre class="qml"><span class="type">XmlListModel</span> {
property <span class="type">variant</span> <span class="name">coordinate</span>
<span class="name">source</span>: <span class="string">"https://api.flickr.com/services/rest/?"</span> <span class="operator">+</span>
<span class="string">"min_taken_date=2000-01-01+0:00:00&"</span> <span class="operator">+</span>
<span class="string">"extras=date_taken&"</span> <span class="operator">+</span>
<span class="string">"method=flickr.photos.search&"</span> <span class="operator">+</span>
<span class="string">"per_page=30&"</span> <span class="operator">+</span>
<span class="string">"sort=date-taken-desc&"</span> <span class="operator">+</span>
<span class="string">"api_key=e36784df8a03fea04c22ed93318b291c&"</span> <span class="operator">+</span>
<span class="string">"lat="</span> <span class="operator">+</span> <span class="name">coordinate</span>.<span class="name">latitude</span> <span class="operator">+</span> <span class="string">"&lon="</span> <span class="operator">+</span> <span class="name">coordinate</span>.<span class="name">longitude</span>;
<span class="name">query</span>: <span class="string">"/rsp/photos/photo"</span>
<span class="type">XmlRole</span> { <span class="name">name</span>: <span class="string">"title"</span>; <span class="name">query</span>: <span class="string">"@title/string()"</span> }
<span class="type">XmlRole</span> { <span class="name">name</span>: <span class="string">"datetaken"</span>; <span class="name">query</span>: <span class="string">"@datetaken/string()"</span> }
<span class="type">XmlRole</span> { <span class="name">name</span>: <span class="string">"farm"</span>; <span class="name">query</span>: <span class="string">"@farm/string()"</span> }
<span class="type">XmlRole</span> { <span class="name">name</span>: <span class="string">"server"</span>; <span class="name">query</span>: <span class="string">"@server/string()"</span> }
<span class="type">XmlRole</span> { <span class="name">name</span>: <span class="string">"id"</span>; <span class="name">query</span>: <span class="string">"@id/string()"</span> }
<span class="type">XmlRole</span> { <span class="name">name</span>: <span class="string">"secret"</span>; <span class="name">query</span>: <span class="string">"@secret/string()"</span> }
}</pre>
<p>This model data is then shown in a variety of Qt Quick views to produce the example application.</p>
<p>Files:</p>
<ul>
<li><a href="qtpositioning-geoflickr-flickr-90-qml.html">geoflickr/flickr-90.qml</a></li>
<li><a href="qtpositioning-geoflickr-flickr-qml.html">geoflickr/flickr.qml</a></li>
<li><a href="qtpositioning-geoflickr-qmllocationflickr-cpp.html">geoflickr/qmllocationflickr.cpp</a></li>
<li><a href="qtpositioning-geoflickr-flickrcommon-progress-qml.html">geoflickr/flickrcommon/Progress.qml</a></li>
<li><a href="qtpositioning-geoflickr-flickrcommon-restmodel-qml.html">geoflickr/flickrcommon/RestModel.qml</a></li>
<li><a href="qtpositioning-geoflickr-flickrcommon-scrollbar-qml.html">geoflickr/flickrcommon/ScrollBar.qml</a></li>
<li><a href="qtpositioning-geoflickr-flickrcommon-slider-qml.html">geoflickr/flickrcommon/Slider.qml</a></li>
<li><a href="qtpositioning-geoflickr-flickrmobile-button-qml.html">geoflickr/flickrmobile/Button.qml</a></li>
<li><a href="qtpositioning-geoflickr-flickrmobile-geotab-qml.html">geoflickr/flickrmobile/GeoTab.qml</a></li>
<li><a href="qtpositioning-geoflickr-flickrmobile-griddelegate-qml.html">geoflickr/flickrmobile/GridDelegate.qml</a></li>
<li><a href="qtpositioning-geoflickr-flickrmobile-imagedetails-qml.html">geoflickr/flickrmobile/ImageDetails.qml</a></li>
<li><a href="qtpositioning-geoflickr-flickrmobile-listdelegate-qml.html">geoflickr/flickrmobile/ListDelegate.qml</a></li>
<li><a href="qtpositioning-geoflickr-flickrmobile-titlebar-qml.html">geoflickr/flickrmobile/TitleBar.qml</a></li>
<li><a href="qtpositioning-geoflickr-flickrmobile-toolbar-qml.html">geoflickr/flickrmobile/ToolBar.qml</a></li>
<li><a href="qtpositioning-geoflickr-flickr-qrc.html">geoflickr/flickr.qrc</a></li>
<li><a href="qtpositioning-geoflickr-geoflickr-pro.html">geoflickr/geoflickr.pro</a></li>
<li><a href="qtpositioning-geoflickr-geoflickr-qmlproject.html">geoflickr/geoflickr.qmlproject</a></li>
</ul>
</div>
<!-- @@@geoflickr -->
</div>
</div>
</div>
</div>
</div>
<div class="footer">
<p>
<acronym title="Copyright">©</acronym> 2015 The Qt Company Ltd.
Documentation contributions included herein are the copyrights of
their respective owners.<br> The documentation provided herein is licensed under the terms of the <a href="http://www.gnu.org/licenses/fdl.html">GNU Free Documentation License version 1.3</a> as published by the Free Software Foundation.<br> Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property
of their respective owners. </p>
</div>
</body>
</html>
|