Tag Archive | qGIS Server

GeoNode och QGIS

Det börjar bli mer och mer tydligt att GeoNode kommer att bli en alldeles utmärkt ”backend” för QGIS i arbetsflödet.

Några exempel tas upp i denna artikel.

Läs mer…

QGIS Server

Då är det QGIS Server workshop i Täby idag. Då tänkte jag samla lite resurser om QGIS Server i detta inlägg. Läs mer…

QGIS Server Workshop

Är du intresserad av QGIS Server? Då har du möjlighet att senast den 10 Januari anmäla dig till en Workshop som hålls i Täby den 25 Januari.

http://mundogis.se/tjanster/workshops.html

Har du andra liknande evenemang du vill göra reklam för så skicka dem till mig. Tycker jag det verkar intressant så blir den en ”puff” här på bloggen, vilket når ”ganska många” läsare i och utanför Sverige…

(Ett tips för att få mig på bättre publiceringshumör är att se till att evenemanget lever upp till filosofin när det gäller Open Source.)

QGIS Server

Det var ett tag sedan jag testade QGIS Server, och då på en kombinerad fil- och geoserver.

Men, om man redan har QGIS installerat. Kan det vara så att det är skapligt enkelt att installera och använda, så att man kan få till nya funktioner och användningsområden.

Det tänkte jag kolla lite på i detta inlägg. Läs mer…

Geosupportsystem IT-plattform – Installationsguide del 4

I denna avslutande återblick på hur man kan använda öppen källkod för att bygga en IT-lösning för geosupport så tänkte jag komplettera OpenGeo Suite installationen med QGIS Server.

Planen var att på samma server som tidigare lägga till nödvändiga komponenter för att enkelt (-ish) skapa snyggare kartor än vad som är möjligt med Boundless lösningar. Detta är dock lite problematiskt eftersom OpenGeo Suite använder en version av GDAL, skapad av Boundless, som inte är kompatibel med den vanliga GDAL som används av QGIS. Lösningen är att installera QGIS Server på en egen server i stället. Däremot så skall man kunna använda GeoServer, GeoExplorer, QGIS plug-in med mera för att hantera och skapa webbtjänster via den tidigare servern.

Läs mer…

Python i QGIS Server

Strax före jul bakades stöd för Python in i utvecklingsversionen av QGIS Server och finns sedan 2.8 med även i den stabila versionen (har inte testat själv).

Det börjar nu märkas att funktionen används och vi kommer nog att få se mer utveckling av plug-in för QGIS Server i framtiden.

Vad är då QGIS Server Python Plug-In?

Jag tittar igenom lite filmer och presentationsunderlag och gör så gott jag kan en kort sammanställning:

Skärmbild från 2015-05-23 11:07:15Med funktionen skulle man kunna tänka sig att man skapar skräddarsydda autentiseringsfunktioner, eller att man modifierar OGC svar, eller helt enkelt skapar nya.

Man kan lyssna på ”requests” och om dessa inte är standard (”404”) så kan man låta ett insticksprogram analysera frågan och ge ett passande svar. Detta gör det möjligt att ta hand om sådant som inte är standardiserade ”requests”.

För att modifiera standardiserade ”requests” så krävs det mera kod, men i princip allt är möjligt att ändra.

