<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="4.4.1">Jekyll</generator><link href="https://blog.opencagedata.com/feed.xml" rel="self" type="application/atom+xml" /><link href="https://blog.opencagedata.com/" rel="alternate" type="text/html" /><updated>2026-07-27T09:57:26+00:00</updated><id>https://blog.opencagedata.com/feed.xml</id><title type="html">OpenCage Blog</title><subtitle>Updates and musings from the makers of the &lt;a href=&quot;https://opencagedata.com&quot;&gt;OpenCage Geocoding API&lt;/a&gt;
</subtitle><entry><title type="html">Geotrivia - July 2026: summer break</title><link href="https://blog.opencagedata.com/post/geotrivia-july-2026" rel="alternate" type="text/html" title="Geotrivia - July 2026: summer break" /><published>2026-07-27T05:14:00+00:00</published><updated>2026-07-27T05:14:00+00:00</updated><id>https://blog.opencagedata.com/post/geotrivia-202607</id><content type="html" xml:base="https://blog.opencagedata.com/post/geotrivia-july-2026"><![CDATA[<div class="pb-2">
  <a href="/">Blog</a> &gt; <a href="/tagged/fridaygeotrivia">Monthly Geo Trivia questions</a>
</div>

<hr />

<script>
  // for hiding/showing geotrivia answer
  function toggle(id) {
      var state = document.getElementById(id).style.display;
      if (state == 'block') {
          document.getElementById(id).style.display = 'none';
      } else {
          document.getElementById(id).style.display = 'block';
      }
  } 
</script>

<p>Hi everyone,</p>

<p>This month we’re taking a summer break, so no #fridaygeotrivia, our
<a href="/tagged/fridaygeotrivia">a social media geotrivia contest</a> this month.</p>

<p>We will see you in August. Until then you can practice by reviewing <a href="/tagged/fridaygeotrivia">past questions</a>.</p>

<p>Enjoy the summer break.</p>

