CINXE.COM

geo | 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> geo | 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; geo Tag Feed" href="https://code.flickr.net/tag/geo/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=1742994400g' 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/QzcxLzilNSS3WzyrWz01NyUxMzUnNTc0rQeEU5CRWphbp5qSmJyZX6uVm5uklFxfr6OPTDpRD5sM02efaGpqbGFlampgYGAIAROAu5A==' 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/139037769" /><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-geo tag-139037769 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>geo</span> </h1> </header> <nav id="nav-above"> <h3 class="assistive-text">Post navigation</h3> <div class="nav-previous"><a href="https://code.flickr.net/tag/geo/page/2/" ><span class="meta-nav">&larr;</span> Older posts</a></div> <div class="nav-next"></div> </nav><!-- #nav-above --> <article id="post-2273" class="post-2273 post type-post status-publish format-standard hentry category-geo tag-geo tag-shapefile"> <header class="entry-header"> <h1 class="entry-title"><a href="https://code.flickr.net/2012/10/24/2273/" rel="bookmark">We saved you a step…</a></h1> <div class="entry-meta"> <span class="sep">Posted on </span><a href="https://code.flickr.net/2012/10/24/2273/" title="5:41 pm" rel="bookmark"><time class="entry-date" datetime="2012-10-24T17:41:45-07:00">October 24, 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>It seems when we launched <a href="http://code.flickr.com/blog/2011/01/08/flickr-shapefiles-public-dataset-2-0/">version 2.0</a> of our <a href="http://code.flickr.com/blog/2008/10/30/the-shape-of-alpha/">Flickr shapes</a>, we posted them with a flaw which made them useless to most popular geo applications.</p> <p>Awwwww&#8230;</p> <p>Luckily, <a href="http://twitter.com/cmanning88">Christopher Manning</a> wrote a <a href="http://www.christophermanning.org/writing/make-flickr-shapes-json-parsable/">python script</a> which makes them useful.</p> <p>Yaaaayyyyy!</p> <p>The least we can do is post an update which has already been christopher-manning-ified, So, we are very happy to announce version 2.0.1 of the Flickr shape files which can be downloaded here:<br /> <a href="http://www.flickr.com/services/shapefiles/2.0.1/">http://www.flickr.com/services/shapefiles/2.0.1/</a></p> <p>Look, it works:</p> <p class="figure"> <img decoding="async" src="http://farm9.staticflickr.com/8196/8075284257_ef27d63253_c.jpg" width="800" height="506"><br /> <span class="caption">Flickr Shapes 2.0.1 in TileMill</span> </p> <p>A very hearty THANKS! from your friends at Flickr, Christopher.</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/geo/" rel="tag">geo</a>, <a href="https://code.flickr.net/tag/shapefile/" rel="tag">shapefile</a> </span> </footer><!-- .entry-meta --> </article><!-- #post-2273 --> <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’s 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’s 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’s 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’ll 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-1638" class="post-1638 post type-post status-publish format-standard hentry category-geo tag-geo tag-privacy"> <header class="entry-header"> <h1 class="entry-title"><a href="https://code.flickr.net/2011/08/30/in-the-privacy-of-our-homes/" rel="bookmark">In the privacy of our homes</a></h1> <div class="entry-meta"> <span class="sep">Posted on </span><a href="https://code.flickr.net/2011/08/30/in-the-privacy-of-our-homes/" title="5:27 pm" rel="bookmark"><time class="entry-date" datetime="2011-08-30T17:27:23-07:00">August 30, 2011</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/hartsell/" title="View all posts by Trevor Hartsell" rel="author">Trevor Hartsell</a></span></span> </div><!-- .entry-meta --> </header><!-- .entry-header --> <div class="entry-content"> <p>The best thing about working at Flickr is that my coworkers all love the site and product ideas can come from anyone.</p> <p>Recently, the Flickr staff had to work from home while our office was disassembled and relocated a few floors down. A chance to sleep in and start the weekend early? Or get together with a few ambitious coworkers and hack together a new feature?</p> <p>We met at Nolan&#8217;s house, ate a farmer&#8217;s breakfast, and brainstormed.</p> <p><a href="http://www.flickr.com/photos/nolancaudill/5518277039/"><img decoding="async" class="alignnone" src="http://farm6.static.flickr.com/5057/5518277039_68d747ffc9.jpg" alt="Flickr Satellite Office" width="500" height="332" /></a></p> <p>We wanted to build something fun, which a few of us could start working on that morning and have a demo ready by the end of the day. Something suited to the talents and interests of the people in the room. Secret Faves? Risqué Explore?</p> <p><a href="http://www.flickr.com/photos/bertrandom/">Bert</a> wanted to help people geotag more photos, but he wanted more sophisticated privacy controls first. I’d been using a <a href="http://www.flickr.com/services/apps/72157623941942987/">simple web app</a> that I built with the Flickr API to manage the geo privacy of my photos, and it seemed like something more people should have access to.</p> <p>So we had a need. We had a proof of concept. We had enough highly caffeinated engineers to fill a small dinner table. “Let’s build geofences.”</p> <p></p> <h2>What the beep is a geofence?</h2> <p></p> <p><a href="http://www.flickr.com/photos/dunstan/4892270954/"><img loading="lazy" decoding="async" class="alignnone" src="http://farm5.static.flickr.com/4096/4892270954_2b7619b15a.jpg" alt="Parked outside a school! by Dunstan" width="500" height="374" /></a></p> <p>You probably know what geotagging is. It’s nerd-speak for putting your photos on a map. Flickr pioneered geotagging about five years ago, and our members have geotagged around 300 million photos and videos.</p> <p>We’ve always offered the same privacy settings for location data that we offer for commenting, tagging, and who can see your photos. You have default settings for your account, which are applied to all new uploads, and which you can override on a photo-by-photo basis.</p> <p>This works well for most metadata. I have a few photos that I don’t want people to comment on or add notes to, but for the most part, one setting fits all my needs.</p> <p>But geo is special. I often override my default geo privacy. Every time I upload a photo taken at my house, I mark it “Contacts only”. Same for my grandma’s house. And that dark place with the goats and candles? Sorry, it’s private.</p> <p>Managing geo privacy by hand is tedious and error prone. Geofences make it easier.</p> <p><img loading="lazy" decoding="async" class="alignnone" src="http://farm7.static.flickr.com/6146/5986014124_bbae35ac35_o.jpg" alt="geofences" width="500" height="280" /></p> <p>Geofences are special locations that deserve their own geo privacy settings. Simply draw a circle on a map, choose a geo privacy setting for that area, and you’re done. Existing photos in that location are updated with your new setting, and any time you geotag a photo in that area, it gets that setting too.</p> <p>Geofences are applied at upload time, or when you geotag a photo after uploading it. It doesn&#8217;t matter how you upload or tag your photos: <a href="http://www.flickr.com/photos/organize/">The Organizr</a>, the map on your photo page, and <a href="http://www.flickr.com/services/api/flickr.photos.geo.setLocation.html">the API</a> all use geofences.</p> <p>If you’re ready to dive in, visit your <a href="http://www.flickr.com/account/geo/privacy/">account geo privacy page</a> and make your first geofence.</p> <p></p> <h2>Boring details</h2> <p></p> <p>When dealing with privacy, we need to be conservative, reliable, and have clearly defined rules. The geofences concept is simple, but the edge cases can be confusing.</p> <p><img loading="lazy" decoding="async" class="alignnone" src="http://farm7.static.flickr.com/6020/5978844678_7b76143922_o.png" alt="no geofences, common use case" width="500" height="152" /><br /> <i style="display:inline-block;width:250px;text-align:center;">No geofences</i><i style="display:inline-block;width:250px;text-align:center;">Common use case</i></p> <ul style="padding:10px 25px;"> <li>What happens when you have overlapping geofences?</li> <li>What if you move a photo from outside a geofence to inside one?</li> <li>Where does your default geo privacy setting fit in?</li> </ul> <p></p> <p>The vast majority of Flickr members will never encounter these edge cases. But when they do, Flickr plays it safe and chooses the most private setting from the following options:</p> <ul style="padding:10px 25px;"> <li>The member’s default geo privacy</li> <li>The current geo privacy of the photo (if it was already geotagged)</li> <li>Any geofences for the new location</li> </ul> <p></p> <p>If your account default is more private than your geofences, the geofences won’t take effect. If you have overlapping geofences for a point, the most private one will take effect. If you move a photo whose location was private into a contacts-only geofence, it will stay private.</p> <p><img loading="lazy" decoding="async" class="alignnone" src="http://farm7.static.flickr.com/6147/5978844806_33621c0a67_o.png" alt="overlapping geofences, more private account default" width="500" height="152" /><br /> <i style="display:inline-block;width:250px;text-align:center;">Overlapping geofences</i><i style="display:inline-block;width:250px;text-align:center;">More private account default</i></p> <p>As a reminder, here’s the ranking of our privacy settings:</p> <p><img loading="lazy" decoding="async" class="alignnone" src="http://farm7.static.flickr.com/6016/5985978788_6e89a4aec8_o.png" alt="" width="222" height="345" /></p> <p>Note that friends and family are at the same level in the hierarchy. Your family shouldn’t see locations marked as friends only, and vice versa.</p> <p>With that in mind, what should Flickr do when someone geotags a photo where friends and family overlap? Maybe he wants both friends and family to see it, or maybe he wants neither friends nor family to see it. To really be safe, we must make that location completely private.</p> <p><img loading="lazy" decoding="async" class="alignnone" src="http://farm7.static.flickr.com/6135/5978844962_c63cfa6e03_o.png" alt="friends and family overlap" width="500" height="152" /><br /> <i style="display:inline-block;width:500px;text-align:center;">Friends and family overlap</i></p> <p></p> <h2>Go forth and geotag</h2> <p></p> <p>A few years ago, privacy controls like this would have been overkill. Geo data was new and underused, and the answer to privacy concerns was often, &#8220;you upload it, you deal with it.&#8221;</p> <p>But today, physical places are important to how we use the web. Sometimes you want everyone to know exactly where you took a photo. And sometimes you don’t.</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/geo/" rel="tag">geo</a>, <a href="https://code.flickr.net/tag/privacy/" rel="tag">privacy</a> </span> </footer><!-- .entry-meta --> </article><!-- #post-1638 --> <article id="post-1394" class="post-1394 post type-post status-publish format-standard hentry category-geo tag-clustr tag-geo tag-shapefile"> <header class="entry-header"> <h1 class="entry-title"><a href="https://code.flickr.net/2011/01/08/flickr-shapefiles-public-dataset-2-0/" rel="bookmark">Flickr Shapefiles Public Dataset 2.0</a></h1> <div class="entry-meta"> <span class="sep">Posted on </span><a href="https://code.flickr.net/2011/01/08/flickr-shapefiles-public-dataset-2-0/" title="12:47 am" rel="bookmark"><time class="entry-date" datetime="2011-01-08T00:47:11-08:00">January 8, 2011</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"> <p><a href="http://www.flickr.com/photos/straup/5049664321/"><img loading="lazy" decoding="async" class="alignnone" src="http://farm5.static.flickr.com/4131/5049664321_3282398ebd.jpg" alt="" width="500" height="399" /></a></p> <p>An embarrassingly long time ago we released the first public version of <a href="http://code.flickr.com/blog/2009/05/21/flickr-shapefiles-public-dataset-10/">the Flickr Shapefiles</a>. What does this have to do with Captain America and a cat? Nothing, really.</p> <p>Anyway, we haven&#8217;t completely forgotten about shapefiles and have finally gotten around to generating a new batch (read about <a href="http://code.flickr.com/blog/2008/10/30/the-shape-of-alpha/">Alpha Shapes</a> to find out how it&#8217;s done). When Aaron did the first run we had somewhere around ninety million (90M) geotagged photos. Today we have over one hundred and ninety million (190M) and that number is growing rapidly. Of course lots of those will fall within the boundaries of the existing shapes and won&#8217;t give us any new information, but some of them will improve the boundaries of old shapes, and others will help create new shapes where there weren&#8217;t any before. Version 1 of the dataset had shapes for around one hundred and eighty thousand (180K) WOE IDs, and now we have shapes for roughly two hundred and seventy thousand (270K) WOE IDs. Woo.</p> <p>The dataset is available for download today, available for use under the <a href="http://creativecommons.org/publicdomain/zero/1.0/">Creative Commons Zero Waiver</a>:</p> <p style="text-align: center; padding-top: 20px; padding-bottom: 20px; border: 1px dotted #666; margin-top: 30px; margin-bottom: 30px;"><strong style="font-family: sans-serif; font-size: large;"><a href="http://www.flickr.com/services/shapefiles/2.0/">http://www.flickr.com/services/shapefiles/2.0/</a></strong></p> <h2>Little Johnny JSON</h2> <p><a title="Today I'm a Cop. by jspaw, on Flickr" href="http://www.flickr.com/photos/allspaw/456597470/"><img loading="lazy" decoding="async" src="http://farm1.static.flickr.com/243/456597470_f85795df09.jpg" alt="Today I'm a Cop." width="500" height="333" /></a></p> <p>Originally we provided the full dataset in our own home-grown XML format because, well, it seemed like a good idea. For version two we&#8217;re releasing the shapes in GeoJSON format. We think this is a Good Thing because unlike our  old XML format, <a href="http://wiki.geojson.org/Users">at least one other person in the world</a> already knows how to read and write GeoJSON. For example, Our friends over at <a href="http://stamen.com/">Stamen Design</a> and <a href="http://simplegeo.com/">SimpleGeo</a> have created a ridiculously easy-to-use JavaScript library called <a href="http://polymaps.org/">Polymaps</a> which of course reads GeoJSON out of the box. With a few lines of JavaScript you can render the Flickr shapefiles and start using them without all that pesky XML parsing stuff:</p> <p><a title="Statez by : Nils, on Flickr" href="http://www.flickr.com/photos/slopetrash/5327825882/"><img loading="lazy" decoding="async" src="http://farm6.static.flickr.com/5086/5327825882_df9ec897ed.jpg" alt="Statez" width="500" height="479" /></a></p> <p>Or if GeoJSON doesn&#8217;t suit you you can use a free tool like <a href="http://www.gdal.org/ogr2ogr.html">ogr2ogr</a> to convert it to something that does.</p> <h2>Layers</h2> <p><a title="1000 layers by doug88888, on Flickr" href="http://www.flickr.com/photos/doug88888/3139395660/"><img loading="lazy" decoding="async" src="http://farm4.static.flickr.com/3292/3139395660_38594071e7.jpg" alt="1000 layers" width="333" height="500" /></a></p> <h6>(photo by <a href="http://www.flickr.com/photos/doug88888/">doug88888</a>)</h6> <p>The GeoJSON format allows grouping of features (and their related geometries) into <a href="http://geojson.org/geojson-spec.html#feature-collection-objects">FeatureCollection</a> objects. A FeatureCollection seems to be roughly equivalent to a layer in a typical GIS, or a placetype in <a href="http://developer.yahoo.com/geo/geoplanet/guide/concepts.html">WhereOnEarth-speak</a>. To make the dataset a little easier to manage we decided to break the shapes up into FeatureCollections based on placetype; one each for continents, countries, regions (states), counties, localities (cities), and neighbourhoods. Each of these is its own GeoJSON file in the dataset.</p> <p>Here&#8217;s an example of what one of our GeoJSON objects looks like:</p> <pre>{ "type": "FeatureCollection", "name": "Flickr Shapes Public Dataset 2.0 - Regions", "features": [ { "type": "Feature", "id": 2344541, "properties": { "woe_id": 2344541, "place_id": "Cxf0SmObApi9R9T8", "place_type": "region", "place_type_id": 8, "label": "Barbuda, AG, Antigua and Barbuda", }, "geometry": { "type": "MultiPolygon", "created": 1292444482, "alpha": 0.03, "points": 118, "edges": 17, "is_donuthole": 0, "link": { "href": "http://farm6.static.flickr.com/5209/shapefiles/2344541_20101215_724c4cae47.tar.gz", }, "bbox": [-62.314453125,17.086019515991,-61.690979003906,17.93692779541], "coordinates": [ [ [[-61.739044,17.587740], [-61.735268,17.546171], [-61.690979,17.426649], [-61.765137,17.413546] ... etc</pre> <p>A file is a single FeatureCollection object which holds an array of Features, which each hold a Geometry which is a MultiPolygon, which holds an array of Polygons which in turn each consist of an array of LinearRings. Got it?</p> <h2>You&#8217;ve Been Superseded</h2> <p>We&#8217;ve also included a separate file/layer called flickr_shapes_superseded.geojson. This is a FeatureCollection that consists of all the WOE IDs that have been &#8220;superseded&#8221;. Occasionally (too often?) a WOE ID needs to be <a href="http://developer.yahoo.com/geo/geoplanet/guide/concepts.html">retired and replaced with a new one</a>. We keep up to date with these and are always reverse-geocoding against the latest WOE IDs. However, there are plenty of old photos (and Flickr shapes) that have been assigned to one of these old IDs, and we have shapes for them (currently a little more than nine thousand). A simple solution might be to just re-assign these photos to the new WOE IDs (when a WOE ID is retired its replacement is specified), or even just re-run the reverse-geocoding process. This may not be what the owner of the photo wants; it might come out with a different result than they had at first (which they may have been perfectly happy with), if the size and location of the WOE rectangle changed (which it probably did). So it&#8217;s a problem without a clear solution. And since we have data for these old WOE IDs we&#8217;ve included their associated shapes in the dataset. In most cases there will be shapes corresponding to the new WOE IDs that will over time become more and more accurate as more photos get uploaded and end up being assigned to the new WOE IDs. But you can have the old ones too.</p> <h2>WTF</h2> <p>Sometimes, Clustr just gets it wrong. As mentioned in previous posts many of the Flickr shapes are just plain weird. It may be due to a lack of data (i.e. source photos), a weakness of the algorithm, an inappropriate choice of the alpha parameter or (shame!) a plain old bug. One of the things that surprised us was that Clustr was not supposed to output <em>inner rings</em>, or polygons with holes. It turns out that it does. In the GeoJSON output this can cause some weirdness (depending on what you use to render the shapes) since the GeoJSON is formatted with the assumption that each ring is a distinct polygon, instead of possibly one part of a single polygon with holes in it. This and other weirdness are known issues and something we shall strive to fix in the future, however we felt it best to release the existing dataset now rather than spend forever trying to get it perfect, and end up not releasing anything at all.</p> <p>You may also notice that unlike version 1 of the dataset, there is only a single shape per WOE ID. All of the previous versions of the shapes are still available via <a href="http://www.flickr.com/services/api/flickr.places.getShapeHistory.html">the Flickr API</a>, but in the interests of keeping the file size down we&#8217;ve limited this download to just the latest versions of each shape.</p> <p>And as always, there&#8217;s lots more to do.</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/clustr/" rel="tag">clustr</a>, <a href="https://code.flickr.net/tag/geo/" rel="tag">geo</a>, <a href="https://code.flickr.net/tag/shapefile/" rel="tag">shapefile</a> </span> </footer><!-- .entry-meta --> </article><!-- #post-1394 --> <article id="post-1152" class="post-1152 post type-post status-publish format-standard hentry category-uncategorized tag-cake tag-geo tag-quotable"> <header class="entry-header"> <h1 class="entry-title"><a href="https://code.flickr.net/2009/11/13/in-case-you-wanted-to-bake-us-a-cake/" rel="bookmark">In case you wanted to bake us a cake &#8230;.</a></h1> <div class="entry-meta"> <span class="sep">Posted on </span><a href="https://code.flickr.net/2009/11/13/in-case-you-wanted-to-bake-us-a-cake/" title="4:26 pm" rel="bookmark"><time class="entry-date" datetime="2009-11-13T16:26:39-08:00">November 13, 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"> <p>Ian Sanchez has proposed a new geo data &#8220;test for freeness&#8221; in the spirit of the <a href="http://debian.org">Debian</a> project&#8217;s tests for free software.</p> <blockquote style="margin-right:25px;margin-left:20px;margin-bottom:30px;"> <p style="font-style:italic;">A set of geodata, or a map, is libre only if somebody can give you a cake with that map on top, as a present. &#8211; <a href="http://www.opengeodata.org/2009/11/11/921/">Ian Sanchez</a></p> </blockquote> <p>I mention this because the <a href="http://code.flickr.com/blog/2009/05/21/flickr-shapefiles-public-dataset-10/">Flickr Shapefiles</a> can be used unencumbered as a cake decoration. And we like cake. We like photos of cake as well. But we prefer cake.</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/cake/" rel="tag">cake</a>, <a href="https://code.flickr.net/tag/geo/" rel="tag">geo</a>, <a href="https://code.flickr.net/tag/quotable/" rel="tag">quotable</a> </span> </footer><!-- .entry-meta --> </article><!-- #post-1152 --> <article id="post-1094" class="post-1094 post type-post status-publish format-standard hentry category-uncategorized tag-geo tag-machine-tags tag-open-street-maps tag-tagging"> <header class="entry-header"> <h1 class="entry-title"><a href="https://code.flickr.net/2009/09/28/thats-maybe-a-bit-too-dorky-even-for-us/" rel="bookmark">&#8220;That&#8217;s maybe a bit too dorky, even for us.&#8221;</a></h1> <div class="entry-meta"> <span class="sep">Posted on </span><a href="https://code.flickr.net/2009/09/28/thats-maybe-a-bit-too-dorky-even-for-us/" title="5:50 pm" rel="bookmark"><time class="entry-date" datetime="2009-09-28T17:50:26-07:00">September 28, 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:30px;"> <a href="http://www.flickr.com/photos/rabbitier/3776861543/"><img loading="lazy" decoding="async" src="http://farm4.static.flickr.com/3562/3776861543_d3f69d390b.jpg" width="500" height="322" style="border:1px dotted #ccc;padding:10px;margin-bottom:10px;"/></a></p> <p style="font-size:small;text-align:right;"><a href="http://www.flickr.com/photos/rabbitier/">photo by rabbitier</a></p> </div> <p>Around the time we added <a href="http://www.frankieroberto.com/weblog/1454">support for Open Plaques machine tags</a> Frankie Roberto, the project lead, asked: &#8220;What about supporting Open Street Map (OSM) <code>way</code> machine tags?&#8221;</p> <p>My immediate response was something along the lines of &#8220;That&#8217;s maybe a bit too dorky, even for us.&#8221; Which meant that I kept thinking about it. And now we&#8217;re doing it.</p> <p>If you&#8217;re not sure way what a &#8220;way&#8221; is, it&#8217;s best to start with OpenStreetMap&#8217;s own description of <a href="http://wiki.openstreetmap.org/wiki/Elements">how their metadata is structured</a>:</p> <blockquote style="border-top:solid thin; border-bottom:solid thin;font-family:monospace;margin-top:20px;margin-bottom:20px;padding:20px;font-size:small;"> <p>Our maps are made up of only a few simple elements, namely nodes, ways and relations. Each element may have an arbitrary number of properties (a.k.a. Tags) which are Key-Value pairs (e.g. highway=primary) &#8230;</p> <p>A node is the basic element of the OSM scheme. Nodes consist of latitude and longitude (a single geospacial point) &#8230;</p> <p>A way is an ordered interconnection of at least 2 and at most 2000 nodes that describe a linear feature such as a street, or similar. Should you reach the node limit simply split your way and group all ways in a relation if necessary. Nodes can be members of multiple ways.</p> </blockquote> <p>Frankie&#8217;s interest is principally in marking up buildings in and around Manchester, where he lives. When he <a href="http://www.flickr.com/photos/frankieroberto/3396068360/">tags one of his photos with <code>osm:way=30089216</code></a> we can fetch the metadata (the key-value pairs) for that way <a href="http://wiki.openstreetmap.org/index.php/OSM_Protocol_Version_0.6#Read:_GET_.2Fapi.2F0.6.2F.5Bnode.7Cway.7Crelation.5D.2F.23id">using the OSM API</a> and see that it has the following properties:</p> <pre style="margin-bottom:30px;"> &lt;osm version=&quot;0.6&quot; generator=&quot;OpenStreetMap server&quot;&gt; &lt;way id=&quot;30089216&quot; visible=&quot;true&quot; timestamp=&quot;2009-07-04T12:02:47Z&quot; version=&quot;2&quot; changeset=&quot;1728727&quot; user=&quot;Frankie Roberto&quot; uid=&quot;515&quot;&gt; &lt;nd ref=&quot;331415447&quot;/&gt; &lt;nd ref=&quot;331415448&quot;/&gt; &lt;nd ref=&quot;331415449&quot;/&gt; &lt;nd ref=&quot;331415450&quot;/&gt; &lt;nd ref=&quot;331415447&quot;/&gt; &lt;tag k=&quot;architect&quot; v=&quot;Woodhouse, Corbett &amp; Dean&quot;/&gt; <b style="color:pink;">&lt;tag k=&quot;building&quot; v=&quot;yes&quot;/&gt;</b> &lt;tag k=&quot;created_by&quot; v=&quot;Potlatch 0.10f&quot;/&gt; <b style="color:pink;">&lt;tag k=&quot;name&quot; v=&quot;St George&#x27;s House&quot;/&gt;</b> &lt;tag k=&quot;old_name&quot; v=&quot;YMCA&quot;/&gt; &lt;tag k=&quot;start_date&quot; v=&quot;1911&quot;/&gt; &lt;/way&gt; &lt;/osm&gt; </pre> <p>That allows to us &#8220;expand&#8221; the original machine tag and display a short caption next to the photo, in this case: <i>&#8220;St George&#8217;s House is a building in OpenStreetMap&#8221;</i> with a link back to <a href="http://www.openstreetmap.org/browse/way/30089216">the web page for that way on the OSM site</a>.</p> <div style="margin-bottom:30px;margin-top:30px;"> <a href="http://www.flickr.com/photos/mbiddulph/3888509266/"><img loading="lazy" decoding="async" src="http://farm4.static.flickr.com/3486/3888509266_374b161456.jpg" width="500" height="333" style="border:1px dotted #ccc;padding:10px;margin-bottom:10px;" /></a></p> <p style="font-size:small;text-align:right;"><a href="http://www.flickr.com/photos/mbiddulph/">photo by Matt Biddulph</a></p> </div> <p>The technical terms for this process is &#8220;<a href="http://code.flickr.com/blog/2009/07/06/extraextraextra/">Adding the machine tags extra love</a>&#8220;.</p> <p>You may have noticed that there are a bunch of other key-value pairs in that example, like the name of the architect, that we don&#8217;t do anything with. Which attributes are we looking for, then? The short answer is: Not most of them. The <a href="http://wiki.openstreetmap.org/index.php/Map_features">complete list of map features in OSM</a> is a bit daunting in scope and constantly changing. It would be nice to imagine that we could keep pace with the discussions and the churn but that&#8217;s just not going to happen. If nothing else, the translations alone would become unmanageable.</p> <p>Instead we&#8217;re going to start small and see where it takes us. Here are the list of tagged features in a <code>way</code> or <code>node</code> definition that we pay attention to, and how they&#8217;ll be displayed:</p> <ul style="margin-bottom:30px;"> <li> <p><b>k=name v={NAME}</b><br /> &#8230; is a feature in OpenStreetMap <i>(If present, with another recognized tag we will display the name for the thing being described in place of the more generic &#8220;this is a&#8230;&#8221;)</i></p> </li> <li> <p><b>k=building v=yes</b><br /> &#8230; is a building in OpenStreetMap</p> </li> <li> <p><b>k=historic</b><br />&#8230; is an historic site in OpenStreetMap </li> <li> <p><b>k=cycleway</b><br /> &#8230; is a bicycle path in OpenStreetMap</p> </li> <li> <p><b>k=motorway (v=cycleway)</b><br /> &#8230; is a highway in OpenStreetMap <i>(unless <strong>v</strong> is &#8220;cycleway&#8221; in which case it&#8217;s a bike path)</i></p> </li> <li> <p><b>k=railway v=subway <i>(or tram or monorail or light_rail)</i></b><br /> &#8230; is a subway <i>(or tram or monorail or light_rail)</i> line in OpenStreetMap</p> </li> <li> <p><b>k=railway v=station</b><br /> &#8230; is a train station in OpenStreetMap; if the type of railway is also defined (above) then we&#8217;ll be specific about the type of station. <i>I should mention that as of this writing we&#8217;re still waiting for the translations for &#8220;this is a train station&#8221; to come back because I, uh&#8230; anyway, real soon now.</i></p> </li> <li> <p><b>k=waterway v=stream <i>(or canal or river)</i></b><br /> &#8230; this is a stream <i>(or canal or river)</i> in OpenStreetMap</p> </li> <li> <p><b>k=landuse v=farm <i>(or forest)</i></b><br /> &#8230; this is a farm <i>(or forest)</i> in OpenStreetMap</p> </li> <li> <p><b>k=natural v=forest <i>(or beach)</i></b><br /> &#8230; this is a forest <i>(or beach)</i> in OpenStreetMap</p> </li> </ul> <p>Which means: We&#8217;ve almost certainly got at least some of it wrong. Anyone familiar with OSM features will probably be wondering why we haven&#8217;t included <code><a href="http://wiki.openstreetmap.org/index.php/Map_features#Amenity">amentiy</a></code> or <code><a href="http://wiki.openstreetmap.org/index.php/Map_features#Shop">shop</a></code> tags since they contain a wealth of useful information. I hope we will, but it wasn&#8217;t clear how we should decide which features to support (more importantly, which to exclude) and the number of possible combinations were starting to get a bit out of hand and we have this little photo-sharing site to keep running.</p> <p style="font-style:italic;">This is the part where I casually mention that we&#8217;ve also added <a href="http://www.flickr.com/photos/tags/foursquare:venue=">machine tags extra love for Four Square venues IDs</a>. I&#8217;m just saying&#8230;</p> <p>The features we&#8217;re starting with may seem a bit odd, with a heavy focus on natural land features (and train stations). Some of this is a by-product of the work we&#8217;ve been pursuing with the <a href="http://code.flickr.com/blog/2009/05/06/the-absence-and-the-anchor/">alpha shapes and &#8220;donut holes&#8221;</a>, derived from geotagged photos, and some of it is just trying to shine the spotlight on places and environments that we take for granted.</p> <p>Like I said, we&#8217;ve almost certainly got at least some of it wrong but hopefully we got part of it right and can correct the rest as we go. This one is definitely a bit more of an experiment than some of the others.</p> <div style="margin-bottom:30px;margin-top:30px;"> <a href="http://www.flickr.com/photos/artistofmimicry/2977379629/in/set-72157607092403287/"><img loading="lazy" decoding="async" src="http://farm4.static.flickr.com/3160/2977379629_b6263b39da.jpg" height="500" width="362" style="border:1px dotted #ccc;padding:10px;margin-left:50px;margin-bottom:10px;" /></a></p> <p style="font-size:small;text-align:right;"><a href="http://www.flickr.com/photos/artistofmimicry/">photo by artistofmimicry</a></p> </div> <p>Finally, in the tangentially related department we finished wiring up the RSS/syndication feeds to work properly with wildcard machine tags. That means you can subscribe to a feed of all the (public) photos tagged with <code><a href="http://api.flickr.com/services/feeds/photos_public.gne?tags=osm%3Away%3D&#038;lang=en-us&#038;format=rss_200">osm:way=</a></code> or <code><a href="http://api.flickr.com/services/feeds/photos_public.gne?tags=osm%3Anode%3D&#038;lang=en-us&#038;format=rss_200">osm:node=</a></code> or, if you&#8217;re like me, all the photos of places to eat in <a href="http://www.dopplr.com/">Dopplr</a> with <code><a href="http://api.flickr.com/services/feeds/photos_public.gne?tags=dopplr%3Aeat%3D&#038;lang=en-us&#038;format=rss_200">dopplr:eat=</a></code>.</p> <p>Enjoy!</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/geo/" rel="tag">geo</a>, <a href="https://code.flickr.net/tag/machine-tags/" rel="tag">machine tags</a>, <a href="https://code.flickr.net/tag/open-street-maps/" rel="tag">open street maps</a>, <a href="https://code.flickr.net/tag/tagging/" rel="tag">tagging</a> </span> </footer><!-- .entry-meta --> </article><!-- #post-1094 --> <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-914" class="post-914 post type-post status-publish format-standard hentry category-uncategorized tag-geo tag-iphone tag-mobile tag-nearby"> <header class="entry-header"> <h1 class="entry-title"><a href="https://code.flickr.net/2009/06/23/every-step-a-story/" rel="bookmark">Every Step A Story</a></h1> <div class="entry-meta"> <span class="sep">Posted on </span><a href="https://code.flickr.net/2009/06/23/every-step-a-story/" title="12:59 am" rel="bookmark"><time class="entry-date" datetime="2009-06-23T00:59:40-07:00">June 23, 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:20px;margin-bottom:30px;"> <a href="http://www.flickr.com/photos/28750691@N03/3470681707/" title="stares by aakash nihalani, on Flickr"><img loading="lazy" decoding="async" src="http://farm4.static.flickr.com/3614/3470681707_f09155da22.jpg" width="500" height="300" alt="stares" style="border:1px dotted #ccc;padding:5px"/></a></p> <div style="text-align:right;font-size:small;margin-right:20px;"> <a href="http://www.flickr.com/photos/28750691@N03">photo by aakash nihalani</a> </div> </div> <p>Many of you will have already read on the sister Flickr.com blog that <a href="http://blog.flickr.net/en/2009/06/18/nearby-on-your-phone/">we added &#8220;nearby&#8221; pages to the m.flickr.com site</a>, last week, for phones that support the <a href="http://dev.w3.org/geo/api/spec-source.html">W3C Geolocation API</a> (that means the iPhone, or <a href="http://code.google.com/apis/gears/api_geolocation.html">Gears</a> if you&#8217;ve got an Android phone).</p> <p><a href="http://www.flickr.com/photos/81183458@N00/">Ross</a> summed it up nicely, writing:</p> <blockquote style="margin-left:15px;margin-right:15px;font-family:sans-serif;color:darkslategrey;"> <p>Use this to explore your neighborhood, or find the best places to photograph local landmarks from. Reload the page as you walk around a city, and see the things that have happened there in the past. You&#8217;ll see a place through the eyes of the flickrverse.</p> </blockquote> <p>We&#8217;ve also updated the <a href="http://blog.flickr.net/en/2009/02/24/an-abundant-present/">nearby pages on the main site</a> so that when you go to&#8230;</p> <p style="text-align:center;font-size:large;"><a href="http://www.flickr.com/nearby/">www.flickr.com/nearby</a></p> <p>&#8230;without a trailing latitude and longitude, we&#8217;ll see if you have any one of a variety of browser plugins that can tell us your location. This is similar to the <code>Find My Location</code> button on the site maps, that <a href="http://code.flickr.com/blog/2009/04/16/changelog-find-my-location-button/">Dan described back in April</a>, but for nearby!</p> <p>Like the iPhone&#8217;s Mobile Safari browser, the <a href="http://www.mozilla.com/en-US/firefox/3.5/releasenotes/">next version of Firefox</a> (version 3.5, currently being tested as a release candidate) will also support <a href="http://www.mozilla.com/en-US/firefox/geolocation/">automagic geolocation</a> so you won&#8217;t even need to install any plugins or other widgets.</p> <p> Just point your browser to <a href="http://www.flickr.com/nearby">www.flickr.com/nearby/</a> and away you go.</p> <div style="margin-top:20px;margin-bottom:30px;"> <a href="http://www.flickr.com/photos/lunchwithcandy/sets/72157606241903059/"><img loading="lazy" decoding="async" src="http://farm4.static.flickr.com/3001/2680469636_e8213ff644.jpg" width="500" height="375" alt="CIMG2492.JPG" style="border:1px dotted #ccc;padding:5px" /></a></p> <div style="text-align:right;font-size:small;margin-right:20px;"> <a href="http://www.flickr.com/photos/lunchwithcandy">photo by Candy Chang</a> </div> </div> <p>The other piece of nearby-related news is Tom Taylor&#8217;s fantastic <a href="http://www.fireeagle.com/">FireEagle</a> application for the Mac called <a href="http://tomtaylor.co.uk/projects/clarke/">Clarke</a>.</p> <p>Clarke is a toolbar app that sits quietly in the background and scans the available wireless networks using the <a href="http://www.skyhookwireless.com/">Skyhook APIs</a> to triangulate your position and updates FireEagle with your current location.</p> <p>In addition to being an excellent FireEagle client, Clarke also supports <a href="http://code.flickr.com/blog/2009/02/09/things-im-standing-next-to/">Nearby-iness</a> for a variety of services, including Flickr.</p> <div style="text-align:center;margin-top:20px;margin-bottom:20px;"> <img loading="lazy" decoding="async" src="http://farm3.static.flickr.com/2448/3652363088_dc1302c3fc_o.png" height="188" width="359" style="border:1px dotted #ccc;padding:5px;" /></div> <p>I&#8217;m writing this post from <a href="http://www.flickr.com/groups/flickrheadquarters/pool/">FlickrHQ</a>, in downtown San Francisco, so when I choose <a href="http://www.flickr.com/">Flickr</a> from Clarke&#8217;s <code>Nearby</code> menu it loads the following page in my web browser:</p> <p style="text-align:center;font-size:large;"><a href="http://www.flickr.com/nearby/37.794116,-122.402776">http://www.flickr.com/nearby/37.794116,-122.402776</a></p> <p>Which is kind of awesome! It means that you can travel to a brand new place, open up your laptop and just like magic <i>(read: once you&#8217;ve connected to a wireless network)</i> see pictures nearby.</p> <p>Woosh!</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/geo/" rel="tag">geo</a>, <a href="https://code.flickr.net/tag/iphone/" rel="tag">iphone</a>, <a href="https://code.flickr.net/tag/mobile/" rel="tag">mobile</a>, <a href="https://code.flickr.net/tag/nearby/" rel="tag">nearby</a> </span> </footer><!-- .entry-meta --> </article><!-- #post-914 --> <article id="post-904" class="post-904 post type-post status-publish format-standard hentry category-uncategorized tag-clustr tag-creativecommons tag-geo tag-shapefiles"> <header class="entry-header"> <h1 class="entry-title"><a href="https://code.flickr.net/2009/05/21/flickr-shapefiles-public-dataset-10/" rel="bookmark">Flickr Shapefiles Public Dataset 1.0</a></h1> <div class="entry-meta"> <span class="sep">Posted on </span><a href="https://code.flickr.net/2009/05/21/flickr-shapefiles-public-dataset-10/" title="11:58 pm" rel="bookmark"><time class="entry-date" datetime="2009-05-21T23:58:53-07:00">May 21, 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> <a href="http://www.flickr.com/photos/dianeperson/3356117774/" title="Yes, it is. by dp., on Flickr"><img loading="lazy" decoding="async" src="http://farm4.static.flickr.com/3442/3356117774_d5b4d901a6.jpg" width="500" height="375" alt="Yes, it is." style="padding:10px;border:1px dotted #ccc;margin-top:20px;margin-bottom:10px;"/></a></p> <div style="font-size:small;margin-bottom:20px;text-align:right"> photo by <a href="http://www.flickr.com/photos/dianeperson/3356117774/">dp</a> </div> </p></div> <p>The name sort of says it all, really, but here&#8217;s the short version:</p> <p>We are releasing all of <a href="http://code.flickr.com/blog/2008/10/30/the-shape-of-alpha/">the Flickr shapefiles</a> as a single download, available for use under the <a href="http://creativecommons.org/publicdomain/zero/1.0/">Creative Commons Zero Waiver</a>. That&#8217;s fancy-talk for &#8220;public domain&#8221;.</p> <p>The long version is:</p> <blockquote> <p>To the extent possible under law, Flickr has waived all copyright and related or neighboring rights to the &#8220;Flickr Shapefiles Public Dataset, Version 1.0&#8221;. This work is published from the United States. <i>While you are under no obligation to do so, wherever possible it would be extra-super-duper-awesome if you would attribute <a href="http://www.flickr.com/">flickr.com</a> when using the dataset. Thanks!</i></p> </blockquote> <p>We are doing this for a few reasons.</p> <ul> <li style="margin-bottom:15px;">We want people (developers, researchers and anyone else who wants to play) to find new and interesting ways to use the shapefiles and we recognize that, in many cases, this means having access to the entire dataset.</li> <li style="margin-bottom:15px;font-size:auto;">We want people to feel both comfortable and confident using this data in their projects and so we opted for a public domain license so no one would have to spend their time wondering about the issue of licensing. We also think the work that the <a href="http://www.creativecommons.org/">Creative Commons</a> crew is doing is valuable and important and so we chose to release the shapefiles under the <a href="http://wiki.creativecommons.org/CC0">CC0</a> waiver as a show of support.</li> <li style="margin-bottom:15px;">We want people to create their own shapefiles and to share them so that other people (including us!) can find interesting ways to use them. We&#8217;re pretty sure there&#8217;s something to this &#8220;shapefile stuff&#8221; even if <a href="http://www.flickr.com/photos/junku/sets/303691/">we can&#8217;t always put our finger on it</a> so if publishing the dataset will encourage others to do the same then we&#8217;re happy to do so.</li> </ul> <div> <a href="http://www.flickr.com/photos/mbkepp/3205712102/"><img loading="lazy" decoding="async" src="http://farm4.static.flickr.com/3344/3205712102_0997aa9218.jpg" height="500" width="500" alt="buster tries to solve our TV problems" style="padding:10px;border:1px dotted #ccc;margin-top:20px;margin-bottom:10px;"/></a></p> <div style="font-size:small;margin-bottom:20px;text-align:right"> photo by <a href="http://www.flickr.com/photos/mbkepp/3205712102/">mbkepp</a> </div> </p></div> <p>The dataset itself is pretty straightforward. It is a single 549MB XML file uncompressed (84MB when zipped). The data model is a simple, pared-down version of what you can already get via <a href="http://www.flickr.com/services/api/">the Flickr API</a> with an emphasis on the <i>shape</i> data.</p> <p>Everything lives under a single root <code>places</code> element. For example:</p> <pre style="margin-bottom:20px;"> &lt;place woe_id=&quot;26&quot; place_id=&quot;BvYpo7abBw&quot; place_type=&quot;locality&quot; place_type_id=&quot;7&quot; label=&quot;<a href="http://www.flickr.com/places/CA/QC/Arvida"">Arvida, Quebec, Canada</a>&quot;&gt; &lt;shape created=&quot;1226804891&quot; alpha=&quot;0.00015&quot; points=&quot;45&quot; edges=&quot;15&quot; is_donuthole=&quot;0&quot;&gt; &lt;polylines <b style="color:pink;">bbox=&quot;48.399932861328,-71.214576721191,48.444801330566,-71.157333374023&quot;</b>&gt; &lt;polyline&gt; <b style="color:pink;">&lt;!-- points go here--&gt;</b> &lt;/polyline&gt; &lt;/polylines&gt; &lt;shapefile url=&quot;<b style="color:pink;">http://farm4.static.flickr.com/3203/shapefiles/26_20081116_082a565562.tar.gz</b>&quot; /&gt; &lt;/shape&gt; &lt;!-- and so on --&gt; &lt;/place&gt; </pre> <p>Aside from the quirkiness of the shapes themselves, it is worth remembering that some of them may just be wrong. We work pretty hard to prevent Undue Wronginess &trade; from occurring but we&#8217;ve seen it happen in the past and so it would be, well, wrong not to acknowledge the possibility. On the other hand we don&#8217;t think we would have gotten this far if it wasn&#8217;t mostly right but if you see something that looks weird, <a href="http://tech.groups.yahoo.com/group/yws-flickr/">please let us know</a></p> <p>The dataset is available for download, today, from:</p> <p style="text-align:center;padding-top:20px;padding-bottom:20px;border:1px dotted #666;margin-top:30px;margin-bottom:30px;"><b style="font-family:sans-serif;font-size:large;"><a href="http://www.flickr.com/services/shapefiles/1.0/">http://www.flickr.com/services/shapefiles/1.0/</a></b></p> <p>The other exciting piece of news is that the <a href="http://www.ygeoblog.com/">Yahoo! GeoPlanet</a> team has also released <a href="http://developer.yahoo.com/geo/">a public dataset of <i>all their WOE IDs</i></a> that include parent IDs, adjacent IDs and aliases (that&#8217;s just more fancy-talk for &#8220;different names for the same place&#8221;) under the <a href="http://creativecommons.org/licenses/by/2.0/">Creative Commons Attribution License</a>.</p> <p>Which is pretty awesome, really.</p> <div> <a href="http://www.flickr.com/photos/straup/3539879004/" title="Now &amp; Then by straup, on Flickr"><img loading="lazy" decoding="async" src="http://farm3.static.flickr.com/2333/3539879004_af2c145472.jpg" width="500" height="338" alt="Now &amp; Then" style="padding:10px;border:1px dotted #ccc;margin-top:20px;margin-bottom:30px;"/></a> </div> <p>They&#8217;ve also released the <a href="http://developer.yahoo.com/geo/placemaker/">GeoPlanet Placemaker API</a>. You feed it a big old chunk of free-form text and then &#8220;the service identifies places mentioned in text, disambiguates those places, and returns unique identifiers (WOEIDs) for each, as well as information about how many times the place was found in the text, and where in the text it was found.&#8221;</p> <p>Again, <a href="http://www.flickr.com/photos/mbiddulph/2327731497/">Moar Awesome</a>.</p> <p>And a bit dorky. It&#8217;s true. The data, all by itself, won&#8217;t tell a story. It needs <i>people and history</i> to make that possible but as you poke around all this stuff don&#8217;t forget the value of having a big giant, and now open, database of unique identifiers and what is possible when you use them as a bridge between other things. Without WOE IDs we wouldn&#8217;t have been able to <a href="http://code.flickr.com/blog/2008/10/30/the-shape-of-alpha/">generate the shapefiles</a> or do <a href="http://www.flickr.com/places/">the Places project</a> or provide a way to <a href="http://toys.lerdorf.com/archives/49-Select-from-World.html">search for photos by place, rather than location</a>.</p> <p>Enjoy!</p> <p>Oh, and those &#8220;unidentified&#8221; outliers, in New York City, that I mentioned in <a href="http://code.flickr.com/blog/2009/05/06/the-absence-and-the-anchor/">the last post about the donut hole shapefiles</a>: <i>The Bronx Zoo, Coney Island and Shea Stadium</i>. Of course!</p> <div> <a href="http://www.flickr.com/photos/straup/3536471854/" title="(if you lived here) by straup, on Flickr"><img loading="lazy" decoding="async" src="http://farm4.static.flickr.com/3297/3536471854_7e10436b3a.jpg" width="500" height="375" alt="(if you lived here)" style="padding:10px;border:1px dotted #ccc;margin-top:20px;margin-bottom:10px;"/></a></p> <div style="font-size:small;margin-bottom:20px;text-align:right">photos by <a href="http://www.flickr.com/photos/ajagendorf25/3457595954/">ajagendorf25</a>, <a href="http://www.flickr.com/photos/auggie_tolosa/3025514778">auggie tolosa</a> and <i>the sky</i> </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/clustr/" rel="tag">clustr</a>, <a href="https://code.flickr.net/tag/creativecommons/" rel="tag">creativecommons</a>, <a href="https://code.flickr.net/tag/geo/" rel="tag">geo</a>, <a href="https://code.flickr.net/tag/shapefiles/" rel="tag">shapefiles</a> </span> </footer><!-- .entry-meta --> </article><!-- #post-904 --> <article id="post-885" class="post-885 post type-post status-publish format-standard hentry category-uncategorized tag-clustr tag-geo tag-shapefiles"> <header class="entry-header"> <h1 class="entry-title"><a href="https://code.flickr.net/2009/05/06/the-absence-and-the-anchor/" rel="bookmark">The Absence and the Anchor</a></h1> <div class="entry-meta"> <span class="sep">Posted on </span><a href="https://code.flickr.net/2009/05/06/the-absence-and-the-anchor/" title="9:18 pm" rel="bookmark"><time class="entry-date" datetime="2009-05-06T21:18:40-07:00">May 6, 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:20px; margin-bottom:30px;"> <a href="http://www.flickr.com/photos/selflesh/3147200065/" title="Sketch | 12.28.08 by selflesh, on Flickr"><img loading="lazy" decoding="async" src="http://farm4.static.flickr.com/3103/3147200065_cfc089d2d2.jpg" width="500" height="375" alt="Sketch | 12.28.08" style="border:1px dotted #ccc;padding:10px;margin-bottom:10px;"/></a></p> <div style="font-size:small;text-align:right;"><a href="http://www.flickr.com/photos/selflesh">photo by selflesh</a></div> </p></div> <p>Back in January, I wrote a blog post about <a href="http://code.flickr.com/blog/2009/01/12/living-in-the-donut-hole/">some experimental work that I&#8217;d been doing with the shapefile data</a> we derive from geotagged photos. I was investigating the idea of generating shapefiles for a given location using not the photos associated with that place but, instead, from the photos associated with the <i>children</i> of that place. For example, London:</p> <div style="margin-top:20px; margin-bottom:20px;"> <a href="http://www.flickr.com/photos/straup/3504862388/" title="London by straup, on Flickr"><img loading="lazy" decoding="async" src="http://farm4.static.flickr.com/3561/3504862388_484a0b4d72.jpg" width="500" height="405" alt="London" style="border:1px dotted #ccc;padding:10px;"/></a> </div> <p>The larger pink shape is what we (Flickr) think of as the &#8220;city&#8221; of London. The smaller white shapes are its neighbourhoods. The red shapes represent an entirely new shapefile that we created by collecting all the points for those neighbourhoods and running them through <a href="http://code.flickr.com/blog/2009/04/07/the-only-question-left-is/">Clustr</a>, the tool we use to generate shapes.</p> <p>For lack of any better name I called these shapes &#8220;donut holes&#8221; because, well, because that&#8217;s what they look like. The larger shape is a pretty accurate reflection of the greater metropolitain area of London, the place that has grown and evolved over the years out of the city center that most people would recognize in the smaller red shape. Our goal with the shapefiles has always been to use them to better reverse-geocode people&#8217;s geotagged photos so these sorts of <a href="http://www.flickr.com/search/?q=timbits&#038;ss=2">variations on a theme</a> can better help us understand <a href="http://magicalnihilism.wordpress.com/2009/04/22/a-palimpsest-for-a-place/">where a place is</a>.</p> <p>Like New York City. No one gets New York right including us try as we might (though, in fairness, it&#8217;s gotten better recently (no, really)) and even I am hard pressed to explain the giant pink blob, below, that is supposed to be New York City. On the other hand, the red donut hole shape even though (perhaps, because) it spills in to New Jersey a bit is actually a pretty good reflection of the way people move through the city as a whole.</p> <div style="margin-top:20px; margin-bottom:20px;"> <a href="http://www.flickr.com/photos/straup/3505864039/" title="NYC by straup, on Flickr"><img loading="lazy" decoding="async" src="http://farm4.static.flickr.com/3347/3505864039_7f71cdef4d.jpg" width="500" height="408" alt="NYC" style="border:1px dotted #ccc;padding:10px;" /></a> </div> <p>It could play New York on TV, I think.</p> <p>I&#8217;m not sure how to explain the outliers yet, either, other than to say the shapefiles for city-derived donut holes may contain up to 3 polygons (or &#8220;records&#8221; in proper <a href="http://www.esri.com/library/whitepapers/pdfs/shapefile.pdf">Shapefile-speak</a>) compared to a single polygon for plain-old city shapes so if nothing else it&#8217;s an indicator of where people are taking photos.</p> <p><i>If the shapefiles themselves are uncharted territory, the donut holes are the fuzzy horizon even further off in the distance. We&#8217;re not really sure where this will take us but we&#8217;re pretty sure there&#8217;s something to it all so we&#8217;re eager to share it with people and see what they can make of it too.</i></p> <div style="margin-top:20px; margin-bottom:20px;"> <a href="http://www.flickr.com/photos/straup/3504858798/" title="Vietnam by straup, on Flickr"><img loading="lazy" decoding="async" src="http://farm4.static.flickr.com/3556/3504858798_517fb8c448_b.jpg" width="512" height="1024" alt="Vietnam" style="border:1px dotted #ccc;padding:10px;"/></a> </div> <p>(This is probably still my favourite shapefile ever.)</p> <p>Starting today, the donut hole shapes are available for developers to use with their developer magic via the <a href="http://www.flickr.com/services/api">Flickr API</a>.</p> <p>At the moment we are only rendering donut hole shapefiles for cities and countries. I suppose it might make sense to do the same for continents but we probably won&#8217;t render states (or provinces) simply because there is too much empty unphotographed space between the cities to make it very interesting.</p> <p>There are also relatively few donut holes compared to the corpus of all the available shapefiles so rather than create an entirely new API method we&#8217;ve included them in the <a href="http://www.flickr.com/services/api/flickr.places.getShapeHistory.html">flickr.places.getShapeHistory</a> API method which returns all the shapefiles ever created for a place. Each <code>shape</code> element now contains an <b>is_donuthole</b> attribute. Here&#8217;s what it looks like for <a href="http://www.flickr.com/places/United+Kingdom/England/London">London</a>:</p> <pre style="margin-top:20px; margin-bottom:30px;"> &lt;shapes total="6" woe_id="44418" place_id=".2P4je.dBZgMyQ" place_type="locality" place_type_id="7"&gt; &lt;shape created="1241477118" alpha="9.765625E-05" count_points="275464" count_edges="333" <b style="color:pink;">is_donuthole="1"</b>&gt; &lt;!-- shape data goes here... --&gt; &lt;/shape&gt; &lt;!-- and so on -&gt; &lt;/shapes&gt; </pre> <p>Meanwhile, the <a href="http://www.flickr.com/services/api/flickr.places.getInfo.html">places.getInfo</a> API method has been updated to included a <b>has_donuthole</b> attribute, to help people decide whether it&#8217;s worth calling the <code>getShapeHistory</code> method or not. Again, using London as the example:</p> <pre style="margin-top:20px; margin-bottom:30px;"> &lt;place place_id=".2P4je.dBZgMyQ" woeid="44418" latitude="51.506" longitude="-0.127" place_url="/United+Kingdom/England/London" place_type="locality" place_type_id="7" timezone="Europe/London" name="London, England, United Kingdom" <b style="color:pink;">has_shapedata="1"</b>&gt; &lt;shapedata created="1239037710" alpha="0.00029296875" count_points="406594" count_edges="231" <b style="color:pink;">has_donuthole="1" is_donuthole="0"</b>&gt; &lt;!-- and so on --&gt; &lt;/place&gt; </pre> <p>Finally, here&#8217;s another picture by <a href="http://selflesh.blogspot.com/">Shannon Rankin</a> mostly just because I like her work so much. Enjoy!</p> <div style="margin-top:20px; margin-bottom:20px;"> <a href="http://www.flickr.com/photos/selflesh/2913186810/" title="Guardian by selflesh, on Flickr"><img loading="lazy" decoding="async" src="http://farm4.static.flickr.com/3172/2913186810_2e8f3fd2d6.jpg" width="500" height="500" alt="Guardian" style="border:1px dotted #ccc;padding:10px;margin-bottom:10px;"/></a></p> <div style="font-size:small;text-align:right;"><a href="http://www.flickr.com/photos/selflesh">photo by selflesh</a></div> </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/geo/" rel="tag">geo</a>, <a href="https://code.flickr.net/tag/shapefiles/" rel="tag">shapefiles</a> </span> </footer><!-- .entry-meta --> </article><!-- #post-885 --> <nav id="nav-below"> <h3 class="assistive-text">Post navigation</h3> <div class="nav-previous"><a href="https://code.flickr.net/tag/geo/page/2/" ><span class="meta-nav">&larr;</span> Older posts</a></div> <div class="nav-next"></div> </nav><!-- #nav-above --> </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="geo+api"> api&nbsp;(24) </a> </li> <li> <a href="#" class="jetpack-search-filter__link" data-filter-type="taxonomy" data-taxonomy="post_tag" data-val="geo+geo"> geo&nbsp;(13) </a> </li> <li> <a href="#" class="jetpack-search-filter__link" data-filter-type="taxonomy" data-taxonomy="post_tag" data-val="geo+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="geo+javascript"> javascript&nbsp;(9) </a> </li> <li> <a href="#" class="jetpack-search-filter__link" data-filter-type="taxonomy" data-taxonomy="post_tag" data-val="geo+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=1742994401g" ></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.4/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-external-media":"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-external-media":"jetpack_vendor/automattic/jetpack-external-media/","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=1742994401j" ></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.4%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%22253e24e424%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.4/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=202514" id="jp-tracks-js"></script> <script type="text/javascript" id="jetpack-stats-js-before"> /* <![CDATA[ */ _stq = window._stq || []; _stq.push([ "view", JSON.parse("{\"v\":\"ext\",\"blog\":\"185426273\",\"post\":\"0\",\"tz\":\"-7\",\"srv\":\"code.flickr.net\",\"hp\":\"vip\",\"j\":\"1:14.4.1\"}") ]); _stq.push([ "clickTrackerInit", "185426273", "0" ]); /* ]]> */ </script> <script type="text/javascript" src="https://stats.wp.com/e-202514.js" id="jetpack-stats-js" defer="defer" data-wp-strategy="defer"></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