- 掃描 ID:
- 3c62d4a9-a99e-4cc2-a073-ea94b79e0f20已完成
- 已提交的 URL:
- https://digitaltownplanning.net/
- 報告完成時間:
連結 · 找到 0 個
從頁面中識別的傳出連結
JavaScript 變數 · 找到 26 個
在頁面的視窗物件上載入的全域 JavaScript 變數是在函數外部宣告的變數,可從目前範圍內程式碼中的任何位置存取
名稱 | 類型 |
---|---|
onbeforetoggle | object |
documentPictureInPicture | object |
onscrollend | object |
_wpemojiSettings | object |
$ | undefined |
jQuery | function |
gtag | function |
dataLayer | object |
_googlesitekit | object |
EvEmitter | function |
主控台記錄訊息 · 找到 1 條
記錄到 Web 主控台的訊息
類型 | 類別 | 記錄 |
---|---|---|
log | other |
|
HTML
頁面的原始 HTML 主體
<!DOCTYPE html><html class="html" lang="en-GB"><head>
<meta charset="UTF-8">
<link rel="profile" href="https://gmpg.org/xfn/11">
<title>Digital Town Planning – Applied digital tools for planning</title>
<meta name="robots" content="max-image-preview:large">
<style>img:is([sizes="auto" i], [sizes^="auto," i]) { contain-intrinsic-size: 3000px 1500px }</style>
<meta name="viewport" content="width=device-width, initial-scale=1"><link rel="dns-prefetch" href="//www.googletagmanager.com">
<link rel="alternate" type="application/rss+xml" title="Digital Town Planning » Feed" href="https://digitaltownplanning.net/feed/">
<link rel="alternate" type="application/rss+xml" title="Digital Town Planning » Comments Feed" href="https://digitaltownplanning.net/comments/feed/">
<script>
window._wpemojiSettings = {"baseUrl":"https:\/\/s.w.org\/images\/core\/emoji\/15.0.3\/72x72\/","ext":".png","svgUrl":"https:\/\/s.w.org\/images\/core\/emoji\/15.0.3\/svg\/","svgExt":".svg","source":{"concatemoji":"https:\/\/digitaltownplanning.net\/wp-includes\/js\/wp-emoji-release.min.js?ver=6.7.1"}};
/*! This file is auto-generated */
!function(i,n){var o,s,e;function c(e){try{var t={supportTests:e,timestamp:(new Date).valueOf()};sessionStorage.setItem(o,JSON.stringify(t))}catch(e){}}function p(e,t,n){e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(t,0,0);var t=new Uint32Array(e.getImageData(0,0,e.canvas.width,e.canvas.height).data),r=(e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(n,0,0),new Uint32Array(e.getImageData(0,0,e.canvas.width,e.canvas.height).data));return t.every(function(e,t){return e===r[t]})}function u(e,t,n){switch(t){case"flag":return n(e,"\ud83c\udff3\ufe0f\u200d\u26a7\ufe0f","\ud83c\udff3\ufe0f\u200b\u26a7\ufe0f")?!1:!n(e,"\ud83c\uddfa\ud83c\uddf3","\ud83c\uddfa\u200b\ud83c\uddf3")&&!n(e,"\ud83c\udff4\udb40\udc67\udb40\udc62\udb40\udc65\udb40\udc6e\udb40\udc67\udb40\udc7f","\ud83c\udff4\u200b\udb40\udc67\u200b\udb40\udc62\u200b\udb40\udc65\u200b\udb40\udc6e\u200b\udb40\udc67\u200b\udb40\udc7f");case"emoji":return!n(e,"\ud83d\udc26\u200d\u2b1b","\ud83d\udc26\u200b\u2b1b")}return!1}function f(e,t,n){var r="undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope?new OffscreenCanvas(300,150):i.createElement("canvas"),a=r.getContext("2d",{willReadFrequently:!0}),o=(a.textBaseline="top",a.font="600 32px Arial",{});return e.forEach(function(e){o[e]=t(a,e,n)}),o}function t(e){var t=i.createElement("script");t.src=e,t.defer=!0,i.head.appendChild(t)}"undefined"!=typeof Promise&&(o="wpEmojiSettingsSupports",s=["flag","emoji"],n.supports={everything:!0,everythingExceptFlag:!0},e=new Promise(function(e){i.addEventListener("DOMContentLoaded",e,{once:!0})}),new Promise(function(t){var n=function(){try{var e=JSON.parse(sessionStorage.getItem(o));if("object"==typeof e&&"number"==typeof e.timestamp&&(new Date).valueOf()<e.timestamp+604800&&"object"==typeof e.supportTests)return e.supportTests}catch(e){}return null}();if(!n){if("undefined"!=typeof Worker&&"undefined"!=typeof OffscreenCanvas&&"undefined"!=typeof URL&&URL.createObjectURL&&"undefined"!=typeof Blob)try{var e="postMessage("+f.toString()+"("+[JSON.stringify(s),u.toString(),p.toString()].join(",")+"));",r=new Blob([e],{type:"text/javascript"}),a=new Worker(URL.createObjectURL(r),{name:"wpTestEmojiSupports"});return void(a.onmessage=function(e){c(n=e.data),a.terminate(),t(n)})}catch(e){}c(n=f(s,u,p))}t(n)}).then(function(e){for(var t in e)n.supports[t]=e[t],n.supports.everything=n.supports.everything&&n.supports[t],"flag"!==t&&(n.supports.everythingExceptFlag=n.supports.everythingExceptFlag&&n.supports[t]);n.supports.everythingExceptFlag=n.supports.everythingExceptFlag&&!n.supports.flag,n.DOMReady=!1,n.readyCallback=function(){n.DOMReady=!0}}).then(function(){return e}).then(function(){var e;n.supports.everything||(n.readyCallback(),(e=n.source||{}).concatemoji?t(e.concatemoji):e.wpemoji&&e.twemoji&&(t(e.twemoji),t(e.wpemoji)))}))}((window,document),window._wpemojiSettings);
</script>
<style id="wp-emoji-styles-inline-css">
img.wp-smiley, img.emoji {
display: inline !important;
border: none !important;
box-shadow: none !important;
height: 1em !important;
width: 1em !important;
margin: 0 0.07em !important;
vertical-align: -0.1em !important;
background: none !important;
padding: 0 !important;
}
</style>
<link rel="stylesheet" id="wp-block-library-css" href="https://digitaltownplanning.net/wp-includes/css/dist/block-library/style.min.css?ver=6.7.1" media="all">
<style id="wp-block-library-theme-inline-css">
.wp-block-audio :where(figcaption){color:#555;font-size:13px;text-align:center}.is-dark-theme .wp-block-audio :where(figcaption){color:#ffffffa6}.wp-block-audio{margin:0 0 1em}.wp-block-code{border:1px solid #ccc;border-radius:4px;font-family:Menlo,Consolas,monaco,monospace;padding:.8em 1em}.wp-block-embed :where(figcaption){color:#555;font-size:13px;text-align:center}.is-dark-theme .wp-block-embed :where(figcaption){color:#ffffffa6}.wp-block-embed{margin:0 0 1em}.blocks-gallery-caption{color:#555;font-size:13px;text-align:center}.is-dark-theme .blocks-gallery-caption{color:#ffffffa6}:root :where(.wp-block-image figcaption){color:#555;font-size:13px;text-align:center}.is-dark-theme :root :where(.wp-block-image figcaption){color:#ffffffa6}.wp-block-image{margin:0 0 1em}.wp-block-pullquote{border-bottom:4px solid;border-top:4px solid;color:currentColor;margin-bottom:1.75em}.wp-block-pullquote cite,.wp-block-pullquote footer,.wp-block-pullquote__citation{color:currentColor;font-size:.8125em;font-style:normal;text-transform:uppercase}.wp-block-quote{border-left:.25em solid;margin:0 0 1.75em;padding-left:1em}.wp-block-quote cite,.wp-block-quote footer{color:currentColor;font-size:.8125em;font-style:normal;position:relative}.wp-block-quote:where(.has-text-align-right){border-left:none;border-right:.25em solid;padding-left:0;padding-right:1em}.wp-block-quote:where(.has-text-align-center){border:none;padding-left:0}.wp-block-quote.is-large,.wp-block-quote.is-style-large,.wp-block-quote:where(.is-style-plain){border:none}.wp-block-search .wp-block-search__label{font-weight:700}.wp-block-search__button{border:1px solid #ccc;padding:.375em .625em}:where(.wp-block-group.has-background){padding:1.25em 2.375em}.wp-block-separator.has-css-opacity{opacity:.4}.wp-block-separator{border:none;border-bottom:2px solid;margin-left:auto;margin-right:auto}.wp-block-separator.has-alpha-channel-opacity{opacity:1}.wp-block-separator:not(.is-style-wide):not(.is-style-dots){width:100px}.wp-block-separator.has-background:not(.is-style-dots){border-bottom:none;height:1px}.wp-block-separator.has-background:not(.is-style-wide):not(.is-style-dots){height:2px}.wp-block-table{margin:0 0 1em}.wp-block-table td,.wp-block-table th{word-break:normal}.wp-block-table :where(figcaption){color:#555;font-size:13px;text-align:center}.is-dark-theme .wp-block-table :where(figcaption){color:#ffffffa6}.wp-block-video :where(figcaption){color:#555;font-size:13px;text-align:center}.is-dark-theme .wp-block-video :where(figcaption){color:#ffffffa6}.wp-block-video{margin:0 0 1em}:root :where(.wp-block-template-part.has-background){margin-bottom:0;margin-top:0;padding:1.25em 2.375em}
</style>
<style id="kevinbatdorf-code-block-pro-style-inline-css">
.wp-block-kevinbatdorf-code-block-pro{direction:ltr!important;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;-webkit-text-size-adjust:100%!important;box-sizing:border-box!important;position:relative!important}.wp-block-kevinbatdorf-code-block-pro *{box-sizing:border-box!important}.wp-block-kevinbatdorf-code-block-pro pre,.wp-block-kevinbatdorf-code-block-pro pre *{font-size:inherit!important;line-height:inherit!important}.wp-block-kevinbatdorf-code-block-pro:not(.code-block-pro-editor) pre{background-image:none!important;border:0!important;border-radius:0!important;border-style:none!important;border-width:0!important;color:inherit!important;font-family:inherit!important;margin:0!important;overflow:auto!important;overflow-wrap:normal!important;padding:16px 0 16px 16px!important;text-align:left!important;white-space:pre!important;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)!important}.wp-block-kevinbatdorf-code-block-pro.padding-disabled:not(.code-block-pro-editor) pre{padding:0!important}.wp-block-kevinbatdorf-code-block-pro.padding-bottom-disabled pre{padding-bottom:0!important}.wp-block-kevinbatdorf-code-block-pro:not(.code-block-pro-editor) pre code{background:none!important;background-color:transparent!important;border:0!important;border-radius:0!important;border-style:none!important;border-width:0!important;color:inherit!important;display:block!important;font-family:inherit!important;margin:0!important;overflow-wrap:normal!important;padding:0!important;text-align:left!important;white-space:pre!important;width:100%!important;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)!important}.wp-block-kevinbatdorf-code-block-pro:not(.code-block-pro-editor) pre code .line{display:inline-block!important;min-width:var(--cbp-block-width,100%)!important;vertical-align:top!important}.wp-block-kevinbatdorf-code-block-pro.cbp-has-line-numbers:not(.code-block-pro-editor) pre code .line{padding-left:calc(12px + var(--cbp-line-number-width, auto))!important}.wp-block-kevinbatdorf-code-block-pro.cbp-has-line-numbers:not(.code-block-pro-editor) pre code{counter-increment:step calc(var(--cbp-line-number-start, 1) - 1)!important;counter-reset:step!important}.wp-block-kevinbatdorf-code-block-pro pre code .line{position:relative!important}.wp-block-kevinbatdorf-code-block-pro:not(.code-block-pro-editor) pre code .line:before{content:""!important;display:inline-block!important}.wp-block-kevinbatdorf-code-block-pro.cbp-has-line-numbers:not(.code-block-pro-editor) pre code .line:not(.cbp-line-number-disabled):before{color:var(--cbp-line-number-color,#999)!important;content:counter(step)!important;counter-increment:step!important;left:0!important;opacity:.5!important;position:absolute!important;text-align:right!important;transition-duration:.5s!important;transition-property:opacity!important;transition-timing-function:cubic-bezier(.4,0,.2,1)!important;-webkit-user-select:none!important;-moz-user-select:none!important;user-select:none!important;width:var(--cbp-line-number-width,auto)!important}.wp-block-kevinbatdorf-code-block-pro.cbp-highlight-hover .line{min-height:var(--cbp-block-height,100%)!important}.wp-block-kevinbatdorf-code-block-pro .line.cbp-line-highlight .cbp-line-highlighter,.wp-block-kevinbatdorf-code-block-pro .line.cbp-no-blur:hover .cbp-line-highlighter,.wp-block-kevinbatdorf-code-block-pro.cbp-highlight-hover:not(.cbp-blur-enabled:not(.cbp-unblur-on-hover)) .line:hover .cbp-line-highlighter{background:var(--cbp-line-highlight-color,rgb(14 165 233/.2))!important;left:-16px!important;min-height:var(--cbp-block-height,100%)!important;min-width:calc(var(--cbp-block-width, 100%) + 16px)!important;pointer-events:none!important;position:absolute!important;top:0!important;width:100%!important}[data-code-block-pro-font-family="Code-Pro-Comic-Mono.ttf"].wp-block-kevinbatdorf-code-block-pro .line.cbp-line-highlight .cbp-line-highlighter,[data-code-block-pro-font-family="Code-Pro-Comic-Mono.ttf"].wp-block-kevinbatdorf-code-block-pro .line.cbp-no-blur:hover .cbp-line-highlighter,[data-code-block-pro-font-family="Code-Pro-Comic-Mono.ttf"].wp-block-kevinbatdorf-code-block-pro.cbp-highlight-hover:not(.cbp-blur-enabled:not(.cbp-unblur-on-hover)) .line:hover .cbp-line-highlighter{top:-.125rem!important}[data-code-block-pro-font-family=Code-Pro-Fira-Code].wp-block-kevinbatdorf-code-block-pro .line.cbp-line-highlight .cbp-line-highlighter,[data-code-block-pro-font-family=Code-Pro-Fira-Code].wp-block-kevinbatdorf-code-block-pro .line.cbp-no-blur:hover .cbp-line-highlighter,[data-code-block-pro-font-family=Code-Pro-Fira-Code].wp-block-kevinbatdorf-code-block-pro.cbp-highlight-hover:not(.cbp-blur-enabled:not(.cbp-unblur-on-hover)) .line:hover .cbp-line-highlighter{top:-1.5px!important}[data-code-block-pro-font-family="Code-Pro-Deja-Vu-Mono.ttf"].wp-block-kevinbatdorf-code-block-pro .line.cbp-line-highlight .cbp-line-highlighter,[data-code-block-pro-font-family="Code-Pro-Deja-Vu-Mono.ttf"].wp-block-kevinbatdorf-code-block-pro .line.cbp-no-blur:hover .cbp-line-highlighter,[data-code-block-pro-font-family="Code-Pro-Deja-Vu-Mono.ttf"].wp-block-kevinbatdorf-code-block-pro.cbp-highlight-hover:not(.cbp-blur-enabled:not(.cbp-unblur-on-hover)) .line:hover .cbp-line-highlighter,[data-code-block-pro-font-family=Code-Pro-Cozette].wp-block-kevinbatdorf-code-block-pro .line.cbp-line-highlight .cbp-line-highlighter,[data-code-block-pro-font-family=Code-Pro-Cozette].wp-block-kevinbatdorf-code-block-pro .line.cbp-no-blur:hover .cbp-line-highlighter,[data-code-block-pro-font-family=Code-Pro-Cozette].wp-block-kevinbatdorf-code-block-pro.cbp-highlight-hover:not(.cbp-blur-enabled:not(.cbp-unblur-on-hover)) .line:hover .cbp-line-highlighter{top:-1px!important}.wp-block-kevinbatdorf-code-block-pro:not(.code-block-pro-editor).padding-disabled pre .line.cbp-line-highlight:after{left:0!important;width:100%!important}.wp-block-kevinbatdorf-code-block-pro.cbp-blur-enabled pre .line:not(.cbp-no-blur){filter:blur(1px)!important;opacity:.4!important;pointer-events:none!important;transition-duration:.2s!important;transition-property:all!important;transition-timing-function:cubic-bezier(.4,0,.2,1)!important}.wp-block-kevinbatdorf-code-block-pro.cbp-blur-enabled.cbp-unblur-on-hover:hover pre .line:not(.cbp-no-blur){opacity:1!important;pointer-events:auto!important;--tw-blur: ;filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)!important}.wp-block-kevinbatdorf-code-block-pro:not(.code-block-pro-editor) pre *{font-family:inherit!important}.cbp-see-more-simple-btn-hover{transition-property:none!important}.cbp-see-more-simple-btn-hover:hover{box-shadow:inset 0 0 100px 100px hsla(0,0%,100%,.1)!important}.code-block-pro-copy-button{border:0!important;border-style:none!important;border-width:0!important;cursor:pointer!important;left:auto!important;line-height:1!important;opacity:.1!important;padding:6px!important;position:absolute!important;right:0!important;top:0!important;transition-duration:.2s!important;transition-property:opacity!important;transition-timing-function:cubic-bezier(.4,0,.2,1)!important;z-index:10!important}.code-block-pro-copy-button:focus{opacity:.4!important}.code-block-pro-copy-button:not([data-has-text-button]){background:none!important;background-color:transparent!important}.wp-block-kevinbatdorf-code-block-pro.padding-disabled .code-block-pro-copy-button{padding:0!important}.wp-block-kevinbatdorf-code-block-pro:hover .code-block-pro-copy-button{opacity:.5!important}.wp-block-kevinbatdorf-code-block-pro .code-block-pro-copy-button:hover{opacity:.9!important}.code-block-pro-copy-button[data-has-text-button],.wp-block-kevinbatdorf-code-block-pro:hover .code-block-pro-copy-button[data-has-text-button]{opacity:1!important}.wp-block-kevinbatdorf-code-block-pro .code-block-pro-copy-button[data-has-text-button]:hover{opacity:.8!important}.code-block-pro-copy-button[data-has-text-button]{border-radius:.75rem!important;display:block!important;margin-right:.75rem!important;margin-top:.7rem!important;padding:.125rem .375rem!important}.code-block-pro-copy-button[data-inside-header-type=headlightsMuted],.code-block-pro-copy-button[data-inside-header-type^=headlights]{margin-top:.85rem!important}.code-block-pro-copy-button[data-inside-header-type=headlightsMutedAlt]{margin-top:.65rem!important}.code-block-pro-copy-button[data-inside-header-type=simpleString]{margin-top:.645rem!important}.code-block-pro-copy-button[data-inside-header-type=pillString]{margin-top:1rem!important}.code-block-pro-copy-button[data-inside-header-type=pillString] .cbp-btn-text{position:relative!important;top:1px!important}.cbp-btn-text{font-size:.75rem!important;line-height:1rem!important}.code-block-pro-copy-button .without-check{display:block!important}.code-block-pro-copy-button .with-check{display:none!important}.code-block-pro-copy-button.cbp-copying{opacity:1!important}.code-block-pro-copy-button.cbp-copying .without-check{display:none!important}.code-block-pro-copy-button.cbp-copying .with-check{display:block!important}.cbp-footer-link:hover{text-decoration-line:underline!important}@media print{.wp-block-kevinbatdorf-code-block-pro pre{max-height:none!important}.wp-block-kevinbatdorf-code-block-pro:not(#x) .line:before{background-color:transparent!important;color:inherit!important}.wp-block-kevinbatdorf-code-block-pro:not(#x) .cbp-line-highlighter,.wp-block-kevinbatdorf-code-block-pro:not(#x)>span{display:none!important}}
</style>
<style id="classic-theme-styles-inline-css">
/*! This file is auto-generated */
.wp-block-button__link{color:#fff;background-color:#32373c;border-radius:9999px;box-shadow:none;text-decoration:none;padding:calc(.667em + 2px) calc(1.333em + 2px);font-size:1.125em}.wp-block-file__button{background:#32373c;color:#fff;text-decoration:none}
</style>
<style id="global-styles-inline-css">
:root{--wp--preset--aspect-ratio--square: 1;--wp--preset--aspect-ratio--4-3: 4/3;--wp--preset--aspect-ratio--3-4: 3/4;--wp--preset--aspect-ratio--3-2: 3/2;--wp--preset--aspect-ratio--2-3: 2/3;--wp--preset--aspect-ratio--16-9: 16/9;--wp--preset--aspect-ratio--9-16: 9/16;--wp--preset--color--black: #000000;--wp--preset--color--cyan-bluish-gray: #abb8c3;--wp--preset--color--white: #ffffff;--wp--preset--color--pale-pink: #f78da7;--wp--preset--color--vivid-red: #cf2e2e;--wp--preset--color--luminous-vivid-orange: #ff6900;--wp--preset--color--luminous-vivid-amber: #fcb900;--wp--preset--color--light-green-cyan: #7bdcb5;--wp--preset--color--vivid-green-cyan: #00d084;--wp--preset--color--pale-cyan-blue: #8ed1fc;--wp--preset--color--vivid-cyan-blue: #0693e3;--wp--preset--color--vivid-purple: #9b51e0;--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple: linear-gradient(135deg,rgba(6,147,227,1) 0%,rgb(155,81,224) 100%);--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan: linear-gradient(135deg,rgb(122,220,180) 0%,rgb(0,208,130) 100%);--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange: linear-gradient(135deg,rgba(252,185,0,1) 0%,rgba(255,105,0,1) 100%);--wp--preset--gradient--luminous-vivid-orange-to-vivid-red: linear-gradient(135deg,rgba(255,105,0,1) 0%,rgb(207,46,46) 100%);--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray: linear-gradient(135deg,rgb(238,238,238) 0%,rgb(169,184,195) 100%);--wp--preset--gradient--cool-to-warm-spectrum: linear-gradient(135deg,rgb(74,234,220) 0%,rgb(151,120,209) 20%,rgb(207,42,186) 40%,rgb(238,44,130) 60%,rgb(251,105,98) 80%,rgb(254,248,76) 100%);--wp--preset--gradient--blush-light-purple: linear-gradient(135deg,rgb(255,206,236) 0%,rgb(152,150,240) 100%);--wp--preset--gradient--blush-bordeaux: linear-gradient(135deg,rgb(254,205,165) 0%,rgb(254,45,45) 50%,rgb(107,0,62) 100%);--wp--preset--gradient--luminous-dusk: linear-gradient(135deg,rgb(255,203,112) 0%,rgb(199,81,192) 50%,rgb(65,88,208) 100%);--wp--preset--gradient--pale-ocean: linear-gradient(135deg,rgb(255,245,203) 0%,rgb(182,227,212) 50%,rgb(51,167,181) 100%);--wp--preset--gradient--electric-grass: linear-gradient(135deg,rgb(202,248,128) 0%,rgb(113,206,126) 100%);--wp--preset--gradient--midnight: linear-gradient(135deg,rgb(2,3,129) 0%,rgb(40,116,252) 100%);--wp--preset--font-size--small: 13px;--wp--preset--font-size--medium: 20px;--wp--preset--font-size--large: 36px;--wp--preset--font-size--x-large: 42px;--wp--preset--spacing--20: 0.44rem;--wp--preset--spacing--30: 0.67rem;--wp--preset--spacing--40: 1rem;--wp--preset--spacing--50: 1.5rem;--wp--preset--spacing--60: 2.25rem;--wp--preset--spacing--70: 3.38rem;--wp--preset--spacing--80: 5.06rem;--wp--preset--shadow--natural: 6px 6px 9px rgba(0, 0, 0, 0.2);--wp--preset--shadow--deep: 12px 12px 50px rgba(0, 0, 0, 0.4);--wp--preset--shadow--sharp: 6px 6px 0px rgba(0, 0, 0, 0.2);--wp--preset--shadow--outlined: 6px 6px 0px -3px rgba(255, 255, 255, 1), 6px 6px rgba(0, 0, 0, 1);--wp--preset--shadow--crisp: 6px 6px 0px rgba(0, 0, 0, 1);}:where(.is-layout-flex){gap: 0.5em;}:where(.is-layout-grid){gap: 0.5em;}body .is-layout-flex{display: flex;}.is-layout-flex{flex-wrap: wrap;align-items: center;}.is-layout-flex > :is(*, div){margin: 0;}body .is-layout-grid{display: grid;}.is-layout-grid > :is(*, div){margin: 0;}:where(.wp-block-columns.is-layout-flex){gap: 2em;}:where(.wp-block-columns.is-layout-grid){gap: 2em;}:where(.wp-block-post-template.is-layout-flex){gap: 1.25em;}:where(.wp-block-post-template.is-layout-grid){gap: 1.25em;}.has-black-color{color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-color{color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-color{color: var(--wp--preset--color--white) !important;}.has-pale-pink-color{color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-color{color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-color{color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-color{color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-color{color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-color{color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-color{color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-color{color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-color{color: var(--wp--preset--color--vivid-purple) !important;}.has-black-background-color{background-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-background-color{background-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-background-color{background-color: var(--wp--preset--color--white) !important;}.has-pale-pink-background-color{background-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-background-color{background-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-background-color{background-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-background-color{background-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-background-color{background-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-background-color{background-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-background-color{background-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-background-color{background-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-background-color{background-color: var(--wp--preset--color--vivid-purple) !important;}.has-black-border-color{border-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-border-color{border-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-border-color{border-color: var(--wp--preset--color--white) !important;}.has-pale-pink-border-color{border-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-border-color{border-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-border-color{border-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-border-color{border-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-border-color{border-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-border-color{border-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-border-color{border-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-border-color{border-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-border-color{border-color: var(--wp--preset--color--vivid-purple) !important;}.has-vivid-cyan-blue-to-vivid-purple-gradient-background{background: var(--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple) !important;}.has-light-green-cyan-to-vivid-green-cyan-gradient-background{background: var(--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan) !important;}.has-luminous-vivid-amber-to-luminous-vivid-orange-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange) !important;}.has-luminous-vivid-orange-to-vivid-red-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-orange-to-vivid-red) !important;}.has-very-light-gray-to-cyan-bluish-gray-gradient-background{background: var(--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray) !important;}.has-cool-to-warm-spectrum-gradient-background{background: var(--wp--preset--gradient--cool-to-warm-spectrum) !important;}.has-blush-light-purple-gradient-background{background: var(--wp--preset--gradient--blush-light-purple) !important;}.has-blush-bordeaux-gradient-background{background: var(--wp--preset--gradient--blush-bordeaux) !important;}.has-luminous-dusk-gradient-background{background: var(--wp--preset--gradient--luminous-dusk) !important;}.has-pale-ocean-gradient-background{background: var(--wp--preset--gradient--pale-ocean) !important;}.has-electric-grass-gradient-background{background: var(--wp--preset--gradient--electric-grass) !important;}.has-midnight-gradient-background{background: var(--wp--preset--gradient--midnight) !important;}.has-small-font-size{font-size: var(--wp--preset--font-size--small) !important;}.has-medium-font-size{font-size: var(--wp--preset--font-size--medium) !important;}.has-large-font-size{font-size: var(--wp--preset--font-size--large) !important;}.has-x-large-font-size{font-size: var(--wp--preset--font-size--x-large) !important;}
:where(.wp-block-post-template.is-layout-flex){gap: 1.25em;}:where(.wp-block-post-template.is-layout-grid){gap: 1.25em;}
:where(.wp-block-columns.is-layout-flex){gap: 2em;}:where(.wp-block-columns.is-layout-grid){gap: 2em;}
:root :where(.wp-block-pullquote){font-size: 1.5em;line-height: 1.6;}
</style>
<link rel="stylesheet" id="font-awesome-css" href="https://digitaltownplanning.net/wp-content/themes/oceanwp/assets/fonts/fontawesome/css/all.min.css?ver=6.4.2" media="all">
<link rel="stylesheet" id="simple-line-icons-css" href="https://digitaltownplanning.net/wp-content/themes/oceanwp/assets/css/third/simple-line-icons.min.css?ver=2.4.0" media="all">
<link rel="stylesheet" id="oceanwp-style-css" href="https://digitaltownplanning.net/wp-content/themes/oceanwp/assets/css/style.min.css?ver=4.0.3" media="all">
<link rel="stylesheet" id="oceanwp-hamburgers-css" href="https://digitaltownplanning.net/wp-content/themes/oceanwp/assets/css/third/hamburgers/hamburgers.min.css?ver=4.0.3" media="all">
<link rel="stylesheet" id="oceanwp-collapse-css" href="https://digitaltownplanning.net/wp-content/themes/oceanwp/assets/css/third/hamburgers/types/collapse.css?ver=4.0.3" media="all">
<script src="https://digitaltownplanning.net/wp-includes/js/jquery/jquery.min.js?ver=3.7.1" id="jquery-core-js"></script>
<script src="https://digitaltownplanning.net/wp-includes/js/jquery/jquery-migrate.min.js?ver=3.4.1" id="jquery-migrate-js"></script>
<!-- Google tag (gtag.js) snippet added by Site Kit -->
<!-- Google Analytics snippet added by Site Kit -->
<script src="https://www.googletagmanager.com/gtag/js?id=GT-T5P2SQKM" id="google_gtagjs-js" async=""></script>
<script id="google_gtagjs-js-after">
window.dataLayer = window.dataLayer || [];function gtag(){dataLayer.push(arguments);}
gtag("set","linker",{"domains":["digitaltownplanning.net"]});
gtag("js", new Date());
gtag("set", "developer_id.dZTNiMT", true);
gtag("config", "GT-T5P2SQKM");
window._googlesitekit = window._googlesitekit || {}; window._googlesitekit.throttledEvents = []; window._googlesitekit.gtagEvent = (name, data) => { var key = JSON.stringify( { name, data } ); if ( !! window._googlesitekit.throttledEvents[ key ] ) { return; } window._googlesitekit.throttledEvents[ key ] = true; setTimeout( () => { delete window._googlesitekit.throttledEvents[ key ]; }, 5 ); gtag( "event", name, { ...data, event_source: "site-kit" } ); }
</script>
<!-- End Google tag (gtag.js) snippet added by Site Kit -->
<link rel="https://api.w.org/" href="https://digitaltownplanning.net/wp-json/"><link rel="EditURI" type="application/rsd+xml" title="RSD" href="https://digitaltownplanning.net/xmlrpc.php?rsd">
<meta name="generator" content="WordPress 6.7.1">
<meta name="generator" content="Site Kit by Google 1.140.0"><style type="text/css">.broken_link, a.broken_link {
text-decoration: line-through;
}</style><link rel="icon" href="https://digitaltownplanning.net/wp-content/uploads/2024/11/cropped-Capture.PNG-32x32.png" sizes="32x32">
<link rel="icon" href="https://digitaltownplanning.net/wp-content/uploads/2024/11/cropped-Capture.PNG-192x192.png" sizes="192x192">
<link rel="apple-touch-icon" href="https://digitaltownplanning.net/wp-content/uploads/2024/11/cropped-Capture.PNG-180x180.png">
<meta name="msapplication-TileImage" content="https://digitaltownplanning.net/wp-content/uploads/2024/11/cropped-Capture.PNG-270x270.png">
<!-- OceanWP CSS -->
<style type="text/css">
/* Colors */body .theme-button,body input[type="submit"],body button[type="submit"],body button,body .button,body div.wpforms-container-full .wpforms-form input[type=submit],body div.wpforms-container-full .wpforms-form button[type=submit],body div.wpforms-container-full .wpforms-form .wpforms-page-button{border-color:#ffffff}body .theme-button:hover,body input[type="submit"]:hover,body button[type="submit"]:hover,body button:hover,body .button:hover,body div.wpforms-container-full .wpforms-form input[type=submit]:hover,body div.wpforms-container-full .wpforms-form input[type=submit]:active,body div.wpforms-container-full .wpforms-form button[type=submit]:hover,body div.wpforms-container-full .wpforms-form button[type=submit]:active,body div.wpforms-container-full .wpforms-form .wpforms-page-button:hover,body div.wpforms-container-full .wpforms-form .wpforms-page-button:active{border-color:#ffffff}/* OceanWP Style Settings CSS */.container{width:900px}@media only screen and (min-width:960px){.content-area,.content-left-sidebar .content-area{width:90%}}.theme-button,input[type="submit"],button[type="submit"],button,.button,body div.wpforms-container-full .wpforms-form input[type=submit],body div.wpforms-container-full .wpforms-form button[type=submit],body div.wpforms-container-full .wpforms-form .wpforms-page-button{border-style:solid}.theme-button,input[type="submit"],button[type="submit"],button,.button,body div.wpforms-container-full .wpforms-form input[type=submit],body div.wpforms-container-full .wpforms-form button[type=submit],body div.wpforms-container-full .wpforms-form .wpforms-page-button{border-width:1px}form input[type="text"],form input[type="password"],form input[type="email"],form input[type="url"],form input[type="date"],form input[type="month"],form input[type="time"],form input[type="datetime"],form input[type="datetime-local"],form input[type="week"],form input[type="number"],form input[type="search"],form input[type="tel"],form input[type="color"],form select,form textarea,.woocommerce .woocommerce-checkout .select2-container--default .select2-selection--single{border-style:solid}body div.wpforms-container-full .wpforms-form input[type=date],body div.wpforms-container-full .wpforms-form input[type=datetime],body div.wpforms-container-full .wpforms-form input[type=datetime-local],body div.wpforms-container-full .wpforms-form input[type=email],body div.wpforms-container-full .wpforms-form input[type=month],body div.wpforms-container-full .wpforms-form input[type=number],body div.wpforms-container-full .wpforms-form input[type=password],body div.wpforms-container-full .wpforms-form input[type=range],body div.wpforms-container-full .wpforms-form input[type=search],body div.wpforms-container-full .wpforms-form input[type=tel],body div.wpforms-container-full .wpforms-form input[type=text],body div.wpforms-container-full .wpforms-form input[type=time],body div.wpforms-container-full .wpforms-form input[type=url],body div.wpforms-container-full .wpforms-form input[type=week],body div.wpforms-container-full .wpforms-form select,body div.wpforms-container-full .wpforms-form textarea{border-style:solid}form input[type="text"],form input[type="password"],form input[type="email"],form input[type="url"],form input[type="date"],form input[type="month"],form input[type="time"],form input[type="datetime"],form input[type="datetime-local"],form input[type="week"],form input[type="number"],form input[type="search"],form input[type="tel"],form input[type="color"],form select,form textarea{border-radius:3px}body div.wpforms-container-full .wpforms-form input[type=date],body div.wpforms-container-full .wpforms-form input[type=datetime],body div.wpforms-container-full .wpforms-form input[type=datetime-local],body div.wpforms-container-full .wpforms-form input[type=email],body div.wpforms-container-full .wpforms-form input[type=month],body div.wpforms-container-full .wpforms-form input[type=number],body div.wpforms-container-full .wpforms-form input[type=password],body div.wpforms-container-full .wpforms-form input[type=range],body div.wpforms-container-full .wpforms-form input[type=search],body div.wpforms-container-full .wpforms-form input[type=tel],body div.wpforms-container-full .wpforms-form input[type=text],body div.wpforms-container-full .wpforms-form input[type=time],body div.wpforms-container-full .wpforms-form input[type=url],body div.wpforms-container-full .wpforms-form input[type=week],body div.wpforms-container-full .wpforms-form select,body div.wpforms-container-full .wpforms-form textarea{border-radius:3px}#scroll-top{bottom:50px}#scroll-top{width:60px;height:60px;line-height:60px}#scroll-top{font-size:60px}#scroll-top .owp-icon{width:60px;height:60px}.page-header,.has-transparent-header .page-header{padding:20px 0 20px 0}/* Header */#site-logo #site-logo-inner,.oceanwp-social-menu .social-menu-inner,#site-header.full_screen-header .menu-bar-inner,.after-header-content .after-header-content-inner{height:70px}#site-navigation-wrap .dropdown-menu >li >a,.oceanwp-mobile-menu-icon a,.mobile-menu-close,.after-header-content-inner >a{line-height:70px}#site-header,.has-transparent-header .is-sticky #site-header,.has-vh-transparent .is-sticky #site-header.vertical-header,#searchform-header-replace{background-color:#e1e1e1}#site-header.has-header-media .overlay-header-media{background-color:#b41010}#site-header{border-color:#e1e1e1}#site-navigation-wrap .dropdown-menu >li >a{padding:0 12px}#site-navigation-wrap .dropdown-menu >li >a:hover,#site-navigation-wrap .dropdown-menu >li.sfHover >a{background-color:#eeee22}.dropdown-menu ul li a.menu-link:hover{background-color:#eeee22}.mobile-menu .hamburger-inner,.mobile-menu .hamburger-inner::before,.mobile-menu .hamburger-inner::after{background-color:#000000}/* Blog CSS */.ocean-single-post-header ul.meta-item li a:hover{color:#333333}/* Sidebar */.widget-area{padding:0 0 0 20px!important}.widget-area .sidebar-box{padding:0 0 0 20px}.widget-title{margin-bottom:10px}/* Typography */body{font-size:14px;line-height:1.8}h1,h2,h3,h4,h5,h6,.theme-heading,.widget-title,.oceanwp-widget-recent-posts-title,.comment-reply-title,.entry-title,.sidebar-box .widget-title{line-height:1.4}h1{font-size:23px;line-height:1.4}h2{font-size:20px;line-height:1.4}h3{font-size:18px;line-height:1.4}h4{font-size:17px;line-height:1.4}h5{font-size:14px;line-height:1.4}h6{font-size:15px;line-height:1.4}.page-header .page-header-title,.page-header.background-image-page-header .page-header-title{font-size:32px;line-height:1.4}.page-header .page-subheading{font-size:15px;line-height:1.8}.site-breadcrumbs,.site-breadcrumbs a{font-size:13px;line-height:1.4}#top-bar-content,#top-bar-social-alt{font-size:12px;line-height:1.8}#site-logo a.site-logo-text{font-size:18px;line-height:1.8}.dropdown-menu ul li a.menu-link,#site-header.full_screen-header .fs-dropdown-menu ul.sub-menu li a{font-size:12px;line-height:1.2;letter-spacing:.6px}.sidr-class-dropdown-menu li a,a.sidr-class-toggle-sidr-close,#mobile-dropdown ul li a,body #mobile-fullscreen ul li a{font-size:15px;line-height:1.8}.blog-entry.post .blog-entry-header .entry-title a{font-size:24px;line-height:1.4}.ocean-single-post-header .single-post-title{font-size:34px;line-height:1.4;letter-spacing:.6px}.ocean-single-post-header ul.meta-item li,.ocean-single-post-header ul.meta-item li a{font-size:13px;line-height:1.4;letter-spacing:.6px}.ocean-single-post-header .post-author-name,.ocean-single-post-header .post-author-name a{font-size:14px;line-height:1.4;letter-spacing:.6px}.ocean-single-post-header .post-author-description{font-size:12px;line-height:1.4;letter-spacing:.6px}.single-post .entry-title{line-height:1.4;letter-spacing:.6px}.single-post ul.meta li,.single-post ul.meta li a{font-size:14px;line-height:1.4;letter-spacing:.6px}.sidebar-box .widget-title,.sidebar-box.widget_block .wp-block-heading{font-size:13px;line-height:1;letter-spacing:1px}#footer-widgets .footer-box .widget-title{font-size:13px;line-height:1;letter-spacing:1px}#footer-bottom #copyright{font-size:12px;line-height:1}#footer-bottom #footer-bottom-menu{font-size:12px;line-height:1}.woocommerce-store-notice.demo_store{line-height:2;letter-spacing:1.5px}.demo_store .woocommerce-store-notice__dismiss-link{line-height:2;letter-spacing:1.5px}.woocommerce ul.products li.product li.title h2,.woocommerce ul.products li.product li.title a{font-size:14px;line-height:1.5}.woocommerce ul.products li.product li.category,.woocommerce ul.products li.product li.category a{font-size:12px;line-height:1}.woocommerce ul.products li.product .price{font-size:18px;line-height:1}.woocommerce ul.products li.product .button,.woocommerce ul.products li.product .product-inner .added_to_cart{font-size:12px;line-height:1.5;letter-spacing:1px}.woocommerce ul.products li.owp-woo-cond-notice span,.woocommerce ul.products li.owp-woo-cond-notice a{font-size:16px;line-height:1;letter-spacing:1px;font-weight:600;text-transform:capitalize}.woocommerce div.product .product_title{font-size:24px;line-height:1.4;letter-spacing:.6px}.woocommerce div.product p.price{font-size:36px;line-height:1}.woocommerce .owp-btn-normal .summary form button.button,.woocommerce .owp-btn-big .summary form button.button,.woocommerce .owp-btn-very-big .summary form button.button{font-size:12px;line-height:1.5;letter-spacing:1px;text-transform:uppercase}.woocommerce div.owp-woo-single-cond-notice span,.woocommerce div.owp-woo-single-cond-notice a{font-size:18px;line-height:2;letter-spacing:1.5px;font-weight:600;text-transform:capitalize}
</style><script src="https://digitaltownplanning.net/wp-includes/js/wp-emoji-release.min.js?ver=6.7.1" defer=""></script></head>
<body class="home blog wp-embed-responsive oceanwp-theme dropdown-mobile no-header-border default-breakpoint has-sidebar content-right-sidebar page-header-disabled has-breadcrumbs" itemscope="itemscope" itemtype="https://schema.org/WebPage">
<div id="outer-wrap" class="site clr">
<a class="skip-link screen-reader-text" href="#main">Skip to content</a>
<div id="wrap" class="clr">
<header id="site-header" class="minimal-header effect-three clr" data-height="70" itemscope="itemscope" itemtype="https://schema.org/WPHeader" role="banner">
<div id="site-header-inner" class="clr container">
<div id="site-logo" class="clr" itemscope="" itemtype="https://schema.org/Brand">
<div id="site-logo-inner" class="clr">
<a href="https://digitaltownplanning.net/" rel="home" class="site-title site-logo-text" style="color:#;">Digital Town Planning</a>
</div><!-- #site-logo-inner -->
</div><!-- #site-logo -->
<div id="site-navigation-wrap" class="clr">
<nav id="site-navigation" class="navigation main-navigation clr" itemscope="itemscope" itemtype="https://schema.org/SiteNavigationElement" role="navigation">
<ul id="menu-index" class="main-menu dropdown-menu sf-menu"><li id="menu-item-237" class="menu-item menu-item-type-custom menu-item-object-custom current-menu-item current_page_item menu-item-home menu-item-237"><a href="https://digitaltownplanning.net" class="menu-link"><span class="text-wrap">HOME</span></a></li><li id="menu-item-238" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-has-children dropdown menu-item-238"><a href="https://digitaltownplanning.net/category/index/" class="menu-link"><span class="text-wrap">Index<i class="nav-arrow fa fa-angle-down" aria-hidden="true" role="img"></i></span></a>
<ul class="sub-menu">
<li id="menu-item-258" class="menu-item menu-item-type-post_type menu-item-object-post menu-item-258"><a href="https://digitaltownplanning.net/test-post/" class="menu-link"><span class="text-wrap">Introduction</span></a></li> <li id="menu-item-247" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-has-children dropdown menu-item-247"><a href="https://digitaltownplanning.net/category/gis-4-planners/" class="menu-link"><span class="text-wrap">GIS 4 Planners<i class="nav-arrow fa fa-angle-right" aria-hidden="true" role="img"></i></span></a>
<ul class="sub-menu">
<li id="menu-item-253" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-253"><a href="https://digitaltownplanning.net/category/gis-4-planners/arc-gis-online-and-desktop/" class="menu-link"><span class="text-wrap">Arc GIS Online and Desktop</span></a></li> <li id="menu-item-248" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-248"><a href="https://digitaltownplanning.net/category/gis-4-planners/geoserver/" class="menu-link"><span class="text-wrap">Geoserver</span></a></li> <li id="menu-item-249" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-249"><a href="https://digitaltownplanning.net/category/gis-4-planners/leaflet/" class="menu-link"><span class="text-wrap">Leaflet</span></a></li> <li id="menu-item-250" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-250"><a href="https://digitaltownplanning.net/category/gis-4-planners/open-layers/" class="menu-link"><span class="text-wrap">Open Layers</span></a></li> <li id="menu-item-251" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-251"><a href="https://digitaltownplanning.net/category/gis-4-planners/qgis/" class="menu-link"><span class="text-wrap">QGIS</span></a></li> <li id="menu-item-252" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-252"><a href="https://digitaltownplanning.net/category/gis-4-planners/qgis-2-web/" class="menu-link"><span class="text-wrap">QGIS 2 Web</span></a></li> </ul>
</li> <li id="menu-item-94" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-94"><a href="https://digitaltownplanning.net/category/postgres4planners/" class="menu-link"><span class="text-wrap">Postgres 4 Planners</span></a></li> <li id="menu-item-221" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-221"><a href="https://digitaltownplanning.net/category/public-open-mapping-sites/" class="menu-link"><span class="text-wrap">Public Open Mapping Sites</span></a></li> <li id="menu-item-225" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-225"><a href="https://digitaltownplanning.net/category/wordpress-4-planners/" class="menu-link"><span class="text-wrap">WordPress 4 Planners</span></a></li> <li id="menu-item-227" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-has-children dropdown menu-item-227"><a href="https://digitaltownplanning.net/category/planning-core-competencies/" class="menu-link"><span class="text-wrap">Planning Core Competencies<i class="nav-arrow fa fa-angle-right" aria-hidden="true" role="img"></i></span></a>
<ul class="sub-menu">
<li id="menu-item-220" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-220"><a href="https://digitaltownplanning.net/category/professional-ethics/" class="menu-link"><span class="text-wrap">C1 Professional Ethics</span></a></li> <li id="menu-item-223" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-223"><a href="https://digitaltownplanning.net/category/spatial-planning/" class="menu-link"><span class="text-wrap">C2 Spatial Planning</span></a></li> <li id="menu-item-217" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-217"><a href="https://digitaltownplanning.net/category/identifying-and-analysing-issues/" class="menu-link"><span class="text-wrap">C3 Identifying and Analysing Issues</span></a></li> <li id="menu-item-230" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-230"><a href="https://digitaltownplanning.net/category/c4-gathering-appropriate-information/" class="menu-link"><span class="text-wrap">C4 Gathering appropriate information</span></a></li> <li id="menu-item-231" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-231"><a href="https://digitaltownplanning.net/category/c5-identifying-and-assessing-alernative-couses-of-action/" class="menu-link"><span class="text-wrap">C5 Identifying and assessing alernative couses of action</span></a></li> <li id="menu-item-218" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-218"><a href="https://digitaltownplanning.net/category/legal-framework/" class="menu-link"><span class="text-wrap">C7 Legal Framework</span></a></li> <li id="menu-item-219" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-219"><a href="https://digitaltownplanning.net/category/politics-in-planning/" class="menu-link"><span class="text-wrap">C8 Politics in planning</span></a></li> <li id="menu-item-216" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-216"><a href="https://digitaltownplanning.net/category/economics-in-planning/" class="menu-link"><span class="text-wrap">C9 Economics in planning</span></a></li> <li id="menu-item-222" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-222"><a href="https://digitaltownplanning.net/category/reflection-and-review/" class="menu-link"><span class="text-wrap">C10 Reflection and Review</span></a></li> <li id="menu-item-224" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-224"><a href="https://digitaltownplanning.net/category/sustainability-and-climate-change/" class="menu-link"><span class="text-wrap">C11 Sustainability and climate change</span></a></li> <li id="menu-item-215" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-215"><a href="https://digitaltownplanning.net/category/community-engagement-and-participation/" class="menu-link"><span class="text-wrap">C12 Community engagement and participation</span></a></li> <li id="menu-item-229" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-229"><a href="https://digitaltownplanning.net/category/c13-specialist-knowledge-and-planning-theory/" class="menu-link"><span class="text-wrap">C13 Specialist knowledge and planning theory</span></a></li> </ul>
</li></ul>
</li><li class="search-toggle-li"><a href="https://digitaltownplanning.net/#" class="site-search-toggle search-dropdown-toggle"><span class="screen-reader-text">Toggle website search</span><i class=" fas fa-search" aria-hidden="true" role="img"></i></a></li></ul>
<div id="searchform-dropdown" class="header-searchform-wrap clr">
<form aria-label="Search this website" role="search" method="get" class="searchform" action="https://digitaltownplanning.net/">
<input aria-label="Insert search query" type="search" id="ocean-search-form-1" class="field" autocomplete="off" placeholder="Search" name="s">
</form>
</div><!-- #searchform-dropdown -->
</nav><!-- #site-navigation -->
</div><!-- #site-navigation-wrap -->
<div class="oceanwp-mobile-menu-icon clr mobile-right">
<a href="https://digitaltownplanning.net/#mobile-menu-toggle" class="mobile-menu" aria-label="Mobile Menu">
<div class="hamburger hamburger--collapse" aria-expanded="false" role="navigation">
<div class="hamburger-box">
<div class="hamburger-inner"></div>
</div>
</div>
</a>
</div><!-- #oceanwp-mobile-menu-navbar -->
</div><!-- #site-header-inner -->
<div id="mobile-dropdown" class="clr">
<nav class="clr" itemscope="itemscope" itemtype="https://schema.org/SiteNavigationElement">
<div id="mobile-nav" class="navigation clr">
<ul id="menu-index-1" class="menu"><li class="menu-item menu-item-type-custom menu-item-object-custom current-menu-item current_page_item menu-item-home menu-item-237"><a href="https://digitaltownplanning.net" aria-current="page">HOME</a></li>
<li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-has-children menu-item-238"><a href="https://digitaltownplanning.net/category/index/">Index<span class="dropdown-toggle" tabindex="0"></span></a>
<ul class="sub-menu">
<li class="menu-item menu-item-type-post_type menu-item-object-post menu-item-258"><a href="https://digitaltownplanning.net/test-post/">Introduction</a></li>
<li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-has-children menu-item-247"><a href="https://digitaltownplanning.net/category/gis-4-planners/">GIS 4 Planners<span class="dropdown-toggle" tabindex="0"></span></a>
<ul class="sub-menu">
<li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-253"><a href="https://digitaltownplanning.net/category/gis-4-planners/arc-gis-online-and-desktop/">Arc GIS Online and Desktop</a></li>
<li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-248"><a href="https://digitaltownplanning.net/category/gis-4-planners/geoserver/">Geoserver</a></li>
<li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-249"><a href="https://digitaltownplanning.net/category/gis-4-planners/leaflet/">Leaflet</a></li>
<li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-250"><a href="https://digitaltownplanning.net/category/gis-4-planners/open-layers/">Open Layers</a></li>
<li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-251"><a href="https://digitaltownplanning.net/category/gis-4-planners/qgis/">QGIS</a></li>
<li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-252"><a href="https://digitaltownplanning.net/category/gis-4-planners/qgis-2-web/">QGIS 2 Web</a></li>
</ul>
</li>
<li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-94"><a href="https://digitaltownplanning.net/category/postgres4planners/">Postgres 4 Planners</a></li>
<li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-221"><a href="https://digitaltownplanning.net/category/public-open-mapping-sites/">Public Open Mapping Sites</a></li>
<li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-225"><a href="https://digitaltownplanning.net/category/wordpress-4-planners/">WordPress 4 Planners</a></li>
<li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-has-children menu-item-227"><a href="https://digitaltownplanning.net/category/planning-core-competencies/">Planning Core Competencies<span class="dropdown-toggle" tabindex="0"></span></a>
<ul class="sub-menu">
<li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-220"><a href="https://digitaltownplanning.net/category/professional-ethics/">C1 Professional Ethics</a></li>
<li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-223"><a href="https://digitaltownplanning.net/category/spatial-planning/">C2 Spatial Planning</a></li>
<li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-217"><a href="https://digitaltownplanning.net/category/identifying-and-analysing-issues/">C3 Identifying and Analysing Issues</a></li>
<li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-230"><a href="https://digitaltownplanning.net/category/c4-gathering-appropriate-information/">C4 Gathering appropriate information</a></li>
<li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-231"><a href="https://digitaltownplanning.net/category/c5-identifying-and-assessing-alernative-couses-of-action/">C5 Identifying and assessing alernative couses of action</a></li>
<li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-218"><a href="https://digitaltownplanning.net/category/legal-framework/">C7 Legal Framework</a></li>
<li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-219"><a href="https://digitaltownplanning.net/category/politics-in-planning/">C8 Politics in planning</a></li>
<li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-216"><a href="https://digitaltownplanning.net/category/economics-in-planning/">C9 Economics in planning</a></li>
<li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-222"><a href="https://digitaltownplanning.net/category/reflection-and-review/">C10 Reflection and Review</a></li>
<li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-224"><a href="https://digitaltownplanning.net/category/sustainability-and-climate-change/">C11 Sustainability and climate change</a></li>
<li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-215"><a href="https://digitaltownplanning.net/category/community-engagement-and-participation/">C12 Community engagement and participation</a></li>
<li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-229"><a href="https://digitaltownplanning.net/category/c13-specialist-knowledge-and-planning-theory/">C13 Specialist knowledge and planning theory</a></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div id="mobile-menu-search" class="clr">
<form aria-label="Search this website" method="get" action="https://digitaltownplanning.net/" class="mobile-searchform">
<input aria-label="Insert search query" value="" class="field" id="ocean-mobile-search-2" type="search" name="s" autocomplete="off" placeholder="Search">
<button aria-label="Submit search" type="submit" class="searchform-submit">
<i class=" fas fa-search" aria-hidden="true" role="img"></i> </button>
</form>
</div><!-- .mobile-menu-search -->
</nav>
</div>
</header><!-- #site-header -->
<main id="main" class="site-main clr" role="main">
<div id="content-wrap" class="container clr">
<div id="primary" class="content-area clr">
<div id="content" class="site-content clr">
<div id="blog-entries" class="entries clr infinite-scroll-wrap">
<article id="post-301" class="blog-entry clr no-featured-image item-entry large-entry post-301 post type-post status-publish format-standard hentry category-ai-artificial-intelligence category-all entry">
<div class="blog-entry-inner clr">
<header class="blog-entry-header clr">
<h2 class="blog-entry-title entry-title">
<a href="https://digitaltownplanning.net/ai-example/" rel="bookmark">AI Experimentation Example</a>
</h2><!-- .blog-entry-title -->
</header><!-- .blog-entry-header -->
<div class="blog-entry-summary clr" itemprop="text">
<p>
I thought it would be fun to show you the kind of things that I am using AI for. Here I take a visual basic script that created a set… </p>
</div><!-- .blog-entry-summary -->
<div class="blog-entry-readmore clr">
<a href="https://digitaltownplanning.net/ai-example/">
Continue Reading<span class="screen-reader-text">AI Experimentation Example</span><i class=" fa fa-angle-right" aria-hidden="true" role="img"></i></a>
</div><!-- .blog-entry-readmore -->
</div><!-- .blog-entry-inner -->
</article><!-- #post-## -->
<article id="post-275" class="blog-entry clr no-featured-image item-entry large-entry post-275 post type-post status-publish format-standard hentry category-all category-gis-4-planners category-identifying-and-analysing-issues category-postgres4planners category-psql category-spatial-planning entry">
<div class="blog-entry-inner clr">
<header class="blog-entry-header clr">
<h2 class="blog-entry-title entry-title">
<a href="https://digitaltownplanning.net/013-postgres-command-line-psql-using-st_within-function-to-build-junction-tables-to-compare-2-separate-polygon-tables/" rel="bookmark">Postgres 4 Planners : Automating Site Constraint Checks</a>
</h2><!-- .blog-entry-title -->
</header><!-- .blog-entry-header -->
<div class="blog-entry-summary clr" itemprop="text">
<p>
Introduction In terms of the Housing Land Audit , Employment land and Vacant and Derelict land it is important to quickly identify what constraints/policies and education catchment areas a site… </p>
</div><!-- .blog-entry-summary -->
<div class="blog-entry-readmore clr">
<a href="https://digitaltownplanning.net/013-postgres-command-line-psql-using-st_within-function-to-build-junction-tables-to-compare-2-separate-polygon-tables/">
Continue Reading<span class="screen-reader-text">Postgres 4 Planners : Automating Site Constraint Checks</span><i class=" fa fa-angle-right" aria-hidden="true" role="img"></i></a>
</div><!-- .blog-entry-readmore -->
</div><!-- .blog-entry-inner -->
</article><!-- #post-## -->
<article id="post-273" class="blog-entry clr no-featured-image item-entry large-entry post-273 post type-post status-publish format-standard hentry category-all category-geoserver category-gis-4-planners category-spatial-planning entry">
<div class="blog-entry-inner clr">
<header class="blog-entry-header clr">
<h2 class="blog-entry-title entry-title">
<a href="https://digitaltownplanning.net/geoserver-installation-configuration-for-sql-server-on-windows/" rel="bookmark">Geoserver Installation (Configuration for SQL Server on Windows)</a>
</h2><!-- .blog-entry-title -->
</header><!-- .blog-entry-header -->
<div class="blog-entry-summary clr" itemprop="text">
<p>
Once you have your data in an Enterprise Grade database sharing that information becomes important. Some vendors, in particular Digital mapping SAAS vendors want you to transfer your data into… </p>
</div><!-- .blog-entry-summary -->
<div class="blog-entry-readmore clr">
<a href="https://digitaltownplanning.net/geoserver-installation-configuration-for-sql-server-on-windows/">
Continue Reading<span class="screen-reader-text">Geoserver Installation (Configuration for SQL Server on Windows)</span><i class=" fa fa-angle-right" aria-hidden="true" role="img"></i></a>
</div><!-- .blog-entry-readmore -->
</div><!-- .blog-entry-inner -->
</article><!-- #post-## -->
<article id="post-271" class="blog-entry clr no-featured-image item-entry large-entry post-271 post type-post status-publish format-standard hentry category-all category-microsoft-azure category-postgres4planners entry">
<div class="blog-entry-inner clr">
<header class="blog-entry-header clr">
<h2 class="blog-entry-title entry-title">
<a href="https://digitaltownplanning.net/add-postgis-extension-to-azure-postgres-database-worked-example/" rel="bookmark">Add POSTGIS extension to Azure Postgres Database – Worked Example</a>
</h2><!-- .blog-entry-title -->
</header><!-- .blog-entry-header -->
<div class="blog-entry-summary clr" itemprop="text">
<p>
Firstly we need to allow for the extension on the server.Within the Azure portal navigate to server parameters Search for azure.extensions Select which extensions to addREMEMBER to save before exit! Wait… </p>
</div><!-- .blog-entry-summary -->
<div class="blog-entry-readmore clr">
<a href="https://digitaltownplanning.net/add-postgis-extension-to-azure-postgres-database-worked-example/">
Continue Reading<span class="screen-reader-text">Add POSTGIS extension to Azure Postgres Database – Worked Example</span><i class=" fa fa-angle-right" aria-hidden="true" role="img"></i></a>
</div><!-- .blog-entry-readmore -->
</div><!-- .blog-entry-inner -->
</article><!-- #post-## -->
<article id="post-269" class="blog-entry clr no-featured-image item-entry large-entry post-269 post type-post status-publish format-standard hentry category-all category-data-sources category-gis-4-planners category-spatial-planning entry">
<div class="blog-entry-inner clr">
<header class="blog-entry-header clr">
<h2 class="blog-entry-title entry-title">
<a href="https://digitaltownplanning.net/spatial-data-hub-scotland/" rel="bookmark">Spatial Data Hub Scotland</a>
</h2><!-- .blog-entry-title -->
</header><!-- .blog-entry-header -->
<div class="blog-entry-summary clr" itemprop="text">
<p>
Planning in the UK has for a long time suffered from a classic siloing of data by authority resulting in slow and varied analysis of information. Authorities relied on talented… </p>
</div><!-- .blog-entry-summary -->
<div class="blog-entry-readmore clr">
<a href="https://digitaltownplanning.net/spatial-data-hub-scotland/">
Continue Reading<span class="screen-reader-text">Spatial Data Hub Scotland</span><i class=" fa fa-angle-right" aria-hidden="true" role="img"></i></a>
</div><!-- .blog-entry-readmore -->
</div><!-- .blog-entry-inner -->
</article><!-- #post-## -->
<article id="post-262" class="blog-entry clr no-featured-image item-entry large-entry post-262 post type-post status-publish format-standard hentry category-all category-geoserver category-spatial-planning entry">
<div class="blog-entry-inner clr">
<header class="blog-entry-header clr">
<h2 class="blog-entry-title entry-title">
<a href="https://digitaltownplanning.net/geoserver-create-view/" rel="bookmark">Geoserver – CREATE View</a>
</h2><!-- .blog-entry-title -->
</header><!-- .blog-entry-header -->
<div class="blog-entry-summary clr" itemprop="text">
<p>
Geoserver has this really great feature whereby admins are able to create views that are held with the configuration of the Geoserver but separate from the database. This allows admins… </p>
</div><!-- .blog-entry-summary -->
<div class="blog-entry-readmore clr">
<a href="https://digitaltownplanning.net/geoserver-create-view/">
Continue Reading<span class="screen-reader-text">Geoserver – CREATE View</span><i class=" fa fa-angle-right" aria-hidden="true" role="img"></i></a>
</div><!-- .blog-entry-readmore -->
</div><!-- .blog-entry-inner -->
</article><!-- #post-## -->
<article id="post-259" class="blog-entry clr no-featured-image item-entry large-entry post-259 post type-post status-publish format-standard hentry category-all category-geoserver category-gis-4-planners category-spatial-planning entry">
<div class="blog-entry-inner clr">
<header class="blog-entry-header clr">
<h2 class="blog-entry-title entry-title">
<a href="https://digitaltownplanning.net/geoserver-and-oracle-wfs-wms-config-tips/" rel="bookmark">GeoServer and ORACLE – WFS & WMS Config Tips</a>
</h2><!-- .blog-entry-title -->
</header><!-- .blog-entry-header -->
<div class="blog-entry-summary clr" itemprop="text">
<p>
This post is a brief description of my findings on setting up Geoserver from scratch and some particular points on setting it up for an Oracle connection. I hope it… </p>
</div><!-- .blog-entry-summary -->
<div class="blog-entry-readmore clr">
<a href="https://digitaltownplanning.net/geoserver-and-oracle-wfs-wms-config-tips/">
Continue Reading<span class="screen-reader-text">GeoServer and ORACLE – WFS & WMS Config Tips</span><i class=" fa fa-angle-right" aria-hidden="true" role="img"></i></a>
</div><!-- .blog-entry-readmore -->
</div><!-- .blog-entry-inner -->
</article><!-- #post-## -->
<article id="post-254" class="blog-entry clr no-featured-image item-entry large-entry post-254 post type-post status-publish format-standard hentry category-all category-arc-gis-online-and-desktop category-gis-4-planners category-spatial-planning entry">
<div class="blog-entry-inner clr">
<header class="blog-entry-header clr">
<h2 class="blog-entry-title entry-title">
<a href="https://digitaltownplanning.net/arcgis-online/" rel="bookmark">ArcGIS Online (AGOL) – Observations and Reflections</a>
</h2><!-- .blog-entry-title -->
</header><!-- .blog-entry-header -->
<div class="blog-entry-summary clr" itemprop="text">
<p>
Pros I recently started using ArcGIS Online (AGOL), a platform that seems to be widely regarded as a solid choice for online mapping. So far, I’ve found its user interface… </p>
</div><!-- .blog-entry-summary -->
<div class="blog-entry-readmore clr">
<a href="https://digitaltownplanning.net/arcgis-online/">
Continue Reading<span class="screen-reader-text">ArcGIS Online (AGOL) – Observations and Reflections</span><i class=" fa fa-angle-right" aria-hidden="true" role="img"></i></a>
</div><!-- .blog-entry-readmore -->
</div><!-- .blog-entry-inner -->
</article><!-- #post-## -->
<article id="post-163" class="blog-entry clr no-featured-image item-entry large-entry post-163 post type-post status-publish format-standard hentry category-all category-community-engagement-and-participation category-wordpress-4-planners entry">
<div class="blog-entry-inner clr">
<header class="blog-entry-header clr">
<h2 class="blog-entry-title entry-title">
<a href="https://digitaltownplanning.net/wordpress-4-planners-introduction/" rel="bookmark">WordPress 4 planners – Introduction</a>
</h2><!-- .blog-entry-title -->
</header><!-- .blog-entry-header -->
<div class="blog-entry-summary clr" itemprop="text">
<p>
Why you need it? You want to record procedures, you need multiple people to access one source, you are struggling with version control with your current sources, you need to… </p>
</div><!-- .blog-entry-summary -->
<div class="blog-entry-readmore clr">
<a href="https://digitaltownplanning.net/wordpress-4-planners-introduction/">
Continue Reading<span class="screen-reader-text">WordPress 4 planners – Introduction</span><i class=" fa fa-angle-right" aria-hidden="true" role="img"></i></a>
</div><!-- .blog-entry-readmore -->
</div><!-- .blog-entry-inner -->
</article><!-- #post-## -->
<article id="post-140" class="blog-entry clr no-featured-image item-entry large-entry post-140 post type-post status-publish format-standard hentry category-general category-specialist-knowledge-and-planning-theory entry">
<div class="blog-entry-inner clr">
<header class="blog-entry-header clr">
<h2 class="blog-entry-title entry-title">
<a href="https://digitaltownplanning.net/planning-links/" rel="bookmark">Planning Links</a>
</h2><!-- .blog-entry-title -->
</header><!-- .blog-entry-header -->
<div class="blog-entry-summary clr" itemprop="text">
<p>
City of Edinburgh Council Blog Lichefields Planning Matters Blog Dentons UK Planning Law Blog Martin Goodall's Planning Law Blog #planoraks Sam Stafford's Blog Decisions Decisions Decisions Progressing Planning Planning Democracy </p>
</div><!-- .blog-entry-summary -->
<div class="blog-entry-readmore clr">
<a href="https://digitaltownplanning.net/planning-links/">
Continue Reading<span class="screen-reader-text">Planning Links</span><i class=" fa fa-angle-right" aria-hidden="true" role="img"></i></a>
</div><!-- .blog-entry-readmore -->
</div><!-- .blog-entry-inner -->
</article><!-- #post-## -->
<article id="post-138" class="blog-entry clr no-featured-image item-entry large-entry post-138 post type-post status-publish format-standard hentry category-all category-public-open-mapping-sites category-spatial-planning entry">
<div class="blog-entry-inner clr">
<header class="blog-entry-header clr">
<h2 class="blog-entry-title entry-title">
<a href="https://digitaltownplanning.net/mapping-portals-map-constraints/" rel="bookmark">Mapping Portals & Map Constraints</a>
</h2><!-- .blog-entry-title -->
</header><!-- .blog-entry-header -->
<div class="blog-entry-summary clr" itemprop="text">
<p>
Historical Environment Scotland Map Portal – Listed building / Conservation Areas / Scheduled Ancient Monuments Coal Authority Interactive Map Viewer – Coal Mining Risk Assessment High Risk Areas Sites of Special Scientific… </p>
</div><!-- .blog-entry-summary -->
<div class="blog-entry-readmore clr">
<a href="https://digitaltownplanning.net/mapping-portals-map-constraints/">
Continue Reading<span class="screen-reader-text">Mapping Portals & Map Constraints</span><i class=" fa fa-angle-right" aria-hidden="true" role="img"></i></a>
</div><!-- .blog-entry-readmore -->
</div><!-- .blog-entry-inner -->
</article><!-- #post-## -->
<article id="post-136" class="blog-entry clr no-featured-image item-entry large-entry post-136 post type-post status-publish format-standard hentry category-all category-postgres4planners entry">
<div class="blog-entry-inner clr">
<header class="blog-entry-header clr">
<h2 class="blog-entry-title entry-title">
<a href="https://digitaltownplanning.net/postgres-dba-basics-introduction/" rel="bookmark">Postgres 4 Planners – Basics of Database Administration</a>
</h2><!-- .blog-entry-title -->
</header><!-- .blog-entry-header -->
<div class="blog-entry-summary clr" itemprop="text">
<p>
A lot of organisations don’t realise this but nearly all simple datasets with more than 10 records with 10 distinct attributes which need to be regularly edited by one or… </p>
</div><!-- .blog-entry-summary -->
<div class="blog-entry-readmore clr">
<a href="https://digitaltownplanning.net/postgres-dba-basics-introduction/">
Continue Reading<span class="screen-reader-text">Postgres 4 Planners – Basics of Database Administration</span><i class=" fa fa-angle-right" aria-hidden="true" role="img"></i></a>
</div><!-- .blog-entry-readmore -->
</div><!-- .blog-entry-inner -->
</article><!-- #post-## -->
<article id="post-132" class="blog-entry clr no-featured-image item-entry large-entry post-132 post type-post status-publish format-standard hentry category-all category-postgres4planners entry">
<div class="blog-entry-inner clr">
<header class="blog-entry-header clr">
<h2 class="blog-entry-title entry-title">
<a href="https://digitaltownplanning.net/postgresql-immutable-identify-maximum-latest-minimum-earliest/" rel="bookmark">Postgres 4 Planners – Slow Changing Dimension</a>
</h2><!-- .blog-entry-title -->
</header><!-- .blog-entry-header -->
<div class="blog-entry-summary clr" itemprop="text">
<p>
Immutable Identification of Maximum/Latest Minimum/Earliest As you gain experience with SQL and database queries, their power becomes increasingly evident. However, it's important to understand that there are both optimal and… </p>
</div><!-- .blog-entry-summary -->
<div class="blog-entry-readmore clr">
<a href="https://digitaltownplanning.net/postgresql-immutable-identify-maximum-latest-minimum-earliest/">
Continue Reading<span class="screen-reader-text">Postgres 4 Planners – Slow Changing Dimension</span><i class=" fa fa-angle-right" aria-hidden="true" role="img"></i></a>
</div><!-- .blog-entry-readmore -->
</div><!-- .blog-entry-inner -->
</article><!-- #post-## -->
<article id="post-129" class="blog-entry clr no-featured-image item-entry large-entry post-129 post type-post status-publish format-standard hentry category-all category-postgres4planners entry">
<div class="blog-entry-inner clr">
<header class="blog-entry-header clr">
<h2 class="blog-entry-title entry-title">
<a href="https://digitaltownplanning.net/postgres-install-psql-without-postgresql/" rel="bookmark">Postgres 4 Planners – Install psql without PostgreSQL</a>
</h2><!-- .blog-entry-title -->
</header><!-- .blog-entry-header -->
<div class="blog-entry-summary clr" itemprop="text">
<p>
This is a slightly more advanced topic looking at something called psql which is a command line tool which you will want to do if you are doing basic database… </p>
</div><!-- .blog-entry-summary -->
<div class="blog-entry-readmore clr">
<a href="https://digitaltownplanning.net/postgres-install-psql-without-postgresql/">
Continue Reading<span class="screen-reader-text">Postgres 4 Planners – Install psql without PostgreSQL</span><i class=" fa fa-angle-right" aria-hidden="true" role="img"></i></a>
</div><!-- .blog-entry-readmore -->
</div><!-- .blog-entry-inner -->
</article><!-- #post-## -->
<article id="post-14" class="blog-entry clr no-featured-image item-entry large-entry post-14 post type-post status-publish format-standard hentry category-all category-reflection-and-review entry">
<div class="blog-entry-inner clr">
<header class="blog-entry-header clr">
<h2 class="blog-entry-title entry-title">
<a href="https://digitaltownplanning.net/test-post/" rel="bookmark">Introduction</a>
</h2><!-- .blog-entry-title -->
</header><!-- .blog-entry-header -->
<div class="blog-entry-summary clr" itemprop="text">
<p>
A website documenting my interest in urban planning and digital tools. More generally I have been investigating digital tools for ten years on cloudydatablog.net . That site was general and… </p>
</div><!-- .blog-entry-summary -->
<div class="blog-entry-readmore clr">
<a href="https://digitaltownplanning.net/test-post/">
Continue Reading<span class="screen-reader-text">Introduction</span><i class=" fa fa-angle-right" aria-hidden="true" role="img"></i></a>
</div><!-- .blog-entry-readmore -->
</div><!-- .blog-entry-inner -->
</article><!-- #post-## -->
<article id="post-77" class="blog-entry clr no-featured-image item-entry large-entry post-77 post type-post status-publish format-standard hentry category-all category-developer-contributions category-economics-in-planning category-identifying-and-analysing-issues category-postgres4planners entry">
<div class="blog-entry-inner clr">
<header class="blog-entry-header clr">
<h2 class="blog-entry-title entry-title">
<a href="https://digitaltownplanning.net/section-75-and-section-106-flexible-database-structure-for-accurate-policy-record-maintenance/" rel="bookmark">Postgres 4 Planners – Developer Contributions – Flexible Database Structure for accurate Policy Record maintenance</a>
</h2><!-- .blog-entry-title -->
</header><!-- .blog-entry-header -->
<div class="blog-entry-summary clr" itemprop="text">
<p>
This is my attempt at creating a Postgres database schema that can be used by any authority or planning agency to record all development contribution policies. It is more likely… </p>
</div><!-- .blog-entry-summary -->
<div class="blog-entry-readmore clr">
<a href="https://digitaltownplanning.net/section-75-and-section-106-flexible-database-structure-for-accurate-policy-record-maintenance/">
Continue Reading<span class="screen-reader-text">Postgres 4 Planners – Developer Contributions – Flexible Database Structure for accurate Policy Record maintenance</span><i class=" fa fa-angle-right" aria-hidden="true" role="img"></i></a>
</div><!-- .blog-entry-readmore -->
</div><!-- .blog-entry-inner -->
</article><!-- #post-## -->
</div><!-- #blog-entries -->
<div class="scroller-status"><div class="loader-ellips infinite-scroll-request"><span class="loader-ellips__dot"></span><span class="loader-ellips__dot"></span><span class="loader-ellips__dot"></span><span class="loader-ellips__dot"></span></div><p class="scroller-status__message infinite-scroll-last">End of content</p><p class="scroller-status__message infinite-scroll-error">No more pages to load</p></div><div class="infinite-scroll-nav clr"><div class="alignleft newer-posts"></div><div class="alignright older-posts"></div></div>
</div><!-- #content -->
</div><!-- #primary -->
<aside id="right-sidebar" class="sidebar-container widget-area sidebar-primary" itemscope="itemscope" itemtype="https://schema.org/WPSideBar" role="complementary" aria-label="Primary Sidebar">
<div id="right-sidebar-inner" class="clr">
</div><!-- #sidebar-inner -->
</aside><!-- #right-sidebar -->
</div><!-- #content-wrap -->
</main><!-- #main -->
<footer id="footer" class="site-footer" itemscope="itemscope" itemtype="https://schema.org/WPFooter" role="contentinfo">
<div id="footer-inner" class="clr">
<div id="footer-widgets" class="oceanwp-row clr">
<div class="footer-widgets-inner container">
<div class="footer-box span_1_of_4 col col-1">
</div><!-- .footer-one-box -->
<div class="footer-box span_1_of_4 col col-2">
</div><!-- .footer-one-box -->
<div class="footer-box span_1_of_4 col col-3 ">
</div><!-- .footer-one-box -->
<div class="footer-box span_1_of_4 col col-4">
</div><!-- .footer-box -->
</div><!-- .container -->
</div><!-- #footer-widgets -->
<div id="footer-bottom" class="clr no-footer-nav">
<div id="footer-bottom-inner" class="container clr">
<div id="copyright" class="clr" role="contentinfo">
digitaltownplanning.net ©2020-2024 </div><!-- #copyright -->
</div><!-- #footer-bottom-inner -->
</div><!-- #footer-bottom -->
</div><!-- #footer-inner -->
</footer><!-- #footer -->
</div><!-- #wrap -->
</div><!-- #outer-wrap -->
<a aria-label="Scroll to the top of the page" href="#" id="scroll-top" class="scroll-top-right"><i class=" fa fa-angle-up" aria-hidden="true" role="img"></i></a>
<script src="https://digitaltownplanning.net/wp-includes/js/imagesloaded.min.js?ver=5.0.0" id="imagesloaded-js"></script>
<script id="oceanwp-main-js-extra">
var oceanwpLocalize = {"nonce":"e1b215d4b9","isRTL":"","menuSearchStyle":"drop_down","mobileMenuSearchStyle":"disabled","sidrSource":null,"sidrDisplace":"1","sidrSide":"left","sidrDropdownTarget":"link","verticalHeaderTarget":"link","customScrollOffset":"0","customSelects":".woocommerce-ordering .orderby, #dropdown_product_cat, .widget_categories select, .widget_archive select, .single-product .variations_form .variations select"};
</script>
<script src="https://digitaltownplanning.net/wp-content/themes/oceanwp/assets/js/theme.min.js?ver=4.0.3" id="oceanwp-main-js"></script>
<script src="https://digitaltownplanning.net/wp-content/themes/oceanwp/assets/js/drop-down-mobile-menu.min.js?ver=4.0.3" id="oceanwp-drop-down-mobile-menu-js"></script>
<script src="https://digitaltownplanning.net/wp-content/themes/oceanwp/assets/js/drop-down-search.min.js?ver=4.0.3" id="oceanwp-drop-down-search-js"></script>
<script src="https://digitaltownplanning.net/wp-content/themes/oceanwp/assets/js/vendors/magnific-popup.min.js?ver=4.0.3" id="ow-magnific-popup-js"></script>
<script src="https://digitaltownplanning.net/wp-content/themes/oceanwp/assets/js/ow-lightbox.min.js?ver=4.0.3" id="oceanwp-lightbox-js"></script>
<script src="https://digitaltownplanning.net/wp-content/themes/oceanwp/assets/js/vendors/flickity.pkgd.min.js?ver=4.0.3" id="ow-flickity-js"></script>
<script src="https://digitaltownplanning.net/wp-content/themes/oceanwp/assets/js/ow-slider.min.js?ver=4.0.3" id="oceanwp-slider-js"></script>
<script src="https://digitaltownplanning.net/wp-content/themes/oceanwp/assets/js/scroll-effect.min.js?ver=4.0.3" id="oceanwp-scroll-effect-js"></script>
<script src="https://digitaltownplanning.net/wp-content/themes/oceanwp/assets/js/scroll-top.min.js?ver=4.0.3" id="oceanwp-scroll-top-js"></script>
<script src="https://digitaltownplanning.net/wp-content/themes/oceanwp/assets/js/select.min.js?ver=4.0.3" id="oceanwp-select-js"></script>
<script src="https://digitaltownplanning.net/wp-content/themes/oceanwp/assets/js/ow-infinite-scroll.min.js?ver=4.0.3" id="oceanwp-infinite-scroll-js"></script>
</body></html>