Hi,

Indeed the GeoClue 2 plugin was added to 5.12. However it is a plugin and the 
interfaces to plugins have not changed. You could simply build the plugin 
(src/plugins/position/geoclue2/) in your 5.9.x tree.

--
Alex

________________________________________
From: Interest <[email protected]> on behalf of Denis 
Shienkov <[email protected]>
Sent: Sunday, 9 December 2018 9:02:41 PM
To: [email protected]
Subject: Re: [Interest] Geoposition and Ubuntu 18.04

Hi,

That patch adds the support for Geoclue v2 only, which should be available 
since Qt 5.12 (but not since Qt 5.9.7, AFAIK).
You can try to check it with lookup the 'qtposition_geoclue2.so' file in the 
installed Qt's plugins path.
* Also, make sure that your distro has geoclue2 installed.
* Also it is unnecessary to use the QT_GEOCLUE_APP_DESKTOP_ID variable, it is 
enough to specify the
QCoreApplication::applicationName() property instead.
* Besides, I'm not sure that this 
QGeoPositionInfoSource::createDefaultSource(this) will work, because it may be 
not 'default' plugin.
Just try to use availableSources() && createSource() instead.

Denis.

09.12.2018 22:23, 
[email protected]<mailto:[email protected]> пишет:

All,

I've just started poking around with the GeopositionInfo stuff now that Ubuntu 
18.04 has location services. Can't find good C++ examples. Everyone seems to 
focus on worthless QML.

First off:  Huge serious kudos to Denis Shienkov for 
https://codereview.qt-project.org/#/c/229911/
That bug report was better than any of the documentation. Well worth a read.


For purposes of this discussion we will call the application Fred to protect 
the guilty.

The application has the following snippet of code.

    syslog( LOG_MAKEPRI(LOG_USER, LOG_INFO), "%s", "Trying to create default 
GeoPositionInfoSource");
    qDebug() << "Trying to create default GeoPositionInfoSource";

    m_geoSource = QGeoPositionInfoSource::createDefaultSource(this);

    if (m_geoSource)
    {
        syslog( LOG_MAKEPRI(LOG_USER, LOG_INFO), "%s", "successfully created 
default GeopositionInfoSource");
        qDebug() << "successfully created default GeopositionInfoSource";
        connect(m_geoSource, SIGNAL(positionUpdated(QGeoPositionInfo)),
                this, SLOT(positionUpdated(QGeoPositionInfo)));
#ifdef QT_DEBUG
        m_geoSource->setUpdateInterval( 1000 * 60 * 2);  // 1000ms in a second
#else
        m_geoSource->setUpdateInterval( 1000 * 60 * 45);  // 1000ms in a second
#endif
        m_geoSource->startUpdates();
    }
    else
    {
        syslog( LOG_MAKEPRI(LOG_USER, LOG_ERR), "%s", "Unable to create default 
GeopositionInfoSource");
        qDebug() << "Unable to create default GeopositionInfoSource";
    }

I have enabled location services in Ubuntu 18.04 and am debugging inside of 
QtCreator. The .profile for my account contains:

export QT_GEOCLUE_APP_DESKTOP_ID=ipos

and I've added fred to /etc/geoclue/geoclue.conf

[fred]
allowed=true
system=false
users=

When I compiled 5.9.7 from source the following snippet is from the 
configuration summary.

Qt Positioning:
  Gypsy GPS Daemon ....................... no
  WinRT Geolocation API .................. no
Qt Location:
  Geoservice plugins:
    OpenStreetMap ........................ yes
    HERE ................................. yes
    Esri ................................. yes
    Mapbox ............................... yes
    MapboxGL ............................. no
    Itemsoverlay ......................... yes


When I step through in the debugger I see the following:

Debugging starts
QML debugging is enabled. Only use this in a safe environment.
Trying to create default GeoPositionInfoSource
successfully created default GeopositionInfoSource
Failed to set Geoclue positioning requirements. Geoclue error: 
org.qtproject.QtDBus.Error.InvalidObjectPath

My question here is: Have I skipped something stupid (quite possible as there 
are no good examples, the one C++ example reads from a file to emit a signal so 
is totally worthless) _or_ does the geoposition stuff not communicate with 
Ubuntu 18.04's version of geoclue?

Should I just install

geoclue-examples_0.12.99-4_amd64.deb     GeoClue example clients

and roll my own using the dbus interface?

Thanks,

_______________________________________________
Interest mailing list
[email protected]
https://lists.qt-project.org/listinfo/interest

Reply via email to