<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Things to Do in Iceland</title>
    <description>The latest articles on DEV Community by Things to Do in Iceland (thingstodoiniceland).</description>
    <link>https://dev.to/thingstodoiniceland</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Forganization%2Fprofile_image%2F14128%2F95405507-0c95-4592-8650-069c2cfd20d3.jpg</url>
      <title>DEV Community: Things to Do in Iceland</title>
      <link>https://dev.to/thingstodoiniceland</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/thingstodoiniceland"/>
    <language>en</language>
    <item>
      <title>Five Iceland Whale-Watching Harbours: A Quick OSM Data Audit</title>
      <dc:creator>Sindri Þór Stefánsson</dc:creator>
      <pubDate>Sat, 25 Jul 2026 13:51:34 +0000</pubDate>
      <link>https://dev.to/thingstodoiniceland/five-iceland-whale-watching-harbours-a-quick-osm-data-audit-28f5</link>
      <guid>https://dev.to/thingstodoiniceland/five-iceland-whale-watching-harbours-a-quick-osm-data-audit-28f5</guid>
      <description>&lt;p&gt;Whale-watching trips in Iceland often start from a harbour that is also part of a working town centre. The boat operator is usually easy to find. The less obvious part is what the map tells a visitor about the last 600 metres: toilets, parking, bus stops and visitor information.&lt;/p&gt;

&lt;p&gt;I pulled a small OpenStreetMap snapshot around five departure areas that travellers commonly use: Reykjavík Old Harbour, Akureyri, Húsavík, Dalvík and Hólmavík. This is not a field survey and zero does not mean a feature is absent on the ground. It only means the feature was not returned with the selected tags inside the chosen radius at the snapshot time.&lt;/p&gt;

&lt;h2&gt;
  
  
  The snapshot
&lt;/h2&gt;

&lt;p&gt;Data timestamp: &lt;strong&gt;2026-07-25 13:25 UTC&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Search radius: &lt;strong&gt;600 metres from each harbour point&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Data is © &lt;a href="https://www.openstreetmap.org/copyright" rel="noopener noreferrer"&gt;OpenStreetMap contributors&lt;/a&gt; and available under the Open Database Licence.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Harbour area&lt;/th&gt;
&lt;th&gt;Toilets&lt;/th&gt;
&lt;th&gt;Parking features&lt;/th&gt;
&lt;th&gt;Bus stops&lt;/th&gt;
&lt;th&gt;Visitor information&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Reykjavík Old Harbour&lt;/td&gt;
&lt;td&gt;3&lt;/td&gt;
&lt;td&gt;101&lt;/td&gt;
&lt;td&gt;23&lt;/td&gt;
&lt;td&gt;11&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Akureyri harbour&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;td&gt;46&lt;/td&gt;
&lt;td&gt;17&lt;/td&gt;
&lt;td&gt;7&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Húsavík harbour&lt;/td&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;td&gt;65&lt;/td&gt;
&lt;td&gt;4&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Dalvík harbour&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;12&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Hólmavík harbour&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;td&gt;7&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;The parking column needs care. OpenStreetMap may contain a separate way for each small parking area, and a mapped feature is not the same thing as a confirmed visitor space for a whale-watching departure. The numbers describe mapping density, not capacity.&lt;/p&gt;

&lt;p&gt;The same warning applies to toilets. None of the returned toilet features had a &lt;code&gt;name=*&lt;/code&gt; tag. That may be perfectly reasonable, but a traveller cannot infer opening hours, access rules or whether a toilet belongs to a nearby business from this count alone.&lt;/p&gt;
&lt;h2&gt;
  
  
  What looks worth checking locally
&lt;/h2&gt;

&lt;p&gt;The zeroes are the most useful part of this exercise, provided they are treated as questions rather than corrections.&lt;/p&gt;

&lt;p&gt;Akureyri and Hólmavík returned no &lt;code&gt;amenity=toilets&lt;/code&gt; features inside the radius. Húsavík and Dalvík returned no &lt;code&gt;tourism=information&lt;/code&gt; features. Hólmavík returned no &lt;code&gt;highway=bus_stop&lt;/code&gt; feature.&lt;/p&gt;

&lt;p&gt;There are several possible explanations:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;the feature is genuinely outside 600 metres;&lt;/li&gt;
&lt;li&gt;it exists but uses a different valid tagging pattern;&lt;/li&gt;
&lt;li&gt;it is inside a building and not separately mapped;&lt;/li&gt;
&lt;li&gt;access is seasonal or private;&lt;/li&gt;
&lt;li&gt;the harbour point I used is not the best centre for the departure area;&lt;/li&gt;
&lt;li&gt;or the map simply needs an update.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Someone with recent local knowledge can answer those questions far better than a remote query. I have deliberately not added or changed map data from this audit.&lt;/p&gt;

