Does Qgc get a WMS client any time soon?

Hello all,

is there any chance that QGround Control will get a WMS client so I can add my own maps ?
Found this post from 5 years ago:

It would be so nice!

Max

What is a WMS Client?

It is the counter part of a Web Map Server, who provides georeferenced maps (raster or vector) (for example Geoserver can be enabled to be a Web Map Server) WMS is like a protocoll for that.

Mission Planner has that ability.

It would be even more easy for me if I could import geotifs (georeferenced raster files like a Digital Elevation Model for example)

Mission planner use a .net framework to display wms : gmap .net
To explain to non GIS user, georeferenced raster files are generally TIFF with embeded coordinates in header. Gdal handle wms and raster files …

And how does Qgroundcontrol get GoogleMaps ?

With Qt5, there is qtwebkit which could display HTML …
Un qgroundcontrol, they try to reduce library dependency to make it light !

Unfortunately I am not able to develop this but I’d throw at least 100€ in the box if someone did.

Ok, thanks I understand now. There isn’t anything coming in the next release to support that.

@maxion did you solve the problem or are you still interested in a solution?
Does anyone did WMS support for QGC?

Hi zdanek,
I wasn’t able to solve it, at the moment I am not flying, but I’d still be interested in that. And 100$ are still in the pot :wink: you think you can do it?

@maxion I might be able to do it. It might be relative to some projects I currently develop. I need to check if I will have map data from a WMS server and if so, I will implement it.

@maxion yesterday I worked on this topic and I have a working QGC with WMS server.
This still need more work as

  1. server address is fixed in the code
  2. there are plenty of WMS server implementations as WMS is only a Web service standard
  3. some work is required to do in QGC settings to be able to
    a) enter WMS server address
    b) choose desired layer

And finally testing with various servers and potential different configurations is required.
But still I’m very happy with the results.

@maxion do you have your own WMS server? Is it open/available to the internet? May I check my QGC with it? Or at least are you able to send me GetCapabilities response?

This would be great! Following!

Hello! I wanted to know if you are going to spread these changes in the public domain?

Yes. I will post a pull request to an official QGC repo soon.

I’m looking forward to this pull request! When will the work be completed?

And I have one question. What is the difference between the existing QGC Tile map and the WMS method?

No, no difference as WMS servers can produce PNGs. In fact I use this kind of retrieving map - by png tiles.

I have been trying to add a WMS map server as a map provider and I could not find any examples. So I will give some direction for whoever is also trying to achieve this by modifying the QGC source code. I wanted to have a base map(openseamap) and AIS as an overlay to visualize marine traffic. However, AIS data source is a WMS server for my case.

QGC already has a solid back-end implementation to fetch from tile servers. So I only had to add a new map provider(MapProvider class) with proper arguments.

First, I did a quick online search and found this wiki https://wiki.openstreetmap.org/wiki/Slippy_map_tilenames#C/C++ which shows the algorithm and mathematical formulas to convert tiles to lat/long. Then, I had to convert lat/long to a proper format which the WMS server understands in EPSG:3857 format. I did this math before sending my request in the back-end methods.

To add another map on top, I modified the FlightMap.qml file. Added another Map object(using QGC location plugin) inside an already defined Map object with a different opacity and marine traffic showed up as an overlay.

1 Like

Thats awesome! @bcanozter do you have an example you can share?