{"id":1118,"date":"2018-12-02T13:49:43","date_gmt":"2018-12-02T12:49:43","guid":{"rendered":"https:\/\/hannes.enjoys.it\/blog\/?p=1118"},"modified":"2018-12-02T14:01:04","modified_gmt":"2018-12-02T13:01:04","slug":"fake-chromatic-aberration-and-dynamic-label-shadows-in-qgis","status":"publish","type":"post","link":"https:\/\/hannes.enjoys.it\/blog\/2018\/12\/fake-chromatic-aberration-and-dynamic-label-shadows-in-qgis\/","title":{"rendered":"Fake chromatic aberration and dynamic label shadows in QGIS"},"content":{"rendered":"<p>Welcome to Part 43 of &#8220;Fun with Weird Hacks in QGIS&#8221;!<\/p>\n<p><center><div style=\"width: 625px;\" class=\"wp-video\"><video class=\"wp-video-shortcode\" id=\"video-1118-1\" width=\"625\" height=\"441\" preload=\"metadata\" controls=\"controls\"><source type=\"video\/mp4\" src=\"https:\/\/hannes.enjoys.it\/blog\/wp-content\/uploads\/qgis-fake-chromatic-aberration-and-dynamic-label-shadows.mp4?_=1\" \/><a href=\"https:\/\/hannes.enjoys.it\/blog\/wp-content\/uploads\/qgis-fake-chromatic-aberration-and-dynamic-label-shadows.mp4\">https:\/\/hannes.enjoys.it\/blog\/wp-content\/uploads\/qgis-fake-chromatic-aberration-and-dynamic-label-shadows.mp4<\/a><\/video><\/div><\/center><\/p>\n<p><strong>Fake Chromatic Aberration<\/strong><\/p>\n<p>Get some lines or polygons! I used <a href=\"http:\/\/www.geodatenzentrum.de\/geodaten\/gdz_rahmen.gdz_div?gdz_spr=deu&#038;gdz_akt_zeile=5&#038;gdz_anz_zeile=1&#038;gdz_unt_zeile=15&#038;gdz_user_id=0\">German administrative polygons<\/a> and a &#8220;Outline: Simple line&#8221; style.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"800\" height=\"800\" src=\"https:\/\/hannes.enjoys.it\/blog\/wp-content\/uploads\/qgis-fake-chromatic-aberration-and-dynamic-label-shadows-1.png\" alt=\"\" class=\"aligncenter size-full wp-image-1123\" srcset=\"https:\/\/hannes.enjoys.it\/blog\/wp-content\/uploads\/qgis-fake-chromatic-aberration-and-dynamic-label-shadows-1.png 800w, https:\/\/hannes.enjoys.it\/blog\/wp-content\/uploads\/qgis-fake-chromatic-aberration-and-dynamic-label-shadows-1-150x150.png 150w, https:\/\/hannes.enjoys.it\/blog\/wp-content\/uploads\/qgis-fake-chromatic-aberration-and-dynamic-label-shadows-1-250x250.png 250w, https:\/\/hannes.enjoys.it\/blog\/wp-content\/uploads\/qgis-fake-chromatic-aberration-and-dynamic-label-shadows-1-768x768.png 768w, https:\/\/hannes.enjoys.it\/blog\/wp-content\/uploads\/qgis-fake-chromatic-aberration-and-dynamic-label-shadows-1-700x700.png 700w, https:\/\/hannes.enjoys.it\/blog\/wp-content\/uploads\/qgis-fake-chromatic-aberration-and-dynamic-label-shadows-1-120x120.png 120w\" sizes=\"auto, (max-width: 800px) 100vw, 800px\" \/><\/p>\n<p>Add a &#8220;Geometry Generator&#8221; to the same layer and set it to &#8220;LineString \/ MultiLineString&#8221;. If you used polygons, you will need to use &#8220;boundary($geometry)&#8221; to get the border lines of your polygons.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"800\" height=\"800\" src=\"https:\/\/hannes.enjoys.it\/blog\/wp-content\/uploads\/qgis-fake-chromatic-aberration-and-dynamic-label-shadows-2.png\" alt=\"\" class=\"aligncenter size-full wp-image-1126\" srcset=\"https:\/\/hannes.enjoys.it\/blog\/wp-content\/uploads\/qgis-fake-chromatic-aberration-and-dynamic-label-shadows-2.png 800w, https:\/\/hannes.enjoys.it\/blog\/wp-content\/uploads\/qgis-fake-chromatic-aberration-and-dynamic-label-shadows-2-150x150.png 150w, https:\/\/hannes.enjoys.it\/blog\/wp-content\/uploads\/qgis-fake-chromatic-aberration-and-dynamic-label-shadows-2-250x250.png 250w, https:\/\/hannes.enjoys.it\/blog\/wp-content\/uploads\/qgis-fake-chromatic-aberration-and-dynamic-label-shadows-2-768x768.png 768w, https:\/\/hannes.enjoys.it\/blog\/wp-content\/uploads\/qgis-fake-chromatic-aberration-and-dynamic-label-shadows-2-700x700.png 700w, https:\/\/hannes.enjoys.it\/blog\/wp-content\/uploads\/qgis-fake-chromatic-aberration-and-dynamic-label-shadows-2-120x120.png 120w\" sizes=\"auto, (max-width: 800px) 100vw, 800px\" \/><\/p>\n<p>Translate (shift) the geometries radially away from the map center, with an amount of translation based on their distance to the map center. This will introduce <del>ugly artifacts<\/del> cool glitches for big geometries. Note the magic constant of 150 I divided the distances by, I cannot be arsed to turn this into percentages so you will have to figure out what works for you. Also, if your map is in a different CRS than the layer you do this with, you will need to transform the coordinates (I do that for the labels below).<\/p>\n<pre> translate(\r\n   boundary($geometry),\r\n   (\r\n    x(centroid($geometry))-x(@map_extent_center)\r\n   )\/150\r\n   ,\r\n   (\r\n    y(centroid($geometry))-y(@map_extent_center)\r\n   )\/150\r\n)<\/pre>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"800\" height=\"800\" src=\"https:\/\/hannes.enjoys.it\/blog\/wp-content\/uploads\/qgis-fake-chromatic-aberration-and-dynamic-label-shadows-3.png\" alt=\"\" class=\"aligncenter size-full wp-image-1127\" srcset=\"https:\/\/hannes.enjoys.it\/blog\/wp-content\/uploads\/qgis-fake-chromatic-aberration-and-dynamic-label-shadows-3.png 800w, https:\/\/hannes.enjoys.it\/blog\/wp-content\/uploads\/qgis-fake-chromatic-aberration-and-dynamic-label-shadows-3-150x150.png 150w, https:\/\/hannes.enjoys.it\/blog\/wp-content\/uploads\/qgis-fake-chromatic-aberration-and-dynamic-label-shadows-3-250x250.png 250w, https:\/\/hannes.enjoys.it\/blog\/wp-content\/uploads\/qgis-fake-chromatic-aberration-and-dynamic-label-shadows-3-768x768.png 768w, https:\/\/hannes.enjoys.it\/blog\/wp-content\/uploads\/qgis-fake-chromatic-aberration-and-dynamic-label-shadows-3-700x700.png 700w, https:\/\/hannes.enjoys.it\/blog\/wp-content\/uploads\/qgis-fake-chromatic-aberration-and-dynamic-label-shadows-3-120x120.png 120w\" sizes=\"auto, (max-width: 800px) 100vw, 800px\" \/><\/p>\n<p>Color those lines in some fancy 80s color like #00FFFF.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"800\" height=\"800\" src=\"https:\/\/hannes.enjoys.it\/blog\/wp-content\/uploads\/qgis-fake-chromatic-aberration-and-dynamic-label-shadows-4.png\" alt=\"\" class=\"aligncenter size-full wp-image-1128\" srcset=\"https:\/\/hannes.enjoys.it\/blog\/wp-content\/uploads\/qgis-fake-chromatic-aberration-and-dynamic-label-shadows-4.png 800w, https:\/\/hannes.enjoys.it\/blog\/wp-content\/uploads\/qgis-fake-chromatic-aberration-and-dynamic-label-shadows-4-150x150.png 150w, https:\/\/hannes.enjoys.it\/blog\/wp-content\/uploads\/qgis-fake-chromatic-aberration-and-dynamic-label-shadows-4-250x250.png 250w, https:\/\/hannes.enjoys.it\/blog\/wp-content\/uploads\/qgis-fake-chromatic-aberration-and-dynamic-label-shadows-4-768x768.png 768w, https:\/\/hannes.enjoys.it\/blog\/wp-content\/uploads\/qgis-fake-chromatic-aberration-and-dynamic-label-shadows-4-700x700.png 700w, https:\/\/hannes.enjoys.it\/blog\/wp-content\/uploads\/qgis-fake-chromatic-aberration-and-dynamic-label-shadows-4-120x120.png 120w\" sizes=\"auto, (max-width: 800px) 100vw, 800px\" \/><\/p>\n<p>We only want the color to appear in the edges of the map, so set the &#8220;Feature Blending&#8221; mode of the layer to &#8220;Lighten&#8221;. This will make sure the white lines do not get darker\/colored.<\/p>\n<p><center>I forgot to take an image for that and then it was lunch time. :x<\/center><\/p>\n<p>Now do the same but for distances the other way around and color that in something else (like foofy #FF00FF).<\/p>\n<pre> translate(\r\n   boundary($geometry),\r\n   (\r\n    x(@map_extent_center)-x(centroid($geometry))\r\n   )\/150\r\n   ,\r\n   (\r\n    y(@map_extent_center)-y(centroid($geometry))\r\n   )\/150\r\n)<\/pre>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"800\" height=\"800\" src=\"https:\/\/hannes.enjoys.it\/blog\/wp-content\/uploads\/qgis-fake-chromatic-aberration-and-dynamic-label-shadows-5.png\" alt=\"\" class=\"aligncenter size-full wp-image-1129\" srcset=\"https:\/\/hannes.enjoys.it\/blog\/wp-content\/uploads\/qgis-fake-chromatic-aberration-and-dynamic-label-shadows-5.png 800w, https:\/\/hannes.enjoys.it\/blog\/wp-content\/uploads\/qgis-fake-chromatic-aberration-and-dynamic-label-shadows-5-150x150.png 150w, https:\/\/hannes.enjoys.it\/blog\/wp-content\/uploads\/qgis-fake-chromatic-aberration-and-dynamic-label-shadows-5-250x250.png 250w, https:\/\/hannes.enjoys.it\/blog\/wp-content\/uploads\/qgis-fake-chromatic-aberration-and-dynamic-label-shadows-5-768x768.png 768w, https:\/\/hannes.enjoys.it\/blog\/wp-content\/uploads\/qgis-fake-chromatic-aberration-and-dynamic-label-shadows-5-700x700.png 700w, https:\/\/hannes.enjoys.it\/blog\/wp-content\/uploads\/qgis-fake-chromatic-aberration-and-dynamic-label-shadows-5-120x120.png 120w\" sizes=\"auto, (max-width: 800px) 100vw, 800px\" \/><\/p>\n<p>Oh, can you see it already? Move the map around! Ohhh!<\/p>\n<p>For the final touch, use the layer&#8217;s &#8220;Draw Effects&#8221; to replace the &#8220;Source&#8221; with a &#8220;Blur&#8221;. Be aware that the &#8220;Blur type&#8221; can quite strongly influence the look and find a setting for the &#8220;Blur strength&#8221; that works for you. I used &#8220;Guassian blur (quality)&#8221; with a strength of 2.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"800\" height=\"800\" src=\"https:\/\/hannes.enjoys.it\/blog\/wp-content\/uploads\/qgis-fake-chromatic-aberration-and-dynamic-label-shadows-6.png\" alt=\"\" class=\"aligncenter size-full wp-image-1130\" srcset=\"https:\/\/hannes.enjoys.it\/blog\/wp-content\/uploads\/qgis-fake-chromatic-aberration-and-dynamic-label-shadows-6.png 800w, https:\/\/hannes.enjoys.it\/blog\/wp-content\/uploads\/qgis-fake-chromatic-aberration-and-dynamic-label-shadows-6-150x150.png 150w, https:\/\/hannes.enjoys.it\/blog\/wp-content\/uploads\/qgis-fake-chromatic-aberration-and-dynamic-label-shadows-6-250x250.png 250w, https:\/\/hannes.enjoys.it\/blog\/wp-content\/uploads\/qgis-fake-chromatic-aberration-and-dynamic-label-shadows-6-768x768.png 768w, https:\/\/hannes.enjoys.it\/blog\/wp-content\/uploads\/qgis-fake-chromatic-aberration-and-dynamic-label-shadows-6-700x700.png 700w, https:\/\/hannes.enjoys.it\/blog\/wp-content\/uploads\/qgis-fake-chromatic-aberration-and-dynamic-label-shadows-6-120x120.png 120w\" sizes=\"auto, (max-width: 800px) 100vw, 800px\" \/><\/p>\n<p><strong>Dynamic Label Shadows<\/strong><\/p>\n<p>Get some data to label! I used ne_10m_populated_places_simple. Label it with labels placed &#8220;Offset from Point&#8221; without any actual offset. This is just to make sure calculations on the geometry&#8217;s location make sense to affect the labeling later.<\/p>\n<p>Pick a wicked cool font like <a href=\"http:\/\/sunrise-digital.net\/font.html\">Lazer 84<\/a>!<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"800\" height=\"800\" src=\"https:\/\/hannes.enjoys.it\/blog\/wp-content\/uploads\/qgis-fake-chromatic-aberration-and-dynamic-label-shadows-7.png\" alt=\"\" class=\"aligncenter size-full wp-image-1131\" srcset=\"https:\/\/hannes.enjoys.it\/blog\/wp-content\/uploads\/qgis-fake-chromatic-aberration-and-dynamic-label-shadows-7.png 800w, https:\/\/hannes.enjoys.it\/blog\/wp-content\/uploads\/qgis-fake-chromatic-aberration-and-dynamic-label-shadows-7-150x150.png 150w, https:\/\/hannes.enjoys.it\/blog\/wp-content\/uploads\/qgis-fake-chromatic-aberration-and-dynamic-label-shadows-7-250x250.png 250w, https:\/\/hannes.enjoys.it\/blog\/wp-content\/uploads\/qgis-fake-chromatic-aberration-and-dynamic-label-shadows-7-768x768.png 768w, https:\/\/hannes.enjoys.it\/blog\/wp-content\/uploads\/qgis-fake-chromatic-aberration-and-dynamic-label-shadows-7-700x700.png 700w, https:\/\/hannes.enjoys.it\/blog\/wp-content\/uploads\/qgis-fake-chromatic-aberration-and-dynamic-label-shadows-7-120x120.png 120w\" sizes=\"auto, (max-width: 800px) 100vw, 800px\" \/><\/p>\n<p>Add a &#8220;Buffer&#8221; to the labels and pick an appropriate color (BIG BOLD #FF00FF works well again).<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"800\" height=\"800\" src=\"https:\/\/hannes.enjoys.it\/blog\/wp-content\/uploads\/qgis-fake-chromatic-aberration-and-dynamic-label-shadows-8.png\" alt=\"\" class=\"aligncenter size-full wp-image-1132\" srcset=\"https:\/\/hannes.enjoys.it\/blog\/wp-content\/uploads\/qgis-fake-chromatic-aberration-and-dynamic-label-shadows-8.png 800w, https:\/\/hannes.enjoys.it\/blog\/wp-content\/uploads\/qgis-fake-chromatic-aberration-and-dynamic-label-shadows-8-150x150.png 150w, https:\/\/hannes.enjoys.it\/blog\/wp-content\/uploads\/qgis-fake-chromatic-aberration-and-dynamic-label-shadows-8-250x250.png 250w, https:\/\/hannes.enjoys.it\/blog\/wp-content\/uploads\/qgis-fake-chromatic-aberration-and-dynamic-label-shadows-8-768x768.png 768w, https:\/\/hannes.enjoys.it\/blog\/wp-content\/uploads\/qgis-fake-chromatic-aberration-and-dynamic-label-shadows-8-700x700.png 700w, https:\/\/hannes.enjoys.it\/blog\/wp-content\/uploads\/qgis-fake-chromatic-aberration-and-dynamic-label-shadows-8-120x120.png 120w\" sizes=\"auto, (max-width: 800px) 100vw, 800px\" \/><\/p>\n<p>Time for magic! Add a &#8220;Shadow&#8221; to the labels and use an appropriate color (I used the <em>other<\/em> color from earlier again, #00FFFF).<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"800\" height=\"800\" src=\"https:\/\/hannes.enjoys.it\/blog\/wp-content\/uploads\/qgis-fake-chromatic-aberration-and-dynamic-label-shadows-9.png\" alt=\"\" class=\"aligncenter size-full wp-image-1133\" srcset=\"https:\/\/hannes.enjoys.it\/blog\/wp-content\/uploads\/qgis-fake-chromatic-aberration-and-dynamic-label-shadows-9.png 800w, https:\/\/hannes.enjoys.it\/blog\/wp-content\/uploads\/qgis-fake-chromatic-aberration-and-dynamic-label-shadows-9-150x150.png 150w, https:\/\/hannes.enjoys.it\/blog\/wp-content\/uploads\/qgis-fake-chromatic-aberration-and-dynamic-label-shadows-9-250x250.png 250w, https:\/\/hannes.enjoys.it\/blog\/wp-content\/uploads\/qgis-fake-chromatic-aberration-and-dynamic-label-shadows-9-768x768.png 768w, https:\/\/hannes.enjoys.it\/blog\/wp-content\/uploads\/qgis-fake-chromatic-aberration-and-dynamic-label-shadows-9-700x700.png 700w, https:\/\/hannes.enjoys.it\/blog\/wp-content\/uploads\/qgis-fake-chromatic-aberration-and-dynamic-label-shadows-9-120x120.png 120w\" sizes=\"auto, (max-width: 800px) 100vw, 800px\" \/><\/p>\n<p>We want to make the label shadows be further away from the label if the feature is further away from the map center. So <em>OVERRIDE<\/em> the offset with code that does exactly that. Note another magic constant (relating to meters in EPSG:25832) and that I needed to transform coordinates here (my map is in EPSG:25832 while this layer is EPSG:4326).<\/p>\n<pre>distance(  \r\n\ttransform(\r\n\t\t$geometry, 'EPSG:4326', 'EPSG:25832'\r\n\t),\r\n\t@map_extent_center\r\n)\/10000<\/pre>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"800\" height=\"800\" src=\"https:\/\/hannes.enjoys.it\/blog\/wp-content\/uploads\/qgis-fake-chromatic-aberration-and-dynamic-label-shadows-10.png\" alt=\"\" class=\"aligncenter size-full wp-image-1134\" srcset=\"https:\/\/hannes.enjoys.it\/blog\/wp-content\/uploads\/qgis-fake-chromatic-aberration-and-dynamic-label-shadows-10.png 800w, https:\/\/hannes.enjoys.it\/blog\/wp-content\/uploads\/qgis-fake-chromatic-aberration-and-dynamic-label-shadows-10-150x150.png 150w, https:\/\/hannes.enjoys.it\/blog\/wp-content\/uploads\/qgis-fake-chromatic-aberration-and-dynamic-label-shadows-10-250x250.png 250w, https:\/\/hannes.enjoys.it\/blog\/wp-content\/uploads\/qgis-fake-chromatic-aberration-and-dynamic-label-shadows-10-768x768.png 768w, https:\/\/hannes.enjoys.it\/blog\/wp-content\/uploads\/qgis-fake-chromatic-aberration-and-dynamic-label-shadows-10-700x700.png 700w, https:\/\/hannes.enjoys.it\/blog\/wp-content\/uploads\/qgis-fake-chromatic-aberration-and-dynamic-label-shadows-10-120x120.png 120w\" sizes=\"auto, (max-width: 800px) 100vw, 800px\" \/><\/p>\n<p>Cool. But that just looks weird. Time for another magical ingredient while <em>OVERRIDING<\/em> the angle at which the label is placed. You guessed it, radially away from the map center!<\/p>\n<pre>degrees(\r\n\tazimuth(  \r\n\t\ttransform(\r\n\t\t\t$geometry, 'EPSG:4326', 'EPSG:25832'\r\n\t\t),  \r\n\t\t@map_extent_center)\r\n\t)\r\n-180<\/pre>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"800\" height=\"800\" src=\"https:\/\/hannes.enjoys.it\/blog\/wp-content\/uploads\/qgis-fake-chromatic-aberration-and-dynamic-label-shadows-11.png\" alt=\"\" class=\"aligncenter size-full wp-image-1135\" srcset=\"https:\/\/hannes.enjoys.it\/blog\/wp-content\/uploads\/qgis-fake-chromatic-aberration-and-dynamic-label-shadows-11.png 800w, https:\/\/hannes.enjoys.it\/blog\/wp-content\/uploads\/qgis-fake-chromatic-aberration-and-dynamic-label-shadows-11-150x150.png 150w, https:\/\/hannes.enjoys.it\/blog\/wp-content\/uploads\/qgis-fake-chromatic-aberration-and-dynamic-label-shadows-11-250x250.png 250w, https:\/\/hannes.enjoys.it\/blog\/wp-content\/uploads\/qgis-fake-chromatic-aberration-and-dynamic-label-shadows-11-768x768.png 768w, https:\/\/hannes.enjoys.it\/blog\/wp-content\/uploads\/qgis-fake-chromatic-aberration-and-dynamic-label-shadows-11-700x700.png 700w, https:\/\/hannes.enjoys.it\/blog\/wp-content\/uploads\/qgis-fake-chromatic-aberration-and-dynamic-label-shadows-11-120x120.png 120w\" sizes=\"auto, (max-width: 800px) 100vw, 800px\" \/><\/p>\n<p>By the way, it does look best if your text encoding is introducing bad character marks and missing umlauts!<\/p>\n<p>That&#8217;s it, move the map around and be WOWed by the sweet effects and the time it takes to render :o)<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"800\" height=\"800\" src=\"https:\/\/hannes.enjoys.it\/blog\/wp-content\/uploads\/qgis-fake-chromatic-aberration-and-dynamic-label-shadows-12.png\" alt=\"\" class=\"aligncenter size-full wp-image-1136\" srcset=\"https:\/\/hannes.enjoys.it\/blog\/wp-content\/uploads\/qgis-fake-chromatic-aberration-and-dynamic-label-shadows-12.png 800w, https:\/\/hannes.enjoys.it\/blog\/wp-content\/uploads\/qgis-fake-chromatic-aberration-and-dynamic-label-shadows-12-150x150.png 150w, https:\/\/hannes.enjoys.it\/blog\/wp-content\/uploads\/qgis-fake-chromatic-aberration-and-dynamic-label-shadows-12-250x250.png 250w, https:\/\/hannes.enjoys.it\/blog\/wp-content\/uploads\/qgis-fake-chromatic-aberration-and-dynamic-label-shadows-12-768x768.png 768w, https:\/\/hannes.enjoys.it\/blog\/wp-content\/uploads\/qgis-fake-chromatic-aberration-and-dynamic-label-shadows-12-700x700.png 700w, https:\/\/hannes.enjoys.it\/blog\/wp-content\/uploads\/qgis-fake-chromatic-aberration-and-dynamic-label-shadows-12-120x120.png 120w\" sizes=\"auto, (max-width: 800px) 100vw, 800px\" \/><\/p>\n<p>And now it is your turn to apply this to some MURICA geodata and rake in meaningless internet points that make you feel good! <small>Sad but true ;)<\/small><\/p>\n<p>And also TODO: Make the constants percentages instead, that should make sure it works on any projection and any scale.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Welcome to Part 43 of &#8220;Fun with Weird Hacks in QGIS&#8221;! Fake Chromatic Aberration Get some lines or polygons! I used German administrative polygons and a &#8220;Outline: Simple line&#8221; style. Add a &#8220;Geometry Generator&#8221; to the same layer and set it to &#8220;LineString \/ MultiLineString&#8221;. If you used polygons, you will need to use &#8220;boundary($geometry)&#8221; [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[9,3,2,31],"tags":[],"class_list":["post-1118","post","type-post","status-publish","format-standard","hentry","category-cartography","category-guide","category-map","category-qgis"],"_links":{"self":[{"href":"https:\/\/hannes.enjoys.it\/blog\/wp-json\/wp\/v2\/posts\/1118","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/hannes.enjoys.it\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/hannes.enjoys.it\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/hannes.enjoys.it\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/hannes.enjoys.it\/blog\/wp-json\/wp\/v2\/comments?post=1118"}],"version-history":[{"count":14,"href":"https:\/\/hannes.enjoys.it\/blog\/wp-json\/wp\/v2\/posts\/1118\/revisions"}],"predecessor-version":[{"id":1146,"href":"https:\/\/hannes.enjoys.it\/blog\/wp-json\/wp\/v2\/posts\/1118\/revisions\/1146"}],"wp:attachment":[{"href":"https:\/\/hannes.enjoys.it\/blog\/wp-json\/wp\/v2\/media?parent=1118"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/hannes.enjoys.it\/blog\/wp-json\/wp\/v2\/categories?post=1118"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/hannes.enjoys.it\/blog\/wp-json\/wp\/v2\/tags?post=1118"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}