5

I'm using QGIS to style shapefiles.

Currently I'm running GeoServer but not all the QGIS styles are imported to GeoServer (although its really easy to maintain it because of the layer preview and the integrated tile cache)

What is your recommendation for free WMS that is easy to integrate with QGIS shapefiles (and caching tiles - working with different kinds of projection)?

2
  • recommend you edit out EASIEST and simply request "an alternative, open source solution to GeoServer" – tony gil May 15 '18 at 1:29
  • If you want an opensource WMS that uses SLD as the internal way of styling layers then you can try deegree. An alternate WMS is MapServer, but it doesn't use SLD internally to style layers ~ though it can use SLD as part of a GetMap request. – nmtoken May 15 '18 at 13:45
7

The best integration is available through QGIS Server. You can simply publish the desktop project files through the server.

Step by step installation instructions are available for Windows 7 and Ubuntu.

QGIS Server can also be combined with TileCache: http://linfiniti.com/2011/09/qgis-server-with-tilecache/

0
0

QGIS Server is an alternative to GeoServer. Each has advantages and disadvantages.

I suggest that you benchmark a GeoServer instance and a QGIS Server instance (on Amazon search for ami-0dc97a72 [GeoServer] and ami-93fb75ec [QGIS]) and compare both by placing each on a different layer on an OpenLayers map and switching each on and off alternately.

 // GEOSERVER untiled
 var format = 'image/png';
 var untiledGeoServer = new ol.layer.Image({
    source: new ol.source.ImageWMS({
      ratio: 1,
      url: 'http://34.42.165.189:8080/geoserver/your_folder_name/wms',
      params: {'FORMAT': format,
               'VERSION': '1.1.1',  
            STYLES: '',
            LAYERS: 'workspace:layer',
      }
    })
  });
  // GEOSERVER tiled
  var tiledGeoServer = new ol.layer.Tile({
    visible: true,
    source: new ol.source.TileWMS({
      url: 'http://34.42.165.189:8080/geoserver/your_folder_name/wms',
      params: {'FORMAT': format, 
               'VERSION': '1.1.1',
               tiled: true,
            STYLES: '',
            LAYERS: 'workspace:layer',
         tilesOrigin: [latitude] + "," + [longitude]
      }
    })
  });
  // QGIS untiled
  var untiledQgis = new ol.layer.Image({
    source: new ol.source.ImageWMS({
      ratio: 1,
      url: 'http://12.172.35.145/cgi-bin/qgis_mapserv.fcgi',
      params: {'FORMAT': format,
               'VERSION': '1.3.0',  
            STYLES: '',
            LAYERS: 'qgis_layer_name',
    MAP: '/var/www/html/qgis/projects/your_project_name.qgs'
      }
    })
  });

You will notice different artifacts in each zoom level for each server. They don't serve EXACTLY the same image.

This is the official instruction set QGIS Server 12.1, which works.

NOTE: QGIS Server install has a remote desktop installed, use vinagre from command line:

sudo vinagre 12.172.35.145:5901

and enter myPasswo for the password (change it later).

12.172.35.145 and 34.42.165.189 should be replaced by your servers' IP's.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.