&lt;p&gt;Reykjavík also shows why raw counts are not enough. Twenty-three bus-stop nodes inside 600 metres sounds generous, but visitors still need to know which stop serves their route, whether the walking line is sensible with luggage and how early they should arrive. That belongs in a travel plan, not in an OSM tag.&lt;/p&gt;
&lt;h2&gt;
  
  
  Reproducing the query
&lt;/h2&gt;

&lt;p&gt;I used one block like this for each coordinate and combined the results. Replace &lt;code&gt;LAT,LON&lt;/code&gt; with the harbour point you want to test:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;[out:json][timeout:45];
(
  nwr(around:600,LAT,LON)[amenity=toilets];
  nwr(around:600,LAT,LON)[amenity=parking];
  nwr(around:600,LAT,LON)[highway=bus_stop];
  nwr(around:600,LAT,LON)[tourism=information];
);
out center tags;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The centre points used were:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Reykjavík Old Harbour: &lt;code&gt;64.1502, -21.9423&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Akureyri harbour: &lt;code&gt;65.6854, -18.0905&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Húsavík harbour: &lt;code&gt;66.0449, -17.3389&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Dalvík harbour: &lt;code&gt;65.9700, -18.5307&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Hólmavík harbour: &lt;code&gt;65.7043, -21.6690&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For ways and relations I measured from the returned centre point. A feature could therefore cross the 600-metre boundary even when its centre falls outside it, or the reverse. This is another reason to use the table as a prompt for inspection, not as a completeness score.&lt;/p&gt;

&lt;h2&gt;
  
  
  Mapping data and trip planning have different jobs
&lt;/h2&gt;

&lt;p&gt;OSM is the right place to describe verifiable physical features. A traveller-facing guide has a different job: comparing departure towns, likely trip lengths, seasons and the practical trade-offs between Reykjavík and North Iceland.&lt;/p&gt;

&lt;p&gt;For that separate planning layer, we maintain an &lt;a href="https://thingstodoiniceland.is/things-to-do/whale-watching" rel="noopener noreferrer"&gt;Iceland whale-watching planning guide&lt;/a&gt;. It is not a source for OSM edits. The link is included so readers can see the traveller question that prompted this mapping audit.&lt;/p&gt;

&lt;p&gt;If you map in any of these towns, the most useful follow-up would be a quick local check of the zero-count categories, including access and seasonal details where they can be verified. Even confirming that the current map is accurate would make the limits of this snapshot clearer.&lt;/p&gt;

</description>
      <category>webdev</category>
    </item>
    <item>
      <title>A Route API Is Not an Itinerary: Turning OSRM Output Into Honest Iceland Day Budgets</title>
      <dc:creator>Sindri Þór Stefánsson</dc:creator>
      <pubDate>Fri, 24 Jul 2026 17:35:01 +0000</pubDate>
      <link>https://dev.to/thingstodoiniceland/a-route-api-is-not-an-itinerary-turning-osrm-output-into-honest-iceland-day-budgets-5ghp</link>
      <guid>https://dev.to/thingstodoiniceland/a-route-api-is-not-an-itinerary-turning-osrm-output-into-honest-iceland-day-budgets-5ghp</guid>
      <description>&lt;p&gt;A routing API can tell you that a loop takes about four hours to drive. That does not mean it is a four-hour day.&lt;/p&gt;

&lt;p&gt;This distinction matters in Iceland. A visitor sees a route estimate, adds three pins, and assumes the rest will take care of itself. The missing time is usually not hidden in the routing engine. It is at the viewpoints, in the car park, over lunch, and in the margin needed when the day does not go exactly to plan.&lt;/p&gt;

&lt;p&gt;I wanted a small dataset that made those assumptions visible rather than disguising them as one authoritative duration. The result compares four Golden Circle route shapes at three stop paces: twelve scenarios generated from the same inputs.&lt;/p&gt;

&lt;h2&gt;
  
  
  The measurement is only the baseline
&lt;/h2&gt;

&lt;p&gt;The routes start and end in central Reykjavík. Each complete waypoint sequence was sent to the public OSRM driving service using OpenStreetMap data.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Route shape&lt;/th&gt;
&lt;th&gt;Distance&lt;/th&gt;
&lt;th&gt;OSRM driving time&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Þingvellir, Geysir and Gullfoss&lt;/td&gt;
&lt;td&gt;240.9 km&lt;/td&gt;
&lt;td&gt;230 min&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Classic route plus Kerið&lt;/td&gt;
&lt;td&gt;241.2 km&lt;/td&gt;
&lt;td&gt;232 min&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Classic route plus Secret Lagoon&lt;/td&gt;
&lt;td&gt;256.9 km&lt;/td&gt;
&lt;td&gt;250 min&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Classic route plus both add-ons&lt;/td&gt;
&lt;td&gt;259.8 km&lt;/td&gt;
&lt;td&gt;254 min&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;These figures were measured on 24 July 2026. They are routing estimates, not live traffic predictions.&lt;/p&gt;

