Accessing Data from External Clients (QGIS)¶
Install QGIS Desktop¶
Open the
Ubuntu Software
appClick
CTRL + F
and search forqgis
; click on theQGIS Desktop
iconClick on
INSTALL
and wait for the process to finishOnce the app has been installed, open it by clicking on the icon
Connect through BASIC Auth¶
This is the easiest way to connect the client to GeoNode:
- Pros: very easy to configure
- Cons: it uses always a fixed user and you need to change it anytime if you want to switch it
Let’s add a
VECTORIAL
layer accessible totest_user1
to the client; click onLayer > Add Layer > Add WFS Layer...
Create a
New Connection
Provide a name, e.g.
GeoNode WFS
and the following URL:http://localhost/gs/ows
IMPORTANT: It is mandatory to pass through the GeoNode proxy
/gs/
instead of hitting the GeoServer endpoint directlyIf the client asks for a
NEW master password
you can just provide anyone, e.g.geonode
Switch to
Basic
authentication, provide thetest_user1
credentials and click onConvert to configuration
Make sure the converted configuration is selected and click on
Detect
in order to verify that it works; click onOK
when finished
Connect through OAuth2¶
This is the easiest way to connect the client to GeoNode:
- Pros: difficult to configure
- Cons: it redirects to GeoNode to authenticate, so you can use any login provided by GeoNode
We need to prepare GeoNode first; as an
admin
go to theAdmin Dashboard
and look forDjango OAuth Toolkit > Applications
Edit the
GeoServer
oneAdd the following URL to the
Redirect URIs
section and take note of theClient ID
andClient Secret
keys:Copy the Client ID / Client Secret
Add Redirect URIs and Save:
http://127.0.0.1:7070/qgis-client
Let’s add a
VECTORIAL
layer accessible totest_user1
to the client; click onLayer > Add Layer > Add WFS Layer...
Add a new
OAuth2 Authentication
config and fill the fields as follows:Name: Provide any name you want e.g.
GeoNode OAuth2
Grant Flow:
Authorization Code
Request URL:
http://localhost/o/authorize/
(the/
at the end is IMPORTANT!)Token URL:
http://localhost/o/token/
(the/
at the end is IMPORTANT!)Refresh token URL:
http://localhost/o/token/
(the/
at the end is IMPORTANT!)Client ID / Client Secret: The ones above
Scope:
openid write
Token session:
True
Access method:
Header
Token header: empty (it is important you leave this param empty)
Save
Make sure the new configuration is selected and click on
Detect
in order to verify that it works; click onOK
when finishedThe client will open automatically a browser session, if you are not logged in, sign in with
test_user1
The window below means that the authetnication process was successfull; you can safely close it and go back to the client
Attach Layer to the Project¶
Once the connection has been configured and saved, whatever it is, go back to the
WFS
panel, select the connection you just created and click onConnect
If everything goes weel, you should be able to see the server offering; it will list all the layers the user has access to
Select the
Test Layer
and click onAdd
QGIS will create a new project with the layer already loaded and centered to the map
Editing Contents: Values¶
Enable
Editing Mode
on QGIS and click on theInfo
buttonClick over the geometry to edit and, on the right panel, expand and click on the link
Edit feature form
That will show a small form with the values, change few ofthem and click on
OK
buttonA small
floppy disk
button will pop near the editing one meaning that there are some pending changes to be committed to the server; click on it in order to persist the changesAt a successfull commit, the
floppy disk
button will be disabled again
Editing Contents: Geometries¶
Enable
Editing Mode
on QGIS and click on theInfo
buttonClick on the
Vertex Tool
and enable it; from now on by moving over a geometry you will be able to modify its verticesOnce happy with the changes, save them like we have done previously on the values
With this specific layer most probably you will get an error on the bounding box extension; this is caused by the native projection of the layer and the QGIS not being able to correctly manage the
dateline
It is still possible to edit the layer from GeoNode directly, however in order to fix this issue easily, we will convert the layer into a
Mercator Projected
one.
We will pass through the database in order to perform such operation. In the next section we will see how to re-project and store and a DB table a layer and then push it back to GeoNode.