tag:blogger.com,1999:blog-72058106281766094152024-03-17T20:02:25.767-07:00Paul Shapley's Open Source Geospatial BlogObservations, comments and tutorials on the world of open source mapping and geographical information for users and developers.Paul J. Shapleyhttp://www.blogger.com/profile/06250187172197982719noreply@blogger.comBlogger124125tag:blogger.com,1999:blog-7205810628176609415.post-43788860034551680582024-03-11T07:36:00.000-07:002024-03-11T07:36:58.526-07:00GeoServer and ORACLE – WFS & WMS Config Tips<p> My thanks to <a href="https://cloudydatablog.net/geoserver-and-oracle-wfs-wms-config-tips/" target="_blank">Mark Brooks</a> for this advice and tips. </p>Paul J. Shapleyhttp://www.blogger.com/profile/06250187172197982719noreply@blogger.com0tag:blogger.com,1999:blog-7205810628176609415.post-38365891899808211192024-02-06T14:11:00.000-08:002024-02-06T14:11:41.103-08:00Why Companies are Kicking Cloud to the Curb<iframe width="480" height="270" src="https://youtube.com/embed/O66xpoRpyRk?si=z7bmG8sFuMEJ-jBX" frameborder="0"></iframe>Paul J. Shapleyhttp://www.blogger.com/profile/06250187172197982719noreply@blogger.com0tag:blogger.com,1999:blog-7205810628176609415.post-12692828408430957082023-11-16T06:44:00.000-08:002023-11-16T06:44:48.830-08:00QGIS Now Supports Cesium 3D Tiles - By Danielle Stollak<p><a href="https://cesium.com/blog/2023/11/07/qgis-now-supports-3d-tiles/"> https://cesium.com/blog/2023/11/07/qgis-now-supports-3d-tiles/</a></p>Paul J. Shapleyhttp://www.blogger.com/profile/06250187172197982719noreply@blogger.com0tag:blogger.com,1999:blog-7205810628176609415.post-28499295376122401232023-11-08T12:36:00.000-08:002023-11-08T12:36:00.451-08:00How to use Libertine / Desktop Apps on Ubuntu Touch - Pixel 3a - GIMP<iframe width="480" height="270" src="https://youtube.com/embed/L5-TtUnIgbg?si=kNU7RIvQSdTryaBq" frameborder="0"></iframe>Paul J. Shapleyhttp://www.blogger.com/profile/06250187172197982719noreply@blogger.com0tag:blogger.com,1999:blog-7205810628176609415.post-32975601028372277622023-10-07T09:23:00.003-07:002023-10-07T09:23:59.445-07:00Newest Privacy phone from /e/OS - The 'Murena 2'<p>Introducing the 'Murena 2'</p><p><a href="https://murena.com/shop/smartphones/murena-2/?wcpbc-manual-country=GB">https://murena.com/shop/smartphones/murena-2/?wcpbc-manual-country=GB</a></p><p>And in case your wondering...Yes I do use a Murena based Samsung Galaxy as my daily driver!</p>Paul J. Shapleyhttp://www.blogger.com/profile/06250187172197982719noreply@blogger.com1tag:blogger.com,1999:blog-7205810628176609415.post-41100859234469446782023-09-09T05:33:00.001-07:002023-09-09T05:33:18.784-07:00NSF Grant Awarded to Enhance GRASS GIS Ecosystem<p> All Grass GIS users worldwide will benefit funding to this group of people.</p><p><a href="https://grass.osgeo.org/news/2023_09_06_nsf_grant_awarded/">https://grass.osgeo.org/news/2023_09_06_nsf_grant_awarded/</a></p>Paul J. Shapleyhttp://www.blogger.com/profile/06250187172197982719noreply@blogger.com0tag:blogger.com,1999:blog-7205810628176609415.post-47353789030592262632023-09-05T04:12:00.000-07:002023-09-05T04:12:19.468-07:00Homage to Bart O' Farrell<p>Going to be presenting at <a href="https://uk.osgeo.org/foss4guklocal2023/swansea.html" target="_blank">FOSS4G</a> on Thursday in Swansea at the University of Wales Trinity St David and realised this institute was originally called 'West Glamorgan Institute of Higher Education (Wiggy) as we called it then back in the 80s where I was a student in Graphic Design. </p><p>On reflection... I wondered what happened to some of those lecturer's and in particular Bart O'Farrell. In homage to this great welsh artist and character I'm posting the only interview I can find of his career while it remains online.</p><p><a href="https://cornishbirdblog.com/bart-ofarrell-wizard-on-the-lizard-full-unedited-interview/">https://cornishbirdblog.com/bart-ofarrell-wizard-on-the-lizard-full-unedited-interview/</a></p>Paul J. Shapleyhttp://www.blogger.com/profile/06250187172197982719noreply@blogger.com0tag:blogger.com,1999:blog-7205810628176609415.post-87554473746667388062023-07-21T06:48:00.004-07:002023-07-21T06:52:44.159-07:00Build 'PCRaster' (from source) on Linux - For calculation of flow accumulation in QGIS... by Hans van der Kwast<p><span style="background-color: white;">$ <span class="hljs-attribute" face="SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace" style="box-sizing: border-box; color: navy; font-size: 14px; white-space: pre;">sudo</span><span face="SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace" style="color: #333333; font-size: 14px; white-space: pre;"> apt install libboost-</span><span class="hljs-literal" face="SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace" style="box-sizing: border-box; color: teal; font-size: 14px; white-space: pre;">all</span><span face="SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace" style="color: #333333; font-size: 14px; white-space: pre;">-dev libqt</span><span class="hljs-number" face="SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace" style="box-sizing: border-box; color: teal; font-size: 14px; white-space: pre;">5</span><span face="SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace" style="color: #333333; font-size: 14px; white-space: pre;">charts</span><span class="hljs-number" face="SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace" style="box-sizing: border-box; color: teal; font-size: 14px; white-space: pre;">5</span><span face="SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace" style="color: #333333; font-size: 14px; white-space: pre;">-dev libxerces-c-dev libncurses-dev cmake-curses-gui libqt</span><span class="hljs-number" face="SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace" style="box-sizing: border-box; color: teal; font-size: 14px; white-space: pre;">5</span><span face="SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace" style="color: #333333; font-size: 14px; white-space: pre;">opengl</span><span class="hljs-number" face="SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace" style="box-sizing: border-box; color: teal; font-size: 14px; white-space: pre;">5</span><span face="SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace" style="color: #333333; font-size: 14px; white-space: pre;">-dev pybind</span><span class="hljs-number" face="SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace" style="box-sizing: border-box; color: teal; font-size: 14px; white-space: pre;">11</span><span face="SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace" style="color: #333333; font-size: 14px; white-space: pre;">-dev</span></span></p><span style="background-color: white;"><span class="hljs-attribute" face="SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace" style="box-sizing: border-box; color: navy; font-size: 14px; white-space: pre;">$ git</span><span face="SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace" style="color: #333333; font-size: 14px; white-space: pre;"> clone --recursive https://github.com/pcraster/pcraster.git
</span><span class="hljs-attribute" face="SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace" style="box-sizing: border-box; color: navy; font-size: 14px; white-space: pre;">$ cd</span><span face="SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace" style="color: #333333; font-size: 14px; white-space: pre;"> pcraster && mkdir build && cd build
</span><span class="hljs-attribute" face="SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace" style="box-sizing: border-box; color: navy; font-size: 14px; white-space: pre;">$ cmake</span><span face="SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace" style="color: #333333; font-size: 14px; white-space: pre;"> -G</span><span class="hljs-string" face="SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace" style="box-sizing: border-box; color: #dd1144; font-size: 14px; white-space: pre;">"Unix Makefiles"</span><span face="SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace" style="color: #333333; font-size: 14px; white-space: pre;"> -D CMAKE_BUILD_TYPE=Release -DPCRASTER_BUILD_TEST=</span><span class="hljs-literal" face="SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace" style="box-sizing: border-box; color: teal; font-size: 14px; white-space: pre;">OFF</span><span face="SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace" style="color: #333333; font-size: 14px; white-space: pre;"> ..
</span><span class="hljs-attribute" face="SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace" style="box-sizing: border-box; color: navy; font-size: 14px; white-space: pre;">$ make</span><span face="SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace" style="color: #333333; font-size: 14px; white-space: pre;"> -j</span><span class="hljs-number" face="SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace" style="box-sizing: border-box; color: teal; font-size: 14px; white-space: pre;">4</span><span face="SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace" style="color: #333333; font-size: 14px; white-space: pre;">
</span><span class="hljs-attribute" face="SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace" style="box-sizing: border-box; color: navy; font-size: 14px; white-space: pre;">$ sudo</span><span face="SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace" style="color: #333333; font-size: 14px; white-space: pre;"> make install
</span><span class="hljs-attribute" face="SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace" style="box-sizing: border-box; color: navy; font-size: 14px; white-space: pre;">$ echo</span><span face="SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace" style="color: #333333; font-size: 14px; white-space: pre;"> </span><span class="hljs-string" face="SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace" style="box-sizing: border-box; color: #dd1144; font-size: 14px; white-space: pre;">"export PYTHONPATH=$PYTHONPATH:/usr/local/python"</span><span face="SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace" style="color: #333333; font-size: 14px; white-space: pre;"> >> ~/.bash_profile</span></span><div><span face="SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace" style="background-color: white; color: #333333; font-size: 14px; white-space: pre;">$ sudo reboot</span></div><div><span face="SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace" style="background-color: #e9ecef; color: #333333; font-size: 14px; white-space: pre;"><br /></span></div><div><span face="SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace" style="background-color: #e9ecef; color: #333333; font-size: 14px; white-space: pre;"><a href="https://jvdkwast.github.io/qgis-processing-pcraster/">https://jvdkwast.github.io/qgis-processing-pcraster/</a></span></div><div><span face="SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace" style="background-color: #e9ecef; color: #333333; font-size: 14px; white-space: pre;"><br /></span></div><div><br /></div>Paul J. Shapleyhttp://www.blogger.com/profile/06250187172197982719noreply@blogger.com0tag:blogger.com,1999:blog-7205810628176609415.post-19633438566330169992023-07-21T05:37:00.000-07:002023-07-21T05:37:04.685-07:00How I Would Learn GIS (If I Had To Start Over)<iframe width="480" height="270" src="https://youtube.com/embed/n9dDsYLIx1c" frameborder="0"></iframe>Paul J. Shapleyhttp://www.blogger.com/profile/06250187172197982719noreply@blogger.com0tag:blogger.com,1999:blog-7205810628176609415.post-69269706462406808982023-07-18T14:49:00.000-07:002023-07-18T14:49:31.795-07:00MAPS CAN LIE - A map presents only one of many possible stories<p>Don't believe everything a map appears to show. The Colour, the size and position of labels and the scale hierarchy of information can all be used to deceive you.</p><p><a href="https://www.outsideonline.com/outdoor-adventure/exploration-survival/how-maps-lie/">https://www.outsideonline.com/outdoor-adventure/exploration-survival/how-maps-lie/</a></p><p><br /></p><p><br /></p><p><br /></p><p><br /></p>Paul J. Shapleyhttp://www.blogger.com/profile/06250187172197982719noreply@blogger.com0tag:blogger.com,1999:blog-7205810628176609415.post-90437023656744101452023-07-17T04:12:00.001-07:002023-07-17T04:12:32.575-07:00FOSS4G 2023 - (Prizren) - General and Academic Track Presentation Downloads<p> <a href="https://space.cloud68.co/s/rAMZAiqPjfw5afJ">https://space.cloud68.co/s/rAMZAiqPjfw5afJ</a></p>Paul J. Shapleyhttp://www.blogger.com/profile/06250187172197982719noreply@blogger.com0tag:blogger.com,1999:blog-7205810628176609415.post-26090531191039074702023-07-17T01:40:00.001-07:002023-07-17T01:40:03.790-07:00FOSS4G: UK Local 2023 Get your tickets<p><a href="https://www.eventbrite.co.uk/e/foss4g-uk-local-2023-tickets-663598610307?aff=odeccpebemailcampaigns&utm_source=eventbrite&utm_medium=ebcampaigns&utm_campaign=17812459&utm_term=ctabutton&mipa=ABIdvVvXPkLb-K0DQmUBOu-wxvyNs_rv-jAFodYpt_h8wtKMQFKKZbCl_ganVfCUmDHTxweu8tnA7h2fEWW4zuxnFoaJdkq7UyVXrBX1X_yxPpC_kXgBvN_r8wYfjGnnOQrkwqnHW69zJO7YvTMEmCKDrU_wnxw4rc3tHsqY_l3M_TL9gChq2CsY2yJgIdMqLAiUZx3SHOYooagN6u-u1O9gAD74rWqbeL5qr0G5goozcVW6ii99KNOI4qoVnsjNdHYowTJ5L1l64B6qDqF5Z6ivx4CQLsvfNA">https://www.eventbrite.co.uk/e/foss4g-uk-local-2023-tickets-663598610307</a></p>Paul J. Shapleyhttp://www.blogger.com/profile/06250187172197982719noreply@blogger.com0tag:blogger.com,1999:blog-7205810628176609415.post-30093535232420851972023-07-12T23:57:00.003-07:002023-07-12T23:57:50.403-07:00Build a Geospatial Platform Using QGIS and Koordinates Cloud<p> <a href="https://www.directionsmag.com/webinar/12432">https://www.directionsmag.com/webinar/12432</a></p>Paul J. Shapleyhttp://www.blogger.com/profile/06250187172197982719noreply@blogger.com0tag:blogger.com,1999:blog-7205810628176609415.post-62310473774826835082023-05-24T02:33:00.014-07:002023-05-24T11:20:54.048-07:00Install QGIS 3.22 LTS with QGIS-SERVER-3.22 and Apache2 on Ubuntu 22.04 LTS<p><span style="font-size: large;"><b><u>Install QGIS-SERVER-3.22</u></b> </span></p><p>(assuming 'qgis' and 'qgis-plugin-grass' already on Ubuntu 22.04 LTS)</p><p>(if not)</p><p>:~$ sudo apt install qgis qgis-plugin-grass</p><p>(then)</p><p>:~$ sudo apt install qgis-server</p><p>[sudo] password for paul:</p><p>Reading package lists... Done</p><p>Building dependency tree... Done</p><p>Reading state information... Done</p><p>qgis-server is already the newest version (3.22.16+dfsg-1~jammy3).</p><p>0 to upgrade, 0 to newly install, 0 to remove and 19 not to upgrade.</p><p><b><span style="font-size: large;"><u>Check the version installed:</u></span></b></p><p>:~$ /usr/lib/cgi-bin/qgis_mapserv.fcgi --version</p><p>QGIS 3.22.16-Białowieża 'Białowieża' (exported)</p><p>QGIS code branchRelease 3.22</p><p>Qt version 5.15.3</p><p>Python version 3.10.6</p><p>GDAL/OGR version 3.6.2</p><p>PROJ version 9.1.1</p><p>EPSG Registry database version v10.076 (2022-08-31)</p><p>GEOS version 3.11.1-CAPI-1.17.1</p><p>SQLite version 3.37.2</p><p>OS Ubuntu 22.04.2 LTS</p><p><b><span style="font-size: large;"><u>Now Install Apache2</u></span></b></p><p>:~$ sudo apt install apache2</p><p>[sudo] password for paul: </p><p>Reading package lists... Done</p><p>Building dependency tree... Done</p><p>Reading state information... Done</p><p>The following additional packages will be installed:</p><p> apache2-bin apache2-data apache2-utils libapr1</p><p> libaprutil1 libaprutil1-dbd-sqlite3 libaprutil1-ldap</p><p> liblua5.3-0</p><p>Suggested packages:</p><p> apache2-doc apache2-suexec-pristine</p><p> | apache2-suexec-custom www-browser</p><p>The following NEW packages will be installed</p><p> apache2 apache2-bin apache2-data apache2-utils libapr1</p><p> libaprutil1 libaprutil1-dbd-sqlite3 libaprutil1-ldap</p><p> liblua5.3-0</p><p>0 to upgrade, 9 to newly install, 0 to remove and 3 not to upgrade.</p><p>Need to get 2,057 kB of archives.</p><p>After this operation, 8,216 kB of additional disk space will be used.</p><p>Do you want to continue? [Y/n] y</p><p>Get:1 http://gb.archive.ubuntu.com/ubuntu jammy-updates/main amd64 libapr1 amd64 1.7.0-8ubuntu0.22.04.1 [108 kB]</p><p>Get:2 http://gb.archive.ubuntu.com/ubuntu jammy-updates/main amd64 libaprutil1 amd64 1.6.1-5ubuntu4.22.04.1 [92.6 kB]</p><p>Get:3 http://gb.archive.ubuntu.com/ubuntu jammy-updates/main amd64 libaprutil1-dbd-sqlite3 amd64 1.6.1-5ubuntu4.22.04.1 [11.3 kB]</p><p>Get:4 http://gb.archive.ubuntu.com/ubuntu jammy-updates/main amd64 libaprutil1-ldap amd64 1.6.1-5ubuntu4.22.04.1 [9,168 B]</p><p>Get:5 http://gb.archive.ubuntu.com/ubuntu jammy/main amd64 liblua5.3-0 amd64 5.3.6-1build1 [140 kB]</p><p>Get:6 http://gb.archive.ubuntu.com/ubuntu jammy-updates/main amd64 apache2-bin amd64 2.4.52-1ubuntu4.5 [1,345 kB]</p><p>Get:7 http://gb.archive.ubuntu.com/ubuntu jammy-updates/main amd64 apache2-data all 2.4.52-1ubuntu4.5 [165 kB]</p><p>Get:8 http://gb.archive.ubuntu.com/ubuntu jammy-updates/main amd64 apache2-utils amd64 2.4.52-1ubuntu4.5 [89.1 kB]</p><p>Get:9 http://gb.archive.ubuntu.com/ubuntu jammy-updates/main amd64 apache2 amd64 2.4.52-1ubuntu4.5 [97.8 kB]</p><p>Fetched 2,057 kB in 33s (62.1 kB/s)</p><p>Selecting previously unselected package libapr1:amd64.</p><p>(Reading database ... 279146 files and directories currently installed.)</p><p>Preparing to unpack .../0-libapr1_1.7.0-8ubuntu0.22.04.1_amd64.deb ...</p><p>Unpacking libapr1:amd64 (1.7.0-8ubuntu0.22.04.1) ...</p><p>Selecting previously unselected package libaprutil1:amd64.</p><p>Preparing to unpack .../1-libaprutil1_1.6.1-5ubuntu4.22.04.1_amd64.deb ...</p><p>Unpacking libaprutil1:amd64 (1.6.1-5ubuntu4.22.04.1) ...</p><p>Selecting previously unselected package libaprutil1-dbd-sqlite3:amd64.</p><p>Preparing to unpack .../2-libaprutil1-dbd-sqlite3_1.6.1-5ubuntu4.22.04.1_amd64.deb ...</p><p>Unpacking libaprutil1-dbd-sqlite3:amd64 (1.6.1-5ubuntu4.22.04.1) ...</p><p>Selecting previously unselected package libaprutil1-ldap:amd64.</p><p>Preparing to unpack .../3-libaprutil1-ldap_1.6.1-5ubuntu4.22.04.1_amd64.deb ...</p><p>Unpacking libaprutil1-ldap:amd64 (1.6.1-5ubuntu4.22.04.1) ...</p><p>Selecting previously unselected package liblua5.3-0:amd64.</p><p>Preparing to unpack .../4-liblua5.3-0_5.3.6-1build1_amd64.deb ...</p><p>Unpacking liblua5.3-0:amd64 (5.3.6-1build1) ...</p><p>Selecting previously unselected package apache2-bin.</p><p>Preparing to unpack .../5-apache2-bin_2.4.52-1ubuntu4.5_amd64.deb ...</p><p>Unpacking apache2-bin (2.4.52-1ubuntu4.5) ...</p><p>Selecting previously unselected package apache2-data.</p><p>Preparing to unpack .../6-apache2-data_2.4.52-1ubuntu4.5_all.deb ...</p><p>Unpacking apache2-data (2.4.52-1ubuntu4.5) ...</p><p>Selecting previously unselected package apache2-utils.</p><p>Preparing to unpack .../7-apache2-utils_2.4.52-1ubuntu4.5_amd64.deb ...</p><p>Unpacking apache2-utils (2.4.52-1ubuntu4.5) ...</p><p>Selecting previously unselected package apache2.</p><p>Preparing to unpack .../8-apache2_2.4.52-1ubuntu4.5_amd64.deb ...</p><p>Unpacking apache2 (2.4.52-1ubuntu4.5) ...</p><p>Setting up libapr1:amd64 (1.7.0-8ubuntu0.22.04.1) ...</p><p>Setting up liblua5.3-0:amd64 (5.3.6-1build1) ...</p><p>Setting up apache2-data (2.4.52-1ubuntu4.5) ...</p><p>Setting up libaprutil1:amd64 (1.6.1-5ubuntu4.22.04.1) ...</p><p>Setting up libaprutil1-ldap:amd64 (1.6.1-5ubuntu4.22.04.1) ...</p><p>Setting up libaprutil1-dbd-sqlite3:amd64 (1.6.1-5ubuntu4.22.04.1) ...</p><p>Setting up apache2-utils (2.4.52-1ubuntu4.5) ...</p><p>Setting up apache2-bin (2.4.52-1ubuntu4.5) ...</p><p>Setting up apache2 (2.4.52-1ubuntu4.5) ...</p><p>Enabling module mpm_event.</p><p>Enabling module authz_core.</p><p>Enabling module authz_host.</p><p>Enabling module authn_core.</p><p>Enabling module auth_basic.</p><p>Enabling module access_compat.</p><p>Enabling module authn_file.</p><p>Enabling module authz_user.</p><p>Enabling module alias.</p><p>Enabling module dir.</p><p>Enabling module autoindex.</p><p>Enabling module env.</p><p>Enabling module mime.</p><p>Enabling module negotiation.</p><p>Enabling module setenvif.</p><p>Enabling module filter.</p><p>Enabling module deflate.</p><p>Enabling module status.</p><p>Enabling module reqtimeout.</p><p>Enabling conf charset.</p><p>Enabling conf localized-error-pages.</p><p>Enabling conf other-vhosts-access-log.</p><p>Enabling conf security.</p><p>Enabling conf serve-cgi-bin.</p><p>Enabling site 000-default.</p><p>Created symlink /etc/systemd/system/multi-user.target.wants/apache2.service → /lib/systemd/system/apache2.service.</p><p>Created symlink /etc/systemd/system/multi-user.target.wants/apache-htcacheclean.service → /lib/systemd/system/apache-htcacheclean.service.</p><p>Processing triggers for ufw (0.36.1-4build1) ...</p><p>Processing triggers for man-db (2.10.2-1) ...</p><p>Processing triggers for libc-bin (2.35-0ubuntu3.1) ...</p><p><b><span style="font-size: large;"><u>Install libapache2-mod-fcgid</u></span></b></p><p>:~$ sudo apt install qgis-server libapache2-mod-fcgid</p><p>Reading package lists... Done</p><p>Building dependency tree... Done</p><p>Reading state information... Done</p><p>qgis-server is already the newest version (3.22.16+dfsg-1~jammy3).</p><p>The following NEW packages will be installed</p><p> libapache2-mod-fcgid</p><p>0 to upgrade, 1 to newly install, 0 to remove and 3 not to upgrade.</p><p>Need to get 64.9 kB of archives.</p><p>After this operation, 242 kB of additional disk space will be used.</p><p>Do you want to continue? [Y/n] y</p><p>Get:1 http://gb.archive.ubuntu.com/ubuntu jammy/universe amd64 libapache2-mod-fcgid amd64 1:2.3.9-4 [64.9 kB]</p><p>Fetched 64.9 kB in 5s (12.3 kB/s) </p><p>Selecting previously unselected package libapache2-mod-fcgid.</p><p>(Reading database ... 279851 files and directories currently installed.)</p><p>Preparing to unpack .../libapache2-mod-fcgid_1%3a2.3.9-4_amd64.deb ...</p><p>Unpacking libapache2-mod-fcgid (1:2.3.9-4) ...</p><p>Setting up libapache2-mod-fcgid (1:2.3.9-4) ...</p><p>apache2_invoke: Enable module fcgid</p><p><b><span style="font-size: large;"><u>Enable the 'fcgid' module</u></span></b></p><p>:~$ sudo a2enmod fcgid</p><p>Module fcgid already enabled</p><p><b><span style="font-size: large;"><u>Configure 'serve-cgi-bin' </u></span></b></p><p>ThinkPad-E570:~$ sudo a2enconf serve-cgi-bin</p><p>Conf serve-cgi-bin already enabled</p><p><b><span style="font-size: large;"><u>Restart 'apache2' service</u></span></b></p><p>:~$ sudo service apache2 restart</p><p><b><span style="font-size: large;"><u>Check that the 'apache2' main config file looks as below</u></span></b></p><p>:~$ sudo nano /etc/apache2/sites-available/000-default.conf</p><p><span style="font-family: inherit;"><span style="background-color: #444444;"><VirtualHost *:80>
</span><span style="background-color: black;"><span style="background-color: #444444;"><br /><span> </span><span># The ServerName directive sets the request scheme, hostname and port that</span><span>
</span><br /><span> </span><span># the server uses to identify itself. This is used when creating</span><span>
</span><br /><span> </span><span># redirection URLs. In the context of virtual hosts, the ServerName</span><span>
</span><br /><span> </span><span># specifies what hostname must appear in the request's Host: header to</span><span>
</span><br /><span> </span><span># match this virtual host. For the default virtual host (this file) this</span><span>
</span><br /><span> </span><span># value is not decisive as it is used as a last resort host regardless.</span><span>
</span><br /><span> </span><span># However, you must set it for any further virtual host explicitly.</span><span>
</span><br /><span> </span><span>#ServerName www.example.com</span></span><span>
</span><br /></span>
<span style="background-color: black;"><br /><span> <span style="background-color: #444444;"> </span></span><span style="background-color: #444444;">ServerAdmin webmaster@localhost
</span><span style="background-color: #444444;"><br /><span> </span><span>DocumentRoot /var/www/html
</span><br /></span></span>
<span style="background-color: black;"><span style="background-color: #444444;"><br /><span> </span><span># Available loglevels: trace8, ..., trace1, debug, info, notice, warn,</span><span>
</span><br /><span> </span><span># error, crit, alert, emerg.</span><span>
</span><br /><span> </span><span># It is also possible to configure the loglevel for particular</span><span>
</span><br /><span> </span><span># modules, e.g.</span><span>
</span><br /><span> </span><span>#LogLevel info ssl:warn</span></span><span>
</span><br /></span>
<span style="background-color: black;"><br /><span> <span style="background-color: #444444;"> </span></span><span style="background-color: #444444;">ErrorLog ${APACHE_LOG_DIR}/error.log
</span><span style="background-color: #444444;"><br /><span> </span><span>CustomLog ${APACHE_LOG_DIR}/access.log combined
</span><br /></span></span>
<span style="background-color: #444444;"><br /><span> </span><span># For most configuration files from conf-available/, which are</span><span>
</span><br /><span> </span><span># enabled or disabled at a global level, it is possible to</span><span>
</span><br /><span> </span><span># include a line for only one particular virtual host. For example the</span><span>
</span><br /><span> </span><span># following line enables the CGI configuration for this host only</span><span>
</span><br /><span> </span><span># after it has been globally disabled with "a2disconf".</span><span>
</span><br /><span> </span><span>#Include conf-available/serve-cgi-bin.conf</span><span>
</span><br /></VirtualHost></span></span></p><p><b><span style="font-size: large;"><u>We will now create a new site called 'qgisserver.conf'</u></span></b></p><p>:~$ sudo nano /etc/apache2/sites-available/<span style="color: red;">qgisserver</span>.conf</p><p><span style="font-family: inherit;"><span style="background-color: #444444;"><VirtualHost *:80>
</span><br /> ServerAdmin webmaster@localhost
<br /> ServerName qgisserver
<br />
<br /> DocumentRoot /var/www/html
<br />
<br /><span style="background-color: white;"><span style="color: #18b2b2;"> </span><span style="background-color: #444444; color: #18b2b2;"> </span><span style="background-color: #444444;"># Apache logs (different than QGIS Server log)</span></span><span style="background-color: white;">
</span><br /> ErrorLog ${APACHE_LOG_DIR}/<span style="color: red;">qgisserver</span>.error.log
<br /> CustomLog ${APACHE_LOG_DIR}/<span style="color: red;">qgisserver</span>.access.log combined
<br />
<br /><span style="background-color: white;"><span style="color: #18b2b2;"> </span><span style="background-color: #444444; color: #18b2b2;"> </span><span style="background-color: #444444;"># Longer timeout for WPS... default = 40</span></span><span style="background-color: white;">
</span><br /> FcgidIOTimeout 120
<br />
<br /> FcgidInitialEnv LC_ALL "en_US.UTF-8"
<br /> FcgidInitialEnv PYTHONIOENCODING UTF-8
<br /> FcgidInitialEnv LANG "en_US.UTF-8"
<br />
<br /><span style="background-color: white;"><span style="color: #18b2b2;"> <span style="background-color: #444444;"> </span></span><span style="background-color: #444444; color: #18b2b2;"> </span><span style="background-color: #444444;"># QGIS log</span></span><span style="background-color: white;">
</span><br /> FcgidInitialEnv QGIS_SERVER_LOG_STDERR 1
<br /> FcgidInitialEnv QGIS_SERVER_LOG_LEVEL 0
<br />
<br /><span style="background-color: white;"><span style="color: #18b2b2;"> <span style="background-color: #444444;"> </span></span><span style="background-color: #444444; color: #18b2b2;"> </span><span style="background-color: #444444;"># default QGIS project</span></span><span style="background-color: white;">
</span><br /> SetEnv QGIS_PROJECT_FILE <span style="color: red;">/home/qgis/projects/world.qgs
</span><br />
<br /><span style="background-color: white;"><span style="color: #18b2b2;"> <span style="background-color: #444444;"> </span></span><span style="background-color: #444444; color: #18b2b2;"> </span><span style="background-color: #444444;"># QGIS_AUTH_DB_DIR_PATH must lead to a directory writeable by the Server's FCGI <span> </span>proces</span></span><span style="background-color: #444444;">></span><span style="background-color: white;">
</span><br /> FcgidInitialEnv QGIS_AUTH_DB_DIR_PATH "/home/qgis/<span style="color: red;">qgisserver</span>db/"
<br /> FcgidInitialEnv QGIS_AUTH_PASSWORD_FILE "/home/qgis/<span style="color: red;">qgisserver</span>db/qgis-auth.db"
<br />
<br /><span style="background-color: white;"><span style="color: #18b2b2;"> <span style="background-color: #444444;"> </span></span><span style="background-color: #444444;"> # Set pg access via pg_service file</span></span><span style="background-color: white;">
</span><br /> SetEnv PGSERVICEFILE /home/qgis/.pg_service.conf
<br /> FcgidInitialEnv PGPASSFILE "/home/qgis/.pgpass"
<br />
<br /><span style="background-color: white;"><span style="color: #18b2b2;"> <span style="background-color: #444444;"> </span></span><span style="background-color: #444444;"> # if qgis-server is installed from packages in debian based distros this is usually /u</span></span><span style="background-color: #444444;">></span><span style="background-color: #444444;">
</span><span style="background-color: #444444;"><br /><span> # run "locate qgis_mapserv.fcgi" if you don't know where qgis_mapserv.fcgi is</span></span><span style="background-color: white;">
</span><br /> ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<br /> <Directory "/usr/lib/cgi-bin/">
<br /> AllowOverride None
<br /> Options +ExecCGI -MultiViews -SymLinksIfOwnerMatch
<br /> Require all granted
<br /> </Directory>
<br />
<br /> <IfModule mod_fcgid.c>
<br /> FcgidMaxRequestLen 26214400
<br /> FcgidConnectTimeout 60
<br /> </IfModule>
<br />
<br /><span style="background-color: #444444;"></VirtualHost></span></span></p><p><b style="font-family: inherit;"><span style="font-size: large;"><u>Make a 'log' directory</u></span></b></p><p><span style="font-family: inherit;">:~$ sudo mkdir -p /var/log/qgis</span></p><p><span style="font-family: inherit;"><b><span style="font-size: large;"><u>Add some 'permissions'</u></span></b></span></p><p>:~$ sudo chown www-data:www-data /var/log/qgis</p><p>:~$ sudo mkdir -p /home/qgis/qgisserverdb</p><p>:~$ sudo chown www-data:www-data /home/qgis/qgisserverdb</p><p><b><span style="font-size: large;"><u>Now lets enable 'qgisserver'</u></span></b></p><p>:~$ sudo a2ensite qgisserver</p><p>Enabling site qgisserver.</p><p>To activate the new configuration, you need to run:</p><p> systemctl reload apache2</p><p><b><span style="font-size: large;"><u>Restart apache2 after configuration</u></span></b></p><p>:~$ systemctl restart apache2</p><p>:~$ sudo sh -c "echo '127.0.0.1 qgisserver' >> /etc/hosts"</p><p><b style="font-size: large;">THE END</b></p><p><b><span style="font-size: large;"><u>ADDITIONAL NOTES:</u></span></b></p><p>****IMPORTANT NOTE****</p><p>The home path should always be '/home/qgis' and NOT '/home/my-home-name/qgis'</p><p>****IMPORTANT NOTE****</p><p>Add a 'projects' folder inside the 'cgi-bin' folder</p><p>If you choose to create a 'projects' folder within the 'cgi-bin' folder (as for example in /usr/lib/cgi-bin/projects/) remember to symlink in both the 'wms_metadata.xml' and the 'qgis_mapserv.fcgi' as well as linking your 'world.qgs' file (in my case from my...'/home/qgis/projects' directory) into the '/usr/lib/cgi-bin/projects' folder:-</p><p>:~$ sudo mkdir /usr/lib/cgi-bin/projects</p><p>:~$ cd /usr/lib/cgi-bin/projects</p><p>:~$ sudo ln -s ../qgis_mapserv.fcgi .</p><p>:~$ sudo ln -s ../wms_metadata.xml .</p><p>:~$ sudo ln -s /home/qgis/projects/world.qgs /usr/lib/cgi-bin/projects/world.qgs</p><p>:~$ sudo ln -s /home/qgis/projects/world.qgs.cfg /usr/lib/cgi-bin/projects/world.qgs.cfg</p><p>There be extra accompanying (gpkg) layers from the local 'projects' which needs to be 'symlinked' across too:-</p><p>:~$ sudo ln -s /home/qgis/projects/mylayer.gpkg /usr/lib/cgi-bin/projects/</p><p><b><span style="font-size: large;"><u>Now check your 'QGIS-SERVER' output in a browser with a 'GetCapabilities' request</u></span></b></p><p>http://qgisserver/cgi-bin/qgis_mapserv.fcgi?SERVICE=WMS&VERSION=1.3.0&REQUEST=GetCapabilities</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg7vLX8lncLr2nITTqOVECGshsHAzyFUBJTcBthXUMXK-7mDaLyLjNMcB7LS-DX6EX_eADxTgh38hV1nP2RyQQ03HdBlGpJd3UHutCsziEHaql_3idHEx7R34EFKWcg0bOgikdee-kgnPdHxUM1RN5uofKz5vz1FPYwBGAgEuexn1oBATC2EMATFOlD/s1175/get.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1117" data-original-width="1175" height="380" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg7vLX8lncLr2nITTqOVECGshsHAzyFUBJTcBthXUMXK-7mDaLyLjNMcB7LS-DX6EX_eADxTgh38hV1nP2RyQQ03HdBlGpJd3UHutCsziEHaql_3idHEx7R34EFKWcg0bOgikdee-kgnPdHxUM1RN5uofKz5vz1FPYwBGAgEuexn1oBATC2EMATFOlD/w400-h380/get.png" width="400" /></a></div><p><b><span style="font-size: large;"><u>If you see this error:-</u></span></b></p><p><ServerException></p><p>Project file error. For OWS services: please provide a SERVICE and a MAP parameter pointing to a valid QGIS project file</p><p></ServerException></p><p>Ensure your 'qgis' directory is '/home/qgis' <b><u>NOT</u></b> '/home/my-home-directory-name/qgis'</p><p><b><span style="font-size: large;"><u>Now lets add some more server parameters to the url and a 'GetMap' request</u></span></b></p><p>http://qgisserver/cgi-bin/qgis_mapserv.fcgi?</p><p>SERVICE=WMS</p><p>&VERSION=1.3.0</p><p>&REQUEST=GetMap</p><p>&MAP=/usr/lib/cgi-bin/projects/world.qgs</p><p>&LAYERS=layer1,layer2,layer3,layer4,mylayer</p><p>&CRS=EPSG:27700</p><p>&BBOX=261349,189119,336318,254557</p><p>&WIDTH=700</p><p>&HEIGHT=600</p><p>&FORMAT=image/png</p><p><b><span style="font-size: large;"><u>URL will provide a 'GetMap' request for the layers as a stack of 'png' files.</u></span></b></p><p>http://qgisserver/cgi-bin/projects/qgis_mapserv.fcgi?SERVICE=WMS&VERSION=1.3.0&REQUEST=GetMap&map=/usr/lib/cgi-bin/projects/world.qgs&LAYERS=layer1,layer2,layer3,layer4,mylayer&CRS=EPSG:27700&&BBOX=261349,189119,336318,254557&WIDTH=700&HEIGHT=600&FORMAT=image/png</p><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"><tbody><tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi52-vE_JQYaX6rGaR6K1g1fGlGjEbL63OfCRSp6R_xl1p9ygA5nJ_oaZY0QxJ29plnVOQTA70wMLCRbjUG-UrPYvQsQ4ixRcugrkwuXcNGNggyzd_Cby19UEzcbJJ_0oDNkpthb3kf8pB-08UoCLSpjecAlFxNr6eKG9vuGkr2pZrPZiVhL4gpLIDv/s1175/qgis-server-image.png" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="1117" data-original-width="1175" height="380" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi52-vE_JQYaX6rGaR6K1g1fGlGjEbL63OfCRSp6R_xl1p9ygA5nJ_oaZY0QxJ29plnVOQTA70wMLCRbjUG-UrPYvQsQ4ixRcugrkwuXcNGNggyzd_Cby19UEzcbJJ_0oDNkpthb3kf8pB-08UoCLSpjecAlFxNr6eKG9vuGkr2pZrPZiVhL4gpLIDv/w400-h380/qgis-server-image.png" width="400" /></a></td></tr><tr><td class="tr-caption" style="text-align: center;">Showing the result of the browser output from the above url in Firefox</td></tr></tbody></table><p><b><span style="font-size: large;"></span></b></p><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"><tbody><tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjLWndAaUTbHbLeB441CymnXNBAxEweTQyrQ-NApTYUds-8eHPDQ8ISBo9HPRWhL3hbdUneixbZbkWey1jAyAuQBrLP-CBPNWn3oGM3J9WgC-TeYHRo52MA0a_rtmwFUuKMBNi_DbA_YH0RuCGy8VtwHEMGvt299lXW2HUfuT5XESxQO2-9HBFOdxnI/s1518/qwc2-demo-app.png" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="1154" data-original-width="1518" height="304" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjLWndAaUTbHbLeB441CymnXNBAxEweTQyrQ-NApTYUds-8eHPDQ8ISBo9HPRWhL3hbdUneixbZbkWey1jAyAuQBrLP-CBPNWn3oGM3J9WgC-TeYHRo52MA0a_rtmwFUuKMBNi_DbA_YH0RuCGy8VtwHEMGvt299lXW2HUfuT5XESxQO2-9HBFOdxnI/w400-h304/qwc2-demo-app.png" width="400" /></a></td></tr><tr><td class="tr-caption" style="text-align: center;">And...the same server through <a href="https://github.com/qgis/qwc2-demo-app" target="_blank"><b>QGIS Web Client 2</b></a> as a series of WMS Services. </td></tr></tbody></table><b><span style="font-size: large;"><u><br /></u></span></b><p></p><p><b><span style="font-size: large;"><u>LAYER ORDER STACKING (is in reverse order):-</u></span></b></p><p>&LAYERS=bottom-base-map,lower-middle-map,upper-middle-map,top-most-map&CRS=EPSG:27700&...</p><p>i.e.</p><p>&LAYERS=mylayer,layer4,layer3,layer2,layer1&CRS=EPSG:27700&...</p><p><b><span style="font-size: large;"><u>UPDATES TO YOUR MAIN 'MASTER' PROJECT (which is stored in my 'Documents' directory in my case)</u></span></b></p><p>:~$ sudo cp -r /home/paul/Documents/world.qgs /home/qgis/projects/</p><p><b>**It is already 'symlinked' to '/usr/lib/cgi-bin/projects/world.qgs'**</b></p><p>Now you have a working QGIS -SERVER ready to deliver your layers as a WMS Service</p><p><br /></p><p><br /></p><p><br /></p>Paul J. Shapleyhttp://www.blogger.com/profile/06250187172197982719noreply@blogger.com1tag:blogger.com,1999:blog-7205810628176609415.post-15965779309940654202023-05-23T14:21:00.001-07:002023-05-23T14:21:22.839-07:00Online Mini Workshop: QGIS and ESRI - can they ever be compatible?<iframe width="480" height="270" src="https://youtube.com/embed/XMROhYOtZWo" frameborder="0"></iframe>Paul J. Shapleyhttp://www.blogger.com/profile/06250187172197982719noreply@blogger.com0tag:blogger.com,1999:blog-7205810628176609415.post-81467014803927712642023-04-13T06:41:00.000-07:002023-04-13T06:41:04.237-07:00Schedule of the 2023 QGIS Conference<p> <a href="https://uc2023.qgis.nl/schedule/">https://uc2023.qgis.nl/schedule/</a></p>Paul J. Shapleyhttp://www.blogger.com/profile/06250187172197982719noreply@blogger.com0tag:blogger.com,1999:blog-7205810628176609415.post-75119406448652587512023-02-28T08:08:00.005-08:002023-02-28T08:08:52.792-08:00R-Universe - Search for packages for almost any purpose in a 'one-stop-shop'<p><a href="https://r-universe.dev/search/" target="_blank"> https://r-universe.dev/search/</a></p>Paul J. Shapleyhttp://www.blogger.com/profile/06250187172197982719noreply@blogger.com0tag:blogger.com,1999:blog-7205810628176609415.post-51703363131034355722023-02-14T11:42:00.000-08:002023-02-14T11:42:15.812-08:00Exploring the QChatGPT plugin in QGIS<iframe width="480" height="270" src="https://youtube.com/embed/eEkVTUS8Qtc" frameborder="0"></iframe>Paul J. Shapleyhttp://www.blogger.com/profile/06250187172197982719noreply@blogger.com0tag:blogger.com,1999:blog-7205810628176609415.post-59836659573541980172023-02-08T06:19:00.000-08:002023-02-08T06:19:00.910-08:00Animated Map - Showing population growth, state formation and boundary changes in the United States, 1790-2010. Available online at r.geocompx.org.<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"><tbody><tr><td style="text-align: center;"><img alt="Animated map showing population growth, state formation and boundary changes in the United States, 1790-2010. Animated version available online at r.geocompx.org." src="https://user-images.githubusercontent.com/1825120/38543030-5794b6f0-3c9b-11e8-9da9-10ec1f3ea726.gif" style="margin-left: auto; margin-right: auto;" width="100%" /></td></tr><tr><td class="tr-caption" style="text-align: center;">https://geocompr.robinlovelace.net/adv-map.html#animated-maps </td></tr></tbody></table>Paul J. Shapleyhttp://www.blogger.com/profile/06250187172197982719noreply@blogger.com0tag:blogger.com,1999:blog-7205810628176609415.post-35287839052836451762023-01-13T03:36:00.001-08:002023-01-13T03:36:29.171-08:00G3W Suite - QGIS Web Client<p> Another interesting QGIS Server Client from Italy to follow Lizmap, QWC2 & Gisquick. Looking forward to more. Introduced last year.</p><p><a href="https://g3wsuite.it/en/g3w-suite-publish-qgis-projects/">https://g3wsuite.it/en/g3w-suite-publish-qgis-projects/</a></p>Paul J. Shapleyhttp://www.blogger.com/profile/06250187172197982719noreply@blogger.com0tag:blogger.com,1999:blog-7205810628176609415.post-17910030535408638732023-01-10T02:38:00.002-08:002023-01-10T02:38:19.235-08:00Anyone still exchanging 'shapefiles'?<div style="text-align: left;">The humble 'shapefile' is still in use and is still one of the most popular formats for data exchange since the 1990's but the world has moved on and it's time to kill it off. Here is the good and bad of 'shapefiles'. Thanks to <a href="https://github.com/jachym/" style="background-color: white; box-sizing: inherit; color: #0056b3; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif; font-size: 16px; touch-action: manipulation;">Jachym Cepicky</a></div><p><a href="http://switchfromshapefile.org/">http://switchfromshapefile.org/</a></p>Paul J. Shapleyhttp://www.blogger.com/profile/06250187172197982719noreply@blogger.com1tag:blogger.com,1999:blog-7205810628176609415.post-37425409960937137572022-12-30T14:55:00.004-08:002023-01-04T08:08:33.832-08:00Make an Open-Source Web Map with QGIS and then uploading it to github<iframe width="480" height="270" src="https://youtube.com/embed/ZHynmLFhRZs" frameborder="0"></iframe>Paul J. Shapleyhttp://www.blogger.com/profile/06250187172197982719noreply@blogger.com0tag:blogger.com,1999:blog-7205810628176609415.post-31851735798444852972022-12-22T03:09:00.004-08:002022-12-30T14:59:52.202-08:00Testing QGIS Server Guide - Published - 21st Dec 2022<p>Here is a very handy PDF for testing your QGIS Server environment.</p><p><a href="https://docs.qgis.org/testing/pdf/en/QGIS-testing-ServerUserGuide-en.pdf" target="">https://docs.qgis.org/testing/pdf/en/QGIS-testing-ServerUserGuide-en.pdf</a></p><p><br /></p>Paul J. Shapleyhttp://www.blogger.com/profile/06250187172197982719noreply@blogger.com0tag:blogger.com,1999:blog-7205810628176609415.post-66703153681750479772022-12-22T01:14:00.000-08:002022-12-22T01:14:07.462-08:00GIS Lesson 12 1: Installing QGIS Server and offer WMS / WFS Updated by Riccardo Klinger<iframe width="480" height="360" src="https://youtube.com/embed/xhRqbpUCuzs" frameborder="0"></iframe>Paul J. Shapleyhttp://www.blogger.com/profile/06250187172197982719noreply@blogger.com0tag:blogger.com,1999:blog-7205810628176609415.post-66892170815931296042022-12-18T08:42:00.001-08:002022-12-18T08:45:11.873-08:00QGIS Web Client 2 (stand-alone) version - Development Installation - Part 1 of 2<p>Before you begin installation (using 'yarn') also at <a href="https://github.com/qgis/qwc2-demo-app/blob/master/doc/QWC2_Documentation.md#quick-start">https://github.com/qgis/qwc2-demo-app/blob/master/doc/QWC2_Documentation.md#quick-start</a> which was done in Ubuntu 22.04 LTS. </p><p>This is my own version documentation (as usual to archive my notes and caveats). This <u><i>will not</i></u> install all of the 'qwc-services' or 'micro-services' that the additional modules provide. It is the 'stand-alone' version with the web map client. </p><p>If you require additional 'micro-services' you may be better off installing 'Docker' containers here <a href="https://qwc-services.github.io/">https://qwc-services.github.io/setup/quick-start/</a></p><p>Here is an overview of the project as at FOSS 2019. <a href="https://blog.sourcepole.ch/assets/2019/qwc2-foss4g19.pdf">https://blog.sourcepole.ch/assets/2019/qwc2-foss4g19.pdf</a></p><p><i>**There will be differences in the package management systems on other linux distros (excluding Windows)**</i></p><p><b><u>Lets get started! Open a 'Terminal'</u></b></p><p>:~$ sudo apt install npm</p><p>:~$ sudo npm install -g yarn</p><p>:~$ git clone --recursive https://github.com/qgis/qwc2-demo-app.git</p><p>:~$ cd qwc2-demo-app</p><p><b><u>In 'qwc-demo-app' directory</u></b></p><p>:~/ qwc2-demo-app $ sudo yarn install</p><p>[sudo] password for $$$$$: </p><p><b><u>- Start of Terminal Output - (for comparison)</u></b></p><p>yarn install v1.22.19</p><p>[1/4] Resolving packages...</p><p>warning workspace-aggregator-ce444038-fe31-4c16-887f-ea476cb73f9a > qwc2 > core-js@3.19.0: core-js@<3.23.3 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Some versions have web compatibility issues. Please, upgrade your dependencies to the actual version of core-js.</p><p>warning workspace-aggregator-ce444038-fe31-4c16-887f-ea476cb73f9a > qwc2 > form-data-entries@1.0.4: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.</p><p>warning workspace-aggregator-ce444038-fe31-4c16-887f-ea476cb73f9a > qwc2 > @vusion/webfonts-generator > ttf2woff2 > node-gyp > make-fetch-happen > cacache > @npmcli/move-file@2.0.1: This functionality has been moved to @npmcli/fs</p><p>[2/4] Fetching packages...</p><p>warning geotiff@1.0.9: The engine "browsers" appears to be invalid.</p><p>[3/4] Linking dependencies...</p><p>warning " > babel-loader@8.2.3" has unmet peer dependency "@babel/core@^7.0.0".</p><p>warning "workspace-aggregator-ce444038-fe31-4c16-887f-ea476cb73f9a > qwc2 > react-html-parser@2.0.2" has incorrect peer dependency "react@^0.14.0 || ^15.0.0 || ^16.0.0-0".</p><p>warning Workspaces can only be enabled in private projects.</p><p>warning Workspaces can only be enabled in private projects.</p><p>[4/4] Building fresh packages...</p><p>success Saved lockfile.</p><p>Done in 61.76s.</p><p><b><u>Start 'yarn'</u></b></p><p>:~/qwc2-demo-app$ sudo yarn start</p><p>yarn run v1.22.19</p><p>$ npm run tsupdate && npm run themesconfig && npm run iconfont && webpack serve --mode development --progress --host 0.0.0.0 --port 8081</p><p>> QWC2App@2021.11.24 tsupdate</p><p>> node qwc2/scripts/updateTranslations.js</p><p>Generating translations for qwc2</p><p>Wrote qwc2/translations/de-DE.json</p><p>Wrote qwc2/translations/de-CH.json</p><p>Wrote qwc2/translations/en-US.json</p><p>Wrote qwc2/translations/es-ES.json</p><p>Wrote qwc2/translations/fr-FR.json</p><p>Wrote qwc2/translations/fi-FI.json</p><p>Wrote qwc2/translations/hu-HU.json</p><p>Wrote qwc2/translations/it-IT.json</p><p>Wrote qwc2/translations/pl-PL.json</p><p>Wrote qwc2/translations/pt-BR.json</p><p>Wrote qwc2/translations/pt-PT.json</p><p>Wrote qwc2/translations/ro-RO.json</p><p>Wrote qwc2/translations/ru-RU.json</p><p>Wrote qwc2/translations/sv-SE.json</p><p>Wrote qwc2/translations/tr-TR.json</p><p>Wrote qwc2/translations/cs-CZ.json</p><p>Wrote qwc2/translations/no-NO.json</p><p>Wrote qwc2/translations/ca-ES.json</p><p>Wrote static/translations/de-DE.json</p><p>Wrote static/translations/de-CH.json</p><p>Wrote static/translations/en-US.json</p><p>Wrote static/translations/es-ES.json</p><p>Wrote static/translations/fr-FR.json</p><p>Wrote static/translations/it-IT.json</p><p>Wrote static/translations/pl-PL.json</p><p>Wrote static/translations/pt-BR.json</p><p>Wrote static/translations/pt-PT.json</p><p>Wrote static/translations/ro-RO.json</p><p>Wrote static/translations/ru-RU.json</p><p>Wrote static/translations/sv-SE.json</p><p>Wrote static/translations/tr-TR.json</p><p>Wrote static/translations/cs-CZ.json</p><p>> QWC2App@2021.11.24 themesconfig</p><p>> node qwc2/scripts/themesConfig.js</p><p>Reading themesConfig.json</p><p>Parsing WMS GetProjectSettings of http://qwc2.sourcepole.ch/ows/uster/bauprojekte</p><p>Using WMS GetMap to generate thumbnail for http://qwc2.sourcepole.ch/ows/uster/bauprojekte</p><p>Parsing WMS GetProjectSettings of http://qwc2.sourcepole.ch/ows/qwc_demo</p><p>Created themes.json</p><p>> QWC2App@2021.11.24 iconfont</p><p>> node qwc2/scripts/makeIconkit.js</p><p>Done!</p><p><i> [webpack-dev-server] Project is running at:</p><p><i> [webpack-dev-server] Loopback: http://localhost:8081/</p><p><i> [webpack-dev-server] On Your Network (IPv4): http://192.168.1.81:8081/</p><p><i> [webpack-dev-server] On Your Network (IPv6): http://[fe80::c545:4d61:a6a9:5f37]:8081/</p><p><i> [webpack-dev-server] Content not from webpack is served from '/home/$$$$$/qwc2-demo-app/static' directory</p><p>assets by path assets/ 264 KiB</p><p><span> </span>assets by path assets/forms/ 114 KiB 29 assets</p><p><span> </span>assets by path assets/img/ 145 KiB 15 assets</p><p><span> </span>assets by path assets/css/*.css 4.02 KiB</p><p><span> </span><span> </span>asset assets/css/colorschemes.css 4.02 KiB [emitted] [from: static/assets/css/colorschemes.css] <span> </span><span> </span><span> </span><span> </span>[copied]</p><p><span> </span><span> </span>asset assets/css/qwc2.css 0 bytes [emitted] [from: static/assets/css/qwc2.css] [copied]</p><p><span> </span>asset assets/templates/legendprint.html 269 bytes [emitted] [from: static/assets/templates/legendprint.html] [copied]</p><p>assets by path translations/*.json 170 KiB 15 assets</p><p>assets by path *.json 39.8 KiB</p><p><span> </span>asset themes.json 22.2 KiB [emitted] [from: static/themes.json] [copied]</p><p><span> </span>asset config.json 17.6 KiB [emitted] [from: static/config.json] [copied]</p><p>asset dist/QWC2App.js 13.7 MiB [emitted] (name: QWC2App)</p><p>asset api_examples.js 4.47 KiB [emitted] [from: static/api_examples.js] [copied]</p><p>asset index.html 2.35 KiB [emitted]</p><p>asset qwc-docker-themes.sh 301 bytes [emitted] [from: static/qwc-docker-themes.sh] [copied]</p><p>orphan modules 133 KiB [orphan] 94 modules</p><p>runtime modules 27.2 KiB 13 modules</p><p>modules by path ./node_modules/ 8.72 MiB 1461 modules</p><p>modules by path ./qwc2/ 1.97 MiB 318 modules</p><p>modules by path ./js/ 26.9 KiB</p><p><span> </span>modules by path ./js/*.jsx 1.54 KiB 3 modules</p><p><span> </span>modules by path ./js/*.js 25.4 KiB 2 modules</p><p>modules by path ./icons/build/ 23.4 KiB</p><p> ./icons/build/qwc2-icons.css 2.51 KiB [built] [code generated]</p><p> ./node_modules/css-loader/dist/cjs.js!./node_modules/string-replace-loader/index.js??ruleSet[1].rules[0].use[2]!./icons/build/qwc2-icons.css 6.17 KiB [built] [code generated]</p><p> ./icons/build/qwc2-icons.woff?60a13f3f528dcd6b1abbcc3a47bf9e1b 14.7 KiB [built] [code generated]</p><p>./static/translations/en-US.json 9.82 KiB [built] [code generated]</p><p>readable-stream (ignored) 15 bytes [built] [code generated]</p><p>util (ignored) 15 bytes [built] [code generated]</p><p>util (ignored) 15 bytes [built] [code generated]</p><p>webpack 5.59.1 compiled successfully in 21621 ms</p><p><b><u>- End of Terminal Output - </u></b></p><p>You must retain terminal 'activation' to test QWC2. If your session exits the browser simply type:</p><p>:~/qwc2-demo-app$ sudo yarn start</p><p><b><u>Now check the QWC2 Client is working!</u></b></p><p>http://localhost:8081/</p><p>Once you've made your modifications</p><p style="--_pr-img-mb: 0; background-color: #f9f8f6; border: 0px none; box-sizing: inherit; clear: both; color: #232629; font-stretch: inherit; font-variant-east-asian: inherit; font-variant-numeric: inherit; line-height: inherit; margin: 0px 0px 1.1em; padding: 0px; vertical-align: baseline;"><span style="font-family: inherit;">Running "yarn run prod" will create your actual application inside the 'prod' folder. Now we simply move this folder to your (htdocs/root) folder so apache or some other webserver will serve it.</span></p><p style="--_pr-img-mb: 0; background-color: #f9f8f6; border: 0px none; box-sizing: inherit; clear: both; color: #232629; font-stretch: inherit; font-variant-east-asian: inherit; font-variant-numeric: inherit; line-height: inherit; margin: 0px 0px 1.1em; padding: 0px; vertical-align: baseline;"><span style="font-family: inherit;">That's it, now your new client will be accessible across your network. You should access it on:</span></p><pre style="border-radius: var(--br-md); border: 0px none; box-sizing: inherit; color: var(--highlight-color); font-stretch: inherit; font-variant-east-asian: inherit; font-variant-numeric: inherit; line-height: var(--lh-md); margin-bottom: calc(1.5em); margin-top: 0px; max-height: 600px; overflow-wrap: normal; overflow: auto; padding: var(--su12); vertical-align: baseline; width: auto;"><code style="border-radius: 0px; border: 0px none; box-sizing: inherit; color: var(--black-800); font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline; white-space: inherit;"><span style="font-family: inherit;">mycomputerIP:<PortWhereWebserverListens>/prod
</span></code></pre><p style="--_pr-img-mb: 0; background-color: #f9f8f6; border: 0px none; box-sizing: inherit; clear: both; color: #232629; font-stretch: inherit; font-variant-east-asian: inherit; font-variant-numeric: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline;"><span style="font-family: inherit;">If this is your first time using the client, you will need a webserver to serve your website.</span></p><div><br /></div><div>We will look at the customisation in Part 2<br /></div>Paul J. Shapleyhttp://www.blogger.com/profile/06250187172197982719noreply@blogger.com2