<p><a href="https://mastodon.social/@freyfogle">Ed</a></p>]]></content><author><name></name></author><category term="geotrivia" /><category term="mastodon" /><category term="fridaygeotrivia" /><summary type="html"><![CDATA[The July 2026 edition of #fridaygeotrivia - our monthly social media geography quiz. Join us on the final Friday of each month]]></summary></entry><entry><title type="html">Interview: Matthew Whilden on Mapping the Unexpected</title><link href="https://blog.opencagedata.com/post/openstreetmap-interview-watmildon" rel="alternate" type="text/html" title="Interview: Matthew Whilden on Mapping the Unexpected" /><published>2026-07-17T08:06:10+00:00</published><updated>2026-07-17T08:06:10+00:00</updated><id>https://blog.opencagedata.com/post/watmildon</id><content type="html" xml:base="https://blog.opencagedata.com/post/openstreetmap-interview-watmildon"><![CDATA[<p>Today in our <a href="/tagged/osminterview">OpenStreetMap (OSM) interview series</a> we are speaking with <a href="https://en.osm.town/@watmildon/">Matthew Whilden</a> about his journey as an OSM mapper, his work supporting the community through the OpenStreetMap US Board, and his passion for creative mapping. From parks and playgrounds to hidden features discovered through geocoding and aerial imagery, Matthew’s story highlights the curiosity and community spirit that shape OpenStreetMap.</p>

<p>Here is an example of the cathedrals of Germany that we created using Matthew’s <a href="https://watmildon.github.io/XofY/">XofY tool</a>.
<a href="https://watmildon.github.io/XofY/" class="center-image"><img src="/images/cathedrals.png" alt="Cathedrals of Germany from Matthew's XofY tool" /></a></p>

<h3 id="1-can-you-introduce-yourself-and-tell-us-a-bit-about-your-openstreetmap-journey-what-first-got-you-hooked-on-mapping">1. Can you introduce yourself and tell us a bit about your OpenStreetMap journey? What first got you hooked on mapping?</h3>

<p><em>I started adding parks and playgrounds when my daughter was born. Both as a simple pastime while she napped, but also a way to explore more things to do with her as she got older. Editing the map is a lovely way to learn more about the world.</em></p>

<h3 id="2-youve-mentioned-using-geocoding-to-turn-lists-of-addresses-into-mapping-adventures-for-example-tracking-down-drive-in-movie-theaters-can-you-walk-us-through-your-osm-sleuthing-workflow-and-share-some-of-your-favorite-discoveries">2. You’ve mentioned using geocoding to turn lists of addresses into mapping adventures, for example tracking down drive in movie theaters. Can you walk us through your “OSM sleuthing” workflow and share some of your favorite discoveries?</h3>

<p><em>For many years I was obsessed with odd things you can find on aerials (ex: <a href="https://en.osm.town/@watmildon/113207012226449177">jet sprint boat race lakes</a>). Things that aren’t tricky to find, so long as you know, roughly, where to look. Many oddities will have someone keeping track of them with a list of addresses but for OSM, we can do one better! Geocoding with Nominatim or OpenCage makes for a great start to nailing down the exact locations of these things.</em></p>

<h3 id="3-as-a-member-of-the-openstreetmap-us-board-what-are-your-priorities-for-supporting-the-community-what-opportunities-and-challenges-do-you-see-for-osm-in-the-united-states">3. As a member of the OpenStreetMap US Board, what are your priorities for supporting the community? What opportunities and challenges do you see for OSM in the United States?</h3>

<p><em>We can get further by all rowing in the same direction. Finding places where we can help sort out the common ground between mappers, app developers, imagery providers, educators, etc., is always a huge win. It’s why I’m so proud of the multitude of <a href="https://openstreetmap.us/get-involved/working-groups/">working groups</a> we have and the great work we support through those groups.</em></p>

<p><em>Fundraising is always top of mind as a board member. I would love to be able to hire a few more technical staff and navigating the ever changing landscape of where memberships and grants are coming from continues to be a challenge.</em></p>

<p><a href="https://openstreetmap.us/get-involved/working-groups/" class="center-image"><img src="/images/workinggroups.png" alt="OSM working groups" /></a></p>

<h3 id="4-a-lot-of-people-assume-that-mapping-is-just-about-adding-roads-or-buildings-what-are-some-of-the-more-unusual-or-niche-projects-youve-worked-on-and-why-do-those-kinds-of-contributions-matter">4. A lot of people assume that mapping is just about adding roads or buildings. What are some of the more unusual or niche projects you’ve worked on, and why do those kinds of contributions matter?</h3>

<p><em>I strongly recommend everyone have at least one really niche tag or type of map data that they are super obsessed over. Preferably something super weird. It’s largely all volunteer work so if we’re not having fun then we’re gonna burn ourselves out! We need more things mapped and ALSO more tools, tutorials, and hype videos to help folks stay engaged.</em></p>

<p><em>Here’s some things I’ve been obsessive about to help give folks a sense of what I mean:</em></p>

<p>A <a href="https://overpass-ultra.us/#map&amp;query=url:https://raw.githubusercontent.com/watmildon/HighSchoolMascotMap/refs/heads/main/HSMascotMap_Postpass.ultra&amp;m=0.92/0/0">map</a> showing school <a href="https://wiki.openstreetmap.org/wiki/Key:mascot">mascots</a> around the world.</p>

<p>I wrote a long <a href="https://community.openstreetmap.org/t/josm-sidewalk-plugin-tutorial/134088">tutorial</a> for a JOSM plugin to help add sidewalk coverage.</p>

<p>I got really into learning about nautical beacon tagging and ended up making a whole <a href="https://watmildon.github.io/lighthouse-map-libre/">website to view blinking lights</a>.</p>

<p>I spent a few hours adding <a href="https://wiki.openstreetmap.org/wiki/Key:brand:wikidata">Wikidata tagging</a> so folks could sort out the two different competing <a href="https://overpass-ultra.us/#map&amp;m=5.78/46.725/-120.779&amp;query=url:https://raw.githubusercontent.com/watmildon/i-love-ultra/main/UltraFiles/Colorize-Features-Taco-Time-By-Brand.ultra">restaurants named Taco Time</a>.</p>

<p><a href="https://overpass-ultra.us/#map&amp;query=url:https://raw.githubusercontent.com/watmildon/HighSchoolMascotMap/refs/heads/main/HSMascotMap_Postpass.ultra&amp;m=0.92/0/0" class="center-image"><img src="/images/school-mascots.png" alt="school mascots" /></a></p>

<h3 id="5-openstreetmap-is-powered-by-a-global-community-of-volunteers-what-advice-would-you-give-to-someone-who-wants-to-move-beyond-simple-edits-and-start-exploring-investigating-and-contributing-in-more-creative-ways">5. OpenStreetMap is powered by a global community of volunteers. What advice would you give to someone who wants to move beyond simple edits and start exploring, investigating, and contributing in more creative ways?</h3>

<p><em>Honestly, see what other folks are doing. Join us in the <a href="https://slack.openstreetmap.us/">OSM US Slack</a>, the <a href="https://discord.com/invite/fQ9MdVHFt">OSM World Discord</a>, on the <a href="https://en.osm.town/home">OSM specific Mastodon server</a>, or any of the million other places mappers are meeting up and sharing ideas, insights, and schemes. I am constantly finding new ways of doing things, new tags, new tools, and inspiration from folks in these spaces.</em></p>

<h3 id="6-openstreetmap-recently-celebrated-its-20th-anniversary-looking-ahead-where-would-you-like-to-see-the-project-and-its-community-20-years-from-now">6. OpenStreetMap recently celebrated its 20th anniversary. Looking ahead, where would you like to see the project and its community 20 years from now?</h3>

<p><em>I’m very lucky to be part of a large and long running community group here at OpenStreetMap US. A huge part of the success is having dedicated and consistent staff that can grow in their roles without having to split time paying their bills with other work. I would love to see more local chapters grow and have support staff for local programs, regional outreach, specific tech needs etc. We have a lot of work to still do and the sky is the limit.</em></p>

<hr />

<p>Matthew’s journey shows that mapping is about more than documenting what exists. It is a way to explore, learn, and connect with the world around us. His creative approach reminds us that every mapper can bring something unique to OpenStreetMap, whether through a niche interest or a community project. Thank you, Matthew, for sharing your story and for the energy you bring to the OSM community.</p>

<p>Happy mapping</p>

<p><a href="https://mastodon.social/@SuperDani">Danielle</a></p>

<p>Please let us know if your community would like to be part of
<a href="https://blog.opencagedata.com/tagged/osminterview">our interview series</a>
here on our blog. If you are or know of someone we should interview, please get in touch, we’re <a href="/post/98139732993/call-for-open-geo-openstreetmap-interviewees">always looking to promote people doing interesting things with open geo data</a>.</p>]]></content><author><name></name></author><category term="interview" /><category term="openstreetmap" /><category term="osminterview" /><category term="matthewwhilden" /><summary type="html"><![CDATA[Interview with Matthew Whilden about Mapping the Unexpected.]]></summary></entry><entry><title type="html">GDPR refresh</title><link href="https://blog.opencagedata.com/post/gdpr-refresh" rel="alternate" type="text/html" title="GDPR refresh" /><published>2026-07-15T08:15:40+00:00</published><updated>2026-07-15T08:15:40+00:00</updated><id>https://blog.opencagedata.com/post/gdpr-refresh</id><content type="html" xml:base="https://blog.opencagedata.com/post/gdpr-refresh"><![CDATA[<p>Hi everyone,</p>

<p>I hope you are enjoying the summer.</p>

<p>Today we have a quick note to share that we’ve launched a visual refresh of
<a href="https://opencagedata.com/gdpr">our GDPR / data protection page</a>.</p>

<p><a href="https://opencagedata.com/gdpr" class="center-image"><img src="/images/gdpr-refresh.png" alt="&quot;Screenshot of the OpenCage GDPR page&quot;" /></a></p>