Skärmbild från 2015-05-23 11:20:26Ett enkelt exempel (hämtat från http://www.itopen.it/qgis-server-getfeatureinfo-with-style/) visar hur ett ”filter” skapats i Python.

Filtret lyssnar efterom det är en ”Request” för WMS/GETFEATUREINFO i HTML-format.

Om så är fallet så byts ”BODY” taggen ut och en ”STYLE” tagg läggs till med instruktionern för hur svaret skall formateras. Snyggt och väldigt enkelt! Inte så svårt att anpassa och kanske lägga till en logotyp eller kontaktuppgifter…

Skärmbild från 2015-05-23 11:33:01

Plug-In skripten bygger i princip på tre ”hooks” (bilden ovan). Ett som görs när förfrågan är mottagen, en när svaret är klart för sändning och ett när svaret skall sändas (det finns en skillnad mellan de två senare, men jag utvecklar inte det här).

Vilken kod du väljer att inkludera i ditt skript är helt upp till dig, så länge du använder minst en av dessa ”hooks”. Det går att använda vilken Python-kod som helst och det går att använda alla QGIS Python bindningar om man så vill.

Vi får väl se när/om jag får tid att testa detta vidare, men om du vill gå vidare själv så finns en instruktion för hur du sätter upp en QGIS Server med Python Plug-In på http://www.itopen.it/qgis-server-python-plugins-ubuntu-setup/

Konfigurera QGIS Webbklient

Screenshot from 2014-06-05 20:25:01

Till att börja med så kanske man vill översätta QGIS webbklient till Svenska? Då får man ge sig in och redigera i filen ”js/Translations.js”. Det är ganska rättfram hur det går till och nationskoden för Sverige är [sv], så det är bara att sätta igång…

Om du har tur så finns redan Svenska som språk, vilket innebär att jag hunnit skapa en översättning och gjort en ”pull-request” på GitHub och fått in tillägget.

Om så är fallet så ändrar man till Svenska genom att ändra andra raden i ”js/GlobalOption.js”:

var lang = "sv";

Om dessutom hjälpfilen skapats så ändras en rad lite längre ner till:

var helpfile = "help_sv.html";

Vill du kunna använda sökfunktionen så behöver du redigera ”js/GlobalOptions.js”. Leta reda på, och redigera nedanstående avsnitt så att det passar dina data.

//config for QGIS.SearchPanel
//Number of results: FEATURE_COUNT in WMS request
var simpleWmsSearchMaxResults = 10;
 
var simpleWmsSearch = {
 title: "Sök Kommun",
 query: 'simpleWmsSearch',
 useWmsRequest: true,
 queryLayer: "Kommuner (PostGIS)",
 formItems: [
 {
 xtype: 'textfield',
 name: 'kom_namn',
 fieldLabel: "Namn",
 allowBlank: false,
 blankText: "Var snäll och ange ett namn (ex 'Eksjö').",
 filterOp: "="
 }
 ],
 gridColumns: [
 {header: 'Namn', dataIndex: 'kom_namn', menuDisabled: 'true'}
 ],
// highlightFeature: true,
// highlightLabel: 'kom_namn',
 selectionLayer: 'Kommuner (PostGIS)',
 selectionZoom: 0,
 doZoomToExtent: true
};

Det går att skapa flera sökflikar genom att lägga till flera variabler liknande ”simpleWmsSearch” ovan, men med nya passande namn. Varje variabel läggs till som sökflik under rubriken:

//list of configs for QGIS.SearchPanel per map name
var mapSearchPanelConfigs = {
 "/qgis/Sverige.qgs": [simpleWmsSearch, minNyaSökflik]
};

Texten ”/qgis/Sverige.qgs” skall vara densamma som används för webbkartans URL (i mitt fall http://192.168.0.121/webbkartor/qgis-client/qgiswebclient.html?map=/qgis/Sverige.qgs).
Det kan ju hända att man har flera kartor man växlar mellan (se längre ner) och då bör ju bara sökfunktionen vara aktiv för den aktuella kartan. Detta uppnås genom att kommentera bort (eller radera) en rad lite längre ner:

// ABP: needed for helloworld if no rewrite
// mapSearchPanelConfigs[project_map] = [simpleWmsSearch, urlRewriteSearch];

Man kan ganska enkelt sätta en lite mer personlig prägel med inställningar lite längre ner:

//first part of titlebar text
var titleBarText = "Geosupportsystem QGIS - "; // will be appended with project title
 
// header logo image and link
var headerLogoImg = null; // path to image, set null for no logo
var headerLogoHeight = 60; // logo image height in pixels
var headerLogoLink = ""; // logo links to this URL
var headerTermsOfUseText = null; // set null for no link
var headerTermsOfUseLink = ""; // URL to terms of use

Om man inte vill använda kartteman (välja bland flera projekt) så måste man sätta en variabel till ”false”:

var mapThemeSwitcherActive = true;

Om man däremot vill använda funktionen så får man redigera filen ”GISProjectListing.js”. Filen är ganska självförklarande även om det kan vara mycket att redigera.

Slutligen kan jag säga att om man vill använda egna bakgrundskartor så är det heller inga större problem. Redigera filen ”js/Customizations.js” i avsnittet:

function customBeforeMapInit() {
 
}

Innanför klammerparentesen så skapar man ett ”OpenLayers.Layer” och lägger till detta med kommandot ”baseLayer.push(lagernamn)”. Mer om detaljer hur det går till kan man läsa på GitHub (https://github.com/qgis/QGIS-Web-Client).

Det finns massor med ytterligare inställningar som är ganska enkla att ändra och sedan är det faktiskt ”bara” javaskript och stilmallar i grunden, så det gäller bara att hitta rätt inställning så går det att ändra på det mesta så att det passar det man är ute efter.

Lycka till!