CINXE.COM

maps | code.flickr.com

<!DOCTYPE html> <!--[if IE 6]> <html id="ie6" lang="en-US"> <![endif]--> <!--[if IE 7]> <html id="ie7" lang="en-US"> <![endif]--> <!--[if IE 8]> <html id="ie8" lang="en-US"> <![endif]--> <!--[if !(IE 6) & !(IE 7) & !(IE 8)]><!--> <html lang="en-US"> <!--<![endif]--> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width" /> <title> maps | code.flickr.com </title> <link rel="profile" href="https://gmpg.org/xfn/11" /> <link rel="stylesheet" type="text/css" media="all" href="https://code.flickr.net/wp-content/themes/flickr-code/style.css?ver=20240716" /> <link rel="pingback" href="https://code.flickr.net/xmlrpc.php"> <!--[if lt IE 9]> <script src="https://code.flickr.net/wp-content/themes/twentyeleven/js/html5.js?ver=3.7.0" type="text/javascript"></script> <![endif]--> <meta name='robots' content='max-image-preview:large' /> <style>img:is([sizes="auto" i], [sizes^="auto," i]) { contain-intrinsic-size: 3000px 1500px }</style> <link rel='dns-prefetch' href='//stats.wp.com' /> <link rel="alternate" type="application/rss+xml" title="code.flickr.com &raquo; Feed" href="https://code.flickr.net/feed/" /> <link rel="alternate" type="application/rss+xml" title="code.flickr.com &raquo; Comments Feed" href="https://code.flickr.net/comments/feed/" /> <link rel="alternate" type="application/rss+xml" title="code.flickr.com &raquo; maps Tag Feed" href="https://code.flickr.net/tag/maps/feed/" /> <script type="text/javascript"> /* <![CDATA[ */ 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:\/\/code.flickr.net\/wp-includes\/js\/wp-emoji-release.min.js?ver=6.7.2"}}; /*! 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='all-css-2' href='https://code.flickr.net/wp-includes/css/dist/block-library/style.min.css?m=1739294329g' type='text/css' 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> <link rel='stylesheet' id='all-css-6' href='https://code.flickr.net/_static/??-eJzTLy/QzcxLzilNSS3WzyrWz01NyUxMzUnNTc0rQeEU5CRWphbp5qSmJyZX6uVm5uklFxfr6OPTDpRD5sM02efaGpobWxpZmhgbGwAAROEu5A==' type='text/css' media='all' /> <style id='jetpack-sharing-buttons-style-inline-css'> .jetpack-sharing-buttons__services-list{display:flex;flex-direction:row;flex-wrap:wrap;gap:0;list-style-type:none;margin:5px;padding:0}.jetpack-sharing-buttons__services-list.has-small-icon-size{font-size:12px}.jetpack-sharing-buttons__services-list.has-normal-icon-size{font-size:16px}.jetpack-sharing-buttons__services-list.has-large-icon-size{font-size:24px}.jetpack-sharing-buttons__services-list.has-huge-icon-size{font-size:36px}@media print{.jetpack-sharing-buttons__services-list{display:none!important}}.editor-styles-wrapper .wp-block-jetpack-sharing-buttons{gap:0;padding-inline-start:0}ul.jetpack-sharing-buttons__services-list.has-background{padding:1.25em 2.375em} </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: #000;--wp--preset--color--cyan-bluish-gray: #abb8c3;--wp--preset--color--white: #fff;--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--color--blue: #1982d1;--wp--preset--color--dark-gray: #373737;--wp--preset--color--medium-gray: #666;--wp--preset--color--light-gray: #e2e2e2;--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='all-css-12' href='https://code.flickr.net/_static/??-eJzTLy/QTc7PK0nNK9EvyUjNTS3WLykHcipTc1LLUvP0i0sqc1L1kouLdfQxVablZCZnFwFFU1LxK0QxMiknPzm7GKTUPtfW0NzEwMTQ2MLSEABabDMX' type='text/css' media='all' /> <link rel="https://api.w.org/" href="https://code.flickr.net/wp-json/" /><link rel="alternate" title="JSON" type="application/json" href="https://code.flickr.net/wp-json/wp/v2/tags/1133" /><link rel="EditURI" type="application/rsd+xml" title="RSD" href="https://code.flickr.net/xmlrpc.php?rsd" /> <meta name="generator" content="WordPress 6.7.2" /> <style>img#wpstats{display:none}</style> <style type="text/css" id="twentyeleven-header-css"> #site-title, #site-description { position: absolute; clip: rect(1px 1px 1px 1px); /* IE6, IE7 */ clip: rect(1px, 1px, 1px, 1px); } </style> <style type="text/css" id="wp-custom-css"> body { background: #fff; } body,input,textarea { font-family: Arial, sans-serif; color: #404040; } #page { margin: 1em auto; max-width: 1000px; } a:link { text-decoration: none; color: #0063dc; } a:visited { text-decoration: none; color: #0063dc; } a:hover { text-decoration: none; background: #0063dc; color: #fff; } a:active { text-decoration: none; background-color: #0259c4; color: #fff; } #branding { border: none; } #branding .only-search #s,#branding .only-search #s:focus { width: 280px; background-color: transparent; border-color: #ddd; } #branding #searchform { right: 0; } nav#access { background: none; box-shadow: none; -webkit-box-shadow: none; -moz-box-shadow: none; margin: 0; } nav#access a { font-weight: bold; margin: 11px 28px 0 0; padding: 0; line-height: 21px; } nav#access a:link,nav#access a:visited { text-decoration: none; color: #888; } nav#access a:hover,nav#access li:hover > a,nav#access a:focus,nav#access a:active { text-decoration: none; color: #0063dc; background: none; } #branding .only-search + nav#access div { padding-right: 300px; } nav#access div,nav#access ul { margin: 0; } @media screen and (max-width: 768px) { #branding .only-search + nav#access div { padding-right: 0; } #branding #searchform { display: none; position: static; text-align: center; } #branding .with-image #searchform { max-width: 100%; } #branding .only-search #s,#branding .only-search #s:focus { width: 85%; float: none; } nav#access { margin: 0 0 0 5%; } } @media screen and (max-width: 480px) { nav#access { display: none; } } #content { margin: 0 20% 0 0; width: 80%; } #content .comments-link { display: none; } @media screen and (max-width: 800px) { #main { padding-top: 0; overflow: hidden; } #branding { padding-bottom: 0; } #main #content { margin: 0; } .entry-title,.entry-header .entry-meta { padding-right: 0; } } .singular #content,.left-sidebar.singular #content { margin: 0 10%; width: 80%; } .singular .entry-header,.singular .entry-content,.singular footer.entry-meta,.singular #comments-title { width: 100%; } .hentry,.no-results { border-bottom: 1px dotted #dadada; } .singular .hentry { padding-top: 1em; } .entry-title { padding-bottom: 0; } .entry-title,.entry-title a { font-size: 28px; color: #000; } .entry-title a:hover,.entry-title a:focus,.entry-title a:active { color: #0063dc; background-color: transparent; } @media screen and (max-width: 650px) { .singular .entry-title { padding-top: 0; line-height: 42px; } } .singular .entry-content { margin-top: 0; } #jp-post-flair { margin-top: 3em; } footer.entry-meta .cat-links,footer.entry-meta .sep,footer.entry-meta .tag-links { display: none; } .singular .entry-meta .edit-link a { position: static; } .singular footer.entry-meta { margin-top: 2em; } #comments { display: none; } #site-generator { background: transparent; border-top: none; padding: 0 .5em; } img#wpstats { position: absolute !important; clip: rect(1px 1px 1px 1px); } #secondary { margin-right: 0; width: 16%; text-align: right; } #secondary #s { display: none; } #secondary aside ul { list-style: none; } #secondary .widget-title { color: #999; font-size: 12px; letter-spacing: auto; text-transform: none; } .widget a { font-weight: normal; } .widget a:hover,.widget a:focus,.widget a:active { text-decoration: none; } #everything-after-this-line-is-a-post-level-style---yay-for-wordpress-stripping-comments-from-css { color: #000; } .entry-content p { margin-bottom: 1.3em; } .entry-content p.note { padding: 11px; background-color: #fffdeb; border-bottom: 1px solid #fff9c2; } .entry-content p.warning { padding: 11px; background-color: #fdf8f8; border-bottom: 1px solid #f7dedd; } .entry-content .aside { margin-bottom: 1.3em; padding: 11px; background-color: #f8fdf8; border-bottom: 1px solid #def6df; } .entry-content .aside p:last-child { margin-bottom: 0; } .entry-content h2,.entry-content h3,.entry-content h4 { font-weight: bold; color: #000; text-transform: none; } .entry-content h2 { font-size: 22px; } .entry-content h3 { font-size: 16px; letter-spacing: 0; line-height: 1.3em; margin-bottom: 1em; } .entry-content h4 { font-size: 13px; line-height: 1.4em; margin-bottom: 0; } .entry-content p.flickr-photo,.entry-content p.flickr-photo a,.entry-content p.figure { color: #999; font-size: 14px; } .entry-content p.flickr-photo a:hover,.entry-content p.flickr-photo a:active { color: #0063dc; background-color: transparent; } .entry-content p.flickr-photo .caption { display: block; padding-left: 22px; background: url('http://farm4.staticflickr.com/3329/favicons/72157601614001242_7730.png') no-repeat 0 3px; } .entry-content img { max-width: 100%; height: auto; } .undersized-image-container { text-align: center; } .entry-content code { color: #000; font-family: "Consolas", "Bitstream Vera Sans Mono", "Courier New", Courier, monospace; font-size: 14px; background-color: #F6FcFF; border-bottom: 1px solid #ebf5ff; } .entry-content ul { list-style: disc; } .entry-content ol ol { list-style: lower-alpha; } .entry-content table caption { font-size: 13px; font-weight: bold; color: #000; } .entry-content table tr.odd td,.entry-content table tr.odd th { background-color: #f8f8f8; } .entry-content table td,.entry-content table th { padding: 3px 10px; line-height: 1.4em; } .entry-content table tr th { color: #000; font-weight: bold; text-transform: none; font-size: 13px; letter-spacing: 0; border-top: 1px solid #ddd; } .entry-content table tr td { font-size: 14px; } .entry-content table.data tr td,.entry-content table.data thead tr th { text-align: right; } .entry-content table.tight td,.entry-content table.tight th { padding: 3px 6px; } .entry-content table.tight th { font-size: 12px; } .entry-content table.tight td { font-size: 13px; } @media screen and (max-width: 650px) { .entry-content table td,.entry-content table th { padding: 3px 5px; } .entry-content table tr th { font-size: 12px; } .entry-content table tr td { font-size: 13px; } .entry-content table.tight td,.entry-content table.tight th { padding: 3px 4px; } .entry-content table.tight th { font-size: 11px; } .entry-content table.tight td { font-size: 12px; } } .entry-content blockquote { font-family: inherit; font-style: normal; font-weight: normal; margin: 0 2em 1.3em; padding: 1em; background: #F9F9F9; border-bottom: 1px solid #ececec; } .entry-content blockquote p.source { margin-bottom: 0; } .entry-content .hiring-banner { position: relative; background: #ffebf5; padding: 11px 11px 11px 88px; border-bottom: 1px solid #ffc5e2; margin: 2em 0; } .entry-content .hiring-banner p { margin-bottom: 0; } .entry-content .hiring-banner .group-photo { position: absolute; left: -57px; top: -5px; width: 120px; padding: 6px; background: #fff; -webkit-box-shadow: 1px 1px 8px rgba(50,50,50,0.8); -moz-box-shadow: 1px 1px 8px rgba(50,50,50,0.8); box-shadow: 1px 1px 8px rgba(50,50,50,0.8); -webkit-transform: rotate(-11deg); -moz-transform: rotate(-11deg); -o-transform: rotate(-11deg); -ms-transform: rotate(-11deg); } .entry-content .hiring-banner .group-photo img { display: block; margin: 0; max-width: 100%; } @media screen and (max-width: 800px) { .entry-content .hiring-banner { padding-left: 11px; } .entry-content .hiring-banner .group-photo { display: none; } } #everything-after-this-line-is-for-the-syntaxhighlighter---all-rules-require-important { color: #000; } #main .syntaxhighlighter .lines { border-bottom: 1px solid #ebf5ff !important; } #main .syntaxhighlighter,#main .syntaxhighlighter div,#main .syntaxhighlighter code,#main .syntaxhighlighter table,#main .syntaxhighlighter table td,#main .syntaxhighlighter table tr,#main .syntaxhighlighter table tbody { font-size: 14px !important; } #main .syntaxhighlighter .line.alt1,#main .syntaxhighlighter .line.alt2 { background-color: #fafdff !important; } #main .syntaxhighlighter .line.highlighted { background-color: #fffbd6 !important; } #main .syntaxhighlighter .plain,#main .syntaxhighlighter .plain a { color: #000 !important; } #main .syntaxhighlighter .comments,#main .syntaxhighlighter .comments a { color: #999 !important; } #main .syntaxhighlighter .string,#main .syntaxhighlighter .string a { color: #ff52a9 !important; } #main .syntaxhighlighter .keyword { color: #0034fe !important; font-weight: normal !important; } #main .syntaxhighlighter .preprocessor { color: #417ba9 !important; } #main .syntaxhighlighter .variable { color: #b130c0 !important; } #main .syntaxhighlighter .value { color: #6b77f7 !important; } #main .syntaxhighlighter .functions { color: #002ad5 !important; } #main .syntaxhighlighter .constants { color: #d11e08 !important; } #main .syntaxhighlighter .script { background-color: yellow !important; } #main .syntaxhighlighter .color1,#main .syntaxhighlighter .color1 a { color: #808080 !important; } #main .syntaxhighlighter .color2,#main .syntaxhighlighter .color2 a { color: #ff1493 !important; } #main .syntaxhighlighter .color3,#main .syntaxhighlighter .color3 a { color: red !important; } a[data-flickr-embed] img { width: 800px; } </style> </head> <body class="archive tag tag-maps tag-1133 custom-background wp-embed-responsive jps-theme-flickr-code two-column right-sidebar"> <div class="skip-link"><a class="assistive-text" href="#content">Skip to primary content</a></div><div class="skip-link"><a class="assistive-text" href="#secondary">Skip to secondary content</a></div><div id="page" class="hfeed"> <header id="branding"> <hgroup> <h1 id="site-title"><span><a href="https://code.flickr.net/" rel="home">code.flickr.com</a></span></h1> <h2 id="site-description"></h2> </hgroup> <a href="https://code.flickr.net/"> <img src="https://wp.flickr.net/wp-content/uploads/sites/3/2012/09/code-flickr-com-drawn-header-grey-large.png" width="1000" height="157" alt="code.flickr.com" decoding="async" fetchpriority="high" /> </a> <div class="only-search with-image"> <form method="get" id="searchform" action="https://code.flickr.net/"> <label for="s" class="assistive-text">Search</label> <input type="text" class="field" name="s" id="s" placeholder="Search" /> <input type="submit" class="submit" name="submit" id="searchsubmit" value="Search" /> </form> </div> <nav id="access"> <h3 class="assistive-text">Main menu</h3> <div class="menu-menu-container"><ul id="menu-menu" class="menu"><li id="menu-item-2084" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-2084"><a href="http://www.flickr.com/">Flickr</a></li> <li id="menu-item-2085" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-2085"><a href="http://blog.flickr.net/">Flickr Blog</a></li> <li id="menu-item-2250" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-2250"><a href="http://twitter.com/flickr">@flickr</a></li> <li id="menu-item-2086" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-2086"><a href="http://twitter.com/flickrapi">@flickrapi</a></li> <li id="menu-item-2087" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-2087"><a href="https://www.flickr.com/services/developer/">Developer Guidelines</a></li> <li id="menu-item-2088" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-2088"><a href="http://www.flickr.com/services/api/">API</a></li> <li id="menu-item-2089" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-2089"><a href="http://www.flickr.com/jobs/">Jobs</a></li> </ul></div> </nav><!-- #access --> </header><!-- #branding --> <div id="main"> <section id="primary"> <div id="content" role="main"> <header class="page-header"> <h1 class="page-title"> Tag Archives: <span>maps</span> </h1> </header> <article id="post-2070" class="post-2070 post type-post status-publish format-standard hentry category-uncategorized tag-maps"> <header class="entry-header"> <h1 class="entry-title"><a href="https://code.flickr.net/2012/07/11/designing-an-osm-map-style/" rel="bookmark">Designing an OSM Map Style</a></h1> <div class="entry-meta"> <span class="sep">Posted on </span><a href="https://code.flickr.net/2012/07/11/designing-an-osm-map-style/" title="9:35 pm" rel="bookmark"><time class="entry-date" datetime="2012-07-11T21:35:08-07:00">July 11, 2012</time></a><span class="by-author"> <span class="sep"> by </span> <span class="author vcard"><a class="url fn n" href="https://code.flickr.net/author/rharmes/" title="View all posts by Ross Harmes" rel="author">Ross Harmes</a></span></span> </div><!-- .entry-meta --> </header><!-- .entry-header --> <div class="entry-content"> <p>With the recent <a href="/blog/2012/06/29/the-great-map-update-of-2012/">change to our map system</a>, we introduced a new map style for our <a href="http://www.openstreetmap.org/">OSM</a> tiles. Since 2008, we鈥檝e used the default OSM styles, which produces map tiles like this:</p> <p class="undersized-image-container"> <img decoding="async" src="http://farm9.staticflickr.com/8159/7537002708_6db9e51663_o.png" width="526" height="396" alt=""> </p> <p>This style is extremely good at putting a lot of information in front of you. OSM doesn鈥檛 know your intended purpose for the maps (navigation, orientation, exploration, city planning, disaster response, etc.), so they err on the side of lots of information. This is good, but with the introduction of <a href="http://mapbox.com/tilemill/">TileMill</a>, non-professional cartographers (like myself) can now easily change map styles to better suit our needs. Using TileMill, we decided to take a crack at designing a map that is better suited to Flickr.</p> <p>On Flickr, we use maps for a very specific purpose: to provide context for a photo. This means there are a lot of map features that we can leave out entirely. We can choose to hide features that are primarily used for navigation (ferry and train routes, bus stops) or for demarcation (city and county boundaries). Roads are useful as orientation tools, but certain road features (like exit numbers on highways) aren鈥檛 needed. In the end, we can reduce the data that the map shows to much smaller and more useful subset:</p> <p class="undersized-image-container"> <img decoding="async" src="http://farm9.staticflickr.com/8281/7537002620_9ee5d84281_o.png" width="526" height="396" alt=""> </p> <p>This is the style provided by MapBox鈥檚 excellent <a href="https://github.com/mapbox/osm-bright">OSM Bright</a>. As a starting point, this gets us a long way towards our goal of an unobtrusive yet still useful map. We made a few changes to OSM Bright and released them on GitHub as our <a href="https://github.com/flickr/Pandonia">Pandonia</a> map style. Here are a few examples of the changes we made:</p> <ul> <li>Toned down the road, land, and water colors, to allow greater contrast with the pink and blue dots that we use as markers</li> <li>Reduced the density of road and highway names, as well as city, town and state names</li> <li>Removed underground tram and rail line</li> <li>Removed land use overlays for residential, commercial, and industrial zones, as well as parking lots</li> <li>Removed state park overlays that overlapped the water</li> </ul> <p>This is how it looks:</p> <p class="undersized-image-container"> <img loading="lazy" decoding="async" src="http://farm9.staticflickr.com/8002/7537002542_5cb7151bc0_o.png" width="526" height="396" alt=""> </p> <p>We tried a lot of different color combinations on the road to this style. Here is an animation of the different styles we tried, starting with OSM Bright.</p> <p class="undersized-image-container"> <img loading="lazy" decoding="async" src="http://farm8.staticflickr.com/7116/7537992486_d3b6c66d83_o.gif" width="500" height="471" alt="" style="margin-left:13px;"> </p> <p>Here it is zoomed in a bit more:</p> <p class="undersized-image-container"> <img loading="lazy" decoding="async" src="http://farm9.staticflickr.com/8167/7537992394_3db2018af5_o.gif" width="500" height="721" alt="" style="margin-left:13px;"> </p> <p>Over the next couple of weeks, we鈥檒l be rolling out this style to all of the places where we use OSM tiles.</p> <p>These maps are still a work in progress. The world is a big place, and creating a unified style that works well for every single location is challenging. If you notice problems with our new map styles, <a href="http://www.flickr.com/help/forum/en-us/72157630333262094/">please let us know</a>!</p> </div><!-- .entry-content --> <footer class="entry-meta"> <span class="cat-links"> <span class="entry-utility-prep entry-utility-prep-cat-links">Posted in</span> <a href="https://code.flickr.net/category/uncategorized/" rel="category tag">Uncategorized</a> </span> <span class="sep"> | </span> <span class="tag-links"> <span class="entry-utility-prep entry-utility-prep-tag-links">Tagged</span> <a href="https://code.flickr.net/tag/maps/" rel="tag">maps</a> </span> </footer><!-- .entry-meta --> </article><!-- #post-2070 --> <article id="post-2029" class="post-2029 post type-post status-publish format-standard hentry category-uncategorized tag-cloudmade tag-geo tag-geotagging tag-leaflet tag-mapbox tag-maps tag-openstreetmaps tag-osm tag-pandonia"> <header class="entry-header"> <h1 class="entry-title"><a href="https://code.flickr.net/2012/06/29/the-great-map-update-of-2012/" rel="bookmark">The great map update of 2012</a></h1> <div class="entry-meta"> <span class="sep">Posted on </span><a href="https://code.flickr.net/2012/06/29/the-great-map-update-of-2012/" title="12:11 am" rel="bookmark"><time class="entry-date" datetime="2012-06-29T00:11:35-07:00">June 29, 2012</time></a><span class="by-author"> <span class="sep"> by </span> <span class="author vcard"><a class="url fn n" href="https://code.flickr.net/author/standardpixel/" title="View all posts by Eric Gelinas" rel="author">Eric Gelinas</a></span></span> </div><!-- .entry-meta --> </header><!-- .entry-header --> <div class="entry-content"> <p>Today we are announcing an update to the map tiles which we use site wide. A very high majority of the globe will be represented by Nokia鈥檚 clever looking tiles. </p> <p class="undersized-image-container"> <img decoding="async" src="http://farm8.staticflickr.com/7257/7463259956_c87ec24638_o.png" alt="Nokia map tile" /> </p> <p>We are not stopping there. As some of you may know, Flickr has been using Open Street Maps (OSM) data to make map tiles for some places. <a href="http://blog.flickr.net/en/2008/08/12/around-the-world-and-back-again/">We started with Beijing</a> and the list has grown to twenty one additional places:</p> <table border="0"> <tr> <td style="padding:20px;vertical-align:top;"> Mogadishu<br /> Cairo<br /> Algiers<br /> Kiev<br /> Tokyo<br /> Tehran </td> <td style="padding:20px;vertical-align:top;"> Hanoi<br /> Ho Chi Minh City<br /> Manila<br /> Davao<br /> Cebu<br /> Baghdad </td> <td style="padding:20px;vertical-align:top;"> Kabul<br /> Accra<br /> Hispaniola<br /> Havana<br /> Kinshasa<br /> Harare </td> <td style="padding:20px;vertical-align:top;"> Nairobi<br /> Buenos aires<br /> Santiago </td> </tr> </table> <p>It has been a while since <a href="http://code.flickr.com/blog/2009/07/22/horseyes/">we last updated</a> our OSM tiles. Since 2009, the OSM community has advanced quite a bit in the tools they provide and data quality. I went into a little detail about this in a <a href="http://www.yuiblog.com/blog/2012/02/22/video-eric-gelinas-geo/">talk I gave last year</a>. </p> <h2>Introducing Pandonia</h2> <p class="undersized-image-container"> <img decoding="async" src="http://farm9.staticflickr.com/8154/7463259904_09a82a7ddf_o.png" alt="Nokia map tile" /> </p> <p>Today we are launching <a href="http://www.flickr.com/map?&amp;fLat=-34.5652&amp;fLon=-58.4694&amp;zl=12">Buenos Aires</a> and <a href="http://www.flickr.com/map?&amp;fLat=-33.463&amp;fLon=-70.648&amp;zl=12">Santiago</a> in a new style. We will be launching more cities in this new style in the near future. They are built from more recent OSM data and they will also have an entirely new style which we call <a href="https://github.com/flickr/Pandonia">Pandonia</a>. Our new style was designed in <a href="http://mapbox.com/tilemill/">TileMill</a> from the <a href="https://github.com/mapbox/osm-bright">osm-bright</a> template, both created by the rad team at MapBox. TileMill changes the game when it comes to styling map tiles. The interface is developed to let you quickly iterate style changes to tiles and see the changes immediately. <a href="http://www.flickr.com/photos/rossharmes/">Ross Harmes</a> will be writing a more detailed account of the work he did to create the Pandonia style. We appreciate the tips and guidance from Eric Gunderson, Tom MacWright, and the rest of the team at MapBox</p> <p>We are looking forward to updating all of our OSM places with the Pandonia style in the near future and growing to more places after that&#8230; Antarctica? Null Island? The Moon? Stay tuned and see&#8230;</p> <h2>Changing our Javascript API</h2> <p>To host all of these new tiles we needed to find a flexible javascript api. <a href="http://leaflet.cloudmade.com">Cloudmade鈥檚 Leaflet</a> is a simple and open source tile serving javascript library. The events and methods map well to our previous JS API, which made upgrading simple for us. All of our existing map interfaces will stay the same with the addition of modern map tiles. They will also support touch screen devices better than ever. Leaflet鈥檚 layers mechanism will make it easier for us to blend different tile sources together seamlessly. We have a <a href="https://github.com/flickr/Leaflet">fork on GitHub</a> which we plan to contribute to as time goes on. We鈥檒l keep you posted.</p> </div><!-- .entry-content --> <footer class="entry-meta"> <span class="cat-links"> <span class="entry-utility-prep entry-utility-prep-cat-links">Posted in</span> <a href="https://code.flickr.net/category/uncategorized/" rel="category tag">Uncategorized</a> </span> <span class="sep"> | </span> <span class="tag-links"> <span class="entry-utility-prep entry-utility-prep-tag-links">Tagged</span> <a href="https://code.flickr.net/tag/cloudmade/" rel="tag">cloudmade</a>, <a href="https://code.flickr.net/tag/geo/" rel="tag">geo</a>, <a href="https://code.flickr.net/tag/geotagging/" rel="tag">geotagging</a>, <a href="https://code.flickr.net/tag/leaflet/" rel="tag">leaflet</a>, <a href="https://code.flickr.net/tag/mapbox/" rel="tag">mapbox</a>, <a href="https://code.flickr.net/tag/maps/" rel="tag">maps</a>, <a href="https://code.flickr.net/tag/openstreetmaps/" rel="tag">openstreetmaps</a>, <a href="https://code.flickr.net/tag/osm/" rel="tag">osm</a>, <a href="https://code.flickr.net/tag/pandonia/" rel="tag">pandonia</a> </span> </footer><!-- .entry-meta --> </article><!-- #post-2029 --> <article id="post-1014" class="post-1014 post type-post status-publish format-standard hentry category-uncategorized tag-community tag-geo tag-maps tag-osm"> <header class="entry-header"> <h1 class="entry-title"><a href="https://code.flickr.net/2009/07/22/horseyes/" rel="bookmark">horse=yes</a></h1> <div class="entry-meta"> <span class="sep">Posted on </span><a href="https://code.flickr.net/2009/07/22/horseyes/" title="9:22 pm" rel="bookmark"><time class="entry-date" datetime="2009-07-22T21:22:26-07:00">July 22, 2009</time></a><span class="by-author"> <span class="sep"> by </span> <span class="author vcard"><a class="url fn n" href="https://code.flickr.net/author/flickrphotography/" title="View all posts by Kay Kremerskothen" rel="author">Kay Kremerskothen</a></span></span> </div><!-- .entry-meta --> </header><!-- .entry-header --> <div class="entry-content"> <div style="margin-bottom:30px;margin-top:20px;"> <a href="http://www.flickr.com/photos/straup/3709466805/" title="a map Jason Bourne could eat cake on by straup, on Flickr"><img loading="lazy" decoding="async" src="http://farm3.static.flickr.com/2585/3709466805_5665c4751a.jpg" width="500" height="290" alt="a map Jason Bourne could eat cake on" style="border:none;padding:10px;" /></a </div> <blockquote style="margin-right:25px;margin-left:20px;margin-bottom:30px;"> <p style="font-style:italic;">Yes, I got a bit emotional at the third OpenStreetMap conference, held in the CCC, Amsterdam last weekend &#8212; mainly because this globe we are on is the only one we know &#8212; we really are mapping our universe, doing it our way. Creating the world we want to live in. I thought it worth while to say &#8220;Thanks&#8221; to some people. Being British, the feeling of being a bit foolish stopped me from being too effusive!</p> <p style="text-align:right;font-size:small;">&#8212; <a href="http://thinkwhere.wordpress.com/2009/07/15/were-making-the-world-weve-always-wanted-to-live-in-sotm09/">Tim Waters</a></p> </blockquote> <p>A couple weeks ago I had the pleasure of attending, and the privilege of speaking at, the <a href="http://www.stateofthemap.org/">State of the Map</a> conference in Amsterdam. I told the story of how we came to use <a href="http://www.openstreetmap.org/">Open Street Maps</a> (OSM), how it works on the backend and talked a little bit about what we&#8217;d like to do next: Moving beyond &#8220;bags of tiles&#8221;, a better way to keep up to date with changes to the OSM database and, for good measure, a little bit of tree-hugging at the end.</p> <div style="margin-left:35px;text-align:center;margin-bottom:30px;margin-top:20px;padding:10px;border:1px dotted #ccc; width:425px;max-width:425px;"> <object style="margin:0px" width="425" height="355"><param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=sotm-090710141740-phpapp01&#038;stripped_title=communities-of-authority" /><param name="allowFullScreen" value="true"/><param name="allowScriptAccess" value="always"/></object> </div> <p>Most of all, though, I wanted to take the opportunity to thank the OSM community. To thank them for making Flickr, the thing that we care about and work on all day, better. To thank them for proving the nay-sayers wrong.</p> <p>To say that OSM started with an audacious plan (to map the entire world by &#8220;hand&#8221; one neighbourhood and one person at a time) would be an understatement. You would have been forgiven, at the time, for laughing.</p> <p>And yet, in a few short years they are well on their way having nurtured both a community of users and an infrastructure of tools that makes it hard to ever imagine a world <i>without</i> Open Street Maps. In the U.K. alone, as <a href="http://www.slideshare.net/mukih/beyond-good-enough-spatial-data-quality-and-openstreetmap-data">Muki Haklay demonstrated</a>, they have produced a free and open dataset whose coverage and fidelity rivals those created by the <a href="http://en.wikipedia.org/wiki/Ordnance_Survey">Ordinance Survey</a> with its government funding and 250-year head start.</p> <p>That is really exciting both because of the opportunities that such a rich and comprehensive dataset provide but also because it proves what is <i>possible</i>. The Internets are still a pretty great place that way.</p> <div style="margin-bottom:30px;margin-top:20px;"> <a href="http://www.flickr.com/photos/russelldavies/3728537691/" title="mugs by russelldavies, on Flickr"><img loading="lazy" decoding="async" src="http://farm3.static.flickr.com/2594/3728537691_39b1c79c44.jpg" width="500" height="375" alt="mugs" style="border:1px dotted #ccc;padding:10px;margin-bottom:10px;" /></a><br /> </p> <div style="text-align:right;font-size:small;">photo by <a href="http://www.flickr.com/photos/russelldavies/">russelldavies</a></div> </div> <p>There were too many excellent talks to list them all, but here&#8217;s a short (ish) list that betrays some of my interests and biases:</p> <ul style="margin-left:25px;margin-right:20px;font-family:sans-serif;"> <li> <p><a href="http://www.slideshare.net/harrywood/sotm09-talk-community-smoothness">Harry Wood&#8217;s talk on tagging in OSM</a>. I actually missed this talk and after seeing the slides I am doubly disappointed. Open Street Map is not just the raw geographic data that people collect but also all the metadata that is used to describe it. OSM uses a simple tagging system for recording &#8220;<a href="http://wiki.openstreetmap.org/wiki/Mapfeatures">map features</a>&#8221; and Harry&#8217;s talk on managing the chaos, navigating the disputes and juggling the possibilities looked like it was really interesting.</p> <p><i>(The title of this post is, in fact, a gentle poke at the black sheep of the OSM tagging world. There really are map features tagged &#8220;<a href="http://quakr.blogspot.com/2007/07/state-of-openstreetmap-horseyes-again.html">horse=yes</a>&#8221; which is mostly hilarious until you remember how much has been accomplished with a framework that allows for tags like that.)</i></p> </li> <li> <p>The Sunday afternoon maps-and-history love-fest that included Frankie Roberto&#8217;s &#8220;<a href="http://www.slideshare.net/frankieroberto/mapp-history-on-open-street-map">Mapping History on Open Street Map</a>&#8220;, Tim Water&#8217;s &#8220;<a href="http://www.slideshare.net/chippy/open-historical-maps-at-state-of-the-map-sotm-2009-amsterdam">Open Historical Maps</a>&#8221; and the Dutch Nationaal Archief&#8217;s presenting &#8220;<a href="http://www.slideshare.net/kennisland/mapit1418">MapIt 1418</a>&#8220;, a project to allow users to add suggested locations for their photos in the <a href="http://www.flickr.com/photos/nationaalarchief/">Flickr Commons</a>!</p> <p><i>Tim&#8217;s been doing work for <a href="http://www.flickr.com/photos/nypl/">The New York Public Library</a>, another Flickr Commons member, and MapWarper (the code that powers the <a href="http://dev.maps.nypl.org/warper/">NYPL&#8217;s historical map rectifier</a>) is an open source project and available on <a href="http://github.com/timwaters/mapwarper/tree">GitHub</a>.</i></p> </li> <li> <p>Mikel Maron&#8217;s &#8220;<a href="http://vimeo.com/5607286">Free and Open Palestine</a>&#8221; (the slides are <a href="http://www.slideshare.net/mikel_maron/free-and-open-palestine">here</a> but you should really watch the video) which is an amazing story of collecting map data in the West Bank and Gaza.</p> <p><i>Mikel was also instrumental in creating a <a href="http://www.stateofthemap.org/2009/06/22/osi-scholarships/">scholarship program to pay the travel and lodging expenses for 15 members from the OSM community</a>, from all over the world, to attend the conference. Because he&#8217;s kind of awesome, that way.</i></p> </li> </ul> <p>But that&#8217;s just me. I&#8217;d encourage you to spend some time poking around all the other presentations that are available online:</p> <ul style="margin-left:25px;margin-right:20px;font-family:sans-serif;"> <li> <p><a href="http://www.slideshare.net/tag/sotm09">Presentations tagged &#8220;sotm09&#8221; on Slideshare.</a></p> </li> <li> <p><a href="http://vimeo.com/sotm09">Videos tagged &#8220;sotm09&#8221; on Vimeo.</a></p> </li> <li> <p><a href="http://www.flickr.com/photos/tags/sotm09">Photos tagged &#8220;sotm09&#8221; on Flickr</a></p> </li> <li> <p><a href="http://wiki.openstreetmap.org/wiki/State_Of_The_Map_2009">The complete State of the Map schedule on the OSM website</a></p> </li> </ul> <p>Despite the &#8220;bag of tiles&#8221; approach for using OSM on Flickr getting a bit old it still works so as of right here, right now:</p> <ul style="margin-left:25px;margin-right:20px;font-family:sans-serif;"> <li> <p>In <a href="http://www.flickr.com/places/vietnam/">Vietnam</a>, we&#8217;ve added OSM tiles for <a href="http://www.flickr.com/map?place_id=L.CstOiYA5_7VNSt">Ha Noi</a> and <a href="http://www.flickr.com/map?place_id=3wLzgz6YA5ns4Pn0">Ho Chi Minh City</a> <i>(see also: <a href="http://www.slideshare.net/khanhlnq/state-of-vietnam">The State of Vietnam</a>)</i>.</p> </li> <li> <p>In <a href="http://www.flickr.com/places/cuba/">Cuba</a>, we&#8217;ve added OSM tiles for <a href="http://www.flickr.com/map?place_id=5mns2QSfApT9oA">Havana</a> <i>(see also: <a href="http://www.slideshare.net/elpbatista/elpbatista-sotm09-lightning-talk">The State of Cuba</a>)</i>.</p> </li> <li> <p>In <a href="http://www.flickr.com/places/chile">Chile</a>, we&#8217;ve added OSM tiles for <a href="http://www.flickr.com/map?place_id=KFMRRQOaBZW2bNE">Santiago</a> <i>(if there was a State of Chile presentation I missed it and haven&#8217;t found any slides online so instead I&#8217;ll just link to this <a href="http://www.openstreetmap.org/user/Zambelli%20Limitada/diary/2598">lovely localized version of OSM for Chilean users</a>)</i>.</p> </li> </ul> <p>We&#8217;ve also refreshed the tiles for <a href="http://www.flickr.com/map?place_id=wpK7URqbAJnWB90W">Beijing</a> and <a href="http://www.flickr.com/map?place_id=YeHeQIybA5mpLWFM">Tehran</a> where, I&#8217;m told, the OSM community has added twice as much data since we first started showing (OSM) maps a month ago!</p> <p>If it sometimes seems like we&#8217;re doing all of this in a bit of an ad hoc fashion that&#8217;s because we (mostly) are. How and when and where are all details we need to work out going forward but, in the meantime, we have map tiles where there were none before so it can&#8217;t be all bad.</p> <p>Finally, because the actual decision to attend the conference was so last minute I did not get the memo to all presenters to include a funny picture of <a href="http://www.openstreetmap.org/user/SteveC">SteveC</a> (one of the original founders of Open Street Maps) in their slides.</p> <p>To make up for that omission, I leave you now with the one-and-only <a href="http://www.asklater.com/steve/">Steve Coast</a>.</p> <div> <a href="http://www.flickr.com/photos/95939612@N00/2095372820/" title="Steve *loves* Yahoo by Andy Hume, on Flickr"><img loading="lazy" decoding="async" src="http://farm3.static.flickr.com/2412/2095372820_84028a93bc.jpg" width="500" height="375" alt="Steve *loves* Yahoo" style="border:1px dotted #ccc;padding:10px;margin-bottom:10px;"/></a><br /> </p> <div style="text-align:right;font-size:small;">photo by <a href="http://www.flickr.com/photos/95939612@N00/">Andy Hume</a></div> </p></div> </div><!-- .entry-content --> <footer class="entry-meta"> <span class="cat-links"> <span class="entry-utility-prep entry-utility-prep-cat-links">Posted in</span> <a href="https://code.flickr.net/category/uncategorized/" rel="category tag">Uncategorized</a> </span> <span class="sep"> | </span> <span class="tag-links"> <span class="entry-utility-prep entry-utility-prep-tag-links">Tagged</span> <a href="https://code.flickr.net/tag/community/" rel="tag">community</a>, <a href="https://code.flickr.net/tag/geo/" rel="tag">geo</a>, <a href="https://code.flickr.net/tag/maps/" rel="tag">maps</a>, <a href="https://code.flickr.net/tag/osm/" rel="tag">osm</a> </span> </footer><!-- .entry-meta --> </article><!-- #post-1014 --> <article id="post-802" class="post-802 post type-post status-publish format-standard hentry category-uncategorized tag-clustr tag-ec2 tag-geotags tag-maps tag-shapefiles"> <header class="entry-header"> <h1 class="entry-title"><a href="https://code.flickr.net/2009/04/07/the-only-question-left-is/" rel="bookmark">The Only Question Left Is</a></h1> <div class="entry-meta"> <span class="sep">Posted on </span><a href="https://code.flickr.net/2009/04/07/the-only-question-left-is/" title="5:21 pm" rel="bookmark"><time class="entry-date" datetime="2009-04-07T17:21:58-07:00">April 7, 2009</time></a><span class="by-author"> <span class="sep"> by </span> <span class="author vcard"><a class="url fn n" href="https://code.flickr.net/author/flickrphotography/" title="View all posts by Kay Kremerskothen" rel="author">Kay Kremerskothen</a></span></span> </div><!-- .entry-meta --> </header><!-- .entry-header --> <div class="entry-content"> <div style="margin-top:25px;margin-bottom:25px;"> <a href="http://www.flickr.com/photos/shazbot/3282821808/"><img loading="lazy" decoding="async" src="http://farm4.static.flickr.com/3504/3282821808_da359404ff.jpg" height="457" width="500" alt="" style="border:1px dotted #ccc; padding:10px;" /></a></p> <p style="text-align:right;font-size:small;">photo by <a href="http://www.flickr.com/photos/shazbot/3282821808/in/set-72157614736071588/">Shawn Allen</a></p> </p></div> <p>At the <a href="http://en.oreilly.com/et2009/public/content/home">Emerging Technology</a> conference this year <a href="http://www.stamen.com/">Stamen Design&#8217;s</a> Michal Migurski and Shawn Allen led an afternoon workshop called &#8220;<a href="http://en.oreilly.com/et2009/public/schedule/detail/5555">Maps from Scratch: Online Maps from the Ground Up</a>&#8221; where people made digital maps from, well&#8230; scratch.</p> <p>If you&#8217;ve never heard of Stamen they&#8217;ve been doing some of the most exciting work around the idea of &#8220;<a href="http://mike.teczno.com/notes/oakland-crime-maps/XI.html">custom cartography</a>&#8221; including: <a href="http://cabspotting.org/">Cabspotting</a>, <a href="http://oakland.crimespotting.org/">Oakland Crimespotting</a> and <a href="http://teczno.com/old-oakland/">Old Oakland Maps</a>, work for the <a href="http://www.tom-carden.co.uk/2009/02/12/new-maps-at-london2012com/">London Olympics</a>, and <a href="http://www.sensescape.com/2009/02/cloudmade/">designing custom map tiles for CloudMade</a>. (Stamen also built the recently launched <a href="http://www.flickr.com/explore/clock">Flickr Clock</a> :-)</p> <p>All of this is interesting in its own right; proof that there is still a lot of room in which to imagine maps beyond so-called <a href="http://mappinghacks.com/2006/04/07/web-map-api-roundup/">red-dot fever</a>. All of this is extra interesting in light of Apple&#8217;s recent announcement to allow developers to define <a href="http://arstechnica.com/apple/news/2009/03/iphone-sdk-focus-maps-from-your-apps.ars">their own map tiles</a> in the next iPhone OS release. All of this super-duper interesting because it is work produced by a team of <i>less than 10 people</i>.</p> <p>The <a href="http://www.osgeo.org/">tools</a>, and increasingly the <a href="http://magicalnihilism.wordpress.com/2009/04/03/data-as-seductive-material/">data</a>, to build <a href="http://blog.everyblock.com/2008/feb/18/maps/">the maps we want</a> are bubbling up and becoming easier and more accessible to more people every day. Easier, anyway.</p> <blockquote style="font-family:sans-serif;border-top:1px solid #ccc;border-bottom:1px solid #ccc;padding:10px;padding-top:20px;margin-top:10px;margin-bottom:20px;"> <p>&#8220;One of the things that made this tutorial especially interesting for us was our use of Amazon&#8217;s EC2 service, the &#8220;Elastic Compute Cloud&#8221; that provides billed-by-the-hour virtual servers with speedy internet connections and a wide variety of operating system and configuration options. Each participant received a login to a freshly-made EC2 instance (a single server) with code and lesson data already in-place. We walked through the five stages of the tutorial with the group coding along and making their own maps, starting from incomplete initial files and progressing through added layers of complexity.</p> <p>&#8220;Probably the biggest hassle with open source geospatial software is getting the full stack installed and set up, so we&#8217;ve gone ahead and made the AMI (Amazon Machine Image, a template for a virtual server) available publicly for anyone to use, <a href="http://www.mapsfromscratch.com">along with notes on the process we used to create it</a>.&#8221;</p> <p style="text-align:right;">&#8212; <a href="http://mike.teczno.com/notes/maps-from-scratch.html">Michal Migurski</a></p> </blockquote> <p>The Maps From Scratch (MFS) AMI may not be a Leveraged Turn Key Synergistic <a href="http://www.catb.org/~esr/jargon/html/D/DWIM.html">Do-What-I-Mean</a> Solutions Platform but, really, anything that dulls the hassle and cost of setting up specialized software is <i>a great big step in the right direction</i>. I mention all of this because Clustr, the command-line application we use to <a href="http://code.flickr.com/blog/2008/10/30/the-shape-of-alpha/">derive shapefiles from geotagged photos</a>, has recently been added to the list of tools bundled with the MFS AMI.</p> <p>Specifically: <b>ami-4d769124</b>.</p> <p>We&#8217;re super excited about this because it means that Clustr is that much easier for people to use. We expressly chose to make Clustr an open-source project to share some of the tools we&#8217;ve developed with the community but it has also always had a relatively high barrier to entry. Building and configuring a Unix machine is often more that most people are interested in, let alone compiling big and complicated maths libraries from scratch. Clustr on EC2 is not a magic pony factory but hopefully it will make the application a little friendlier.</p> <div style="margin-top:25px;margin-bottom:25px;"> <a href="http://www.flickr.com/photos/straup/3295483210/" title="Shapes by straup, on Flickr"><img loading="lazy" decoding="async" src="http://farm4.static.flickr.com/3564/3295483210_5631c5bfc5.jpg" width="500" height="375" alt="Shapes" style="border:1px dotted #ccc; padding:10px;" /></a> </div> <p>Creating and configuring an EC2 account is too involved for this post but there are lots of good resources out there, starting with <a href="http://aws.amazon.com/ec2/">Amazon&#8217;s own documentation</a>. When I&#8217;m stuck I usually refer back to Paul Stamatiou&#8217;s <a href="http://paulstamatiou.com/2008/04/05/how-to-getting-started-with-amazon-ec2http://paulstamatiou.com/2008/04/05/how-to-getting-started-with-amazon-ec2">How To: Getting Started with Amazon EC2</a>.</p> <p>Assuming that you familiar using Unix command line tools, let&#8217;s also assume that you have gotten all your ducks in a row and are ready to fire up the MFS AMI:</p> <pre style="margin-bottom:20px;"> your-computer> ec2-run-instances <b style="color:#000;">ami-4d769124</b> -k example-keypair your-computer> ec2-describe-instances </pre> <p>At which point, you&#8217;ll see something like this:</p> <pre style="margin-bottom:20px;"> INSTANCE i-xxxxxxxx <b style="color:#000;">ami-4d769124</b> ec2-xxxxx.amazonaws.com blah blah blah </pre> <p><code>i-xxxxxxxx</code> is the unique identifier of your current EC2 session. You will need this to tell Amazon to shut down the server and stop billing you for its use.</p> <p><code>ec2-xxxxx.amazonaws.com</code> is the address of your EC2 server on the Internets.</p> <p>Once you have that information, you can start using Clustr. First, log in and create a new folder where you&#8217;ll save your shapefile:</p> <pre style="margin-bottom:20px;"> your-computer> ssh -i example-rsa-key root@ec2-xxxxx.amazonaws.com ec2-xxxxx.amazonaws.com> mkdir /root/clustr-test </pre> <p>The MFS AMI comes complete with a series of sample &#8220;points&#8221; files to render. We&#8217;ll start with the list of <a href="http://www.flickr.com/photos/revdancatt/3398050524/">all the geotagged photos uploaded to Flickr</a> on March 24:</p> <pre style="margin-bottom:20px;"> ec2-xxxxx.amazonaws.com> /usr/bin/clustr -v -a 0.001 <b style="color:#000;">/root/clustr/start/points-2009-03-24.txt</b> /root/clustr-test/clustr-test.shp </pre> <p>By default Clustr generates a series of files named <code>clustr</code> (dot <code>shp</code>, dot <code>dbf</code> and dot <code>shx</code> because <a href="http://en.wikipedia.org/wiki/Shapefile">shapefiles</a> are funny that way) in the current working directory. You can specify an alternate name by passing a fully qualified path as the last argument to Clustr. When run in verbose mode (that&#8217;s the <code>-v</code> flag) you&#8217;ll see something like this:</p> <pre style="margin-bottom:20px;"> Reading points from input. Got 44410 points for tag '20090324'. 799 component(s) found for alpha value 0.001. - 23 vertices, area: 86.7491, perimeter: 71.9647 - 32 vertices, area: 1171.51, perimeter: 41.3095 - 8 vertices, area: 18.5112, perimeter: 0.529504 - 12 vertices, area: 1484.81, perimeter: 10.8544 ... Writing 505 polygons to shapefile.</pre> <p>Yay!</p> <pre style="margin-bottom:20px;"> ec2-xxxxx.amazonaws.com> ls -la /root/clustr-test total 172 drwxr-xr-x 2 root root 4096 2009-04-07 03:14 . drwxr-xr-x 5 root root 4096 2009-04-07 02:22 .. -rw-r--r-- 1 root root 52208 2009-04-07 03:14 clustr-test.dbf -rw-r--r-- 1 root root 97388 2009-04-07 03:14 clustr-test.shp -rw-r--r-- 1 root root 4140 2009-04-07 03:14 clustr-test.shx </pre> <p>Now copy the shapefiles back to your computer and terminate your EC2 instance (or you might be surprised when you get your next billing statement from Amazon).</p> <pre style="margin-bottom:20px;"> ec2-xxxxx.amazonaws.com> scp -r /root/clustr-test you@your-computer:/path/to/your/desktop/ ec2-xxxxx.amazonaws.com> exit your-computer> ec2-terminate-instances i-xxxxxxxxx </pre> <p>I created this image (using the open source <a href="http://www.qgis.org/">QGIS</a> application) for all those points by running Clustr multiple times with alpha numbers ranging from 0.05 to <em>603</em>:</p> <div style="margin-top:25px;margin-bottom:25px;"> <a href="http://www.flickr.com/photos/straup/3393441637/" title="SHAPEZ (2009-03-24) by straup, on Flickr"><img loading="lazy" decoding="async" src="http://farm4.static.flickr.com/3611/3393441637_9c2537345a.jpg" width="500" height="292" alt="SHAPEZ (2009-03-24)" style="border:1px dotted #ccc; padding:10px;" /></a></p></div> <p>Here&#8217;s another version rendered using the <a href="http://code.google.com/p/mapnik-utils/wiki/Nik2Img">nik2img</a> application and a custom style sheet, both included with the MFS distribution:</p> <div style="margin-top:25px;margin-bottom:25px;"> <a href="http://www.flickr.com/photos/straup/3419358867/" title="clustr by straup, on Flickr"><img loading="lazy" decoding="async" src="http://farm4.static.flickr.com/3608/3419358867_a0a421c730.jpg" width="500" height="333" alt="clustr" style="border:1px dotted #ccc; padding:10px;" /></a> </div> <p>Here&#8217;s one of all the geotagged photos tagged &#8220;<a href="http://www.flickr.com/photos/tags/route66">route66</a>&#8221; (with alpha numbers ranging from 0.001 to 0.5):</p> <div style="margin-top:25px;margin-bottom:25px;"> <a href="http://www.flickr.com/photos/straup/3390234642/" title="tag=route66, alpha=(0.001 - 0.5) by straup, on Flickr"><img loading="lazy" decoding="async" src="http://farm4.static.flickr.com/3658/3390234642_aa85616023.jpg" width="500" height="292" alt="tag=route66, alpha=(0.001 - 0.5)" style="border:1px dotted #ccc; padding:10px;" /></a></p> <p style="font-style:italic;font-size:small;text-align:right;">Apologies and big sloppy kisses to Stamen&#8217;s own <a href="http://stamen.com/projects/mappr">Mappr</a> (first released in 2005).</p> </p></div> <p>Or tagged &#8220;<a href="http://www.flickr.com/photos/tags/caltrain">caltrain</a>&#8220;, the commuter train that runs between San Francisco and San Jose:</p> <div style="margin-top:25px;margin-bottom:25px;"> <a href="http://www.flickr.com/photos/straup/3385980494/" title="tag=caltrain, alpha=0.001 by straup, on Flickr"><img loading="lazy" decoding="async" src="http://farm4.static.flickr.com/3600/3385980494_260db12e99.jpg" width="500" height="314" alt="tag=caltrain, alpha=0.001" style="border:1px dotted #ccc; padding:10px;" /></a> </div> <p>Meanwhile, Matt Biddulph at <a href="http://www.dopplr.com/">Dopplr</a> has been generating <a href="http://www.flickr.com/photos/mbiddulph/tags/clustr/">a series of visualizations</a> depicting the shape of where to eat, stay and explore for the cities in their <a href="http://blog.dopplr.com/2009/03/20/the-dopplr-new-york-release-rolling-out-the-social-atlas/">Places</a> database. This is what <a href="http://www.dopplr.com/place/gb/london"> London</a> looks like:</p> <div style="margin-top:25px;margin-bottom:25px;"> <a href="http://www.flickr.com/photos/mbiddulph/3421335356/"><img loading="lazy" decoding="async" src="http://farm4.static.flickr.com/3306/3421335356_f4757613ce.jpg" height="279" width="500" style="border:1px dotted #ccc; padding:10px;" /></a> </div> <p>Or: &#8220;<a href="http://www.flickr.com/photos/mbiddulph/3421922514/">London dopplr places, filtered to only places my social network has been to, clustrd</a>&#8220;.</p> <p>One of the things I like the most about Clustr is that it will generate shape(file)s for any old list of geographic coordinates. Now that most of the hassle of setting up Clustr has been (mostly) removed, the only question left is: <i><a href="http://magicalnihilism.wordpress.com/2009/04/06/my-first-cloudmade-map-style-lynchian_mid/">What do you want to render?</a></i></p> <blockquote style="font-family:sans-serif;border-top:1px solid #ccc;border-bottom:1px solid #ccc;padding:10px;padding-top:20px;margin-top:20px;margin-bottom:20px;"> <p>&#8220;They do not detail locations in space but histories of movement that constitute space.&#8221;</p> <p style="text-align:right;">&#8212; <a href="http://cyberbadger.blogspot.com/2008/11/map-studies-manifesto-complete.html">Rob Kitchin, Chris Perkins</a></p> </blockquote> <p>If you&#8217;re like me you&#8217;re probably thinking something like &#8220;Wouldn&#8217;t it be nice if I could just POST a points file to a webservice running on the AMI and have it return a compressed shapefile?&#8221; It sure would so I wrote <a href="http://github.com/straup/ws-clustr/tree/master">a quick and dirty version</a> (not included in the MFS AMI; you&#8217;ll need to do that yourself) in PHP but if there are any Apache hackers in the house who want to make a zippy C version that would be even Moar Awesome &trade;.</p> <p>If you don&#8217;t want to use the MFS AMI and would rather just install Clustr on your own machine instance, here are the steps I went through to get it work on a Debian 5.0 (Lenny) AMI; presumably the steps are basically the same for any Linux flavoured operating system:</p> <pre style="margin-bottom:20px;"> $> apt-get update $> apt-get install libcgal-dev $> apt-get install libgdal1-dev $&gt; apt-get install subversion $&gt; svn co <a href="http://code.flickr.com/svn/trunk/clustr/">http://code.flickr.com/svn/trunk/clustr/</a> $&gt; cd clustr $&gt; make $&gt; cp clustr /usr/bin/ $&gt; clustr -h clustr 0.2 - construct polygons from tagged points written by Schuyler Erle (c) 2007-2008 Yahoo!, Inc. Usage: clustr [-a &lt;n&gt;] [-p] [-v] &lt;input&gt; &lt;output&gt; -h, -? this help message -v be verbose (default: off) -a &lt;n&gt; set alpha value (default: use "optimal" value) -p output points to shapefile, instead of polygons If &lt;input&gt; is missing or given as "-", stdin is used. If &lt;output&gt; is missing, output is written to clustr.shp. Input file should be formatted as: &lt;tag&gt; &lt;lon&gt; &lt;lat&gt;n Tags must not contain spaces. </pre> <p>Just like that!</p> <div style="margin-top:25px;margin-bottom:25px;"> <a href="http://www.flickr.com/photos/timo/3397788209/"><img loading="lazy" decoding="async" src="http://farm4.static.flickr.com/3608/3397788209_931d2d2acb.jpg" height="333" width="500" alt="" style="border:1px dotted #ccc; padding:10px;" /></a></p> <p style="font-size:small;text-align:right;">photo by <a href="http://www.flickr.com/photos/timo">Timo Arnall</a></p> </p></div> </div><!-- .entry-content --> <footer class="entry-meta"> <span class="cat-links"> <span class="entry-utility-prep entry-utility-prep-cat-links">Posted in</span> <a href="https://code.flickr.net/category/uncategorized/" rel="category tag">Uncategorized</a> </span> <span class="sep"> | </span> <span class="tag-links"> <span class="entry-utility-prep entry-utility-prep-tag-links">Tagged</span> <a href="https://code.flickr.net/tag/clustr/" rel="tag">clustr</a>, <a href="https://code.flickr.net/tag/ec2/" rel="tag">ec2</a>, <a href="https://code.flickr.net/tag/geotags/" rel="tag">geotags</a>, <a href="https://code.flickr.net/tag/maps/" rel="tag">maps</a>, <a href="https://code.flickr.net/tag/shapefiles/" rel="tag">shapefiles</a> </span> </footer><!-- .entry-meta --> </article><!-- #post-802 --> <article id="post-83" class="post-83 post type-post status-publish format-standard hentry category-geo tag-corrections tag-geo tag-maps"> <header class="entry-header"> <h1 class="entry-title"><a href="https://code.flickr.net/2008/08/18/defining-the-boundaries-we-are-all-within/" rel="bookmark">Defining the boundaries we are all within</a></h1> <div class="entry-meta"> <span class="sep">Posted on </span><a href="https://code.flickr.net/2008/08/18/defining-the-boundaries-we-are-all-within/" title="11:34 pm" rel="bookmark"><time class="entry-date" datetime="2008-08-18T23:34:52-07:00">August 18, 2008</time></a><span class="by-author"> <span class="sep"> by </span> <span class="author vcard"><a class="url fn n" href="https://code.flickr.net/author/flickrphotography/" title="View all posts by Kay Kremerskothen" rel="author">Kay Kremerskothen</a></span></span> </div><!-- .entry-meta --> <div class="comments-link"> <a href="https://code.flickr.net/2008/08/18/defining-the-boundaries-we-are-all-within/#respond"><span class="leave-reply">Reply</span></a> </div> </header><!-- .entry-header --> <div class="entry-content"> <p>Last week I made a <a href="http://code.flickr.com/blog/2008/08/08/location-keeping-it-real-on-the-streets-yo/">blog post about what we call &#8216;corrections&#8217;</a> and because a picture is worth a thousand words, here&#8217;s where people have been fixing things in Europe &#8230;</p> <p><img loading="lazy" decoding="async" src="http://farm4.static.flickr.com/3050/2775618657_fff7f83a93_o.jpg" alt="" width="500" height="384" /></p> <p>&#8230; and over in the US &#8230;</p> <p><img loading="lazy" decoding="async" src="http://farm4.static.flickr.com/3173/2775618683_f90728daf6_o.jpg" alt="" width="500" height="329" /><br /> &#8230; as expected most of the corrections to neighborhoods are taking place in major cities. Also seemingly most of the UK, presumably because the population is high and our current data is messy (or too abstract) there.</p> <p>As we get more of this stuff back, the process of feeding it into the system will get underway (in some form or other).</p> <p>I wonder that as that happens, we&#8217;ll see the corrections move away from already heavily corrected locations like cities, or if they&#8217;ll continue to be areas that appear to have highly contested borders.</p> <p>Only time will tell I guess, we&#8217;ll keep tracking it.</p> <p>Map extracts taken from <a href="http://www.flickr.com/photos/sm/2774920747/">this world map</a> by Serguei.</p> </div><!-- .entry-content --> <footer class="entry-meta"> <span class="cat-links"> <span class="entry-utility-prep entry-utility-prep-cat-links">Posted in</span> <a href="https://code.flickr.net/category/geo/" rel="category tag">geo</a> </span> <span class="sep"> | </span> <span class="tag-links"> <span class="entry-utility-prep entry-utility-prep-tag-links">Tagged</span> <a href="https://code.flickr.net/tag/corrections/" rel="tag">corrections</a>, <a href="https://code.flickr.net/tag/geo/" rel="tag">geo</a>, <a href="https://code.flickr.net/tag/maps/" rel="tag">maps</a> </span> <span class="sep"> | </span> <span class="comments-link"><a href="https://code.flickr.net/2008/08/18/defining-the-boundaries-we-are-all-within/#respond"><span class="leave-reply">Leave a reply</span></a></span> </footer><!-- .entry-meta --> </article><!-- #post-83 --> </div><!-- #content --> </section><!-- #primary --> <div id="secondary" class="widget-area" role="complementary"> <aside id="jetpack-search-filters-3" class="widget jetpack-filters widget_search"> <div id="jetpack-search-filters-3-wrapper" class="jetpack-instant-search-wrapper"> <div class="jetpack-search-form"> <form method="get" id="searchform" action="https://code.flickr.net/"> <label for="s" class="assistive-text">Search</label> <input type="text" class="field" name="s" id="s" placeholder="Search" /> <input type="submit" class="submit" name="submit" id="searchsubmit" value="Search" /> <input type="hidden" name="orderby" value="" /><input type="hidden" name="order" value="" /></form> </div> <h4 class="jetpack-search-filters-widget__sub-heading"> Categories </h4> <ul class="jetpack-search-filters-widget__filter-list"> <li> <a href="#" class="jetpack-search-filter__link" data-filter-type="taxonomy" data-taxonomy="category" data-val="uncategorized"> Uncategorized&nbsp;(136) </a> </li> <li> <a href="#" class="jetpack-search-filter__link" data-filter-type="taxonomy" data-taxonomy="category" data-val="geo"> geo&nbsp;(12) </a> </li> <li> <a href="#" class="jetpack-search-filter__link" data-filter-type="taxonomy" data-taxonomy="category" data-val="kittens"> kittens&nbsp;(10) </a> </li> <li> <a href="#" class="jetpack-search-filter__link" data-filter-type="taxonomy" data-taxonomy="category" data-val="change-log"> changelog&nbsp;(7) </a> </li> <li> <a href="#" class="jetpack-search-filter__link" data-filter-type="taxonomy" data-taxonomy="category" data-val="uploadr"> uploadr&nbsp;(6) </a> </li> </ul> <h4 class="jetpack-search-filters-widget__sub-heading"> Tags </h4> <ul class="jetpack-search-filters-widget__filter-list"> <li> <a href="#" class="jetpack-search-filter__link" data-filter-type="taxonomy" data-taxonomy="post_tag" data-val="maps+api"> api&nbsp;(24) </a> </li> <li> <a href="#" class="jetpack-search-filter__link" data-filter-type="taxonomy" data-taxonomy="post_tag" data-val="maps+geo"> geo&nbsp;(13) </a> </li> <li> <a href="#" class="jetpack-search-filter__link" data-filter-type="taxonomy" data-taxonomy="post_tag" data-val="maps+machine-tags"> machine tags&nbsp;(10) </a> </li> <li> <a href="#" class="jetpack-search-filter__link" data-filter-type="taxonomy" data-taxonomy="post_tag" data-val="maps+javascript"> javascript&nbsp;(9) </a> </li> <li> <a href="#" class="jetpack-search-filter__link" data-filter-type="taxonomy" data-taxonomy="post_tag" data-val="maps+kittentuesday"> kittentuesday&nbsp;(8) </a> </li> </ul> <h4 class="jetpack-search-filters-widget__sub-heading"> Year </h4> <ul class="jetpack-search-filters-widget__filter-list"> <li> <a href="#" class="jetpack-search-filter__link" data-filter-type="year_post_date" data-val="2022-01-01 00:00:00" > 2022&nbsp;(2) </a> </li> <li> <a href="#" class="jetpack-search-filter__link" data-filter-type="year_post_date" data-val="2021-01-01 00:00:00" > 2021&nbsp;(1) </a> </li> <li> <a href="#" class="jetpack-search-filter__link" data-filter-type="year_post_date" data-val="2018-01-01 00:00:00" > 2018&nbsp;(1) </a> </li> <li> <a href="#" class="jetpack-search-filter__link" data-filter-type="year_post_date" data-val="2017-01-01 00:00:00" > 2017&nbsp;(2) </a> </li> <li> <a href="#" class="jetpack-search-filter__link" data-filter-type="year_post_date" data-val="2016-01-01 00:00:00" > 2016&nbsp;(5) </a> </li> </ul> </div></aside> <aside id="recent-posts-2" class="widget widget_recent_entries"> <h3 class="widget-title">Recent Posts</h3> <ul> <li> <a href="https://code.flickr.net/2022/02/14/safer-internet-day-and-open-source-codes-of-conduct/">Safer Internet Day and Open Source Codes of Conduct</a> </li> <li> <a href="https://code.flickr.net/2022/01/04/a-pluggable-solution-for-api-observability-on-our-php-system/">A Pluggable Solution for API Observability on our PHP System</a> </li> <li> <a href="https://code.flickr.net/2021/11/22/flickr-engineering-team-vision-guiding-principles/">Flickr Engineering Team Vision &#038; Guiding Principles</a> </li> <li> <a href="https://code.flickr.net/2018/04/20/together/">Together</a> </li> <li> <a href="https://code.flickr.net/2017/03/07/introducing-similarity-search-at-flickr/">Introducing Similarity Search at Flickr</a> </li> </ul> </aside><aside id="archives-2" class="widget widget_archive"><h3 class="widget-title">Archives</h3> <ul> <li><a href='https://code.flickr.net/2022/02/'>February 2022</a></li> <li><a href='https://code.flickr.net/2022/01/'>January 2022</a></li> <li><a href='https://code.flickr.net/2021/11/'>November 2021</a></li> <li><a href='https://code.flickr.net/2018/04/'>April 2018</a></li> <li><a href='https://code.flickr.net/2017/03/'>March 2017</a></li> <li><a href='https://code.flickr.net/2017/01/'>January 2017</a></li> <li><a href='https://code.flickr.net/2016/09/'>September 2016</a></li> <li><a href='https://code.flickr.net/2016/05/'>May 2016</a></li> <li><a href='https://code.flickr.net/2016/04/'>April 2016</a></li> <li><a href='https://code.flickr.net/2016/03/'>March 2016</a></li> <li><a href='https://code.flickr.net/2015/12/'>December 2015</a></li> <li><a href='https://code.flickr.net/2015/11/'>November 2015</a></li> <li><a href='https://code.flickr.net/2015/09/'>September 2015</a></li> <li><a href='https://code.flickr.net/2015/07/'>July 2015</a></li> <li><a href='https://code.flickr.net/2015/06/'>June 2015</a></li> <li><a href='https://code.flickr.net/2015/03/'>March 2015</a></li> <li><a href='https://code.flickr.net/2014/10/'>October 2014</a></li> <li><a href='https://code.flickr.net/2014/08/'>August 2014</a></li> <li><a href='https://code.flickr.net/2014/07/'>July 2014</a></li> <li><a href='https://code.flickr.net/2014/05/'>May 2014</a></li> <li><a href='https://code.flickr.net/2014/04/'>April 2014</a></li> <li><a href='https://code.flickr.net/2014/02/'>February 2014</a></li> <li><a href='https://code.flickr.net/2013/09/'>September 2013</a></li> <li><a href='https://code.flickr.net/2013/06/'>June 2013</a></li> <li><a href='https://code.flickr.net/2013/03/'>March 2013</a></li> <li><a href='https://code.flickr.net/2012/12/'>December 2012</a></li> <li><a href='https://code.flickr.net/2012/10/'>October 2012</a></li> <li><a href='https://code.flickr.net/2012/07/'>July 2012</a></li> <li><a href='https://code.flickr.net/2012/06/'>June 2012</a></li> <li><a href='https://code.flickr.net/2012/05/'>May 2012</a></li> <li><a href='https://code.flickr.net/2012/04/'>April 2012</a></li> <li><a href='https://code.flickr.net/2012/02/'>February 2012</a></li> <li><a href='https://code.flickr.net/2012/01/'>January 2012</a></li> <li><a href='https://code.flickr.net/2011/12/'>December 2011</a></li> <li><a href='https://code.flickr.net/2011/10/'>October 2011</a></li> <li><a href='https://code.flickr.net/2011/09/'>September 2011</a></li> <li><a href='https://code.flickr.net/2011/08/'>August 2011</a></li> <li><a href='https://code.flickr.net/2011/07/'>July 2011</a></li> <li><a href='https://code.flickr.net/2011/06/'>June 2011</a></li> <li><a href='https://code.flickr.net/2011/03/'>March 2011</a></li> <li><a href='https://code.flickr.net/2011/02/'>February 2011</a></li> <li><a href='https://code.flickr.net/2011/01/'>January 2011</a></li> <li><a href='https://code.flickr.net/2010/11/'>November 2010</a></li> <li><a href='https://code.flickr.net/2010/10/'>October 2010</a></li> <li><a href='https://code.flickr.net/2010/09/'>September 2010</a></li> <li><a href='https://code.flickr.net/2010/08/'>August 2010</a></li> <li><a href='https://code.flickr.net/2010/07/'>July 2010</a></li> <li><a href='https://code.flickr.net/2010/05/'>May 2010</a></li> <li><a href='https://code.flickr.net/2010/04/'>April 2010</a></li> <li><a href='https://code.flickr.net/2010/03/'>March 2010</a></li> <li><a href='https://code.flickr.net/2010/02/'>February 2010</a></li> <li><a href='https://code.flickr.net/2010/01/'>January 2010</a></li> <li><a href='https://code.flickr.net/2009/12/'>December 2009</a></li> <li><a href='https://code.flickr.net/2009/11/'>November 2009</a></li> <li><a href='https://code.flickr.net/2009/10/'>October 2009</a></li> <li><a href='https://code.flickr.net/2009/09/'>September 2009</a></li> <li><a href='https://code.flickr.net/2009/07/'>July 2009</a></li> <li><a href='https://code.flickr.net/2009/06/'>June 2009</a></li> <li><a href='https://code.flickr.net/2009/05/'>May 2009</a></li> <li><a href='https://code.flickr.net/2009/04/'>April 2009</a></li> <li><a href='https://code.flickr.net/2009/03/'>March 2009</a></li> <li><a href='https://code.flickr.net/2009/02/'>February 2009</a></li> <li><a href='https://code.flickr.net/2009/01/'>January 2009</a></li> <li><a href='https://code.flickr.net/2008/12/'>December 2008</a></li> <li><a href='https://code.flickr.net/2008/11/'>November 2008</a></li> <li><a href='https://code.flickr.net/2008/10/'>October 2008</a></li> <li><a href='https://code.flickr.net/2008/09/'>September 2008</a></li> <li><a href='https://code.flickr.net/2008/08/'>August 2008</a></li> <li><a href='https://code.flickr.net/2008/07/'>July 2008</a></li> <li><a href='https://code.flickr.net/2008/06/'>June 2008</a></li> <li><a href='https://code.flickr.net/2008/05/'>May 2008</a></li> <li><a href='https://code.flickr.net/2008/04/'>April 2008</a></li> </ul> </aside><aside id="categories-2" class="widget widget_categories"><h3 class="widget-title">Categories</h3> <ul> <li class="cat-item cat-item-11749740"><a href="https://code.flickr.net/category/api-2/">API</a> </li> <li class="cat-item cat-item-564792"><a href="https://code.flickr.net/category/change-log/">changelog</a> </li> <li class="cat-item cat-item-5784"><a href="https://code.flickr.net/category/event/">event</a> </li> <li class="cat-item cat-item-29160"><a href="https://code.flickr.net/category/geo/">geo</a> </li> <li class="cat-item cat-item-139037766"><a href="https://code.flickr.net/category/hadoop/">hadoop</a> </li> <li class="cat-item cat-item-32"><a href="https://code.flickr.net/category/infrastructure/">infrastructure</a> </li> <li class="cat-item cat-item-139037765"><a href="https://code.flickr.net/category/kittens/">kittens</a> </li> <li class="cat-item cat-item-20156"><a href="https://code.flickr.net/category/labs/">labs</a> </li> <li class="cat-item cat-item-171"><a href="https://code.flickr.net/category/meta/">meta</a> </li> <li class="cat-item cat-item-7092"><a href="https://code.flickr.net/category/metrics/">metrics</a> </li> <li class="cat-item cat-item-139037764"><a href="https://code.flickr.net/category/open-source/">open source</a> </li> <li class="cat-item cat-item-1930"><a href="https://code.flickr.net/category/performance/">performance</a> </li> <li class="cat-item cat-item-304"><a href="https://code.flickr.net/category/photos/">photos</a> </li> <li class="cat-item cat-item-2373"><a href="https://code.flickr.net/category/search/">search</a> </li> <li class="cat-item cat-item-1"><a href="https://code.flickr.net/category/uncategorized/">Uncategorized</a> </li> <li class="cat-item cat-item-249276"><a href="https://code.flickr.net/category/uploadr/">uploadr</a> </li> <li class="cat-item cat-item-412"><a href="https://code.flickr.net/category/video/">video</a> </li> <li class="cat-item cat-item-830560"><a href="https://code.flickr.net/category/xulrunner/">xulrunner</a> </li> </ul> </aside><aside id="meta-2" class="widget widget_meta"><h3 class="widget-title">Meta</h3> <ul> <li><a href="https://code.flickr.net/wp-login.php">Log in</a></li> <li><a href="https://code.flickr.net/feed/">Entries feed</a></li> <li><a href="https://code.flickr.net/comments/feed/">Comments feed</a></li> <li><a href="https://wordpress.org/">WordPress.org</a></li> </ul> </aside> </div><!-- #secondary .widget-area --> </div><!-- #main --> <footer id="colophon" role="contentinfo"> <div id="site-generator"> &copy; 2025 Flickr, Inc. All rights reserved. | Powered by <a href="https://wpvip.com/?utm_source=vip_powered_wpcom&#038;utm_medium=web&#038;utm_campaign=VIP%20Footer%20Credit&#038;utm_term=code.flickr.net" rel="generator nofollow" class="powered-by-wpcom">WordPress VIP</a> </div> </footer><!-- #colophon --> </div><!-- #page --> <div class="jetpack-instant-search__widget-area" style="display: none"> <div id="jetpack-search-filters-2" class="widget jetpack-filters widget_search"> <div id="jetpack-search-filters-2-wrapper" class="jetpack-instant-search-wrapper"> </div></div> </div> <script type="text/javascript" src="https://code.flickr.net/wp-includes/js/dist/hooks.min.js?m=1739294330g" ></script><script type="text/javascript" src="https://code.flickr.net/wp-includes/js/dist/i18n.min.js?ver=5e580eb46a90c2b997e6" id="wp-i18n-js"></script> <script type="text/javascript" id="wp-i18n-js-after"> /* <![CDATA[ */ wp.i18n.setLocaleData( { 'text direction\u0004ltr': [ 'ltr' ] } ); /* ]]> */ </script> <script type="text/javascript" src="https://code.flickr.net/wp-content/mu-plugins/jetpack-14.3/jetpack_vendor/automattic/jetpack-assets/build/i18n-loader.js?minify=true&amp;ver=becd7d9884bc1b331e45" id="wp-jp-i18n-loader-js"></script> <script type="text/javascript" id="wp-jp-i18n-loader-js-after"> /* <![CDATA[ */ wp.jpI18nLoader.state = {"baseUrl":"https://code.flickr.net/wp-content/languages/","locale":"en_US","domainMap":{"jetpack-admin-ui":"plugins/jetpack","jetpack-assets":"plugins/jetpack","jetpack-backup-pkg":"plugins/jetpack","jetpack-blaze":"plugins/jetpack","jetpack-boost-core":"plugins/jetpack","jetpack-boost-speed-score":"plugins/jetpack","jetpack-classic-theme-helper":"plugins/jetpack","jetpack-compat":"plugins/jetpack","jetpack-config":"plugins/jetpack","jetpack-connection":"plugins/jetpack","jetpack-explat":"plugins/jetpack","jetpack-forms":"plugins/jetpack","jetpack-image-cdn":"plugins/jetpack","jetpack-import":"plugins/jetpack","jetpack-ip":"plugins/jetpack","jetpack-jitm":"plugins/jetpack","jetpack-licensing":"plugins/jetpack","jetpack-masterbar":"plugins/jetpack","jetpack-my-jetpack":"plugins/jetpack","jetpack-password-checker":"plugins/jetpack","jetpack-plugins-installer":"plugins/jetpack","jetpack-post-list":"plugins/jetpack","jetpack-protect-models":"plugins/jetpack","jetpack-protect-status":"plugins/jetpack","jetpack-publicize-pkg":"plugins/jetpack","jetpack-search-pkg":"plugins/jetpack","jetpack-stats":"plugins/jetpack","jetpack-stats-admin":"plugins/jetpack","jetpack-sync":"plugins/jetpack","jetpack-videopress-pkg":"plugins/jetpack","jetpack-waf":"plugins/jetpack","jetpack-wordads":"plugins/jetpack","woocommerce-analytics":"plugins/jetpack"},"domainPaths":{"jetpack-admin-ui":"jetpack_vendor/automattic/jetpack-admin-ui/","jetpack-assets":"jetpack_vendor/automattic/jetpack-assets/","jetpack-backup-pkg":"jetpack_vendor/automattic/jetpack-backup/","jetpack-blaze":"jetpack_vendor/automattic/jetpack-blaze/","jetpack-boost-core":"jetpack_vendor/automattic/jetpack-boost-core/","jetpack-boost-speed-score":"jetpack_vendor/automattic/jetpack-boost-speed-score/","jetpack-classic-theme-helper":"jetpack_vendor/automattic/jetpack-classic-theme-helper/","jetpack-compat":"jetpack_vendor/automattic/jetpack-compat/","jetpack-config":"jetpack_vendor/automattic/jetpack-config/","jetpack-connection":"jetpack_vendor/automattic/jetpack-connection/","jetpack-explat":"jetpack_vendor/automattic/jetpack-explat/","jetpack-forms":"jetpack_vendor/automattic/jetpack-forms/","jetpack-image-cdn":"jetpack_vendor/automattic/jetpack-image-cdn/","jetpack-import":"jetpack_vendor/automattic/jetpack-import/","jetpack-ip":"jetpack_vendor/automattic/jetpack-ip/","jetpack-jitm":"jetpack_vendor/automattic/jetpack-jitm/","jetpack-licensing":"jetpack_vendor/automattic/jetpack-licensing/","jetpack-masterbar":"jetpack_vendor/automattic/jetpack-masterbar/","jetpack-my-jetpack":"jetpack_vendor/automattic/jetpack-my-jetpack/","jetpack-password-checker":"jetpack_vendor/automattic/jetpack-password-checker/","jetpack-plugins-installer":"jetpack_vendor/automattic/jetpack-plugins-installer/","jetpack-post-list":"jetpack_vendor/automattic/jetpack-post-list/","jetpack-protect-models":"jetpack_vendor/automattic/jetpack-protect-models/","jetpack-protect-status":"jetpack_vendor/automattic/jetpack-protect-status/","jetpack-publicize-pkg":"jetpack_vendor/automattic/jetpack-publicize/","jetpack-search-pkg":"jetpack_vendor/automattic/jetpack-search/","jetpack-stats":"jetpack_vendor/automattic/jetpack-stats/","jetpack-stats-admin":"jetpack_vendor/automattic/jetpack-stats-admin/","jetpack-sync":"jetpack_vendor/automattic/jetpack-sync/","jetpack-videopress-pkg":"jetpack_vendor/automattic/jetpack-videopress/","jetpack-waf":"jetpack_vendor/automattic/jetpack-waf/","jetpack-wordads":"jetpack_vendor/automattic/jetpack-wordads/","woocommerce-analytics":"jetpack_vendor/automattic/woocommerce-analytics/"}}; /* ]]> */ </script> <script type="text/javascript" src="https://code.flickr.net/_static/??/wp-includes/js/dist/vendor/wp-polyfill.min.js,/wp-includes/js/dist/url.min.js?m=1739294330j" ></script><script type="text/javascript" id="jetpack-instant-search-js-before"> /* <![CDATA[ */ var JetpackInstantSearchOptions=JSON.parse(decodeURIComponent("%7B%22overlayOptions%22%3A%7B%22colorTheme%22%3A%22light%22%2C%22enableInfScroll%22%3Atrue%2C%22enableFilteringOpensOverlay%22%3Atrue%2C%22enablePostDate%22%3Atrue%2C%22enableSort%22%3Atrue%2C%22highlightColor%22%3A%22%23FFC%22%2C%22overlayTrigger%22%3A%22submit%22%2C%22resultFormat%22%3A%22expanded%22%2C%22showPoweredBy%22%3Atrue%2C%22defaultSort%22%3A%22relevance%22%2C%22excludedPostTypes%22%3A%5B%5D%7D%2C%22homeUrl%22%3A%22https%3A%5C%2F%5C%2Fcode.flickr.net%22%2C%22locale%22%3A%22en-US%22%2C%22postsPerPage%22%3A10%2C%22siteId%22%3A185426273%2C%22postTypes%22%3A%7B%22post%22%3A%7B%22singular_name%22%3A%22Post%22%2C%22name%22%3A%22Posts%22%7D%2C%22page%22%3A%7B%22singular_name%22%3A%22Page%22%2C%22name%22%3A%22Pages%22%7D%2C%22attachment%22%3A%7B%22singular_name%22%3A%22Media%22%2C%22name%22%3A%22Media%22%7D%7D%2C%22webpackPublicPath%22%3A%22https%3A%5C%2F%5C%2Fcode.flickr.net%5C%2Fwp-content%5C%2Fmu-plugins%5C%2Fjetpack-14.3%5C%2Fjetpack_vendor%5C%2Fautomattic%5C%2Fjetpack-search%5C%2Fbuild%5C%2Finstant-search%5C%2F%22%2C%22isPhotonEnabled%22%3Afalse%2C%22isFreePlan%22%3Afalse%2C%22apiRoot%22%3A%22https%3A%5C%2F%5C%2Fcode.flickr.net%5C%2Fwp-json%5C%2F%22%2C%22apiNonce%22%3A%223688270225%22%2C%22isPrivateSite%22%3Afalse%2C%22isWpcom%22%3Afalse%2C%22hasOverlayWidgets%22%3Atrue%2C%22widgets%22%3A%5B%7B%22filters%22%3A%5B%7B%22name%22%3A%22Bylines%22%2C%22type%22%3A%22taxonomy%22%2C%22taxonomy%22%3A%22byline%22%2C%22count%22%3A5%2C%22widget_id%22%3A%22jetpack-search-filters-2%22%2C%22filter_id%22%3A%22taxonomy_0%22%7D%2C%7B%22name%22%3A%22Categories%22%2C%22type%22%3A%22taxonomy%22%2C%22taxonomy%22%3A%22category%22%2C%22count%22%3A5%2C%22widget_id%22%3A%22jetpack-search-filters-2%22%2C%22filter_id%22%3A%22taxonomy_1%22%7D%2C%7B%22name%22%3A%22Tags%22%2C%22type%22%3A%22taxonomy%22%2C%22taxonomy%22%3A%22post_tag%22%2C%22count%22%3A5%2C%22widget_id%22%3A%22jetpack-search-filters-2%22%2C%22filter_id%22%3A%22taxonomy_2%22%7D%2C%7B%22name%22%3A%22Year%22%2C%22type%22%3A%22date_histogram%22%2C%22count%22%3A5%2C%22field%22%3A%22post_date%22%2C%22interval%22%3A%22year%22%2C%22widget_id%22%3A%22jetpack-search-filters-2%22%2C%22filter_id%22%3A%22date_histogram_3%22%7D%5D%2C%22widget_id%22%3A%22jetpack-search-filters-2%22%7D%5D%2C%22widgetsOutsideOverlay%22%3A%5B%7B%22filters%22%3A%5B%7B%22name%22%3A%22Bylines%22%2C%22type%22%3A%22taxonomy%22%2C%22taxonomy%22%3A%22byline%22%2C%22count%22%3A5%2C%22widget_id%22%3A%22jetpack-search-filters-3%22%2C%22filter_id%22%3A%22taxonomy_4%22%7D%2C%7B%22name%22%3A%22Categories%22%2C%22type%22%3A%22taxonomy%22%2C%22taxonomy%22%3A%22category%22%2C%22count%22%3A5%2C%22widget_id%22%3A%22jetpack-search-filters-3%22%2C%22filter_id%22%3A%22taxonomy_5%22%7D%2C%7B%22name%22%3A%22Tags%22%2C%22type%22%3A%22taxonomy%22%2C%22taxonomy%22%3A%22post_tag%22%2C%22count%22%3A5%2C%22widget_id%22%3A%22jetpack-search-filters-3%22%2C%22filter_id%22%3A%22taxonomy_6%22%7D%2C%7B%22name%22%3A%22Year%22%2C%22type%22%3A%22date_histogram%22%2C%22count%22%3A5%2C%22field%22%3A%22post_date%22%2C%22interval%22%3A%22year%22%2C%22widget_id%22%3A%22jetpack-search-filters-3%22%2C%22filter_id%22%3A%22date_histogram_7%22%7D%5D%2C%22widget_id%22%3A%22jetpack-search-filters-3%22%7D%5D%2C%22hasNonSearchWidgets%22%3Afalse%2C%22preventTrackingCookiesReset%22%3Afalse%7D")); /* ]]> */ </script> <script type="text/javascript" src="https://code.flickr.net/wp-content/mu-plugins/jetpack-14.3/jetpack_vendor/automattic/jetpack-search/build/instant-search/jp-search.js?minify=false&amp;ver=749aa845a5ccb16bc8a6" id="jetpack-instant-search-js"></script> <script type="text/javascript" src="//stats.wp.com/w.js?ver=202509" id="jp-tracks-js"></script> <script type="text/javascript" src="https://stats.wp.com/e-202509.js" id="jetpack-stats-js" data-wp-strategy="defer"></script> <script type="text/javascript" id="jetpack-stats-js-after"> /* <![CDATA[ */ _stq = window._stq || []; _stq.push([ "view", JSON.parse("{\"v\":\"ext\",\"blog\":\"185426273\",\"post\":\"0\",\"tz\":\"-8\",\"srv\":\"code.flickr.net\",\"hp\":\"vip\",\"j\":\"1:14.3\"}") ]); _stq.push([ "clickTrackerInit", "185426273", "0" ]); /* ]]> */ </script> <script async src="https://embedr.flickr.com/assets/client-code.js" charset="utf-8"></script> </body> </html>

Pages: 1 2 3 4 5 6 7 8 9 10