<p>Specifically:</p>

<ul>
  <li>
    <p>The page now has a table of contents for easier browsing.</p>
  </li>
  <li>
    <p>We now explicitly list <a href="https://opencagedata.com/gdpr#subprocessors">our third-party subprocessors</a> in a table for easier scanning</p>
  </li>
  <li>
    <p>We now explicitly list <a href="https://opencagedata.com/gdpr##data-deletion">our data deletion schedule</a> in a table for easier scanning</p>
  </li>
  <li>
    <p>We now explicitly list the <a href="https://opencagedata.com/gdpr#toms">Technical &amp; Organisational Measures (TOMs)</a>.</p>
  </li>
  <li>
    <p>Clarified that geocoding queries are NEVER used for AI training.</p>
  </li>
  <li>
    <p>As with all of our pages, it is now also available in Markdown format (via the “Copy Page” toggle at the top of the content, or appending <code class="language-plaintext highlighter-rouge">.makrdown</code>to the URL</p>
  </li>
  <li>
    <p>The <a href="https://opencagedata.com/gdpr#change-history">Change History</a> of the page was getting a bit long (GDPR took effect more than seven years ago!) so it is now hidden behind a clickable toggle.</p>
  </li>
</ul>

<p>Just to be clear: there has been absolutely no change in our commitment to and practices around data protection generally and GDPR specifically. This is just a visual update to make the page a bit easier to browse. Just as before, <strong>we have no desire or ability to track our customers’ users</strong>, and geocoding API users can
<a href="https://opencagedata.com/api#no_record-param">optionally specify <code class="language-plaintext highlighter-rouge">no_record=1</code></a> in their API request, in which case we keep no record of their geocoding query.</p>

<p>We continuously roll out tweaks and improvements to improve the privacy and security of our users - for example the recent <a href="/post/key-obfuscation">addition of key obfuscation</a> - and welcome your suggestions of how we could do more.</p>

<p>Happy (private) geocoding,</p>

<p><a href="https://mastodon.social/@freyfogle">Ed</a></p>]]></content><author><name></name></author><category term="gdpr" /><summary type="html"><![CDATA[We've done a visual refresh and cleanup of our GDPR / Data Protection page]]></summary></entry><entry><title type="html">Geosearch - now with type filtering</title><link href="https://blog.opencagedata.com/post/geosearch-with-type-filtering" rel="alternate" type="text/html" title="Geosearch - now with type filtering" /><published>2026-06-30T08:15:40+00:00</published><updated>2026-06-30T08:15:40+00:00</updated><id>https://blog.opencagedata.com/post/geosearch-wtih-type-filtering</id><content type="html" xml:base="https://blog.opencagedata.com/post/geosearch-with-type-filtering"><![CDATA[<p>Hi everyone,</p>

<p>following on from <a href="/post/geosearch-with-postcodes">our announcement last month of adding postcode to our geosearch / autosuggest widget</a>, I am pleased to report another improvement: our geosearch / autosuggest widget now supports filtering by type of result.</p>

<p><a href="https://opencagedata.com/geosearch" class="center-image"><img src="/images/geosearch-10437.png" alt="&quot;Screenshot of the OpenCage geosearch demo page showing a postcode search for 10437&quot;" /></a></p>

<p>We have added a new field to the geosearch JSON response: <code class="language-plaintext highlighter-rouge">_type</code>, just like in our geocoding results, where we list the type of place the result is (for example: <code class="language-plaintext highlighter-rouge">city</code> or <code class="language-plaintext highlighter-rouge">state</code> or <code class="language-plaintext highlighter-rouge">village</code>). In addition we now all you to set the field <code class="language-plaintext highlighter-rouge">_type</code> as a parameter to limit results only to certain types (you can specify either a single type or multiple as a comma separated list for example: <code class="language-plaintext highlighter-rouge">'_type': 'city,postcode'</code>). You can also exclude specific types by prefacing them with a <code class="language-plaintext highlighter-rouge">!</code>, for example: <code class="language-plaintext highlighter-rouge">'_type': '!village'</code>. In this way you can fine tune the results for exactly your use case.</p>

<p>One other point - a customer asked if it was possible to specify multiple countrycodes to limit results to not just a single country. This has always been possible but was sadly not documented. Apologies! <a href="https://github.com/OpenCageData/geosearch/blob/master/README.md">The geosearch documentation</a> has now been updated to reflect that you can do things like:</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>`   countrycode: 'de,at,ch,li'
</code></pre></div></div>

<p>As ever, many thanks to the customers who pushed us to make these improvements.
Please keep <a href="https://opencagedata.com/contact">your feedback</a> coming.</p>

<p>One final note -
<a href="https://github.com/OpenCageData/opencage-skills/tree/master/skills/opencage-geosearch">our geosearch Agent Skill</a>, which you can share with your coding agent to simplify integrating geosearch,  has been adjusted accordingly.</p>

<p>Happy geosearching,</p>

<p><a href="https://mastodon.social/@freyfogle">Ed</a></p>]]></content><author><name></name></author><category term="geosearch" /><summary type="html"><![CDATA[New feature for Geosearch: we now support filtering by _type]]></summary></entry><entry><title type="html">Geotrivia - June 2026: river borders</title><link href="https://blog.opencagedata.com/post/geotrivia-june-2026" rel="alternate" type="text/html" title="Geotrivia - June 2026: river borders" /><published>2026-06-26T06:14:00+00:00</published><updated>2026-06-26T06:14:00+00:00</updated><id>https://blog.opencagedata.com/post/geotrivia-202606</id><content type="html" xml:base="https://blog.opencagedata.com/post/geotrivia-june-2026"><![CDATA[<div class="pb-2">
  <a href="/">Blog</a> &gt; <a href="/tagged/fridaygeotrivia">Monthly Geo Trivia questions</a>
</div>

<hr />

<script>
  // for hiding/showing geotrivia answer
  function toggle(id) {
      var state = document.getElementById(id).style.display;
      if (state == 'block') {
          document.getElementById(id).style.display = 'none';
      } else {
          document.getElementById(id).style.display = 'block';
      }
  } 
</script>

<p>Welcome to the June 2026 edition of #fridaygeotrivia, our
<a href="/tagged/fridaygeotrivia">social media geotrivia contest</a>.</p>

<p>Traditionally we play on the final Friday of the month, but that is not possible this month, so we will push back by a week to <strong>Friday, 3rd of July, 2026, at 17:00 Berlin time, 4pm London time, 11AM New York time</strong>.</p>

<p>See how to play below.</p>

<h3 id="the-june-2026-geotrivia-question">The June 2026 geotrivia question:</h3>

<p>Name countries where a single river acts as an international border with at least two different neighboring countries. Name the countries and the river.</p>

<p>As an example, 🇨🇭 Switzerland’s border with 🇱🇮 Liechtenstein and 🇦🇹 Austria is the Rhine.</p>

<p>As always:</p>

<ul>
  <li>
    <p>Only one answer per toot</p>
  </li>
  <li>
    <p>You must include the hashtag #fridaygeotrivia and the emoji flag of the countries</p>
  </li>
</ul>

<h3 id="prizes">Prizes</h3>

<p>#fridaygeotrivia is a game with two prizes:</p>

<ol>
  <li>
    <p>the sheer joy of geographic knowledge and pedantry.</p>
  </li>
  <li>
    <p>the bragging rights of getting the answer first.</p>
  </li>
</ol>

<h3 id="the-fridaygeotrivia-mastodon-thread">The #fridaygeotrivia Mastodon thread:</h3>

<blockquote class="mastodon-embed" data-embed-url="https://en.osm.town/@opencage/116856639375054757/embed" style="background: #FCF8FF; border-radius: 8px; border: 1px solid #C9C4DA; margin: 0; max-width: 540px; min-width: 270px; overflow: hidden; padding: 0;"> <a href="https://en.osm.town/@opencage/116856639375054757" target="_blank" style="align-items: center; color: #1C1A25; display: flex; flex-direction: column; font-family: system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Oxygen, Ubuntu, Cantarell, 'Fira Sans', 'Droid Sans', 'Helvetica Neue', Roboto, sans-serif; font-size: 14px; justify-content: center; letter-spacing: 0.25px; line-height: 20px; padding: 24px; text-decoration: none;"> <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="32" height="32" viewBox="0 0 79 75"><path d="M63 45.3v-20c0-4.1-1-7.3-3.2-9.7-2.1-2.4-5-3.7-8.5-3.7-4.1 0-7.2 1.6-9.3 4.7l-2 3.3-2-3.3c-2-3.1-5.1-4.7-9.2-4.7-3.5 0-6.4 1.3-8.6 3.7-2.1 2.4-3.1 5.6-3.1 9.7v20h8V25.9c0-4.1 1.7-6.2 5.2-6.2 3.8 0 5.8 2.5 5.8 7.4V37.7H44V27.1c0-4.9 1.9-7.4 5.8-7.4 3.5 0 5.2 2.1 5.2 6.2V45.3h8ZM74.7 16.6c.6 6 .1 15.7.1 17.3 0 .5-.1 4.8-.1 5.3-.7 11.5-8 16-15.6 17.5-.1 0-.2 0-.3 0-4.9 1-10 1.2-14.9 1.4-1.2 0-2.4 0-3.6 0-4.8 0-9.7-.6-14.4-1.7-.1 0-.1 0-.1 0s-.1 0-.1 0 0 .1 0 .1 0 0 0 0c.1 1.6.4 3.1 1 4.5.6 1.7 2.9 5.7 11.4 5.7 5 0 9.9-.6 14.8-1.7 0 0 0 0 0 0 .1 0 .1 0 .1 0 0 .1 0 .1 0 .1.1 0 .1 0 .1.1v5.6s0 .1-.1.1c0 0 0 0 0 .1-1.6 1.1-3.7 1.7-5.6 2.3-.8.3-1.6.5-2.4.7-7.5 1.7-15.4 1.3-22.7-1.2-6.8-2.4-13.8-8.2-15.5-15.2-.9-3.8-1.6-7.6-1.9-11.5-.6-5.8-.6-11.7-.8-17.5C3.9 24.5 4 20 4.9 16 6.7 7.9 14.1 2.2 22.3 1c1.4-.2 4.1-1 16.5-1h.1C51.4 0 56.7.8 58.1 1c8.4 1.2 15.5 7.5 16.6 15.6Z" fill="currentColor" /></svg> <div style="color: #787588; margin-top: 16px;">Post by @opencage@en.osm.town</div> <div style="font-weight: 500;">View on Mastodon</div> </a> </blockquote>
<script data-allowed-prefixes="https://en.osm.town/" async="" src="https://en.osm.town/embed.js"></script>

<h3 id="the-winner">The winner</h3>

<p>Once again we have to salute <a href="https://mastodon.ie/@ccferrie">Ciarán Ferrie</a> for winning. Congrats also to <a href="https://col.social/@derpoltergeist">Pablo M.U.</a> for second place.</p>

<h3 id="this-months-geotrivia-answer">This month’s geotrivia answer:</h3>

<p><button type="button" class="btn btn-primary" onclick="toggle('geotrivia-answer');">Show / hide answer</button></p>

<div id="geotrivia-answer" class="pb-5">

<ul>
  <li> AF, border with UZ and TJ via the Amu Darya</li>
  <li> AR, border with PY and BO via the Pilcomayo</li>
  <li> AR, border with UG and BR via the Uruguay</li>
  <li> AT, border with SK and DE via the Danube&lt;/li
  <li> AZ, border with TR and IR via the Aras</li>
  <li> CD, border with BI and RW via the Rusizi</li>
  <li> CH, border with AT, DE, FR, and LI via the Rhine</li>  &gt;
  <li> CM, border with CG and CF via the Sangha</li>
  <li> DE, border with BE and LU via the Mosel</li>
  <li> DE, border with CZ and PL via the Neisse</li>
  <li> DE, border with FR and CH via the Rhine</li>
  <li> ET, border with KY and SO via the Dawa</li>
  <li> HR, border with SI and HU via the Mur</li>
  <li> JO, border with SY and IL via the Yarmouk</li>
  <li> KP, border with CN and RU via the Tumen</li>
  <li> LA, border with MM and TH via the Mekong</li>
  <li> LT, border with PL and BY via the Marycha</li>
  <li> LU, border with BE and FR via the Chiers</li>
  <li> MR, border with SN and ML via the Senegal</li>
  <li> NA, border with AO and BW via the Kwando</li>
  <li> PY, border with BR and AR via the Paraná</li>
  <li> RO, border with BG and RS via the Danube</li>  
  <li> RO, border with UA and MD via the Prut</li>
  <li> RW, border with TZ and BI via the Kagera</li>
  <li> SD, border with EG and SS via the Nile</li>
  <li> SK, border with AT and HU via the Danube</li>
  <li> ZM, border with NA and ZW via the Zambezi</li>
  <li> ZW, border with MZ and ZM via the Zambezi</li>
&lt;/ul&gt;

&lt;/div&gt;

### How to play ###

Anyone can join in, you just need a Mastodon account.

  * Follow us on Mastodon, our account is [@opencage@en.osm.town](https://en.osm.town/@opencage)

  * When the game starts we will post the question here on the blog and on
    Mastodon, and will embed the Mastodon question here. We highly recommend
    using a mastodon client you feel comfortable with. We've made the switch
    to [the Elk client](https://elk.zone)
    and are loving it, but use whatever works for you. 
    
  * Reply to the question thread on Mastodon (it will be embedded above)
    using the hashtag #fridaygeotrivia in your answer.
    
  * Only one answer per response (don't stuff multiple answers into
    a single reply).

  * Our definition of "country" is usually (it depends on the question) any
    place with an ISO 3166-1 alpha-2 code.
    Read more [background about ISO and country codes in our guide](https://opencagedata.com/guides/how-to-determine-the-iso-codes-for-a-location).

  * To get full points for an answer it is good form not just to name the
    relevant country but (if possible) to include the emoji flags of the
    country.

  * While you can use a map, please **do NOT use the internet to just search
    for an answer**. That is cheating and will lead to seriously bad geokarma.

Some people have complained that the format is a bit chaotic and hard to follow. **Yes. The mad chaos is part of the fun. Embrace it. The goal is just to have fun and learn. We win by playing**


Thanks for playing,

[Ed](https://mastodon.social/@freyfogle)













 
</li></ul></div>]]></content><author><name></name></author><category term="geotrivia" /><category term="mastodon" /><category term="fridaygeotrivia" /><summary type="html"><![CDATA[The June 2026 edition of #fridaygeotrivia - our monthly social media geography quiz. Join us on the final Friday of each month]]></summary></entry><entry><title type="html">More speed limit data, and other roadinfo improvements</title><link href="https://blog.opencagedata.com/post/more-roadinfo-maxspeed-data" rel="alternate" type="text/html" title="More speed limit data, and other roadinfo improvements" /><published>2026-06-25T09:13:11+00:00</published><updated>2026-06-25T09:13:11+00:00</updated><id>https://blog.opencagedata.com/post/more-roadinfo-data</id><content type="html" xml:base="https://blog.opencagedata.com/post/more-roadinfo-maxspeed-data"><![CDATA[<p>Hi everyone,</p>

<p>a customer has asked if we could include some additional data in our optional <code class="language-plaintext highlighter-rouge">roadinfo</code> annotation, specifically
around speed limit data, so we now do that.</p>

<p>Speed limits are much more complicated than you might initially think.</p>

<ul>
  <li>
    <p>some types of vehicles have their own speed limits, so we now potentially return <code class="language-plaintext highlighter-rouge">maxspeed:bus</code> and <code class="language-plaintext highlighter-rouge">maxspeed:hgv</code> (<em>heavy goods vehicles</em>)</p>
  </li>
  <li>
    <p>some roads have sign-posted conditional speed limits, which depends on certain situations, such as time of day, day of week, weather, time of year, or another particular condition. This information is now in the field <code class="language-plaintext highlighter-rouge">maxspeed:conditional</code> and <code class="language-plaintext highlighter-rouge">maxspeed:conditional:hgv</code></p>
  </li>
  <li>
    <p>some roads have digital signs that may display a speed limit in certain situations (weather, traffic, etc). This is now in the field <code class="language-plaintext highlighter-rouge">maxspeed:variable</code></p>
  </li>
</ul>

<p>While we were exploring the data we found a few other relevant fields we thought were worth adding to our output</p>

<ul>
  <li>
    <p><code class="language-plaintext highlighter-rouge">minspeed</code> - in some countries motorways have a mandatory minimum speed</p>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">tunnel</code> - if the road segment is in a tunnel and potentially the type of tunnel</p>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">tunnel:name</code> - if the tunnel has a name</p>
  </li>
</ul>

<p>The new fields and the possible values are, as you would expect, <a href="https://opencagedata.com/api#roadinfoann">explained in the API docs</a>.</p>

<p><img src="/images/maxspeed.png" alt="'Screenshot of the OpenCage geocoding API documentation explaining the new &quot;maxspeed&quot; fields'" class="center-image" /></p>

<h3 id="an-example">An example:</h3>

<p>An API request to those coordinates with the optional parameter <code class="language-plaintext highlighter-rouge">roadinfo=1</code> set will now return</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>    "roadinfo": {
       "drive_on" : "right",
       "lanes" : 2,
       "maxspeed" : 140,
       "maxspeed:bus" : 80,
       "maxspeed:hgv" : 80,       
       "oneway" : "yes",
       "road" : "Autostrada Wolno\u015bci",
       "road_reference" : "A2",
       "road_reference_intl" : "E 30",
       "road_type" : "motorway",
       "speed_in" : "km/h",
       "surface" : "asphalt",
       "toll" : "yes",
       "toll_details" : {
          "included" : [
             "bus",
             "hgv"
          ]
       }
    }
</code></pre></div></div>

<p>thus we see that buses and HGVs have a lower speed limit than cars.</p>

<p>As always when discussing road information I need to repeat the key caveat - our road information comes from crowdsourced data sources like OpenStreetMap. It is not in any way “official” or “governmental” data. It may be wrong, incomplete, or out of date.
<strong>Always drive safely</strong>.</p>

<p>Many thanks to the customer that prompted these improvements, and to everyone adding this data to OpenStreetMap.</p>

<p>Happy geocoding,</p>

<p><a href="https://mastodon.social/@freyfogle">Ed</a></p>]]></content><author><name></name></author><category term="roadinfo" /><category term="annotations" /><category term="smallfeaturesaddup" /><category term="maxspeed" /><category term="featured" /><summary type="html"><![CDATA[We now additionally attempt to set various additional "maxspeed" fields and "tunnel" in the "roadinfo" annotation of geocoding results.]]></summary></entry><entry><title type="html">New release (v4.0.0) of our PHP SDK</title><link href="https://blog.opencagedata.com/post/new-release-our-php-geocoding-sdk" rel="alternate" type="text/html" title="New release (v4.0.0) of our PHP SDK" /><published>2026-06-13T07:26:02+00:00</published><updated>2026-06-13T07:26:02+00:00</updated><id>https://blog.opencagedata.com/post/new-release-of-php-sdk</id><content type="html" xml:base="https://blog.opencagedata.com/post/new-release-our-php-geocoding-sdk"><![CDATA[<p>Good news for PHP developers using our geocoding API -
<a href="https://packagist.org/packages/opencage/geocode">version 4.0.0 of opencage/geocode</a> has been released.</p>

<p>The new version of the SDK brings with it some meaningful changes, hence why we bumped to v4.0.0.</p>

<p>Specifically</p>

<ul>
  <li>
    <p><strong>Minimum PHP is now 8.2</strong> (was 8.0).</p>
  </li>
  <li>
    <p><strong>Guzzle replaces the internal cURL/<code class="language-plaintext highlighter-rouge">fopen</code> logic.</strong> The SDK now depends on <code class="language-plaintext highlighter-rouge">guzzlehttp/guzzle ^7.0</code>, which Composer installs automatically. There is no longer a cURL/<code class="language-plaintext highlighter-rouge">fopen</code> fallback and no need to fiddle with <code class="language-plaintext highlighter-rouge">allow_url_fopen</code>.</p>
  </li>
  <li>
    <p><strong>Dedicated reverse geocoding:</strong> new <code class="language-plaintext highlighter-rouge">geocodeReverse($latitude, $longitude)</code> method — you no longer have to build a <code class="language-plaintext highlighter-rouge">"lat,lng"</code> string yourself.</p>
  </li>
  <li>
    <p><strong>Asynchronous requests:</strong> new <code class="language-plaintext highlighter-rouge">geocodeAsync()</code> and <code class="language-plaintext highlighter-rouge">geocodeReverseAsync()</code> methods return a Guzzle <code class="language-plaintext highlighter-rouge">PromiseInterface</code>, allowing concurrent geocoding.</p>
  </li>
  <li>
    <p><strong>Type declarations everywhere.</strong> All method parameters and return values are now typed. In particular <code class="language-plaintext highlighter-rouge">geocode()</code> always returns an <code class="language-plaintext highlighter-rouge">array</code> or throws an <code class="language-plaintext highlighter-rouge">\Exception</code> — it no longer returns <code class="language-plaintext highlighter-rouge">null</code>/<code class="language-plaintext highlighter-rouge">false</code> (see <em>Handling the Response</em> below).</p>
  </li>
  <li>
    <p><strong>Network failures</strong> are reported with a synthetic <code class="language-plaintext highlighter-rouge">status.code</code> of <code class="language-plaintext highlighter-rouge">498</code> instead of failing silently; the API key is redacted from the message.</p>
  </li>
</ul>

<h2 id="further-reading">Further Reading</h2>

<ul>
  <li><a href="https://opencagedata.com/tutorials/geocode-in-php">OpenCage PHP tutorial</a></li>
  <li><a href="https://packagist.org/packages/opencage/geocode"><code class="language-plaintext highlighter-rouge">opencage/geocode</code> on Packagist</a></li>
  <li><a href="https://github.com/OpenCageData/php-opencage-geocode">Source code (v4.0.0)</a></li>
  <li><a href="https://blog.opencagedata.com/post/new-release-our-php-geocoding-sdk">Guzzle documentation</a></li>
</ul>

<h2 id="final-points">Final Points</h2>

<p>As with <a href="https://opencagedata.com/sdks">all of the 40+ SDKs for our geocoding API</a> we welcome your ideas for improvement. We are continually rolling out various fixes and improvements in the future, but code contributions are of course also gladly received.</p>

<p>Our <a href="https://github.com/OpenCageData/opencage-skills/tree/master/skills/opencage-geocoding-api">geocoding Agent Skill</a>, which includes a reference file for working with PHP, has been adjusted accordingly.</p>

<p>Happy geocoding (whether in PHP or other languages),</p>

<p><a href="https://mastodon.social/@freyfogle">Ed</a></p>]]></content><author><name></name></author><category term="php" /><category term="sdks" /><summary type="html"><![CDATA[Version 4.0.0 of opencage/geocode, our PHP SDK for the OpenCage geocoding API, has been released and is now available]]></summary></entry><entry><title type="html">Geocoding CLI moved into its own package and repo</title><link href="https://blog.opencagedata.com/post/opencage-cli-now-in-own-package" rel="alternate" type="text/html" title="Geocoding CLI moved into its own package and repo" /><published>2026-06-09T06:57:12+00:00</published><updated>2026-06-09T06:57:12+00:00</updated><id>https://blog.opencagedata.com/post/cli-move</id><content type="html" xml:base="https://blog.opencagedata.com/post/opencage-cli-now-in-own-package"><![CDATA[<p>Hi everyone,</p>

<p>with the rise of coding agents, use of the command line has grown significantly.</p>

<p>We have offered <a href="https://opencagedata.com/tutorials/geocode-commandline">a command line (CLI) geocoding tool</a> for years, but until now it has been bundled with <a href="https://pypi.org/project/opencage/">our python SDK</a>. As the pace of development on the command line tool increased and the use case increasingly divered from the python SDK, we have now decided to split the CLI tool into its <a href="https://github.com/opencagedata/opencage-cli">own repository</a> and <a href="https://pypi.org/project/opencage-cli/">python package</a>.</p>

<p><strong>What do you need to do?</strong></p>

<p>Going forward if you want to use the CLI you will need to install the python package <code class="language-plaintext highlighter-rouge">opencage-cli</code>.</p>

<p>This is of course explained on <a href="https://opencagedata.com/tutorials/geocode-commandline">our CLI geocoding tutorial</a>. The actual commands and syntax used on the command line remain the same.</p>

<p><strong>Closing points</strong></p>

<p>Our <a href="https://github.com/OpenCageData/opencage-skills/tree/master/skills/opencage-geocoding-api">geocoding Agent Skill</a> has been adjusted accordingly.</p>

<p>If command line isn’t your cup of tea, don’t worry, we have <a href="https://opencagedata.com/sdks">geocoding SDKs for over 40 programming languages and frameworks</a>.</p>

<p>Happy geocoding, from the command line or elsewhere</p>

<p>Ed</p>]]></content><author><name></name></author><category term="geocoding" /><category term="opencage-cli" /><category term="sdks" /><summary type="html"><![CDATA[We have moved our command line tool into its own python package. Previously it had been bundled with our python SDK.]]></summary></entry><entry><title type="html">Interview: Omran Najjar on OpenStreetMap Syria</title><link href="https://blog.opencagedata.com/post/openstreetmap-interview-osm-syria" rel="alternate" type="text/html" title="Interview: Omran Najjar on OpenStreetMap Syria" /><published>2026-06-08T08:06:10+00:00</published><updated>2026-06-08T08:06:10+00:00</updated><id>https://blog.opencagedata.com/post/osm_syria</id><content type="html" xml:base="https://blog.opencagedata.com/post/openstreetmap-interview-osm-syria"><![CDATA[<p>Today in our <a href="/tagged/osminterview">OpenStreetMap (OSM) interview series</a> we are speaking with <a href="https://www.hotosm.org/en/members/omran-najjar/">Omran Najjar</a> about his work as a humanitarian and development technologist, his involvement with the OSM community in Syria, and how open mapping fits into a country undergoing significant change. OpenStreetMap is a collaborative map of the world, built by people across the globe. It reflects a world that is complex, always changing, and shaped by many different local perspectives and lived experiences.</p>

<p><a href="https://community.openstreetmap.org/t/openstreetmap-osm-syria/128564" class="center-image"><img src="/images/osm_syria.png" alt="OSM Syria logo" /></a></p>

<h3 id="1-who-are-you-and-what-do-you-do-what-got-you-into-openstreetmap">1. Who are you and what do you do? What got you into OpenStreetMap?</h3>

<p><em>I am Omran Najjar. I recently started identifying as a humanitarian and development technologist as I have spent the last 12 years working in humanitarian and development organizations and using my technological skills to achieve those organizations’ goals.</em></p>

<p><em>I was working on a project that needed geocoding with Plan International back in 2020 and I needed a background map and this project led me to OSM. That was the start, later I joined the Humanitarian OpenStreetMap Team in 2021 and got more and more involved in mapping and geo technologies.</em></p>

<h3 id="2-what-would-you-say-is-the-current-state-of-osm-and-the-osm-community-in-syria">2. What would you say is the current state of OSM and the OSM community in Syria?</h3>

<p><em>Until December 2024, I avoided the OSM map and community in Syria. I sneaked a look on the map frequently but it was nostalgia as someone who was forced to leave his country. The Turkey/Syria earthquake in 2023 triggered a lot of trauma since my family was in the south of Turkey in the affected region and from daily work life, humanitarian mapping activation started.</em></p>

<p><em>After December 2024, the fall of the dictator instilled greater hope for the country’s future, so we started more organized efforts to direct the Syria OSM community activities, as the country has suffered massive destruction and corruption, and the trend seems to have at least stopped deteriorating.</em></p>

<p><em>As of 27 May 2026, we had over 200 registered OSM community members and more than 20 active mappers. The map itself had many outdated features and minimum details even in the capital city and other urban areas.</em></p>

<h3 id="3-what-are-the-unique-challenges-and-pleasures-of-openstreetmap-in-syria-what-aspects-of-the-projects-should-the-rest-of-the-world-be-aware-of">3. What are the unique challenges and pleasures of OpenStreetMap in Syria? What aspects of the projects should the rest of the world be aware of?</h3>

<p><em>I noticed weak internet connectivity and accessibility, or perhaps I’ve grown accustomed to good internet connection as I am living in the EU. When I visited the country it felt lovely to detox from notifications and other messages because many services are blocked. Slack and some Google services are not operational within the country due to technological sanctions from the US and EU. Some of those have been lifted, but the technology has not yet fully recovered.</em></p>

<p><em>A great pleasure was seeing the collective impressions Syrians had after what we now call Liberation Day on 8 December 2024, and how this has been reflected in the OSM map and community.
In the registration form, we asked volunteers to locate themselves on a <a href="https://umap.hotosm.org/en/map/osm-syria-community_133#4/39.266284/21.181641">map</a>
and it turned out to be a piece of art.</em></p>

<p><img src="/images/osm_syria_community.png" alt="OSM Syria community" class="center-image" /></p>

<h3 id="4-can-you-share-a-specific-example-where-openstreetmap-data-has-made-a-real-difference-in-syria-such-as-humanitarian-response-navigation-or-local-decision-making-and-what-is-still-missing-in-the-map-today-that-would-have-the-biggest-impact">4. Can you share a specific example where OpenStreetMap data has made a real difference in Syria, such as humanitarian response, navigation, or local decision making, and what is still missing in the map today that would have the biggest impact?</h3>

<p><em>The country closed its doors to the international community for at least 14 years of war and for over 50 years of the same party ruling the country, passed from a father to his son. Therefore, fewer people needed navigation systems, there has always been less coverage for GNSS (Global Navigation Satellite System) as GPS and others. In the last year, increased international visitors and free movement within the country have led to higher interest in navigation systems and more accurate road networks.</em></p>

<p><em>My city’s local council (Douma in rural Damascus) has raised the concern about needing a detailed map for the city and have been conducting GIS training and aim to map the city in detail and OSM is a big part of those efforts.</em></p>

<h3 id="5-what-is-the-best-way-to-get-involved-are-there-regular-meetups-or-a-place-the-community-chats-online">5. What is the best way to get involved? Are there regular meetups, or a place the community chats online?</h3>

<p><em>We have a <a href="https://forms.gle/d3k5zpYSSTCM16Ad6">registration form</a>
We are mainly communicating by email, we have a Telegram channel as well and all of those details are always documented in a collective shared document. We are <a href="https://docs.google.com/document/d/1zjavmvoauSKdO8bOZHegefcna7cGwBe2Z-xL_7MVijw/edit?tab=t.0">documenting our meetings</a> and other activities. It is mostly in Arabic though.</em></p>

<h3 id="6-what-steps-could-the-global-openstreetmap-community-take-to-help-support-osm-in-syria">6. What steps could the global OpenStreetMap community take to help support OSM in Syria?</h3>

<p><em>We have created a couple of mapping projects on <a href="https://tasks.hotosm.org/explore?campaign=Syria-Remapping-2025&amp;omitMapResults=1">HOT Tasking Manager</a></em></p>

<p><em>It turned out the OSM Syria community is not large enough; support from the global community for high-quality data and validation is welcome.</em></p>

<h3 id="7-openstreetmap-recently-celebrated-20-years-where-do-you-see-the-project-in-another-20-years">7. OpenStreetMap recently celebrated 20 years. Where do you see the project in another 20 years?</h3>

<p><em>I have sensed some automatic rejection from the OSM community in general against AI, and I do understand that, especially when AI is treated as a black box and feels like it is integrated into everything without careful review (community review). Maybe OSM will become the open source world’s digital twin with community and AI collaboration!</em></p>

<hr />

<p>We’d like to thank Omran for generously sharing his time and insights with us. We also want to acknowledge the difficult circumstances he has experienced, including the war in Syria and the devastating earthquake, and the impact these events have had on his family and community.</p>

<p>The views and experiences shared in this interview are those of the interviewee and do not necessarily reflect the views of OpenCage or the wider OpenStreetMap community.</p>

<p><a href="https://mastodon.social/@SuperDani">Danielle</a></p>

<p>Please let us know if your community would like to be part of
<a href="https://blog.opencagedata.com/tagged/osminterview">our interview series</a>
here on our blog. If you are or know of someone we should interview, please get in touch, we’re <a href="/post/98139732993/call-for-open-geo-openstreetmap-interviewees">always looking to promote people doing interesting things with open geo data</a>.</p>]]></content><author><name></name></author><category term="interview" /><category term="openstreetmap" /><category term="osminterview" /><category term="syria" /><summary type="html"><![CDATA[Interview with Omran Najjar about OSM Syria.]]></summary></entry><entry><title type="html">Speaking at Geomob Dublin on June 3rd</title><link href="https://blog.opencagedata.com/post/speaking-at-geomobdub-3-june-2026" rel="alternate" type="text/html" title="Speaking at Geomob Dublin on June 3rd" /><published>2026-06-01T04:08:27+00:00</published><updated>2026-06-01T04:08:27+00:00</updated><id>https://blog.opencagedata.com/post/speaking-at-geomobdub</id><content type="html" xml:base="https://blog.opencagedata.com/post/speaking-at-geomobdub-3-june-2026"><![CDATA[<p>Hi everyone,</p>

<p>a quick post to announce it will be my pleasure to speak at
<a href="https://thegeomob.com/post/june-3rd-2026-geomobdub-details">the first ever Geomob Dublin</a> on Wednesday of this week (June 3rd).</p>

<p>I will give a version of my <em>The Joy of Geocoding</em> talk, that I also gave a few months ago in Cologne. Huge thanks to Jenny Allen and Dermot McNally for taking the lead on bringing Geomob to Dublin. I am looking forward to the other talks and meeting everyone from the local geo scene. Ihave no doubt this will be the first of many interesting events, and if you are in Dubline I encourage you to come along.</p>

<p>If you can’t make it to Dublin, perhaps you can join us for another
<a href="https://thegeomob.com/post/20260618-geomob-ber-details">Geomob Berlin on the 18th</a>, and our friends in Belgium are organizing an event in
<a href="https://thegeomob.com/post/june-23-2026-geomobbe-details">Brussels on the 23rd</a>.</p>

<p>So as you can see Geomob is thriving. But if don’t happen to be in any of those cities there is also <a href="https://thegeomob.com/podcast">the weekly Geomob podcast</a>, where we discuss topics from across the whole spectrum of geospatial.</p>

<p>I hope to see you at a Geomob event soon, be it in Dublin or elsewhere!</p>

<p><a href="https://mastodon.social/@freyfogle">Ed</a></p>]]></content><author><name></name></author><category term="events" /><category term="dublin" /><category term="geomob" /><category term="geomobdub" /><summary type="html"><![CDATA[OpenCage co-founder Ed Freyfogle will be speaking at the first ever Geomob Cologne on April 16th about the joy of geocoding.]]></summary></entry></feed>