Class: QgsGeoNodeRequest

class qgis.core.QgsGeoNodeRequest

Bases: PyQt5.QtCore.QObject

Request handler for GeoNode servers.

QgsGeoNodeRequest handles requesting and parsing service details from a GeoNode server instance, for instance requesting all available layers or layer styles.

New in version 3.0.

QgsGeoNodeRequest(baseUrl: str, forceRefresh: bool, parent: QObject = None) Constructor for QgsGeoNodeRequest.

If forceRefresh is False, then cached copies of the request may be reused.

Enums

BackendServer

Bases: enum.IntEnum

Methods

abort

Aborts any active network request immediately.

childEvent

connectNotify

customEvent

disconnectNotify

fetchDefaultStyleBlocking

Requests the default style for the layer with matching layerName from the server.

fetchLayers

Triggers a new request to fetch the list of available layers from the server.

fetchLayersBlocking

Requests the list of available layers from the server.

fetchServiceUrlDataBlocking

Obtains a map of layer name to URL for available services with matching serviceType from the server.

fetchServiceUrlsBlocking

Requests the list of unique URLs for available services with matching serviceType from the server.

fetchStyleBlocking

Requests the details for the style with matching styleId from the server.

fetchStylesBlocking

Requests the list of available styles for the layer with matching layerName from the server.

isSignalConnected

lastError

Returns the most recent error string for any encountered errors, or an empty string if no errors have been encountered.

lastResponse

Returns the most recent response obtained from the server.

parseOwsUrl

Returns the updated ServiceLayerDetail struct with WMS/WFS/XYZ url.

protocol

