summaryrefslogtreecommitdiffstats
path: root/examples
diff options
context:
space:
mode:
Diffstat (limited to 'examples')
-rw-r--r--examples/CMakeLists.txt3
-rw-r--r--examples/examples.pro6
-rw-r--r--examples/positioning/CMakeLists.txt14
-rw-r--r--examples/positioning/geoflickr/CMakeLists.txt83
-rw-r--r--examples/positioning/geoflickr/doc/images/qml-flickr-1.jpgbin66794 -> 0 bytes
-rw-r--r--examples/positioning/geoflickr/doc/src/geoflickr.qdoc88
-rw-r--r--examples/positioning/geoflickr/flickr-90.qml61
-rw-r--r--examples/positioning/geoflickr/flickr.qml147
-rw-r--r--examples/positioning/geoflickr/flickr.qrc30
-rw-r--r--examples/positioning/geoflickr/flickrcommon/Progress.qml82
-rw-r--r--examples/positioning/geoflickr/flickrcommon/RestModel.qml74
-rw-r--r--examples/positioning/geoflickr/flickrcommon/ScrollBar.qml90
-rw-r--r--examples/positioning/geoflickr/flickrcommon/Slider.qml86
-rw-r--r--examples/positioning/geoflickr/flickrmobile/Button.qml88
-rw-r--r--examples/positioning/geoflickr/flickrmobile/GeoTab.qml182
-rw-r--r--examples/positioning/geoflickr/flickrmobile/GridDelegate.qml124
-rw-r--r--examples/positioning/geoflickr/flickrmobile/ImageDetails.qml166
-rw-r--r--examples/positioning/geoflickr/flickrmobile/ListDelegate.qml76
-rw-r--r--examples/positioning/geoflickr/flickrmobile/TitleBar.qml87
-rw-r--r--examples/positioning/geoflickr/flickrmobile/ToolBar.qml74
-rw-r--r--examples/positioning/geoflickr/flickrmobile/images/gloss.pngbin889 -> 0 bytes
-rw-r--r--examples/positioning/geoflickr/flickrmobile/images/lineedit.pngbin1307 -> 0 bytes
-rw-r--r--examples/positioning/geoflickr/flickrmobile/images/lineedit.sci5
-rw-r--r--examples/positioning/geoflickr/flickrmobile/images/moon.pngbin2366 -> 0 bytes
-rw-r--r--examples/positioning/geoflickr/flickrmobile/images/quit.pngbin1785 -> 0 bytes
-rw-r--r--examples/positioning/geoflickr/flickrmobile/images/star.pngbin259 -> 0 bytes
-rw-r--r--examples/positioning/geoflickr/flickrmobile/images/stripes.pngbin159 -> 0 bytes
-rw-r--r--examples/positioning/geoflickr/flickrmobile/images/sun.pngbin8110 -> 0 bytes
-rw-r--r--examples/positioning/geoflickr/flickrmobile/images/titlebar.pngbin1327 -> 0 bytes
-rw-r--r--examples/positioning/geoflickr/flickrmobile/images/titlebar.sci5
-rw-r--r--examples/positioning/geoflickr/flickrmobile/images/toolbutton.pngbin2550 -> 0 bytes
-rw-r--r--examples/positioning/geoflickr/flickrmobile/images/toolbutton.sci5
-rw-r--r--examples/positioning/geoflickr/flickrmobile/nmealog.txt1403
-rw-r--r--examples/positioning/geoflickr/geoflickr.pro15
-rw-r--r--examples/positioning/geoflickr/geoflickr.qmlproject16
-rw-r--r--examples/positioning/geoflickr/qmllocationflickr.cpp68
-rw-r--r--examples/positioning/logfilepositionsource/CMakeLists.txt54
-rw-r--r--examples/positioning/logfilepositionsource/clientapplication.cpp72
-rw-r--r--examples/positioning/logfilepositionsource/clientapplication.h74
-rw-r--r--examples/positioning/logfilepositionsource/doc/src/logfilepositionsource.qdoc94
-rw-r--r--examples/positioning/logfilepositionsource/logfile.qrc5
-rw-r--r--examples/positioning/logfilepositionsource/logfilepositionsource.cpp136
-rw-r--r--examples/positioning/logfilepositionsource/logfilepositionsource.h88
-rw-r--r--examples/positioning/logfilepositionsource/logfilepositionsource.pro16
-rw-r--r--examples/positioning/logfilepositionsource/main.cpp62
-rw-r--r--examples/positioning/logfilepositionsource/simplelog.txt156
-rw-r--r--examples/positioning/positioning.pro9
-rw-r--r--examples/positioning/satelliteinfo/CMakeLists.txt49
-rw-r--r--examples/positioning/satelliteinfo/doc/images/example-satelliteinfo.pngbin27371 -> 0 bytes
-rw-r--r--examples/positioning/satelliteinfo/doc/src/satelliteinfo.qdoc134
-rw-r--r--examples/positioning/satelliteinfo/main.cpp71
-rw-r--r--examples/positioning/satelliteinfo/satelliteinfo.pro26
-rw-r--r--examples/positioning/satelliteinfo/satelliteinfo.qml316
-rw-r--r--examples/positioning/satelliteinfo/satelliteinfo.qrc5
-rw-r--r--examples/positioning/satelliteinfo/satellitemodel.cpp324
-rw-r--r--examples/positioning/satelliteinfo/satellitemodel.h140
-rw-r--r--examples/positioning/weatherinfo/CMakeLists.txt74
-rw-r--r--examples/positioning/weatherinfo/appmodel.cpp514
-rw-r--r--examples/positioning/weatherinfo/appmodel.h190
-rw-r--r--examples/positioning/weatherinfo/components/BigForecastIcon.qml92
-rw-r--r--examples/positioning/weatherinfo/components/ForecastIcon.qml99
-rw-r--r--examples/positioning/weatherinfo/components/WeatherIcon.qml64
-rw-r--r--examples/positioning/weatherinfo/doc/images/example-weatherinfo.pngbin70264 -> 0 bytes
-rw-r--r--examples/positioning/weatherinfo/doc/src/weatherinfo.qdoc164
-rw-r--r--examples/positioning/weatherinfo/icons/README.txt5
-rw-r--r--examples/positioning/weatherinfo/icons/qt_attribution.json28
-rw-r--r--examples/positioning/weatherinfo/icons/weather-few-clouds.pngbin79488 -> 0 bytes
-rw-r--r--examples/positioning/weatherinfo/icons/weather-fog.pngbin43896 -> 0 bytes
-rw-r--r--examples/positioning/weatherinfo/icons/weather-haze.pngbin130030 -> 0 bytes
-rw-r--r--examples/positioning/weatherinfo/icons/weather-icy.pngbin49362 -> 0 bytes
-rw-r--r--examples/positioning/weatherinfo/icons/weather-overcast.pngbin60290 -> 0 bytes
-rw-r--r--examples/positioning/weatherinfo/icons/weather-showers-scattered.pngbin76000 -> 0 bytes
-rw-r--r--examples/positioning/weatherinfo/icons/weather-showers.pngbin76340 -> 0 bytes
-rw-r--r--examples/positioning/weatherinfo/icons/weather-sleet.pngbin87168 -> 0 bytes
-rw-r--r--examples/positioning/weatherinfo/icons/weather-snow.pngbin70939 -> 0 bytes
-rw-r--r--examples/positioning/weatherinfo/icons/weather-storm.pngbin93207 -> 0 bytes
-rw-r--r--examples/positioning/weatherinfo/icons/weather-sunny-very-few-clouds.pngbin65731 -> 0 bytes
-rw-r--r--examples/positioning/weatherinfo/icons/weather-sunny.pngbin59084 -> 0 bytes
-rw-r--r--examples/positioning/weatherinfo/icons/weather-thundershower.pngbin105643 -> 0 bytes
-rw-r--r--examples/positioning/weatherinfo/main.cpp74
-rw-r--r--examples/positioning/weatherinfo/openweathermapbackend.cpp265
-rw-r--r--examples/positioning/weatherinfo/openweathermapbackend.h85
-rw-r--r--examples/positioning/weatherinfo/providerbackend.cpp53
-rw-r--r--examples/positioning/weatherinfo/providerbackend.h90
-rw-r--r--examples/positioning/weatherinfo/weatherapibackend.cpp266
-rw-r--r--examples/positioning/weatherinfo/weatherapibackend.h80
-rw-r--r--examples/positioning/weatherinfo/weatherinfo.pro31
-rw-r--r--examples/positioning/weatherinfo/weatherinfo.qml208
-rw-r--r--examples/positioning/weatherinfo/weatherinfo.qrc21
89 files changed, 1 insertions, 7311 deletions
diff --git a/examples/CMakeLists.txt b/examples/CMakeLists.txt
index 04b5b3f5..a87e6e14 100644
--- a/examples/CMakeLists.txt
+++ b/examples/CMakeLists.txt
@@ -2,9 +2,6 @@
qt_examples_build_begin()
-if(TARGET Qt::Positioning)
- add_subdirectory(positioning)
-endif()
# TODO: Enable location examples later!
# if(TARGET Qt::Location AND TARGET Qt::Positioning)
# add_subdirectory(location)
diff --git a/examples/examples.pro b/examples/examples.pro
index da770da2..10d97e1b 100644
--- a/examples/examples.pro
+++ b/examples/examples.pro
@@ -1,7 +1,3 @@
TEMPLATE = subdirs
-qtHaveModule(positioning) {
- SUBDIRS += positioning
-
- qtHaveModule(location): SUBDIRS += location
-}
+qtHaveModule(location): SUBDIRS += location
diff --git a/examples/positioning/CMakeLists.txt b/examples/positioning/CMakeLists.txt
deleted file mode 100644
index 414fc99a..00000000
--- a/examples/positioning/CMakeLists.txt
+++ /dev/null
@@ -1,14 +0,0 @@
-# Generated from positioning.pro.
-
-if(TARGET Qt::Widgets)
- add_subdirectory(logfilepositionsource)
-endif()
-if(TARGET Qt::Quick)
- add_subdirectory(satelliteinfo)
-endif()
-if(TARGET Qt::Quick)
- add_subdirectory(geoflickr)
-endif()
-if(TARGET Qt::Network AND TARGET Qt::Quick)
- add_subdirectory(weatherinfo)
-endif()
diff --git a/examples/positioning/geoflickr/CMakeLists.txt b/examples/positioning/geoflickr/CMakeLists.txt
deleted file mode 100644
index a871b827..00000000
--- a/examples/positioning/geoflickr/CMakeLists.txt
+++ /dev/null
@@ -1,83 +0,0 @@
-# Generated from geoflickr.pro.
-
-cmake_minimum_required(VERSION 3.16)
-project(geoflickr LANGUAGES CXX)
-
-set(CMAKE_INCLUDE_CURRENT_DIR ON)
-
-set(CMAKE_AUTOMOC ON)
-set(CMAKE_AUTORCC ON)
-set(CMAKE_AUTOUIC ON)
-
-if(NOT DEFINED INSTALL_EXAMPLESDIR)
- set(INSTALL_EXAMPLESDIR "examples")
-endif()
-
-set(INSTALL_EXAMPLEDIR "${INSTALL_EXAMPLESDIR}/positioning/geoflickr")
-
-find_package(Qt6 COMPONENTS Core)
-find_package(Qt6 COMPONENTS Gui)
-find_package(Qt6 COMPONENTS Qml)
-find_package(Qt6 COMPONENTS Quick)
-find_package(Qt6 COMPONENTS Network)
-find_package(Qt6 COMPONENTS Positioning)
-
-qt_add_executable(geoflickr
- qmllocationflickr.cpp
-)
-set_target_properties(geoflickr PROPERTIES
- WIN32_EXECUTABLE TRUE
- MACOSX_BUNDLE TRUE
-)
-target_link_libraries(geoflickr PRIVATE
- Qt::Core
- Qt::Gui
- Qt::Network
- Qt::Positioning
- Qt::Qml
- Qt::Quick
-)
-
-
-# Resources:
-set(flickr_resource_files
- "flickr-90.qml"
- "flickr.qml"
- "flickrcommon/Progress.qml"
- "flickrcommon/RestModel.qml"
- "flickrcommon/ScrollBar.qml"
- "flickrcommon/Slider.qml"
- "flickrmobile/Button.qml"
- "flickrmobile/GeoTab.qml"
- "flickrmobile/GridDelegate.qml"
- "flickrmobile/ImageDetails.qml"
- "flickrmobile/ListDelegate.qml"
- "flickrmobile/TitleBar.qml"
- "flickrmobile/ToolBar.qml"
- "flickrmobile/images/gloss.png"
- "flickrmobile/images/lineedit.png"
- "flickrmobile/images/lineedit.sci"
- "flickrmobile/images/moon.png"
- "flickrmobile/images/quit.png"
- "flickrmobile/images/star.png"
- "flickrmobile/images/stripes.png"
- "flickrmobile/images/sun.png"
- "flickrmobile/images/titlebar.png"
- "flickrmobile/images/titlebar.sci"
- "flickrmobile/images/toolbutton.png"
- "flickrmobile/images/toolbutton.sci"
- "flickrmobile/nmealog.txt"
-)
-
-qt6_add_resources(geoflickr "flickr"
- PREFIX
- "/"
- FILES
- ${flickr_resource_files}
-)
-
-install(TARGETS geoflickr
- RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}"
- BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}"
- LIBRARY DESTINATION "${INSTALL_EXAMPLEDIR}"
-)
diff --git a/examples/positioning/geoflickr/doc/images/qml-flickr-1.jpg b/examples/positioning/geoflickr/doc/images/qml-flickr-1.jpg
deleted file mode 100644
index 42514ff0..00000000
--- a/examples/positioning/geoflickr/doc/images/qml-flickr-1.jpg
+++ /dev/null
Binary files differ
diff --git a/examples/positioning/geoflickr/doc/src/geoflickr.qdoc b/examples/positioning/geoflickr/doc/src/geoflickr.qdoc
deleted file mode 100644
index 86ec61f4..00000000
--- a/examples/positioning/geoflickr/doc/src/geoflickr.qdoc
+++ /dev/null
@@ -1,88 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2019 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the documentation of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:FDL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Free Documentation License Usage
-** Alternatively, this file may be used under the terms of the GNU Free
-** Documentation License version 1.3 as published by the Free Software
-** Foundation and appearing in the file included in the packaging of
-** this file. Please review the following information to ensure
-** the GNU Free Documentation License version 1.3 requirements
-** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-/*!
- \example geoflickr
- \title GeoFlickr (QML)
- \ingroup qtpositioning-examples
-
- \brief The GeoFlickr example shows how to use the user's current
- position to fetch local content from a web service.
-
- This is a small example, illustrating one of the very core parts
- of the \l{Qt Positioning} API: the ability to retrieve and use the
- user's current geographic position.
-
- Key QML types shown in this example:
- \list
- \li \l {QtPositioning::PositionSource} {PositionSource}
- \li \l [QML] {XmlListModel}
- \endlist
-
- \image qml-flickr-1.jpg
-
- \include examples-run.qdocinc
-
- \section1 Retrieving the Current Position
-
- Retrieving the user's current position is achieved using the
- \l PositionSource type. In this example, we instantiate the
- \l PositionSource as part of the \c GeoTab component (the floating "window"
- describing current position and status).
-
- \snippet geoflickr/flickrmobile/GeoTab.qml possrc
-
- When the "Locate and update" button is pressed, we first interrogate
- the \l PositionSource to check if it has an available backend for
- positioning data. If it does not, we fall back to using a pre-recorded
- NMEA log for demonstration. We then instruct the \l PositionSource to
- request a location \l {QtPositioning::PositionSource::}{update}.
-
- \snippet geoflickr/flickrmobile/GeoTab.qml locatebutton-top
- \snippet geoflickr/flickrmobile/GeoTab.qml locatebutton-clicked
-
- To share the new position data with the rest of the application, we
- use properties that we have created on the \c GeoTab component:
-
- \snippet geoflickr/flickrmobile/GeoTab.qml props
-
- \section1 Using the Current Position
-
- The longitude and latitude values retrieved here are eventually set
- in the properties on the \c RestModel component. The \c RestModel is an
- \l [QML] {XmlListModel}, which retrieves XML data from a URL and creates a
- data model by parsing it.
-
- In this case, it retrieves data from the Flickr REST API online,
- based on our current position
-
- \snippet geoflickr/flickrcommon/RestModel.qml restmodel
-
- This model data is then shown in a variety of \l {Qt Quick} views to
- produce the example application.
-
-*/
diff --git a/examples/positioning/geoflickr/flickr-90.qml b/examples/positioning/geoflickr/flickr-90.qml
deleted file mode 100644
index e3352747..00000000
--- a/examples/positioning/geoflickr/flickr-90.qml
+++ /dev/null
@@ -1,61 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** BSD License Usage
-** Alternatively, 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 The Qt Company Ltd 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/geoflickr/flickr.qml b/examples/positioning/geoflickr/flickr.qml
deleted file mode 100644
index 8c975e38..00000000
--- a/examples/positioning/geoflickr/flickr.qml
+++ /dev/null
@@ -1,147 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** BSD License Usage
-** Alternatively, 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 The Qt Company Ltd 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 QtQml.XmlListModel
-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
- function 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/geoflickr/flickr.qrc b/examples/positioning/geoflickr/flickr.qrc
deleted file mode 100644
index 1019f7d8..00000000
--- a/examples/positioning/geoflickr/flickr.qrc
+++ /dev/null
@@ -1,30 +0,0 @@
-<!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/geoflickr/flickrcommon/Progress.qml b/examples/positioning/geoflickr/flickrcommon/Progress.qml
deleted file mode 100644
index 36faffbc..00000000
--- a/examples/positioning/geoflickr/flickrcommon/Progress.qml
+++ /dev/null
@@ -1,82 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** BSD License Usage
-** Alternatively, 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 The Qt Company Ltd 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 real 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/geoflickr/flickrcommon/RestModel.qml b/examples/positioning/geoflickr/flickrcommon/RestModel.qml
deleted file mode 100644
index 56cd4e84..00000000
--- a/examples/positioning/geoflickr/flickrcommon/RestModel.qml
+++ /dev/null
@@ -1,74 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2021 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** BSD License Usage
-** Alternatively, 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 The Qt Company Ltd 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 QtQml.XmlListModel
-
-//! [restmodel]
-XmlListModel {
- property var coordinate
-
- source: "https://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"
-
- XmlListModelRole { name: "title"; elementName: ""; attributeName: "title" }
- XmlListModelRole { name: "datetaken"; elementName: ""; attributeName: "datetaken" }
- XmlListModelRole { name: "farm"; elementName: ""; attributeName: "farm" }
- XmlListModelRole { name: "server"; elementName: ""; attributeName: "server" }
- XmlListModelRole { name: "id"; elementName: ""; attributeName: "id" }
- XmlListModelRole { name: "secret"; elementName: ""; attributeName: "secret" }
-}
-//! [restmodel]
diff --git a/examples/positioning/geoflickr/flickrcommon/ScrollBar.qml b/examples/positioning/geoflickr/flickrcommon/ScrollBar.qml
deleted file mode 100644
index 4c6c21c9..00000000
--- a/examples/positioning/geoflickr/flickrcommon/ScrollBar.qml
+++ /dev/null
@@ -1,90 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** BSD License Usage
-** Alternatively, 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 The Qt Company Ltd 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 var 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/geoflickr/flickrcommon/Slider.qml b/examples/positioning/geoflickr/flickrcommon/Slider.qml
deleted file mode 100644
index f323ab22..00000000
--- a/examples/positioning/geoflickr/flickrcommon/Slider.qml
+++ /dev/null
@@ -1,86 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** BSD License Usage
-** Alternatively, 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 The Qt Company Ltd 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/geoflickr/flickrmobile/Button.qml b/examples/positioning/geoflickr/flickrmobile/Button.qml
deleted file mode 100644
index 5f2fcba2..00000000
--- a/examples/positioning/geoflickr/flickrmobile/Button.qml
+++ /dev/null
@@ -1,88 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** BSD License Usage
-** Alternatively, 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 The Qt Company Ltd 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/geoflickr/flickrmobile/GeoTab.qml b/examples/positioning/geoflickr/flickrmobile/GeoTab.qml
deleted file mode 100644
index 4a9a4aba..00000000
--- a/examples/positioning/geoflickr/flickrmobile/GeoTab.qml
+++ /dev/null
@@ -1,182 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** BSD License Usage
-** Alternatively, 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 The Qt Company Ltd 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
-
-Rectangle {
- id: container
- property int maxX: parent.width; property int maxY: parent.height
-//! [props]
- property var 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"; }
-
- onSourceErrorChanged: {
- if (sourceError == PositionSource.UpdateTimeoutError) {
- activityText.fadeOut = true
- return
- }
-
- if (sourceError == PositionSource.NoError)
- return
-
- console.log("Source error: " + sourceError)
- activityText.fadeOut = true
- stop()
- }
- }
-//! [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";
- }
-
- Text {
- id: activityText; color: "white"; font.bold: true;
- anchors { top: planet.bottom; horizontalCenter: parent.horizontalCenter }
- property bool fadeOut: false
-
- text: {
- if (fadeOut)
- return qsTr("Timeout occurred!");
- else if (positionSource.active)
- return qsTr("Retrieving update...")
- else
- return ""
- }
-
- Timer {
- id: fadeoutTimer; repeat: false; interval: 3000; running: activityText.fadeOut
- onTriggered: { activityText.fadeOut = false; }
- }
- }
-}
diff --git a/examples/positioning/geoflickr/flickrmobile/GridDelegate.qml b/examples/positioning/geoflickr/flickrmobile/GridDelegate.qml
deleted file mode 100644
index 6d1e39c8..00000000
--- a/examples/positioning/geoflickr/flickrmobile/GridDelegate.qml
+++ /dev/null
@@ -1,124 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** BSD License Usage
-** Alternatively, 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 The Qt Company Ltd 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.Window 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
- function onButton2Clicked() {
- if (scaleMe.state == 'Details' ) scaleMe.state = 'Show'
- }
- }
-
- states: [
- State {
- name: "Show"; when: thumb.status == Image.Ready
- PropertyChanges { target: scaleMe; scale: Math.round(Screen.pixelDensity / 4) }
- },
- State {
- name: "Details"
- PropertyChanges { target: scaleMe; scale: Math.round(Screen.pixelDensity / 4)}
- 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/geoflickr/flickrmobile/ImageDetails.qml b/examples/positioning/geoflickr/flickrmobile/ImageDetails.qml
deleted file mode 100644
index 10c0dad9..00000000
--- a/examples/positioning/geoflickr/flickrmobile/ImageDetails.qml
+++ /dev/null
@@ -1,166 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** BSD License Usage
-** Alternatively, 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 The Qt Company Ltd 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 var frontContainer: containerFront
- property string photoTitle: ""
- property string photoDate
- property string photoUrl
- property real 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/geoflickr/flickrmobile/ListDelegate.qml b/examples/positioning/geoflickr/flickrmobile/ListDelegate.qml
deleted file mode 100644
index f83f345c..00000000
--- a/examples/positioning/geoflickr/flickrmobile/ListDelegate.qml
+++ /dev/null
@@ -1,76 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** BSD License Usage
-** Alternatively, 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 The Qt Company Ltd 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/geoflickr/flickrmobile/TitleBar.qml b/examples/positioning/geoflickr/flickrmobile/TitleBar.qml
deleted file mode 100644
index 883042ae..00000000
--- a/examples/positioning/geoflickr/flickrmobile/TitleBar.qml
+++ /dev/null
@@ -1,87 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** BSD License Usage
-** Alternatively, 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 The Qt Company Ltd 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: "GeoFlickr (QML)"
- font.bold: true; color: "White"; style: Text.Raised; styleColor: "Black"
- }
- }
-
- transitions: Transition {
- NumberAnimation { properties: "x"; easing.type: Easing.InOutQuad }
- }
-}
diff --git a/examples/positioning/geoflickr/flickrmobile/ToolBar.qml b/examples/positioning/geoflickr/flickrmobile/ToolBar.qml
deleted file mode 100644
index cb0a0fd7..00000000
--- a/examples/positioning/geoflickr/flickrmobile/ToolBar.qml
+++ /dev/null
@@ -1,74 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** BSD License Usage
-** Alternatively, 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 The Qt Company Ltd 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/geoflickr/flickrmobile/images/gloss.png b/examples/positioning/geoflickr/flickrmobile/images/gloss.png
deleted file mode 100644
index dff2bd34..00000000
--- a/examples/positioning/geoflickr/flickrmobile/images/gloss.png
+++ /dev/null
Binary files differ
diff --git a/examples/positioning/geoflickr/flickrmobile/images/lineedit.png b/examples/positioning/geoflickr/flickrmobile/images/lineedit.png
deleted file mode 100644
index a6afb512..00000000
--- a/examples/positioning/geoflickr/flickrmobile/images/lineedit.png
+++ /dev/null
Binary files differ
diff --git a/examples/positioning/geoflickr/flickrmobile/images/lineedit.sci b/examples/positioning/geoflickr/flickrmobile/images/lineedit.sci
deleted file mode 100644
index 054bff78..00000000
--- a/examples/positioning/geoflickr/flickrmobile/images/lineedit.sci
+++ /dev/null
@@ -1,5 +0,0 @@
-border.left: 10
-border.top: 10
-border.bottom: 10
-border.right: 10
-source: lineedit.png
diff --git a/examples/positioning/geoflickr/flickrmobile/images/moon.png b/examples/positioning/geoflickr/flickrmobile/images/moon.png
deleted file mode 100644
index 1583ac83..00000000
--- a/examples/positioning/geoflickr/flickrmobile/images/moon.png
+++ /dev/null
Binary files differ
diff --git a/examples/positioning/geoflickr/flickrmobile/images/quit.png b/examples/positioning/geoflickr/flickrmobile/images/quit.png
deleted file mode 100644
index aef73853..00000000
--- a/examples/positioning/geoflickr/flickrmobile/images/quit.png
+++ /dev/null
Binary files differ
diff --git a/examples/positioning/geoflickr/flickrmobile/images/star.png b/examples/positioning/geoflickr/flickrmobile/images/star.png
deleted file mode 100644
index bdcd3690..00000000
--- a/examples/positioning/geoflickr/flickrmobile/images/star.png
+++ /dev/null
Binary files differ
diff --git a/examples/positioning/geoflickr/flickrmobile/images/stripes.png b/examples/positioning/geoflickr/flickrmobile/images/stripes.png
deleted file mode 100644
index 75d2bf6c..00000000
--- a/examples/positioning/geoflickr/flickrmobile/images/stripes.png
+++ /dev/null
Binary files differ
diff --git a/examples/positioning/geoflickr/flickrmobile/images/sun.png b/examples/positioning/geoflickr/flickrmobile/images/sun.png
deleted file mode 100644
index c5fd36ed..00000000
--- a/examples/positioning/geoflickr/flickrmobile/images/sun.png
+++ /dev/null
Binary files differ
diff --git a/examples/positioning/geoflickr/flickrmobile/images/titlebar.png b/examples/positioning/geoflickr/flickrmobile/images/titlebar.png
deleted file mode 100644
index aa35c9e1..00000000
--- a/examples/positioning/geoflickr/flickrmobile/images/titlebar.png
+++ /dev/null
Binary files differ
diff --git a/examples/positioning/geoflickr/flickrmobile/images/titlebar.sci b/examples/positioning/geoflickr/flickrmobile/images/titlebar.sci
deleted file mode 100644
index 0418d94c..00000000
--- a/examples/positioning/geoflickr/flickrmobile/images/titlebar.sci
+++ /dev/null
@@ -1,5 +0,0 @@
-border.left: 10
-border.top: 12
-border.bottom: 12
-border.right: 10
-source: titlebar.png
diff --git a/examples/positioning/geoflickr/flickrmobile/images/toolbutton.png b/examples/positioning/geoflickr/flickrmobile/images/toolbutton.png
deleted file mode 100644
index 11310013..00000000
--- a/examples/positioning/geoflickr/flickrmobile/images/toolbutton.png
+++ /dev/null
Binary files differ
diff --git a/examples/positioning/geoflickr/flickrmobile/images/toolbutton.sci b/examples/positioning/geoflickr/flickrmobile/images/toolbutton.sci
deleted file mode 100644
index 9e4f9653..00000000
--- a/examples/positioning/geoflickr/flickrmobile/images/toolbutton.sci
+++ /dev/null
@@ -1,5 +0,0 @@
-border.left: 15
-border.top: 4
-border.bottom: 4
-border.right: 15
-source: toolbutton.png
diff --git a/examples/positioning/geoflickr/flickrmobile/nmealog.txt b/examples/positioning/geoflickr/flickrmobile/nmealog.txt
deleted file mode 100644
index 8c8286dd..00000000
--- a/examples/positioning/geoflickr/flickrmobile/nmealog.txt
+++ /dev/null
@@ -1,1403 +0,0 @@
-$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/geoflickr/geoflickr.pro b/examples/positioning/geoflickr/geoflickr.pro
deleted file mode 100644
index 0bbfecd8..00000000
--- a/examples/positioning/geoflickr/geoflickr.pro
+++ /dev/null
@@ -1,15 +0,0 @@
-TEMPLATE = app
-TARGET = geoflickr
-
-QT += qml quick network positioning xmlpatterns
-SOURCES += qmllocationflickr.cpp
-
-RESOURCES += \
- flickr.qrc
-
-OTHER_FILES += flickr.qml \
- flickrcommon/* \
- flickrmobile/*
-
-target.path = $$[QT_INSTALL_EXAMPLES]/positioning/geoflickr
-INSTALLS += target
diff --git a/examples/positioning/geoflickr/geoflickr.qmlproject b/examples/positioning/geoflickr/geoflickr.qmlproject
deleted file mode 100644
index d4909f86..00000000
--- a/examples/positioning/geoflickr/geoflickr.qmlproject
+++ /dev/null
@@ -1,16 +0,0 @@
-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/geoflickr/qmllocationflickr.cpp b/examples/positioning/geoflickr/qmllocationflickr.cpp
deleted file mode 100644
index 61176cb1..00000000
--- a/examples/positioning/geoflickr/qmllocationflickr.cpp
+++ /dev/null
@@ -1,68 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** BSD License Usage
-** Alternatively, 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 The Qt Company Ltd 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 = QStringLiteral("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/CMakeLists.txt b/examples/positioning/logfilepositionsource/CMakeLists.txt
deleted file mode 100644
index b9064aea..00000000
--- a/examples/positioning/logfilepositionsource/CMakeLists.txt
+++ /dev/null
@@ -1,54 +0,0 @@
-# Generated from logfilepositionsource.pro.
-
-cmake_minimum_required(VERSION 3.16)
-project(logfilepositionsource LANGUAGES CXX)
-
-set(CMAKE_INCLUDE_CURRENT_DIR ON)
-
-set(CMAKE_AUTOMOC ON)
-set(CMAKE_AUTORCC ON)
-set(CMAKE_AUTOUIC ON)
-
-if(NOT DEFINED INSTALL_EXAMPLESDIR)
- set(INSTALL_EXAMPLESDIR "examples")
-endif()
-
-set(INSTALL_EXAMPLEDIR "${INSTALL_EXAMPLESDIR}/positioning/logfilepositionsource")
-
-find_package(Qt6 COMPONENTS Positioning)
-find_package(Qt6 COMPONENTS Core)
-find_package(Qt6 COMPONENTS Widgets)
-
-qt_add_executable(logfilepositionsource
- clientapplication.cpp clientapplication.h
- logfilepositionsource.cpp logfilepositionsource.h
- main.cpp
-)
-set_target_properties(logfilepositionsource PROPERTIES
- WIN32_EXECUTABLE TRUE
- MACOSX_BUNDLE TRUE
-)
-target_link_libraries(logfilepositionsource PRIVATE
- Qt::Core
- Qt::Positioning
- Qt::Widgets
-)
-
-
-# Resources:
-set(logfile_resource_files
- "simplelog.txt"
-)
-
-qt6_add_resources(logfilepositionsource "logfile"
- PREFIX
- "/"
- FILES
- ${logfile_resource_files}
-)
-
-install(TARGETS logfilepositionsource
- RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}"
- BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}"
- LIBRARY DESTINATION "${INSTALL_EXAMPLEDIR}"
-)
diff --git a/examples/positioning/logfilepositionsource/clientapplication.cpp b/examples/positioning/logfilepositionsource/clientapplication.cpp
deleted file mode 100644
index 1dca07af..00000000
--- a/examples/positioning/logfilepositionsource/clientapplication.cpp
+++ /dev/null
@@ -1,72 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** BSD License Usage
-** Alternatively, 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 The Qt Company Ltd 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
deleted file mode 100644
index 4ffd5486..00000000
--- a/examples/positioning/logfilepositionsource/clientapplication.h
+++ /dev/null
@@ -1,74 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** BSD License Usage
-** Alternatively, 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 The Qt Company Ltd 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/doc/src/logfilepositionsource.qdoc b/examples/positioning/logfilepositionsource/doc/src/logfilepositionsource.qdoc
deleted file mode 100644
index 53eb274a..00000000
--- a/examples/positioning/logfilepositionsource/doc/src/logfilepositionsource.qdoc
+++ /dev/null
@@ -1,94 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the documentation of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:FDL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Free Documentation License Usage
-** Alternatively, this file may be used under the terms of the GNU Free
-** Documentation License version 1.3 as published by the Free Software
-** Foundation and appearing in the file included in the packaging of
-** this file. Please review the following information to ensure
-** the GNU Free Documentation License version 1.3 requirements
-** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-/*!
-\example logfilepositionsource
-\title Log File Position Source (C++)
-\ingroup qtpositioning-examples
-
-\brief Logfile Position Source shows how to create and work with a custom
- position source. It can be useful for simulating GPS data, or when the
- data is received in some custom format.
-
-\include examples-run.qdocinc
-
-\section1 Creating custom Position Source
-
-In this example, the data is read from a text file, \e simplelog.txt. The file
-specifies position data using a simple text format: it contains one position
-update per line, where each line contains a date/time, a latitude and a
-longitude, separated by spaces. The date/time is in ISO 8601 format and the
-latitude and longitude are in degrees decimal format.
-Here is an excerpt from \e simplelog.txt:
-
-\code
-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
-\endcode
-
-We create a custom \c LogFilePositionSource class, which derives from
-\l QGeoPositionInfoSource. It reads position data from the file and distributes
-it via the \l {QGeoPositionInfoSource::}{positionUpdated()} signal.
-
-The resulting time and position information is then displayed on the screen as
-simple text in date/time and latitude/longitude format.
-
-Here is the definition of the \c LogFilePositionSource class:
-
-\quotefromfile logfilepositionsource/logfilepositionsource.h
-\skipto class LogFilePositionSource
-\printuntil };
-
-The main methods overrided by the subclass are:
-
-\list
- \li \l{QGeoPositionInfoSource::startUpdates()}{startUpdates()}: called by client applications
- to start regular position updates.
- \li \l{QGeoPositionInfoSource::stopUpdates()}{stopUpdates()}: called by client applications to
- stop regular position updates.
- \li \l{QGeoPositionInfoSource::requestUpdate()}{requestUpdate()}: called by client applications
- to request a single update, with a specified timeout.
-\endlist
-
-When a position update is available, the subclass emits the
-\l{QGeoPositionInfoSource::positionUpdated()}{positionUpdated()} signal.
-
-Here are the key methods in the class implementation:
-
-\quotefromfile logfilepositionsource/logfilepositionsource.cpp
-\skipto LogFilePositionSource::LogFilePositionSource
-\printuntil /^\}/
-\skipto LogFilePositionSource::startUpdates
-\printuntil /^\}/
-\skipto LogFilePositionSource::stopUpdates
-\printuntil /^\}/
-\skipto LogFilePositionSource::requestUpdate
-\printuntil /^\}/
-\printuntil LogFilePositionSource::readNextPosition
-\printuntil /^\}/
-*/
diff --git a/examples/positioning/logfilepositionsource/logfile.qrc b/examples/positioning/logfilepositionsource/logfile.qrc
deleted file mode 100644
index 61213949..00000000
--- a/examples/positioning/logfilepositionsource/logfile.qrc
+++ /dev/null
@@ -1,5 +0,0 @@
-<RCC>
- <qresource prefix="/">
- <file>simplelog.txt</file>
- </qresource>
-</RCC>
diff --git a/examples/positioning/logfilepositionsource/logfilepositionsource.cpp b/examples/positioning/logfilepositionsource/logfilepositionsource.cpp
deleted file mode 100644
index 31bb0cc3..00000000
--- a/examples/positioning/logfilepositionsource/logfilepositionsource.cpp
+++ /dev/null
@@ -1,136 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** BSD License Usage
-** Alternatively, 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 The Qt Company Ltd 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(":/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()
-{
- lastError = QGeoPositionInfoSource::NoError;
- 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
- lastError = QGeoPositionInfoSource::NoError;
- if (logFile->canReadLine()) {
- readNextPosition();
- } else {
- lastError = QGeoPositionInfoSource::UpdateTimeoutError;
- emit QGeoPositionInfoSource::errorOccurred(lastError);
- }
-}
-
-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 lastError;
-}
diff --git a/examples/positioning/logfilepositionsource/logfilepositionsource.h b/examples/positioning/logfilepositionsource/logfilepositionsource.h
deleted file mode 100644
index aca72ab2..00000000
--- a/examples/positioning/logfilepositionsource/logfilepositionsource.h
+++ /dev/null
@@ -1,88 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** BSD License Usage
-** Alternatively, 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 The Qt Company Ltd 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 <QtPositioning/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 override;
-
- PositioningMethods supportedPositioningMethods() const override;
- int minimumUpdateInterval() const override;
- Error error() const override;
-
-public slots:
- virtual void startUpdates() override;
- virtual void stopUpdates() override;
-
- virtual void requestUpdate(int timeout = 5000) override;
-
-private slots:
- void readNextPosition();
-
-private:
- QFile *logFile;
- QTimer *timer;
- QGeoPositionInfo lastPosition;
- Error lastError = QGeoPositionInfoSource::NoError;
-};
-
-#endif
diff --git a/examples/positioning/logfilepositionsource/logfilepositionsource.pro b/examples/positioning/logfilepositionsource/logfilepositionsource.pro
deleted file mode 100644
index cb9e30ae..00000000
--- a/examples/positioning/logfilepositionsource/logfilepositionsource.pro
+++ /dev/null
@@ -1,16 +0,0 @@
-TEMPLATE = app
-TARGET = logfilepositionsource
-QT = positioning core widgets
-
-
-HEADERS = logfilepositionsource.h \
- clientapplication.h
-SOURCES = logfilepositionsource.cpp \
- clientapplication.cpp \
- main.cpp
-
-RESOURCES += \
- logfile.qrc
-
-target.path = $$[QT_INSTALL_EXAMPLES]/positioning/logfilepositionsource
-INSTALLS += target
diff --git a/examples/positioning/logfilepositionsource/main.cpp b/examples/positioning/logfilepositionsource/main.cpp
deleted file mode 100644
index dcc05a1a..00000000
--- a/examples/positioning/logfilepositionsource/main.cpp
+++ /dev/null
@@ -1,62 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** BSD License Usage
-** Alternatively, 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 The Qt Company Ltd 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
deleted file mode 100644
index d016b2a8..00000000
--- a/examples/positioning/logfilepositionsource/simplelog.txt
+++ /dev/null
@@ -1,156 +0,0 @@
-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
deleted file mode 100644
index 50c328b3..00000000
--- a/examples/positioning/positioning.pro
+++ /dev/null
@@ -1,9 +0,0 @@
-TEMPLATE = subdirs
-
-qtHaveModule(widgets): SUBDIRS += logfilepositionsource
-qtHaveModule(quick) {
- SUBDIRS += satelliteinfo
-
- qtHaveModule(xmlpatterns): SUBDIRS += geoflickr
- qtHaveModule(network): SUBDIRS += weatherinfo
-}
diff --git a/examples/positioning/satelliteinfo/CMakeLists.txt b/examples/positioning/satelliteinfo/CMakeLists.txt
deleted file mode 100644
index dd90a6e1..00000000
--- a/examples/positioning/satelliteinfo/CMakeLists.txt
+++ /dev/null
@@ -1,49 +0,0 @@
-# Generated from satelliteinfo.pro.
-
-cmake_minimum_required(VERSION 3.16)
-project(satelliteinfo LANGUAGES CXX)
-
-set(CMAKE_INCLUDE_CURRENT_DIR ON)
-
-set(CMAKE_AUTOMOC ON)
-set(CMAKE_AUTORCC ON)
-set(CMAKE_AUTOUIC ON)
-
-if(NOT DEFINED INSTALL_EXAMPLESDIR)
- set(INSTALL_EXAMPLESDIR "examples")
-endif()
-
-set(INSTALL_EXAMPLEDIR "${INSTALL_EXAMPLESDIR}/positioning/satelliteinfo")
-
-find_package(Qt6 COMPONENTS Core)
-find_package(Qt6 COMPONENTS Gui)
-find_package(Qt6 COMPONENTS Quick)
-find_package(Qt6 COMPONENTS Positioning)
-
-qt_add_executable(satelliteinfo
- main.cpp
- satellitemodel.cpp satellitemodel.h
-)
-set_target_properties(satelliteinfo PROPERTIES
- WIN32_EXECUTABLE TRUE
- MACOSX_BUNDLE TRUE
-)
-target_link_libraries(satelliteinfo PRIVATE
- Qt::Core
- Qt::Gui
- Qt::Positioning
- Qt::Quick
-)
-
-qt_add_qml_module(satelliteinfo
- URI Local
- VERSION 1.0
- QML_FILES satelliteinfo.qml
- NO_RESOURCE_TARGET_PATH
-)
-
-install(TARGETS satelliteinfo
- RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}"
- BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}"
- LIBRARY DESTINATION "${INSTALL_EXAMPLEDIR}"
-)
diff --git a/examples/positioning/satelliteinfo/doc/images/example-satelliteinfo.png b/examples/positioning/satelliteinfo/doc/images/example-satelliteinfo.png
deleted file mode 100644
index aa9a217c..00000000
--- a/examples/positioning/satelliteinfo/doc/images/example-satelliteinfo.png
+++ /dev/null
Binary files differ
diff --git a/examples/positioning/satelliteinfo/doc/src/satelliteinfo.qdoc b/examples/positioning/satelliteinfo/doc/src/satelliteinfo.qdoc
deleted file mode 100644
index fb314ea3..00000000
--- a/examples/positioning/satelliteinfo/doc/src/satelliteinfo.qdoc
+++ /dev/null
@@ -1,134 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2021 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the documentation of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:FDL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Free Documentation License Usage
-** Alternatively, this file may be used under the terms of the GNU Free
-** Documentation License version 1.3 as published by the Free Software
-** Foundation and appearing in the file included in the packaging of
-** this file. Please review the following information to ensure
-** the GNU Free Documentation License version 1.3 requirements
-** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-/*!
- \example satelliteinfo
- \title SatelliteInfo (C++/QML)
-
- \brief The SatelliteInfo example shows the available satellites
- at the user's current position and marks the satellites
- currently contributing to the GPS fix as pink.
-
- \ingroup qtpositioning-examples
-
- Key \l{Qt Positioning} classes used in this example:
-
- \list
- \li \l{QGeoSatelliteInfo}
- \li \l{QGeoSatelliteInfoSource}
- \endlist
-
- \image ../images/example-satelliteinfo.png
-
- The example displays the signal strength of all satellites in view. Any
- satellite that is currently used to calculate the GPS fix is marked pink.
- The number at the bottom of each signal bar is the individual satellite
- identifier.
-
- The application operates in three different modes:
-
- \table
- \header
- \li Application mode
- \li Description
- \row
- \li running
- \li The application continuously queries the system for satellite updates. When new data
- is available it will be displayed.
- \row
- \li stopped
- \li The application stops updating the satellite information.
- \row
- \li single
- \li The application makes a single update request with a timeout of 10s. The display
- remains empty until the request was answered by the system.
- \endtable
-
- If the platform does not provide satellite information, the application
- automatically switches into a demo mode, whereby it continuously switches
- between predefined sets of satellite data.
-
- \include examples-run.qdocinc
-
- \section1 Satellite Info Model
-
- The key part of this example is the \c SatelliteModel data model. It
- represents the information about the satellites.
- It uses the \l Q_PROPERTY and \l QML_ELEMENT macros, so that it can be
- available from QML.
-
- \snippet satelliteinfo/satellitemodel.h 0
- \snippet satelliteinfo/satellitemodel.h 1
- \snippet satelliteinfo/satellitemodel.h 2
-
- The \c SatelliteModel object creates an instance of
- \l QGeoSatelliteInfoSource using the \l {QGeoSatelliteInfoSource::}
- {createDefaultSource()} method. Once the source is created, the
- \l {QGeoSatelliteInfoSource::}{satellitesInViewUpdated()} and
- \l {QGeoSatelliteInfoSource::}{satellitesInUseUpdated()} signals are used
- to notify about the changes in satellite information.
-
- \snippet satelliteinfo/satellitemodel.cpp 0
-
- The aforementioned signals provide the lists of \l QGeoSatelliteInfo
- objects that represent satellites in view and satellites in use,
- respectively. This data is used to update the model.
-
- \snippet satelliteinfo/satellitemodel.cpp 1
-
- If the satellite info source is not available, demo data is used to simulate
- satellite information updates.
-
- \snippet satelliteinfo/satellitemodel.cpp 2
-
- The model is later used in QML to visualize the data.
-
- \section1 Exposing the Model to QML
-
- To expose \c SatelliteModel to QML, we use the \l QML_ELEMENT macro.
- See the \l QQmlEngine class documentation for more details on it.
-
- To make the type available in QML, we need to update our build accordingly.
-
- \section2 CMake Build
-
- For a CMake-based build, we need to add the following to the
- \c {CMakeLists.txt}:
-
- \quotefromfile satelliteinfo/CMakeLists.txt
- \skipto qt_add_qml_module(satelliteinfo
- \printuntil )
-
- \section2 qmake Build
-
- For a qmake build, we need to modify the \c {satelliteinfo.pro} file in the
- following way:
-
- \quotefromfile satelliteinfo/satelliteinfo.pro
- \skipto CONFIG
- \printuntil QML_IMPORT_MAJOR_VERSION
-*/
diff --git a/examples/positioning/satelliteinfo/main.cpp b/examples/positioning/satelliteinfo/main.cpp
deleted file mode 100644
index 4a96c4c9..00000000
--- a/examples/positioning/satelliteinfo/main.cpp
+++ /dev/null
@@ -1,71 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** BSD License Usage
-** Alternatively, 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 The Qt Company Ltd 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 <QtQml/qqml.h>
-#include <QtQml/QQmlEngine>
-#include <QtQuick/QQuickView>
-#include "satellitemodel.h"
-
-int main(int argc, char *argv[])
-{
- QGuiApplication app(argc, argv);
-
- QQuickView view;
- view.setSource(QStringLiteral("qrc:///satelliteinfo.qml"));
- view.setResizeMode(QQuickView::SizeRootObjectToView);
-
- QObject::connect(view.engine(), SIGNAL(quit()), qApp, SLOT(quit()));
- view.show();
-
- return app.exec();
-}
-
-
diff --git a/examples/positioning/satelliteinfo/satelliteinfo.pro b/examples/positioning/satelliteinfo/satelliteinfo.pro
deleted file mode 100644
index ebee0945..00000000
--- a/examples/positioning/satelliteinfo/satelliteinfo.pro
+++ /dev/null
@@ -1,26 +0,0 @@
-TEMPLATE = app
-TARGET = satelliteinfo
-
-QT += quick positioning
-
-CONFIG += qmltypes
-QML_IMPORT_NAME = Local
-QML_IMPORT_MAJOR_VERSION = 1
-
-SOURCES += main.cpp \
- satellitemodel.cpp
-
-HEADERS += \
- satellitemodel.h
-
-OTHER_FILES += \
- satelliteinfo.qml
-
-RESOURCES += \
- satelliteinfo.qrc
-
-target.path = $$[QT_INSTALL_EXAMPLES]/positioning/satelliteinfo
-INSTALLS += target
-
-
-
diff --git a/examples/positioning/satelliteinfo/satelliteinfo.qml b/examples/positioning/satelliteinfo/satelliteinfo.qml
deleted file mode 100644
index ef0c965e..00000000
--- a/examples/positioning/satelliteinfo/satelliteinfo.qml
+++ /dev/null
@@ -1,316 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** BSD License Usage
-** Alternatively, 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 The Qt Company Ltd 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 Local 1.0
-
-Rectangle {
- id: page
- width: 360
- height: 360
-
- SatelliteModel {
- id: satelliteModel
- running: true
- onErrorFound: function(code) {
- errorLabel.text = qsTr("Last Error: %1", "%1=error number").arg(code)
- }
- }
-
- Item {
- id: header
- height: column.height + 30
- width: parent.width
- state: "running"
-
- anchors.top: parent.top
-
- function toggle()
- {
- switch (header.state) {
- case "single": header.state = "running"; break;
- default:
- case "running": header.state = "stopped"; break;
- case "stopped": header.state = "single"; break;
- }
- }
-
- function enterSingle()
- {
- satelliteModel.singleRequestMode = true;
- satelliteModel.running = true;
- }
-
- function enterRunning()
- {
- satelliteModel.running = false;
- satelliteModel.singleRequestMode = false;
- satelliteModel.running = true;
- }
-
- states: [
- State {
- name: "stopped"
- PropertyChanges { target: startStop; bText: qsTr("Single") }
- PropertyChanges {
- target: modeLabel; text: qsTr("Current Mode: stopped")
- }
- PropertyChanges { target: satelliteModel; running: false; }
- },
- State {
- name: "single"
- PropertyChanges { target: startStop; bText: qsTr("Start") }
- PropertyChanges {
- target: modeLabel; text: qsTr("Current Mode: single")
- }
- StateChangeScript { script: header.enterSingle(); }
- },
- State {
- name: "running"
- PropertyChanges { target: startStop; bText: qsTr("Stop") }
- PropertyChanges {
- target: modeLabel; text: qsTr("Current Mode: running")
- }
- StateChangeScript { script: header.enterRunning(); }
- }
- ]
-
- Column {
- id: column
- anchors.verticalCenter: parent.verticalCenter
- anchors.left: parent.left
- anchors.margins: 7
- Text {
- id: overview
- text: satelliteModel.satelliteInfoAvailable
- ? qsTr("Known Satellites")
- : qsTr("Known Satellites (Demo Mode)")
- font.pointSize: 12
- }
-
- Text {
- id: modeLabel
- font.pointSize: 12
- }
-
- Text {
- id: errorLabel
- text: qsTr("Last Error: None")
- font.pointSize: 12
- }
- }
- Rectangle {
- id: startStop
- border.color: "black"
- border.width: 3
- anchors.right: parent.right
- anchors.verticalCenter: parent.verticalCenter
- anchors.margins: 7
- radius: 10
- height: maxField.height*1.4
- width: maxField.width*1.4
-
- property string bText: qsTr("Stop");
-
- Text { //need this for sizing
- id: maxField
- text: qsTr("Single")
- font.pointSize: 13
- opacity: 0
- }
-
- Text {
- id: buttonText
- anchors.centerIn: parent
- text: startStop.bText
- font.pointSize: 13
- }
-
- MouseArea {
- anchors.fill: parent
- onPressed: { startStop.color = "lightGray" }
- onClicked: { header.toggle() }
- onReleased: { startStop.color = "white" }
- }
- }
- }
-
- Rectangle {
- anchors.top: header.bottom
- anchors.bottom: parent.bottom
- anchors.left: parent.left
- anchors.right: parent.right
- anchors.margins: rect.myMargin
- border.width: 3
- radius: 10
- border.color: "black"
-
- Item {
- id: rect
- anchors.fill: parent
- anchors.margins: myMargin
- property int myMargin: 7
-
- Row {
- id: view
- property int rows: repeater.model.entryCount
- property int singleWidth: ((rect.width - scale.width)/rows )-rect.myMargin
- spacing: rect.myMargin
-
- Rectangle {
- id: scale
- width: strengthLabel.width+10
- height: rect.height
- color: "#32cd32"
- Text {
- anchors.horizontalCenter: parent.horizontalCenter
- anchors.bottom: lawngreenRect.top
- font.pointSize: 11
- text: "50"
- }
- Text {
- anchors.horizontalCenter: parent.horizontalCenter
- anchors.top: parent.top
- font.pointSize: 11
- text: "100"
- }
-
- Rectangle {
- id: redRect
- width: parent.width
- color: "red"
- height: parent.height*10/100
- anchors.bottom: parent.bottom
- Text {
- id: strengthLabel
- anchors.horizontalCenter: parent.horizontalCenter
- anchors.bottom: parent.bottom
- font.pointSize: 11
- text: "00"
- }
- }
- Rectangle {
- id: orangeRect
- height: parent.height*10/100
- anchors.bottom: redRect.top
- width: parent.width
- color: "#ffa500"
- Text {
- anchors.horizontalCenter: parent.horizontalCenter
- anchors.bottom: parent.bottom
- font.pointSize: 11
- text: "10"
- }
- }
- Rectangle {
- id: goldRect
- height: parent.height*10/100
- anchors.bottom: orangeRect.top
- width: parent.width
- color: "#ffd700"
- Text {
- anchors.horizontalCenter: parent.horizontalCenter
- anchors.bottom: parent.bottom
- font.pointSize: 11
- text: "20"
- }
- }
- Rectangle {
- id: yellowRect
- height: parent.height*10/100
- anchors.bottom: goldRect.top
- width: parent.width
- color: "yellow"
- Text {
- anchors.horizontalCenter: parent.horizontalCenter
- anchors.bottom: parent.bottom
- font.pointSize: 11
- text: "30"
- }
- }
- Rectangle {
- id: lawngreenRect
- height: parent.height*10/100
- anchors.bottom: yellowRect.top
- width: parent.width
- color: "#7cFc00"
- Text {
- anchors.horizontalCenter: parent.horizontalCenter
- anchors.bottom: parent.bottom
- font.pointSize: 11
- text: "40"
- }
- }
- }
-
- Repeater {
- id: repeater
- model: satelliteModel
- delegate: Rectangle {
- height: rect.height
- width: view.singleWidth
- Rectangle {
- anchors.bottom: parent.bottom
- width: parent.width
- height: parent.height*signalStrength/100
- color: isInUse ? "#7FFF0000" : "#7F0000FF"
- }
- Text {
- anchors.horizontalCenter: parent.horizontalCenter
- anchors.bottom: parent.bottom
- text: satelliteIdentifier
- }
- }
- }
- }
- }
- }
-}
-
diff --git a/examples/positioning/satelliteinfo/satelliteinfo.qrc b/examples/positioning/satelliteinfo/satelliteinfo.qrc
deleted file mode 100644
index 8745f87e..00000000
--- a/examples/positioning/satelliteinfo/satelliteinfo.qrc
+++ /dev/null
@@ -1,5 +0,0 @@
-<RCC>
- <qresource prefix="/">
- <file>satelliteinfo.qml</file>
- </qresource>
-</RCC>
diff --git a/examples/positioning/satelliteinfo/satellitemodel.cpp b/examples/positioning/satelliteinfo/satellitemodel.cpp
deleted file mode 100644
index 77c89035..00000000
--- a/examples/positioning/satelliteinfo/satellitemodel.cpp
+++ /dev/null
@@ -1,324 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** BSD License Usage
-** Alternatively, 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 The Qt Company Ltd 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 "satellitemodel.h"
-#include <QTimer>
-#include <QDebug>
-
-//! [0]
-SatelliteModel::SatelliteModel(QObject *parent) :
- QAbstractListModel(parent), source(0), m_componentCompleted(false), m_running(false),
- m_runningRequested(false), demo(false), isSingle(false), singleRequestServed(false)
-{
- source = QGeoSatelliteInfoSource::createDefaultSource(this);
- if (!demo && !source) {
- qWarning() << "No satellite data source found. Changing to demo mode.";
- demo = true;
- }
- if (!demo) {
- source->setUpdateInterval(3000);
- connect(source, SIGNAL(satellitesInViewUpdated(QList<QGeoSatelliteInfo>)),
- this, SLOT(satellitesInViewUpdated(QList<QGeoSatelliteInfo>)));
- connect(source, SIGNAL(satellitesInUseUpdated(QList<QGeoSatelliteInfo>)),
- this, SLOT(satellitesInUseUpdated(QList<QGeoSatelliteInfo>)));
- connect(source, SIGNAL(errorOccurred(QGeoSatelliteInfoSource::Error)),
- this, SLOT(error(QGeoSatelliteInfoSource::Error)));
- }
-
- if (demo) {
- timer = new QTimer(this);
- connect(timer, SIGNAL(timeout()), this, SLOT(updateDemoData()));
- timer->start(3000);
- }
-}
-//! [0]
-
-int SatelliteModel::rowCount(const QModelIndex &parent) const
-{
- Q_UNUSED(parent);
- if (!source && !demo)
- return 0;
-
- return knownSatellites.count();
-}
-
-QVariant SatelliteModel::data(const QModelIndex &index, int role) const
-{
- if (!demo && !source)
- return QVariant();
-
- if (!index.isValid() || index.row() < 0)
- return QVariant();
-
- if (index.row() >= knownSatellites.count()) {
- qWarning() << "SatelliteModel: Index out of bound";
- return QVariant();
- }
-
- const QGeoSatelliteInfo &info = knownSatellites.at(index.row());
- switch (role) {
- case IdentifierRole:
- return info.satelliteIdentifier();
- case InUseRole:
- return satellitesInUse.contains(info.satelliteIdentifier());
- case SignalStrengthRole:
- return info.signalStrength();
- case ElevationRole:
- if (!info.hasAttribute(QGeoSatelliteInfo::Elevation))
- return QVariant();
- return info.attribute(QGeoSatelliteInfo::Elevation);
- case AzimuthRole:
- if (!info.hasAttribute(QGeoSatelliteInfo::Azimuth))
- return QVariant();
- return info.attribute(QGeoSatelliteInfo::Azimuth);
- default:
- break;
-
- }
-
- return QVariant();
-}
-
-QHash<int, QByteArray> SatelliteModel::roleNames() const
-{
- QHash<int, QByteArray> roleNames;
- roleNames.insert(IdentifierRole, "satelliteIdentifier");
- roleNames.insert(InUseRole, "isInUse");
- roleNames.insert(SignalStrengthRole, "signalStrength");
- roleNames.insert(ElevationRole, "elevation");
- roleNames.insert(AzimuthRole, "azimuth");
- return roleNames;
-}
-
-void SatelliteModel::componentComplete()
-{
- m_componentCompleted = true;
- if (m_runningRequested)
- setRunning(true);
-}
-
-bool SatelliteModel::running() const
-{
- return m_running;
-}
-
-bool SatelliteModel::isSingleRequest() const
-{
- return isSingle;
-}
-
-void SatelliteModel::setSingleRequest(bool single)
-{
- if (running()) {
- qWarning() << "Cannot change single request mode while running";
- return;
- }
-
- if (single != isSingle) { //flag changed
- isSingle = single;
- emit singleRequestChanged();
- }
-}
-
-void SatelliteModel::setRunning(bool isActive)
-{
- if (!source && !demo)
- return;
-
- if (!m_componentCompleted) {
- m_runningRequested = isActive;
- return;
- }
-
- if (m_running == isActive)
- return;
-
- m_running = isActive;
-
- if (m_running) {
- clearModel();
- if (demo)
- timer->start(2000);
- else if (isSingleRequest())
- source->requestUpdate(10000);
- else
- source->startUpdates();
-
- if (demo)
- singleRequestServed = false;
- } else {
- if (demo)
- timer->stop();
- else if (!isSingleRequest())
- source->stopUpdates();
- }
-
-
- Q_EMIT runningChanged();
-}
-
-int SatelliteModel::entryCount() const
-{
- return knownSatellites.count();
-}
-
-bool SatelliteModel::canProvideSatelliteInfo() const
-{
- return !demo;
-}
-
-void SatelliteModel::clearModel()
-{
- beginResetModel();
- knownSatelliteIds.clear();
- knownSatellites.clear();
- satellitesInUse.clear();
- endResetModel();
-}
-
-//! [2]
-void SatelliteModel::updateDemoData()
-{
- static bool flag = true;
- QList<QGeoSatelliteInfo> satellites;
- if (flag) {
- for (int i = 0; i<5; i++) {
- QGeoSatelliteInfo info;
- info.setSatelliteIdentifier(i);
- info.setSignalStrength(20 + 20*i);
- satellites.append(info);
- }
- } else {
- for (int i = 0; i<9; i++) {
- QGeoSatelliteInfo info;
- info.setSatelliteIdentifier(i*2);
- info.setSignalStrength(20 + 10*i);
- satellites.append(info);
- }
- }
-
-
- satellitesInViewUpdated(satellites);
- flag ? satellitesInUseUpdated(QList<QGeoSatelliteInfo>() << satellites.at(2))
- : satellitesInUseUpdated(QList<QGeoSatelliteInfo>() << satellites.at(3));
- flag = !flag;
-
- emit errorFound(flag);
-
- if (isSingleRequest() && !singleRequestServed) {
- singleRequestServed = true;
- setRunning(false);
- }
-}
-//! [2]
-
-void SatelliteModel::error(QGeoSatelliteInfoSource::Error error)
-{
- emit errorFound((int)error);
-}
-
-QT_BEGIN_NAMESPACE
-inline bool operator<(const QGeoSatelliteInfo& a, const QGeoSatelliteInfo& b)
-{
- return a.satelliteIdentifier() < b.satelliteIdentifier();
-}
-QT_END_NAMESPACE
-
-//! [1]
-void SatelliteModel::satellitesInViewUpdated(const QList<QGeoSatelliteInfo> &infos)
-{
- if (!running())
- return;
-
- int oldEntryCount = knownSatellites.count();
-
-
- QSet<int> satelliteIdsInUpdate;
- foreach (const QGeoSatelliteInfo &info, infos)
- satelliteIdsInUpdate.insert(info.satelliteIdentifier());
-
- QSet<int> toBeRemoved = knownSatelliteIds - satelliteIdsInUpdate;
-
- //We reset the model as in reality just about all entry values change
- //and there are generally a lot of inserts and removals each time
- //Hence we don't bother with complex model update logic beyond resetModel()
- beginResetModel();
-
- knownSatellites = infos;
-
- //sort them for presentation purposes
- std::sort(knownSatellites.begin(), knownSatellites.end());
-
- //remove old "InUse" data
- //new satellites are by default not in "InUse"
- //existing satellites keep their "inUse" state
- satellitesInUse -= toBeRemoved;
-
- knownSatelliteIds = satelliteIdsInUpdate;
- endResetModel();
-
- if (oldEntryCount != knownSatellites.count())
- emit entryCountChanged();
-}
-
-void SatelliteModel::satellitesInUseUpdated(const QList<QGeoSatelliteInfo> &infos)
-{
- if (!running())
- return;
-
- beginResetModel();
-
- satellitesInUse.clear();
- foreach (const QGeoSatelliteInfo &info, infos)
- satellitesInUse.insert(info.satelliteIdentifier());
-
- endResetModel();
-}
-//! [1]
diff --git a/examples/positioning/satelliteinfo/satellitemodel.h b/examples/positioning/satelliteinfo/satellitemodel.h
deleted file mode 100644
index 18d94a59..00000000
--- a/examples/positioning/satelliteinfo/satellitemodel.h
+++ /dev/null
@@ -1,140 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** BSD License Usage
-** Alternatively, 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 The Qt Company Ltd 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 SATELLITEMODEL_H
-#define SATELLITEMODEL_H
-
-#include <QAbstractListModel>
-#include <QSet>
-#include <QtQml/qqml.h>
-#include <QtQml/QQmlParserStatus>
-#include <QtPositioning/QGeoSatelliteInfoSource>
-
-QT_FORWARD_DECLARE_CLASS(QTimer)
-QT_FORWARD_DECLARE_CLASS(QGeoSatelliteInfoSource)
-
-//! [0]
-class SatelliteModel : public QAbstractListModel, public QQmlParserStatus
-{
- Q_OBJECT
- Q_PROPERTY(bool running READ running WRITE setRunning NOTIFY runningChanged)
- Q_PROPERTY(bool satelliteInfoAvailable READ canProvideSatelliteInfo NOTIFY canProvideSatelliteInfoChanged)
- Q_PROPERTY(int entryCount READ entryCount NOTIFY entryCountChanged)
- Q_PROPERTY(bool singleRequestMode READ isSingleRequest WRITE setSingleRequest NOTIFY singleRequestChanged)
- Q_INTERFACES(QQmlParserStatus)
- QML_ELEMENT
-public:
- explicit SatelliteModel(QObject *parent = 0);
-
- enum {
- IdentifierRole = Qt::UserRole + 1,
- InUseRole,
- SignalStrengthRole,
- ElevationRole,
- AzimuthRole
- };
-
- //From QAbstractListModel
- int rowCount(const QModelIndex &parent) const override;
- QVariant data(const QModelIndex &index, int role) const override;
- QHash<int, QByteArray> roleNames() const override;
-
- //From QQmlParserStatus
- void classBegin() override {}
- void componentComplete() override;
-//! [0]
-
- bool running() const;
- void setRunning(bool isActive);
-
- bool isSingleRequest() const;
- void setSingleRequest(bool single);
-
- int entryCount() const;
-
- bool canProvideSatelliteInfo() const;
-
-//! [1]
-signals:
- void runningChanged();
- void entryCountChanged();
- void errorFound(int code);
- void canProvideSatelliteInfoChanged();
- void singleRequestChanged();
-
-public slots:
- void clearModel();
- void updateDemoData();
-//! [1]
-
-private slots:
- void error(QGeoSatelliteInfoSource::Error);
- void satellitesInViewUpdated(const QList<QGeoSatelliteInfo> &infos);
- void satellitesInUseUpdated(const QList<QGeoSatelliteInfo> &infos);
-
-private:
- QGeoSatelliteInfoSource *source;
- bool m_componentCompleted;
- bool m_running;
- bool m_runningRequested;
- QList <QGeoSatelliteInfo> knownSatellites;
- QSet<int> knownSatelliteIds;
- QSet<int> satellitesInUse;
- bool demo;
- QTimer *timer;
- bool isSingle;
- bool singleRequestServed;
-//! [2]
-};
-//! [2]
-
-QML_DECLARE_TYPE(SatelliteModel)
-
-#endif // SATELLITEMODEL_H
diff --git a/examples/positioning/weatherinfo/CMakeLists.txt b/examples/positioning/weatherinfo/CMakeLists.txt
deleted file mode 100644
index 63e13830..00000000
--- a/examples/positioning/weatherinfo/CMakeLists.txt
+++ /dev/null
@@ -1,74 +0,0 @@
-# Generated from weatherinfo.pro.
-
-cmake_minimum_required(VERSION 3.16)
-project(weatherinfo LANGUAGES CXX)
-
-set(CMAKE_INCLUDE_CURRENT_DIR ON)
-
-set(CMAKE_AUTOMOC ON)
-set(CMAKE_AUTORCC ON)
-set(CMAKE_AUTOUIC ON)
-
-if(NOT DEFINED INSTALL_EXAMPLESDIR)
- set(INSTALL_EXAMPLESDIR "examples")
-endif()
-
-set(INSTALL_EXAMPLEDIR "${INSTALL_EXAMPLESDIR}/positioning/weatherinfo")
-
-find_package(Qt6 COMPONENTS Core)
-find_package(Qt6 COMPONENTS Gui)
-find_package(Qt6 COMPONENTS Network)
-find_package(Qt6 COMPONENTS Positioning)
-find_package(Qt6 COMPONENTS Qml)
-find_package(Qt6 COMPONENTS Quick)
-
-qt_add_executable(weatherinfo
- appmodel.cpp appmodel.h
- providerbackend.cpp providerbackend.h
- openweathermapbackend.cpp openweathermapbackend.h
- weatherapibackend.cpp weatherapibackend.h
- main.cpp
-)
-set_target_properties(weatherinfo PROPERTIES
- WIN32_EXECUTABLE TRUE
- MACOSX_BUNDLE TRUE
-)
-target_link_libraries(weatherinfo PRIVATE
- Qt::Core
- Qt::Gui
- Qt::Network
- Qt::Positioning
- Qt::Qml
- Qt::Quick
-)
-
-qt_add_qml_module(weatherinfo
- URI WeatherInfo
- VERSION 1.0
- QML_FILES
- components/BigForecastIcon.qml
- components/ForecastIcon.qml
- components/WeatherIcon.qml
- weatherinfo.qml
- RESOURCES
- icons/weather-few-clouds.png
- icons/weather-fog.png
- icons/weather-haze.png
- icons/weather-icy.png
- icons/weather-overcast.png
- icons/weather-showers.png
- icons/weather-sleet.png
- icons/weather-snow.png
- icons/weather-storm.png
- icons/weather-sunny-very-few-clouds.png
- icons/weather-sunny.png
- icons/weather-thundershower.png
- icons/weather-showers-scattered.png
- NO_RESOURCE_TARGET_PATH
-)
-
-install(TARGETS weatherinfo
- RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}"
- BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}"
- LIBRARY DESTINATION "${INSTALL_EXAMPLEDIR}"
-)
diff --git a/examples/positioning/weatherinfo/appmodel.cpp b/examples/positioning/weatherinfo/appmodel.cpp
deleted file mode 100644
index a5f207f1..00000000
--- a/examples/positioning/weatherinfo/appmodel.cpp
+++ /dev/null
@@ -1,514 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2021 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** BSD License Usage
-** Alternatively, 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 The Qt Company Ltd 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 "openweathermapbackend.h"
-#include "weatherapibackend.h"
-
-#include <QGeoPositionInfoSource>
-#include <QGeoPositionInfo>
-#include <QGeoCircle>
-#include <QLoggingCategory>
-
-Q_LOGGING_CATEGORY(requestsLog, "wapp.requests")
-
-WeatherData::WeatherData(QObject *parent) :
- QObject(parent)
-{
-}
-
-WeatherData::WeatherData(const WeatherData &other) :
- QObject(nullptr),
- m_dayOfWeek(other.m_dayOfWeek),
- m_weather(other.m_weather),
- m_weatherDescription(other.m_weatherDescription),
- m_temperature(other.m_temperature)
-{
-}
-
-WeatherData::WeatherData(const WeatherInfo &other)
- : QObject(nullptr),
- m_dayOfWeek(other.m_dayOfWeek),
- m_weather(other.m_weatherIconId),
- 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();
-}
-
-/*
- The class is used as a cache for the weather information.
- It contains a map to cache weather for cities.
- The gps location is cached separately.
-
- For the coordiante search we do not compare the coordinate directly, but
- check if it's within a circle of 3 km radius (we assume that the weather
- does not really change within that radius).
-
- The cache returns a pair with empty location and weather data if no data
- is found, or if the data is outdated.
-*/
-class WeatherDataCache
-{
-public:
- WeatherDataCache() = default;
-
- using WeatherDataPair = QPair<QString, QList<WeatherInfo>>;
-
- WeatherDataPair getWeatherData(const QString &name) const;
- WeatherDataPair getWeatherData(const QGeoCoordinate &coordinate) const;
-
- void addCacheElement(const LocationInfo &location, const QList<WeatherInfo> &info);
-
- static bool isCacheResultValid(const WeatherDataPair &result);
-
-private:
- struct CacheItem
- {
- qint64 m_cacheTime;
- QList<WeatherInfo> m_weatherData;
- };
-
- QMap<QString, CacheItem> m_cityCache;
-
- QGeoCoordinate m_gpsLocation;
- QString m_gpsName;
- CacheItem m_gpsData;
-
- static const qint64 kCacheTimeoutInterval = 3600; // 1 hour
- static const int kCircleRadius = 3000; // 3 km
-};
-
-WeatherDataCache::WeatherDataPair WeatherDataCache::getWeatherData(const QString &name) const
-{
- if (m_cityCache.contains(name)) {
- const qint64 currentTime = QDateTime::currentSecsSinceEpoch();
- const auto &item = m_cityCache.value(name);
- if (currentTime - item.m_cacheTime < kCacheTimeoutInterval)
- return qMakePair(name, item.m_weatherData);
- }
- return qMakePair(QString(), QList<WeatherInfo>());
-}
-
-WeatherDataCache::WeatherDataPair WeatherDataCache::getWeatherData(const QGeoCoordinate &coordinate) const
-{
- if (m_gpsLocation.isValid() && !m_gpsName.isEmpty()) {
- const QGeoCircle area(m_gpsLocation, kCircleRadius);
- if (area.contains(coordinate)) {
- const qint64 currentTime = QDateTime::currentSecsSinceEpoch();
- if (currentTime - m_gpsData.m_cacheTime < kCacheTimeoutInterval)
- return qMakePair(m_gpsName, m_gpsData.m_weatherData);
- }
- }
- return qMakePair(QString(), QList<WeatherInfo>());
-}
-
-void WeatherDataCache::addCacheElement(const LocationInfo &location, const QList<WeatherInfo> &info)
-{
- // It it expected that we have valid QGeoCoordinate only when the weather
- // is received based on coordinates.
- const qint64 currentTime = QDateTime::currentSecsSinceEpoch();
- if (location.m_coordinate.isValid()) {
- m_gpsLocation = location.m_coordinate;
- m_gpsName = location.m_name;
- m_gpsData = { currentTime, info };
- } else {
- m_cityCache[location.m_name] = { currentTime, info };
- }
-}
-
-bool WeatherDataCache::isCacheResultValid(const WeatherDataCache::WeatherDataPair &result)
-{
- return !result.first.isEmpty() && !result.second.isEmpty();
-}
-
-class AppModelPrivate
-{
-public:
- QGeoPositionInfoSource *src = nullptr;
- QGeoCoordinate coord;
- QString city;
- WeatherData now;
- QList<WeatherData*> forecast;
- QQmlListProperty<WeatherData> *fcProp = nullptr;
- bool ready = false;
- bool useGps = true;
- WeatherDataCache m_dataCache;
- ProviderBackend *m_currentBackend = nullptr;
- QList<ProviderBackend*> m_supportedBackends;
- qsizetype m_currentBackendIndex = 0;
-};
-
-static void forecastAppend(QQmlListProperty<WeatherData> *prop, WeatherData *val)
-{
- Q_UNUSED(val);
- Q_UNUSED(prop);
-}
-
-static WeatherData *forecastAt(QQmlListProperty<WeatherData> *prop, qsizetype index)
-{
- AppModelPrivate *d = static_cast<AppModelPrivate*>(prop->data);
- return d->forecast.at(index);
-}
-
-static qsizetype 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->m_supportedBackends.push_back(new OpenWeatherMapBackend(this));
- d->m_supportedBackends.push_back(new WeatherApiBackend(this));
- registerBackend(0);
-
-//! [1]
- d->src = QGeoPositionInfoSource::createDefaultSource(this);
-
- if (d->src) {
- d->useGps = true;
- connect(d->src, SIGNAL(positionUpdated(QGeoPositionInfo)),
- this, SLOT(positionUpdated(QGeoPositionInfo)));
- connect(d->src, SIGNAL(errorOccurred(QGeoPositionInfoSource::Error)),
- this, SLOT(positionError(QGeoPositionInfoSource::Error)));
- d->src->startUpdates();
- } else {
- d->useGps = false;
- d->city = "Brisbane";
- emit cityChanged();
- requestWeatherByCity();
- }
-}
-//! [1]
-
-AppModel::~AppModel()
-{
- if (d->src)
- d->src->stopUpdates();
- if (d->fcProp)
- delete d->fcProp;
- foreach (WeatherData *inf, d->forecast)
- delete inf;
- d->forecast.clear();
- delete d;
-}
-
-//! [2]
-void AppModel::positionUpdated(QGeoPositionInfo gpsPos)
-{
- d->coord = gpsPos.coordinate();
-
- if (!d->useGps)
- return;
-
- requestWeatherByCoordinates();
-}
-//! [2]
-
-void AppModel::positionError(QGeoPositionInfoSource::Error e)
-{
- Q_UNUSED(e);
- qWarning() << "Position source error. Falling back to simulation mode.";
-
- // activate simulation mode
- if (d->useGps) {
- d->useGps = false;
- d->city = "Brisbane";
- emit cityChanged();
- requestWeatherByCity();
- }
-}
-
-void AppModel::refreshWeather()
-{
- if (d->city.isEmpty()) {
- qCDebug(requestsLog) << "refreshing weather skipped (no city)";
- return;
- }
- qCDebug(requestsLog) << "refreshing weather";
- requestWeatherByCity();
-}
-
-void AppModel::handleWeatherData(const LocationInfo &location,
- const QList<WeatherInfo> &weatherDetails)
-{
- if (applyWeatherData(location.m_name, weatherDetails))
- d->m_dataCache.addCacheElement(location, weatherDetails);
-}
-
-void AppModel::switchToNextBackend()
-{
- deregisterCurrentBackend();
- registerBackend(d->m_currentBackendIndex + 1);
- if (d->m_currentBackend) {
- // repeat the query
- if (d->useGps)
- requestWeatherByCoordinates();
- else
- requestWeatherByCity();
- } else {
- qWarning("The application has iterated through all of the weather backends, "
- "and none of them seems to respond now. Please wait until any of the "
- "backends becomes available again.");
- }
-}
-
-bool AppModel::applyWeatherData(const QString &city, const QList<WeatherInfo> &weatherDetails)
-{
- // Check that we didn't get outdated weather data. The city should match,
- // if only we do not use GPS.
- if (city != d->city && !d->useGps)
- return false;
-
- if (city != d->city && d->useGps) {
- d->city = city;
- emit cityChanged();
- }
-
- // delete previous forecast
- foreach (WeatherData *inf, d->forecast)
- delete inf;
- d->forecast.clear();
-
- // The first item in the list represents current weather.
- if (!weatherDetails.isEmpty()) {
- d->now.setTemperature(weatherDetails.first().m_temperature);
- d->now.setWeatherIcon(weatherDetails.first().m_weatherIconId);
- d->now.setWeatherDescription(weatherDetails.first().m_weatherDescription);
- }
-
- // The other items represent weather forecast. The amount of items depends
- // on the provider backend.
- for (qsizetype i = 1; i < weatherDetails.size(); ++i) {
- WeatherData *forecastEntry = new WeatherData(weatherDetails.at(i));
- d->forecast.append(forecastEntry);
- }
-
- if (!d->ready) {
- d->ready = true;
- emit readyChanged();
- }
-
- emit weatherChanged();
-
- return true;
-}
-
-void AppModel::requestWeatherByCoordinates()
-{
- const auto cacheResult = d->m_dataCache.getWeatherData(d->coord);
- if (WeatherDataCache::isCacheResultValid(cacheResult))
- applyWeatherData(cacheResult.first, cacheResult.second);
- else if (d->m_currentBackend)
- d->m_currentBackend->requestWeatherInfo(d->coord);
-}
-
-void AppModel::requestWeatherByCity()
-{
- const auto cacheResult = d->m_dataCache.getWeatherData(d->city);
- if (WeatherDataCache::isCacheResultValid(cacheResult))
- applyWeatherData(cacheResult.first, cacheResult.second);
- else if (d->m_currentBackend)
- d->m_currentBackend->requestWeatherInfo(d->city);
-}
-
-void AppModel::registerBackend(qsizetype index)
-{
- if (index >= 0 && index < d->m_supportedBackends.size()) {
- d->m_currentBackend = d->m_supportedBackends.at(index);
- d->m_currentBackendIndex = index;
- connect(d->m_currentBackend, &ProviderBackend::weatherInformation,
- this, &AppModel::handleWeatherData);
- connect(d->m_currentBackend, &ProviderBackend::errorOccurred,
- this, &AppModel::switchToNextBackend);
- }
-}
-
-void AppModel::deregisterCurrentBackend()
-{
- if (d->m_currentBackend) {
- disconnect(d->m_currentBackend, &ProviderBackend::weatherInformation,
- this, &AppModel::handleWeatherData);
- disconnect(d->m_currentBackend, &ProviderBackend::errorOccurred,
- this, &AppModel::switchToNextBackend);
- d->m_currentBackend = nullptr;
- }
-}
-
-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 = "";
- emit cityChanged();
- emit weatherChanged();
- // if we already have a valid GPS position, do not wait until it
- // updates, but query the city immediately
- if (d->coord.isValid())
- requestWeatherByCoordinates();
- }
- emit useGpsChanged();
-}
-
-QString AppModel::city() const
-{
- return d->city;
-}
-
-void AppModel::setCity(const QString &value)
-{
- d->city = value;
- emit cityChanged();
- requestWeatherByCity();
-}
diff --git a/examples/positioning/weatherinfo/appmodel.h b/examples/positioning/weatherinfo/appmodel.h
deleted file mode 100644
index 73a9d06a..00000000
--- a/examples/positioning/weatherinfo/appmodel.h
+++ /dev/null
@@ -1,190 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2021 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** BSD License Usage
-** Alternatively, 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 The Qt Company Ltd 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 <QtQml/qqml.h>
-
-#include <QtPositioning/QGeoPositionInfoSource>
-
-#include "providerbackend.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)
- QML_ANONYMOUS
-
-public:
- explicit WeatherData(QObject *parent = 0);
- WeatherData(const WeatherData &other);
- WeatherData(const WeatherInfo &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)
- QML_ELEMENT
-
-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 positionUpdated(QGeoPositionInfo gpsPos);
- void positionError(QGeoPositionInfoSource::Error e);
- void handleWeatherData(const LocationInfo &location, const QList<WeatherInfo> &weatherDetails);
- void switchToNextBackend();
-
-//! [3]
-signals:
- void readyChanged();
- void useGpsChanged();
- void cityChanged();
- void weatherChanged();
-//! [3]
-
-private:
- bool applyWeatherData(const QString &city, const QList<WeatherInfo> &weatherDetails);
- void requestWeatherByCoordinates();
- void requestWeatherByCity();
- void registerBackend(qsizetype index);
- void deregisterCurrentBackend();
-
-
- AppModelPrivate *d;
-
-//! [4]
-};
-//! [4]
-
-#endif // APPMODEL_H
diff --git a/examples/positioning/weatherinfo/components/BigForecastIcon.qml b/examples/positioning/weatherinfo/components/BigForecastIcon.qml
deleted file mode 100644
index 9fa854a0..00000000
--- a/examples/positioning/weatherinfo/components/BigForecastIcon.qml
+++ /dev/null
@@ -1,92 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** BSD License Usage
-** Alternatively, 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 The Qt Company Ltd 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: "sunny"
- 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
- anchors.centerIn: parent
- anchors.verticalCenterOffset: -15
- width: current.smallSide
- height: current.smallSide
- }
-
- Text {
- text: current.bottomText
- font.pointSize: 23
- wrapMode: Text.WordWrap
- width: parent.width
- horizontalAlignment: Text.AlignRight
- 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
deleted file mode 100644
index ecf9a463..00000000
--- a/examples/positioning/weatherinfo/components/ForecastIcon.qml
+++ /dev/null
@@ -1,99 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** BSD License Usage
-** Alternatively, 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 The Qt Company Ltd 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: "sunny"
- 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
deleted file mode 100644
index 47832c0e..00000000
--- a/examples/positioning/weatherinfo/components/WeatherIcon.qml
+++ /dev/null
@@ -1,64 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** BSD License Usage
-** Alternatively, 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 The Qt Company Ltd 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: "sunny"
-
- Image {
- id: img
- source: "../icons/weather-" + container.weatherIcon + ".png"
- smooth: true
- anchors.fill: parent
- }
-}
diff --git a/examples/positioning/weatherinfo/doc/images/example-weatherinfo.png b/examples/positioning/weatherinfo/doc/images/example-weatherinfo.png
deleted file mode 100644
index 3a1c6c24..00000000
--- a/examples/positioning/weatherinfo/doc/images/example-weatherinfo.png
+++ /dev/null
Binary files differ
diff --git a/examples/positioning/weatherinfo/doc/src/weatherinfo.qdoc b/examples/positioning/weatherinfo/doc/src/weatherinfo.qdoc
deleted file mode 100644
index 7d9cab6f..00000000
--- a/examples/positioning/weatherinfo/doc/src/weatherinfo.qdoc
+++ /dev/null
@@ -1,164 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2021 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the documentation of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:FDL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Free Documentation License Usage
-** Alternatively, this file may be used under the terms of the GNU Free
-** Documentation License version 1.3 as published by the Free Software
-** Foundation and appearing in the file included in the packaging of
-** this file. Please review the following information to ensure
-** the GNU Free Documentation License version 1.3 requirements
-** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-/*!
- \example weatherinfo
- \title Weather Info (C++/QML)
-
- \brief The Weather Info example shows how to use the user's current position
- to retrieve local content from a web service in a C++ plugin for QML.
-
- \ingroup qtpositioning-examples
-
- Key \l{Qt Positioning} classes used in this example:
-
- \list
- \li \l{QGeoPositionInfo}
- \li \l{QGeoPositionInfoSource}
- \endlist
-
- \image ../images/example-weatherinfo.png
-
- \include examples-run.qdocinc
-
- \section1 Weather Data Providers
-
- The example uses two unrelated weather data providers:
-
- \list
- \li \l {http://www.openweathermap.org}{OpenWeather}
- \li \l {https://www.weatherapi.com/}{WeatherAPI.com}
- \endlist
-
- The provider to be used is selected automatically at runtime and can be
- changed if the selected provider is not available. However, it can't be
- specified manually.
-
- \note Free plans are used for both providers, which implies certain
- limitations on the amount of weather requests. If the limits are exceeded,
- the providers become temporary unavailable. When both providers are
- unavailable, the application would not be able to show any weather
- information. In this case it is required to wait until at least one of the
- providers becomes available again.
-
- \section1 Application Data Models
-
- The key part of this example is the application's data model, contained
- in the \c WeatherData and \c AppModel classes. \c WeatherData represents
- the weather information taken from the HTTP service. It is a simple data
- class, but we use \l Q_PROPERTY to expose it nicely to QML later.
- It also uses \l QML_ANONYMOUS macro, which makes it recognized in QML.
-
- \snippet weatherinfo/appmodel.h 0
- \snippet weatherinfo/appmodel.h 1
-
- \c AppModel models the state of the entire application. At startup, we
- get the platform's default position source using
- \l QGeoPositionInfoSource::createDefaultSource().
-
- \snippet weatherinfo/appmodel.cpp 0
- \snippet weatherinfo/appmodel.cpp 1
-
- If no default source is available, we take a static position and fetch
- weather for that. If, however, we do have a position source, we connect
- its \l {QGeoPositionInfoSource::}{positionUpdated()} signal to a slot on the
- \c AppModel and call \l {QGeoPositionInfoSource::}{startUpdates()}, which
- begins regular updates of device position.
-
- When a position update is received, we use the longitude and latitude
- of the returned coordinate to retrieve weather data for the specified
- location.
-
- \snippet weatherinfo/appmodel.cpp 2
-
- To inform the UI about this process, the \c cityChanged() signal is emitted
- when a new city is used, and the \c weatherChanged() signal whenever a
- weather update occurs.
-
- The model also uses \l QML_ELEMENT macro, which makes it available in QML.
-
- \snippet weatherinfo/appmodel.h 2
- \snippet weatherinfo/appmodel.h 3
- \snippet weatherinfo/appmodel.h 4
-
- We use a \l QQmlListProperty for the weather forecast information,
- which contains the weather forecast for the next days (the number of days
- is provider-specific). This makes it easy to access the forecast from QML.
-
- \section1 Expose Custom Models to QML
-
- To expose the models to the QML UI layer, we use the \l QML_ELEMENT and
- \l QML_ANONYMOUS macros. See the \l QQmlEngine class description for more
- details on these macros.
-
- To make the types available in QML, we need to update our build accordingly.
-
- \section2 CMake Build
-
- For a CMake-based build, we need to add the following to the
- \c {CMakeLists.txt}:
-
- \quotefromfile weatherinfo/CMakeLists.txt
- \skipto qt_add_qml_module(weatherinfo
- \printuntil )
-
- \section2 qmake Build
-
- For a qmake build, we need to modify the \c {weatherinfo.pro} file in the
- following way:
-
- \quotefromfile weatherinfo/weatherinfo.pro
- \skipto CONFIG
- \printuntil QML_IMPORT_MAJOR_VERSION
-
- \section1 Instantiate the Models in QML
-
- Finally, in the actual QML, we instantiate the \c {AppModel}:
-
- \snippet weatherinfo/weatherinfo.qml 0
- \snippet weatherinfo/weatherinfo.qml 1
- \snippet weatherinfo/weatherinfo.qml 2
-
- Once the model is instantiated like this, we can use its properties
- elsewhere in the QML document:
-
- \snippet weatherinfo/weatherinfo.qml 3
- \snippet weatherinfo/weatherinfo.qml 4
-
- \section1 Files and Attributions
-
- The example bundles the following images from Third-Party sources:
-
- \table
- \row
- \li \l{weatherinfo-tango-icons}{Tango Icons}
- \li Public Domain
- \row
- \li \l{weatherinfo-tango-weather-pack}{Tango Weather Icon Pack by Darkobra}
- \li Public Domain
- \endtable
-*/
diff --git a/examples/positioning/weatherinfo/icons/README.txt b/examples/positioning/weatherinfo/icons/README.txt
deleted file mode 100644
index d3841532..00000000
--- a/examples/positioning/weatherinfo/icons/README.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-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/qt_attribution.json b/examples/positioning/weatherinfo/icons/qt_attribution.json
deleted file mode 100644
index 23bbe386..00000000
--- a/examples/positioning/weatherinfo/icons/qt_attribution.json
+++ /dev/null
@@ -1,28 +0,0 @@
-[
- {
- "Id": "weatherinfo-tango-weather-pack",
- "Name": "Tango Weather Icon Pack by Darkobra",
- "QDocModule": "qtpositioning",
- "QtUsage": "Used in the \"Weather Info (C++/QML)\" example",
- "QtParts": [ "examples" ],
- "Description": "74 brand spankin' new Tango icons for your viewing pleasure.",
- "Homepage": "https://www.deviantart.com/darkobra/art/Tango-Weather-Icon-Pack-98024429",
-
- "License": "Public Domain",
- "Copyright": "Copyright DarKobra (C Stark)",
- "Files": "weather-fog.png weather-haze.png weather-icy.png weather-sleet.png weather-sunny.png weather-sunny-very-few-clouds.png weather-sunny-few-clouds.png weather-thunder-shower.png"
- },
- {
- "Id": "weatherinfo-tango-icons",
- "Name": "Tango Icons",
- "QDocModule": "qtpositioning",
- "QtUsage": "Used in the \"Weather Info (C++/QML)\" example",
- "QtParts": [ "examples" ],
- "Description": "The Tango Desktop Project exists to help create a consistent graphical user interface experience for free and Open Source software. ",
- "Homepage": "http://tango.freedesktop.org/Tango_Desktop_Project",
-
- "License": "Public Domain",
- "Copyright": "Copyright Tango Project contributors",
- "Files": "weather-few-clouds.png weather-overcast.png weather-showers.png weather-storm.png weather-snow.png weather-showers-scattered.png"
- }
-]
diff --git a/examples/positioning/weatherinfo/icons/weather-few-clouds.png b/examples/positioning/weatherinfo/icons/weather-few-clouds.png
deleted file mode 100644
index a8000ef0..00000000
--- a/examples/positioning/weatherinfo/icons/weather-few-clouds.png
+++ /dev/null
Binary files differ
diff --git a/examples/positioning/weatherinfo/icons/weather-fog.png b/examples/positioning/weatherinfo/icons/weather-fog.png
deleted file mode 100644
index 9ffe9c4a..00000000
--- a/examples/positioning/weatherinfo/icons/weather-fog.png
+++ /dev/null
Binary files differ
diff --git a/examples/positioning/weatherinfo/icons/weather-haze.png b/examples/positioning/weatherinfo/icons/weather-haze.png
deleted file mode 100644
index ae6f13eb..00000000
--- a/examples/positioning/weatherinfo/icons/weather-haze.png
+++ /dev/null
Binary files differ
diff --git a/examples/positioning/weatherinfo/icons/weather-icy.png b/examples/positioning/weatherinfo/icons/weather-icy.png
deleted file mode 100644
index 18d20384..00000000
--- a/examples/positioning/weatherinfo/icons/weather-icy.png
+++ /dev/null
Binary files differ
diff --git a/examples/positioning/weatherinfo/icons/weather-overcast.png b/examples/positioning/weatherinfo/icons/weather-overcast.png
deleted file mode 100644
index 9d50f77f..00000000
--- a/examples/positioning/weatherinfo/icons/weather-overcast.png
+++ /dev/null
Binary files differ
diff --git a/examples/positioning/weatherinfo/icons/weather-showers-scattered.png b/examples/positioning/weatherinfo/icons/weather-showers-scattered.png
deleted file mode 100644
index d3e5b166..00000000
--- a/examples/positioning/weatherinfo/icons/weather-showers-scattered.png
+++ /dev/null
Binary files differ
diff --git a/examples/positioning/weatherinfo/icons/weather-showers.png b/examples/positioning/weatherinfo/icons/weather-showers.png
deleted file mode 100644
index 07489aaa..00000000
--- a/examples/positioning/weatherinfo/icons/weather-showers.png
+++ /dev/null
Binary files differ
diff --git a/examples/positioning/weatherinfo/icons/weather-sleet.png b/examples/positioning/weatherinfo/icons/weather-sleet.png
deleted file mode 100644
index 3d225895..00000000
--- a/examples/positioning/weatherinfo/icons/weather-sleet.png
+++ /dev/null
Binary files differ
diff --git a/examples/positioning/weatherinfo/icons/weather-snow.png b/examples/positioning/weatherinfo/icons/weather-snow.png
deleted file mode 100644
index e7426e3c..00000000
--- a/examples/positioning/weatherinfo/icons/weather-snow.png
+++ /dev/null
Binary files differ
diff --git a/examples/positioning/weatherinfo/icons/weather-storm.png b/examples/positioning/weatherinfo/icons/weather-storm.png
deleted file mode 100644
index 6b6b366a..00000000
--- a/examples/positioning/weatherinfo/icons/weather-storm.png
+++ /dev/null
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
deleted file mode 100644
index 133bcb29..00000000
--- a/examples/positioning/weatherinfo/icons/weather-sunny-very-few-clouds.png
+++ /dev/null
Binary files differ
diff --git a/examples/positioning/weatherinfo/icons/weather-sunny.png b/examples/positioning/weatherinfo/icons/weather-sunny.png
deleted file mode 100644
index 0fac921d..00000000
--- a/examples/positioning/weatherinfo/icons/weather-sunny.png
+++ /dev/null
Binary files differ
diff --git a/examples/positioning/weatherinfo/icons/weather-thundershower.png b/examples/positioning/weatherinfo/icons/weather-thundershower.png
deleted file mode 100644
index 1aff1639..00000000
--- a/examples/positioning/weatherinfo/icons/weather-thundershower.png
+++ /dev/null
Binary files differ
diff --git a/examples/positioning/weatherinfo/main.cpp b/examples/positioning/weatherinfo/main.cpp
deleted file mode 100644
index a002a244..00000000
--- a/examples/positioning/weatherinfo/main.cpp
+++ /dev/null
@@ -1,74 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2021 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** BSD License Usage
-** Alternatively, 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 The Qt Company Ltd 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>
-#include <QLoggingCategory>
-
-#include "appmodel.h"
-
-int main(int argc, char *argv[])
-{
- QLoggingCategory::setFilterRules("wapp.*.debug=false");
- QGuiApplication application(argc, argv);
-
- const QString mainQmlApp = QStringLiteral("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();
-}
diff --git a/examples/positioning/weatherinfo/openweathermapbackend.cpp b/examples/positioning/weatherinfo/openweathermapbackend.cpp
deleted file mode 100644
index 0a77579b..00000000
--- a/examples/positioning/weatherinfo/openweathermapbackend.cpp
+++ /dev/null
@@ -1,265 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2021 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** BSD License Usage
-** Alternatively, 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 The Qt Company Ltd 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 "openweathermapbackend.h"
-
-#include <QNetworkAccessManager>
-#include <QNetworkReply>
-#include <QUrlQuery>
-#include <QJsonDocument>
-#include <QJsonObject>
-#include <QJsonValue>
-#include <QJsonArray>
-#include <QGeoCoordinate>
-#include <QLoggingCategory>
-
-Q_DECLARE_LOGGING_CATEGORY(requestsLog)
-
-static constexpr auto kZeroKelvin = 273.15;
-
-static QString niceTemperatureString(double t)
-{
- return QString::number(qRound(t - kZeroKelvin)) + QChar(0xB0);
-}
-
-/*
- Converts weather code to a string that will be used to show the icon.
- The possible strings are based on the icon names. The icon name is built up
- as follows:
- weather-[mystring].png
- where [mystring] is the value returned by this method.
- Check resources for the full list of available icons.
-*/
-static QString weatherCodeToString(const QString &code)
-{
- if (code == u"01d" || code == u"01n")
- return "sunny";
- else if (code == u"02d" || code == u"02n")
- return "sunny-very-few-clouds";
- else if (code == u"03d" || code == u"03n")
- return "few-clouds";
- else if (code == u"04d" || code == u"04n")
- return "overcast";
- else if (code == u"09d" || code == u"09n" || code == u"10d" || code == u"10n")
- return "showers";
- else if (code == u"11d" || code == u"11n")
- return "thundershower";
- else if (code == u"13d" || code == u"13n")
- return "snow";
- else if (code == u"50d" || code == u"50n")
- return "fog";
-
- return "sunny"; // default choice
-}
-
-static void parseWeatherDescription(const QJsonObject &object, WeatherInfo &info)
-{
- const QJsonArray weatherArray = object.value(u"weather").toArray();
- if (!weatherArray.isEmpty()) {
- const QJsonObject obj = weatherArray.first().toObject();
- info.m_weatherDescription = obj.value(u"description").toString();
- info.m_weatherIconId = weatherCodeToString(obj.value(u"icon").toString());
- } else {
- qCDebug(requestsLog, "An empty weather array is returned.");
- }
-}
-
-OpenWeatherMapBackend::OpenWeatherMapBackend(QObject *parent)
- : ProviderBackend(parent),
- m_networkManager(new QNetworkAccessManager(this)),
- m_appId(QStringLiteral("36496bad1955bf3365448965a42b9eac"))
-{
-}
-
-void OpenWeatherMapBackend::requestWeatherInfo(const QString &city)
-{
- QUrlQuery query;
- query.addQueryItem(QStringLiteral("q"), city);
-
- requestCurrentWeather(query, QGeoCoordinate());
-}
-
-void OpenWeatherMapBackend::requestWeatherInfo(const QGeoCoordinate &coordinate)
-{
- QUrlQuery query;
- query.addQueryItem(QStringLiteral("lat"), QString::number(coordinate.latitude()));
- query.addQueryItem(QStringLiteral("lon"), QString::number(coordinate.longitude()));
-
- requestCurrentWeather(query, coordinate);
-}
-
-void OpenWeatherMapBackend::handleCurrentWeatherReply(QNetworkReply *reply,
- const QGeoCoordinate &coordinate)
-{
- if (!reply) {
- emit errorOccurred();
- return;
- }
- bool parsed = false;
- if (!reply->error()) {
- // extract info about current weather
- const QJsonDocument document = QJsonDocument::fromJson(reply->readAll());
- const QJsonObject documentObject = document.object();
-
- LocationInfo currentLocation;
- currentLocation.m_name = documentObject.value(u"name").toString();
- if (coordinate.isValid())
- currentLocation.m_coordinate = coordinate;
- qCDebug(requestsLog) << "Got current weather for" << currentLocation.m_name;
-
- WeatherInfo currentWeather;
-
- parseWeatherDescription(documentObject, currentWeather);
-
- const QJsonObject mainObject = documentObject.value(u"main").toObject();
- const QJsonValue tempValue = mainObject.value(u"temp");
- if (tempValue.isDouble())
- currentWeather.m_temperature = niceTemperatureString(tempValue.toDouble());
- else
- qCDebug(requestsLog, "Failed to parse current temperature.");
-
- parsed = !currentLocation.m_name.isEmpty() && !currentWeather.m_temperature.isEmpty();
-
- if (parsed) {
- // request forecast
- requestWeatherForecast(currentLocation, currentWeather);
- }
- }
- if (!parsed) {
- emit errorOccurred();
- if (reply->error())
- qCDebug(requestsLog) << reply->errorString();
- else
- qCDebug(requestsLog, "Failed to parse current weather JSON.");
- }
-
- reply->deleteLater();
-}
-
-void OpenWeatherMapBackend::handleWeatherForecastReply(QNetworkReply *reply,
- const LocationInfo &location,
- const WeatherInfo &currentWeather)
-{
- if (!reply) {
- emit errorOccurred();
- return;
- }
- if (!reply->error()) {
- QJsonDocument document = QJsonDocument::fromJson(reply->readAll());
- const QJsonObject documentObject = document.object();
-
- QList<WeatherInfo> weatherDetails;
- // current weather will be the first in the list
- weatherDetails << currentWeather;
-
- QJsonArray daysList = documentObject.value(u"list").toArray();
- // include current day as well
- for (qsizetype i = 0; i < daysList.size(); ++i) {
- QJsonObject dayObject = daysList.at(i).toObject();
- WeatherInfo info;
-
- const QDateTime dt = QDateTime::fromSecsSinceEpoch(dayObject.value(u"dt").toInteger());
- info.m_dayOfWeek = dt.toString(u"ddd");
-
- const QJsonObject tempObject = dayObject.value(u"temp").toObject();
-
- const QJsonValue minTemp = tempObject.value(u"min");
- const QJsonValue maxTemp = tempObject.value(u"max");
- if (minTemp.isDouble() && maxTemp.isDouble()) {
- info.m_temperature = niceTemperatureString(minTemp.toDouble()) + QChar('/')
- + niceTemperatureString(maxTemp.toDouble());
- } else {
- qCDebug(requestsLog, "Failed to parse min or max temperature.");
- }
-
- parseWeatherDescription(dayObject, info);
-
- if (!info.m_temperature.isEmpty() && !info.m_weatherIconId.isEmpty())
- weatherDetails.push_back(info);
- }
-
- emit weatherInformation(location, weatherDetails);
- } else {
- emit errorOccurred();
- qCDebug(requestsLog) << reply->errorString();
- }
-
- reply->deleteLater();
-}
-
-void OpenWeatherMapBackend::requestCurrentWeather(QUrlQuery &query,
- const QGeoCoordinate &coordinate)
-{
- QUrl url("http://api.openweathermap.org/data/2.5/weather");
- query.addQueryItem(QStringLiteral("mode"), QStringLiteral("json"));
- query.addQueryItem(QStringLiteral("APPID"), m_appId);
- url.setQuery(query);
-
- QNetworkReply *reply = m_networkManager->get(QNetworkRequest(url));
- connect(reply, &QNetworkReply::finished, this,
- [this, reply, coordinate]() { handleCurrentWeatherReply(reply, coordinate); });
-}
-
-void OpenWeatherMapBackend::requestWeatherForecast(const LocationInfo &location,
- const WeatherInfo &currentWeather)
-{
- QUrl url("http://api.openweathermap.org/data/2.5/forecast/daily");
- QUrlQuery query;
- query.addQueryItem(QStringLiteral("q"), location.m_name);
- query.addQueryItem(QStringLiteral("mode"), QStringLiteral("json"));
- query.addQueryItem(QStringLiteral("cnt"), QStringLiteral("4"));
- query.addQueryItem(QStringLiteral("APPID"), m_appId);
- url.setQuery(query);
-
- QNetworkReply *reply = m_networkManager->get(QNetworkRequest(url));
- connect(reply, &QNetworkReply::finished, this, [this, reply, location, currentWeather]() {
- handleWeatherForecastReply(reply, location, currentWeather);
- });
-}
diff --git a/examples/positioning/weatherinfo/openweathermapbackend.h b/examples/positioning/weatherinfo/openweathermapbackend.h
deleted file mode 100644
index 7f4e5f97..00000000
--- a/examples/positioning/weatherinfo/openweathermapbackend.h
+++ /dev/null
@@ -1,85 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2021 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** BSD License Usage
-** Alternatively, 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 The Qt Company Ltd 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 OPENWEATHERMAPBACKEND_H
-#define OPENWEATHERMAPBACKEND_H
-
-#include "providerbackend.h"
-
-QT_BEGIN_NAMESPACE
-class QNetworkAccessManager;
-class QNetworkReply;
-class QUrlQuery;
-QT_END_NAMESPACE
-
-class OpenWeatherMapBackend : public ProviderBackend
-{
- Q_OBJECT
-public:
- explicit OpenWeatherMapBackend(QObject *parent = nullptr);
- ~OpenWeatherMapBackend() = default;
-
- void requestWeatherInfo(const QString &city) override;
- void requestWeatherInfo(const QGeoCoordinate &coordinate) override;
-
-private slots:
- void handleCurrentWeatherReply(QNetworkReply *reply, const QGeoCoordinate &coordinate);
- void handleWeatherForecastReply(QNetworkReply *reply, const LocationInfo &location,
- const WeatherInfo &currentWeather);
-
-private:
- void requestCurrentWeather(QUrlQuery &query, const QGeoCoordinate &coordinate);
- void requestWeatherForecast(const LocationInfo &location, const WeatherInfo &currentWeather);
-
- QNetworkAccessManager *m_networkManager;
- const QString m_appId;
-};
-
-#endif // OPENWEATHERMAPBACKEND_H
diff --git a/examples/positioning/weatherinfo/providerbackend.cpp b/examples/positioning/weatherinfo/providerbackend.cpp
deleted file mode 100644
index 30c45209..00000000
--- a/examples/positioning/weatherinfo/providerbackend.cpp
+++ /dev/null
@@ -1,53 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2021 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** BSD License Usage
-** Alternatively, 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 The Qt Company Ltd 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 "providerbackend.h"
-
-ProviderBackend::ProviderBackend(QObject *parent) : QObject(parent) { }
diff --git a/examples/positioning/weatherinfo/providerbackend.h b/examples/positioning/weatherinfo/providerbackend.h
deleted file mode 100644
index c59f6c49..00000000
--- a/examples/positioning/weatherinfo/providerbackend.h
+++ /dev/null
@@ -1,90 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2021 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** BSD License Usage
-** Alternatively, 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 The Qt Company Ltd 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 PROVIDERBACKEND_H
-#define PROVIDERBACKEND_H
-
-#include <QObject>
-#include <QGeoCoordinate>
-
-struct WeatherInfo
-{
- QString m_dayOfWeek;
- QString m_weatherIconId;
- QString m_weatherDescription;
- QString m_temperature;
-};
-
-struct LocationInfo
-{
- QString m_name;
- QGeoCoordinate m_coordinate;
-};
-
-class ProviderBackend : public QObject
-{
- Q_OBJECT
-public:
- explicit ProviderBackend(QObject *parent = nullptr);
-
- virtual void requestWeatherInfo(const QString &city) = 0;
- virtual void requestWeatherInfo(const QGeoCoordinate &coordinate) = 0;
-
-signals:
- // The first element in weatherDetails represents current weather.
- // Next are the weather forecast, including the current day.
- // The LocationInfo object should contain valid coordinate only when it was
- // initially used to request the weather. If the city name was used, an
- // empty coordinate is expected to be transferred.
- void weatherInformation(const LocationInfo &location, const QList<WeatherInfo> &weatherDetails);
- void errorOccurred();
-};
-
-#endif // PROVIDERBACKEND_H
diff --git a/examples/positioning/weatherinfo/weatherapibackend.cpp b/examples/positioning/weatherinfo/weatherapibackend.cpp
deleted file mode 100644
index a98f7dbb..00000000
--- a/examples/positioning/weatherinfo/weatherapibackend.cpp
+++ /dev/null
@@ -1,266 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2021 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** BSD License Usage
-** Alternatively, 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 The Qt Company Ltd 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 "weatherapibackend.h"
-
-#include <QNetworkAccessManager>
-#include <QNetworkReply>
-#include <QUrlQuery>
-#include <QJsonDocument>
-#include <QJsonObject>
-#include <QJsonValue>
-#include <QJsonArray>
-#include <QLoggingCategory>
-
-Q_DECLARE_LOGGING_CATEGORY(requestsLog)
-
-static QString niceTemperatureString(double t)
-{
- return QString::number(qRound(t)) + QChar(0xB0);
-}
-
-/*
- Converts weather code to a string that will be used to show the icon.
- The possible strings are based on the icon names. The icon name is built up
- as follows:
- weather-[mystring].png
- where [mystring] is the value returned by this method.
- Check resources for the full list of available icons.
-*/
-static QString weatherCodeToString(int code)
-{
- switch (code) {
- case 1000:
- return "sunny";
- case 1003:
- return "sunny-very-few-clouds";
- case 1006:
- return "few-clouds";
- case 1009:
- return "overcast";
- case 1030:
- case 1135:
- case 1147:
- return "fog";
- case 1063:
- case 1072:
- case 1150:
- case 1153:
- case 1168:
- case 1171:
- case 1180:
- case 1183:
- case 1186:
- case 1189:
- case 1198:
- return "showers-scattered";
- case 1066:
- case 1069:
- case 1114:
- case 1117:
- case 1210:
- case 1213:
- case 1216:
- case 1219:
- case 1222:
- case 1225:
- case 1237:
- case 1255:
- case 1258:
- case 1261:
- case 1264:
- case 1279:
- case 1282:
- return "snow";
- case 1087:
- return "storm";
- case 1192:
- case 1195:
- case 1201:
- case 1240:
- case 1243:
- case 1246:
- return "showers";
- case 1204:
- case 1207:
- case 1249:
- case 1252:
- return "sleet";
- case 1273:
- case 1276:
- return "thundershower";
- default:
- return "sunny";
- }
-
- return "sunny"; // default choice
-}
-
-static void parseWeatherDescription(const QJsonObject &object, WeatherInfo &info)
-{
- const QJsonObject conditionObject = object.value(u"condition").toObject();
- info.m_weatherDescription = conditionObject.value(u"text").toString();
- info.m_weatherIconId = weatherCodeToString(conditionObject.value(u"code").toInt());
-}
-
-WeatherApiBackend::WeatherApiBackend(QObject *parent)
- : ProviderBackend(parent),
- m_networkManager(new QNetworkAccessManager(this)),
- m_apiKey(QStringLiteral("8edde160c63c4be6b77101828211208"))
-{
-}
-
-void WeatherApiBackend::requestWeatherInfo(const QString &city)
-{
- generateWeatherRequest(city, QGeoCoordinate());
-}
-
-void WeatherApiBackend::requestWeatherInfo(const QGeoCoordinate &coordinate)
-{
- const QString coordinateStr =
- QString("%1,%2").arg(coordinate.latitude()).arg(coordinate.longitude());
- generateWeatherRequest(coordinateStr, coordinate);
-}
-
-void WeatherApiBackend::handleWeatherForecastReply(QNetworkReply *reply,
- const QGeoCoordinate &coordinate)
-{
- if (!reply) {
- emit errorOccurred();
- return;
- }
- bool parsed = false;
- if (!reply->error()) {
- QJsonDocument document = QJsonDocument::fromJson(reply->readAll());
- const QJsonObject documentObject = document.object();
- const QJsonObject locationObject = documentObject.value(u"location").toObject();
-
- // extract location name
- LocationInfo location;
- location.m_name = locationObject.value(u"name").toString();
- if (coordinate.isValid())
- location.m_coordinate = coordinate;
- qCDebug(requestsLog) << "Got weather for" << location.m_name;
-
- // extract current weather
- WeatherInfo currentWeather;
-
- const QJsonObject currentWeatherObject = documentObject.value(u"current").toObject();
- const QJsonValue temperature = currentWeatherObject.value(u"temp_c");
- if (temperature.isDouble())
- currentWeather.m_temperature = niceTemperatureString(temperature.toDouble());
-
- parseWeatherDescription(currentWeatherObject, currentWeather);
-
- parsed = !location.m_name.isEmpty() && !currentWeather.m_temperature.isEmpty();
-
- if (parsed) {
- QList<WeatherInfo> weatherDetails;
- weatherDetails << currentWeather;
-
- // extract forecast details
- const QJsonObject forecastObject = documentObject.value(u"forecast").toObject();
- const QJsonArray forecastDays = forecastObject.value(u"forecastday").toArray();
- for (qsizetype i = 0; i < forecastDays.size(); ++i) {
- const QJsonObject dayInfo = forecastDays.at(i).toObject();
- WeatherInfo info;
-
- const QDateTime dt =
- QDateTime::fromSecsSinceEpoch(dayInfo.value(u"date_epoch").toInteger());
- info.m_dayOfWeek = dt.toString(u"ddd");
-
- const QJsonObject dayObject = dayInfo.value(u"day").toObject();
- const QJsonValue minTemp = dayObject.value(u"mintemp_c");
- const QJsonValue maxTemp = dayObject.value(u"maxtemp_c");
- if (minTemp.isDouble() && maxTemp.isDouble()) {
- info.m_temperature = niceTemperatureString(minTemp.toDouble()) + QChar('/')
- + niceTemperatureString(maxTemp.toDouble());
- } else {
- qCDebug(requestsLog, "Failed to parse min or max temperature.");
- }
-
- parseWeatherDescription(dayObject, info);
-
- if (!info.m_temperature.isEmpty() && !info.m_weatherIconId.isEmpty())
- weatherDetails.push_back(info);
- }
-
- emit weatherInformation(location, weatherDetails);
- }
- }
- if (!parsed) {
- emit errorOccurred();
- if (reply->error())
- qCDebug(requestsLog) << reply->errorString();
- else
- qCDebug(requestsLog, "Failed to parse weather JSON.");
- }
-
- reply->deleteLater();
-}
-
-void WeatherApiBackend::generateWeatherRequest(const QString &locationString,
- const QGeoCoordinate &coordinate)
-{
- QUrl url("https://api.weatherapi.com/v1/forecast.json");
-
- QUrlQuery query;
- query.addQueryItem(QStringLiteral("key"), m_apiKey);
- query.addQueryItem(QStringLiteral("q"), locationString);
- query.addQueryItem(QStringLiteral("days"), QStringLiteral("4"));
- query.addQueryItem(QStringLiteral("aqi"), QStringLiteral("no"));
- query.addQueryItem(QStringLiteral("alerts"), QStringLiteral("no"));
-
- url.setQuery(query);
-
- QNetworkReply *reply = m_networkManager->get(QNetworkRequest(url));
- connect(reply, &QNetworkReply::finished, this,
- [this, reply, coordinate]() { handleWeatherForecastReply(reply, coordinate); });
-}
diff --git a/examples/positioning/weatherinfo/weatherapibackend.h b/examples/positioning/weatherinfo/weatherapibackend.h
deleted file mode 100644
index dce078a1..00000000
--- a/examples/positioning/weatherinfo/weatherapibackend.h
+++ /dev/null
@@ -1,80 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2021 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** BSD License Usage
-** Alternatively, 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 The Qt Company Ltd 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 WEATHERAPIBACKEND_H
-#define WEATHERAPIBACKEND_H
-
-#include "providerbackend.h"
-
-QT_BEGIN_NAMESPACE
-class QNetworkAccessManager;
-class QNetworkReply;
-QT_END_NAMESPACE
-
-class WeatherApiBackend : public ProviderBackend
-{
- Q_OBJECT
-public:
- explicit WeatherApiBackend(QObject *parent = nullptr);
-
- void requestWeatherInfo(const QString &city) override;
- void requestWeatherInfo(const QGeoCoordinate &coordinate) override;
-
-private slots:
- void handleWeatherForecastReply(QNetworkReply *reply, const QGeoCoordinate &coordinate);
-
-private:
- void generateWeatherRequest(const QString &locationString, const QGeoCoordinate &coordinate);
-
- QNetworkAccessManager *m_networkManager;
- const QString m_apiKey;
-};
-
-#endif // WEATHERAPIBACKEND_H
diff --git a/examples/positioning/weatherinfo/weatherinfo.pro b/examples/positioning/weatherinfo/weatherinfo.pro
deleted file mode 100644
index eb88ca42..00000000
--- a/examples/positioning/weatherinfo/weatherinfo.pro
+++ /dev/null
@@ -1,31 +0,0 @@
-TEMPLATE = app
-TARGET = weatherinfo
-
-QT += core network positioning qml quick
-
-CONFIG += qmltypes
-QML_IMPORT_NAME = WeatherInfo
-QML_IMPORT_MAJOR_VERSION = 1
-
-SOURCES += main.cpp \
- appmodel.cpp \
- openweathermapbackend.cpp \
- providerbackend.cpp \
- weatherapibackend.cpp
-
-OTHER_FILES += weatherinfo.qml \
- components/WeatherIcon.qml \
- components/ForecastIcon.qml \
- components/BigForecastIcon.qml \
- icons/*
-
-
-RESOURCES += weatherinfo.qrc
-
-HEADERS += appmodel.h \
- openweathermapbackend.h \
- providerbackend.h \
- weatherapibackend.h
-
-target.path = $$[QT_INSTALL_EXAMPLES]/positioning/weatherinfo
-INSTALLS += target
diff --git a/examples/positioning/weatherinfo/weatherinfo.qml b/examples/positioning/weatherinfo/weatherinfo.qml
deleted file mode 100644
index 62bbe7d7..00000000
--- a/examples/positioning/weatherinfo/weatherinfo.qml
+++ /dev/null
@@ -1,208 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** BSD License Usage
-** Alternatively, 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 The Qt Company Ltd 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: appModel
- onReadyChanged: {
- if (appModel.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: (appModel.hasValidCity ? appModel.city : "Unknown location") + (appModel.useGps ? " (GPS)" : "")
- anchors.fill: parent
- horizontalAlignment: Text.AlignHCenter
- verticalAlignment: Text.AlignVCenter
- }
-
- MouseArea {
- anchors.fill: parent
- onClicked: {
- if (appModel.useGps) {
- appModel.useGps = false
- appModel.city = "Brisbane"
- } else {
- switch (appModel.city) {
- case "Brisbane":
- appModel.city = "Oslo"
- break
- case "Oslo":
- appModel.city = "Helsinki"
- break
- case "Helsinki":
- appModel.city = "New York"
- break
- case "New York":
- appModel.useGps = true
- break
- }
- }
- }
- }
- }
-
-//! [3]
- BigForecastIcon {
- id: current
-
- width: main.width -12
- height: 2 * (main.height - 25 - 12) / 3
-
- weatherIcon: (appModel.hasValidWeather
- ? appModel.weather.weatherIcon
- : "sunny")
-//! [3]
- topText: (appModel.hasValidWeather
- ? appModel.weather.temperature
- : "??")
- bottomText: (appModel.hasValidWeather
- ? appModel.weather.weatherDescription
- : "No weather data")
-
- MouseArea {
- anchors.fill: parent
- onClicked: {
- appModel.refreshWeather()
- }
- }
-//! [4]
- }
-//! [4]
-
- Row {
- id: iconRow
- spacing: 6
-
- width: main.width - 12
- height: (main.height - 25 - 24) / 3
-
- property int daysCount: appModel.forecast.length
- property real iconWidth: (daysCount > 0) ? (iconRow.width / daysCount) - 10
- : iconRow.width
- property real iconHeight: iconRow.height
-
- Repeater {
- model: appModel.forecast
- ForecastIcon {
- id: forecast1
- width: iconRow.iconWidth
- height: iconRow.iconHeight
-
- topText: (appModel.hasValidWeather ?
- modelData.dayOfWeek : "??")
- bottomText: (appModel.hasValidWeather ?
- modelData.temperature : "??/??")
- weatherIcon: (appModel.hasValidWeather ?
- modelData.weatherIcon : "sunny")
- }
- }
- }
- }
- }
-//! [2]
-}
-//! [2]
diff --git a/examples/positioning/weatherinfo/weatherinfo.qrc b/examples/positioning/weatherinfo/weatherinfo.qrc
deleted file mode 100644
index 1578fa9d..00000000
--- a/examples/positioning/weatherinfo/weatherinfo.qrc
+++ /dev/null
@@ -1,21 +0,0 @@
-<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>
- <file>icons/weather-showers-scattered.png</file>
- </qresource>
-</RCC>