Qgis-server...Bringing a map image into the browser on Ubuntu 16.04 LTS

So you have your 'GetCapabilities' xml displaying in your browser working as in my post of Friday 22nd July 2016

http://www.paulshapley.com/2016/07/how-to-install-qgis-server-on-ubuntu.html

NO?...here are some issues to check back in the QGIS project file before we move on.

  • Check the 'Project Properties' under the 'Project' menu, go to the 'OWS server' tab. Below is an example of of how I've set up mine.


 and here is the bottom bit you cannot see in the above image...

Ensure under 'Save Paths' in the 'General' Tab it is set to 'relative'. Note that the layers you are going to select for the WMS service are ticked under 'Published' in the WFS capabilities table.

Moving on to setting up your 'Add layer(s) from WM(T)S Server' button on the 'Manage Layers Toolbar'




Ensure your url is pointing at 'http://yourhost/cgi-bin/project/qgis_mapserv.fcgi?'it is better to specify the full path to the qgis project file which is stored (in my case) in a 'project' folder inside the 'cgi-bin' folder along with any shapefiles used as the source of your wms, 'qgis_mapserv.fcgi' file and 'wms_metadata.xml' files.

Now create a new connection and add your parameters which should look similar to the ones i've added above and tick 'ignore GetMap' and 'ignore GetFeatureInfo' boxes are ticked then 'OK'. In your 'project' folder under 'cgi-bin' (/usr/lib/cgi-bin/project/southuk.qgs)

Since we are using one layer from a PostGIS database open you 'Project.qgs' file (in Gedit or similar text editor and ensure you add your PostGIS connection details similar to below under <datasource>. I understand you can leave out the password as it is already stored in the 'pgpass.conf' file. I've left this in for demo purposes.

amend the <datasource> line to reflect your PostGIS database connection details.


When your done...check again using the same URL as before:

http://localhost/cgi-bin/project/qgis_mapserv.fcgi?SERVICE=WMS&VERSION=1.3.0&REQUEST=GetCapabilities

If ever you need to share your WMS Service with another QGIS user you can use the url (below) and you will get a list of all the layers from that project.

http://127.0.0.1/cgi-bin/projects/my_project/qgis_mapserv.fcgi?SERVICE=WFS&REQUEST=GetCapabilities

How do we display a map image from our QGIS Desktop project file?

Before we do go back in your QGIS project check you can add your newly created WMS layers back into QGIS as with any other WMS from a different source.

When you hit the 'connect' button you should see a list of layers you created earlier, if not go back and check from the beginning of this post.

Select a layer and click 'Add' and the layer(s) should appear in your layer panel as normal qgis layers.



Lastly, r/c on your largest area wms layer and go to 'Properties' and make a note of the bounding box co-ordinates.

The layer extent is from left to right 262377,179121,297597,215872


We can now use these co-ordinates in the 'GetMap' part in the url:-

http://localhost/cgi-bin/project/qgis_mapserv.fcgi?SERVICE=WMS&VERSION=1.3.0&SRS=EPSG:27700&REQUEST=GetMap&map=/usr/lib/cgi-bin/project/southuk.qgs&BBOX=262377,179121,297597,2158721&WIDTH=550&HEIGHT=500&LAYERS=coast_polyline,b_road_polyline&STYLES=,,&FORMAT=image/png

http://localhost/cgi-bin/project/qgis_mapserv.fcgi? this part of the url locates the qgis-server executable on the apache2 host server.

SERVICE=WMS&VERSION=1.3.0&SRS=EPSG:27700& this part calls the WMS service, it's version and the target spatial reference system.

REQUEST=GetMap&map=/usr/lib/cgi-bin/project/southuk.qgs& this part is the request to get the 'map' from the qgis project file.

BBOX=262377,179121,297597,2158721&WIDTH=550&HEIGHT=500& this part sets the size of the retrieved image boundary and the 'WIDTH' and 'HEIGHT' of the image area in the browser.

LAYERS=coast_polyline,b_road_polyline&STYLES=,,&FORMAT=image/png the final part is the description and display of the layers of the WMS. Note there is no 'STYLES' specified because it in specified the .qgs file. Finally, the output format is a png image.

The final output is a png image in the browser window.
 

 
and a closer look shows it is identical to the qgis project.

We could also add many more parameters and requests into the url in order to enhance the visual appearance for example.

REQUEST=GetFeatureInfo...this request retrieves the underlying attributes and geometry values and pixel location.

GetLegendGraphic...this looks for the view legend information.

bgcolor...sets the background map colour.





 




Comments

  1. Hi Paul, Thanks for this tutorial.

    ReplyDelete
  2. "It’s the ideal a chance to make a number of plans for the longer term and it’s time for you to be at liberty. We have learn this publish of course, if I could..I wish to counsel you few interesting issues or advice. Perhaps you can write next articles regarding this short article.

    I wish to read more things approximately it!"

    ��야동 ��

    ReplyDelete
  3. "What’s up, ☑오피☑ of course this piece of writing is truly good and I have learned lot of things from it about blogging. thanks."

    ReplyDelete
  4. "It’s amazing ↘마사지↙, your posts are really impressive, I hope to see more of this wonderful article from you"

    ReplyDelete
  5. What an excellent you are. Your presentation was so good. 💥건전마사지💥

    ReplyDelete

Post a Comment

Popular posts from this blog

Install PostreSQL 14 and PostGIS 3 on Ubuntu 22.04 LTS

Install QGIS 3.22 LTS with QGIS-SERVER-3.22 and Apache2 on Ubuntu 22.04 LTS

Qgis-server...Installing the QGIS Lizmap Plugin & Lizmap Web Client