Returns the network protocol (e.g.

receivers

request

Triggers a new request to the GeoNode server, with the requested endPoint.

requestBlocking

Triggers a new request to the GeoNode server, with the requested endPoint.

sender

senderSignalIndex

setProtocol

Sets the network protocol (e.g.

timerEvent

Signals

layersFetched

pyqtSignal(*types, name: str = ..., revision: int = ..., arguments: Sequence = ...) -> PYQT_SIGNAL

requestFinished

pyqtSignal(*types, name: str = ..., revision: int = ..., arguments: Sequence = ...) -> PYQT_SIGNAL

statusChanged

pyqtSignal(*types, name: str = ..., revision: int = ..., arguments: Sequence = ...) -> PYQT_SIGNAL

class BackendServer(value)

Bases: enum.IntEnum

GeoNode backend server type.

  • Unknown: Unknown backend

  • QgisServer: QGIS server used as backend

  • Geoserver: Geoserver used as backend

Geoserver = 2
QgisServer = 1
Unknown = 0
class ServiceLayerDetail
class ServiceLayerDetail(QgsGeoNodeRequest.ServiceLayerDetail)

Bases: sip.wrapper

id
name
server
title
typeName
uuid
wcsURL
wfsURL
wmsURL
xyzURL
abort(self)

Aborts any active network request immediately.

childEvent(self, QChildEvent)
connectNotify(self, QMetaMethod)
customEvent(self, QEvent)
disconnectNotify(self, QMetaMethod)
fetchDefaultStyleBlocking(self, layerName: str) QgsGeoNodeStyle

Requests the default style for the layer with matching layerName from the server.

This method is blocking and will wait for results from the server before returning. Accordingly it should not be used from any code which potentially blocks operation in the main GUI thread.

Parameters

layerName (str) –

Return type

QgsGeoNodeStyle

fetchLayers(self)

Triggers a new request to fetch the list of available layers from the server. When complete, the layersFetched() signal will be emitted with the result.

This method is non-blocking and returns immediately.

Warning

When using the non-blocking methods in this class, sending overlapping requests results in undefined behavior. Use separate instances of QgsGeoNodeRequest instead to avoid this.

See also

layersFetched()

fetchLayersBlocking(self) List[QgsGeoNodeRequest.ServiceLayerDetail]

Requests the list of available layers from the server.

This method is blocking and will wait for results from the server before returning. Accordingly it should not be used from any code which potentially blocks operation in the main GUI thread.

See also

fetchLayers()

Return type

List[QgsGeoNodeRequest.ServiceLayerDetail]

fetchServiceUrlDataBlocking(self, serviceType: str) Dict[str, str]

Obtains a map of layer name to URL for available services with matching serviceType from the server.

This method is blocking and will wait for results from the server before returning. Accordingly it should not be used from any code which potentially blocks operation in the main GUI thread.

Parameters

serviceType (str) –

Return type

Dict[str, str]

fetchServiceUrlsBlocking(self, serviceType: str) List[str]

Requests the list of unique URLs for available services with matching serviceType from the server.

This method is blocking and will wait for results from the server before returning. Accordingly it should not be used from any code which potentially blocks operation in the main GUI thread.

Parameters

serviceType (str) –

Return type

List[str]

fetchStyleBlocking(self, styleId: str) QgsGeoNodeStyle

Requests the details for the style with matching styleId from the server.

This method is blocking and will wait for results from the server before returning. Accordingly it should not be used from any code which potentially blocks operation in the main GUI thread.

Parameters

styleId (str) –

Return type

QgsGeoNodeStyle

fetchStylesBlocking(self, layerName: str) List[QgsGeoNodeStyle]

Requests the list of available styles for the layer with matching layerName from the server.

This method is blocking and will wait for results from the server before returning. Accordingly it should not be used from any code which potentially blocks operation in the main GUI thread.

Parameters

layerName (str) –

Return type

List[QgsGeoNodeStyle]

isSignalConnected(self, QMetaMethod) bool
lastError(self) str

Returns the most recent error string for any encountered errors, or an empty string if no errors have been encountered.

Return type

str

lastResponse(self) QByteArray

Returns the most recent response obtained from the server.

Return type

QByteArray

layersFetched

pyqtSignal(*types, name: str = …, revision: int = …, arguments: Sequence = …) -> PYQT_SIGNAL

types is normally a sequence of individual types. Each type is either a type object or a string that is the name of a C++ type. Alternatively each type could itself be a sequence of types each describing a different overloaded signal. name is the optional C++ name of the signal. If it is not specified then the name of the class attribute that is bound to the signal is used. revision is the optional revision of the signal that is exported to QML. If it is not specified then 0 is used. arguments is the optional sequence of the names of the signal’s arguments.

Parameters
  • name (str = ...) –

  • revision (int = ...) –

  • arguments (Sequence = ...) –

Return type

PYQT_SIGNAL

parseOwsUrl(self, layerStruct: QgsGeoNodeRequest.ServiceLayerDetail, layerLinks: Iterable[Any]) QgsGeoNodeRequest.ServiceLayerDetail

Returns the updated ServiceLayerDetail struct with WMS/WFS/XYZ url.

Parameters
Return type

QgsGeoNodeRequest.ServiceLayerDetail

protocol(self) str

Returns the network protocol (e.g. ‘http’) used for connecting with the server.

See also

setProtocol()

Return type

str

receivers(self, PYQT_SIGNAL) int
request(self, endPoint: str)

Triggers a new request to the GeoNode server, with the requested endPoint. Any existing request will be aborted.

Calling this method does not block while waiting for a result.

Warning

When using the non-blocking methods in this class, sending overlapping requests results in undefined behavior. Use separate instances of QgsGeoNodeRequest instead to avoid this.

Parameters

endPoint (str) –

requestBlocking(self, endPoint: str) bool

Triggers a new request to the GeoNode server, with the requested endPoint. Any existing request will be aborted.

Calling this method will block while waiting for a result. It should not be used from any code which potentially blocks operation in the main GUI thread.

See also

request()

Parameters

endPoint (str) –

Return type

bool

requestFinished

pyqtSignal(*types, name: str = …, revision: int = …, arguments: Sequence = …) -> PYQT_SIGNAL

types is normally a sequence of individual types. Each type is either a type object or a string that is the name of a C++ type. Alternatively each type could itself be a sequence of types each describing a different overloaded signal. name is the optional C++ name of the signal. If it is not specified then the name of the class attribute that is bound to the signal is used. revision is the optional revision of the signal that is exported to QML. If it is not specified then 0 is used. arguments is the optional sequence of the names of the signal’s arguments.

Parameters
  • name (str = ...) –

  • revision (int = ...) –

  • arguments (Sequence = ...) –

Return type

PYQT_SIGNAL

sender(self) QObject
senderSignalIndex(self) int
setProtocol(self, protocol: str)

Sets the network protocol (e.g. ‘http’) used for connecting with the server.

See also

protocol()

Parameters

protocol (str) –

statusChanged

pyqtSignal(*types, name: str = …, revision: int = …, arguments: Sequence = …) -> PYQT_SIGNAL

types is normally a sequence of individual types. Each type is either a type object or a string that is the name of a C++ type. Alternatively each type could itself be a sequence of types each describing a different overloaded signal. name is the optional C++ name of the signal. If it is not specified then the name of the class attribute that is bound to the signal is used. revision is the optional revision of the signal that is exported to QML. If it is not specified then 0 is used. arguments is the optional sequence of the names of the signal’s arguments.

Parameters
  • name (str = ...) –

  • revision (int = ...) –

  • arguments (Sequence = ...) –

Return type

PYQT_SIGNAL

timerEvent(self, QTimerEvent)