&lt;p&gt;The small difference between the first two rows is a useful example. Kerið barely changes the driving total, but it still changes the day. You need time to park, walk around the crater, and get back on the road. A route comparison that considers only kilometres will miss that.&lt;/p&gt;

&lt;h2&gt;
  
  
  Keep assumptions in data, not in prose
&lt;/h2&gt;

&lt;p&gt;For each route, I calculated quick, comfortable and unhurried versions. The stop times are explicit inputs:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;STOP_MINUTES&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;quick&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Thingvellir Visitor Centre&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;60&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Geysir&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;45&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Gullfoss&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;45&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Kerid&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;30&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Secret Lagoon&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;105&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="p"&gt;},&lt;/span&gt;
    &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;comfortable&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Thingvellir Visitor Centre&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;90&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Geysir&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;60&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Gullfoss&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;60&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Kerid&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;45&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Secret Lagoon&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;120&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="p"&gt;},&lt;/span&gt;
    &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;unhurried&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Thingvellir Visitor Centre&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;120&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Geysir&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;75&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Gullfoss&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;75&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Kerid&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;60&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Secret Lagoon&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;150&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="p"&gt;},&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Every scenario also includes a 45-minute food break and a 60-minute contingency allowance. The calculation is intentionally boring:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;total_minutes&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="n"&gt;driving_minutes&lt;/span&gt;
    &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;stop_minutes&lt;/span&gt;
    &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;food_break_minutes&lt;/span&gt;
    &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;contingency_minutes&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That is a feature. Anyone can inspect the inputs, disagree with them, and replace them. A single label such as “full-day tour” is much harder to audit.&lt;/p&gt;

&lt;h2&gt;
  
  
  What the twelve rows reveal
&lt;/h2&gt;

&lt;p&gt;The classic three-stop loop ranges from about 8.1 hours at the quick pace to 10.1 hours at the unhurried pace. Adding both Kerið and the Secret Lagoon pushes the same range to roughly 10.7–14.0 hours.&lt;/p&gt;

&lt;p&gt;The practical conclusion is not that one pace is correct. It is that add-ons consume stop time more quickly than the route line suggests. If road or weather conditions take an hour away from the day, removing an add-on is usually more honest than removing the contingency allowance.&lt;/p&gt;

&lt;p&gt;For the actual stop order and the choices that matter on the road, I paired the dataset with this &lt;a href="https://thingstodoiniceland.is/road-trips/golden-circle-road-trip" rel="noopener noreferrer"&gt;Golden Circle road trip planner&lt;/a&gt;. The planner explains the trip; the dataset keeps the measurements and assumptions reproducible.&lt;/p&gt;

&lt;h2&gt;
  
  
  A dependency-free generator
&lt;/h2&gt;

&lt;p&gt;The generator uses Python’s standard library. Its route request is built from an ordered tuple of waypoint names:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;route_request_url&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;waypoints&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="n"&gt;coordinates&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;;&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;join&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
        &lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;PLACES&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="p"&gt;][&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;lon&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="si"&gt;:&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="mi"&gt;7&lt;/span&gt;&lt;span class="n"&gt;f&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s"&gt;,&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;PLACES&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="p"&gt;][&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;lat&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="si"&gt;:&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="mi"&gt;7&lt;/span&gt;&lt;span class="n"&gt;f&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
        &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;name&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;waypoints&lt;/span&gt;
    &lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="n"&gt;query&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;urllib&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;parse&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;urlencode&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;overview&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;false&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;steps&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;false&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;annotations&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;false&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="p"&gt;})&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;OSRM_BASE&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s"&gt;/&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;coordinates&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s"&gt;?&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;query&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The repository-sized dataset includes the exact waypoint coordinates and OpenStreetMap object IDs, route totals, leg-level measurements, the twelve time budgets, and the generator itself. It is archived with a DOI at &lt;a href="https://doi.org/10.5281/zenodo.21537255" rel="noopener noreferrer"&gt;Zenodo&lt;/a&gt; under CC BY 4.0.&lt;/p&gt;

&lt;h2&gt;
  
  
  Limits that should stay visible
&lt;/h2&gt;

&lt;p&gt;This model does not know about current weather, daylight, road closures, parking queues, walking conditions, seasonal access, or live traffic. It uses central Reykjavík as the start and end point. Accommodation location will change the route.&lt;/p&gt;

&lt;p&gt;It also does not claim that a longer stop is automatically a better visit. The three pace labels are planning choices, not quality scores.&lt;/p&gt;

&lt;p&gt;Before using any row as a real itinerary, check the current Icelandic road and weather services. Re-running the generator later can also produce different route values if OpenStreetMap or the OSRM routing graph changes.&lt;/p&gt;




&lt;p&gt;Disclosure: AI assistance was used to organize and edit this article. The route measurements, scenario design, source files, assumptions, and factual checks were reviewed before publication.&lt;/p&gt;

</description>
      <category>python</category>
      <category>opensource</category>
      <category>data</category>
      <category>travel</category>
    </item>
  </channel>
</rss>
