{"id":1985,"date":"2015-12-10T16:23:39","date_gmt":"2015-12-10T15:23:39","guid":{"rendered":"https:\/\/www.opengis.ch\/?p=1985"},"modified":"2020-04-29T18:57:33","modified_gmt":"2020-04-29T16:57:33","slug":"geometry-generator-symbology","status":"publish","type":"post","link":"https:\/\/www.opengis.ch\/it\/2015\/12\/10\/geometry-generator-symbology\/","title":{"rendered":"Geometry generator symbology"},"content":{"rendered":"<p>December traditionally is an amazing time since the weather is usually quite forgiving to long working hours.<br \/>\nTherefore the first parts of our <a href=\"https:\/\/www.opengis.ch\/2015\/11\/02\/qgis-crowdfunding-2-5d-rendering\/\">recent crowdfunding project for 2.5D render<\/a>ing\u00a0have been merged into QGIS master and will be shipped with QGIS 2.14.<br \/>\nIt&#8217;s something of the sort of development that we really, really, really like here at OPENGIS.ch: an implementation that adds enormous flexibility and enables the user to use QGIS\u00a0in ways that we never thought of.<br \/>\n<strong>Say hello to geometry generators.<\/strong><br \/>\nGeometry generators allow to use expression syntax to generate a geometry on the fly during the rendering process. The resulting geometry does not have to match with the original geometry type and you can add several differently modified symbol layers on top of each other.<\/p>\n<h3>Examples<\/h3>\n<p>&nbsp;<br \/>\n\n<h3>How to use it<\/h3>\n<p>It couldn&#8217;t be easier\u00a0to\u00a0use. Open the symbology dialog. Choose <em>geometry generator<\/em> as symbol layer type. Choose what kind of symbol you would like to generate, write your expression and style it in whatever way you like.<br \/>\n<a href=\"https:\/\/i0.wp.com\/www.opengis.ch\/wp-content\/uploads\/2015\/12\/Screenshot-from-2015-12-10-16-06-12.png?ssl=1\" rel=\"attachment wp-att-1989\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-1989 size-medium\" src=\"https:\/\/i0.wp.com\/www.opengis.ch\/wp-content\/uploads\/2015\/12\/Screenshot-from-2015-12-10-16-06-12.png?resize=300%2C203&#038;ssl=1\" alt=\"Configuration Dialog\" width=\"300\" height=\"203\" \/><\/a><br \/>\n&nbsp;<\/p>\n<h3>It&#8217;s your turn<\/h3>\n<p>Show the world what you can do with it.<\/p>\n<h3>Thanks<\/h3>\n<ul>\n<li>ADUGA<\/li>\n<li>Regional Council of Picardy<\/li>\n<li>Ville de Nyon<\/li>\n<li>Wetu GIT cc<\/li>\n<li>All other\u00a0crowdfunders<\/li>\n<\/ul>\n<p>Special thanks to\u00a0Nicolas Rochard and\u00a0 for the help to bring this project into shape. And to\u00a0Nyall Dawson for\u00a0his invaluable\u00a0inputs throughout the planning and reviewing process.<br \/>\n&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<div style=\"clear:both\">\n<div style=\"float:left; width:40%\">Say hello to geometry generators, a new way to use expression syntax to generate a geometry on the fly during the rendering process.\n<\/div>\n<div style=\"float:right; width:60%\">\n<img decoding=\"async\" src=\"\/wp-content\/uploads\/2015\/12\/139aea6c-9b5a-11e5-9a07-dc0a982cc4af.png\"\/ height=200>\n<\/div>\n<\/div>\n","protected":false},"author":3,"featured_media":1987,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_themeisle_gutenberg_block_has_review":false,"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":true,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[5,15],"tags":[125],"class_list":["post-1985","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-featured","category-qgis","tag-qgis-org"],"jetpack_featured_media_url":"","jetpack-related-posts":[{"id":1867,"url":"https:\/\/www.opengis.ch\/it\/2015\/11\/02\/qgis-crowdfunding-2-5d-rendering\/","url_meta":{"origin":1985,"position":0},"title":"QGIS Crowdfunding: 2.5D Rendering","author":"Matthias Kuhn","date":"2 Novembre 2015","format":false,"excerpt":"","rel":"","context":"In &quot;3D&quot;","block_context":{"text":"3D","link":"https:\/\/www.opengis.ch\/it\/category\/3d\/"},"img":{"alt_text":"2.5D rendering","src":"https:\/\/i0.wp.com\/www.opengis.ch\/wp-content\/uploads\/2015\/10\/title.png?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.opengis.ch\/wp-content\/uploads\/2015\/10\/title.png?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/www.opengis.ch\/wp-content\/uploads\/2015\/10\/title.png?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/www.opengis.ch\/wp-content\/uploads\/2015\/10\/title.png?resize=700%2C400&ssl=1 2x"},"classes":[]},{"id":2245,"url":"https:\/\/www.opengis.ch\/it\/2017\/05\/10\/best-practices-for-writing-python-qgis-expression-functions\/","url_meta":{"origin":1985,"position":1},"title":"Best practices for writing Python QGIS Expression Functions","author":"Matthias Kuhn","date":"10 Maggio 2017","format":false,"excerpt":"Recently there have been some questions and discussions about python based expression functions and how parameters like usesGeometry\u00a0 need\u00a0to be used. So I thought I'd quickly write down how this works. There is some intelligence If the geometry or a column is passed in as a parameter you do not\u2026","rel":"","context":"In &quot;Expressions&quot;","block_context":{"text":"Expressions","link":"https:\/\/www.opengis.ch\/it\/category\/programming\/expressions\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":15126,"url":"https:\/\/www.opengis.ch\/fr\/2024\/12\/03\/des-lieux-pollues-en-geopackage\/","url_meta":{"origin":1985,"position":2},"title":"Des lieux pollu\u00e9s en GeoPackage","author":"Dave Signer","date":"3 Dicembre 2024","format":false,"excerpt":"Impl\u00e9menter et modifier le mod\u00e8le f\u00e9d\u00e9ral INTERLIS du cadastre des sites pollu\u00e9s KbS_V1_5 sans probl\u00e8me dans un GeoPackage ? Un r\u00eave lointain pendant longtemps, mais d\u00e9sormais r\u00e9alit\u00e9. Avec Model Baker 7.10 et ili2db 5.2, vous pouvez maintenant travailler confortablement avec vos ensembles de donn\u00e9es INTERLIS contenant plusieurs colonnes de g\u00e9om\u00e9trie\u2026","rel":"","context":"In &quot;Interlis&quot;","block_context":{"text":"Interlis","link":"https:\/\/www.opengis.ch\/fr\/category\/gis-fr\/interlis-fr\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/www.opengis.ch\/wp-content\/uploads\/2024\/11\/belastetegpkg-3.png?fit=967%2C621&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.opengis.ch\/wp-content\/uploads\/2024\/11\/belastetegpkg-3.png?fit=967%2C621&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/www.opengis.ch\/wp-content\/uploads\/2024\/11\/belastetegpkg-3.png?fit=967%2C621&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/www.opengis.ch\/wp-content\/uploads\/2024\/11\/belastetegpkg-3.png?fit=967%2C621&ssl=1&resize=700%2C400 2x"},"classes":[]},{"id":15627,"url":"https:\/\/www.opengis.ch\/it\/2025\/06\/02\/xlsform-converter-unlock-a-world-of-surveys-with-our-brand-new-qgis-plugin\/","url_meta":{"origin":1985,"position":3},"title":"XLSForm Converter: unlock a world of surveys with our brand new QGIS plugin","author":"Mathieu","date":"2 Giugno 2025","format":false,"excerpt":"Easily bring your XLSForm surveys into the QGIS and QField ecosystem. The plugin converts spreadsheets into fully prepared QGIS projects\u2014with media support, automatic form configuration, and one-click upload to QFieldCloud. Migrating to QField was never easier!","rel":"","context":"In &quot;Processing&quot;","block_context":{"text":"Processing","link":"https:\/\/www.opengis.ch\/it\/category\/gis\/qgis\/processing\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/www.opengis.ch\/wp-content\/uploads\/2025\/05\/xlsformconverter-qgis-qfield.webp?fit=1098%2C859&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.opengis.ch\/wp-content\/uploads\/2025\/05\/xlsformconverter-qgis-qfield.webp?fit=1098%2C859&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/www.opengis.ch\/wp-content\/uploads\/2025\/05\/xlsformconverter-qgis-qfield.webp?fit=1098%2C859&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/www.opengis.ch\/wp-content\/uploads\/2025\/05\/xlsformconverter-qgis-qfield.webp?fit=1098%2C859&ssl=1&resize=700%2C400 2x, https:\/\/i0.wp.com\/www.opengis.ch\/wp-content\/uploads\/2025\/05\/xlsformconverter-qgis-qfield.webp?fit=1098%2C859&ssl=1&resize=1050%2C600 3x"},"classes":[]},{"id":2235,"url":"https:\/\/www.opengis.ch\/it\/2017\/05\/02\/qgis-expressions-engine-performance-boost\/","url_meta":{"origin":1985,"position":4},"title":"QGIS Expressions Engine: Performance boost","author":"Matthias Kuhn","date":"2 Maggio 2017","format":false,"excerpt":"Expressions in QGIS are more and more widely used for all kinds of purposes. For example the recently introduced geometry generators allow drawing awesome effects with modified feature geometries on the fly. The last days at the QGIS developer meeting 2017, I spent some time looking into and improving the\u2026","rel":"","context":"In &quot;Expressions&quot;","block_context":{"text":"Expressions","link":"https:\/\/www.opengis.ch\/it\/category\/programming\/expressions\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":15696,"url":"https:\/\/www.opengis.ch\/it\/2025\/06\/18\/qgis-basic\/","url_meta":{"origin":1985,"position":5},"title":"QGIS Base","author":"Naemi Meisser","date":"18 Giugno 2025","format":false,"excerpt":"Alla fine di questo corso, i partecipanti conosceranno le principali funzioni di QGIS Desktop (software GIS open source) e saranno in grado di importare e analizzare dati, creare una mappa con layout professionale ed inserire oggetti con attributi e geometrie vettoriali.","rel":"","context":"In &quot;Corsi QGIS&quot;","block_context":{"text":"Corsi QGIS","link":"https:\/\/www.opengis.ch\/it\/category\/corsi\/corsi-qgis\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/www.opengis.ch\/wp-content\/uploads\/2024\/06\/vt_basemap.png?fit=1194%2C742&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.opengis.ch\/wp-content\/uploads\/2024\/06\/vt_basemap.png?fit=1194%2C742&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/www.opengis.ch\/wp-content\/uploads\/2024\/06\/vt_basemap.png?fit=1194%2C742&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/www.opengis.ch\/wp-content\/uploads\/2024\/06\/vt_basemap.png?fit=1194%2C742&ssl=1&resize=700%2C400 2x, https:\/\/i0.wp.com\/www.opengis.ch\/wp-content\/uploads\/2024\/06\/vt_basemap.png?fit=1194%2C742&ssl=1&resize=1050%2C600 3x"},"classes":[]}],"jetpack_shortlink":"https:\/\/wp.me\/pbdBtI-w1","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.opengis.ch\/it\/wp-json\/wp\/v2\/posts\/1985","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.opengis.ch\/it\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.opengis.ch\/it\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.opengis.ch\/it\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/www.opengis.ch\/it\/wp-json\/wp\/v2\/comments?post=1985"}],"version-history":[{"count":1,"href":"https:\/\/www.opengis.ch\/it\/wp-json\/wp\/v2\/posts\/1985\/revisions"}],"predecessor-version":[{"id":11146,"href":"https:\/\/www.opengis.ch\/it\/wp-json\/wp\/v2\/posts\/1985\/revisions\/11146"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.opengis.ch\/it\/wp-json\/"}],"wp:attachment":[{"href":"https:\/\/www.opengis.ch\/it\/wp-json\/wp\/v2\/media?parent=1985"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.opengis.ch\/it\/wp-json\/wp\/v2\/categories?post=1985"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.opengis.ch\/it\/wp-json\/wp\/v2\/tags?post=1985"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}