summaryrefslogtreecommitdiffstats
path: root/examples/positioning
diff options
context:
space:
mode:
authorAlex Blasche <alexander.blasche@digia.com>2013-11-18 10:24:19 +0100
committerThe Qt Project <gerrit-noreply@qt-project.org>2013-11-18 11:53:15 +0100
commit02e88e8349b4c516c855f2f373838a29e9d3e1bb (patch)
treed439538d57af42be14e22377d347eebdc3973dae /examples/positioning
parent898f292736ced9ae83e7fad2da3006196dfaa8c7 (diff)
Reorder example dir structure according to Qt convention
Causes undesirable example structure in Qt release package Task-number: QTBUG-34907 Change-Id: I47e2205aa6faef388792146b36cf6ae6cae863da Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Diffstat (limited to 'examples/positioning')
-rw-r--r--examples/positioning/flickr/flickr-90.qml51
-rw-r--r--examples/positioning/flickr/flickr.pro16
-rw-r--r--examples/positioning/flickr/flickr.qml137
-rw-r--r--examples/positioning/flickr/flickr.qmlproject16
-rw-r--r--examples/positioning/flickr/flickr.qrc30
-rw-r--r--examples/positioning/flickr/flickrcommon/Progress.qml72
-rw-r--r--examples/positioning/flickr/flickrcommon/RestModel.qml65
-rw-r--r--examples/positioning/flickr/flickrcommon/ScrollBar.qml80
-rw-r--r--examples/positioning/flickr/flickrcommon/Slider.qml76
-rw-r--r--examples/positioning/flickr/flickrmobile/Button.qml78
-rw-r--r--examples/positioning/flickr/flickrmobile/GeoTab.qml138
-rw-r--r--examples/positioning/flickr/flickrmobile/GridDelegate.qml111
-rw-r--r--examples/positioning/flickr/flickrmobile/ImageDetails.qml156
-rw-r--r--examples/positioning/flickr/flickrmobile/ListDelegate.qml66
-rw-r--r--examples/positioning/flickr/flickrmobile/TitleBar.qml77
-rw-r--r--examples/positioning/flickr/flickrmobile/ToolBar.qml64
-rw-r--r--examples/positioning/flickr/flickrmobile/images/gloss.pngbin0 -> 1236 bytes
-rw-r--r--examples/positioning/flickr/flickrmobile/images/lineedit.pngbin0 -> 1415 bytes
-rw-r--r--examples/positioning/flickr/flickrmobile/images/lineedit.sci5
-rw-r--r--examples/positioning/flickr/flickrmobile/images/moon.pngbin0 -> 2433 bytes
-rw-r--r--examples/positioning/flickr/flickrmobile/images/quit.pngbin0 -> 2369 bytes
-rw-r--r--examples/positioning/flickr/flickrmobile/images/star.pngbin0 -> 349 bytes
-rw-r--r--examples/positioning/flickr/flickrmobile/images/stripes.pngbin0 -> 257 bytes
-rw-r--r--examples/positioning/flickr/flickrmobile/images/sun.pngbin0 -> 8153 bytes
-rw-r--r--examples/positioning/flickr/flickrmobile/images/titlebar.pngbin0 -> 1436 bytes
-rw-r--r--examples/positioning/flickr/flickrmobile/images/titlebar.sci5
-rw-r--r--examples/positioning/flickr/flickrmobile/images/toolbutton.pngbin0 -> 2550 bytes
-rw-r--r--examples/positioning/flickr/flickrmobile/images/toolbutton.sci5
-rw-r--r--examples/positioning/flickr/flickrmobile/nmealog.txt1403
-rw-r--r--examples/positioning/flickr/qmllocationflickr.cpp58
-rw-r--r--examples/positioning/logfilepositionsource/clientapplication.cpp62
-rw-r--r--examples/positioning/logfilepositionsource/clientapplication.h64
-rw-r--r--examples/positioning/logfilepositionsource/logfilepositionsource.cpp123
-rw-r--r--examples/positioning/logfilepositionsource/logfilepositionsource.h77
-rw-r--r--examples/positioning/logfilepositionsource/logfilepositionsource.pro16
-rw-r--r--examples/positioning/logfilepositionsource/main.cpp52
-rw-r--r--examples/positioning/logfilepositionsource/simplelog.txt156
-rw-r--r--examples/positioning/positioning.pro4
-rw-r--r--examples/positioning/weatherinfo/appmodel.cpp497
-rw-r--r--examples/positioning/weatherinfo/appmodel.h170
-rw-r--r--examples/positioning/weatherinfo/components/BigForecastIcon.qml80
-rw-r--r--examples/positioning/weatherinfo/components/ForecastIcon.qml89
-rw-r--r--examples/positioning/weatherinfo/components/WeatherIcon.qml102
-rw-r--r--examples/positioning/weatherinfo/icons/README.txt5
-rw-r--r--examples/positioning/weatherinfo/icons/weather-few-clouds.pngbin0 -> 79488 bytes
-rw-r--r--examples/positioning/weatherinfo/icons/weather-fog.pngbin0 -> 43896 bytes
-rw-r--r--examples/positioning/weatherinfo/icons/weather-haze.pngbin0 -> 130030 bytes
-rw-r--r--examples/positioning/weatherinfo/icons/weather-icy.pngbin0 -> 49362 bytes
-rw-r--r--examples/positioning/weatherinfo/icons/weather-overcast.pngbin0 -> 60290 bytes
-rw-r--r--examples/positioning/weatherinfo/icons/weather-showers.pngbin0 -> 76340 bytes
-rw-r--r--examples/positioning/weatherinfo/icons/weather-sleet.pngbin0 -> 87168 bytes
-rw-r--r--examples/positioning/weatherinfo/icons/weather-snow.pngbin0 -> 70939 bytes
-rw-r--r--examples/positioning/weatherinfo/icons/weather-storm.pngbin0 -> 93207 bytes
-rw-r--r--examples/positioning/weatherinfo/icons/weather-sunny-very-few-clouds.pngbin0 -> 65731 bytes
-rw-r--r--examples/positioning/weatherinfo/icons/weather-sunny.pngbin0 -> 59084 bytes
-rw-r--r--examples/positioning/weatherinfo/icons/weather-thundershower.pngbin0 -> 105643 bytes
-rw-r--r--examples/positioning/weatherinfo/main.cpp70
-rw-r--r--examples/positioning/weatherinfo/weatherinfo.pro22
-rw-r--r--examples/positioning/weatherinfo/weatherinfo.qml230
-rw-r--r--examples/positioning/weatherinfo/weatherinfo.qrc20
60 files changed, 4548 insertions, 0 deletions
diff --git a/examples/positioning/flickr/flickr-90.qml b/examples/positioning/flickr/flickr-90.qml
new file mode 100644
index 00000000..24e61c04
--- /dev/null
+++ b/examples/positioning/flickr/flickr-90.qml
@@ -0,0 +1,51 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the examples of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
+** of its contributors may be used to endorse or promote products derived
+** from this software without specific prior written permission.
+**
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.0
+
+Item {
+ width: 480; height: 320
+
+ Loader {
+ y: 320; rotation: -90
+ transformOrigin: Item.TopLeft
+ source: "flickr.qml"
+ }
+}
diff --git a/examples/positioning/flickr/flickr.pro b/examples/positioning/flickr/flickr.pro
new file mode 100644
index 00000000..ff83bcb2
--- /dev/null
+++ b/examples/positioning/flickr/flickr.pro
@@ -0,0 +1,16 @@
+TEMPLATE=app
+TARGET = qml_position_flickr
+
+QT += qml quick network positioning
+SOURCES += qmllocationflickr.cpp
+
+RESOURCES += \
+ flickr.qrc
+
+OTHER_FILES += flickr.qml
+
+target.path = $$[QT_INSTALL_EXAMPLES]/qtpositioning/declarative/flickr
+sources.files = $$SOURCES $$HEADERS $$RESOURCES $$FORMS *.pro *.qml flickrcommon flickrmobile
+sources.path = $$[QT_INSTALL_EXAMPLES]/qtpositioning/declarative/flickr
+
+INSTALLS += target sources
diff --git a/examples/positioning/flickr/flickr.qml b/examples/positioning/flickr/flickr.qml
new file mode 100644
index 00000000..0960b4c9
--- /dev/null
+++ b/examples/positioning/flickr/flickr.qml
@@ -0,0 +1,137 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the examples of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
+** of its contributors may be used to endorse or promote products derived
+** from this software without specific prior written permission.
+**
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.0
+import QtQuick.XmlListModel 2.0
+import "flickrcommon" as Common
+import "flickrmobile" as Mobile
+
+Item {
+ id: screen; width: 320; height: 480
+ property bool inListView : false
+
+ Rectangle {
+ id: background
+ anchors.fill: parent; color: "#343434";
+
+ Image { source: "flickrmobile/images/stripes.png"; fillMode: Image.Tile; anchors.fill: parent; opacity: 0.3 }
+
+ Common.RestModel {
+ id: restModel
+ coordinate: geoTab.coordinate
+ }
+
+ Item {
+ id: views
+ x: 2; width: parent.width - 4
+ anchors.top: titleBar.bottom; anchors.bottom: toolBar.top
+
+ Text {
+ text: qsTr("Network error")
+ font.pixelSize: 48
+ fontSizeMode: Text.HorizontalFit
+ anchors.centerIn: parent
+ width: parent.width * 0.9
+ visible: restModel.status === XmlListModel.Error
+
+ }
+
+ Mobile.GridDelegate { id: gridDelegate }
+ GridView {
+ x: (width/4-79)/2; y: x
+ id: photoGridView; model: restModel; delegate: gridDelegate; cacheBuffer: 100
+ cellWidth: (parent.width-2)/4; cellHeight: cellWidth; width: parent.width; height: parent.height - 1; z: 6
+ }
+ Mobile.ListDelegate { id: listDelegate }
+ ListView {
+ id: photoListView; model: restModel; delegate: listDelegate; z: 6
+ width: parent.width; height: parent.height; x: -(parent.width * 1.5); cacheBuffer: 100;
+ }
+ states: State {
+ name: "ListView"; when: screen.inListView == true
+ PropertyChanges { target: photoListView; x: 0 }
+ PropertyChanges { target: photoGridView; x: -(parent.width * 1.5) }
+ }
+
+ transitions: Transition {
+ NumberAnimation { properties: "x"; duration: 500; easing.type: Easing.InOutQuad }
+ }
+ }
+ Mobile.ImageDetails { id: imageDetails; width: parent.width; anchors.left: views.right; height: parent.height; z:1 }
+ Mobile.TitleBar { id: titleBar; z: 5; width: parent.width; height: 40; opacity: 0.9 }
+ Mobile.GeoTab {
+ id: geoTab;
+ x: 15; y:50;
+ }
+ Mobile.ToolBar {
+ id: toolBar; z: 5
+ height: 40; anchors.bottom: parent.bottom; width: parent.width; opacity: 0.9
+ button1Label: "Update"; button2Label: "View mode"
+ onButton1Clicked: restModel.reload()
+ onButton2Clicked: if (screen.inListView == true) screen.inListView = false; else screen.inListView = true
+ }
+ Connections {
+ target: imageDetails
+ onClosed: {
+ if (background.state == "DetailedView") {
+ background.state = '';
+ imageDetails.photoUrl = "";
+ }
+ }
+ }
+
+ states: State {
+ name: "DetailedView"
+ PropertyChanges { target: views; x: -parent.width }
+ PropertyChanges { target: geoTab; x: -parent.width }
+ PropertyChanges { target: toolBar; button1Label: "More..." }
+ PropertyChanges {
+ target: toolBar
+ onButton1Clicked: if (imageDetails.state=='') imageDetails.state='Back'; else imageDetails.state=''
+ }
+ PropertyChanges { target: toolBar; button2Label: "Back" }
+ PropertyChanges { target: toolBar; onButton2Clicked: imageDetails.closed() }
+ }
+
+ transitions: Transition {
+ NumberAnimation { properties: "x"; duration: 500; easing.type: Easing.InOutQuad }
+ }
+ }
+}
diff --git a/examples/positioning/flickr/flickr.qmlproject b/examples/positioning/flickr/flickr.qmlproject
new file mode 100644
index 00000000..d4909f86
--- /dev/null
+++ b/examples/positioning/flickr/flickr.qmlproject
@@ -0,0 +1,16 @@
+import QmlProject 1.0
+
+Project {
+ /* Include .qml, .js, and image files from current directory and subdirectories */
+ QmlFiles {
+ directory: "."
+ }
+ JavaScriptFiles {
+ directory: "."
+ }
+ ImageFiles {
+ directory: "."
+ }
+ /* List of plugin directories passed to QML runtime */
+ // importPaths: [ " ../exampleplugin " ]
+}
diff --git a/examples/positioning/flickr/flickr.qrc b/examples/positioning/flickr/flickr.qrc
new file mode 100644
index 00000000..1019f7d8
--- /dev/null
+++ b/examples/positioning/flickr/flickr.qrc
@@ -0,0 +1,30 @@
+<!DOCTYPE RCC><RCC version="1.0">
+ <qresource prefix="/">
+ <file>flickr.qml</file>
+ <file>flickr-90.qml</file>
+ <file>flickrcommon/Progress.qml</file>
+ <file>flickrcommon/RestModel.qml</file>
+ <file>flickrcommon/ScrollBar.qml</file>
+ <file>flickrcommon/Slider.qml</file>
+ <file>flickrmobile/Button.qml</file>
+ <file>flickrmobile/GeoTab.qml</file>
+ <file>flickrmobile/GridDelegate.qml</file>
+ <file>flickrmobile/ImageDetails.qml</file>
+ <file>flickrmobile/ListDelegate.qml</file>
+ <file>flickrmobile/nmealog.txt</file>
+ <file>flickrmobile/TitleBar.qml</file>
+ <file>flickrmobile/ToolBar.qml</file>
+ <file>flickrmobile/images/gloss.png</file>
+ <file>flickrmobile/images/lineedit.png</file>
+ <file>flickrmobile/images/lineedit.sci</file>
+ <file>flickrmobile/images/moon.png</file>
+ <file>flickrmobile/images/quit.png</file>
+ <file>flickrmobile/images/star.png</file>
+ <file>flickrmobile/images/stripes.png</file>
+ <file>flickrmobile/images/sun.png</file>
+ <file>flickrmobile/images/titlebar.png</file>
+ <file>flickrmobile/images/titlebar.sci</file>
+ <file>flickrmobile/images/toolbutton.png</file>
+ <file>flickrmobile/images/toolbutton.sci</file>
+ </qresource>
+</RCC>
diff --git a/examples/positioning/flickr/flickrcommon/Progress.qml b/examples/positioning/flickr/flickrcommon/Progress.qml
new file mode 100644
index 00000000..33dfadf7
--- /dev/null
+++ b/examples/positioning/flickr/flickrcommon/Progress.qml
@@ -0,0 +1,72 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the examples of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
+** of its contributors may be used to endorse or promote products derived
+** from this software without specific prior written permission.
+**
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.0
+
+Item {
+ property variant progress: 0
+
+ Rectangle {
+ anchors.fill: parent; smooth: true
+ border.color: "white"; border.width: 0; radius: height/2 - 2
+ gradient: Gradient {
+ GradientStop { position: 0; color: "#66343434" }
+ GradientStop { position: 1.0; color: "#66000000" }
+ }
+ }
+
+ Rectangle {
+ y: 2; height: parent.height-4;
+ x: 2; width: Math.max(parent.width * progress - 4, 0);
+ opacity: width < 1 ? 0 : 1; smooth: true
+ gradient: Gradient {
+ GradientStop { position: 0; color: "lightsteelblue" }
+ GradientStop { position: 1.0; color: "steelblue" }
+ }
+ radius: height/2 - 2
+ }
+
+ Text {
+ text: Math.round(progress * 100) + "%"
+ anchors.horizontalCenter: parent.horizontalCenter
+ anchors.verticalCenter: parent.verticalCenter
+ color: "white"; font.bold: true
+ }
+}
diff --git a/examples/positioning/flickr/flickrcommon/RestModel.qml b/examples/positioning/flickr/flickrcommon/RestModel.qml
new file mode 100644
index 00000000..d8d5e87e
--- /dev/null
+++ b/examples/positioning/flickr/flickrcommon/RestModel.qml
@@ -0,0 +1,65 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the examples of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
+** of its contributors may be used to endorse or promote products derived
+** from this software without specific prior written permission.
+**
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.0
+import QtQuick.XmlListModel 2.0
+
+//! [restmodel]
+XmlListModel {
+ property variant coordinate
+
+ source: "http://api.flickr.com/services/rest/?" +
+ "min_taken_date=2000-01-01+0:00:00&" +
+ "extras=date_taken&" +
+ "method=flickr.photos.search&" +
+ "per_page=30&" +
+ "sort=date-taken-desc&" +
+ "api_key=e36784df8a03fea04c22ed93318b291c&" +
+ "lat=" + coordinate.latitude + "&lon=" + coordinate.longitude;
+ query: "/rsp/photos/photo"
+
+ XmlRole { name: "title"; query: "@title/string()" }
+ XmlRole { name: "datetaken"; query: "@datetaken/string()" }
+ XmlRole { name: "farm"; query: "@farm/string()" }
+ XmlRole { name: "server"; query: "@server/string()" }
+ XmlRole { name: "id"; query: "@id/string()" }
+ XmlRole { name: "secret"; query: "@secret/string()" }
+}
+//! [restmodel]
diff --git a/examples/positioning/flickr/flickrcommon/ScrollBar.qml b/examples/positioning/flickr/flickrcommon/ScrollBar.qml
new file mode 100644
index 00000000..fd67f557
--- /dev/null
+++ b/examples/positioning/flickr/flickrcommon/ScrollBar.qml
@@ -0,0 +1,80 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the examples of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
+** of its contributors may be used to endorse or promote products derived
+** from this software without specific prior written permission.
+**
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.0
+
+Item {
+ id: container
+
+ property variant flickableArea
+
+ Rectangle {
+ radius: 5
+ color: "black"
+ opacity: 0.3
+ border.color: "white"
+ border.width: 2
+ x: 0
+ y: flickableArea.visibleArea.yPosition * container.height
+ width: parent.width
+ height: flickableArea.visibleArea.heightRatio * container.height
+ }
+ states: [
+ State {
+ name: "show"
+ when: flickableArea.movingVertically
+ PropertyChanges {
+ target: container
+ opacity: 1
+ }
+ }
+ ]
+ transitions: [
+ Transition {
+ from: "*"
+ to: "*"
+ NumberAnimation {
+ target: container
+ properties: "opacity"
+ duration: 400
+ }
+ }
+ ]
+}
diff --git a/examples/positioning/flickr/flickrcommon/Slider.qml b/examples/positioning/flickr/flickrcommon/Slider.qml
new file mode 100644
index 00000000..f01ed53a
--- /dev/null
+++ b/examples/positioning/flickr/flickrcommon/Slider.qml
@@ -0,0 +1,76 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the examples of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
+** of its contributors may be used to endorse or promote products derived
+** from this software without specific prior written permission.
+**
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.0
+
+Item {
+ id: slider; width: 400; height: 16
+
+ // value is read/write.
+ property real value
+ onValueChanged: { handle.x = 2 + (value - minimum) * slider.xMax / (maximum - minimum); }
+ property real maximum: 1
+ property real minimum: 1
+ property int xMax: slider.width - handle.width - 4
+
+ Rectangle {
+ anchors.fill: parent
+ border.color: "white"; border.width: 0; radius: 8
+ gradient: Gradient {
+ GradientStop { position: 0.0; color: "#66343434" }
+ GradientStop { position: 1.0; color: "#66000000" }
+ }
+ }
+
+ Rectangle {
+ id: handle; smooth: true
+ x: slider.width / 2 - handle.width / 2; y: 2; width: 30; height: slider.height-4; radius: 6
+ gradient: Gradient {
+ GradientStop { position: 0.0; color: "lightgray" }
+ GradientStop { position: 1.0; color: "gray" }
+ }
+
+ MouseArea {
+ anchors.fill: parent; drag.target: parent
+ drag.axis: Drag.XAxis; drag.minimumX: 2; drag.maximumX: slider.xMax+2
+ onPositionChanged: { value = (maximum - minimum) * (handle.x-2) / slider.xMax + minimum; }
+ }
+ }
+}
diff --git a/examples/positioning/flickr/flickrmobile/Button.qml b/examples/positioning/flickr/flickrmobile/Button.qml
new file mode 100644
index 00000000..c24877ea
--- /dev/null
+++ b/examples/positioning/flickr/flickrmobile/Button.qml
@@ -0,0 +1,78 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the examples of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
+** of its contributors may be used to endorse or promote products derived
+** from this software without specific prior written permission.
+**
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.0
+
+Item {
+ id: container
+
+ signal clicked
+
+ property string text
+
+ BorderImage {
+ id: buttonImage
+ source: "images/toolbutton.sci"
+ width: container.width; height: container.height
+ }
+ BorderImage {
+ id: pressed
+ opacity: 0
+ source: "images/toolbutton.sci"
+ width: container.width; height: container.height
+ }
+ MouseArea {
+ id: mouseRegion
+ anchors.fill: buttonImage
+ onClicked: { container.clicked(); }
+ }
+ Text {
+ color: "white"
+ anchors.centerIn: buttonImage; font.bold: true
+ text: container.text; style: Text.Raised; styleColor: "black"
+ }
+ states: [
+ State {
+ name: "Pressed"
+ when: mouseRegion.pressed == true
+ PropertyChanges { target: pressed; opacity: 1 }
+ }
+ ]
+}
diff --git a/examples/positioning/flickr/flickrmobile/GeoTab.qml b/examples/positioning/flickr/flickrmobile/GeoTab.qml
new file mode 100644
index 00000000..53066190
--- /dev/null
+++ b/examples/positioning/flickr/flickrmobile/GeoTab.qml
@@ -0,0 +1,138 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the examples of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
+** of its contributors may be used to endorse or promote products derived
+** from this software without specific prior written permission.
+**
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.0
+import QtPositioning 5.2
+
+Rectangle {
+ id: container
+ property int maxX: parent.width; property int maxY: parent.height
+//! [props]
+ property variant coordinate
+//! [props]
+
+ Binding {
+ target: container
+ property: "coordinate"
+ value: positionSource.position.coordinate
+ }
+
+ width: 300; height: 130
+ color: "blue"
+ opacity: 0.7
+ border.color: "black"
+ border.width: 1
+ radius: 5
+ gradient: Gradient {
+ GradientStop {position: 0.0; color: "grey"}
+ GradientStop {position: 1.0; color: "black"}
+ }
+ MouseArea {
+ anchors.fill: parent
+ drag.target: parent
+ drag.axis: Drag.XandYAxis
+ drag.minimumX: -(parent.width * (2/3)); drag.maximumX: parent.maxX - (parent.width/3)
+ drag.minimumY: -(parent.height/2); drag.maximumY: parent.maxY - (parent.height/2)
+ }
+//! [locatebutton-top]
+ Button {
+ id: locateButton
+ text: "Locate & update"
+//! [locatebutton-top]
+ anchors {left: parent.left; leftMargin: 5}
+ y: 3; height: 32; width: parent.width - 10
+//! [locatebutton-clicked]
+ onClicked: {
+ if (positionSource.supportedPositioningMethods ===
+ PositionSource.NoPositioningMethods) {
+ positionSource.nmeaSource = "nmealog.txt";
+ sourceText.text = "(filesource): " + printableMethod(positionSource.supportedPositioningMethods);
+ }
+ positionSource.update();
+ }
+ }
+//! [locatebutton-clicked]
+//! [possrc]
+ PositionSource {
+ id: positionSource
+ onPositionChanged: { planet.source = "images/sun.png"; }
+ }
+//! [possrc]
+ function printableMethod(method) {
+ if (method === PositionSource.SatellitePositioningMethods)
+ return "Satellite";
+ else if (method === PositionSource.NoPositioningMethods)
+ return "Not available"
+ else if (method === PositionSource.NonSatellitePositioningMethods)
+ return "Non-satellite"
+ else if (method === PositionSource.AllPositioningMethods)
+ return "Multiple"
+ return "source error";
+ }
+
+ Grid {
+ id: locationGrid
+ columns: 2
+ anchors {left: parent.left; leftMargin: 5; top: locateButton.bottom; topMargin: 5}
+ spacing: 5
+ Text {color: "white"; font.bold: true
+ text: "Lat:"; style: Text.Raised; styleColor: "black"
+ }
+ Text {id: latitudeValue; color: "white"; font.bold: true
+ text: positionSource.position.coordinate.latitude; style: Text.Raised; styleColor: "black";
+ }
+ Text {color: "white"; font.bold: true
+ text: "Lon:"; style: Text.Raised; styleColor: "black"
+ }
+ Text {id: longitudeValue; color: "white"; font.bold: true
+ text: positionSource.position.coordinate.longitude; style: Text.Raised; styleColor: "black"
+ }
+ }
+ Image {
+ id: planet
+ anchors {top: locationGrid.bottom; left: parent.left; leftMargin: locationGrid.anchors.leftMargin}
+ source: "images/moon.png"
+ width: 30; height: 30
+ }
+ Text {id: sourceText; color: "white"; font.bold: true;
+ anchors {left: planet.right; leftMargin: 5; verticalCenter: planet.verticalCenter}
+ text: "Source: " + printableMethod(positionSource.supportedPositioningMethods); style: Text.Raised; styleColor: "black";
+ }
+}
diff --git a/examples/positioning/flickr/flickrmobile/GridDelegate.qml b/examples/positioning/flickr/flickrmobile/GridDelegate.qml
new file mode 100644
index 00000000..4eca4d8b
--- /dev/null
+++ b/examples/positioning/flickr/flickrmobile/GridDelegate.qml
@@ -0,0 +1,111 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the examples of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
+** of its contributors may be used to endorse or promote products derived
+** from this software without specific prior written permission.
+**
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+ import QtQuick 2.0
+
+ Component {
+ id: photoDelegate
+ Item {
+ id: wrapper; width: 79; height: 79
+
+ function photoClicked() {
+ imageDetails.photoTitle = title;
+ imageDetails.photoDate = datetaken;
+ imageDetails.photoUrl = "http://farm" + farm + ".static.flickr.com/" + server + "/" + id + "_" + secret + ".jpg";
+ console.log(imageDetails.photoUrl);
+ scaleMe.state = "Details";
+ }
+
+ Item {
+ anchors.centerIn: parent
+ scale: 0.0
+ Behavior on scale { NumberAnimation { easing.type: Easing.InOutQuad} }
+ id: scaleMe
+
+ Rectangle { height: 79; width: 79; id: blackRect; anchors.centerIn: parent; color: "black"; smooth: true }
+ Rectangle {
+ id: whiteRect; width: 76; height: 76; anchors.centerIn: parent; color: "#dddddd"; smooth: true
+ Image { id: thumb;
+ // source: imagePath;
+ source: imageDetails.photoUrl = "http://farm" + farm + ".static.flickr.com/" + server + "/" + id + "_" + secret + "_t.jpg"
+ width: parent.width; height: parent.height
+ x: 1; y: 1; smooth: true}
+ Image { source: "images/gloss.png" }
+ }
+
+ Connections {
+ target: toolBar
+ onButton2Clicked: if (scaleMe.state == 'Details' ) scaleMe.state = 'Show'
+ }
+
+ states: [
+ State {
+ name: "Show"; when: thumb.status == Image.Ready
+ PropertyChanges { target: scaleMe; scale: 1 }
+ },
+ State {
+ name: "Details"
+ PropertyChanges { target: scaleMe; scale: 1 }
+ ParentChange { target: wrapper; parent: imageDetails.frontContainer }
+ PropertyChanges { target: wrapper; x: 20; y: 60; z: 1000 }
+ PropertyChanges { target: background; state: "DetailedView" }
+ }
+ ]
+ transitions: [
+ Transition {
+ from: "Show"; to: "Details"
+ ParentAnimation {
+ NumberAnimation { properties: "x,y"; duration: 500; easing.type: Easing.InOutQuad }
+ }
+ },
+ Transition {
+ from: "Details"; to: "Show"
+ SequentialAnimation {
+ ParentAnimation {
+ NumberAnimation { properties: "x,y"; duration: 500; easing.type: Easing.InOutQuad }
+ }
+ PropertyAction { targets: wrapper; properties: "z" }
+ }
+ }
+ ]
+ }
+ MouseArea { anchors.fill: wrapper; onClicked: { photoClicked() } }
+ }
+ }
diff --git a/examples/positioning/flickr/flickrmobile/ImageDetails.qml b/examples/positioning/flickr/flickrmobile/ImageDetails.qml
new file mode 100644
index 00000000..a06d66a5
--- /dev/null
+++ b/examples/positioning/flickr/flickrmobile/ImageDetails.qml
@@ -0,0 +1,156 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the examples of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
+** of its contributors may be used to endorse or promote products derived
+** from this software without specific prior written permission.
+**
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.0
+import "../flickrcommon" as Common
+
+Flipable {
+ id: container
+
+ property variant frontContainer: containerFront
+ property string photoTitle: ""
+ property string photoDate
+ property string photoUrl
+ property variant prevScale: 1.0
+
+ signal closed
+
+ transform: Rotation {
+ id: itemRotation
+ origin.x: container.width / 2;
+ axis.y: 1; axis.z: 0
+ }
+
+ front: Item {
+ id: containerFront; anchors.fill: container
+
+ Rectangle {
+ anchors.fill: parent
+ color: "black"; opacity: 0.4
+ }
+
+ Column {
+ spacing: 10
+ anchors {
+ left: parent.left; leftMargin: 20
+ right: parent.right; rightMargin: 20
+ top: parent.top; topMargin: 180
+ }
+ Text { font.bold: true; color: "white"; elide: Text.ElideRight; text: container.photoTitle }
+ Text { color: "white"; elide: Text.ElideRight; text: "<b>Published:</b> " + container.photoDate }
+ }
+ }
+
+ back: Item {
+ anchors.fill: container
+
+ Rectangle { anchors.fill: parent; color: "black"; opacity: 0.4 }
+
+ Common.Progress {
+ anchors.centerIn: parent; width: 200; height: 18
+ progress: bigImage.progress; visible: bigImage.status != Image.Ready
+ }
+
+ Flickable {
+ id: flickable; anchors.fill: parent; clip: true
+ contentWidth: imageContainer.width; contentHeight: imageContainer.height
+
+ Item {
+ id: imageContainer
+ width: Math.max(bigImage.width * bigImage.scale, flickable.width);
+ height: Math.max(bigImage.height * bigImage.scale, flickable.height);
+
+ Image {
+ id: bigImage; // source: container.photoUrl
+ source: container.photoUrl
+ scale: slider.value
+ anchors.centerIn: parent; smooth: !flickable.movingVertically
+ onStatusChanged : {
+ // Default scale shows the entire image.
+ if (status == Image.Ready && width != 0) {
+ slider.minimum = Math.min(flickable.width / width, flickable.height / height);
+ prevScale = Math.min(slider.minimum, 1);
+ slider.value = prevScale;
+ }
+ }
+ }
+ }
+ }
+
+ Text {
+ text: "Image Unavailable"
+ visible: bigImage.status == Image.Error
+ anchors.centerIn: parent; color: "white"; font.bold: true
+ }
+
+ Common.Slider {
+ id: slider; visible: { bigImage.status == Image.Ready && maximum > minimum }
+ anchors {
+ bottom: parent.bottom; bottomMargin: 65
+ left: parent.left; leftMargin: 25
+ right: parent.right; rightMargin: 25
+ }
+ onValueChanged: {
+ if (bigImage.width * value > flickable.width) {
+ var xoff = (flickable.width/2 + flickable.contentX) * value / prevScale;
+ flickable.contentX = xoff - flickable.width/2;
+ }
+ if (bigImage.height * value > flickable.height) {
+ var yoff = (flickable.height/2 + flickable.contentY) * value / prevScale;
+ flickable.contentY = yoff - flickable.height/2;
+ }
+ prevScale = value;
+ }
+ }
+ }
+
+ states: State {
+ name: "Back"
+ PropertyChanges { target: itemRotation; angle: 180 }
+ }
+
+ transitions: Transition {
+ SequentialAnimation {
+ PropertyAction { target: bigImage; property: "smooth"; value: false }
+ NumberAnimation { easing.type: Easing.InOutQuad; properties: "angle"; duration: 500 }
+ PropertyAction { target: bigImage; property: "smooth"; value: !flickable.movingVertically }
+ }
+ }
+}
diff --git a/examples/positioning/flickr/flickrmobile/ListDelegate.qml b/examples/positioning/flickr/flickrmobile/ListDelegate.qml
new file mode 100644
index 00000000..baec7205
--- /dev/null
+++ b/examples/positioning/flickr/flickrmobile/ListDelegate.qml
@@ -0,0 +1,66 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the examples of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
+** of its contributors may be used to endorse or promote products derived
+** from this software without specific prior written permission.
+**
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.0
+ Component {
+ Item {
+ id: wrapper; width: wrapper.ListView.view.width; height: 86
+ Item {
+ id: moveMe
+ Rectangle { color: "black"; opacity: index % 2 ? 0.2 : 0.4; height: 84; width: wrapper.width; y: 1 }
+ Rectangle {
+ x: 6; y: 4; width: 76; height: 76; color: "white"; smooth: true
+
+ Image {
+ //source: imagePath;
+ source: "http://farm" + farm + ".static.flickr.com/" + server + "/" + id + "_" + secret + "_t.jpg"
+ width: parent.width; height: parent.height
+ x: 0; y: 0 }
+
+ Image { source: "images/gloss.png" }
+ }
+ Column {
+ x: 92; width: wrapper.ListView.view.width - 95; y: 15; spacing: 2
+ Text { text: title; color: "white"; width: parent.width; font.bold: true; elide: Text.ElideRight; style: Text.Raised; styleColor: "black" }
+ Text { text: datetaken; width: parent.width; elide: Text.ElideRight; color: "#cccccc"; style: Text.Raised; styleColor: "black" }
+ }
+ }
+ }
+}
diff --git a/examples/positioning/flickr/flickrmobile/TitleBar.qml b/examples/positioning/flickr/flickrmobile/TitleBar.qml
new file mode 100644
index 00000000..f304d88f
--- /dev/null
+++ b/examples/positioning/flickr/flickrmobile/TitleBar.qml
@@ -0,0 +1,77 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the examples of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
+** of its contributors may be used to endorse or promote products derived
+** from this software without specific prior written permission.
+**
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.0
+
+Item {
+ id: titleBar
+ BorderImage { source: "images/titlebar.sci"; width: parent.width; height: parent.height + 14; y: -7 }
+
+ Item {
+ id: container
+ width: (parent.width * 2) - 55 ; height: parent.height
+
+ Image {
+ id: quitButton
+ anchors.left: parent.left//; anchors.leftMargin: 0
+ anchors.verticalCenter: parent.verticalCenter
+ source: "images/quit.png"
+ MouseArea {
+ anchors.fill: parent
+ onClicked: Qt.quit()
+ }
+ }
+
+ Text {
+ id: categoryText
+ anchors {
+ left: quitButton.right; leftMargin: 10; rightMargin: 10
+ verticalCenter: parent.verticalCenter
+ }
+ elide: Text.ElideLeft
+ text: "Declarative location Flickr"
+ font.bold: true; color: "White"; style: Text.Raised; styleColor: "Black"
+ }
+ }
+
+ transitions: Transition {
+ NumberAnimation { properties: "x"; easing.type: Easing.InOutQuad }
+ }
+}
diff --git a/examples/positioning/flickr/flickrmobile/ToolBar.qml b/examples/positioning/flickr/flickrmobile/ToolBar.qml
new file mode 100644
index 00000000..bdc53ef7
--- /dev/null
+++ b/examples/positioning/flickr/flickrmobile/ToolBar.qml
@@ -0,0 +1,64 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the examples of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
+** of its contributors may be used to endorse or promote products derived
+** from this software without specific prior written permission.
+**
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.0
+
+Item {
+ id: toolbar
+
+ property alias button1Label: button1.text
+ property alias button2Label: button2.text
+ signal button1Clicked
+ signal button2Clicked
+
+ BorderImage { source: "images/titlebar.sci"; width: parent.width; height: parent.height + 14; y: -7 }
+
+ Button {
+ id: button1
+ anchors.left: parent.left; anchors.leftMargin: 5; y: 3; width: 140; height: 32
+ onClicked: toolbar.button1Clicked()
+ }
+
+ Button {
+ id: button2
+ anchors.right: parent.right; anchors.rightMargin: 5; y: 3; width: 140; height: 32
+ onClicked: toolbar.button2Clicked()
+ }
+}
diff --git a/examples/positioning/flickr/flickrmobile/images/gloss.png b/examples/positioning/flickr/flickrmobile/images/gloss.png
new file mode 100644
index 00000000..5d370cd9
--- /dev/null
+++ b/examples/positioning/flickr/flickrmobile/images/gloss.png
Binary files differ
diff --git a/examples/positioning/flickr/flickrmobile/images/lineedit.png b/examples/positioning/flickr/flickrmobile/images/lineedit.png
new file mode 100644
index 00000000..2cc38dc3
--- /dev/null
+++ b/examples/positioning/flickr/flickrmobile/images/lineedit.png
Binary files differ
diff --git a/examples/positioning/flickr/flickrmobile/images/lineedit.sci b/examples/positioning/flickr/flickrmobile/images/lineedit.sci
new file mode 100644
index 00000000..054bff78
--- /dev/null
+++ b/examples/positioning/flickr/flickrmobile/images/lineedit.sci
@@ -0,0 +1,5 @@
+border.left: 10
+border.top: 10
+border.bottom: 10
+border.right: 10
+source: lineedit.png
diff --git a/examples/positioning/flickr/flickrmobile/images/moon.png b/examples/positioning/flickr/flickrmobile/images/moon.png
new file mode 100644
index 00000000..9407b2b4
--- /dev/null
+++ b/examples/positioning/flickr/flickrmobile/images/moon.png
Binary files differ
diff --git a/examples/positioning/flickr/flickrmobile/images/quit.png b/examples/positioning/flickr/flickrmobile/images/quit.png
new file mode 100644
index 00000000..5bda1b6e
--- /dev/null
+++ b/examples/positioning/flickr/flickrmobile/images/quit.png
Binary files differ
diff --git a/examples/positioning/flickr/flickrmobile/images/star.png b/examples/positioning/flickr/flickrmobile/images/star.png
new file mode 100644
index 00000000..27ef9242
--- /dev/null
+++ b/examples/positioning/flickr/flickrmobile/images/star.png
Binary files differ
diff --git a/examples/positioning/flickr/flickrmobile/images/stripes.png b/examples/positioning/flickr/flickrmobile/images/stripes.png
new file mode 100644
index 00000000..9f36727e
--- /dev/null
+++ b/examples/positioning/flickr/flickrmobile/images/stripes.png
Binary files differ
diff --git a/examples/positioning/flickr/flickrmobile/images/sun.png b/examples/positioning/flickr/flickrmobile/images/sun.png
new file mode 100644
index 00000000..7713ca5c
--- /dev/null
+++ b/examples/positioning/flickr/flickrmobile/images/sun.png
Binary files differ
diff --git a/examples/positioning/flickr/flickrmobile/images/titlebar.png b/examples/positioning/flickr/flickrmobile/images/titlebar.png
new file mode 100644
index 00000000..51c90082
--- /dev/null
+++ b/examples/positioning/flickr/flickrmobile/images/titlebar.png
Binary files differ
diff --git a/examples/positioning/flickr/flickrmobile/images/titlebar.sci b/examples/positioning/flickr/flickrmobile/images/titlebar.sci
new file mode 100644
index 00000000..0418d94c
--- /dev/null
+++ b/examples/positioning/flickr/flickrmobile/images/titlebar.sci
@@ -0,0 +1,5 @@
+border.left: 10
+border.top: 12
+border.bottom: 12
+border.right: 10
+source: titlebar.png
diff --git a/examples/positioning/flickr/flickrmobile/images/toolbutton.png b/examples/positioning/flickr/flickrmobile/images/toolbutton.png
new file mode 100644
index 00000000..11310013
--- /dev/null
+++ b/examples/positioning/flickr/flickrmobile/images/toolbutton.png
Binary files differ
diff --git a/examples/positioning/flickr/flickrmobile/images/toolbutton.sci b/examples/positioning/flickr/flickrmobile/images/toolbutton.sci
new file mode 100644
index 00000000..9e4f9653
--- /dev/null
+++ b/examples/positioning/flickr/flickrmobile/images/toolbutton.sci
@@ -0,0 +1,5 @@
+border.left: 15
+border.top: 4
+border.bottom: 4
+border.right: 15
+source: toolbutton.png
diff --git a/examples/positioning/flickr/flickrmobile/nmealog.txt b/examples/positioning/flickr/flickrmobile/nmealog.txt
new file mode 100644
index 00000000..8c8286dd
--- /dev/null
+++ b/examples/positioning/flickr/flickrmobile/nmealog.txt
@@ -0,0 +1,1403 @@
+$GPGGA,222437.000,2734.33926,S,15305.44310,E,1,07,1.3,50.6,M,39.2,M,,*72
+$GPGLL,2734.33926,S,15305.44310,E,222437.000,A,A*49
+$GPGSA,A,3,16,25,23,20,13,27,11,,,,,,2.3,1.3,1.9*3D
+$GPGST,222437.000,13.3,7.4,6.6,85.1,6.0,6.8,13.7*56
+$GPGSV,3,1,10,16,49,115,42,25,39,269,36,23,58,176,29,20,72,335,35*75
+$GPGSV,3,2,10,19,02,028,,04,06,241,22,13,30,223,30,27,19,284,35*78
+$GPGSV,3,3,10,11,06,337,30,03,13,055,25*7C
+$GPRMC,222437.000,A,2734.33926,S,15305.44310,E,33.9,157.8,030308,11.2,W,A*0F
+$GPVTG,157.8,T,169.0,M,33.9,N,62.9,K,A*22
+$GPGGA,222438.000,2734.34821,S,15305.44697,E,1,07,1.2,50.8,M,39.2,M,,*79
+$GPGLL,2734.34821,S,15305.44697,E,222438.000,A,A*4D
+$GPGSA,A,3,16,25,23,20,13,27,03,,,,,,2.1,1.2,1.7*33
+$GPGST,222438.000,12.4,6.4,9.3,16.2,6.1,8.3,16.4*5F
+$GPGSV,3,1,10,16,49,115,41,25,39,269,36,23,58,176,28,20,72,335,36*74
+$GPGSV,3,2,10,19,02,028,,04,06,241,20,13,30,223,28,27,19,284,35*73
+$GPGSV,3,3,10,11,06,337,28,03,13,055,25*75
+$GPRMC,222438.000,A,2734.34821,S,15305.44697,E,33.8,158.3,030308,11.2,W,A*0E
+$GPVTG,158.3,T,169.5,M,33.8,N,62.5,K,A*2E
+$GPGGA,222439.000,2734.35696,S,15305.45072,E,1,06,1.7,51.2,M,39.2,M,,*78
+$GPGLL,2734.35696,S,15305.45072,E,222439.000,A,A*43
+$GPGSA,A,3,16,25,23,20,13,27,,,,,,,3.3,1.7,2.8*3A
+$GPGST,222439.000,10.3,9.1,12.2,44.6,9.8,9.9,25.2*62
+$GPGSV,3,1,10,16,49,115,34,25,39,269,36,23,58,175,29,20,72,335,35*77
+$GPGSV,3,2,10,19,02,028,,04,06,241,20,13,30,223,27,27,19,284,32*7B
+$GPGSV,3,3,10,11,06,337,28,03,14,055,25*72
+$GPRMC,222439.000,A,2734.35696,S,15305.45072,E,33.2,158.7,030308,11.2,W,A*0E
+$GPVTG,158.7,T,169.9,M,33.2,N,61.5,K,A*2F
+$GPGGA,222440.000,2734.36580,S,15305.45446,E,1,07,1.3,52.0,M,39.2,M,,*76
+$GPGLL,2734.36580,S,15305.45446,E,222440.000,A,A*49
+$GPGSA,A,3,16,25,23,20,13,27,11,,,,,,2.3,1.3,1.9*3D
+$GPGST,222440.000,13.0,8.0,13.4,6.2,7.4,12.2,20.9*64
+$GPGSV,3,1,10,16,49,115,40,25,39,269,38,23,58,175,31,20,72,335,34*72
+$GPGSV,3,2,10,19,02,028,,04,06,241,20,13,30,223,26,27,19,284,30*78
+$GPGSV,3,3,10,11,06,337,26,03,14,055,25*7C
+$GPRMC,222440.000,A,2734.36580,S,15305.45446,E,33.7,159.1,030308,11.2,W,A*06
+$GPVTG,159.1,T,170.3,M,33.7,N,62.4,K,A*2D
+$GPGGA,222441.000,2734.37483,S,15305.45825,E,1,07,1.3,52.7,M,39.2,M,,*7A
+$GPGLL,2734.37483,S,15305.45825,E,222441.000,A,A*42
+$GPGSA,A,3,16,25,23,20,13,27,11,,,,,,2.3,1.3,1.9*3D
+$GPGST,222441.000,14.0,7.6,14.1,17.6,7.7,12.5,21.0*51
+$GPGSV,3,1,10,16,49,115,41,25,39,269,39,23,58,175,29,20,72,335,35*7A
+$GPGSV,3,2,10,19,02,028,,04,06,241,20,13,30,223,24,27,19,284,30*7A
+$GPGSV,3,3,10,11,06,337,28,03,14,055,25*72
+$GPRMC,222441.000,A,2734.37483,S,15305.45825,E,34.6,159.4,030308,11.2,W,A*0E
+$GPVTG,159.4,T,170.6,M,34.6,N,64.1,K,A*28
+$GPGGA,222442.000,2734.38407,S,15305.46216,E,1,06,1.3,53.3,M,39.2,M,,*77
+$GPGLL,2734.38407,S,15305.46216,E,222442.000,A,A*4B
+$GPGSA,A,3,16,25,20,13,27,11,,,,,,,2.3,1.3,1.9*3C
+$GPGST,222442.000,16.6,7.0,14.4,14.6,7.0,12.8,21.6*5A
+$GPGSV,3,1,10,16,49,115,40,25,39,269,38,23,58,175,22,20,72,335,35*71
+$GPGSV,3,2,10,19,02,028,,04,06,241,20,13,30,223,25,27,19,284,29*73
+$GPGSV,3,3,10,11,06,337,27,03,14,055,25*7D
+$GPRMC,222442.000,A,2734.38407,S,15305.46216,E,35.5,159.3,030308,11.2,W,A*02
+$GPVTG,159.3,T,170.5,M,35.5,N,65.8,K,A*26
+$GPGGA,222443.000,2734.39347,S,15305.46609,E,1,05,1.8,53.8,M,39.2,M,,*7D
+$GPGLL,2734.39347,S,15305.46609,E,222443.000,A,A*42
+$GPGSA,A,3,16,25,20,27,11,,,,,,,,2.8,1.8,2.1*35
+$GPGST,222443.000,11.3,6.5,14.6,14.5,6.6,13.0,18.4*5A
+$GPGSV,3,1,10,16,49,115,40,25,39,269,38,23,58,175,22,20,72,335,36*72
+$GPGSV,3,2,10,19,02,028,,04,06,241,20,13,30,223,26,27,19,284,31*79
+$GPGSV,3,3,10,11,06,337,28,03,14,055,25*72
+$GPRMC,222443.000,A,2734.39347,S,15305.46609,E,36.2,159.4,030308,11.2,W,A*08
+$GPVTG,159.4,T,170.6,M,36.2,N,67.0,K,A*2C
+$GPGGA,222444.000,2734.40297,S,15305.47000,E,1,06,1.3,54.1,M,39.2,M,,*70
+$GPGLL,2734.40297,S,15305.47000,E,222444.000,A,A*49
+$GPGSA,A,3,16,25,20,13,27,11,,,,,,,2.3,1.3,1.9*3C
+$GPGST,222444.000,17.6,6.3,12.7,14.4,6.3,11.4,16.2*55
+$GPGSV,3,1,10,16,49,115,38,25,39,269,38,23,58,175,22,20,72,335,35*7E
+$GPGSV,3,2,10,19,02,028,,04,06,241,20,13,30,223,25,27,19,284,29*73
+$GPGSV,3,3,10,11,06,337,25,03,14,055,23*79
+$GPRMC,222444.000,A,2734.40297,S,15305.47000,E,36.5,159.5,030308,11.2,W,A*05
+$GPVTG,159.5,T,170.8,M,36.5,N,67.5,K,A*21
+$GPGGA,222445.000,2734.41247,S,15305.47390,E,1,07,1.3,54.2,M,39.2,M,,*75
+$GPGLL,2734.41247,S,15305.47390,E,222445.000,A,A*4E
+$GPGSA,A,3,16,25,23,20,13,27,11,,,,,,2.3,1.3,1.9*3D
+$GPGST,222445.000,16.0,7.0,14.4,10.4,6.7,13.0,20.7*52
+$GPGSV,3,1,10,16,49,115,36,25,39,269,36,23,58,175,22,20,72,335,34*7F
+$GPGSV,3,2,10,19,02,028,,04,06,241,20,13,30,223,26,27,19,284,31*79
+$GPGSV,3,3,10,11,06,337,26,03,14,055,23*7A
+$GPRMC,222445.000,A,2734.41247,S,15305.47390,E,36.6,159.7,030308,11.2,W,A*03
+$GPVTG,159.7,T,170.9,M,36.6,N,67.8,K,A*2C
+$GPGGA,222446.000,2734.42201,S,15305.47790,E,1,07,1.3,54.4,M,39.2,M,,*75
+$GPGLL,2734.42201,S,15305.47790,E,222446.000,A,A*48
+$GPGSA,A,3,16,25,23,20,13,27,11,,,,,,2.3,1.3,1.9*3D
+$GPGST,222446.000,13.0,7.4,12.3,6.6,6.9,11.2,17.9*60
+$GPGSV,3,1,10,16,49,115,36,25,39,269,37,23,58,175,27,20,72,335,35*7A
+$GPGSV,3,2,10,19,02,028,,04,06,241,23,13,30,223,30,27,19,284,32*7E
+$GPGSV,3,3,10,11,06,337,27,03,14,055,23*7B
+$GPRMC,222446.000,A,2734.42201,S,15305.47790,E,36.6,159.3,030308,11.2,W,A*01
+$GPVTG,159.3,T,170.5,M,36.6,N,67.7,K,A*2B
+$GPGGA,222447.000,2734.43157,S,15305.48195,E,1,07,1.3,54.3,M,39.2,M,,*7E
+$GPGLL,2734.43157,S,15305.48195,E,222447.000,A,A*44
+$GPGSA,A,3,16,25,23,20,13,27,11,,,,,,2.3,1.3,1.9*3D
+$GPGST,222447.000,10.7,6.7,10.5,6.6,6.2,9.6,15.5*5B
+$GPGSV,3,1,11,16,49,115,32,25,39,269,37,23,58,175,28,20,72,335,33*76
+$GPGSV,3,2,11,19,02,028,,04,06,241,23,13,30,223,30,27,19,284,32*7F
+$GPGSV,3,3,11,11,06,337,29,01,,,19,03,14,055,23*7D
+$GPRMC,222447.000,A,2734.43157,S,15305.48195,E,36.7,159.1,030308,11.2,W,A*0E
+$GPVTG,159.1,T,170.3,M,36.7,N,67.9,K,A*20
+$GPGGA,222448.000,2734.44111,S,15305.48610,E,1,08,1.1,54.1,M,39.2,M,,*71
+$GPGLL,2734.44111,S,15305.48610,E,222448.000,A,A*44
+$GPGSA,A,3,16,25,23,20,13,27,11,03,,,,,2.0,1.1,1.6*30
+$GPGST,222448.000,20.4,10.5,8.8,52.5,8.7,9.1,15.2*6C
+$GPGSV,3,1,11,16,49,115,27,25,39,269,38,23,58,175,26,20,72,335,31*71
+$GPGSV,3,2,11,19,02,028,,04,06,241,23,13,30,223,37,27,19,284,27*7C
+$GPGSV,3,3,11,11,06,337,27,01,,,19,03,14,055,23*73
+$GPRMC,222448.000,A,2734.44111,S,15305.48610,E,36.8,158.7,030308,11.2,W,A*06
+$GPVTG,158.7,T,169.9,M,36.8,N,68.2,K,A*2E
+$GPGGA,222449.000,2734.45068,S,15305.49044,E,1,08,1.1,53.6,M,39.2,M,,*78
+$GPGLL,2734.45068,S,15305.49044,E,222449.000,A,A*4D
+$GPGSA,A,3,16,25,23,20,13,27,11,03,,,,,2.0,1.1,1.6*30
+$GPGST,222449.000,17.1,8.8,10.2,14.2,8.2,9.3,17.4*6D
+$GPGSV,3,1,11,16,49,115,28,25,39,269,37,23,58,175,25,20,72,335,28*7A
+$GPGSV,3,2,11,19,02,028,,04,06,241,23,13,30,223,37,27,19,284,32*78
+$GPGSV,3,3,11,11,06,337,27,01,,,19,03,14,055,24*74
+$GPRMC,222449.000,A,2734.45068,S,15305.49044,E,37.2,157.8,030308,11.2,W,A*04
+$GPVTG,157.8,T,169.0,M,37.2,N,68.9,K,A*27
+$GPGGA,222450.000,2734.46041,S,15305.49485,E,1,08,1.1,53.3,M,39.2,M,,*74
+$GPGLL,2734.46041,S,15305.49485,E,222450.000,A,A*44
+$GPGSA,A,3,16,25,23,20,13,27,11,03,,,,,2.0,1.1,1.6*30
+$GPGST,222450.000,17.4,8.9,12.7,10.1,11.5,8.2,16.5*5E
+$GPGSV,3,1,11,16,49,115,25,25,39,269,36,23,58,175,30,20,72,336,28*71
+$GPGSV,3,2,11,19,02,028,,04,06,241,21,13,30,223,38,27,19,284,34*73
+$GPGSV,3,3,11,11,06,337,27,01,,,19,03,14,055,22*72
+$GPRMC,222450.000,A,2734.46041,S,15305.49485,E,37.7,157.9,030308,11.2,W,A*09
+$GPVTG,157.9,T,169.1,M,37.7,N,69.8,K,A*22
+$GPGGA,222451.000,2734.47033,S,15305.49924,E,1,08,1.1,53.1,M,39.2,M,,*75
+$GPGLL,2734.47033,S,15305.49924,E,222451.000,A,A*47
+$GPGSA,A,3,16,25,23,20,13,27,11,03,,,,,2.0,1.1,1.6*30
+$GPGST,222451.000,14.1,8.0,10.5,14.3,9.5,7.5,15.0*61
+$GPGSV,3,1,11,16,49,115,27,25,39,269,38,23,58,175,28,20,72,336,25*79
+$GPGSV,3,2,11,19,02,028,,04,06,241,21,13,30,223,38,27,19,284,34*73
+$GPGSV,3,3,11,11,06,337,24,01,,,19,03,14,055,25*76
+$GPRMC,222451.000,A,2734.47033,S,15305.49924,E,38.1,158.1,030308,11.2,W,A*04
+$GPVTG,158.1,T,169.3,M,38.1,N,70.5,K,A*2B
+$GPGGA,222452.000,2734.48022,S,15305.50375,E,1,08,1.1,52.5,M,39.2,M,,*7A
+$GPGLL,2734.48022,S,15305.50375,E,222452.000,A,A*4D
+$GPGSA,A,3,16,25,23,20,13,27,11,03,,,,,2.0,1.1,1.6*30
+$GPGST,222452.000,24.1,13.9,9.7,80.6,12.7,9.0,21.0*54
+$GPGSV,3,1,11,16,49,115,29,25,39,269,38,23,58,175,27,20,72,336,30*7C
+$GPGSV,3,2,11,19,02,028,,04,06,241,21,13,30,223,35,27,19,284,34*7E
+$GPGSV,3,3,11,11,06,337,22,01,,,19,03,14,055,24*71
+$GPRMC,222452.000,A,2734.48022,S,15305.50375,E,38.3,157.9,030308,11.2,W,A*0B
+$GPVTG,157.9,T,169.1,M,38.3,N,70.9,K,A*20
+$GPGGA,222453.000,2734.49019,S,15305.50802,E,1,06,1.7,52.1,M,39.2,M,,*75
+$GPGLL,2734.49019,S,15305.50802,E,222453.000,A,A*4E
+$GPGSA,A,3,16,25,23,20,13,27,,,,,,,3.3,1.7,2.8*3A
+$GPGST,222453.000,10.4,15.4,9.3,66.3,13.4,9.6,24.6*52
+$GPGSV,3,1,11,16,49,115,31,25,39,269,36,23,58,175,28,20,71,336,25*73
+$GPGSV,3,2,11,19,02,028,,04,06,241,21,13,30,223,33,27,19,284,31*7D
+$GPGSV,3,3,11,11,06,337,22,01,,,19,03,14,055,24*71
+$GPRMC,222453.000,A,2734.49019,S,15305.50802,E,38.3,159.1,030308,11.2,W,A*0E
+$GPVTG,159.1,T,170.3,M,38.3,N,70.9,K,A*2C
+$GPGGA,222454.000,2734.50008,S,15305.51221,E,1,07,1.3,52.1,M,39.2,M,,*75
+$GPGLL,2734.50008,S,15305.51221,E,222454.000,A,A*4B
+$GPGSA,A,3,16,25,23,20,13,27,11,,,,,,2.3,1.3,1.9*3D
+$GPGST,222454.000,12.5,11.7,8.3,70.6,10.4,8.0,19.0*5E
+$GPGSV,3,1,11,16,49,115,30,25,39,269,36,23,58,175,26,20,71,336,28*71
+$GPGSV,3,2,11,19,02,028,,04,06,241,21,13,30,223,32,27,19,284,30*7D
+$GPGSV,3,3,11,11,06,337,24,01,,,18,03,14,055,24*76
+$GPRMC,222454.000,A,2734.50008,S,15305.51221,E,38.1,159.4,030308,11.2,W,A*0C
+$GPVTG,159.4,T,170.6,M,38.1,N,70.5,K,A*22
+$GPGGA,222455.000,2734.50992,S,15305.51642,E,1,07,1.3,52.2,M,39.2,M,,*7C
+$GPGLL,2734.50992,S,15305.51642,E,222455.000,A,A*41
+$GPGSA,A,3,16,25,23,20,13,27,11,,,,,,2.3,1.3,1.9*3D
+$GPGST,222455.000,11.5,10.8,9.3,83.5,9.9,8.6,23.3*65
+$GPGSV,3,1,11,16,49,115,33,25,39,269,36,23,58,175,32,20,71,336,31*7F
+$GPGSV,3,2,11,19,02,028,,04,06,241,21,13,30,223,29,27,19,284,29*7F
+$GPGSV,3,3,11,11,06,337,28,01,,,18,03,14,055,24*7A
+$GPRMC,222455.000,A,2734.50992,S,15305.51642,E,37.8,159.0,030308,11.2,W,A*04
+$GPVTG,159.0,T,170.2,M,37.8,N,70.0,K,A*21
+$GPGGA,222456.000,2734.51963,S,15305.52059,E,1,07,1.3,52.5,M,39.2,M,,*78
+$GPGLL,2734.51963,S,15305.52059,E,222456.000,A,A*42
+$GPGSA,A,3,16,25,23,20,13,27,11,,,,,,2.3,1.3,1.9*3D
+$GPGST,222456.000,11.3,9.0,13.1,11.0,8.4,11.9,20.9*55
+$GPGSV,3,1,11,16,49,115,31,25,39,269,37,23,58,175,27,20,71,336,33*7A
+$GPGSV,3,2,11,19,02,028,,04,06,241,19,13,30,223,29,27,19,284,32*7E
+$GPGSV,3,3,11,11,06,337,30,01,,,18,03,14,055,24*73
+$GPRMC,222456.000,A,2734.51963,S,15305.52059,E,37.3,158.8,030308,11.2,W,A*05
+$GPVTG,158.8,T,170.0,M,37.3,N,69.1,K,A*28
+$GPGGA,222457.000,2734.52908,S,15305.52467,E,1,06,1.3,53.2,M,39.2,M,,*79
+$GPGLL,2734.52908,S,15305.52467,E,222457.000,A,A*44
+$GPGSA,A,3,16,25,20,13,27,11,,,,,,,2.3,1.3,1.9*3C
+$GPGST,222457.000,20.4,7.8,12.0,8.1,7.3,10.9,17.9*63
+$GPGSV,3,1,11,16,49,115,37,25,39,269,37,23,58,175,24,20,71,336,35*79
+$GPGSV,3,2,11,19,02,028,,04,06,241,19,13,30,223,29,27,19,284,32*7E
+$GPGSV,3,3,11,11,06,337,28,01,,,18,03,14,055,23*7D
+$GPRMC,222457.000,A,2734.52908,S,15305.52467,E,36.2,158.7,030308,11.2,W,A*0C
+$GPVTG,158.7,T,169.9,M,36.2,N,67.1,K,A*28
+$GPGGA,222458.000,2734.53845,S,15305.52866,E,1,06,1.6,54.2,M,39.2,M,,*70
+$GPGLL,2734.53845,S,15305.52866,E,222458.000,A,A*4F
+$GPGSA,A,3,16,25,23,20,27,11,,,,,,,2.6,1.6,2.1*34
+$GPGST,222458.000,16.7,7.3,13.9,11.0,7.0,12.5,17.9*5D
+$GPGSV,3,1,11,16,49,115,36,25,39,269,37,23,58,175,24,20,71,336,35*78
+$GPGSV,3,2,11,19,02,028,19,04,06,241,19,13,30,223,26,27,19,284,31*7A
+$GPGSV,3,3,11,11,06,337,23,01,,,18,03,14,055,23*76
+$GPRMC,222458.000,A,2734.53845,S,15305.52866,E,35.9,159.1,030308,11.2,W,A*08
+$GPVTG,159.1,T,170.3,M,35.9,N,66.5,K,A*20
+$GPGGA,222459.000,2734.54772,S,15305.53309,E,1,08,1.1,55.6,M,39.2,M,,*72
+$GPGLL,2734.54772,S,15305.53309,E,222459.000,A,A*41
+$GPGSA,A,3,16,25,23,20,13,27,11,03,,,,,2.0,1.1,1.6*30
+$GPGST,222459.000,17.5,6.5,9.3,15.5,6.1,8.3,15.2*5C
+$GPGSV,3,1,11,16,49,115,38,25,39,268,36,23,58,175,35,20,71,336,35*76
+$GPGSV,3,2,11,19,02,028,19,04,06,241,19,13,30,223,33,27,19,284,34*7B
+$GPGSV,3,3,11,11,06,337,29,01,,,18,03,14,055,22*7D
+$GPRMC,222459.000,A,2734.54772,S,15305.53309,E,35.9,156.8,030308,11.2,W,A*00
+$GPVTG,156.8,T,168.0,M,35.9,N,66.4,K,A*2D
+$GPGGA,222500.000,2734.55655,S,15305.53845,E,1,08,1.1,56.1,M,39.2,M,,*7D
+$GPGLL,2734.55655,S,15305.53845,E,222500.000,A,A*4A
+$GPGSA,A,3,16,25,23,20,13,27,11,03,,,,,2.0,1.1,1.6*30
+$GPGST,222500.000,14.5,9.8,7.9,83.3,7.3,9.0,14.3*5C
+$GPGSV,3,1,11,16,49,115,36,25,39,268,31,23,58,175,39,20,71,336,33*75
+$GPGSV,3,2,11,19,02,028,21,04,06,241,19,13,30,223,30,27,19,284,29*7F
+$GPGSV,3,3,11,11,06,337,25,01,,,18,03,14,055,28*7B
+$GPRMC,222500.000,A,2734.55655,S,15305.53845,E,35.9,151.6,030308,11.2,W,A*02
+$GPVTG,151.6,T,162.8,M,35.9,N,66.5,K,A*27
+$GPGGA,222501.000,2734.56495,S,15305.54489,E,1,08,1.1,57.0,M,39.2,M,,*7A
+$GPGLL,2734.56495,S,15305.54489,E,222501.000,A,A*4D
+$GPGSA,A,3,16,25,23,20,13,27,11,03,,,,,2.0,1.1,1.6*30
+$GPGST,222501.000,14.3,8.0,10.9,27.0,8.0,9.5,15.6*64
+$GPGSV,3,1,11,16,49,115,41,25,39,268,31,23,58,175,36,20,71,336,31*78
+$GPGSV,3,2,11,19,02,028,21,04,06,241,19,13,30,223,27,27,19,284,29*79
+$GPGSV,3,3,11,11,06,337,22,01,,,18,03,14,055,31*74
+$GPRMC,222501.000,A,2734.56495,S,15305.54489,E,36.5,145.7,030308,11.2,W,A*0E
+$GPVTG,145.7,T,156.9,M,36.5,N,67.5,K,A*2B
+$GPGGA,222502.000,2734.57337,S,15305.55181,E,1,06,1.5,57.9,M,39.2,M,,*78
+$GPGLL,2734.57337,S,15305.55181,E,222502.000,A,A*4C
+$GPGSA,A,3,16,25,23,20,27,03,,,,,,,2.5,1.5,2.0*36
+$GPGST,222502.000,14.5,7.0,11.9,20.7,7.1,10.5,15.0*5F
+$GPGSV,3,1,11,16,49,115,43,25,39,268,35,23,58,175,37,20,71,336,34*7A
+$GPGSV,3,2,11,19,02,028,21,04,06,241,19,13,30,223,23,27,19,284,33*76
+$GPGSV,3,3,11,11,06,337,22,01,,,18,03,14,055,34*71
+$GPRMC,222502.000,A,2734.57337,S,15305.55181,E,37.4,143.8,030308,11.2,W,A*06
+$GPVTG,143.8,T,155.0,M,37.4,N,69.3,K,A*20
+$GPGGA,222503.000,2734.58184,S,15305.55887,E,1,08,1.1,58.5,M,39.2,M,,*7A
+$GPGLL,2734.58184,S,15305.55887,E,222503.000,A,A*47
+$GPGSA,A,3,16,25,23,20,13,27,11,03,,,,,2.0,1.1,1.6*30
+$GPGST,222503.000,13.4,6.4,14.1,0.3,5.9,12.9,21.5*60
+$GPGSV,3,1,11,16,49,115,43,25,39,268,35,23,58,175,38,20,71,336,35*74
+$GPGSV,3,2,11,19,02,028,19,04,06,241,19,13,30,223,23,27,19,284,32*7C
+$GPGSV,3,3,11,11,06,337,26,01,,,17,03,14,055,34*7A
+$GPRMC,222503.000,A,2734.58184,S,15305.55887,E,37.8,143.4,030308,11.2,W,A*0D
+$GPVTG,143.4,T,154.6,M,37.8,N,70.0,K,A*2C
+$GPGGA,222504.000,2734.59032,S,15305.56580,E,1,07,1.2,58.9,M,39.2,M,,*79
+$GPGLL,2734.59032,S,15305.56580,E,222504.000,A,A*44
+$GPGSA,A,3,16,25,23,20,13,27,03,,,,,,2.1,1.2,1.7*33
+$GPGST,222504.000,24.6,6.2,13.3,3.6,5.7,12.2,20.2*67
+$GPGSV,3,1,11,16,49,115,43,25,39,268,35,23,58,175,39,20,71,336,35*75
+$GPGSV,3,2,11,19,02,028,19,04,06,241,19,13,30,223,22,27,19,284,31*7E
+$GPGSV,3,3,11,11,06,337,25,01,,,17,03,14,055,30*7D
+$GPRMC,222504.000,A,2734.59032,S,15305.56580,E,37.6,143.6,030308,11.2,W,A*02
+$GPVTG,143.6,T,154.8,M,37.6,N,69.7,K,A*21
+$GPGGA,222505.000,2734.59874,S,15305.57271,E,1,06,1.5,59.4,M,39.2,M,,*70
+$GPGLL,2734.59874,S,15305.57271,E,222505.000,A,A*47
+$GPGSA,A,3,16,25,23,20,27,03,,,,,,,2.5,1.5,2.0*36
+$GPGST,222505.000,17.4,5.5,11.8,3.4,5.0,10.8,17.3*61
+$GPGSV,3,1,11,16,49,115,44,25,39,268,35,23,58,175,39,20,71,336,36*71
+$GPGSV,3,2,11,19,02,028,21,04,06,241,19,13,30,223,24,27,19,284,31*73
+$GPGSV,3,3,11,11,06,337,,01,,,17,03,14,055,29*72
+$GPRMC,222505.000,A,2734.59874,S,15305.57271,E,37.3,143.7,030308,11.2,W,A*05
+$GPVTG,143.7,T,154.9,M,37.3,N,69.1,K,A*22
+$GPGGA,222506.000,2734.60703,S,15305.57943,E,1,07,1.2,60.1,M,39.2,M,,*75
+$GPGLL,2734.60703,S,15305.57943,E,222506.000,A,A*4B
+$GPGSA,A,3,16,25,23,20,13,27,03,,,,,,2.1,1.2,1.7*33
+$GPGST,222506.000,16.1,6.2,11.7,15.3,6.1,10.4,17.4*54
+$GPGSV,3,1,11,16,49,115,43,25,39,268,34,23,58,175,37,20,71,336,36*79
+$GPGSV,3,2,11,19,02,028,21,04,06,241,,13,30,223,24,27,19,284,31*7B
+$GPGSV,3,3,11,11,06,337,,01,,,17,03,14,055,28*73
+$GPRMC,222506.000,A,2734.60703,S,15305.57943,E,36.5,143.9,030308,11.2,W,A*00
+$GPVTG,143.9,T,155.1,M,36.5,N,67.6,K,A*2B
+$GPGGA,222507.000,2734.61507,S,15305.58593,E,1,07,1.2,60.9,M,39.2,M,,*75
+$GPGLL,2734.61507,S,15305.58593,E,222507.000,A,A*43
+$GPGSA,A,3,16,25,23,20,13,27,03,,,,,,2.1,1.2,1.7*33
+$GPGST,222507.000,14.0,6.8,11.8,10.9,6.4,10.7,18.5*54
+$GPGSV,3,1,11,16,49,115,43,25,39,268,34,23,58,175,37,20,71,336,34*7B
+$GPGSV,3,2,11,19,02,028,21,04,06,241,,13,30,223,29,27,19,284,34*73
+$GPGSV,3,3,11,11,06,337,,01,,,17,03,14,055,29*72
+$GPRMC,222507.000,A,2734.61507,S,15305.58593,E,35.4,143.9,030308,11.2,W,A*0A
+$GPVTG,143.9,T,155.1,M,35.4,N,65.5,K,A*28
+$GPGGA,222508.000,2734.62275,S,15305.59221,E,1,06,1.7,61.8,M,39.2,M,,*70
+$GPGLL,2734.62275,S,15305.59221,E,222508.000,A,A*42
+$GPGSA,A,3,16,25,23,20,13,27,,,,,,,3.3,1.7,2.8*3A
+$GPGST,222508.000,12.5,9.3,16.3,19.5,9.4,14.4,27.5*51
+$GPGSV,3,1,11,16,49,115,43,25,39,268,33,23,58,175,38,20,71,336,31*76
+$GPGSV,3,2,11,19,02,028,21,04,06,241,,13,30,223,30,27,19,284,35*7A
+$GPGSV,3,3,11,11,06,337,,01,,,17,03,14,055,28*73
+$GPRMC,222508.000,A,2734.62275,S,15305.59221,E,33.9,143.9,030308,11.2,W,A*00
+$GPVTG,143.9,T,155.1,M,33.9,N,62.9,K,A*28
+$GPGGA,222509.000,2734.63006,S,15305.59817,E,1,06,1.7,62.7,M,39.2,M,,*75
+$GPGLL,2734.63006,S,15305.59817,E,222509.000,A,A*4B
+$GPGSA,A,3,16,25,23,20,13,27,,,,,,,3.3,1.7,2.8*3A
+$GPGST,222509.000,10.4,8.1,14.2,21.9,8.4,12.3,23.7*52
+$GPGSV,3,1,11,16,49,115,44,25,39,268,32,23,58,175,37,20,71,336,29*76
+$GPGSV,3,2,11,19,02,028,21,04,06,241,,13,30,223,28,27,19,284,35*73
+$GPGSV,3,3,11,11,06,337,,01,,,17,03,14,055,30*7A
+$GPRMC,222509.000,A,2734.63006,S,15305.59817,E,32.2,143.9,030308,11.2,W,A*03
+$GPVTG,143.9,T,155.1,M,32.2,N,59.7,K,A*24
+$GPGGA,222510.000,2734.63706,S,15305.60376,E,1,06,1.7,63.5,M,39.2,M,,*7F
+$GPGLL,2734.63706,S,15305.60376,E,222510.000,A,A*42
+$GPGSA,A,3,16,25,23,20,13,27,,,,,,,3.3,1.7,2.8*3A
+$GPGST,222510.000,12.4,8.3,12.9,28.0,8.7,11.0,21.6*57
+$GPGSV,3,1,11,16,48,115,43,25,39,268,32,23,58,175,37,20,71,336,29*70
+$GPGSV,3,2,11,19,02,028,20,04,06,241,,13,30,223,31,27,19,284,35*7A
+$GPGSV,3,3,11,11,06,337,,01,,,17,03,14,055,25*7E
+$GPRMC,222510.000,A,2734.63706,S,15305.60376,E,30.6,144.3,030308,11.2,W,A*01
+$GPVTG,144.3,T,155.5,M,30.6,N,56.7,K,A*24
+$GPGGA,222511.000,2734.64376,S,15305.60904,E,1,07,1.2,64.4,M,39.2,M,,*77
+$GPGLL,2734.64376,S,15305.60904,E,222511.000,A,A*48
+$GPGSA,A,3,16,25,23,20,13,27,03,,,,,,2.1,1.2,1.7*33
+$GPGST,222511.000,14.6,5.7,10.5,2.7,5.2,9.6,15.0*5C
+$GPGSV,3,1,11,16,48,115,44,25,39,268,32,23,58,175,37,20,71,336,28*76
+$GPGSV,3,2,11,19,02,028,20,04,06,241,23,13,30,223,29,27,19,284,36*71
+$GPGSV,3,3,11,11,06,337,,01,,,17,03,14,055,29*72
+$GPRMC,222511.000,A,2734.64376,S,15305.60904,E,29.1,144.2,030308,11.2,W,A*05
+$GPVTG,144.2,T,155.4,M,29.1,N,53.9,K,A*20
+$GPGGA,222512.000,2734.64992,S,15305.61405,E,1,07,1.2,65.4,M,39.2,M,,*78
+$GPGLL,2734.64992,S,15305.61405,E,222512.000,A,A*46
+$GPGSA,A,3,16,25,23,20,13,27,03,,,,,,2.1,1.2,1.7*33
+$GPGST,222512.000,13.4,17.0,5.7,85.6,5.3,15.5,23.6*5A
+$GPGSV,3,1,11,16,48,115,45,25,39,268,33,23,58,175,38,20,71,336,28*79
+$GPGSV,3,2,11,19,02,028,20,04,06,241,23,13,30,223,26,27,19,284,33*7B
+$GPGSV,3,3,11,11,06,337,24,01,,,17,03,14,055,27*7A
+$GPRMC,222512.000,A,2734.64992,S,15305.61405,E,27.2,143.6,030308,11.2,W,A*05
+$GPVTG,143.6,T,154.8,M,27.2,N,50.5,K,A*2C
+$GPGGA,222513.000,2734.65572,S,15305.61884,E,1,07,1.2,66.2,M,39.2,M,,*7A
+$GPGLL,2734.65572,S,15305.61884,E,222513.000,A,A*41
+$GPGSA,A,3,16,25,23,20,13,27,03,,,,,,2.1,1.2,1.7*33
+$GPGST,222513.000,12.3,7.0,14.8,2.4,6.5,13.5,21.4*6D
+$GPGSV,3,1,10,16,48,115,44,25,39,268,35,23,58,175,38,20,71,336,28*7F
+$GPGSV,3,2,10,19,02,028,20,04,06,241,23,13,30,223,23,27,19,284,33*7F
+$GPGSV,3,3,10,11,06,337,24,03,14,055,28*73
+$GPRMC,222513.000,A,2734.65572,S,15305.61884,E,25.8,143.6,030308,11.2,W,A*0A
+$GPVTG,143.6,T,154.8,M,25.8,N,47.9,K,A*2E
+$GPGGA,222514.000,2734.66155,S,15305.62364,E,1,06,1.5,67.0,M,39.2,M,,*7C
+$GPGLL,2734.66155,S,15305.62364,E,222514.000,A,A*42
+$GPGSA,A,3,16,25,23,20,27,03,,,,,,,2.5,1.5,2.0*36
+$GPGST,222514.000,25.5,6.1,14.4,3.1,5.6,13.2,19.2*6A
+$GPGSV,3,1,10,16,48,115,44,25,39,268,33,23,58,175,38,20,71,336,26*77
+$GPGSV,3,2,10,19,02,028,18,04,06,241,23,13,30,223,23,27,19,284,34*73
+$GPGSV,3,3,10,11,06,337,28,03,14,055,29*7E
+$GPRMC,222514.000,A,2734.66155,S,15305.62364,E,25.9,143.6,030308,11.2,W,A*08
+$GPVTG,143.6,T,154.8,M,25.9,N,48.0,K,A*29
+$GPGGA,222515.000,2734.66761,S,15305.62860,E,1,06,1.5,67.5,M,39.2,M,,*76
+$GPGLL,2734.66761,S,15305.62860,E,222515.000,A,A*4D
+$GPGSA,A,3,16,25,23,20,27,03,,,,,,,2.5,1.5,2.0*36
+$GPGST,222515.000,20.1,5.5,13.0,3.0,5.1,11.8,17.4*68
+$GPGSV,3,1,10,16,48,115,44,25,39,268,32,23,58,175,38,20,71,336,26*76
+$GPGSV,3,2,10,19,02,028,18,04,06,241,23,13,30,223,24,27,19,284,34*74
+$GPGSV,3,3,10,11,06,337,28,03,14,055,24*73
+$GPRMC,222515.000,A,2734.66761,S,15305.62860,E,26.9,143.7,030308,11.2,W,A*05
+$GPVTG,143.7,T,154.9,M,26.9,N,49.8,K,A*23
+$GPGGA,222516.000,2734.67384,S,15305.63376,E,1,06,1.5,68.2,M,39.2,M,,*7E
+$GPGLL,2734.67384,S,15305.63376,E,222516.000,A,A*4D
+$GPGSA,A,3,16,25,23,20,27,03,,,,,,,2.5,1.5,2.0*36
+$GPGST,222516.000,16.4,5.8,11.5,4.5,5.3,10.5,17.3*6A
+$GPGSV,3,1,10,16,48,115,44,25,39,268,32,23,58,175,38,20,71,336,30*71
+$GPGSV,3,2,10,19,02,028,18,04,06,241,23,13,30,223,24,27,19,284,33*73
+$GPGSV,3,3,10,11,06,337,28,03,14,055,28*7F
+$GPRMC,222516.000,A,2734.67384,S,15305.63376,E,27.7,143.8,030308,11.2,W,A*05
+$GPVTG,143.8,T,155.0,M,27.7,N,51.4,K,A*2E
+$GPGGA,222517.000,2734.68035,S,15305.63901,E,1,06,1.5,68.8,M,39.2,M,,*79
+$GPGLL,2734.68035,S,15305.63901,E,222517.000,A,A*40
+$GPGSA,A,3,16,25,23,20,27,03,,,,,,,2.5,1.5,2.0*36
+$GPGST,222517.000,19.1,6.2,12.1,7.2,5.8,11.0,15.3*66
+$GPGSV,3,1,10,16,48,115,44,25,39,268,34,23,58,175,38,20,71,336,32*75
+$GPGSV,3,2,10,19,02,028,20,04,06,241,23,13,30,223,24,27,19,284,34*7F
+$GPGSV,3,3,10,11,06,337,24,03,14,055,29*72
+$GPRMC,222517.000,A,2734.68035,S,15305.63901,E,28.6,144.1,030308,11.2,W,A*08
+$GPVTG,144.1,T,155.3,M,28.6,N,53.0,K,A*2B
+$GPGGA,222518.000,2734.68718,S,15305.64446,E,1,07,1.4,69.1,M,39.2,M,,*7F
+$GPGLL,2734.68718,S,15305.64446,E,222518.000,A,A*4E
+$GPGSA,A,3,16,25,23,20,27,11,03,,,,,,2.4,1.4,1.9*3C
+$GPGST,222518.000,13.8,5.5,10.6,5.8,5.1,9.6,13.4*54
+$GPGSV,3,1,10,16,48,115,43,25,39,268,33,23,58,175,37,20,71,336,35*7D
+$GPGSV,3,2,10,19,02,028,20,04,06,241,18,13,30,223,24,27,19,284,33*70
+$GPGSV,3,3,10,11,06,337,22,03,14,055,33*7F
+$GPRMC,222518.000,A,2734.68718,S,15305.64446,E,29.9,144.4,030308,11.2,W,A*0D
+$GPVTG,144.4,T,155.6,M,29.9,N,55.3,K,A*20
+$GPGGA,222519.000,2734.69424,S,15305.65010,E,1,07,1.4,69.5,M,39.2,M,,*71
+$GPGLL,2734.69424,S,15305.65010,E,222519.000,A,A*44
+$GPGSA,A,3,16,25,23,20,27,11,03,,,,,,2.4,1.4,1.9*3C
+$GPGST,222519.000,14.0,13.4,5.0,89.4,4.6,12.3,18.8*58
+$GPGSV,3,1,10,16,48,115,44,25,39,268,34,23,58,175,37,20,71,336,37*7F
+$GPGSV,3,2,10,19,02,028,20,04,06,241,18,13,30,223,23,27,19,284,31*75
+$GPGSV,3,3,10,11,06,337,26,03,14,055,35*7D
+$GPRMC,222519.000,A,2734.69424,S,15305.65010,E,31.0,144.4,030308,11.2,W,A*07
+$GPVTG,144.4,T,155.6,M,31.0,N,57.5,K,A*24
+$GPGGA,222520.000,2734.70163,S,15305.65604,E,1,07,1.4,69.6,M,39.2,M,,*75
+$GPGLL,2734.70163,S,15305.65604,E,222520.000,A,A*43
+$GPGSA,A,3,16,25,23,20,27,11,03,,,,,,2.4,1.4,1.9*3C
+$GPGST,222520.000,9.8,11.6,4.7,89.0,4.3,10.6,15.9*6A
+$GPGSV,3,1,10,16,48,115,44,25,39,268,35,23,58,175,39,20,71,336,36*71
+$GPGSV,3,2,10,19,02,028,20,04,06,241,19,13,30,223,23,27,19,284,31*74
+$GPGSV,3,3,10,11,06,337,31,03,14,055,37*79
+$GPRMC,222520.000,A,2734.70163,S,15305.65604,E,32.5,144.1,030308,11.2,W,A*03
+$GPVTG,144.1,T,155.3,M,32.5,N,60.2,K,A*21
+$GPGGA,222521.000,2734.70923,S,15305.66218,E,1,07,1.4,69.5,M,39.2,M,,*71
+$GPGLL,2734.70923,S,15305.66218,E,222521.000,A,A*44
+$GPGSA,A,3,16,25,23,20,27,11,03,,,,,,2.4,1.4,1.9*3C
+$GPGST,222521.000,11.1,6.2,10.8,9.6,5.8,9.8,16.8*53
+$GPGSV,3,1,10,16,48,115,44,25,39,268,36,23,58,175,40,20,71,336,38*72
+$GPGSV,3,2,10,19,02,028,20,04,06,241,19,13,30,223,23,27,19,284,26*72
+$GPGSV,3,3,10,11,06,338,31,03,14,055,37*76
+$GPRMC,222521.000,A,2734.70923,S,15305.66218,E,33.5,144.0,030308,11.2,W,A*04
+$GPVTG,144.0,T,155.3,M,33.5,N,62.0,K,A*21
+$GPGGA,222522.000,2734.71700,S,15305.66845,E,1,06,1.5,69.1,M,39.2,M,,*7A
+$GPGLL,2734.71700,S,15305.66845,E,222522.000,A,A*4B
+$GPGSA,A,3,16,25,23,20,27,03,,,,,,,2.5,1.5,2.0*36
+$GPGST,222522.000,15.0,5.7,9.9,5.5,5.2,9.0,15.4*68
+$GPGSV,3,1,10,16,48,115,43,25,39,268,36,23,58,175,40,20,71,336,37*7A
+$GPGSV,3,2,10,19,02,028,20,04,06,241,24,13,30,223,23,27,19,284,26*7C
+$GPGSV,3,3,10,11,06,338,25,03,14,055,37*73
+$GPRMC,222522.000,A,2734.71700,S,15305.66845,E,34.2,144.1,030308,11.2,W,A*0A
+$GPVTG,144.1,T,155.3,M,34.2,N,63.4,K,A*25
+$GPGGA,222523.000,2734.72487,S,15305.67483,E,1,07,1.4,68.6,M,39.2,M,,*75
+$GPGLL,2734.72487,S,15305.67483,E,222523.000,A,A*42
+$GPGSA,A,3,16,25,23,20,27,11,03,,,,,,2.4,1.4,1.9*3C
+$GPGST,222523.000,13.8,5.2,10.1,3.9,4.8,9.2,13.8*5B
+$GPGSV,3,1,10,16,48,115,44,25,39,268,37,23,58,175,41,20,71,336,35*7F
+$GPGSV,3,2,10,19,02,028,20,04,06,241,24,13,30,223,23,27,19,284,26*7C
+$GPGSV,3,3,10,11,06,338,23,03,14,055,31*73
+$GPRMC,222523.000,A,2734.72487,S,15305.67483,E,34.7,144.2,030308,11.2,W,A*05
+$GPVTG,144.2,T,155.4,M,34.7,N,64.3,K,A*24
+$GPGGA,222524.000,2734.73280,S,15305.68126,E,1,07,1.4,68.1,M,39.2,M,,*70
+$GPGLL,2734.73280,S,15305.68126,E,222524.000,A,A*40
+$GPGSA,A,3,16,25,23,20,27,11,03,,,,,,2.4,1.4,1.9*3C
+$GPGST,222524.000,10.5,4.9,9.4,3.5,4.5,8.6,12.8*60
+$GPGSV,3,1,10,16,48,115,44,25,39,268,37,23,58,175,41,20,71,336,35*7F
+$GPGSV,3,2,10,19,02,028,20,04,06,241,22,13,30,223,23,27,19,284,26*7A
+$GPGSV,3,3,10,11,06,338,25,03,14,055,29*7C
+$GPRMC,222524.000,A,2734.73280,S,15305.68126,E,35.0,144.2,030308,11.2,W,A*01
+$GPVTG,144.2,T,155.4,M,35.0,N,64.9,K,A*28
+$GPGGA,222525.000,2734.74083,S,15305.68778,E,1,07,1.4,67.7,M,39.2,M,,*73
+$GPGLL,2734.74083,S,15305.68778,E,222525.000,A,A*4A
+$GPGSA,A,3,16,25,23,20,27,11,03,,,,,,2.4,1.4,1.9*3C
+$GPGST,222525.000,10.3,5.2,13.4,3.6,4.8,12.3,20.4*6B
+$GPGSV,3,1,10,16,48,115,43,25,39,268,38,23,58,175,40,20,71,336,36*75
+$GPGSV,3,2,10,19,02,028,20,04,06,241,22,13,30,223,23,27,19,284,23*7F
+$GPGSV,3,3,10,11,06,338,27,03,14,055,36*70
+$GPRMC,222525.000,A,2734.74083,S,15305.68778,E,35.6,144.2,030308,11.2,W,A*0D
+$GPVTG,144.2,T,155.4,M,35.6,N,65.9,K,A*2F
+$GPGGA,222526.000,2734.74894,S,15305.69428,E,1,06,1.5,67.2,M,39.2,M,,*7C
+$GPGLL,2734.74894,S,15305.69428,E,222526.000,A,A*40
+$GPGSA,A,3,16,25,23,20,27,03,,,,,,,2.5,1.5,2.0*36
+$GPGST,222526.000,8.0,5.7,12.0,2.6,5.2,10.9,17.4*54
+$GPGSV,3,1,10,16,48,115,43,25,39,268,37,23,58,175,40,20,71,336,35*79
+$GPGSV,3,2,10,19,02,028,20,04,06,241,22,13,30,223,23,27,19,284,24*78
+$GPGSV,3,3,10,11,06,338,27,03,14,055,39*7F
+$GPRMC,222526.000,A,2734.74894,S,15305.69428,E,35.8,144.5,030308,11.2,W,A*0E
+$GPVTG,144.5,T,155.7,M,35.8,N,66.3,K,A*2C
+$GPGGA,222527.000,2734.75707,S,15305.70075,E,1,05,1.7,66.8,M,39.2,M,,*77
+$GPGLL,2734.75707,S,15305.70075,E,222527.000,A,A*41
+$GPGSA,A,3,16,25,23,20,03,,,,,,,,2.9,1.7,2.4*39
+$GPGST,222527.000,13.9,6.3,10.9,6.3,5.9,10.0,18.2*60
+$GPGSV,3,1,10,16,48,115,44,25,39,268,38,23,58,175,40,20,71,336,33*77
+$GPGSV,3,2,10,19,02,028,,04,06,241,25,13,30,223,23,27,19,284,26*7F
+$GPGSV,3,3,10,11,06,338,,03,14,055,36*75
+$GPRMC,222527.000,A,2734.75707,S,15305.70075,E,35.8,144.6,030308,11.2,W,A*0C
+$GPVTG,144.6,T,155.8,M,35.8,N,66.2,K,A*21
+$GPGGA,222528.000,2734.76518,S,15305.70724,E,1,06,1.5,66.1,M,39.2,M,,*7C
+$GPGLL,2734.76518,S,15305.70724,E,222528.000,A,A*42
+$GPGSA,A,3,16,25,23,20,27,03,,,,,,,2.5,1.5,2.0*36
+$GPGST,222528.000,11.3,5.6,10.1,4.5,5.2,9.2,16.1*51
+$GPGSV,3,1,10,16,48,115,43,25,39,268,39,23,58,175,39,20,71,336,28*75
+$GPGSV,3,2,10,19,02,028,,04,06,241,25,13,30,223,23,27,19,284,26*7F
+$GPGSV,3,3,10,11,06,338,,03,14,055,36*75
+$GPRMC,222528.000,A,2734.76518,S,15305.70724,E,35.7,144.4,030308,11.2,W,A*02
+$GPVTG,144.4,T,155.6,M,35.7,N,66.2,K,A*22
+$GPGGA,222529.000,2734.77313,S,15305.71385,E,1,06,1.5,66.1,M,39.2,M,,*7F
+$GPGLL,2734.77313,S,15305.71385,E,222529.000,A,A*41
+$GPGSA,A,3,16,25,23,20,27,03,,,,,,,2.5,1.5,2.0*36
+$GPGST,222529.000,10.9,5.6,12.5,5.4,5.2,11.4,20.9*6F
+$GPGSV,3,1,10,16,48,115,41,25,39,268,40,23,58,175,36,20,71,336,28*76
+$GPGSV,3,2,10,19,02,028,,04,06,241,25,13,30,223,23,27,19,284,24*7D
+$GPGSV,3,3,10,11,06,338,27,03,14,055,30*76
+$GPRMC,222529.000,A,2734.77313,S,15305.71385,E,35.6,143.5,030308,11.2,W,A*06
+$GPVTG,143.5,T,154.7,M,35.6,N,65.8,K,A*2C
+$GPGGA,222530.000,2734.78106,S,15305.72042,E,1,06,1.5,66.0,M,39.2,M,,*74
+$GPGLL,2734.78106,S,15305.72042,E,222530.000,A,A*4B
+$GPGSA,A,3,16,25,23,20,27,03,,,,,,,2.5,1.5,2.0*36
+$GPGST,222530.000,9.4,5.4,18.9,2.4,4.9,17.3,30.6*54
+$GPGSV,3,1,10,16,48,115,40,25,39,268,40,23,58,175,36,20,71,336,28*77
+$GPGSV,3,2,10,19,02,028,,04,06,241,25,13,30,223,23,27,19,284,26*7F
+$GPGSV,3,3,10,11,06,338,27,03,14,055,29*7E
+$GPRMC,222530.000,A,2734.78106,S,15305.72042,E,35.5,143.7,030308,11.2,W,A*0D
+$GPVTG,143.7,T,155.0,M,35.5,N,65.8,K,A*2B
+$GPGGA,222531.000,2734.78918,S,15305.72691,E,1,05,4.4,66.0,M,39.2,M,,*7D
+$GPGLL,2734.78918,S,15305.72691,E,222531.000,A,A*45
+$GPGSA,A,3,16,25,23,27,11,,,,,,,,9.3,4.4,8.2*36
+$GPGST,222531.000,9.1,8.5,53.9,3.2,8.2,49.2,81.3*56
+$GPGSV,3,1,10,16,48,115,40,25,39,268,39,23,58,175,37,20,71,336,28*78
+$GPGSV,3,2,10,19,02,028,,04,06,241,25,13,31,223,23,27,19,284,25*7D
+$GPGSV,3,3,10,11,06,338,24,03,14,055,22*76
+$GPRMC,222531.000,A,2734.78918,S,15305.72691,E,35.9,144.5,030308,11.2,W,A*0A
+$GPVTG,144.5,T,155.7,M,35.9,N,66.4,K,A*2A
+$GPGGA,222532.000,2734.79737,S,15305.73347,E,1,06,1.5,66.0,M,39.2,M,,*74
+$GPGLL,2734.79737,S,15305.73347,E,222532.000,A,A*4B
+$GPGSA,A,3,16,25,23,20,27,03,,,,,,,2.5,1.5,2.0*36
+$GPGST,222532.000,11.0,6.8,38.7,1.2,6.3,35.3,58.4*69
+$GPGSV,3,1,10,16,48,115,40,25,39,268,39,23,58,175,36,20,71,336,28*79
+$GPGSV,3,2,10,19,02,028,,04,06,241,25,13,31,223,24,27,19,284,23*7C
+$GPGSV,3,3,10,11,06,338,24,03,14,055,30*75
+$GPRMC,222532.000,A,2734.79737,S,15305.73347,E,36.1,144.5,030308,11.2,W,A*0F
+$GPVTG,144.5,T,155.7,M,36.1,N,66.9,K,A*2C
+$GPGGA,222533.000,2734.80571,S,15305.74004,E,1,06,4.1,66.1,M,39.2,M,,*70
+$GPGLL,2734.80571,S,15305.74004,E,222533.000,A,A*4F
+$GPGSA,A,3,16,25,23,27,11,03,,,,,,,8.3,4.1,7.3*3F
+$GPGST,222533.000,9.4,6.1,45.5,0.4,5.6,41.6,69.5*50
+$GPGSV,3,1,10,16,48,115,40,25,39,268,39,23,58,175,37,20,71,336,28*78
+$GPGSV,3,2,10,19,02,028,,04,06,241,23,13,31,223,24,27,19,284,25*7C
+$GPGSV,3,3,10,11,06,338,22,03,14,055,25*77
+$GPRMC,222533.000,A,2734.80571,S,15305.74004,E,36.6,145.0,030308,11.2,W,A*08
+$GPVTG,145.0,T,156.2,M,36.6,N,67.7,K,A*26
+$GPGGA,222534.000,2734.81441,S,15305.74656,E,1,06,1.8,65.2,M,39.2,M,,*79
+$GPGLL,2734.81441,S,15305.74656,E,222534.000,A,A*4A
+$GPGSA,A,3,16,25,23,13,27,03,,,,,,,3.5,1.8,3.1*3A
+$GPGST,222534.000,20.2,5.8,45.7,1.7,5.4,41.7,71.3*6C
+$GPGSV,3,1,10,16,48,115,40,25,39,268,38,23,58,175,37,20,71,336,28*79
+$GPGSV,3,2,10,19,02,028,,04,06,241,23,13,31,223,25,27,19,284,25*7D
+$GPGSV,3,3,10,11,06,338,22,03,14,055,31*72
+$GPRMC,222534.000,A,2734.81441,S,15305.74656,E,37.6,146.2,030308,11.2,W,A*0D
+$GPVTG,146.2,T,157.5,M,37.6,N,69.7,K,A*2E
+$GPGGA,222535.000,2734.82349,S,15305.75307,E,1,05,1.9,63.5,M,39.2,M,,*77
+$GPGLL,2734.82349,S,15305.75307,E,222535.000,A,A*47
+$GPGSA,A,3,16,25,23,13,03,,,,,,,,3.6,1.9,3.1*3D
+$GPGST,222535.000,27.6,7.0,40.6,3.1,6.7,37.1,68.4*6C
+$GPGSV,3,1,10,16,48,115,40,25,39,268,36,23,58,175,37,20,71,336,28*77
+$GPGSV,3,2,10,19,02,028,,04,06,241,20,13,31,223,25,27,19,284,23*78
+$GPGSV,3,3,10,11,06,338,22,03,14,055,26*74
+$GPRMC,222535.000,A,2734.82349,S,15305.75307,E,38.7,147.3,030308,11.2,W,A*0E
+$GPVTG,147.3,T,158.6,M,38.7,N,71.7,K,A*25
+$GPGGA,222536.000,2734.83215,S,15305.75969,E,1,05,1.7,63.5,M,39.2,M,,*71
+$GPGLL,2734.83215,S,15305.75969,E,222536.000,A,A*4F
+$GPGSA,A,3,16,25,23,20,03,,,,,,,,2.9,1.7,2.4*39
+$GPGST,222536.000,7.9,6.3,97.2,3.9,8.3,88.7,161.0*62
+$GPGSV,3,1,10,16,48,115,40,25,39,268,37,23,58,175,36,20,71,336,28*77
+$GPGSV,3,2,10,19,02,028,,04,06,241,20,13,31,223,25,27,19,284,23*78
+$GPGSV,3,3,10,11,06,338,22,03,14,055,26*74
+$GPRMC,222536.000,A,2734.83215,S,15305.75969,E,37.6,145.6,030308,11.2,W,A*0F
+$GPVTG,145.6,T,156.8,M,37.6,N,69.7,K,A*25
+$GPGGA,222537.000,2734.84076,S,15305.76655,E,1,05,1.7,63.5,M,39.2,M,,*73
+$GPGLL,2734.84076,S,15305.76655,E,222537.000,A,A*4D
+$GPGSA,A,3,16,25,23,20,03,,,,,,,,2.9,1.7,2.4*39
+$GPGST,222537.000,16.0,7.8,110.8,2.1,8.0,101.2,209.1*57
+$GPGSV,3,1,10,16,48,115,39,25,39,268,36,23,58,175,34,20,71,336,28*7A
+$GPGSV,3,2,10,19,02,028,,04,06,241,22,13,31,223,25,27,19,284,23*7A
+$GPGSV,3,3,10,11,06,338,22,03,14,055,25*77
+$GPRMC,222537.000,A,2734.84076,S,15305.76655,E,37.9,144.6,030308,11.2,W,A*03
+$GPVTG,144.6,T,155.8,M,37.9,N,70.3,K,A*24
+$GPGGA,222538.000,2734.84945,S,15305.77356,E,1,05,1.9,63.5,M,39.2,M,,*7C
+$GPGLL,2734.84945,S,15305.77356,E,222538.000,A,A*4C
+$GPGSA,A,3,16,25,23,13,03,,,,,,,,3.6,1.9,3.1*3D
+$GPGST,222538.000,13.1,8.0,61.7,1.6,7.5,56.4,113.0*51
+$GPGSV,3,1,10,16,48,115,40,25,39,268,37,23,58,175,32,20,71,336,*79
+$GPGSV,3,2,10,19,02,028,,04,06,241,22,13,31,223,25,27,19,284,23*7A
+$GPGSV,3,3,10,11,06,338,22,03,14,055,28*7A
+$GPRMC,222538.000,A,2734.84945,S,15305.77356,E,38.4,144.2,030308,11.2,W,A*04
+$GPVTG,144.2,T,155.4,M,38.4,N,71.1,K,A*2D
+$GPGGA,222539.000,2734.85792,S,15305.78022,E,1,05,1.9,63.5,M,39.2,M,,*77
+$GPGLL,2734.85792,S,15305.78022,E,222539.000,A,A*47
+$GPGSA,A,3,16,25,23,13,03,,,,,,,,3.6,1.9,3.1*3D
+$GPGST,222539.000,6.4,7.5,72.7,1.5,7.1,66.5,137.2*68
+$GPGSV,3,1,10,16,48,115,40,25,39,268,38,23,58,175,32,20,71,336,*76
+$GPGSV,3,2,10,19,02,028,,04,06,241,22,13,31,223,25,27,19,284,23*7A
+$GPGSV,3,3,10,11,06,338,22,03,14,055,28*7A
+$GPRMC,222539.000,A,2734.85792,S,15305.78022,E,37.1,144.9,030308,11.2,W,A*0E
+$GPVTG,144.9,T,156.1,M,37.1,N,68.7,K,A*24
+$GPGGA,222540.000,2734.86604,S,15305.78646,E,1,05,4.4,63.5,M,39.2,M,,*78
+$GPGLL,2734.86604,S,15305.78646,E,222540.000,A,A*40
+$GPGSA,A,3,16,25,23,27,11,,,,,,,,9.3,4.4,8.2*36
+$GPGST,222540.000,13.6,8.3,67.7,1.8,7.8,61.9,111.1*55
+$GPGSV,3,1,10,16,48,115,40,25,39,268,38,23,58,175,32,20,71,336,*76
+$GPGSV,3,2,10,19,02,028,,04,06,241,26,13,31,223,22,27,19,284,22*78
+$GPGSV,3,3,10,11,06,338,20,03,14,055,28*78
+$GPRMC,222540.000,A,2734.86604,S,15305.78646,E,35.3,145.6,030308,11.2,W,A*07
+$GPVTG,145.6,T,156.8,M,35.3,N,65.4,K,A*2D
+$GPGGA,222541.000,2734.87421,S,15305.79222,E,1,06,1.8,63.5,M,39.2,M,,*70
+$GPGLL,2734.87421,S,15305.79222,E,222541.000,A,A*42
+$GPGSA,A,3,16,25,23,13,27,03,,,,,,,3.5,1.8,3.1*3A
+$GPGST,222541.000,11.7,33.3,8.1,87.4,7.5,30.4,54.6*51
+$GPGSV,3,1,10,16,48,115,39,25,39,268,33,23,58,175,36,20,71,336,*77
+$GPGSV,3,2,10,19,02,028,,04,06,241,26,13,31,223,22,27,19,284,22*78
+$GPGSV,3,3,10,11,06,338,20,03,14,055,26*76
+$GPRMC,222541.000,A,2734.87421,S,15305.79222,E,34.6,147.7,030308,11.2,W,A*02
+$GPVTG,147.7,T,158.9,M,34.6,N,64.1,K,A*21
+$GPGGA,222542.000,2734.88135,S,15305.79765,E,1,06,1.8,63.5,M,39.2,M,,*7A
+$GPGLL,2734.88135,S,15305.79765,E,222542.000,A,A*48
+$GPGSA,A,3,16,25,23,13,27,03,,,,,,,3.5,1.8,3.1*3A
+$GPGST,222542.000,23.5,7.9,53.0,0.2,7.2,48.5,78.4*6F
+$GPGSV,3,1,10,16,48,115,40,25,39,268,36,23,58,175,35,20,71,336,*7F
+$GPGSV,3,2,10,19,02,028,,04,06,241,27,13,31,223,23,27,19,284,25*7F
+$GPGSV,3,3,10,11,06,338,20,03,14,055,26*76
+$GPRMC,222542.000,A,2734.88135,S,15305.79765,E,31.0,145.8,030308,11.2,W,A*06
+$GPVTG,145.8,T,157.0,M,31.0,N,57.4,K,A*2C
+$GPGGA,222543.000,2734.88798,S,15305.80287,E,1,07,1.2,63.0,M,39.2,M,,*7B
+$GPGLL,2734.88798,S,15305.80287,E,222543.000,A,A*47
+$GPGSA,A,3,16,25,23,20,13,27,03,,,,,,2.1,1.2,1.7*33
+$GPGST,222543.000,18.8,6.7,28.4,0.5,6.1,26.0,41.8*62
+$GPGSV,3,1,10,16,48,115,40,25,39,268,39,23,58,175,35,20,71,336,21*73
+$GPGSV,3,2,10,19,02,028,,04,06,241,37,13,31,223,22,27,19,284,24*7E
+$GPGSV,3,3,10,11,06,338,20,03,14,055,32*73
+$GPRMC,222543.000,A,2734.88798,S,15305.80287,E,29.0,144.8,030308,11.2,W,A*01
+$GPVTG,144.8,T,156.0,M,29.0,N,53.8,K,A*2D
+$GPGGA,222544.000,2734.89328,S,15305.80767,E,1,06,1.8,62.9,M,39.2,M,,*7A
+$GPGLL,2734.89328,S,15305.80767,E,222544.000,A,A*45
+$GPGSA,A,3,16,25,23,13,27,03,,,,,,,3.5,1.8,3.1*3A
+$GPGST,222544.000,14.9,35.2,5.8,89.5,5.4,32.2,52.6*52
+$GPGSV,3,1,10,16,48,115,43,25,39,268,40,23,58,175,25,20,71,336,21*7F
+$GPGSV,3,2,10,19,02,028,,04,06,241,28,13,31,223,30,27,19,284,29*7E
+$GPGSV,3,3,10,11,06,338,20,03,14,055,33*72
+$GPRMC,222544.000,A,2734.89328,S,15305.80767,E,24.5,140.9,030308,11.2,W,A*0E
+$GPVTG,140.9,T,152.1,M,24.5,N,45.3,K,A*29
+$GPGGA,222545.000,2734.89633,S,15305.81084,E,1,05,1.9,62.9,M,39.2,M,,*7D
+$GPGLL,2734.89633,S,15305.81084,E,222545.000,A,A*40
+$GPGSA,A,3,16,25,23,13,03,,,,,,,,3.6,1.9,3.1*3D
+$GPGST,222545.000,19.5,6.0,33.0,1.0,5.5,30.2,52.4*69
+$GPGSV,3,1,10,16,48,115,41,25,39,268,34,23,58,175,29,20,71,336,30*72
+$GPGSV,3,2,10,19,02,028,,04,06,241,25,13,31,223,29,27,19,284,30*73
+$GPGSV,3,3,10,11,06,338,20,03,14,055,30*71
+$GPRMC,222545.000,A,2734.89633,S,15305.81084,E,14.6,136.6,030308,11.2,W,A*05
+$GPVTG,136.6,T,147.8,M,14.6,N,27.0,K,A*2D
+$GPGGA,222546.000,2734.89236,S,15305.81130,E,1,06,1.3,62.6,M,39.2,M,,*77
+$GPGLL,2734.89236,S,15305.81130,E,222546.000,A,A*4C
+$GPGSA,A,3,16,25,23,20,13,03,,,,,,,2.3,1.3,1.9*3B
+$GPGST,222546.000,11.5,5.6,15.6,0.9,5.2,14.3,26.4*6E
+$GPGSV,3,1,10,16,48,115,35,25,39,268,40,23,58,175,41,20,71,336,38*74
+$GPGSV,3,2,10,19,02,028,,04,06,241,26,13,31,223,33,27,19,284,26*7C
+$GPGSV,3,3,10,11,06,338,20,03,14,055,28*78
+$GPRMC,222546.000,A,2734.89236,S,15305.81130,E,16.9,2.1,030308,11.2,W,A*05
+$GPVTG,2.1,T,13.3,M,16.9,N,31.2,K,A*1F
+$GPGGA,222547.000,2734.89429,S,15305.81239,E,1,05,2.3,62.5,M,39.2,M,,*77
+$GPGLL,2734.89429,S,15305.81239,E,222547.000,A,A*4F
+$GPGSA,A,3,16,23,13,27,03,,,,,,,,4.6,2.3,3.9*39
+$GPGST,222547.000,11.4,38.3,9.7,69.8,14.7,33.0,49.2*6B
+$GPGSV,3,1,10,16,48,115,32,25,39,268,37,23,58,175,42,20,71,336,37*7F
+$GPGSV,3,2,10,19,02,028,,04,06,241,26,13,31,223,36,27,19,284,29*76
+$GPGSV,3,3,10,11,06,338,20,03,14,055,34*75
+$GPRMC,222547.000,A,2734.89429,S,15305.81239,E,8.4,154.5,030308,11.2,W,A*32
+$GPVTG,154.5,T,165.7,M,8.4,N,15.6,K,A*1D
+$GPGGA,222548.000,2734.89474,S,15305.81253,E,1,07,1.2,62.0,M,39.2,M,,*79
+$GPGLL,2734.89474,S,15305.81253,E,222548.000,A,A*44
+$GPGSA,A,3,16,25,23,20,13,27,03,,,,,,2.1,1.2,1.7*33
+$GPGST,222548.000,11.0,12.3,7.9,86.0,7.3,11.3,20.6*5F
+$GPGSV,3,1,10,16,48,115,34,25,39,268,36,23,58,175,42,20,71,336,38*77
+$GPGSV,3,2,10,19,02,028,,04,06,241,25,13,31,223,36,27,19,284,29*75
+$GPGSV,3,3,10,11,06,338,20,03,14,055,33*72
+$GPRMC,222548.000,A,2734.89474,S,15305.81253,E,0.3,353.0,030308,11.2,W,A*36
+$GPVTG,353.0,T,4.3,M,0.3,N,0.5,K,A*27
+$GPGGA,222549.000,2734.89490,S,15305.81265,E,1,04,2.0,61.8,M,39.2,M,,*7E
+$GPGLL,2734.89490,S,15305.81265,E,222549.000,A,A*4A
+$GPGSA,A,3,25,23,13,03,,,,,,,,,3.9,2.0,3.3*3D
+$GPGST,222549.000,17.0,16.1,8.8,81.3,8.3,14.6,29.3*57
+$GPGSV,3,1,11,16,48,115,33,25,39,268,37,23,58,175,42,20,71,336,36*7E
+$GPGSV,3,2,11,19,02,028,,04,06,241,25,13,31,223,35,27,19,284,30*7F
+$GPGSV,3,3,11,11,06,338,20,01,,,21,03,14,055,33*71
+$GPRMC,222549.000,A,2734.89490,S,15305.81265,E,0.2,330.7,030308,11.2,W,A*3B
+$GPVTG,330.7,T,341.9,M,0.2,N,0.3,K,A*2A
+$GPGGA,222550.000,2734.89526,S,15305.81278,E,1,04,2.6,61.7,M,39.2,M,,*7F
+$GPGLL,2734.89526,S,15305.81278,E,222550.000,A,A*42
+$GPGSA,A,3,16,25,23,13,,,,,,,,,6.1,2.6,5.6*31
+$GPGST,222550.000,13.4,12.4,27.3,43.1,18.9,19.8,52.9*5A
+$GPGSV,3,1,11,16,48,115,30,25,39,268,38,23,58,175,42,20,71,336,37*73
+$GPGSV,3,2,11,19,02,028,,04,06,241,25,13,31,223,36,27,19,284,31*7D
+$GPGSV,3,3,11,11,06,338,,01,,,21,03,14,055,32*72
+$GPRMC,222550.000,A,2734.89526,S,15305.81278,E,0.1,350.7,030308,11.2,W,A*36
+$GPVTG,350.7,T,1.9,M,0.1,N,0.2,K,A*29
+$GPGGA,222551.000,2734.89528,S,15305.81279,E,1,05,2.3,61.7,M,39.2,M,,*75
+$GPGLL,2734.89528,S,15305.81279,E,222551.000,A,A*4C
+$GPGSA,A,3,16,23,13,27,03,,,,,,,,4.6,2.3,3.9*39
+$GPGST,222551.000,13.7,31.0,11.1,60.5,16.5,25.2,39.3*5F
+$GPGSV,3,1,11,16,48,115,30,25,39,268,39,23,58,175,41,20,71,336,35*73
+$GPGSV,3,2,11,19,02,028,,04,06,241,23,13,31,223,36,27,19,284,31*7B
+$GPGSV,3,3,11,11,06,338,,01,,,20,03,14,055,30*71
+$GPRMC,222551.000,A,2734.89528,S,15305.81279,E,0.1,345.0,030308,11.2,W,A*3B
+$GPVTG,345.0,T,356.2,M,0.1,N,0.2,K,A*20
+$GPGGA,222552.000,2734.89550,S,15305.81288,E,1,05,2.1,61.7,M,39.2,M,,*75
+$GPGLL,2734.89550,S,15305.81288,E,222552.000,A,A*4E
+$GPGSA,A,3,16,25,23,13,27,,,,,,,,4.7,2.1,4.2*32
+$GPGST,222552.000,11.7,11.5,20.8,20.0,11.8,18.2,39.1*55
+$GPGSV,3,1,11,16,48,115,31,25,39,268,40,23,58,175,42,20,71,336,35*7F
+$GPGSV,3,2,11,19,02,028,,04,06,241,23,13,31,223,38,27,19,284,31*75
+$GPGSV,3,3,11,11,06,338,,01,,,20,03,14,055,30*71
+$GPRMC,222552.000,A,2734.89550,S,15305.81288,E,0.1,11.2,030308,11.2,W,A*09
+$GPVTG,11.2,T,22.5,M,0.1,N,0.2,K,A*27
+$GPGGA,222553.000,2734.89573,S,15305.81294,E,1,05,2.1,61.5,M,39.2,M,,*7A
+$GPGLL,2734.89573,S,15305.81294,E,222553.000,A,A*43
+$GPGSA,A,3,16,25,23,13,27,,,,,,,,4.7,2.1,4.2*32
+$GPGST,222553.000,9.8,10.3,17.6,19.1,10.4,15.6,33.7*6C
+$GPGSV,3,1,10,16,48,115,29,25,39,268,38,23,58,175,41,20,71,336,37*79
+$GPGSV,3,2,10,19,02,028,,04,06,241,23,13,31,223,39,27,19,284,30*74
+$GPGSV,3,3,10,11,06,338,,03,14,055,29*7B
+$GPRMC,222553.000,A,2734.89573,S,15305.81294,E,0.1,351.8,030308,11.2,W,A*39
+$GPVTG,351.8,T,3.0,M,0.1,N,0.2,K,A*2C
+$GPGGA,222554.000,2734.89591,S,15305.81298,E,1,04,2.6,61.4,M,39.2,M,,*7A
+$GPGLL,2734.89591,S,15305.81298,E,222554.000,A,A*44
+$GPGSA,A,3,16,25,23,13,,,,,,,,,6.1,2.6,5.6*31
+$GPGST,222554.000,16.9,10.4,17.8,12.8,10.0,16.1,37.3*5F
+$GPGSV,3,1,10,16,48,115,32,25,39,268,38,23,58,175,41,20,71,336,36*72
+$GPGSV,3,2,10,19,02,028,,04,06,241,23,13,31,223,38,27,19,284,31*74
+$GPGSV,3,3,10,11,06,338,,03,14,055,26*74
+$GPRMC,222554.000,A,2734.89591,S,15305.81298,E,0.1,334.9,030308,11.2,W,A*3C
+$GPVTG,334.9,T,346.1,M,0.1,N,0.2,K,A*2D
+$GPGGA,222555.000,2734.89607,S,15305.81301,E,1,04,2.6,61.2,M,39.2,M,,*70
+$GPGLL,2734.89607,S,15305.81301,E,222555.000,A,A*48
+$GPGSA,A,3,16,25,23,13,,,,,,,,,6.1,2.6,5.6*31
+$GPGST,222555.000,14.4,11.9,23.3,40.8,16.2,17.6,44.5*56
+$GPGSV,3,1,11,16,48,115,32,25,39,268,37,23,58,175,40,20,71,336,38*73
+$GPGSV,3,2,11,19,02,028,,04,06,241,23,13,31,223,37,27,19,284,30*7B
+$GPGSV,3,3,11,11,06,338,,01,,,20,03,14,055,25*75
+$GPRMC,222555.000,A,2734.89607,S,15305.81301,E,0.1,6.2,030308,11.2,W,A*39
+$GPVTG,6.2,T,17.4,M,0.1,N,0.2,K,A*16
+$GPGGA,222556.000,2734.89612,S,15305.81301,E,1,04,2.6,61.1,M,39.2,M,,*74
+$GPGLL,2734.89612,S,15305.81301,E,222556.000,A,A*4F
+$GPGSA,A,3,16,25,23,13,,,,,,,,,6.1,2.6,5.6*31
+$GPGST,222556.000,12.4,15.8,24.1,4.1,14.5,22.0,39.9*69
+$GPGSV,3,1,11,16,48,115,33,25,39,268,38,23,58,174,41,20,71,336,38*7D
+$GPGSV,3,2,11,19,02,028,,04,06,242,23,13,31,223,38,27,19,284,32*75
+$GPGSV,3,3,11,11,06,338,,01,,,20,03,14,055,28*78
+$GPRMC,222556.000,A,2734.89612,S,15305.81301,E,0.1,21.8,030308,11.2,W,A*01
+$GPVTG,21.8,T,33.0,M,0.1,N,0.2,K,A*2B
+$GPGGA,222557.000,2734.89635,S,15305.81337,E,1,05,2.1,61.0,M,39.2,M,,*72
+$GPGLL,2734.89635,S,15305.81337,E,222557.000,A,A*4E
+$GPGSA,A,3,16,25,23,13,27,,,,,,,,4.7,2.1,4.2*32
+$GPGST,222557.000,10.3,13.0,15.0,5.2,11.9,13.7,32.7*6B
+$GPGSV,3,1,10,16,48,115,33,25,39,268,38,23,58,174,41,20,71,336,36*72
+$GPGSV,3,2,10,19,02,028,,04,06,242,23,13,31,223,39,27,19,284,28*7E
+$GPGSV,3,3,10,11,06,338,,03,14,055,31*72
+$GPRMC,222557.000,A,2734.89635,S,15305.81337,E,1.2,96.1,030308,11.2,W,A*07
+$GPVTG,96.1,T,107.3,M,1.2,N,2.2,K,A*1B
+$GPGGA,222558.000,2734.89638,S,15305.81517,E,1,06,1.8,60.6,M,39.2,M,,*7A
+$GPGLL,2734.89638,S,15305.81517,E,222558.000,A,A*48
+$GPGSA,A,3,16,25,23,13,27,03,,,,,,,3.5,1.8,3.1*3A
+$GPGST,222558.000,18.6,12.9,7.5,72.4,7.5,11.4,21.9*57
+$GPGSV,3,1,10,16,48,115,39,25,39,268,38,23,58,174,37,20,71,336,26*78
+$GPGSV,3,2,10,19,02,028,,04,06,242,23,13,31,223,34,27,19,284,29*72
+$GPGSV,3,3,10,11,06,338,,03,14,055,30*73
+$GPRMC,222558.000,A,2734.89638,S,15305.81517,E,5.6,82.0,030308,11.2,W,A*05
+$GPVTG,82.0,T,93.2,M,5.6,N,10.3,K,A*10
+$GPGGA,222559.000,2734.89631,S,15305.81911,E,1,05,2.2,60.5,M,39.2,M,,*71
+$GPGLL,2734.89631,S,15305.81911,E,222559.000,A,A*4A
+$GPGSA,A,3,16,25,23,20,27,,,,,,,,3.6,2.2,2.9*3A
+$GPGST,222559.000,17.0,15.1,33.1,15.1,15.5,29.4,59.0*59
+$GPGSV,3,1,10,16,48,115,34,25,39,268,35,23,58,174,30,20,71,336,29*70
+$GPGSV,3,2,10,19,02,028,,04,06,242,23,13,31,223,35,27,19,284,28*72
+$GPGSV,3,3,10,11,06,338,,03,14,055,27*75
+$GPRMC,222559.000,A,2734.89631,S,15305.81911,E,12.5,87.6,030308,11.2,W,A*31
+$GPVTG,87.6,T,98.8,M,12.5,N,23.2,K,A*26
+$GPGGA,222600.000,2734.89436,S,15305.82359,E,1,06,1.8,61.2,M,39.2,M,,*72
+$GPGLL,2734.89436,S,15305.82359,E,222600.000,A,A*45
+$GPGSA,A,3,16,25,23,13,27,03,,,,,,,3.5,1.8,3.1*3A
+$GPGST,222600.000,14.4,14.9,6.9,79.1,6.7,13.4,28.4*57
+$GPGSV,3,1,10,16,48,115,37,25,39,268,36,23,58,174,29,20,71,336,33*73
+$GPGSV,3,2,10,19,02,028,,04,06,242,23,13,31,223,39,27,19,284,28*7E
+$GPGSV,3,3,10,11,06,338,,03,14,055,28*7A
+$GPRMC,222600.000,A,2734.89436,S,15305.82359,E,15.9,62.5,030308,11.2,W,A*3D
+$GPVTG,62.5,T,73.7,M,15.9,N,29.5,K,A*22
+$GPGGA,222601.000,2734.89190,S,15305.82850,E,1,06,1.8,60.5,M,39.2,M,,*7E
+$GPGLL,2734.89190,S,15305.82850,E,222601.000,A,A*4F
+$GPGSA,A,3,16,25,23,13,27,03,,,,,,,3.6,1.8,3.1*39
+$GPGST,222601.000,11.5,13.4,6.1,78.5,6.0,12.0,24.9*56
+$GPGSV,3,1,10,16,48,115,40,25,39,268,27,23,58,174,35,20,71,336,28*74
+$GPGSV,3,2,10,19,02,028,,04,06,242,,13,31,223,39,27,19,284,27*70
+$GPGSV,3,3,10,11,06,338,,03,14,055,23*71
+$GPRMC,222601.000,A,2734.89190,S,15305.82850,E,18.0,58.9,030308,11.2,W,A*36
+$GPVTG,58.9,T,70.1,M,18.0,N,33.4,K,A*2C
+$GPGGA,222602.000,2734.88904,S,15305.83361,E,1,05,1.6,60.0,M,39.2,M,,*79
+$GPGLL,2734.88904,S,15305.83361,E,222602.000,A,A*40
+$GPGSA,A,3,16,23,20,13,03,,,,,,,,2.5,1.6,1.9*3F
+$GPGST,222602.000,11.3,17.1,6.5,54.9,10.2,13.2,18.6*62
+$GPGSV,3,1,10,16,48,115,27,25,39,268,29,23,58,174,33,20,71,336,33*77
+$GPGSV,3,2,10,19,02,028,,04,06,242,,13,31,223,35,27,19,284,32*78
+$GPGSV,3,3,10,11,06,338,,03,14,055,24*76
+$GPRMC,222602.000,A,2734.88904,S,15305.83361,E,19.8,55.1,030308,11.2,W,A*35
+$GPVTG,55.1,T,66.3,M,19.8,N,36.7,K,A*23
+$GPGGA,222603.000,2734.88556,S,15305.83944,E,1,04,3.8,58.8,M,39.2,M,,*70
+$GPGLL,2734.88556,S,15305.83944,E,222603.000,A,A*47
+$GPGSA,A,3,25,23,20,27,,,,,,,,,6.5,3.8,5.2*3C
+$GPGST,222603.000,12.6,48.6,15.6,66.9,41.3,21.9,62.5*59
+$GPGSV,3,1,10,16,48,115,23,25,39,268,29,23,58,174,31,20,71,337,37*74
+$GPGSV,3,2,10,19,02,028,,04,06,242,,13,31,223,34,27,19,284,26*7C
+$GPGSV,3,3,10,11,06,338,,03,14,055,28*7A
+$GPRMC,222603.000,A,2734.88556,S,15305.83944,E,22.7,54.4,030308,11.2,W,A*31
+$GPVTG,54.4,T,65.6,M,22.7,N,42.1,K,A*23
+$GPGGA,222604.000,2734.88238,S,15305.84546,E,1,04,4.4,57.8,M,39.2,M,,*75
+$GPGLL,2734.88238,S,15305.84546,E,222604.000,A,A*46
+$GPGSA,A,3,25,20,13,27,,,,,,,,,7.2,4.4,5.7*37
+$GPGST,222604.000,10.4,46.8,10.9,81.3,42.4,11.8,57.5*57
+$GPGSV,3,1,10,16,48,115,27,25,39,268,32,23,58,174,32,20,71,337,37*79
+$GPGSV,3,2,10,19,02,028,,04,06,242,,13,31,223,34,27,19,284,34*7F
+$GPGSV,3,3,10,11,06,338,,03,14,055,29*7B
+$GPRMC,222604.000,A,2734.88238,S,15305.84546,E,23.3,54.5,030308,11.2,W,A*34
+$GPVTG,54.5,T,65.7,M,23.3,N,43.2,K,A*24
+$GPGGA,222605.000,2734.87917,S,15305.85182,E,1,04,4.4,56.6,M,39.2,M,,*7F
+$GPGLL,2734.87917,S,15305.85182,E,222605.000,A,A*43
+$GPGSA,A,3,25,20,13,27,,,,,,,,,7.2,4.4,5.7*37
+$GPGST,222605.000,14.3,40.3,10.1,81.5,36.5,10.7,49.8*58
+$GPGSV,3,1,10,16,48,115,24,25,39,268,32,23,58,174,33,20,71,337,37*7B
+$GPGSV,3,2,10,19,02,028,,04,06,242,20,13,31,223,35,27,19,284,32*7A
+$GPGSV,3,3,10,11,06,338,,03,14,055,26*74
+$GPRMC,222605.000,A,2734.87917,S,15305.85182,E,24.5,55.0,030308,11.2,W,A*34
+$GPVTG,55.0,T,66.2,M,24.5,N,45.3,K,A*20
+$GPGGA,222606.000,2734.87588,S,15305.85846,E,1,05,3.6,55.8,M,39.2,M,,*7E
+$GPGLL,2734.87588,S,15305.85846,E,222606.000,A,A*4B
+$GPGSA,A,3,25,23,20,13,27,,,,,,,,6.3,3.6,5.2*36
+$GPGST,222606.000,11.7,30.4,8.7,77.7,27.2,9.8,40.6*59
+$GPGSV,3,1,10,16,48,115,24,25,39,268,31,23,58,174,32,20,71,337,34*7A
+$GPGSV,3,2,10,19,02,029,,04,06,242,20,13,31,223,35,27,19,284,34*7D
+$GPGSV,3,3,10,11,06,338,,03,14,055,24*76
+$GPRMC,222606.000,A,2734.87588,S,15305.85846,E,25.3,55.9,030308,11.2,W,A*32
+$GPVTG,55.9,T,67.1,M,25.3,N,46.9,K,A*25
+$GPGGA,222607.000,2734.87218,S,15305.86543,E,1,06,1.8,55.5,M,39.2,M,,*78
+$GPGLL,2734.87218,S,15305.86543,E,222607.000,A,A*4F
+$GPGSA,A,3,16,25,23,13,27,03,,,,,,,3.6,1.8,3.1*39
+$GPGST,222607.000,11.2,13.8,8.5,86.1,7.8,12.6,27.3*52
+$GPGSV,3,1,10,16,48,115,29,25,39,268,26,23,58,174,34,20,71,337,32*71
+$GPGSV,3,2,10,19,02,029,,04,06,242,27,13,31,223,36,27,19,284,30*7D
+$GPGSV,3,3,10,11,06,338,,03,14,055,24*76
+$GPRMC,222607.000,A,2734.87218,S,15305.86543,E,26.0,57.6,030308,11.2,W,A*3B
+$GPVTG,57.6,T,68.8,M,26.0,N,48.1,K,A*28
+$GPGGA,222608.000,2734.86867,S,15305.87251,E,1,06,1.8,55.1,M,39.2,M,,*75
+$GPGLL,2734.86867,S,15305.87251,E,222608.000,A,A*46
+$GPGSA,A,3,16,25,23,13,27,03,,,,,,,3.6,1.8,3.1*39
+$GPGST,222608.000,15.1,15.8,7.1,68.8,8.0,13.6,36.7*5C
+$GPGSV,3,1,10,16,48,115,39,25,39,268,28,23,58,174,35,20,71,337,30*7D
+$GPGSV,3,2,10,19,02,029,,04,06,242,27,13,31,223,40,27,19,284,28*75
+$GPGSV,3,3,10,11,06,338,,03,14,055,28*7A
+$GPRMC,222608.000,A,2734.86867,S,15305.87251,E,25.9,60.7,030308,11.2,W,A*3D
+$GPVTG,60.7,T,71.9,M,25.9,N,47.9,K,A*29
+$GPGGA,222609.000,2734.86555,S,15305.87973,E,1,06,1.8,54.7,M,39.2,M,,*74
+$GPGLL,2734.86555,S,15305.87973,E,222609.000,A,A*40
+$GPGSA,A,3,16,25,23,13,27,03,,,,,,,3.6,1.8,3.1*39
+$GPGST,222609.000,10.9,10.9,5.1,85.4,4.7,10.0,22.0*55
+$GPGSV,3,1,10,16,48,116,34,25,39,268,39,23,58,174,29,20,71,337,33*7D
+$GPGSV,3,2,10,19,02,029,,04,06,242,24,13,31,223,42,27,19,284,23*7F
+$GPGSV,3,3,10,11,06,338,,03,14,055,26*74
+$GPRMC,222609.000,A,2734.86555,S,15305.87973,E,25.7,64.3,030308,11.2,W,A*35
+$GPVTG,64.3,T,75.6,M,25.7,N,47.5,K,A*20
+$GPGGA,222610.000,2734.86253,S,15305.88695,E,1,05,1.9,54.1,M,39.2,M,,*71
+$GPGLL,2734.86253,S,15305.88695,E,222610.000,A,A*41
+$GPGSA,A,3,16,25,23,13,03,,,,,,,,3.7,1.9,3.1*3C
+$GPGST,222610.000,11.1,14.6,7.4,64.7,8.3,12.4,28.7*57
+$GPGSV,3,1,10,16,48,116,29,25,39,268,42,23,58,174,28,20,71,337,32*7D
+$GPGSV,3,2,10,19,02,029,,04,06,242,24,13,31,223,42,27,19,284,23*7F
+$GPGSV,3,3,10,11,06,338,,03,14,055,24*76
+$GPRMC,222610.000,A,2734.86253,S,15305.88695,E,25.3,65.0,030308,11.2,W,A*32
+$GPVTG,65.0,T,76.3,M,25.3,N,46.8,K,A*2C
+$GPGGA,222611.000,2734.85924,S,15305.89387,E,1,05,2.2,53.4,M,39.2,M,,*75
+$GPGLL,2734.85924,S,15305.89387,E,222611.000,A,A*4F
+$GPGSA,A,3,16,25,23,20,13,,,,,,,,5.3,2.2,4.8*39
+$GPGST,222611.000,17.7,8.4,21.7,17.4,9.4,19.0,57.8*57
+$GPGSV,3,1,10,16,48,116,39,25,39,268,32,23,58,174,35,20,71,337,26*72
+$GPGSV,3,2,10,19,02,029,,04,06,242,31,13,31,223,39,27,19,284,24*70
+$GPGSV,3,3,10,11,06,338,,03,14,055,26*74
+$GPRMC,222611.000,A,2734.85924,S,15305.89387,E,24.9,61.4,030308,11.2,W,A*37
+$GPVTG,61.4,T,72.6,M,24.9,N,46.1,K,A*2F
+$GPGGA,222612.000,2734.85516,S,15305.90007,E,1,07,1.2,53.3,M,39.2,M,,*7E
+$GPGLL,2734.85516,S,15305.90007,E,222612.000,A,A*42
+$GPGSA,A,3,16,25,23,20,13,27,03,,,,,,2.1,1.2,1.7*33
+$GPGST,222612.000,15.5,16.3,8.2,77.8,8.0,14.7,27.8*50
+$GPGSV,3,1,10,16,48,116,29,25,39,268,29,23,58,174,30,20,71,337,34*7F
+$GPGSV,3,2,10,19,02,029,,04,06,242,27,13,31,223,35,27,19,284,28*77
+$GPGSV,3,3,10,11,06,338,,03,14,055,25*77
+$GPRMC,222612.000,A,2734.85516,S,15305.90007,E,24.5,53.1,030308,11.2,W,A*32
+$GPVTG,53.1,T,64.3,M,24.5,N,45.4,K,A*23
+$GPGGA,222613.000,2734.85043,S,15305.90565,E,1,05,1.9,53.2,M,39.2,M,,*73
+$GPGLL,2734.85043,S,15305.90565,E,222613.000,A,A*47
+$GPGSA,A,3,16,25,20,13,27,,,,,,,,3.7,1.9,3.2*3A
+$GPGST,222613.000,21.1,11.0,20.9,21.8,11.7,18.1,48.5*55
+$GPGSV,3,1,10,16,48,116,30,25,39,268,32,23,58,174,24,20,71,337,36*7A
+$GPGSV,3,2,10,19,02,029,,04,06,242,22,13,31,223,35,27,19,284,29*73
+$GPGSV,3,3,10,11,06,338,,03,14,055,29*7B
+$GPRMC,222613.000,A,2734.85043,S,15305.90565,E,24.9,45.4,030308,11.2,W,A*39
+$GPVTG,45.4,T,56.6,M,24.9,N,46.1,K,A*2F
+$GPGGA,222614.000,2734.84523,S,15305.91064,E,1,05,1.9,53.2,M,39.2,M,,*73
+$GPGLL,2734.84523,S,15305.91064,E,222614.000,A,A*47
+$GPGSA,A,3,16,25,20,13,27,,,,,,,,3.7,1.9,3.2*3A
+$GPGST,222614.000,18.8,16.8,28.3,28.1,18.2,24.0,43.4*54
+$GPGSV,3,1,10,16,48,116,27,25,39,268,30,23,58,174,32,20,71,337,35*7A
+$GPGSV,3,2,10,19,02,029,,04,06,242,28,13,31,223,26,27,19,284,32*71
+$GPGSV,3,3,10,11,06,338,,03,14,055,30*73
+$GPRMC,222614.000,A,2734.84523,S,15305.91064,E,24.7,40.2,030308,11.2,W,A*34
+$GPVTG,40.2,T,51.4,M,24.7,N,45.7,K,A*22
+$GPGGA,222615.000,2734.84002,S,15305.91547,E,1,07,1.2,53.0,M,39.2,M,,*7B
+$GPGLL,2734.84002,S,15305.91547,E,222615.000,A,A*44
+$GPGSA,A,3,16,25,23,20,13,27,03,,,,,,2.1,1.2,1.7*33
+$GPGST,222615.000,19.7,18.9,7.9,71.0,8.8,16.5,18.9*52
+$GPGSV,3,1,10,16,48,116,25,25,39,268,26,23,58,174,35,20,71,337,34*79
+$GPGSV,3,2,10,19,02,029,,04,06,242,24,13,31,223,25,27,19,284,30*7C
+$GPGSV,3,3,10,11,06,338,,03,14,055,29*7B
+$GPRMC,222615.000,A,2734.84002,S,15305.91547,E,24.1,38.7,030308,11.2,W,A*3B
+$GPVTG,38.7,T,49.9,M,24.1,N,44.7,K,A*2B
+$GPGGA,222616.000,2734.83488,S,15305.92024,E,1,07,1.2,53.1,M,39.2,M,,*7B
+$GPGLL,2734.83488,S,15305.92024,E,222616.000,A,A*45
+$GPGSA,A,3,16,25,23,20,13,27,03,,,,,,2.1,1.2,1.7*33
+$GPGST,222616.000,18.1,15.8,11.2,70.8,10.8,14.1,19.9*51
+$GPGSV,3,1,10,16,48,116,27,25,39,268,29,23,58,174,34,20,71,337,30*71
+$GPGSV,3,2,10,19,02,029,,04,06,242,27,13,31,223,24,27,19,284,28*77
+$GPGSV,3,3,10,11,06,338,,03,14,055,32*71
+$GPRMC,222616.000,A,2734.83488,S,15305.92024,E,24.0,39.3,030308,11.2,W,A*3E
+$GPVTG,39.3,T,50.5,M,24.0,N,44.5,K,A*29
+$GPGGA,222617.000,2734.82955,S,15305.92505,E,1,07,1.2,53.2,M,39.2,M,,*73
+$GPGLL,2734.82955,S,15305.92505,E,222617.000,A,A*4E
+$GPGSA,A,3,16,25,23,20,13,27,03,,,,,,2.1,1.2,1.7*33
+$GPGST,222617.000,14.7,13.3,9.2,70.7,8.9,11.8,16.8*5B
+$GPGSV,3,1,10,16,48,116,23,25,39,268,30,23,58,174,35,20,71,337,33*7F
+$GPGSV,3,2,10,19,02,029,,04,06,242,25,13,31,223,25,27,19,284,26*7A
+$GPGSV,3,3,10,11,06,338,,03,14,055,32*71
+$GPRMC,222617.000,A,2734.82955,S,15305.92505,E,24.7,38.8,030308,11.2,W,A*38
+$GPVTG,38.8,T,50.0,M,24.7,N,45.7,K,A*22
+$GPGGA,222618.000,2734.82405,S,15305.92991,E,1,07,1.2,53.5,M,39.2,M,,*72
+$GPGLL,2734.82405,S,15305.92991,E,222618.000,A,A*48
+$GPGSA,A,3,16,25,23,20,13,27,03,,,,,,2.1,1.2,1.7*33
+$GPGST,222618.000,13.7,14.7,7.8,77.2,7.6,13.2,24.3*54
+$GPGSV,3,1,10,16,48,116,27,25,39,268,30,23,58,174,36,20,71,337,32*79
+$GPGSV,3,2,10,19,02,029,,04,06,242,31,13,31,223,25,27,19,283,23*7D
+$GPGSV,3,3,10,11,06,338,,03,14,056,32*72
+$GPRMC,222618.000,A,2734.82405,S,15305.92991,E,25.3,38.3,030308,11.2,W,A*30
+$GPVTG,38.3,T,49.5,M,25.3,N,46.8,K,A*2D
+$GPGGA,222619.000,2734.81867,S,15305.93485,E,1,07,1.2,53.8,M,39.2,M,,*7C
+$GPGLL,2734.81867,S,15305.93485,E,222619.000,A,A*4B
+$GPGSA,A,3,16,25,23,20,13,27,03,,,,,,2.1,1.2,1.7*33
+$GPGST,222619.000,20.5,18.3,9.9,85.5,9.1,16.7,27.9*5A
+$GPGSV,3,1,10,16,48,116,27,25,39,268,30,23,58,174,35,20,71,337,33*7B
+$GPGSV,3,2,10,19,02,029,,04,06,242,29,13,31,223,23,27,19,283,23*72
+$GPGSV,3,3,10,11,06,338,,03,14,056,32*72
+$GPRMC,222619.000,A,2734.81867,S,15305.93485,E,25.3,39.2,030308,11.2,W,A*33
+$GPVTG,39.2,T,50.4,M,25.3,N,46.8,K,A*24
+$GPGGA,222620.000,2734.81344,S,15305.93979,E,1,05,1.6,53.8,M,39.2,M,,*74
+$GPGLL,2734.81344,S,15305.93979,E,222620.000,A,A*45
+$GPGSA,A,3,16,23,20,13,03,,,,,,,,2.5,1.6,1.9*3F
+$GPGST,222620.000,18.2,14.7,21.1,9.8,19.1,13.7,29.8*64
+$GPGSV,3,1,10,16,48,116,26,25,39,268,30,23,58,174,33,20,71,337,34*7B
+$GPGSV,3,2,10,19,02,029,,04,06,242,24,13,31,223,25,27,19,283,29*73
+$GPGSV,3,3,10,11,06,338,,03,14,056,33*73
+$GPRMC,222620.000,A,2734.81344,S,15305.93979,E,24.7,39.5,030308,11.2,W,A*3F
+$GPVTG,39.5,T,50.7,M,24.7,N,45.8,K,A*26
+$GPGGA,222621.000,2734.80838,S,15305.94469,E,1,06,1.3,53.5,M,39.2,M,,*74
+$GPGLL,2734.80838,S,15305.94469,E,222621.000,A,A*4E
+$GPGSA,A,3,16,25,23,20,13,03,,,,,,,2.3,1.3,1.9*3B
+$GPGST,222621.000,14.6,11.8,13.4,39.2,11.7,11.4,21.8*5D
+$GPGSV,3,1,10,16,48,116,25,25,39,268,31,23,58,174,33,20,71,337,37*7A
+$GPGSV,3,2,10,19,03,029,,04,06,242,24,13,31,223,24,27,19,283,36*7D
+$GPGSV,3,3,10,11,06,338,,03,14,056,32*72
+$GPRMC,222621.000,A,2734.80838,S,15305.94469,E,24.1,40.1,030308,11.2,W,A*38
+$GPVTG,40.1,T,51.3,M,24.1,N,44.7,K,A*21
+$GPGGA,222622.000,2734.80354,S,15305.94956,E,1,06,1.7,53.3,M,39.2,M,,*75
+$GPGLL,2734.80354,S,15305.94956,E,222622.000,A,A*4D
+$GPGSA,A,3,16,25,23,20,13,27,,,,,,,3.3,1.7,2.9*3B
+$GPGST,222622.000,13.2,10.2,17.1,41.6,12.5,13.2,30.8*59
+$GPGSV,3,1,10,16,48,116,26,25,39,268,31,23,58,174,26,20,71,337,39*73
+$GPGSV,3,2,10,19,03,029,,04,06,242,24,13,31,223,28,27,19,283,36*71
+$GPGSV,3,3,10,11,06,338,,03,14,056,35*75
+$GPRMC,222622.000,A,2734.80354,S,15305.94956,E,23.6,41.3,030308,11.2,W,A*38
+$GPVTG,41.3,T,52.5,M,23.6,N,43.7,K,A*20
+$GPGGA,222623.000,2734.79878,S,15305.95470,E,1,05,1.9,52.8,M,39.2,M,,*78
+$GPGLL,2734.79878,S,15305.95470,E,222623.000,A,A*47
+$GPGSA,A,3,16,25,20,13,27,,,,,,,,3.7,1.9,3.2*3A
+$GPGST,222623.000,14.7,24.8,16.6,50.3,19.9,18.6,39.3*5E
+$GPGSV,3,1,11,16,48,116,24,25,39,268,32,23,58,174,24,20,71,337,38*70
+$GPGSV,3,2,11,19,03,029,,04,06,242,24,13,31,223,32,27,19,283,34*79
+$GPGSV,3,3,11,11,06,338,,01,,,18,03,14,056,34*7D
+$GPRMC,222623.000,A,2734.79878,S,15305.95470,E,24.0,43.4,030308,11.2,W,A*36
+$GPVTG,43.4,T,54.6,M,24.0,N,44.4,K,A*25
+$GPGGA,222624.000,2734.79400,S,15305.96019,E,1,05,1.9,52.3,M,39.2,M,,*7F
+$GPGLL,2734.79400,S,15305.96019,E,222624.000,A,A*4B
+$GPGSA,A,3,16,25,20,27,03,,,,,,,,2.7,1.9,2.0*39
+$GPGST,222624.000,12.3,24.0,7.9,80.2,8.0,21.7,15.3*5C
+$GPGSV,3,1,11,16,48,116,23,25,39,268,32,23,58,174,26,20,71,337,37*7A
+$GPGSV,3,2,11,19,03,029,,04,06,242,24,13,31,223,35,27,19,283,25*7E
+$GPGSV,3,3,11,11,06,338,,01,,,18,03,14,056,31*78
+$GPRMC,222624.000,A,2734.79400,S,15305.96019,E,24.7,45.3,030308,11.2,W,A*3C
+$GPVTG,45.3,T,56.6,M,24.7,N,45.7,K,A*23
+$GPGGA,222625.000,2734.78953,S,15305.96595,E,1,05,1.9,51.8,M,39.2,M,,*7D
+$GPGLL,2734.78953,S,15305.96595,E,222625.000,A,A*41
+$GPGSA,A,3,16,25,20,13,27,,,,,,,,3.7,1.9,3.2*3A
+$GPGST,222625.000,24.0,12.2,19.9,37.5,14.2,16.0,36.1*57
+$GPGSV,3,1,11,16,48,116,30,25,39,268,32,23,58,174,23,20,71,337,37*7D
+$GPGSV,3,2,11,19,03,029,,04,06,242,25,13,31,223,36,27,19,283,25*7C
+$GPGSV,3,3,11,11,06,338,,01,,,18,03,14,056,24*7C
+$GPRMC,222625.000,A,2734.78953,S,15305.96595,E,24.8,47.9,030308,11.2,W,A*31
+$GPVTG,47.9,T,59.1,M,24.8,N,46.0,K,A*28
+$GPGGA,222626.000,2734.78516,S,15305.97172,E,1,05,2.5,51.1,M,39.2,M,,*79
+$GPGLL,2734.78516,S,15305.97172,E,222626.000,A,A*43
+$GPGSA,A,3,16,25,20,04,13,,,,,,,,4.2,2.5,3.3*37
+$GPGST,222626.000,20.2,12.6,23.1,19.8,13.0,20.2,38.4*5F
+$GPGSV,3,1,11,16,48,116,31,25,39,268,32,23,58,174,25,20,71,337,38*75
+$GPGSV,3,2,11,19,03,029,,04,06,242,25,13,31,223,36,27,19,283,23*7A
+$GPGSV,3,3,11,11,06,338,,01,,,18,03,14,056,24*7C
+$GPRMC,222626.000,A,2734.78516,S,15305.97172,E,24.7,48.3,030308,11.2,W,A*39
+$GPVTG,48.3,T,59.5,M,24.7,N,45.7,K,A*22
+$GPGGA,222627.000,2734.78079,S,15305.97737,E,1,04,2.5,50.5,M,39.2,M,,*77
+$GPGLL,2734.78079,S,15305.97737,E,222627.000,A,A*49
+$GPGSA,A,3,16,23,20,13,,,,,,,,,5.8,2.5,5.2*39
+$GPGST,222627.000,16.3,12.4,42.2,11.3,13.5,37.9,90.0*51
+$GPGSV,3,1,11,16,48,116,28,25,39,268,32,23,58,174,25,20,71,337,37*72
+$GPGSV,3,2,11,19,03,029,,04,06,242,29,13,31,223,37,27,19,283,30*75
+$GPGSV,3,3,11,11,06,338,,01,,,18,03,14,056,24*7C
+$GPRMC,222627.000,A,2734.78079,S,15305.97737,E,24.3,48.1,030308,11.2,W,A*35
+$GPVTG,48.1,T,59.3,M,24.3,N,45.1,K,A*24
+$GPGGA,222628.000,2734.77637,S,15305.98293,E,1,07,1.3,50.2,M,39.2,M,,*7E
+$GPGLL,2734.77637,S,15305.98293,E,222628.000,A,A*41
+$GPGSA,A,3,16,25,23,04,13,27,03,,,,,,2.2,1.3,1.8*38
+$GPGST,222628.000,13.2,14.5,8.8,76.9,8.4,13.0,22.0*5F
+$GPGSV,3,1,11,16,48,116,30,25,39,268,32,23,58,174,27,20,71,337,37*79
+$GPGSV,3,2,11,19,03,029,,04,06,242,32,13,31,223,37,27,19,283,28*76
+$GPGSV,3,3,11,11,06,338,,01,,,18,03,14,056,25*7D
+$GPRMC,222628.000,A,2734.77637,S,15305.98293,E,23.9,48.5,030308,11.2,W,A*34
+$GPVTG,48.5,T,59.7,M,23.9,N,44.3,K,A*2A
+$GPGGA,222629.000,2734.77226,S,15305.98850,E,1,08,1.1,49.5,M,39.2,M,,*7C
+$GPGLL,2734.77226,S,15305.98850,E,222629.000,A,A*41
+$GPGSA,A,3,16,25,23,20,04,13,27,03,,,,,1.7,1.1,1.3*35
+$GPGST,222629.000,11.0,9.5,7.3,89.6,6.7,8.6,14.3*5E
+$GPGSV,3,1,11,16,48,116,31,25,39,268,32,23,58,174,25,20,71,337,36*7B
+$GPGSV,3,2,11,19,03,029,,04,06,242,30,13,31,223,37,27,19,283,28*74
+$GPGSV,3,3,11,11,06,338,,01,,,18,03,14,056,27*7F
+$GPRMC,222629.000,A,2734.77226,S,15305.98850,E,23.5,49.4,030308,11.2,W,A*38
+$GPVTG,49.4,T,60.6,M,23.5,N,43.5,K,A*2C
+$GPGGA,222630.000,2734.76859,S,15305.99361,E,1,04,3.5,49.4,M,39.2,M,,*74
+$GPGLL,2734.76859,S,15305.99361,E,222630.000,A,A*42
+$GPGSA,A,3,16,25,20,27,,,,,,,,,4.9,3.5,3.4*39
+$GPGST,222630.000,13.4,7.9,50.0,19.9,17.0,43.1,69.5*66
+$GPGSV,3,1,11,16,48,116,31,25,39,268,30,23,58,174,22,20,71,337,36*7E
+$GPGSV,3,2,11,19,03,029,,04,06,242,32,13,31,223,35,27,19,283,24*78
+$GPGSV,3,3,11,11,06,338,18,01,,,18,03,14,056,29*78
+$GPRMC,222630.000,A,2734.76859,S,15305.99361,E,21.1,50.3,030308,11.2,W,A*32
+$GPVTG,50.3,T,61.5,M,21.1,N,39.1,K,A*2E
+$GPGGA,222631.000,2734.76498,S,15305.99809,E,1,08,1.1,48.2,M,39.2,M,,*7C
+$GPGLL,2734.76498,S,15305.99809,E,222631.000,A,A*47
+$GPGSA,A,3,16,25,23,20,04,13,27,03,,,,,1.7,1.1,1.3*35
+$GPGST,222631.000,18.4,10.8,5.8,77.6,5.6,9.7,13.2*63
+$GPGSV,3,1,11,16,48,116,32,25,39,268,31,23,58,174,22,20,71,337,35*7F
+$GPGSV,3,2,11,19,03,029,,04,06,242,30,13,31,223,36,27,19,283,25*78
+$GPGSV,3,3,11,11,06,338,18,01,,,18,03,14,056,33*73
+$GPRMC,222631.000,A,2734.76498,S,15305.99809,E,19.4,47.4,030308,11.2,W,A*38
+$GPVTG,47.4,T,58.6,M,19.4,N,35.9,K,A*2C
+$GPGGA,222632.000,2734.76359,S,15306.00162,E,1,08,1.1,49.6,M,39.2,M,,*77
+$GPGLL,2734.76359,S,15306.00162,E,222632.000,A,A*49
+$GPGSA,A,3,16,25,23,20,04,13,27,03,,,,,1.7,1.1,1.3*35
+$GPGST,222632.000,18.1,14.9,6.7,53.4,9.5,11.5,16.1*5A
+$GPGSV,3,1,11,16,48,116,30,25,39,268,31,23,58,174,31,20,71,337,31*7B
+$GPGSV,3,2,11,19,03,029,,04,06,242,22,13,31,223,37,27,19,283,29*76
+$GPGSV,3,3,11,11,06,338,24,01,,,18,03,14,056,25*7B
+$GPRMC,222632.000,A,2734.76359,S,15306.00162,E,12.4,65.5,030308,11.2,W,A*3C
+$GPVTG,65.5,T,76.7,M,12.4,N,22.9,K,A*2D
+$GPGGA,222633.000,2734.76254,S,15306.00553,E,1,08,1.1,49.0,M,39.2,M,,*7A
+$GPGLL,2734.76254,S,15306.00553,E,222633.000,A,A*42
+$GPGSA,A,3,16,25,23,20,04,13,27,03,,,,,1.7,1.1,1.3*35
+$GPGST,222633.000,13.9,12.3,5.8,55.3,7.8,9.7,13.7*62
+$GPGSV,3,1,10,16,48,116,35,25,39,268,35,23,58,174,30,20,71,337,35*7E
+$GPGSV,3,2,10,19,03,029,,04,06,242,26,13,31,223,39,27,19,283,26*72
+$GPGSV,3,3,10,11,06,338,24,03,14,056,30*76
+$GPRMC,222633.000,A,2734.76254,S,15306.00553,E,12.9,72.5,030308,11.2,W,A*3C
+$GPVTG,72.5,T,83.7,M,12.9,N,23.9,K,A*2D
+$GPGGA,222634.000,2734.76305,S,15306.00850,E,1,08,1.1,48.4,M,39.2,M,,*73
+$GPGLL,2734.76305,S,15306.00850,E,222634.000,A,A*4E
+$GPGSA,A,3,16,25,23,20,04,13,27,03,,,,,1.7,1.1,1.3*35
+$GPGST,222634.000,11.3,10.3,5.3,58.0,6.5,8.4,12.0*62
+$GPGSV,3,1,10,16,48,116,33,25,39,268,38,23,58,174,30,20,71,337,30*70
+$GPGSV,3,2,10,19,03,029,,04,06,242,29,13,31,223,34,27,19,283,30*77
+$GPGSV,3,3,10,11,06,338,23,03,14,056,25*75
+$GPRMC,222634.000,A,2734.76305,S,15306.00850,E,9.4,99.3,030308,11.2,W,A*04
+$GPVTG,99.3,T,110.5,M,9.4,N,17.3,K,A*2D
+$GPGGA,222635.000,2734.76418,S,15306.01089,E,1,08,1.1,47.9,M,39.2,M,,*76
+$GPGLL,2734.76418,S,15306.01089,E,222635.000,A,A*49
+$GPGSA,A,3,16,25,23,20,04,13,27,03,,,,,1.7,1.1,1.3*35
+$GPGST,222635.000,13.4,9.3,7.7,66.3,7.3,8.3,14.0*50
+$GPGSV,3,1,10,16,48,116,36,25,39,268,31,23,58,174,37,20,71,337,36*7D
+$GPGSV,3,2,10,19,03,029,,04,06,242,31,13,31,223,34,27,19,283,31*7F
+$GPGSV,3,3,10,11,06,338,23,03,14,056,23*73
+$GPRMC,222635.000,A,2734.76418,S,15306.01089,E,8.3,116.7,030308,11.2,W,A*37
+$GPVTG,116.7,T,127.9,M,8.3,N,15.4,K,A*14
+$GPGGA,222636.000,2734.76577,S,15306.01258,E,1,07,1.7,47.9,M,39.2,M,,*7A
+$GPGLL,2734.76577,S,15306.01258,E,222636.000,A,A*4C
+$GPGSA,A,3,16,25,23,20,04,13,27,,,,,,2.8,1.7,2.3*3F
+$GPGST,222636.000,10.6,11.9,8.1,45.4,9.3,9.3,18.8*65
+$GPGSV,3,1,10,16,48,116,41,25,39,268,35,23,58,174,40,20,71,337,33*7C
+$GPGSV,3,2,10,19,03,029,,04,06,242,32,13,31,223,28,27,19,283,34*74
+$GPGSV,3,3,10,11,06,338,25,03,14,056,23*75
+$GPRMC,222636.000,A,2734.76577,S,15306.01258,E,7.6,135.7,030308,11.2,W,A*39
+$GPVTG,135.7,T,146.9,M,7.6,N,14.1,K,A*1C
+$GPGGA,222637.000,2734.76759,S,15306.01422,E,1,07,1.7,47.8,M,39.2,M,,*7F
+$GPGLL,2734.76759,S,15306.01422,E,222637.000,A,A*48
+$GPGSA,A,3,16,25,23,20,04,13,27,,,,,,2.8,1.7,2.3*3F
+$GPGST,222637.000,8.9,7.2,10.9,44.4,8.4,8.5,17.1*59
+$GPGSV,3,1,10,16,48,116,44,25,39,268,36,23,58,174,33,20,71,337,33*7E
+$GPGSV,3,2,10,19,03,029,,04,06,242,24,13,31,223,29,27,19,283,36*70
+$GPGSV,3,3,10,11,06,338,25,03,14,056,23*75
+$GPRMC,222637.000,A,2734.76759,S,15306.01422,E,8.0,140.6,030308,11.2,W,A*37
+$GPVTG,140.6,T,151.8,M,8.0,N,14.8,K,A*18
+$GPGGA,222638.000,2734.76957,S,15306.01592,E,1,06,2.0,47.6,M,39.2,M,,*71
+$GPGLL,2734.76957,S,15306.01592,E,222638.000,A,A*4D
+$GPGSA,A,3,16,25,23,20,04,13,,,,,,,3.2,2.0,2.6*30
+$GPGST,222638.000,10.4,8.9,16.3,14.1,8.7,14.6,19.9*51
+$GPGSV,3,1,10,16,48,116,38,25,39,268,30,23,58,174,29,20,71,337,29*73
+$GPGSV,3,2,10,19,03,029,,04,06,242,28,13,31,223,31,27,19,283,29*7B
+$GPGSV,3,3,10,11,06,338,21,03,14,056,23*71
+$GPRMC,222638.000,A,2734.76957,S,15306.01592,E,8.8,142.8,030308,11.2,W,A*36
+$GPVTG,142.8,T,154.0,M,8.8,N,16.2,K,A*19
+$GPGGA,222639.000,2734.77109,S,15306.01748,E,1,07,1.7,47.8,M,39.2,M,,*7C
+$GPGLL,2734.77109,S,15306.01748,E,222639.000,A,A*4B
+$GPGSA,A,3,16,25,23,20,04,13,27,,,,,,2.8,1.7,2.3*3F
+$GPGST,222639.000,9.5,9.6,14.7,43.8,11.3,11.5,19.8*51
+$GPGSV,3,1,10,16,48,116,37,25,39,268,32,23,58,174,37,20,71,337,29*71
+$GPGSV,3,2,10,19,03,029,,04,06,242,28,13,31,223,31,27,19,283,27*75
+$GPGSV,3,3,10,11,06,338,21,03,14,056,23*71
+$GPRMC,222639.000,A,2734.77109,S,15306.01748,E,7.1,137.2,030308,11.2,W,A*3E
+$GPVTG,137.2,T,148.4,M,7.1,N,13.1,K,A*18
+$GPGGA,222640.000,2734.77216,S,15306.02018,E,1,04,2.6,47.8,M,39.2,M,,*7F
+$GPGLL,2734.77216,S,15306.02018,E,222640.000,A,A*49
+$GPGSA,A,3,16,25,23,13,,,,,,,,,6.2,2.6,5.6*32
+$GPGST,222640.000,20.0,11.7,22.3,7.0,10.9,20.3,46.8*65
+$GPGSV,3,1,10,16,48,116,32,25,39,268,29,23,58,174,24,20,71,337,25*70
+$GPGSV,3,2,10,19,03,029,,04,06,242,28,13,31,223,31,27,19,283,25*77
+$GPGSV,3,3,10,11,06,338,21,03,14,056,23*71
+$GPRMC,222640.000,A,2734.77216,S,15306.02018,E,9.4,114.2,030308,11.2,W,A*36
+$GPVTG,114.2,T,125.4,M,9.4,N,17.4,K,A*18
+$GPGGA,222641.000,2734.77543,S,15306.02149,E,1,04,2.6,47.7,M,39.2,M,,*73
+$GPGLL,2734.77543,S,15306.02149,E,222641.000,A,A*4A
+$GPGSA,A,3,16,25,23,13,,,,,,,,,6.2,2.6,5.6*32
+$GPGST,222641.000,18.3,40.3,13.2,79.5,13.7,36.3,59.1*5E
+$GPGSV,3,1,10,16,48,116,34,25,39,268,23,23,58,174,26,20,71,337,27*7C
+$GPGSV,3,2,10,19,03,029,,04,06,242,28,13,31,223,31,27,19,283,23*71
+$GPGSV,3,3,10,11,06,338,21,03,14,056,23*71
+$GPRMC,222641.000,A,2734.77543,S,15306.02149,E,12.5,160.9,030308,11.2,W,A*06
+$GPVTG,160.9,T,172.1,M,12.5,N,23.1,K,A*2E
+$GPGGA,222642.000,2734.77709,S,15306.02300,E,1,04,2.6,47.7,M,39.2,M,,*73
+$GPGLL,2734.77709,S,15306.02300,E,222642.000,A,A*4A
+$GPGSA,A,3,16,20,04,13,,,,,,,,,4.3,2.6,3.4*35
+$GPGST,222642.000,15.8,14.5,71.8,20.7,26.3,61.6,97.2*58
+$GPGSV,3,1,10,16,48,116,41,25,40,268,23,23,58,174,27,20,71,337,34*73
+$GPGSV,3,2,10,19,03,029,,04,06,242,28,13,31,223,31,27,19,283,23*71
+$GPGSV,3,3,10,11,06,338,21,03,14,056,23*71
+$GPRMC,222642.000,A,2734.77709,S,15306.02300,E,7.5,140.7,030308,11.2,W,A*3E
+$GPVTG,140.7,T,151.9,M,7.5,N,13.9,K,A*14
+$GPGGA,222643.000,2734.77831,S,15306.02427,E,1,04,2.6,47.5,M,39.2,M,,*76
+$GPGLL,2734.77831,S,15306.02427,E,222643.000,A,A*4D
+$GPGSA,A,3,16,20,04,13,,,,,,,,,4.3,2.6,3.4*35
+$GPGST,222643.000,12.9,15.5,112.8,21.4,39.9,96.1,154.3*5C
+$GPGSV,3,1,10,16,48,116,41,25,40,268,23,23,58,174,26,20,71,337,35*73
+$GPGSV,3,2,10,19,03,029,,04,06,242,28,13,31,223,31,27,19,283,23*71
+$GPGSV,3,3,10,11,06,338,21,03,14,056,23*71
+$GPRMC,222643.000,A,2734.77831,S,15306.02427,E,5.6,136.2,030308,11.2,W,A*3C
+$GPVTG,136.2,T,147.4,M,5.6,N,10.4,K,A*15
+$GPGGA,222644.000,2734.77900,S,15306.02522,E,1,04,2.5,47.4,M,39.2,M,,*74
+$GPGLL,2734.77900,S,15306.02522,E,222644.000,A,A*4D
+$GPGSA,A,3,16,23,20,13,,,,,,,,,5.8,2.5,5.2*39
+$GPGST,222644.000,11.9,32.3,39.9,23.1,35.5,30.7,165.7*69
+$GPGSV,3,1,10,16,48,116,38,25,40,268,23,23,58,174,25,20,71,337,37*7C
+$GPGSV,3,2,10,19,03,029,,04,06,242,28,13,31,223,31,27,19,283,23*71
+$GPGSV,3,3,10,11,06,338,21,03,14,056,26*74
+$GPRMC,222644.000,A,2734.77900,S,15306.02522,E,3.7,127.8,030308,11.2,W,A*31
+$GPVTG,127.8,T,139.0,M,3.7,N,6.9,K,A*2F
+$GPGGA,222645.000,2734.77991,S,15306.02594,E,1,04,3.4,47.4,M,39.2,M,,*70
+$GPGLL,2734.77991,S,15306.02594,E,222645.000,A,A*49
+$GPGSA,A,3,16,23,20,03,,,,,,,,,6.1,3.4,5.0*30
+$GPGST,222645.000,15.3,40.1,15.0,66.6,34.1,19.2,69.1*50
+$GPGSV,3,1,10,16,48,116,33,25,40,268,23,23,58,174,23,20,71,337,35*73
+$GPGSV,3,2,10,19,03,029,,04,06,242,28,13,31,223,31,27,19,283,23*71
+$GPGSV,3,3,10,11,06,338,21,03,14,056,30*73
+$GPRMC,222645.000,A,2734.77991,S,15306.02594,E,3.9,145.4,030308,11.2,W,A*33
+$GPVTG,145.4,T,156.6,M,3.9,N,7.2,K,A*2C
+$GPGGA,222646.000,2734.78074,S,15306.02652,E,1,04,3.4,47.4,M,39.2,M,,*77
+$GPGLL,2734.78074,S,15306.02652,E,222646.000,A,A*4E
+$GPGSA,A,3,16,23,20,03,,,,,,,,,6.1,3.4,5.0*30
+$GPGST,222646.000,14.8,53.5,15.6,78.9,48.1,16.9,76.9*50
+$GPGSV,3,1,11,16,48,116,32,25,40,268,23,23,58,174,26,20,71,337,32*71
+$GPGSV,3,2,11,19,03,029,,04,06,242,28,13,31,223,31,27,19,283,23*70
+$GPGSV,3,3,11,11,06,338,21,08,00,298,,03,14,056,34*4D
+$GPRMC,222646.000,A,2734.78074,S,15306.02652,E,3.5,149.5,030308,11.2,W,A*35
+$GPVTG,149.5,T,160.7,M,3.5,N,6.6,K,A*2C
+$GPGGA,222647.000,2734.78140,S,15306.02704,E,1,04,3.4,47.3,M,39.2,M,,*75
+$GPGLL,2734.78140,S,15306.02704,E,222647.000,A,A*4B
+$GPGSA,A,3,16,23,20,03,,,,,,,,,6.1,3.4,5.0*30
+$GPGST,222647.000,11.7,42.4,13.1,77.7,38.0,14.3,60.9*53
+$GPGSV,3,1,11,16,48,116,37,25,40,268,23,23,58,174,31,20,71,337,36*76
+$GPGSV,3,2,11,19,03,029,,04,06,242,28,13,31,223,31,27,19,283,23*70
+$GPGSV,3,3,11,11,06,338,21,08,00,298,,03,14,056,34*4D
+$GPRMC,222647.000,A,2734.78140,S,15306.02704,E,2.8,145.4,030308,11.2,W,A*31
+$GPVTG,145.4,T,156.6,M,2.8,N,5.1,K,A*2D
+$GPGGA,222648.000,2734.78183,S,15306.02753,E,1,04,3.5,47.2,M,39.2,M,,*77
+$GPGLL,2734.78183,S,15306.02753,E,222648.000,A,A*49
+$GPGSA,A,3,16,23,20,03,,,,,,,,,6.1,3.5,5.0*31
+$GPGST,222648.000,11.3,35.2,16.9,76.3,31.5,16.9,53.8*53
+$GPGSV,3,1,11,16,48,116,35,25,40,267,23,23,58,174,37,20,71,337,35*7E
+$GPGSV,3,2,11,19,03,029,,04,06,242,28,13,31,223,31,27,19,283,23*70
+$GPGSV,3,3,11,11,06,338,21,08,00,298,,03,14,056,35*4C
+$GPRMC,222648.000,A,2734.78183,S,15306.02753,E,2.1,135.8,030308,11.2,W,A*31
+$GPVTG,135.8,T,147.1,M,2.1,N,3.9,K,A*26
+$GPGGA,222649.000,2734.78197,S,15306.02773,E,1,04,3.5,46.8,M,39.2,M,,*7A
+$GPGLL,2734.78197,S,15306.02773,E,222649.000,A,A*4F
+$GPGSA,A,3,16,23,20,03,,,,,,,,,6.1,3.5,5.0*31
+$GPGST,222649.000,13.9,60.8,14.8,84.0,55.3,14.7,79.7*52
+$GPGSV,3,1,11,16,48,116,31,25,40,267,23,23,58,174,36,20,71,337,31*7F
+$GPGSV,3,2,11,19,03,029,,04,06,242,,13,31,223,,27,19,283,23*78
+$GPGSV,3,3,11,11,06,338,21,08,00,298,,03,14,056,29*41
+$GPRMC,222649.000,A,2734.78197,S,15306.02773,E,0.6,148.6,030308,11.2,W,A*36
+$GPVTG,148.6,T,159.8,M,0.6,N,1.2,K,A*28
+$GPGGA,222650.000,2734.78195,S,15306.02785,E,1,04,3.5,46.4,M,39.2,M,,*75
+$GPGLL,2734.78195,S,15306.02785,E,222650.000,A,A*4C
+$GPGSA,A,3,16,23,20,03,,,,,,,,,6.1,3.5,5.0*31
+$GPGST,222650.000,11.4,48.0,12.9,83.3,43.6,12.8,63.8*5B
+$GPGSV,3,1,11,16,48,116,30,25,40,267,23,23,58,174,33,20,71,337,30*7A
+$GPGSV,3,2,11,19,03,029,,04,06,242,,13,31,223,,27,19,283,23*78
+$GPGSV,3,3,11,11,06,338,21,08,00,298,,03,14,056,26*4E
+$GPRMC,222650.000,A,2734.78195,S,15306.02785,E,0.2,6.4,030308,11.2,W,A*38
+$GPVTG,6.4,T,17.6,M,0.2,N,0.3,K,A*10
+$GPGGA,222651.000,2734.78191,S,15306.02798,E,1,04,3.5,45.9,M,39.2,M,,*72
+$GPGLL,2734.78191,S,15306.02798,E,222651.000,A,A*45
+$GPGSA,A,3,16,23,20,03,,,,,,,,,6.1,3.5,5.0*31
+$GPGST,222651.000,9.8,40.0,12.0,82.4,36.3,11.9,53.8*6E
+$GPGSV,3,1,11,16,48,116,28,25,40,267,,23,58,174,35,20,71,337,26*73
+$GPGSV,3,2,11,19,03,029,,04,06,242,,13,31,223,,27,19,283,*79
+$GPGSV,3,3,11,11,06,338,21,08,00,298,,03,14,056,28*40
+$GPRMC,222651.000,A,2734.78191,S,15306.02798,E,0.1,352.6,030308,11.2,W,A*32
+$GPVTG,352.6,T,3.8,M,0.1,N,0.3,K,A*28
+$GPGGA,222652.000,2734.78198,S,15306.02797,E,1,04,3.5,45.9,M,39.2,M,,*77
+$GPGLL,2734.78198,S,15306.02797,E,222652.000,A,A*40
+$GPGSA,A,3,16,23,20,03,,,,,,,,,6.1,3.5,5.0*31
+$GPGST,222652.000,21.7,41.2,15.0,83.8,37.5,14.2,91.6*58
+$GPGSV,3,1,11,16,48,116,24,25,40,267,,23,58,174,23,20,71,337,26*78
+$GPGSV,3,2,11,19,03,029,,04,06,242,,13,31,223,,27,19,283,*79
+$GPGSV,3,3,11,11,06,338,21,08,00,298,,03,14,056,24*4C
+$GPRMC,222652.000,A,2734.78198,S,15306.02797,E,0.2,263.5,030308,11.2,W,A*34
+$GPVTG,263.5,T,274.7,M,0.2,N,0.3,K,A*26
+$GPGGA,222653.000,2734.78226,S,15306.02793,E,1,04,3.5,45.9,M,39.2,M,,*74
+$GPGLL,2734.78226,S,15306.02793,E,222653.000,A,A*43
+$GPGSA,A,3,16,23,20,03,,,,,,,,,6.1,3.5,5.0*31
+$GPGST,222653.000,18.8,36.4,20.7,81.4,33.0,19.3,78.6*5F
+$GPGSV,3,1,11,16,48,116,24,25,40,267,,23,58,174,25,20,71,337,25*7D
+$GPGSV,3,2,11,19,03,029,,04,06,242,,13,31,223,,27,20,283,*73
+$GPGSV,3,3,11,11,06,338,21,08,00,298,,03,14,056,24*4C
+$GPRMC,222653.000,A,2734.78226,S,15306.02793,E,0.8,188.1,030308,11.2,W,A*3F
+$GPVTG,188.1,T,199.3,M,0.8,N,1.5,K,A*2D
+$GPGGA,222654.000,2734.78231,S,15306.02789,E,1,04,3.5,45.9,M,39.2,M,,*7E
+$GPGLL,2734.78231,S,15306.02789,E,222654.000,A,A*49
+$GPGSA,A,3,16,23,20,03,,,,,,,,,6.1,3.5,5.0*31
+$GPGST,222654.000,14.4,23.3,16.5,69.8,20.7,16.0,57.9*5D
+$GPGSV,3,1,11,16,48,116,34,25,40,267,,23,58,174,34,20,71,337,31*79
+$GPGSV,3,2,11,19,03,029,,04,06,242,,13,31,223,,27,20,283,*73
+$GPGSV,3,3,11,11,06,338,21,08,00,298,,03,14,056,31*48
+$GPRMC,222654.000,A,2734.78231,S,15306.02789,E,0.1,145.6,030308,11.2,W,A*3A
+$GPVTG,145.6,T,156.8,M,0.1,N,0.2,K,A*2C
+$GPGGA,222655.000,2734.78251,S,15306.02806,E,1,04,3.5,45.8,M,39.2,M,,*70
+$GPGLL,2734.78251,S,15306.02806,E,222655.000,A,A*46
+$GPGSA,A,3,16,23,20,03,,,,,,,,,6.1,3.5,5.0*31
+$GPGST,222655.000,12.0,28.1,14.0,78.7,25.3,13.6,52.5*54
+$GPGSV,3,1,11,16,48,116,40,25,40,267,,23,58,174,38,20,71,337,35*72
+$GPGSV,3,2,11,19,03,029,,04,06,242,,13,31,223,,27,20,283,*73
+$GPGSV,3,3,11,11,06,338,21,08,00,298,,03,14,056,36*4F
+$GPRMC,222655.000,A,2734.78251,S,15306.02806,E,0.7,135.5,030308,11.2,W,A*37
+$GPVTG,135.5,T,146.8,M,0.7,N,1.2,K,A*2E
+$GPGGA,222656.000,2734.78273,S,15306.02823,E,1,04,3.5,45.7,M,39.2,M,,*7B
+$GPGLL,2734.78273,S,15306.02823,E,222656.000,A,A*42
+$GPGSA,A,3,16,23,20,03,,,,,,,,,6.1,3.5,5.0*31
+$GPGST,222656.000,9.9,24.8,12.2,76.6,22.2,12.0,44.0*69
+$GPGSV,3,1,11,16,48,116,38,25,40,267,,23,58,174,36,20,71,337,30*76
+$GPGSV,3,2,11,19,03,029,,04,06,242,,13,31,223,,27,20,283,*73
+$GPGSV,3,3,11,11,06,338,21,08,00,298,,03,14,056,35*4C
+$GPRMC,222656.000,A,2734.78273,S,15306.02823,E,0.5,135.5,030308,11.2,W,A*31
+$GPVTG,135.5,T,146.7,M,0.5,N,1.0,K,A*21
+$GPGGA,222657.000,2734.78312,S,15306.02858,E,1,04,3.5,45.5,M,39.2,M,,*72
+$GPGLL,2734.78312,S,15306.02858,E,222657.000,A,A*49
+$GPGSA,A,3,16,23,20,03,,,,,,,,,6.1,3.5,5.0*31
+$GPGST,222657.000,8.4,22.4,10.9,74.9,19.9,11.0,38.1*60
+$GPGSV,3,1,11,16,48,116,37,25,40,267,,23,58,174,36,20,71,337,30*79
+$GPGSV,3,2,11,19,03,029,,04,06,242,,13,31,223,,27,20,283,*73
+$GPGSV,3,3,11,11,06,338,21,08,00,298,,03,14,056,34*4D
+$GPRMC,222657.000,A,2734.78312,S,15306.02858,E,1.3,137.6,030308,11.2,W,A*3C
+$GPVTG,137.6,T,148.8,M,1.3,N,2.4,K,A*21
+$GPGGA,222658.000,2734.78370,S,15306.02910,E,1,04,3.5,45.4,M,39.2,M,,*75
+$GPGLL,2734.78370,S,15306.02910,E,222658.000,A,A*4F
+$GPGSA,A,3,16,23,20,03,,,,,,,,,6.1,3.5,5.0*31
+$GPGST,222658.000,11.5,25.4,19.7,45.8,20.9,20.7,46.1*53
+$GPGSV,3,1,11,16,48,116,34,25,40,267,18,23,58,174,36,20,71,337,32*71
+$GPGSV,3,2,11,19,03,029,,04,06,242,,13,31,223,,27,20,283,*73
+$GPGSV,3,3,11,11,06,338,,08,00,298,,03,14,056,32*48
+$GPRMC,222658.000,A,2734.78370,S,15306.02910,E,2.7,141.8,030308,11.2,W,A*32
+$GPVTG,141.8,T,153.0,M,2.7,N,5.0,K,A*28
+$GPGGA,222659.000,2734.78463,S,15306.02956,E,1,04,3.5,45.4,M,39.2,M,,*73
+$GPGLL,2734.78463,S,15306.02956,E,222659.000,A,A*49
+$GPGSA,A,3,16,23,20,03,,,,,,,,,6.1,3.5,5.0*31
+$GPGST,222659.000,10.9,34.8,17.8,79.2,31.4,17.1,52.2*5E
+$GPGSV,3,1,11,16,48,116,32,25,40,267,18,23,58,174,37,20,71,337,32*76
+$GPGSV,3,2,11,19,03,029,,04,06,242,,13,31,223,,27,20,283,*73
+$GPGSV,3,3,11,11,06,338,,08,00,298,,03,14,056,26*4D
+$GPRMC,222659.000,A,2734.78463,S,15306.02956,E,3.6,157.2,030308,11.2,W,A*39
+$GPVTG,157.2,T,168.4,M,3.6,N,6.7,K,A*2D
+$GPGGA,222700.000,2734.78553,S,15306.02974,E,1,04,3.5,45.3,M,39.2,M,,*7B
+$GPGLL,2734.78553,S,15306.02974,E,222700.000,A,A*46
+$GPGSA,A,3,16,23,20,03,,,,,,,,,6.1,3.5,5.0*31
+$GPGST,222700.000,13.4,30.5,15.4,80.9,27.6,14.6,58.2*5C
+$GPGSV,3,1,11,16,48,116,38,25,40,267,18,23,58,174,42,20,71,337,34*78
+$GPGSV,3,2,11,19,03,029,,04,06,242,,13,31,223,,27,20,283,*73
+$GPGSV,3,3,11,11,06,338,,08,00,298,,03,14,056,30*4A
+$GPRMC,222700.000,A,2734.78553,S,15306.02974,E,3.1,171.1,030308,11.2,W,A*36
+$GPVTG,171.1,T,182.3,M,3.1,N,5.7,K,A*2D
+$GPGGA,222701.000,2734.78678,S,15306.02887,E,1,05,1.6,45.4,M,39.2,M,,*7A
+$GPGLL,2734.78678,S,15306.02887,E,222701.000,A,A*40
+$GPGSA,A,3,16,23,20,13,03,,,,,,,,2.5,1.6,1.9*3F
+$GPGST,222701.000,18.6,22.3,33.4,25.2,29.0,22.6,46.2*53
+$GPGSV,3,1,11,16,48,116,30,25,40,267,18,23,58,174,33,20,71,337,27*74
+$GPGSV,3,2,11,19,03,029,,04,06,242,,13,31,223,20,27,20,283,*71
+$GPGSV,3,3,11,11,06,338,,08,00,298,,03,14,056,27*4C
+$GPRMC,222701.000,A,2734.78678,S,15306.02887,E,5.1,212.6,030308,11.2,W,A*37
+$GPVTG,212.6,T,223.8,M,5.1,N,9.5,K,A*27
+$GPGGA,222702.000,2734.78726,S,15306.02769,E,1,04,3.5,45.3,M,39.2,M,,*7B
+$GPGLL,2734.78726,S,15306.02769,E,222702.000,A,A*46
+$GPGSA,A,3,16,23,20,03,,,,,,,,,6.1,3.5,5.0*31
+$GPGST,222702.000,14.7,49.5,20.8,84.3,45.1,19.5,72.8*5F
+$GPGSV,3,1,11,16,48,116,36,25,40,267,18,23,58,174,40,20,71,337,31*71
+$GPGSV,3,2,11,19,03,029,,04,06,242,,13,31,223,20,27,20,283,*71
+$GPGSV,3,3,11,11,06,338,,08,00,298,,03,14,056,28*43
+$GPRMC,222702.000,A,2734.78726,S,15306.02769,E,4.2,246.4,030308,11.2,W,A*30
+$GPVTG,246.4,T,257.6,M,4.2,N,7.7,K,A*27
+$GPGGA,222703.000,2734.78745,S,15306.02617,E,1,05,1.6,45.3,M,39.2,M,,*77
+$GPGLL,2734.78745,S,15306.02617,E,222703.000,A,A*4A
+$GPGSA,A,3,16,23,20,13,03,,,,,,,,2.5,1.6,1.9*3F
+$GPGST,222703.000,12.3,16.0,23.0,21.5,20.3,15.6,33.1*53
+$GPGSV,3,1,11,16,48,116,31,25,40,267,18,23,58,174,29,20,70,337,23*7B
+$GPGSV,3,2,11,19,03,029,,04,06,242,,13,31,223,22,27,20,283,*73
+$GPGSV,3,3,11,11,06,338,,08,00,298,,03,14,056,27*4C
+$GPRMC,222703.000,A,2734.78745,S,15306.02617,E,4.9,265.5,030308,11.2,W,A*37
+$GPVTG,265.5,T,276.7,M,4.9,N,9.1,K,A*26
+$GPGGA,222704.000,2734.78730,S,15306.02555,E,1,04,3.5,45.3,M,39.2,M,,*77
+$GPGLL,2734.78730,S,15306.02555,E,222704.000,A,A*4A
+$GPGSA,A,3,16,23,20,03,,,,,,,,,6.1,3.5,5.1*30
+$GPGST,222704.000,9.5,34.0,22.1,80.5,30.8,20.6,55.7*69
+$GPGSV,3,1,11,16,48,116,31,25,40,267,18,23,58,174,29,20,70,337,23*7B
+$GPGSV,3,2,11,19,03,029,,04,06,242,,13,31,223,22,27,20,283,*73
+$GPGSV,3,3,11,11,06,338,,08,00,298,,03,14,056,31*4B
+$GPRMC,222704.000,A,2734.78730,S,15306.02555,E,2.1,286.5,030308,11.2,W,A*34
+$GPVTG,286.5,T,297.7,M,2.1,N,3.9,K,A*28
+$GPGGA,222705.000,2734.78698,S,15306.02452,E,1,04,3.5,45.3,M,39.2,M,,*73
+$GPGLL,2734.78698,S,15306.02452,E,222705.000,A,A*4E
+$GPGSA,A,3,16,23,20,03,,,,,,,,,6.1,3.5,5.1*30
+$GPGST,222705.000,93.8,65.1,31.9,84.0,59.3,29.7,94.1*5F
+$GPGSV,3,1,11,16,48,116,29,25,40,267,18,23,58,174,29,20,70,337,23*72
+$GPGSV,3,2,11,19,03,029,,04,06,242,,13,31,223,22,27,20,283,*73
+$GPGSV,3,3,11,11,06,338,,08,00,298,,03,14,056,30*4A
+$GPRMC,222705.000,A,2734.78698,S,15306.02452,E,3.6,290.3,030308,11.2,W,A*37
+$GPVTG,290.3,T,301.5,M,3.6,N,6.8,K,A*27
+$GPGGA,222706.000,2734.78686,S,15306.02339,E,1,04,3.5,45.3,M,39.2,M,,*75
+$GPGLL,2734.78686,S,15306.02339,E,222706.000,A,A*48
+$GPGSA,A,3,16,23,20,03,,,,,,,,,6.1,3.5,5.1*30
+$GPGST,222706.000,114.3,62.0,48.3,70.3,55.4,45.7,116.3*5B
+$GPGSV,3,1,11,16,48,116,24,25,40,267,18,23,58,174,29,20,70,337,23*7F
+$GPGSV,3,2,11,19,03,029,,04,06,242,,13,31,223,22,27,20,283,*73
+$GPGSV,3,3,11,11,06,338,,08,00,298,,03,14,056,24*4F
+$GPRMC,222706.000,A,2734.78686,S,15306.02339,E,3.4,277.7,030308,11.2,W,A*3E
+$GPVTG,277.7,T,288.9,M,3.4,N,6.3,K,A*2F
+$GPGGA,222707.000,2734.78679,S,15306.02251,E,1,04,3.5,45.3,M,39.2,M,,*7B
+$GPGLL,2734.78679,S,15306.02251,E,222707.000,A,A*46
+$GPGSA,A,3,16,23,20,03,,,,,,,,,6.1,3.5,5.1*30
+$GPGST,222707.000,128.0,90.0,67.0,53.0,75.4,69.6,158.6*55
+$GPGSV,3,1,11,16,48,116,24,25,40,267,18,23,58,174,29,20,70,337,23*7F
+$GPGSV,3,2,11,19,03,029,,04,06,242,,13,31,223,22,27,20,283,*73
+$GPGSV,3,3,11,11,06,338,,08,00,298,,03,14,056,24*4F
+$GPRMC,222707.000,A,2734.78679,S,15306.02251,E,,,030308,,,A*79
+$GPVTG,,T,,M,,N,,K,N*2C
+$GPGGA,222708.000,2734.78673,S,15306.02181,E,1,05,1.6,45.3,M,39.2,M,,*70
+$GPGLL,2734.78673,S,15306.02181,E,222708.000,A,A*4D
+$GPGSA,A,3,16,23,20,13,03,,,,,,,,2.5,1.6,1.9*3F
+$GPGST,222708.000,66.8,93.0,70.5,62.6,69.3,81.1,141.7*6F
+$GPGSV,3,1,11,16,48,116,24,25,40,267,,23,58,174,29,20,70,337,23*76
+$GPGSV,3,2,11,19,03,029,,04,06,242,,13,31,222,22,27,20,283,*72
+$GPGSV,3,3,11,11,06,338,,08,00,298,,03,14,056,24*4F
+$GPRMC,222708.000,A,2734.78673,S,15306.02181,E,,,030308,,,A*72
+$GPVTG,,T,,M,,N,,K,N*2C
+$GPGGA,222709.000,2734.78668,S,15306.02124,E,1,05,1.6,45.3,M,39.2,M,,*74
+$GPGLL,2734.78668,S,15306.02124,E,222709.000,A,A*49
+$GPGSA,A,2,16,23,20,13,03,,,,,,,,1.8,1.6,0.9*31
+$GPGST,222709.000,89.5,61.2,117.7,37.9,91.7,79.5,4.3*54
+$GPGSV,3,1,11,16,48,116,24,25,40,267,,23,58,174,29,20,70,337,23*76
+$GPGSV,3,2,11,19,03,029,,04,06,242,,13,31,222,22,27,20,283,*72
+$GPGSV,3,3,11,11,06,338,,08,00,298,,03,14,056,24*4F
+$GPRMC,222709.000,A,2734.78668,S,15306.02124,E,,,030308,,,A*76
+$GPVTG,,T,,M,,N,,K,N*2C
+$GPGGA,222710.000,2734.78664,S,15306.02080,E,1,05,1.6,45.3,M,39.2,M,,*7F
+$GPGLL,2734.78664,S,15306.02080,E,222710.000,A,A*42
+$GPGSA,A,2,16,23,20,13,03,,,,,,,,1.8,1.6,0.9*31
+$GPGST,222710.000,117.0,82.3,157.6,39.0,121.7,107.9,3.9*62
+$GPGSV,3,1,11,16,48,116,24,25,40,267,,23,58,174,29,20,70,337,23*76
+$GPGSV,3,2,11,19,03,029,,04,06,242,,13,31,222,22,27,20,283,*72
+$GPGSV,3,3,11,11,06,338,,08,00,298,,03,14,056,24*4F
+$GPRMC,222710.000,A,2734.78664,S,15306.02080,E,,,030308,,,A*7D
+$GPVTG,,T,,M,,N,,K,N*2C
+$GPGGA,222711.000,2734.78660,S,15306.02044,E,1,05,1.6,45.3,M,39.2,M,,*72
+$GPGLL,2734.78660,S,15306.02044,E,222711.000,A,A*4F
+$GPGSA,A,2,16,23,20,13,03,,,,,,,,1.8,1.6,0.9*31
+$GPGST,222711.000,128.0,107.6,205.2,40.2,156.7,142.6,3.5*58
+$GPGSV,3,1,11,16,48,116,24,25,40,267,,23,58,174,29,20,70,337,23*76
+$GPGSV,3,2,11,19,03,029,,04,06,242,,13,31,222,22,27,20,283,*72
+$GPGSV,3,3,11,11,06,338,,08,00,298,,03,14,056,24*4F
+$GPRMC,222711.000,A,2734.78660,S,15306.02044,E,,,030308,,,A*70
+$GPVTG,,T,,M,,N,,K,N*2C
+$GPGGA,222712.000,2734.78658,S,15306.02015,E,1,05,1.6,45.3,M,39.2,M,,*7E
+$GPGLL,2734.78658,S,15306.02015,E,222712.000,A,A*43
+$GPGSA,A,2,16,23,20,13,03,,,,,,,,1.8,1.6,0.9*31
+$GPGST,222712.000,128.0,137.2,261.1,41.4,197.4,183.9,3.2*51
+$GPGSV,3,1,11,16,48,116,24,25,40,267,,23,58,173,29,20,70,337,23*71
+$GPGSV,3,2,11,19,03,029,,04,06,242,,13,31,222,22,27,20,283,*72
+$GPGSV,3,3,11,11,06,338,,08,00,298,,03,14,056,24*4F
+$GPRMC,222712.000,A,2734.78658,S,15306.02015,E,,,030308,,,A*7C \ No newline at end of file
diff --git a/examples/positioning/flickr/qmllocationflickr.cpp b/examples/positioning/flickr/qmllocationflickr.cpp
new file mode 100644
index 00000000..8a3a29a3
--- /dev/null
+++ b/examples/positioning/flickr/qmllocationflickr.cpp
@@ -0,0 +1,58 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the examples of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
+** of its contributors may be used to endorse or promote products derived
+** from this software without specific prior written permission.
+**
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include <QGuiApplication>
+#include <QtQuick/QQuickView>
+#include <QtQml/QQmlEngine>
+
+int main(int argc, char *argv[])
+{
+ QGuiApplication application(argc, argv);
+ const QString mainQmlApp = QLatin1String("qrc:///flickr.qml");
+ QQuickView view;
+ view.setSource(QUrl(mainQmlApp));
+ view.setResizeMode(QQuickView::SizeRootObjectToView);
+ // Qt.quit() called in embedded .qml by default only emits
+ // quit() signal, so do this (optionally use Qt.exit()).
+ QObject::connect(view.engine(), SIGNAL(quit()), qApp, SLOT(quit()));
+ view.setGeometry(QRect(100, 100, 360, 640));
+ view.show();
+ return application.exec();
+}
diff --git a/examples/positioning/logfilepositionsource/clientapplication.cpp b/examples/positioning/logfilepositionsource/clientapplication.cpp
new file mode 100644
index 00000000..6e4025d5
--- /dev/null
+++ b/examples/positioning/logfilepositionsource/clientapplication.cpp
@@ -0,0 +1,62 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the examples of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
+** of its contributors may be used to endorse or promote products derived
+** from this software without specific prior written permission.
+**
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include <QtCore>
+#include <QTextEdit>
+
+#include "logfilepositionsource.h"
+#include "clientapplication.h"
+
+ClientApplication::ClientApplication(QWidget *parent)
+ : QMainWindow(parent)
+{
+ textEdit = new QTextEdit;
+ setCentralWidget(textEdit);
+
+ LogFilePositionSource *source = new LogFilePositionSource(this);
+ connect(source, SIGNAL(positionUpdated(QGeoPositionInfo)),
+ this, SLOT(positionUpdated(QGeoPositionInfo)));
+
+ source->startUpdates();
+}
+
+void ClientApplication::positionUpdated(const QGeoPositionInfo &info)
+{
+ textEdit->append(QString("Position updated: Date/time = %1, Coordinate = %2").arg(info.timestamp().toString()).arg(info.coordinate().toString()));
+}
diff --git a/examples/positioning/logfilepositionsource/clientapplication.h b/examples/positioning/logfilepositionsource/clientapplication.h
new file mode 100644
index 00000000..13a33ec3
--- /dev/null
+++ b/examples/positioning/logfilepositionsource/clientapplication.h
@@ -0,0 +1,64 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the examples of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
+** of its contributors may be used to endorse or promote products derived
+** from this software without specific prior written permission.
+**
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#ifndef CLIENTAPPLICATION_H
+#define CLIENTAPPLICATION_H
+
+#include <QMainWindow>
+
+QT_BEGIN_NAMESPACE
+class QGeoPositionInfo;
+class QTextEdit;
+QT_END_NAMESPACE
+
+class ClientApplication : public QMainWindow
+{
+ Q_OBJECT
+public:
+ ClientApplication(QWidget *parent = 0);
+
+private slots:
+ void positionUpdated(const QGeoPositionInfo &info);
+
+private:
+ QTextEdit *textEdit;
+};
+
+
+#endif
diff --git a/examples/positioning/logfilepositionsource/logfilepositionsource.cpp b/examples/positioning/logfilepositionsource/logfilepositionsource.cpp
new file mode 100644
index 00000000..0f3c45dd
--- /dev/null
+++ b/examples/positioning/logfilepositionsource/logfilepositionsource.cpp
@@ -0,0 +1,123 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the examples of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
+** of its contributors may be used to endorse or promote products derived
+** from this software without specific prior written permission.
+**
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include <QtCore>
+
+#include "logfilepositionsource.h"
+
+LogFilePositionSource::LogFilePositionSource(QObject *parent)
+ : QGeoPositionInfoSource(parent),
+ logFile(new QFile(this)),
+ timer(new QTimer(this))
+{
+ connect(timer, SIGNAL(timeout()), this, SLOT(readNextPosition()));
+
+ logFile->setFileName(QCoreApplication::applicationDirPath()
+ + QDir::separator() + "simplelog.txt");
+ if (!logFile->open(QIODevice::ReadOnly))
+ qWarning() << "Error: cannot open source file" << logFile->fileName();
+}
+
+QGeoPositionInfo LogFilePositionSource::lastKnownPosition(bool /*fromSatellitePositioningMethodsOnly*/) const
+{
+ return lastPosition;
+}
+
+LogFilePositionSource::PositioningMethods LogFilePositionSource::supportedPositioningMethods() const
+{
+ return AllPositioningMethods;
+}
+
+int LogFilePositionSource::minimumUpdateInterval() const
+{
+ return 500;
+}
+
+void LogFilePositionSource::startUpdates()
+{
+ int interval = updateInterval();
+ if (interval < minimumUpdateInterval())
+ interval = minimumUpdateInterval();
+
+ timer->start(interval);
+}
+
+void LogFilePositionSource::stopUpdates()
+{
+ timer->stop();
+}
+
+void LogFilePositionSource::requestUpdate(int /*timeout*/)
+{
+ // For simplicity, ignore timeout - assume that if data is not available
+ // now, no data will be added to the file later
+ if (logFile->canReadLine())
+ readNextPosition();
+ else
+ emit updateTimeout();
+}
+
+void LogFilePositionSource::readNextPosition()
+{
+ QByteArray line = logFile->readLine().trimmed();
+ if (!line.isEmpty()) {
+ QList<QByteArray> data = line.split(' ');
+ double latitude;
+ double longitude;
+ bool hasLatitude = false;
+ bool hasLongitude = false;
+ QDateTime timestamp = QDateTime::fromString(QString(data.value(0)), Qt::ISODate);
+ latitude = data.value(1).toDouble(&hasLatitude);
+ longitude = data.value(2).toDouble(&hasLongitude);
+
+ if (hasLatitude && hasLongitude && timestamp.isValid()) {
+ QGeoCoordinate coordinate(latitude, longitude);
+ QGeoPositionInfo info(coordinate, timestamp);
+ if (info.isValid()) {
+ lastPosition = info;
+ emit positionUpdated(info);
+ }
+ }
+ }
+}
+
+QGeoPositionInfoSource::Error LogFilePositionSource::error() const
+{
+ return QGeoPositionInfoSource::NoError;
+}
diff --git a/examples/positioning/logfilepositionsource/logfilepositionsource.h b/examples/positioning/logfilepositionsource/logfilepositionsource.h
new file mode 100644
index 00000000..35a0a1dd
--- /dev/null
+++ b/examples/positioning/logfilepositionsource/logfilepositionsource.h
@@ -0,0 +1,77 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the examples of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
+** of its contributors may be used to endorse or promote products derived
+** from this software without specific prior written permission.
+**
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#ifndef LOGFILEPOSITIONSOURCE_H
+#define LOGFILEPOSITIONSOURCE_H
+
+#include <qgeopositioninfosource.h>
+
+QT_BEGIN_NAMESPACE
+class QFile;
+class QTimer;
+QT_END_NAMESPACE
+
+class LogFilePositionSource : public QGeoPositionInfoSource
+{
+ Q_OBJECT
+public:
+ LogFilePositionSource(QObject *parent = 0);
+
+ QGeoPositionInfo lastKnownPosition(bool fromSatellitePositioningMethodsOnly = false) const;
+
+ PositioningMethods supportedPositioningMethods() const;
+ int minimumUpdateInterval() const;
+ Error error() const;
+
+public slots:
+ virtual void startUpdates();
+ virtual void stopUpdates();
+
+ virtual void requestUpdate(int timeout = 5000);
+
+private slots:
+ void readNextPosition();
+
+private:
+ QFile *logFile;
+ QTimer *timer;
+ QGeoPositionInfo lastPosition;
+};
+
+#endif
diff --git a/examples/positioning/logfilepositionsource/logfilepositionsource.pro b/examples/positioning/logfilepositionsource/logfilepositionsource.pro
new file mode 100644
index 00000000..bd00a169
--- /dev/null
+++ b/examples/positioning/logfilepositionsource/logfilepositionsource.pro
@@ -0,0 +1,16 @@
+TEMPLATE = app
+TARGET = logfilepositionsource
+QT = positioning core widgets
+
+
+HEADERS = logfilepositionsource.h \
+ clientapplication.h
+SOURCES = logfilepositionsource.cpp \
+ clientapplication.cpp \
+ main.cpp
+
+target.path = $$[QT_INSTALL_EXAMPLES]/qtpositioning/logfilepositionsource
+sources.files = $$SOURCES $$HEADERS *.pro simplelog.txt
+sources.path = $$[QT_INSTALL_EXAMPLES]/qtpositioning/logfilepositionsource
+
+INSTALLS += target sources
diff --git a/examples/positioning/logfilepositionsource/main.cpp b/examples/positioning/logfilepositionsource/main.cpp
new file mode 100644
index 00000000..10e68499
--- /dev/null
+++ b/examples/positioning/logfilepositionsource/main.cpp
@@ -0,0 +1,52 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the examples of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
+** of its contributors may be used to endorse or promote products derived
+** from this software without specific prior written permission.
+**
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include <QApplication>
+
+#include "clientapplication.h"
+
+int main(int argc, char *argv[])
+{
+ QApplication app(argc, argv);
+
+ ClientApplication client;
+ client.show();
+
+ return app.exec();
+}
diff --git a/examples/positioning/logfilepositionsource/simplelog.txt b/examples/positioning/logfilepositionsource/simplelog.txt
new file mode 100644
index 00000000..d016b2a8
--- /dev/null
+++ b/examples/positioning/logfilepositionsource/simplelog.txt
@@ -0,0 +1,156 @@
+2009-08-24T22:24:37 -27.572321 153.090718
+2009-08-24T22:24:38 -27.572470 153.090783
+2009-08-24T22:24:39 -27.572616 153.090845
+2009-08-24T22:24:40 -27.572763 153.090908
+2009-08-24T22:24:41 -27.572914 153.090971
+2009-08-24T22:24:42 -27.573068 153.091036
+2009-08-24T22:24:43 -27.573224 153.091102
+2009-08-24T22:24:44 -27.573383 153.091167
+2009-08-24T22:24:45 -27.573541 153.091232
+2009-08-24T22:24:46 -27.573700 153.091298
+2009-08-24T22:24:47 -27.573860 153.091366
+2009-08-24T22:24:48 -27.574019 153.091435
+2009-08-24T22:24:49 -27.574178 153.091507
+2009-08-24T22:24:50 -27.574340 153.091581
+2009-08-24T22:24:51 -27.574506 153.091654
+2009-08-24T22:24:52 -27.574670 153.091729
+2009-08-24T22:24:53 -27.574836 153.091800
+2009-08-24T22:24:54 -27.575001 153.091870
+2009-08-24T22:24:55 -27.575165 153.091940
+2009-08-24T22:24:56 -27.575327 153.092010
+2009-08-24T22:24:57 -27.575485 153.092078
+2009-08-24T22:24:58 -27.575641 153.092144
+2009-08-24T22:24:59 -27.575795 153.092218
+2009-08-24T22:25:00 -27.575942 153.092308
+2009-08-24T22:25:01 -27.576082 153.092415
+2009-08-24T22:25:02 -27.576223 153.092530
+2009-08-24T22:25:03 -27.576364 153.092648
+2009-08-24T22:25:04 -27.576505 153.092763
+2009-08-24T22:25:05 -27.576646 153.092879
+2009-08-24T22:25:06 -27.576784 153.092990
+2009-08-24T22:25:07 -27.576918 153.093099
+2009-08-24T22:25:08 -27.577046 153.093204
+2009-08-24T22:25:09 -27.577168 153.093303
+2009-08-24T22:25:10 -27.577284 153.093396
+2009-08-24T22:25:11 -27.577396 153.093484
+2009-08-24T22:25:12 -27.577499 153.093568
+2009-08-24T22:25:13 -27.577595 153.093647
+2009-08-24T22:25:14 -27.577692 153.093727
+2009-08-24T22:25:15 -27.577793 153.093810
+2009-08-24T22:25:16 -27.577897 153.093896
+2009-08-24T22:25:17 -27.578006 153.093984
+2009-08-24T22:25:18 -27.578120 153.094074
+2009-08-24T22:25:19 -27.578237 153.094168
+2009-08-24T22:25:20 -27.578360 153.094267
+2009-08-24T22:25:21 -27.578487 153.094370
+2009-08-24T22:25:22 -27.578617 153.094474
+2009-08-24T22:25:23 -27.578748 153.094581
+2009-08-24T22:25:24 -27.578880 153.094688
+2009-08-24T22:25:25 -27.579014 153.094796
+2009-08-24T22:25:26 -27.579149 153.094905
+2009-08-24T22:25:27 -27.579285 153.095012
+2009-08-24T22:25:28 -27.579420 153.095121
+2009-08-24T22:25:29 -27.579552 153.095231
+2009-08-24T22:25:30 -27.579684 153.095340
+2009-08-24T22:25:31 -27.579820 153.095449
+2009-08-24T22:25:32 -27.579956 153.095558
+2009-08-24T22:25:33 -27.580095 153.095667
+2009-08-24T22:25:34 -27.580240 153.095776
+2009-08-24T22:25:35 -27.580392 153.095885
+2009-08-24T22:25:36 -27.580536 153.095995
+2009-08-24T22:25:37 -27.580679 153.096109
+2009-08-24T22:25:38 -27.580824 153.096226
+2009-08-24T22:25:39 -27.580965 153.096337
+2009-08-24T22:25:40 -27.581101 153.096441
+2009-08-24T22:25:41 -27.581237 153.096537
+2009-08-24T22:25:42 -27.581356 153.096628
+2009-08-24T22:25:43 -27.581466 153.096714
+2009-08-24T22:25:44 -27.581555 153.096795
+2009-08-24T22:25:45 -27.581606 153.096847
+2009-08-24T22:25:46 -27.581539 153.096855
+2009-08-24T22:25:47 -27.581572 153.096873
+2009-08-24T22:25:48 -27.581579 153.096875
+2009-08-24T22:25:49 -27.581582 153.096878
+2009-08-24T22:25:50 -27.581588 153.096880
+2009-08-24T22:25:51 -27.581588 153.096880
+2009-08-24T22:25:52 -27.581592 153.096881
+2009-08-24T22:25:53 -27.581596 153.096882
+2009-08-24T22:25:54 -27.581599 153.096883
+2009-08-24T22:25:55 -27.581601 153.096883
+2009-08-24T22:25:56 -27.581602 153.096883
+2009-08-24T22:25:57 -27.581606 153.096890
+2009-08-24T22:25:58 -27.581606 153.096919
+2009-08-24T22:25:59 -27.581605 153.096985
+2009-08-24T22:26:00 -27.581573 153.097060
+2009-08-24T22:26:01 -27.581532 153.097142
+2009-08-24T22:26:02 -27.581484 153.097227
+2009-08-24T22:26:03 -27.581426 153.097324
+2009-08-24T22:26:04 -27.581373 153.097424
+2009-08-24T22:26:05 -27.581320 153.097530
+2009-08-24T22:26:06 -27.581265 153.097641
+2009-08-24T22:26:07 -27.581203 153.097757
+2009-08-24T22:26:08 -27.581144 153.097875
+2009-08-24T22:26:09 -27.581093 153.097995
+2009-08-24T22:26:10 -27.581042 153.098116
+2009-08-24T22:26:11 -27.580987 153.098231
+2009-08-24T22:26:12 -27.580919 153.098334
+2009-08-24T22:26:13 -27.580841 153.098428
+2009-08-24T22:26:14 -27.580754 153.098511
+2009-08-24T22:26:15 -27.580667 153.098591
+2009-08-24T22:26:16 -27.580581 153.098671
+2009-08-24T22:26:17 -27.580492 153.098751
+2009-08-24T22:26:18 -27.580401 153.098832
+2009-08-24T22:26:19 -27.580311 153.098914
+2009-08-24T22:26:20 -27.580224 153.098996
+2009-08-24T22:26:21 -27.580140 153.099078
+2009-08-24T22:26:22 -27.580059 153.099159
+2009-08-24T22:26:23 -27.579980 153.099245
+2009-08-24T22:26:24 -27.579900 153.099336
+2009-08-24T22:26:25 -27.579826 153.099433
+2009-08-24T22:26:26 -27.579753 153.099529
+2009-08-24T22:26:27 -27.579680 153.099623
+2009-08-24T22:26:28 -27.579606 153.099716
+2009-08-24T22:26:29 -27.579538 153.099808
+2009-08-24T22:26:30 -27.579477 153.099893
+2009-08-24T22:26:31 -27.579416 153.099968
+2009-08-24T22:26:32 -27.579393 153.100027
+2009-08-24T22:26:33 -27.579376 153.100092
+2009-08-24T22:26:34 -27.579384 153.100142
+2009-08-24T22:26:35 -27.579403 153.100181
+2009-08-24T22:26:36 -27.579429 153.100210
+2009-08-24T22:26:37 -27.579460 153.100237
+2009-08-24T22:26:38 -27.579493 153.100265
+2009-08-24T22:26:39 -27.579518 153.100291
+2009-08-24T22:26:40 -27.579536 153.100336
+2009-08-24T22:26:41 -27.579591 153.100358
+2009-08-24T22:26:42 -27.579618 153.100383
+2009-08-24T22:26:43 -27.579639 153.100404
+2009-08-24T22:26:44 -27.579650 153.100420
+2009-08-24T22:26:45 -27.579665 153.100432
+2009-08-24T22:26:46 -27.579679 153.100442
+2009-08-24T22:26:47 -27.579690 153.100451
+2009-08-24T22:26:48 -27.579697 153.100459
+2009-08-24T22:26:49 -27.579700 153.100462
+2009-08-24T22:26:50 -27.579699 153.100464
+2009-08-24T22:26:51 -27.579699 153.100466
+2009-08-24T22:26:52 -27.579700 153.100466
+2009-08-24T22:26:53 -27.579704 153.100466
+2009-08-24T22:26:54 -27.579705 153.100465
+2009-08-24T22:26:55 -27.579708 153.100468
+2009-08-24T22:26:56 -27.579712 153.100471
+2009-08-24T22:26:57 -27.579719 153.100476
+2009-08-24T22:26:58 -27.579728 153.100485
+2009-08-24T22:26:59 -27.579744 153.100493
+2009-08-24T22:27:00 -27.579759 153.100496
+2009-08-24T22:27:01 -27.579780 153.100481
+2009-08-24T22:27:02 -27.579788 153.100462
+2009-08-24T22:27:03 -27.579791 153.100436
+2009-08-24T22:27:04 -27.579788 153.100426
+2009-08-24T22:27:05 -27.579783 153.100409
+2009-08-24T22:27:06 -27.579781 153.100390
+2009-08-24T22:27:07 -27.579780 153.100375
+2009-08-24T22:27:08 -27.579779 153.100364
+2009-08-24T22:27:09 -27.579778 153.100354
+2009-08-24T22:27:10 -27.579777 153.100347
+2009-08-24T22:27:11 -27.579777 153.100341
+2009-08-24T22:27:12 -27.579776 153.100336
diff --git a/examples/positioning/positioning.pro b/examples/positioning/positioning.pro
new file mode 100644
index 00000000..468ff9eb
--- /dev/null
+++ b/examples/positioning/positioning.pro
@@ -0,0 +1,4 @@
+TEMPLATE = subdirs
+
+qtHaveModule(widgets): SUBDIRS += logfilepositionsource
+qtHaveModule(quick): SUBDIRS += flickr weatherinfo
diff --git a/examples/positioning/weatherinfo/appmodel.cpp b/examples/positioning/weatherinfo/appmodel.cpp
new file mode 100644
index 00000000..d0a37265
--- /dev/null
+++ b/examples/positioning/weatherinfo/appmodel.cpp
@@ -0,0 +1,497 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the examples of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
+** of its contributors may be used to endorse or promote products derived
+** from this software without specific prior written permission.
+**
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "appmodel.h"
+
+#include <qgeopositioninfosource.h>
+#include <qgeosatelliteinfosource.h>
+#include <qnmeapositioninfosource.h>
+#include <qgeopositioninfo.h>
+#include <qnetworkconfigmanager.h>
+#include <qnetworksession.h>
+
+#include <QSignalMapper>
+#include <QJsonDocument>
+#include <QJsonObject>
+#include <QJsonArray>
+#include <QStringList>
+#include <QUrlQuery>
+#include <QElapsedTimer>
+
+/*
+ *This application uses http://openweathermap.org/api
+ **/
+
+#define ZERO_KELVIN 273.15
+
+WeatherData::WeatherData(QObject *parent) :
+ QObject(parent)
+{
+}
+
+WeatherData::WeatherData(const WeatherData &other) :
+ QObject(0),
+ m_dayOfWeek(other.m_dayOfWeek),
+ m_weather(other.m_weather),
+ m_weatherDescription(other.m_weatherDescription),
+ m_temperature(other.m_temperature)
+{
+}
+
+QString WeatherData::dayOfWeek() const
+{
+ return m_dayOfWeek;
+}
+
+/*!
+ * The icon value is based on OpenWeatherMap.org icon set. For details
+ * see http://bugs.openweathermap.org/projects/api/wiki/Weather_Condition_Codes
+ *
+ * e.g. 01d ->sunny day
+ *
+ * The icon string will be translated to
+ * http://openweathermap.org/img/w/01d.png
+ */
+QString WeatherData::weatherIcon() const
+{
+ return m_weather;
+}
+
+QString WeatherData::weatherDescription() const
+{
+ return m_weatherDescription;
+}
+
+QString WeatherData::temperature() const
+{
+ return m_temperature;
+}
+
+void WeatherData::setDayOfWeek(const QString &value)
+{
+ m_dayOfWeek = value;
+ emit dataChanged();
+}
+
+void WeatherData::setWeatherIcon(const QString &value)
+{
+ m_weather = value;
+ emit dataChanged();
+}
+
+void WeatherData::setWeatherDescription(const QString &value)
+{
+ m_weatherDescription = value;
+ emit dataChanged();
+}
+
+void WeatherData::setTemperature(const QString &value)
+{
+ m_temperature = value;
+ emit dataChanged();
+}
+
+class AppModelPrivate
+{
+public:
+ QGeoPositionInfoSource *src;
+ QGeoCoordinate coord;
+ QString city;
+ QNetworkAccessManager *nam;
+ QNetworkSession *ns;
+ WeatherData now;
+ QList<WeatherData*> forecast;
+ QQmlListProperty<WeatherData> *fcProp;
+ QSignalMapper *geoReplyMapper;
+ QSignalMapper *weatherReplyMapper, *forecastReplyMapper;
+ bool ready;
+ bool useGps;
+ QElapsedTimer throttle;
+
+ AppModelPrivate() :
+ src(NULL),
+ nam(NULL),
+ ns(NULL),
+ fcProp(NULL),
+ ready(false),
+ useGps(true)
+ {}
+};
+
+static void forecastAppend(QQmlListProperty<WeatherData> *prop, WeatherData *val)
+{
+ Q_UNUSED(val);
+ Q_UNUSED(prop);
+}
+
+static WeatherData *forecastAt(QQmlListProperty<WeatherData> *prop, int index)
+{
+ AppModelPrivate *d = static_cast<AppModelPrivate*>(prop->data);
+ return d->forecast.at(index);
+}
+
+static int forecastCount(QQmlListProperty<WeatherData> *prop)
+{
+ AppModelPrivate *d = static_cast<AppModelPrivate*>(prop->data);
+ return d->forecast.size();
+}
+
+static void forecastClear(QQmlListProperty<WeatherData> *prop)
+{
+ static_cast<AppModelPrivate*>(prop->data)->forecast.clear();
+}
+
+//! [0]
+AppModel::AppModel(QObject *parent) :
+ QObject(parent),
+ d(new AppModelPrivate)
+{
+//! [0]
+ d->fcProp = new QQmlListProperty<WeatherData>(this, d,
+ forecastAppend,
+ forecastCount,
+ forecastAt,
+ forecastClear);
+
+ d->geoReplyMapper = new QSignalMapper(this);
+ d->weatherReplyMapper = new QSignalMapper(this);
+ d->forecastReplyMapper = new QSignalMapper(this);
+
+ connect(d->geoReplyMapper, SIGNAL(mapped(QObject*)),
+ this, SLOT(handleGeoNetworkData(QObject*)));
+ connect(d->weatherReplyMapper, SIGNAL(mapped(QObject*)),
+ this, SLOT(handleWeatherNetworkData(QObject*)));
+ connect(d->forecastReplyMapper, SIGNAL(mapped(QObject*)),
+ this, SLOT(handleForecastNetworkData(QObject*)));
+
+//! [1]
+ // make sure we have an active network session
+ d->nam = new QNetworkAccessManager(this);
+
+ QNetworkConfigurationManager ncm;
+ d->ns = new QNetworkSession(ncm.defaultConfiguration(), this);
+ connect(d->ns, SIGNAL(opened()), this, SLOT(networkSessionOpened()));
+ // the session may be already open. if it is, run the slot directly
+ if (d->ns->isOpen())
+ this->networkSessionOpened();
+ // tell the system we want network
+ d->ns->open();
+}
+//! [1]
+
+AppModel::~AppModel()
+{
+ d->ns->close();
+ if (d->src)
+ d->src->stopUpdates();
+ delete d;
+}
+
+//! [2]
+void AppModel::networkSessionOpened()
+{
+ d->src = QGeoPositionInfoSource::createDefaultSource(this);
+
+ if (d->src) {
+ d->useGps = true;
+ connect(d->src, SIGNAL(positionUpdated(QGeoPositionInfo)),
+ this, SLOT(positionUpdated(QGeoPositionInfo)));
+ d->src->startUpdates();
+ } else {
+ d->useGps = false;
+ d->city = "Brisbane";
+ emit cityChanged();
+ this->refreshWeather();
+ }
+}
+//! [2]
+
+//! [3]
+void AppModel::positionUpdated(QGeoPositionInfo gpsPos)
+{
+ d->coord = gpsPos.coordinate();
+
+ if (!(d->useGps))
+ return;
+
+ QString latitude, longitude;
+ longitude.setNum(d->coord.longitude());
+ latitude.setNum(d->coord.latitude());
+//! [3]
+
+ //don't update more often then once a minute
+ //to keep load on server low
+ if (d->throttle.isValid() && d->throttle.elapsed() < 1000*10 ) {
+ return;
+ }
+ d->throttle.restart();
+
+ QUrl url("http://api.openweathermap.org/data/2.5/weather");
+ QUrlQuery query;
+ query.addQueryItem("lat", latitude);
+ query.addQueryItem("lon", longitude);
+ query.addQueryItem("mode", "json");
+ url.setQuery(query);
+
+ QNetworkReply *rep = d->nam->get(QNetworkRequest(url));
+ // connect up the signal right away
+ d->geoReplyMapper->setMapping(rep, rep);
+ connect(rep, SIGNAL(finished()),
+ d->geoReplyMapper, SLOT(map()));
+}
+
+void AppModel::handleGeoNetworkData(QObject *replyObj)
+{
+ QNetworkReply *networkReply = qobject_cast<QNetworkReply*>(replyObj);
+ if (!networkReply)
+ return;
+
+ if (!networkReply->error()) {
+ //convert coordinates to city name
+ QJsonDocument document = QJsonDocument::fromJson(networkReply->readAll());
+
+ QJsonObject jo = document.object();
+ QJsonValue jv = jo.value(QStringLiteral("name"));
+
+ const QString city = jv.toString();
+ if (city != d->city) {
+ if (!d->throttle.isValid())
+ d->throttle.start();
+ d->city = city;
+ emit cityChanged();
+ refreshWeather();
+ }
+ }
+ networkReply->deleteLater();
+}
+
+void AppModel::refreshWeather()
+{
+ QUrl url("http://api.openweathermap.org/data/2.5/weather");
+ QUrlQuery query;
+
+ query.addQueryItem("q", d->city);
+ query.addQueryItem("mode", "json");
+ url.setQuery(query);
+
+ QNetworkReply *rep = d->nam->get(QNetworkRequest(url));
+ // connect up the signal right away
+ d->weatherReplyMapper->setMapping(rep, rep);
+ connect(rep, SIGNAL(finished()),
+ d->weatherReplyMapper, SLOT(map()));
+}
+
+static QString niceTemperatureString(double t)
+{
+ return QString::number(qRound(t-ZERO_KELVIN)) + QChar(0xB0);
+}
+
+void AppModel::handleWeatherNetworkData(QObject *replyObj)
+{
+ QNetworkReply *networkReply = qobject_cast<QNetworkReply*>(replyObj);
+ if (!networkReply)
+ return;
+
+ if (!networkReply->error()) {
+ foreach (WeatherData *inf, d->forecast)
+ delete inf;
+ d->forecast.clear();
+
+ QJsonDocument document = QJsonDocument::fromJson(networkReply->readAll());
+
+ if (document.isObject()) {
+ QJsonObject obj = document.object();
+ QJsonObject tempObject;
+ QJsonValue val;
+
+ if (obj.contains(QStringLiteral("weather"))) {
+ val = obj.value(QStringLiteral("weather"));
+ QJsonArray weatherArray = val.toArray();
+ val = weatherArray.at(0);
+ tempObject = val.toObject();
+ d->now.setWeatherDescription(tempObject.value(QStringLiteral("description")).toString());
+ d->now.setWeatherIcon(tempObject.value("icon").toString());
+ }
+ if (obj.contains(QStringLiteral("main"))) {
+ val = obj.value(QStringLiteral("main"));
+ tempObject = val.toObject();
+ val = tempObject.value(QStringLiteral("temp"));
+ d->now.setTemperature(niceTemperatureString(val.toDouble()));
+ }
+ }
+ }
+ networkReply->deleteLater();
+
+ //retrieve the forecast
+ QUrl url("http://api.openweathermap.org/data/2.5/forecast/daily");
+ QUrlQuery query;
+
+ query.addQueryItem("q", d->city);
+ query.addQueryItem("mode", "json");
+ query.addQueryItem("cnt", "5");
+ url.setQuery(query);
+
+ QNetworkReply *rep = d->nam->get(QNetworkRequest(url));
+ // connect up the signal right away
+ d->forecastReplyMapper->setMapping(rep, rep);
+ connect(rep, SIGNAL(finished()), d->forecastReplyMapper, SLOT(map()));
+}
+
+void AppModel::handleForecastNetworkData(QObject *replyObj)
+{
+ QNetworkReply *networkReply = qobject_cast<QNetworkReply*>(replyObj);
+ if (!networkReply)
+ return;
+
+ if (!networkReply->error()) {
+ QJsonDocument document = QJsonDocument::fromJson(networkReply->readAll());
+
+ QJsonObject jo;
+ QJsonValue jv;
+ QJsonObject root = document.object();
+ jv = root.value(QStringLiteral("list"));
+ if (!jv.isArray())
+ qWarning() << "Invalid forecast object";
+ QJsonArray ja = jv.toArray();
+ //we need 4 days of forecast -> first entry is today
+ if (ja.count() != 5)
+ qWarning() << "Invalid forecast object";
+
+ QString data;
+ for (int i = 1; i<ja.count(); i++) {
+ WeatherData *forecastEntry = new WeatherData();
+
+ //min/max temperature
+ QJsonObject subtree = ja.at(i).toObject();
+ jo = subtree.value(QStringLiteral("temp")).toObject();
+ jv = jo.value(QStringLiteral("min"));
+ data.clear();
+ data += niceTemperatureString(jv.toDouble());
+ data += QChar('/');
+ jv = jo.value(QStringLiteral("max"));
+ data += niceTemperatureString(jv.toDouble());
+ forecastEntry->setTemperature(data);
+
+ //get date
+ jv = subtree.value(QStringLiteral("dt"));
+ QDateTime dt = QDateTime::fromMSecsSinceEpoch((qint64)jv.toDouble()*1000);
+ forecastEntry->setDayOfWeek(dt.date().toString(QStringLiteral("ddd")));
+
+ //get icon
+ QJsonArray weatherArray = subtree.value(QStringLiteral("weather")).toArray();
+ jo = weatherArray.at(0).toObject();
+ forecastEntry->setWeatherIcon(jo.value(QStringLiteral("icon")).toString());
+
+ //get description
+ forecastEntry->setWeatherDescription(jo.value(QStringLiteral("description")).toString());
+
+ d->forecast.append(forecastEntry);
+ }
+
+ if (!(d->ready)) {
+ d->ready = true;
+ emit readyChanged();
+ }
+
+ emit weatherChanged();
+ }
+ networkReply->deleteLater();
+}
+
+bool AppModel::hasValidCity() const
+{
+ return (!(d->city.isEmpty()) && d->city.size() > 1 && d->city != "");
+}
+
+bool AppModel::hasValidWeather() const
+{
+ return hasValidCity() && (!(d->now.weatherIcon().isEmpty()) &&
+ (d->now.weatherIcon().size() > 1) &&
+ d->now.weatherIcon() != "");
+}
+
+WeatherData *AppModel::weather() const
+{
+ return &(d->now);
+}
+
+QQmlListProperty<WeatherData> AppModel::forecast() const
+{
+ return *(d->fcProp);
+}
+
+bool AppModel::ready() const
+{
+ return d->ready;
+}
+
+bool AppModel::hasSource() const
+{
+ return (d->src != NULL);
+}
+
+bool AppModel::useGps() const
+{
+ return d->useGps;
+}
+
+void AppModel::setUseGps(bool value)
+{
+ d->useGps = value;
+ if (value) {
+ d->city = "";
+ d->throttle.invalidate();
+ emit cityChanged();
+ emit weatherChanged();
+ }
+ emit useGpsChanged();
+}
+
+QString AppModel::city() const
+{
+ return d->city;
+}
+
+void AppModel::setCity(const QString &value)
+{
+ d->city = value;
+ emit cityChanged();
+ refreshWeather();
+}
diff --git a/examples/positioning/weatherinfo/appmodel.h b/examples/positioning/weatherinfo/appmodel.h
new file mode 100644
index 00000000..e0d32148
--- /dev/null
+++ b/examples/positioning/weatherinfo/appmodel.h
@@ -0,0 +1,170 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the examples of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
+** of its contributors may be used to endorse or promote products derived
+** from this software without specific prior written permission.
+**
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef APPMODEL_H
+#define APPMODEL_H
+
+#include <QtCore/QObject>
+#include <QtCore/QString>
+#include <QtNetwork/QNetworkReply>
+#include <QtQml/QQmlListProperty>
+
+#include <qgeopositioninfo.h>
+
+//! [0]
+class WeatherData : public QObject {
+ Q_OBJECT
+ Q_PROPERTY(QString dayOfWeek
+ READ dayOfWeek WRITE setDayOfWeek
+ NOTIFY dataChanged)
+ Q_PROPERTY(QString weatherIcon
+ READ weatherIcon WRITE setWeatherIcon
+ NOTIFY dataChanged)
+ Q_PROPERTY(QString weatherDescription
+ READ weatherDescription WRITE setWeatherDescription
+ NOTIFY dataChanged)
+ Q_PROPERTY(QString temperature
+ READ temperature WRITE setTemperature
+ NOTIFY dataChanged)
+
+public:
+ explicit WeatherData(QObject *parent = 0);
+ WeatherData(const WeatherData &other);
+
+ QString dayOfWeek() const;
+ QString weatherIcon() const;
+ QString weatherDescription() const;
+ QString temperature() const;
+
+ void setDayOfWeek(const QString &value);
+ void setWeatherIcon(const QString &value);
+ void setWeatherDescription(const QString &value);
+ void setTemperature(const QString &value);
+
+signals:
+ void dataChanged();
+//! [0]
+private:
+ QString m_dayOfWeek;
+ QString m_weather;
+ QString m_weatherDescription;
+ QString m_temperature;
+//! [1]
+};
+//! [1]
+
+Q_DECLARE_METATYPE(WeatherData)
+
+class AppModelPrivate;
+//! [2]
+class AppModel : public QObject
+{
+ Q_OBJECT
+ Q_PROPERTY(bool ready
+ READ ready
+ NOTIFY readyChanged)
+ Q_PROPERTY(bool hasSource
+ READ hasSource
+ NOTIFY readyChanged)
+ Q_PROPERTY(bool hasValidCity
+ READ hasValidCity
+ NOTIFY cityChanged)
+ Q_PROPERTY(bool hasValidWeather
+ READ hasValidWeather
+ NOTIFY weatherChanged)
+ Q_PROPERTY(bool useGps
+ READ useGps WRITE setUseGps
+ NOTIFY useGpsChanged)
+ Q_PROPERTY(QString city
+ READ city WRITE setCity
+ NOTIFY cityChanged)
+ Q_PROPERTY(WeatherData *weather
+ READ weather
+ NOTIFY weatherChanged)
+ Q_PROPERTY(QQmlListProperty<WeatherData> forecast
+ READ forecast
+ NOTIFY weatherChanged)
+
+public:
+ explicit AppModel(QObject *parent = 0);
+ ~AppModel();
+
+ bool ready() const;
+ bool hasSource() const;
+ bool useGps() const;
+ bool hasValidCity() const;
+ bool hasValidWeather() const;
+ void setUseGps(bool value);
+
+ QString city() const;
+ void setCity(const QString &value);
+
+ WeatherData *weather() const;
+ QQmlListProperty<WeatherData> forecast() const;
+
+public slots:
+ Q_INVOKABLE void refreshWeather();
+
+//! [2]
+private slots:
+ void networkSessionOpened();
+ void positionUpdated(QGeoPositionInfo gpsPos);
+ // these would have QNetworkReply* params but for the signalmapper
+ void handleGeoNetworkData(QObject *networkReply);
+ void handleWeatherNetworkData(QObject *networkReply);
+ void handleForecastNetworkData(QObject *networkReply);
+
+//! [3]
+signals:
+ void readyChanged();
+ void useGpsChanged();
+ void cityChanged();
+ void weatherChanged();
+
+//! [3]
+
+private:
+ AppModelPrivate *d;
+
+//! [4]
+};
+//! [4]
+
+#endif // APPMODEL_H
diff --git a/examples/positioning/weatherinfo/components/BigForecastIcon.qml b/examples/positioning/weatherinfo/components/BigForecastIcon.qml
new file mode 100644
index 00000000..6583d6d3
--- /dev/null
+++ b/examples/positioning/weatherinfo/components/BigForecastIcon.qml
@@ -0,0 +1,80 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the examples of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
+** of its contributors may be used to endorse or promote products derived
+** from this software without specific prior written permission.
+**
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.0
+
+Item {
+ id: current
+
+ property string topText: "20*"
+ property string bottomText: "Mostly cloudy"
+ property string weatherIcon: "01d"
+ property real smallSide: (current.width < current.height ? current.width : current.height)
+
+ Text {
+ text: current.topText
+ font.pointSize: 28
+ anchors {
+ top: current.top
+ left: current.left
+ topMargin: 5
+ leftMargin: 5
+ }
+ }
+
+ WeatherIcon {
+ weatherIcon: current.weatherIcon
+ useServerIcon: false
+ anchors.centerIn: parent
+ anchors.verticalCenterOffset: -15
+ width: current.smallSide
+ height: current.smallSide
+ }
+
+ Text {
+ text: current.bottomText
+ font.pointSize: 28
+ anchors {
+ bottom: current.bottom
+ right: current.right
+ rightMargin: 5
+ }
+ }
+}
diff --git a/examples/positioning/weatherinfo/components/ForecastIcon.qml b/examples/positioning/weatherinfo/components/ForecastIcon.qml
new file mode 100644
index 00000000..a1393932
--- /dev/null
+++ b/examples/positioning/weatherinfo/components/ForecastIcon.qml
@@ -0,0 +1,89 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the examples of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
+** of its contributors may be used to endorse or promote products derived
+** from this software without specific prior written permission.
+**
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.0
+
+Item {
+ id: top
+
+ property string topText: "Mon"
+ property string weatherIcon: "01d"
+ property string bottomText: "22*/23*"
+
+ Text {
+ id: dayText
+ horizontalAlignment: Text.AlignHCenter
+ width: top.width
+ text: top.topText
+
+ anchors.top: parent.top
+ anchors.topMargin: top.height / 5 - dayText.paintedHeight
+ anchors.horizontalCenter: parent.horizontalCenter
+ }
+
+ WeatherIcon {
+ id: icon
+ weatherIcon: top.weatherIcon
+
+ property real side: {
+ var h = 3 * top.height / 5
+ if (top.width < h)
+ top.width;
+ else
+ h;
+ }
+
+ width: icon.side
+ height: icon.side
+
+ anchors.centerIn: parent
+ }
+
+ Text {
+ id: tempText
+ horizontalAlignment: Text.AlignHCenter
+ width: top.width
+ text: top.bottomText
+
+ anchors.bottom: parent.bottom
+ anchors.bottomMargin: top.height / 5 - tempText.paintedHeight
+ anchors.horizontalCenter: parent.horizontalCenter
+ }
+}
diff --git a/examples/positioning/weatherinfo/components/WeatherIcon.qml b/examples/positioning/weatherinfo/components/WeatherIcon.qml
new file mode 100644
index 00000000..485a15a5
--- /dev/null
+++ b/examples/positioning/weatherinfo/components/WeatherIcon.qml
@@ -0,0 +1,102 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the examples of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
+** of its contributors may be used to endorse or promote products derived
+** from this software without specific prior written permission.
+**
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.0
+
+Item {
+ id: container
+
+ property string weatherIcon: "01d"
+
+ //server icons are too small. we keep using the local images
+ property bool useServerIcon: true
+
+ Image {
+ id: img
+ source: {
+ if (useServerIcon)
+ "http://openweathermap.org/img/w/" + container.weatherIcon + ".png"
+ else {
+ switch (weatherIcon) {
+ case "01d":
+ case "01n":
+ "../icons/weather-sunny.png"
+ break;
+ case "02d":
+ case "02n":
+ "../icons/weather-sunny-very-few-clouds.png"
+ break;
+ case "03d":
+ case "03n":
+ "../icons/weather-few-clouds.png"
+ break;
+ case "04d":
+ case "04n":
+ "../icons/weather-overcast.png"
+ break;
+ case "09d":
+ case "09n":
+ "../icons/weather-showers.png"
+ break;
+ case "10d":
+ case "10n":
+ "../icons/weather-showers.png"
+ break;
+ case "11d":
+ case "11n":
+ "../icons/weather-thundershower.png"
+ break;
+ case "13d":
+ case "13n":
+ "../icons/weather-snow.png"
+ break;
+ case "50d":
+ case "50n":
+ "../icons/weather-fog.png"
+ break;
+ default:
+ "../icons/weather-unknown.png"
+ }
+ }
+ }
+ smooth: true
+ anchors.fill: parent
+ }
+}
diff --git a/examples/positioning/weatherinfo/icons/README.txt b/examples/positioning/weatherinfo/icons/README.txt
new file mode 100644
index 00000000..d3841532
--- /dev/null
+++ b/examples/positioning/weatherinfo/icons/README.txt
@@ -0,0 +1,5 @@
+The scalable icons are from:
+
+http://tango.freedesktop.org/Tango_Icon_Library
+http://darkobra.deviantart.com/art/Tango-Weather-Icon-Pack-98024429
+
diff --git a/examples/positioning/weatherinfo/icons/weather-few-clouds.png b/examples/positioning/weatherinfo/icons/weather-few-clouds.png
new file mode 100644
index 00000000..a8000ef0
--- /dev/null
+++ b/examples/positioning/weatherinfo/icons/weather-few-clouds.png
Binary files differ
diff --git a/examples/positioning/weatherinfo/icons/weather-fog.png b/examples/positioning/weatherinfo/icons/weather-fog.png
new file mode 100644
index 00000000..9ffe9c4a
--- /dev/null
+++ b/examples/positioning/weatherinfo/icons/weather-fog.png
Binary files differ
diff --git a/examples/positioning/weatherinfo/icons/weather-haze.png b/examples/positioning/weatherinfo/icons/weather-haze.png
new file mode 100644
index 00000000..ae6f13eb
--- /dev/null
+++ b/examples/positioning/weatherinfo/icons/weather-haze.png
Binary files differ
diff --git a/examples/positioning/weatherinfo/icons/weather-icy.png b/examples/positioning/weatherinfo/icons/weather-icy.png
new file mode 100644
index 00000000..18d20384
--- /dev/null
+++ b/examples/positioning/weatherinfo/icons/weather-icy.png
Binary files differ
diff --git a/examples/positioning/weatherinfo/icons/weather-overcast.png b/examples/positioning/weatherinfo/icons/weather-overcast.png
new file mode 100644
index 00000000..9d50f77f
--- /dev/null
+++ b/examples/positioning/weatherinfo/icons/weather-overcast.png
Binary files differ
diff --git a/examples/positioning/weatherinfo/icons/weather-showers.png b/examples/positioning/weatherinfo/icons/weather-showers.png
new file mode 100644
index 00000000..07489aaa
--- /dev/null
+++ b/examples/positioning/weatherinfo/icons/weather-showers.png
Binary files differ
diff --git a/examples/positioning/weatherinfo/icons/weather-sleet.png b/examples/positioning/weatherinfo/icons/weather-sleet.png
new file mode 100644
index 00000000..3d225895
--- /dev/null
+++ b/examples/positioning/weatherinfo/icons/weather-sleet.png
Binary files differ
diff --git a/examples/positioning/weatherinfo/icons/weather-snow.png b/examples/positioning/weatherinfo/icons/weather-snow.png
new file mode 100644
index 00000000..e7426e3c
--- /dev/null
+++ b/examples/positioning/weatherinfo/icons/weather-snow.png
Binary files differ
diff --git a/examples/positioning/weatherinfo/icons/weather-storm.png b/examples/positioning/weatherinfo/icons/weather-storm.png
new file mode 100644
index 00000000..6b6b366a
--- /dev/null
+++ b/examples/positioning/weatherinfo/icons/weather-storm.png
Binary files differ
diff --git a/examples/positioning/weatherinfo/icons/weather-sunny-very-few-clouds.png b/examples/positioning/weatherinfo/icons/weather-sunny-very-few-clouds.png
new file mode 100644
index 00000000..133bcb29
--- /dev/null
+++ b/examples/positioning/weatherinfo/icons/weather-sunny-very-few-clouds.png
Binary files differ
diff --git a/examples/positioning/weatherinfo/icons/weather-sunny.png b/examples/positioning/weatherinfo/icons/weather-sunny.png
new file mode 100644
index 00000000..0fac921d
--- /dev/null
+++ b/examples/positioning/weatherinfo/icons/weather-sunny.png
Binary files differ
diff --git a/examples/positioning/weatherinfo/icons/weather-thundershower.png b/examples/positioning/weatherinfo/icons/weather-thundershower.png
new file mode 100644
index 00000000..1aff1639
--- /dev/null
+++ b/examples/positioning/weatherinfo/icons/weather-thundershower.png
Binary files differ
diff --git a/examples/positioning/weatherinfo/main.cpp b/examples/positioning/weatherinfo/main.cpp
new file mode 100644
index 00000000..6afcf1c4
--- /dev/null
+++ b/examples/positioning/weatherinfo/main.cpp
@@ -0,0 +1,70 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the examples of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
+** of its contributors may be used to endorse or promote products derived
+** from this software without specific prior written permission.
+**
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include <QtGui/QGuiApplication>
+#include <QtQuick/QQuickView>
+#include <QtQml/QQmlEngine>
+#include <QtQml/QQmlContext>
+#include <QtQuick/QQuickItem>
+
+//! [0]
+#include "appmodel.h"
+
+int main(int argc, char *argv[])
+{
+ QGuiApplication application(argc, argv);
+
+ qmlRegisterType<WeatherData>("WeatherInfo", 1, 0, "WeatherData");
+ qmlRegisterType<AppModel>("WeatherInfo", 1, 0, "AppModel");
+
+//! [0]
+ qRegisterMetaType<WeatherData>("WeatherData");
+//! [1]
+ const QString mainQmlApp = QLatin1String("qrc:///weatherinfo.qml");
+ QQuickView view;
+ view.setSource(QUrl(mainQmlApp));
+ view.setResizeMode(QQuickView::SizeRootObjectToView);
+
+ QObject::connect(view.engine(), SIGNAL(quit()), qApp, SLOT(quit()));
+ view.setGeometry(QRect(100, 100, 360, 640));
+ view.show();
+ return application.exec();
+}
+//! [1]
diff --git a/examples/positioning/weatherinfo/weatherinfo.pro b/examples/positioning/weatherinfo/weatherinfo.pro
new file mode 100644
index 00000000..1470b8a0
--- /dev/null
+++ b/examples/positioning/weatherinfo/weatherinfo.pro
@@ -0,0 +1,22 @@
+TEMPLATE = app
+TARGET = weatherinfo
+
+QT += core network positioning qml quick
+
+SOURCES += main.cpp \
+ appmodel.cpp
+
+OTHER_FILES += weatherinfo.qml \
+ components/WeatherIcon.qml \
+ components/ForecastIcon.qml \
+ components/BigForecastIcon.qml
+
+RESOURCES += weatherinfo.qrc
+
+HEADERS += appmodel.h
+
+#install
+target.path = $$[QT_INSTALL_EXAMPLES]/qtpositioning/weatherinfo
+sources.files = $$SOURCES $HEADERS $$RESOURCES $$FORMS *.pro
+sources.path = $$[QT_INSTALL_EXAMPLES]/qtpositioning/weatherinfo
+INSTALLS += target sources
diff --git a/examples/positioning/weatherinfo/weatherinfo.qml b/examples/positioning/weatherinfo/weatherinfo.qml
new file mode 100644
index 00000000..0c69090d
--- /dev/null
+++ b/examples/positioning/weatherinfo/weatherinfo.qml
@@ -0,0 +1,230 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the examples of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
+** of its contributors may be used to endorse or promote products derived
+** from this software without specific prior written permission.
+**
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.0
+import "components"
+//! [0]
+import WeatherInfo 1.0
+
+Item {
+ id: window
+//! [0]
+ width: 360
+ height: 640
+
+ state: "loading"
+
+ states: [
+ State {
+ name: "loading"
+ PropertyChanges { target: main; opacity: 0 }
+ PropertyChanges { target: wait; opacity: 1 }
+ },
+ State {
+ name: "ready"
+ PropertyChanges { target: main; opacity: 1 }
+ PropertyChanges { target: wait; opacity: 0 }
+ }
+ ]
+//! [1]
+ AppModel {
+ id: model
+ onReadyChanged: {
+ if (model.ready)
+ window.state = "ready"
+ else
+ window.state = "loading"
+ }
+ }
+//! [1]
+ Item {
+ id: wait
+ anchors.fill: parent
+
+ Text {
+ text: "Loading weather data..."
+ anchors.centerIn: parent
+ font.pointSize: 18
+ }
+ }
+
+ Item {
+ id: main
+ anchors.fill: parent
+
+ Column {
+ spacing: 6
+
+ anchors {
+ fill: parent
+ topMargin: 6; bottomMargin: 6; leftMargin: 6; rightMargin: 6
+ }
+
+ Rectangle {
+ width: parent.width
+ height: 25
+ color: "lightgrey"
+
+ Text {
+ text: (model.hasValidCity ? model.city : "Unknown location") + (model.useGps ? " (GPS)" : "")
+ anchors.fill: parent
+ horizontalAlignment: Text.AlignHCenter
+ verticalAlignment: Text.AlignVCenter
+ }
+
+ MouseArea {
+ anchors.fill: parent
+ onClicked: {
+ if (model.useGps) {
+ model.useGps = false
+ model.city = "Brisbane"
+ } else {
+ switch (model.city) {
+ case "Brisbane":
+ model.city = "Oslo"
+ break
+ case "Oslo":
+ model.city = "Helsinki"
+ break
+ case "Helsinki":
+ model.city = "New York"
+ break
+ case "New York":
+ model.useGps = true
+ break
+ }
+ }
+ }
+ }
+ }
+
+//! [3]
+ BigForecastIcon {
+ id: current
+
+ width: main.width -12
+ height: 2 * (main.height - 25 - 12) / 3
+
+ weatherIcon: (model.hasValidWeather
+ ? model.weather.weatherIcon
+ : "01d")
+//! [3]
+ topText: (model.hasValidWeather
+ ? model.weather.temperature
+ : "??")
+ bottomText: (model.hasValidWeather
+ ? model.weather.weatherDescription
+ : "No weather data")
+
+ MouseArea {
+ anchors.fill: parent
+ onClicked: {
+ model.refreshWeather()
+ }
+ }
+//! [4]
+ }
+//! [4]
+
+ Row {
+ id: iconRow
+ spacing: 6
+
+ width: main.width - 12
+ height: (main.height - 25 - 24) / 3
+
+ property real iconWidth: iconRow.width / 4 - 10
+ property real iconHeight: iconRow.height
+
+ ForecastIcon {
+ id: forecast1
+ width: iconRow.iconWidth
+ height: iconRow.iconHeight
+
+ topText: (model.hasValidWeather ?
+ model.forecast[0].dayOfWeek : "??")
+ bottomText: (model.hasValidWeather ?
+ model.forecast[0].temperature : "??/??")
+ weatherIcon: (model.hasValidWeather ?
+ model.forecast[0].weatherIcon : "01d")
+ }
+ ForecastIcon {
+ id: forecast2
+ width: iconRow.iconWidth
+ height: iconRow.iconHeight
+
+ topText: (model.hasValidWeather ?
+ model.forecast[1].dayOfWeek : "??")
+ bottomText: (model.hasValidWeather ?
+ model.forecast[1].temperature : "??/??")
+ weatherIcon: (model.hasValidWeather ?
+ model.forecast[1].weatherIcon : "01d")
+ }
+ ForecastIcon {
+ id: forecast3
+ width: iconRow.iconWidth
+ height: iconRow.iconHeight
+
+ topText: (model.hasValidWeather ?
+ model.forecast[2].dayOfWeek : "??")
+ bottomText: (model.hasValidWeather ?
+ model.forecast[2].temperature : "??/??")
+ weatherIcon: (model.hasValidWeather ?
+ model.forecast[2].weatherIcon : "01d")
+ }
+ ForecastIcon {
+ id: forecast4
+ width: iconRow.iconWidth
+ height: iconRow.iconHeight
+
+ topText: (model.hasValidWeather ?
+ model.forecast[3].dayOfWeek : "??")
+ bottomText: (model.hasValidWeather ?
+ model.forecast[3].temperature : "??/??")
+ weatherIcon: (model.hasValidWeather ?
+ model.forecast[3].weatherIcon : "01d")
+ }
+
+ }
+ }
+ }
+//! [2]
+}
+//! [2]
diff --git a/examples/positioning/weatherinfo/weatherinfo.qrc b/examples/positioning/weatherinfo/weatherinfo.qrc
new file mode 100644
index 00000000..7b79dbea
--- /dev/null
+++ b/examples/positioning/weatherinfo/weatherinfo.qrc
@@ -0,0 +1,20 @@
+<RCC>
+ <qresource prefix="/">
+ <file>weatherinfo.qml</file>
+ <file>components/BigForecastIcon.qml</file>
+ <file>components/ForecastIcon.qml</file>
+ <file>components/WeatherIcon.qml</file>
+ <file>icons/weather-few-clouds.png</file>
+ <file>icons/weather-fog.png</file>
+ <file>icons/weather-haze.png</file>
+ <file>icons/weather-icy.png</file>
+ <file>icons/weather-overcast.png</file>
+ <file>icons/weather-showers.png</file>
+ <file>icons/weather-sleet.png</file>
+ <file>icons/weather-snow.png</file>
+ <file>icons/weather-storm.png</file>
+ <file>icons/weather-sunny-very-few-clouds.png</file>
+ <file>icons/weather-sunny.png</file>
+ <file>icons/weather-thundershower.png</file>
+ </qresource>
+</RCC>