Style | StandardCards

OpenStreetMap Blogs

Monday, 30. June 2025

OpenStreetMap User's Diaries

Kann Karten nicht mehr drucken!

Kann Karten nicht mehr drucken!

Kann Karten nicht mehr drucken!


Editing

This is my my second day into the field of OSM, i went back and edited my home grown plce, yuh my home village and and waiting to welcome any reviews because i believe it is the right think to do and am welcoming any mistakes and am hoping to add many more places on the OSM today I went ahead and edited my villages by adding the various buildings and trees that haven’t been mapped yet

This is my my second day into the field of OSM, i went back and edited my home grown plce, yuh my home village and and waiting to welcome any reviews because i believe it is the right think to do and am welcoming any mistakes and am hoping to add many more places on the OSM today I went ahead and edited my villages by adding the various buildings and trees that haven’t been mapped yet


OpenCage

Interview: Jochen Topf

We interview very long-time OpenStreetMap veteran Jochen Topf

In this edition of our interview series with OpenStreetMap community members around the world, I chat with Jochen Topf.

Jochen is a very long-time member fo the OpenStreetMap community. He has been very active as a mapper, but also an organizer within the community, particularly in Germany. He is co-author of a book about OpenStreetMap (published in English as “OpenStreetMap: Using and Enhancing the Free Map of the World”), has spoken at many OpenStreetMap events over the years, and is a developer of some of the core OpenStreetMap software. He now works part-time for FOSSGIS e.V, the non-profit that serves as the local chapter of the OpenStreetMap Foundation in Germany (as an aside, we at OpenCage are proud to be corporate members of FOSSGIS and the OpenStreetMap Foundation).

Amongst much else Jochen is currently working on a project to broaden the level of financial support for OpenStreetMap in Germany, and I wanted to explore this topic as it has relevance for many OSM communities around the world.

1. Who are you and what do you do? What got you into OpenStreetMap?

My name is Jochen Topf. I have been active in the OpenStreetMap project since 2006. I started out as a mapper when the map was mostly empty and OSM was a good opportunity to get away from my computer and get some exercise on my bike while doing something useful for the world. I soon got into writing software for OSM, first as a hobby and later as a job. I work as a freelance software developer, mainly doing C++ development around my Osmium project and on osm2pgsql, but I also created and maintain taginfo and lots of other software. I have written a book about OSM and given many presentations about it. There is a long list of my OSM activities on my homepage.

For about 18 months now I also work part-time for FOSSGIS e.V., the German local chapter of the OSM Foundation, I am the only one getting paid to do OSM stuff there. My job is helping with communication and coordination inside and outside the OSM community. This is everything from updating our web site to writing statements about planned legislation in Germany that would impact the work of OSM, to helping government and other organisations understand, use, and contribute to OSM.

2. You are leading an effort to get more companies to financially sponsor OpenStreetMap in Germany, why? What is the current status of OpenStreetMap’s finances? Why does OSM need money? What is the goal of this project?

OpenStreetMap is widely used today. Everywhere you look you’ll find OSM maps and other products and services based on OSM. Some people consciously use OSM maps, but much more people use it without even knowing. Basically all the apps used for outdoor activities like hiking and mountain biking use OSM data, DHL plans their delivery routes with OSM, insurance companies give you discounts on your car insurance if you drive below the speed limit which they get from OSM, public transport companies calculate routes from platform to platform through complex train stations using OSM maps, emergency services are dispatched using OSM maps, and so on. OpenStreetMap is a public infrastructure that needs to be maintained. And there is much more that needs to be done than mapping. There are servers to run, software need to be updated, documentation needs to be written. And with the popularity of OSM come problems, problems like more strain on our servers and more vandalism, but also conflicts around what is allowed in the map and what not. More people affected by OSM maps means more questions, more need to explain what we are doing. Somebody has to deal with all of that. So far this has mostly been volunteers and while there are plenty of volunteers for mapping, there aren’t that many who get involved more deeply.

Generally OSM is severely underfunded, in Germany but also everywhere else in the world. The project we are most often compared to, Wikipedia, has 200 full-time staff in Germany alone. In OSM Germany, we struggle to pay one part-time staff. There are not even a dozen people in the world getting paid by the OSM Foundation and all its local chapters put together. It puts a lot of strain on the volunteers and a lot of work does not get done. And I believe it should be possible to work on good things like OSM and still make a living. There are lots of people out there who would like to contribute more but can’t, because they need to earn a living elsewhere.

So the idea is to get at least some of the companies and other organisations that use OSM extensively to give a little bit back to the project. Of course they could also become corporate members of the OSM Foundation, but it is easier for a German company to give something to a German non-profit and it is easier for us to approach local companies here. We’ll use that money to support our OSM activities in Germany, but also contribute resources and money to the international project.

3. How does this differ from becoming a corporate member of FOSSGIS?

In the international OSM Foundation, corporate members are very different from “normal” members. They don’t have voting rights and they pay a lot more money. Despite the name, corporate members are really more sponsors than members. This is different in the German FOSSGIS, where corporate members have voting rights like normal members do and don’t pay much more than normal members (just 200 EUR per year). This is just the way things were set up historically. We decided to leave this system in place but create a new supporter program that gives companies and other organizations a status that’s similar to corporate members in the OSMF but uses different terminology. The end goal is the same: Create a way to generate some income for OSM from those who use OSM the most and make a profit from it.

4. How to find a sustainable business model around open source software has been a long-running topic in the past decades. How does this translate to open data?

We are basically seeing the same problems and solutions. Because the “main thing” (the software/the data) is distributed for free, everybody has to find a way to charge for something extra. For software that’s often access to non-free add-ons, custom development or something like it. For data it can be processing of the data into a form that’s more useful for the client, like a finished map instead of the raw data. In the end it often comes down to: Is there somebody you can ask if you need some service that you don’t want to build yourself, and, if anything breaks, can you call them on the phone and get them to fix it. That’s what lots of companies want and are willing to pay for it. And that’s why there is a whole eco-system of companies around OSM.

5. Speaking for myself, as someone who has started and run various businesses, sometimes it is challenging to interact with the free-form OpenStreetMap “community”, where no one is really in charge. What advice do you have for businesses / organizations that want to engage with the OpenStreetMap community?

I think the first thing the business needs to realize is that OpenStreetMap is not one thing. OSM is much bigger and more diverse than most people realize, even most OSM community members themselves. You wouldn’t expect to be able to contact the one person responsible for the Internet either. So don’t try to find the person in charge. Instead, find somebody with more experience with OSM and listen to them.

Of course that’s easier said then done. How to find such a person? You might be able to find a local meetup or go to an event that has OSM people there. For Germany we have a list of events on our web site that are organized by the community or where OSM has a booth. You can also find a company with OSM experience and let them help you. Look for people who have given presentations about OSM at events for instance to get some idea of whom to contact. Be prepared to get frustrated and be willing to learn.

All that being said, I see it as our (the OSM communities) responsibility to do a better job at communicating with the rest of the world. This is one reason we need money, to pay people to do this communicating. In fact this is a large part of my job now, improving the openstreetmap.de website to include more information helping “outsiders” understand OSM, giving presentations on OSM and so on. And I am the point of contact in Germany for government and non-profit organisations.

6. Last year OpenStreetMap celebrated 20 years. As someone who has been very active in OSM in so many ways (mapper, software developer, founder of a company that relies on OSM, etc) for a long time, where do you think the project will be in another 20 years?

In the last years we have already been seeing a shift from OSM being a volunteer-only effort to a project where community, public and commercial interest work side by side to improve the map data. I think this trend will get even stronger over the next years and I believe in 20 years OSM will be part of the everyday public infrastructure that’s just there. When the Internet started to get big in the mid/late 1990ies, people debated whether their company or other organisation needed a presence on the web and complained how difficult and expensive it was to create a web site. Today, this isn’t even talked about any more. Everybody has a web site, you can create one yourself, large companies pay a marketing company or have in-house staff. There is a whole eco-system of services around the web. Every company, product, university project, NGO effort, or government activity has a web site. In 20 years many more people and organisations will contribute to OSM in one way or another. We’ll still have the volunteer community but also a lot of effort from companies, government agencies and so on contributing that part of the data which they know best. Some will do the work themselves, others will pay service companies to do the work, but everybody will contribute in some way because it just makes sense to be where everybody else is.

Thank you, Jochen! For the interview, but also for all of your work on and for OpenStreetMap over many years. One point really resonated with me: OpenStreetMap is more diverse than even most members of the community appreciate. The scale of the project is - in the truest sense - global. This is what makes OpenStreetMap so wonderful, but also so challenging.

Jochen, we wish you the best of luck in your efforts to broaden the size of the community and to help establish a solid financial foundation for further growth.

Happy mapping,

Ed

Please let us know if your community would like to be part of our interview series here on our blog. If you are or know of someone we should interview, please get in touch, we’re always looking to promote people doing interesting things with open geo data.


OpenStreetMap User's Diaries

Ventura Plaza

Centro comercial

Centro comercial

Sunday, 29. June 2025

OpenStreetMap User's Diaries

9999 edits  - a love letter to OpenSteetMap

so i’m nearing my 10,000th edit on openstreetmap.
wild. i’ve been thinking a lot about what that actually means.
what started as a hobby - or maybe an obsession - has slowly become a record of care.
a way to see.
a way to let others see.
mapping Bangkok, piece by piece.
making it just a little more visible.
a little more precise.
a little more known - to others, <

so i’m nearing my 10,000th edit on openstreetmap.
wild. i’ve been thinking a lot about what that actually means.
what started as a hobby - or maybe an obsession - has slowly become a record of care.
a way to see.
a way to let others see.
mapping Bangkok, piece by piece.
making it just a little more visible.
a little more precise.
a little more known - to others,
and to myself.
i’ve been thinking a lot about maps.
about what this whole thing has meant - not just as a mapper,
but as a local voice,
a small thread in a bigger web, by others.
by myself.
by the place itself.
piece by piece.
making it just a little more visible.
a little more precise.
a little more known - to others,
and to myself.
-
i’ve always loved maps.
even when i didn’t know the word for what i was feeling.
as a kid, i was drawn to them like magnets.
atlases in bookshops. globes with soft pastel oceans.
the tiny maps printed on the backs of business cards.
spatial things made me feel calm.
made me feel like the world could be held in my hands.
Vast space compress into something compact, 2 dimensional.
-
my first game was simcity 4 - my dad played it.
i didn’t really get it,
but i still did play it.
a lot,
to much, maybe.
then came minecraft.
and yeah, like every gen z kid,
i was obsessed. not the survival part.
i built cities.
creative model.
little parks and structures.
entire worlds.
i think i was looking for something i hadn’t seen yet in real life.
or maybe building the kind of place i wanted to see.
-
i still don’t know where the fascination comes from.
maybe it’s an autistic special interest.
maybe it’s just how i’ve always tried to make sense of things - through shapes,
through patterns,
through place.
-
it was the monsoon season of 2021.
midst of covid lockdown. my last year of high school. rain on the roof every day.
i opened openstreetmap one night and… that was it.
the editor was slow, clunky, frustrating - but something about it felt right.
i mapped a street.
then my school.
then a neighborhood.
then a whole district.
and then i edit.
and edit.
like nothing else matters.
i know it’s not healthy.
i know i’m not supposed to feel this alive hunched over a screen, tracing lines, renaming bus stops, aligning satellite tiles until my eyes blur.
but it satisfies something.
something deep.
something hidden in a place i don’t have a name for.
a warm ache in the center of me that only quiet edits can soothe.
so i keep going.
i expand.
translating tools like josm into thai, writing wiki articles, answering forum posts like i’ve been part of this community forever.
and maybe i have.
maybe this is my hometown, too.
not the real one, but the mapped one.
the shared one.
the infinite, editable one.
and now i’m here.
thousands of edits later.
still tracing, still tagging.
still trying to name things.
still looking for a way to understand the world a little better.
openstreetmap is familiar to me now.
like an old friend.
like a ritual.
and somewhere along the way i realized - 
i believe in open-source.
i believe in open-content.
i believe geographical data is a human right.
i believe it should be free.
for everyone.
forever.
and yes - 
i do love openstreetmap <3
-
thanks for reading. if you’re here, you probably get it.

🗺️✳️
krittin


weeklyOSM

weeklyOSM 779

19/06/2025-25/06/2025 [1] | © jaz-michaelking | Map tiles by CartoDB – Powered by uMap | Map data © OpenStreetMap Contributors. Community Pascal Neis recently conducted a GNSS accuracy comparison involving drones, an action camera, and a smartwatch. In the experiment, both the DJI Avata and the NEO drones successfully recorded GNSS tracks, but commonly deviated…

Continu

19/06/2025-25/06/2025

Community

  • Pascal Neis recently conducted a GNSS accuracy comparison involving drones, an action camera, and a smartwatch. In the experiment, both the DJI Avata and the NEO drones successfully recorded GNSS tracks, but commonly deviated several metres from the reference route. The GoPro action camera yielded similar or slightly worse accuracy, with GNSS tracks occasionally straying even farther than the drones. In contrast, the Garmin smartwatch delivered the most consistent and accurate results.
  • Martijn van Exel published his slides and cleaned-up speaker notes from his talk about MapRoulette and his lightning talk about the Meet Your Mappers tool given at State of the Map US in Boston.
  • Graham Park provided an explanation on how to utilise Strava traces for mapping paths in OpenStreetMap, noting that contributors are permitted to use Strava heatmap data for tracing, a usage right reconfirmed in November 2019.
  • Christoph Hormann commented on the recent controversy over the OpenStreetMap Foundation’s largest externally funded project to date, warning that it risks creating conflict between those driven by substantial extrinsic motivations, such as financial incentives or vague promises of money, and a community of intrinsically motivated volunteers. He emphasised that this issue stems from the broader problem of generational turnover within the OSM project and encouraged the community to develop their own approaches to facilitate this transition, either by creating their own methods or by pressuring the OSMF to begin taking responsibility.

OpenStreetMap Foundation

  • On Wednesday 25 June at 21:43 UTC the OpenStreetMap Grafana dashboard indicated an issue with the minutely replication diffs not updating. This disruption led to several downstream problems; most notably, newly uploaded changesets could neither be queried on the map nor rendered. The issue was first reported by community member queenofthenightosphere at 23:37 UTC. The OSM services that rely on this diff stream to stay in sync with the live database, including the Overpass API, tile rendering, Nominatim, and others, stopped updating. While the changesets were safely stored, they could not be accessed through these services due to the sync failure.

    • To resolve the issue, the OpenStreetMap Operations Team temporarily took the main site offline for maintenance. This was done to bring the replication diffs back into alignment with the database. The maintenance was successfully completed around 13:27 UTC on Thursday 26 June.
    • As of 14:06 UTC, several core services, tile rendering (tile.osm.org) and Overpass API, had caught up with current OSM edits via diffs. However, Nominatim was still in the process of catching up. Other services, especially third-party instances, may take additional time to fully resynchronise. The root cause appears to stem from an unexpected issue involving PostgreSQL and how osmdbt pulls replication diffs from the database.

Events

  • State of the Map Europe, happening in the UK this November, has opened its call for proposals. Across eight tracks, they hope you will propose talks, panels, and other sessions for the schedule.

OSM research

  • HeiGIT reported that a new paper was published by Huber et al., introducing the isocalor approach to assess how solar exposure and heat stress affect pedestrian access to essential services in Heidelberg, Germany. The study used OpenStreetMap data and a customised openrouteservice routing engine, and was conducted within the framework of the HEAL project.
  • Daniel Schep, Overpass Ultra’s developer, requests your input on how users engage with Ultra.
  • Ibra Lebbe Mohamed Zahir and colleagues have assessed the impact of the Booster Grants programme on climate activism and education among YouthMappers in Sri Lanka. Funded by HOT/Open Mapping Hub Asia Pacific, the programme supported grassroots mapping initiatives. Eastern University, Sri Lanka, was among its local implementing partners.

Maps

  • Lostmonkey tooted the ’17 Walls – Murals in Aarhus, Denmark’ , a uMap that shows the geolocation of the murals from the ’17 Walls project’ plus many other murals in Aarhus (Denmark) and those that were mapped in OpenStreetMap. You can also visit the project’s website.

Open Data

  • At the State of the Map US conference, Jacob Whall raised concerns, in a direct conversation with members of the Overture Maps team, regarding the organisation’s apparent failure to fully comply with the OSM project’s Open Database License. In response, Overture representatives acknowledged and apologised for certain oversights, and gave a verbal commitment to address the issues and implement necessary corrections.

Software

  • BeardMD was disappointed with the apps used for hiking the St James Way (Camino de Santiago). These apps ask users for updates to opening hours or bed counts, but never contribute the information gained back to OSM. To fix that he has written the Camino App, which does contribute back, starting with fountain potability information.
  • Ralph Straumann reported that Cadence Maps is currently developing a new cloud-native data service for distributing OSM data in the Germany–Austria–Switzerland–Liechtenstein region. The service delivers data in the GeoParquet format using a unified schema modelled after the Overture Maps framework.
  • The first public test build of CoMaps is now available for iOS!
  • HeiGIT reported that their online dashboard ohsomeNow Stats has been updated. The dashboard now provides near real-time access to all OpenStreetMap contributions since 2005 without the need for hashtags, enabling more flexible and detailed analysis of global mapping activities.
  • novaTopFlex tooted about the novaMapTerm, an application written in Go, with the Fyne toolkit, combining the Linux terminal with OpenStreetMap data. Watch a demonstration video.
  • VersaTiles tooted about a website that compares vector tiles for OpenStreetMap. It was developed with planetiler-shortbread, a Docker image containing planetiler and VersaTiles vector tiles. The code is available on GitHub and the demo is accessible as well.
  • mondstern tooted about the PublicArtExplorer, an application developed by Thomas Zell that allows you to discover and explore public art around you in just two clicks. The app uses your location to instantly reveal nearby sculptures, murals, and installations, complete with detailed information about each piece and its artist. The PublicArtExplorer’s data is based on OpenStreetMap and Wikipedia and is available for Android.
  • What’s new on the OpenStreetMap website since mid-May? It’s now easier to get directions, link to your social media profiles, set your preferred language, and much more.

Programming

  • Paul Norman showed how he can identify when coastlines have changed, which was required for the OSMF Shortbread vector tiles. He stated that every few days about 1000 coastline tiles need re-rendering.

Releases

  • TrickyFoxy has published better-osm-org 1.0.0, which includes: rendering of type=restriction relations, displaying information about deleted users, filtering notes on the map, a ruler for measuring distances on the map, and the ability to move node POIs. Previous updates had also added links to 3D renderings of buildings, the ability to partially revert changesets via osm-revert, and filtering changesets in the user’s heatmap. The source code is available on GitHub.
  • A completely new release of Tracesmap has dropped. Its main feature has pivoted to a GPX file viewer.
  • Version 1.15.0 of Baba, the Panoramax Android app, has been released and now supports the Taiwanese Panoramax instance.

Did you know that …

  • [1] … jaz-michaelking has developed ‘Fediverse Near Me’? It is an interactive web map showcasing a curated list of well-moderated Mastodon servers open for registration and tailored to specific countries, regions, or languages.

Other “geo” things

  • AllTrails has launched an AI-powered feature that allows users to create custom hiking routes from scratch, modify existing trails, or utilise a new routing system to make hikes shorter, less steep, or more scenic. While the feature is designed to enhance user experience, search and rescue officials have warned that it could worsen a long-standing problem: hiking apps spreading inaccurate or misleading trail information. Environmental advocates have also raised concerns that the feature could encourage users to create unofficial trails wherever they please, emphasising that trails exist for a reason, as staying on designated paths is not only important for human safety but also for protecting entire ecosystems, which often rely on carefully planned trail designs to allow limited, sustainable access.
  • A research team, led by Ed Hawkins and the University of Reading, maintains an interactive map, #ShowYourStripes, which shows the rise in average temperatures around the world. Stripes turned from mainly blue to mainly red in more recent years for virtually every country, region, and city. The application uses OpenStreetMap as base layer.
  • The National Remote Sensing Centre of the Indian Space Research Organisation is hosting a free webinar on Bhuvan, the country’s web-based geospatial platform. The webinar is from 9 to 11 July and registration closes on Wednesday 1 July.

Upcoming Events

    Country Where Venue What Online When
    flag Saint-Étienne Zoomacom Rencontre Saint-Étienne et sud Loire 2025-06-30
    flag Žilina FRI UNIZA Missing Maps mapathon Žilina #18 2025-07-01
    flag Derby The Brunswick, Railway Terrace, Derby East Midlands Pub Meet-up 2025-07-01
    Missing Maps London: (Online) Mapathon [eng] 2025-07-01
    flag Stuttgart Stuttgart Stuttgarter OpenStreetMap-Treffen 2025-07-02
    flag Wageningen Campus, Omnia FOSS4GNL 2025 2025-07-02 – 2025-07-03
    iD Community Chat 2025-07-02
    UN Mappers #ValidationFriday Mappy Hour: Waterways 2025-07-04
    flag Bogotá Remote Mapping Party Semanal LATAM Weekly LATAM Mapping Party 2025-07-04
    flag Pforzheim VPE Verkehrsverbund Pforzheim-Enzkreis, 3. OSMS meets VPE 2025-07-05
    flag Ghaziabad Vaishali OSM India monthly mapping party (online) 2025-07-06
    flag San Jose Online South Bay Map Night 2025-07-09
    flag Hamburg Voraussichtlich: "Variable", Karolinenstraße 23 Hamburger Mappertreffen 2025-07-08
    flag Online OpenStreetMap Midwest Meetup 2025-07-11
    OSMF Engineering Working Group meeting 2025-07-11
    flag Berlin Parzelle III/23b, Kleingartenkolonie Johannisberg, OSM-Stammtisch Berlin-Brandenburg 2025-07-11
    flag København Cafe Mellemrummet OSMmapperCPH 2025-07-13
    flag Ghaziabad Vaishali 18th OpenStreetMap Delhi Mapping Party 2025-07-13
    flag MZ Centar II FOSS4G Europe 2025 2025-07-14 – 2025-07-20
    flag 臺北市 MozSpace Taipei OpenStreetMap x Wikidata Taipei #78 2025-07-14

    Note:
    If you like to see your event here, please put it into the OSM calendar. Only data which is there, will appear in weeklyOSM.

This weeklyOSM was produced by HeiGIT, MatthiasMatthias, Raquel Dezidério Souto, Strubbl, Andrew Davidson, barefootstache, derFred.
We welcome link suggestions for the next issue via this form and look forward to your contributions.


OpenStreetMap User's Diaries

مدينة أبوقير الجديدة

مدينة أبوقير الجديدة

مدينة أبوقير الجديدة

Saturday, 28. June 2025

OpenStreetMap User's Diaries

Personal Mappilary project-2025

🚶‍♂️ A journey on foot, a project from the heart.

This project began with my own steps — capturing street-level imagery from Daffodil International University to Eastern University, Dhaka, Savar. Using Mapillary, I documented the road to support open mapping.

These images aren’t just photos — they’re vital pieces that will directly support and enhance OpenStreetMap. Every frame contribu

🚶‍♂️ A journey on foot, a project from the heart.

This project began with my own steps — capturing street-level imagery from Daffodil International University to Eastern University, Dhaka, Savar. Using Mapillary, I documented the road to support open mapping.

These images aren’t just photos — they’re vital pieces that will directly support and enhance OpenStreetMap. Every frame contributes to a bigger, collaborative mission: building a better, more accurate map for everyone.

The journey is still ongoing, day by day. Feel free to share any powerful screenshots — let’s map the future, together. 🌍


OsmAnd Live, Free for OSM Mappers

are eligible for free unlimited map downloads and live updates. To qualify: Enable the OpenStreetMap Editing plugin. Log in with your OSM username. Maintain at least 30 edits over the last two months.

?_highlight=live#free-for-osm-mappers

Alhamdullilahirrabilaalaameen!

are eligible for free unlimited map downloads and live updates. To qualify: Enable the OpenStreetMap Editing plugin. Log in with your OSM username. Maintain at least 30 edits over the last two months.

?_highlight=live#free-for-osm-mappers

Alhamdullilahirrabilaalaameen!


Request to Add Charchall Village – Akre District, Kurdistan Region

Hello everyone,

I would like to request the addition of a missing village to OpenStreetMap. The village is called Charchall, located in the Akre District, Sawsana Subdistrict, Duhok Governorate, in the Kurdistan Region of Iraq.

Basic information:

🏘️ Village name: Charchall

🗺️ District: Akre

🏞️ Subdistrict: Sawsana

🏴 Governorate: Duhok – Kurdistan R

Hello everyone,

I would like to request the addition of a missing village to OpenStreetMap. The village is called Charchall, located in the Akre District, Sawsana Subdistrict, Duhok Governorate, in the Kurdistan Region of Iraq.

Basic information:

🏘️ Village name: Charchall

🗺️ District: Akre

🏞️ Subdistrict: Sawsana

🏴 Governorate: Duhok – Kurdistan Region, Iraq

🧾 Postal Code: 24005

🛣️ Main connecting road: Charchall Road

📍 Nearby village: benatah

This village is recognized by local government maps, but it is still missing from OpenStreetMap. We kindly ask for it to be added so that the area can be better represented for residents, navigation, and future development.


résumé

objc.
  • Road networks / Réseaux routiers

(esp. ref / spé. ref)

zone
  • Gironde + Northern Landes (France) / Gironde + Nord des Landes (France)

objc.

  • Road networks / Réseaux routiers

(esp. ref / spé. ref)

zone

  • Gironde + Northern Landes (France) / Gironde + Nord des Landes (France)

Friday, 27. June 2025

OpenStreetMap User's Diaries

none

none

none


Introduction

Today is my introduction to OSM through an internship process by Mr Samson who take as through an online intern, we are getting into it before you know it and this will mark the start of one of the greatest open street mappers who has ver been born, am actually learning a lot from this process and looking forward to contributing so much to the members of the community, we wanna make Uganda great

Today is my introduction to OSM through an internship process by Mr Samson who take as through an online intern, we are getting into it before you know it and this will mark the start of one of the greatest open street mappers who has ver been born, am actually learning a lot from this process and looking forward to contributing so much to the members of the community, we wanna make Uganda great and make my village the best in the world

Thursday, 26. June 2025

OpenStreetMap User's Diaries

Isócronas en Python

Resaltar áreas transitables en Python

♦ En las ciencias geoespaciales y la inteligencia de ubicación, las isócronas representan áreas geográficas accesibles en un tiempo determinado desde un punto específico. Por ejemplo, en el contexto de las distancias a pie, las isócronas son herramientas útiles para profesionales como los urbanistas que buscan comprender la accesibilidad y la conectividad d

Resaltar áreas transitables en Python

Isócronas Popayán En las ciencias geoespaciales y la inteligencia de ubicación, las isócronas representan áreas geográficas accesibles en un tiempo determinado desde un punto específico. Por ejemplo, en el contexto de las distancias a pie, las isócronas son herramientas útiles para profesionales como los urbanistas que buscan comprender la accesibilidad y la conectividad dentro de un área determinada.

Al visualizar las isócronas, la ciencia de datos puede proporcionar una herramienta rápida y fácil de usar para ayudar a obtener información sobre el nivel de conectividad y accesibilidad a pie de los vecindarios, ayudar a identificar áreas que están bien conectadas y señalar áreas potenciales de mejoras de infraestructura.

En este artículo, explico cómo generar isócronas de distancia a pie mediante los paquetes de Python NetworkX (diseñado para análisis de grafos) y OSMNnx (que combina OpenStreetMap y NetworkX). Tomamos como ejemplo Perímetro urbano de la ciudad de Popayán. Primero, descargamos la red vial del área, seleccionamos un nodo aleatorio (una intersección aleatoria) y dibujamos las isócronas de distancia a pie de 5, 10, 20 y 30 minutos a su alrededor.

1. Adquisición de datos

Primero, importaremos OSMnx y lo usaremos para descargar los límites administrativos del área objetivo. Puede reemplazarlo por el nombre de cualquier lugar que prefiera, que puede consultar fácilmente en OpenStreetMap. A continuación, usaremos OSMnx para descargar la red vial del área objetivo y mostrar el tamaño de esta red de nodos en términos de número de intersecciones y segmentos viales. Además, debemos especificar el tipo de red , que ahora está configurado como “walk” para obtener solo las partes transitables de la red vial.

# Importing osmnx
import osmnx as ox

# Configurar Matplotlib para visualización si es necesario
# import matplotlib.pyplot as plt

# Definir el polígono para la ciudad de Popayán, Cauca, Colombia
# Es importante ser específico para que OSMnx identifique correctamente el área.
# Puedes probar con diferentes niveles de especificidad si la primera no funciona,
# por ejemplo: 'Popayán, Colombia' o 'Popayán'.
# 'Perímetro urbano de Popayán, Cauca, Colombia' es un buen punto de partida.
print("Geocodificando la ciudad de Popayán...")
try:
    admin_district = ox.geocode_to_gdf('Perímetro urbano de Popayán, Cauca, Colombia')
    print("Geocodificación exitosa.")
except Exception as e:
    print(f"Error al geocodificar Popayán: {e}")
    print("Asegúrate de que la cadena de ubicación sea correcta y haya conexión a internet.")
    # Puedes probar con una cadena menos específica si da error, como 'Popayán, Colombia' o 'Popayán'
    admin_district = ox.geocode_to_gdf('Popayán, Colombia') # Intento alternativo

# Muestra el polígono en un gráfico (opcional, para verificar que es correcto)
print("Mostrando el polígono geocodificado...")
admin_district.plot()
# Si estás en un entorno interactivo como Jupyter, la trama se mostrará automáticamente.
# Si estás en un script .py, puedes añadir plt.show() al final para que la ventana del gráfico aparezca.
# plt.show()

# Extraer la geometría del polígono de la primera fila del GeoDataFrame
# Asumimos que el primer resultado es el correcto para la ciudad de Popayán.
# Puedes inspeccionar admin_district si hay múltiples geometrías.
admin_poly = admin_district.geometry.values[0]

# Guardar imagen del mapa
png_path = os.path.join(output_dir, "map.png")
plt.savefig(png_path, dpi=300, bbox_inches='tight')

# Cargar el grafo de la red de calles dentro de ese polígono
print("Cargando el grafo de la red de calles de Popayán...")
G = ox.graph_from_polygon(admin_poly, network_type='walk')
print("Grafo cargado exitosamente.")

print('\nAnálisis de la red de calles de Popayán:')
print('Número de intersecciones (nodos): ', G.number_of_nodes())
print('Número de segmentos de carretera (aristas):',  G.number_of_edges())

# Opcional: Visualizar el grafo
# print("\nVisualizando el grafo...")
# fig, ax = ox.plot_graph(G, figsize=(10, 10), node_size=0, edge_linewidth=0.5, show=False, close=False)
# plt.title("Red Peatonal de Popayán")
# plt.show()

2. Polígonos de alcanzabilidad

Ahora, construyamos los polígonos isócronos de transitabilidad. Para ello, primero, asumimos una velocidad promedio de caminata de 5 km/h (1,39 m/s) y, con esta velocidad, asignamos un tiempo de caminata a cada borde de la red vial. Luego, seleccionamos un nodo aleatorio para comenzar y definimos la lista de rangos de transitabilidad: 5, 10, 20 y 30 minutos.

Para crear los polígonos de accesibilidad, primero usamos la función integrada de NetworkX llamada _ego graph , que devuelve un subgrafo específico de la red vial original que contiene todos los nodos dentro de un radio determinado, según las métricas de distancia que elijamos. Si seleccionamos _travel time , podemos devolver el subgrafo accesible en un tiempo determinado y almacenarlo como un atributo de borde llamado _travel time .

Luego, necesitamos extraer todas las coordenadas de los nodos de este subgrafo, que almacenaremos en la lista _node points . Finalmente, las convertimos en un polígono, lo graficamos y lo guardamos para la siguiente sección.

El resultado: todos los polígonos isócronos de transitabilidad, para 5, 10, 20 y 30 minutos, respectivamente

# Define the walking speed (5 km/h -> 1.39 m/s)
walking_speed = 1.39  # in meters per second

# Calculate travel time for each edge
for u, v, data in G.edges(data=True):
    # Calculate travel time in seconds
    data['travel_time'] = data['length'] / walking_speed

# Pick a center node
center_node = list(G.nodes())[30]  # starting point

# Generate isochrones
isochrone_times = [5, 10, 20, 30]  # isochrones in minutes

# Library imports
import networkx as nx 
from shapely.geometry import Point, Polygon  
import geopandas as gpd 

isochrone_polys = []

for time in isochrone_times:
    subgraph = nx.ego_graph(G, 
                            center_node, 
                            radius=time*60, 
                            distance='travel_time')

    node_points = [Point((data['x'], data['y'])) 
                   for node, data in subgraph.nodes(data=True)]

    polygon = Polygon(gpd.GeoSeries(node_points).unary_union.convex_hull)
    gpd.GeoDataFrame([polygon], columns = ['geometry']).plot()
    isochrone_polys.append(gpd.GeoSeries([polygon]))

3. Visualizando las isócronas

Por último, utilicemos Matplotlib y la coloración de rojo a verde para trazar y visualizar las isócronas sobre la red de carreteras.

import os

# Crear carpeta de salida (si no existe)
output_dir = "isochrones_popayan"
os.makedirs(output_dir, exist_ok=True)

import matplotlib.pyplot as plt
import matplotlib.patches as mpatches
import osmnx as ox
import networkx as nx
import geopandas as gpd


ox.settings.use_cache = True
ox.settings.log_console = True

# 1. Obtener geometría de Popayán
admin_district = ox.geocode_to_gdf('Perímetro urbano de Popayán, Cauca, Colombia')
polygon = admin_district.geometry.iloc[0]

# 2. Descargar red caminable
G = ox.graph_from_polygon(polygon, network_type='walk', simplify=True)

# 3. Proyectar grafo a CRS métrico
G_proj = ox.project_graph(G)
nodes_proj = ox.graph_to_gdfs(G_proj, nodes=True, edges=False)

# 4. Nodo de inicio: centroide proyectado

# Coordenadas del punto inicial (WGS84)
lat, lon = 2.441901, -76.606439

# Crear GeoSeries y proyectar al CRS del grafo
point_wgs = gpd.GeoSeries([gpd.points_from_xy([lon], [lat])[0]], crs="EPSG:4326")
point_proj = point_wgs.to_crs(G_proj.graph['crs'])
x, y = point_proj.geometry.iloc[0].x, point_proj.geometry.iloc[0].y

# Obtener el nodo más cercano a esas coordenadas proyectadas
center_node = ox.distance.nearest_nodes(G_proj, X=x, Y=y)



# 5. Definir tiempos y distancias
trip_times = [5, 10, 15, 20]  # minutos
meters_per_minute = 80  # m/min
travel_distances = [t * meters_per_minute for t in trip_times]

# 6. Generar polígonos de isócrona
def make_iso_polys(G, center_node, distances):
    polys = []
    for dist in distances:
        subgraph = nx.ego_graph(G, center_node, radius=dist, distance='length')
        nodes_gdf = ox.graph_to_gdfs(subgraph, nodes=True, edges=False)
        if not nodes_gdf.empty:
            union = nodes_gdf.unary_union
            buffered = gpd.GeoSeries([union]).buffer(100)  # Aumentar buffer para visibilidad
            polys.append(buffered)
        else:
            polys.append(gpd.GeoSeries())
    return polys

isochrone_polys = make_iso_polys(G_proj, center_node, travel_distances)

# 7. Visualización
fig, ax = plt.subplots(figsize=(10, 10))
colors = ['red', 'orange', 'yellow', 'green']

# Dibujar isócronas
for idx, (poly, time) in enumerate(reversed(list(zip(isochrone_polys, trip_times)))):
    if not poly.empty and not poly.is_empty.all():
        poly.plot(ax=ax, color=colors[idx], alpha=0.4)
        poly.boundary.plot(ax=ax, color=colors[idx], linewidth=2)

# Leyenda manual
handles = [
    mpatches.Patch(color=colors[idx], alpha=0.5, label=f'{time} min')
    for idx, time in enumerate(reversed(trip_times))
]

ox.plot_graph(G_proj, ax=ax, node_size=0, edge_linewidth=0.5, show=False)
ax.set_title("Isócronas desde el centro de Popayán, Cauca", fontsize=15)
plt.legend(handles=handles)
plt.tight_layout()

# Guardar imagen del mapa
png_path = os.path.join(output_dir, "isochrones_map.png")
plt.savefig(png_path, dpi=300, bbox_inches='tight')


plt.show()

Repositorio


OsmAPP 1.7.0 released

  • URL: osmapp.org
  • Full changelog: github.com/zbycz/osmapp/releases/tag/v1.7.0

OsmAPP is the one integrated app for OpenStreetMap ecosystem for both web and mobile. It should be as easy to use as Google Maps, but fully open-source using all the great services around. It was first aimed at broad public, but now it becomes apparent, that it works best for the OpenStr

OsmAPP is the one integrated app for OpenStreetMap ecosystem for both web and mobile. It should be as easy to use as Google Maps, but fully open-source using all the great services around. It was first aimed at broad public, but now it becomes apparent, that it works best for the OpenStreetMap contributors, who want better UX or share OSM around.

Special thanks to all our 6 contributors in this release. 🎉

The new Relation editor

The main feature of this release is the reworked Edit dialog with the new Relation editor. That took a lot of work and refactoring. Now if you click (or create) a relation, you can browser through its members and its parents and easily edit metadata accross whole hierarchies.

It is the most useful on hierarchies like the climbing=area, climbing=crag and routes (example here), but it is written in general manner and can help OSM contributors in unexpected ways.

editdialog

Indoor maps 🏢 🏣 🏛️

Thanks to @francois2metz who created vector tiles for indoor features (indorequeal.com), you can now browse inside of buildings, where it is mapped with level=* and indoor=* tags. (Example). Or find some examples in your neighborhood with query: level=* and indoor=* which you can enter in the search box (or link)

indoor

Directions evolved 🚶 🚴 🚗 🚀

Directions form has evolved to the industry standard. You can add multiple destinations, drag&drop them, click the map, drag the markers or choose “My location”. Thanks to @jvaclavik for development, and @karussell for providing a free tier on the Graphhoper.com. ❤️

directions

Wikimedia Commons Category preview

One fun addition was to develop a custom “masonry-style” preview image, when an OSM feature links to a Wikimedia Commons Category. OsmAPP now download first 10 images and tries to fit them in a nice collage. You can explore OSM items in your vicinity by executing this Overpass query in the OsmAPP searchbox: op:nwr["wikimedia_commons"~"Category"] (or link).

category preview

Other notable changes

  • ⚙️ Add metric/imperial switch to settings by @Dlurak, PR
    • You can choose the system by clicking the measure component in the down left. It will be instantly propagated through the whole app.
  • 🌎 Use globe 3D projection by @jvaclavik, PR
    • Because flat-earth is so old-school. 🙂 🗺️
  • 🚌 add transport layer from Thunderforest.com + dark mode by @zbycz, PR
    • This is the only layer on OsmAPP, which follows the user setting of Dark mode / Light mode.
  • 📍 Coordinate and OLC search by @Dlurak, PR
    • Plus codes and coordinates can be pasted in the SearchBox to display it on the map. Also when you share

Climbing project update

OpenClimbing.org is a standalone app for using the rock climbing data in OpenStreetMap. It is fully based on OsmAPP and with this release we celebrate the public launch of the service.

You can read more in a dedicated blogpost: HERE

Summary of all cool features in OsmAPP 🗺 📱 🖥

  • clickable map – POIs, cities, localities, ponds, airports (more coming soon)
  • feature panel – presets and fields from iD editor
    • Display multiple images from Wikipedia, Wikidata, Commons, Mapillary, KartaView, Panoramax or Fody
    • public transport: clickable line numbers (on stops), routes on map (on stations), stop itineraries (on routes)
    • Socket types on electric vehicle charging stations
    • Runway table on airports, viewpoint direction arrow, colors as colors
  • editing – Save changes with osm login. Insert note for anonymous users.
    • Opening hours editor – use simple editor for most common cases.
    • Relation hierarchy editor - simply click through relation childs and parents. Optimized for climbing=area, climbing=crag and routes.
  • search engine – try for example “Tesco, London” (powered by Photon).
    • Category search using iD editor presets
    • For advanced users: support for overpass queries (e.g. amenity=* or op:<query>)
  • directions - everyhing you need from modern app - drag&drop destinations, drag markers, click to map to select, etc. (by GraphHopper Directions API)
  • vector maps – with the possibility of tilting to 3D (drag the compass, or do two fingers drag)
    • 3D terrain – turned on when tilted
    • tourist map – vector Outdoor map from MapTiler including marked routes
  • layer switcher – you can add your own layers, also select from editor-layer-index list
  • mobile applications – using PWA technology, see osmapp.org/install
  • permanent URLs – eg. osmapp.org/way/123557148 and shortener, eg. osmapp.org/kkjwwaw
  • creating POIs – after clicking the coordinates (see e.g. osmapp.org/50.1,14.39)
  • languages – interface in English, Czech, German, Polish, Spanish, Amharic, Italian, French, Japanese
  • undelete – undo accidental delete in osmapp or elsewhere, e.g. here
  • and a lot of little details 🙂

We are looking forward to any feedback!

Thank you for your support!

@zbycz and @jvaclavik


Openclimbing.org - climbing guides & topos in OpenStreetMap

The goal of openclimbing.org is to offer a non-commercial alternative to traditional climbing apps. Instead of filling private databases, we decided to design a structure for mapping climbing routes directly into OpenStreetMap.

This way, all data in the app is fully open and can be freely used or edited by anyone.

♦ Image: Crag with marked climbing routes in Hlubočepy, Czechia

The goal of https://openclimbing.org is to offer a non-commercial alternative to traditional climbing apps. Instead of filling private databases, we decided to design a structure for mapping climbing routes directly into OpenStreetMap.

This way, all data in the app is fully open and can be freely used or edited by anyone.

Climbing guide for climbing crag Hlubočepy, Czechia Image: Crag with marked climbing routes in Hlubočepy, Czechia

Key Features of openclimbing.org

  • Both the database and the code are completely open, so anyone can contribute with content or code. Thanks to the open data approach, anyone can create new ways to use or visualize the data.

  • Each climbing route has defined GPS coordinates, making it easier to find in the terrain. This is big advantage but also a limitation – you cannot add routes without it.

Showing climbing routes on the map Image: Climbing routes on the map

  • Optimized for mobile devices, so it can be used directly in the field.
  • Integration of the map with photo EXIF data – you can see on the map where a photo was taken and where climbing routes are located.

3D climbing maps

  • Fully mapped climbing crags can be displayed in 3D – tilt the map (ctrl/cmd+drag)

climbing crag in 3D Image: Kačák climbing area, Czechia

Climbing area Uskedalen in 3D Image: Uskedalen climbing area, Norway

  • A basic climbing logbook for tracking ascents, with the option to display them directly on the map.
  • For drawing climbing routes onto photos, we use the wikimedia_commons:path specification, and the photos are stored in Wikimedia Commons. Additionally, we use a climbing tagging scheme documented directly on the OSM Wiki, which is also supported by the iD editor.

Grade systems conversion

  • The app includes a converter for most commonly used climbing grade systems. Climbing grades table in openclimbing.org

Stats

  • We generate our own climbing tiles on the map, where we display:
    • 26,000+ climbing areas
    • 22,000+ climbing routes
    • 1,700+ climbing routes drawn on photos
    • 8,000+ artificial climbing walls
    • 200+ via ferratas

We are looking forward to any feedback!

Thank you for your support.

@zbycz and @jvaclavik


Geofabrik

Geofabrik Sponsoring State of the Map’s in 2025

Geofabrik is pleased to support the OpenStreetMap community as a bronze sponsor of two upcoming conferences in 2025: State of the Map Global – Manila, Philippines State of the Map Europe – Dundee, Scotland, UK We have been regular sponsors of SotM events for many years, including regional conferences such as FOSSGIS. Our staff have […]

Geofabrik is pleased to support the OpenStreetMap community as a bronze sponsor of two upcoming conferences in 2025:

We have been regular sponsors of SotM events for many years, including regional conferences such as FOSSGIS. Our staff have also contributed by speaking at various sessions over time.

Events like SotM offer a useful opportunity for exchange within the OpenStreetMap ecosystem. While much of the work in the OSM world happens remotely, occasional in-person meetings remain valuable for maintaining collaboration and perspective.

Sponsorship opportunities are still available for both events for those interested in supporting the community.


OpenStreetMap User's Diaries

Unicore UM980 use with RTKLIB for

UM980 is relatively affordable chip allowing multi-constellation multi-frequency GNSS with capability to provide raw phase measurements and hence potentially suitable for use in OpenStreetMap environment for precise mapping susing RTK.

In this post (or potentially series of posts), I will document my experiences with using UM980 with RTKLIB and other open-source or free tools.

Hardw

UM980 is relatively affordable chip allowing multi-constellation multi-frequency GNSS with capability to provide raw phase measurements and hence potentially suitable for use in OpenStreetMap environment for precise mapping susing RTK.

In this post (or potentially series of posts), I will document my experiences with using UM980 with RTKLIB and other open-source or free tools.

Hardware

  • UM980 RTK GNSS USB Dongle with SMA antenna - ELT0222 (from gnss.store)
  • EM-FD700 antenna (form AliExpress)

The module can easily be configured using UPrecise tool coming with UM980. It is advisable to have faster than default COM port rate ~~~ CONFIG COM1 230400 ~~~ and use the signal group 2 (note that this leads to reset of the UM980 module ~~~ CONFIG SIGNALGROUP 2 ~~~

If you need to stop the stream of measured data, you can use ~~~ UNLOG ~~~ You can also UNLOG just specific messages.

If you want to store your config of the module so that it survives unplugging and restarting the module, use ~~~ SAVECONFIG ~~~

Software setup on Android

RTKGPS+ - collecting raw phase measurements

This is to collect the raw data in real time. The last RTKGPS+ tool is release is unfortunately relatively old and hence does not support, so the native UniCore support, which is available in demo5_b34L version of RTKLIB, is not yet available in RTKGPS+. Hence it is mostly useful for collecting raw data, rather than providing real-time solutions. If you want to collect the data, choose BINEX as the format and just log the input stream from the USB. This is how to configure the module:

CONFIG PPP DISABLE

OBSVMB 1

GPSEPHB 120
BDSEPHB 120
BD3EPHB 120
GLOEPHB 120
GALEPHB 120

GPSIONB 120
BDSIONB 120
BD3IONB 120
GALIONB 120

If you want to have faster measurements, you can use ~~~ OBSVMB 0.2 ~~~ But it may be then advisable to use at least 240kbaud rate of the COM port (which is generally well supported by RTKGPS+).

The input stream configuration is 230400/8-N-1 and format to store the data is BINEX.

RTKGPS+ - undocumented NavTel-compatible mode

Alternatively, one can attempt to use it using undocumented mode of UM980 to produce binary data compatible data: ~~~ RANGEB COM1 0.2 ~~~ However, I had problem that only very poor solutions were found, with only using GLONASS and Galileo constellation - probably due to lack of ephemeris included (use of “CONFIG ALLEPHRTCM ENABLE” option is still to be explored).

Then the input format is NovAtel OEMV/4.

RTKGPS+ - recording the base data

It is possible to use the RTKGPS+ to log also the data from the base, a nearby coming from IGS or from EUREF (both requiring a free registration) and store the data in RTCM 3 format.

SW Maps - free software on Android to read NMEA data

This is an example how to use PPP on the UM980 module and collect the data using SW Maps. ~~~ CONFIG PPP ENABLE E6-HAS CONFIG PPP DATUM WGS84 CONFIG PPP TIMEOUT 120 CONFIG PPP CONVERGE 15 30

GPGGA 0.2 GPGSA 1 GPGST 1 GPGSV 1 GPGLL 1 GPGNS 1 GPRMC 1 ~~~

Use of RTKLIB on the Windows

This assumes use of demo5_b34L version of RTKLIB or later. Once the data is captured using RTKLIB, one can process the data using convbin and rtkpost from RTKLIB to process the data

Converting from UNC and RTCM3 formats

convbin -od -os -oi -ot  rover_20250626042937.unc 
convbin -od -os -oi -ot  base_20250626042937.rtcm3

rtkpost config for postprocessing with output to pos file

# rtkpost options (2025/06/26 04:39:16, v.demo5 b34L)

pos1-posmode       =kinematic  # (0:single,1:dgps,2:kinematic,3:static,4:static-start,5:movingbase,6:fixed,7:ppp-kine,8:ppp-static,9:ppp-fixed)
pos1-frequency     =l1+l2+l5+l6 # (1:l1,2:l1+l2,3:l1+l2+l5,4:l1+l2+l5+l6)
pos1-soltype       =combined   # (0:forward,1:backward,2:combined,3:combined-nophasereset)
pos1-elmask        =15         # (deg)
pos1-snrmask_r     =off        # (0:off,1:on)
pos1-snrmask_b     =off        # (0:off,1:on)
pos1-snrmask_L1    =38,38,38,38,38,38,38,38,38
pos1-snrmask_L2    =0,0,0,0,0,0,0,0,0
pos1-snrmask_L5    =0,0,0,0,0,0,0,0,0
pos1-snrmask_L6    =0,0,0,0,0,0,0,0,0
pos1-dynamics      =on         # (0:off,1:on)
pos1-tidecorr      =0          # (1:solid+2:otl+4:spole)
pos1-ionoopt       =brdc       # (0:off,1:brdc,2:sbas,3:dual-freq,4:est-stec,5:ionex-tec,6:qzs-brdc)
pos1-tropopt       =saas       # (0:off,1:saas,2:sbas,3:est-ztd,4:est-ztdgrad)
pos1-sateph        =brdc       # (0:brdc,1:precise,2:brdc+sbas,3:brdc+ssrapc,4:brdc+ssrcom)
pos1-posopt1       =off        # (0:off,1:on)
pos1-posopt2       =off        # (0:off,1:on)
pos1-posopt3       =off        # (0:off,1:on,2:precise)
pos1-posopt4       =off        # (0:off,1:on)
pos1-posopt5       =off        # (0:off,1:on)
pos1-posopt6       =off        # (0:off,1:on)
pos1-exclsats      =           # (prn ...)
pos1-navsys        =47         # (1:gps+2:sbas+4:glo+8:gal+16:qzs+32:bds+64:navic)
pos2-armode        =fix-and-hold # (0:off,1:continuous,2:instantaneous,3:fix-and-hold)
pos2-gloarmode     =fix-and-hold # (0:off,1:on,2:autocal,3:fix-and-hold)
pos2-bdsarmode     =off        # (0:off,1:on)
pos2-arfilter      =on         # (0:off,1:on)
pos2-arthres       =3
pos2-arthresmin    =3
pos2-arthresmax    =3
pos2-arthres1      =0.1
pos2-arthres2      =0
pos2-arthres3      =1e-09
pos2-arthres4      =1e-05
pos2-varholdamb    =0.1        # (cyc^2)
pos2-gainholdamb   =0.01
pos2-arlockcnt     =0
pos2-minfixsats    =4
pos2-minholdsats   =5
pos2-mindropsats   =10
pos2-arelmask      =15         # (deg)
pos2-arminfix      =100
pos2-armaxiter     =1
pos2-elmaskhold    =15         # (deg)
pos2-aroutcnt      =20
pos2-maxage        =30         # (s)
pos2-syncsol       =off        # (0:off,1:on)
pos2-slipthres     =0.05       # (m)
pos2-dopthres      =0          # (m)
pos2-rejionno      =1          # (m)
pos2-rejcode       =10         # (m)
pos2-niter         =1
pos2-baselen       =0          # (m)
pos2-basesig       =0          # (m)
out-solformat      =llh        # (0:llh,1:xyz,2:enu,3:nmea)
out-outhead        =on         # (0:off,1:on)
out-outopt         =on         # (0:off,1:on)
out-outvel         =off        # (0:off,1:on)
out-timesys        =gpst       # (0:gpst,1:utc,2:jst)
out-timeform       =hms        # (0:tow,1:hms)
out-timendec       =3
out-degform        =deg        # (0:deg,1:dms)
out-fieldsep       =
out-outsingle      =on         # (0:off,1:on)
out-maxsolstd      =0          # (m)
out-height         =geodetic   # (0:ellipsoidal,1:geodetic)
out-geoid          =internal   # (0:internal,1:egm96,2:egm08_2.5,3:egm08_1,4:gsi2000)
out-solstatic      =all        # (0:all,1:single)
out-nmeaintv1      =0          # (s)
out-nmeaintv2      =0          # (s)
out-outstat        =residual   # (0:off,1:state,2:residual)
stats-eratio1      =300
stats-eratio2      =300
stats-eratio5      =300
stats-eratio6      =300
stats-errphase     =0.003      # (m)
stats-errphaseel   =0.003      # (m)
stats-errphasebl   =0          # (m/10km)
stats-errdoppler   =1          # (Hz)
stats-snrmax       =52         # (dB.Hz)
stats-errsnr       =0          # (m)
stats-errrcv       =0          # ( )
stats-stdbias      =30         # (m)
stats-stdiono      =0.03       # (m)
stats-stdtrop      =0.3        # (m)
stats-prnaccelh    =3          # (m/s^2)
stats-prnaccelv    =1          # (m/s^2)
stats-prnbias      =0.0001     # (m)
stats-prniono      =0.001      # (m)
stats-prntrop      =0.0001     # (m)
stats-prnpos       =0          # (m)
stats-clkstab      =5e-12      # (s/s)
ant1-postype       =llh        # (0:llh,1:xyz,2:single,3:posfile,4:rinexhead,5:rtcm,6:raw)
ant1-pos1          =0          # (deg|m)
ant1-pos2          =0          # (deg|m)
ant1-pos3          =0          # (m|m)
ant1-anttype       =
ant1-antdele       =0          # (m)
ant1-antdeln       =0          # (m)
ant1-antdelu       =0          # (m)
ant2-postype       =single     # (0:llh,1:xyz,2:single,3:posfile,4:rinexhead,5:rtcm,6:raw)
ant2-pos1          =0          # (deg|m)
ant2-pos2          =0          # (deg|m)
ant2-pos3          =0          # (m|m)
ant2-anttype       =
ant2-antdele       =0          # (m)
ant2-antdeln       =0          # (m)
ant2-antdelu       =0          # (m)
ant2-maxaveep      =1
ant2-initrst       =on         # (0:off,1:on)
misc-timeinterp    =off        # (0:off,1:on)
misc-sbasatsel     =0          # (0:all)
misc-rnxopt1       =
misc-rnxopt2       =-EPHALL
misc-pppopt        =
file-satantfile    =
file-rcvantfile    =
file-staposfile    =
file-geoidfile     =
file-ionofile      =
file-dcbfile       =
file-eopfile       =
file-blqfile       =
file-tempdir       =
file-geexefile     =
file-solstatfile   =
file-tracefile     =

rtkpost config for postprocessing with output to NMEA file

# rtkpost options (2025/06/26 06:28:15, v.demo5 b34L)

pos1-posmode       =kinematic  # (0:single,1:dgps,2:kinematic,3:static,4:static-start,5:movingbase,6:fixed,7:ppp-kine,8:ppp-static,9:ppp-fixed)
pos1-frequency     =l1+l2+l5+l6 # (1:l1,2:l1+l2,3:l1+l2+l5,4:l1+l2+l5+l6)
pos1-soltype       =combined   # (0:forward,1:backward,2:combined,3:combined-nophasereset)
pos1-elmask        =15         # (deg)
pos1-snrmask_r     =off        # (0:off,1:on)
pos1-snrmask_b     =off        # (0:off,1:on)
pos1-snrmask_L1    =38,38,38,38,38,38,38,38,38
pos1-snrmask_L2    =0,0,0,0,0,0,0,0,0
pos1-snrmask_L5    =0,0,0,0,0,0,0,0,0
pos1-snrmask_L6    =0,0,0,0,0,0,0,0,0
pos1-dynamics      =on         # (0:off,1:on)
pos1-tidecorr      =0          # (1:solid+2:otl+4:spole)
pos1-ionoopt       =brdc       # (0:off,1:brdc,2:sbas,3:dual-freq,4:est-stec,5:ionex-tec,6:qzs-brdc)
pos1-tropopt       =saas       # (0:off,1:saas,2:sbas,3:est-ztd,4:est-ztdgrad)
pos1-sateph        =brdc       # (0:brdc,1:precise,2:brdc+sbas,3:brdc+ssrapc,4:brdc+ssrcom)
pos1-posopt1       =off        # (0:off,1:on)
pos1-posopt2       =off        # (0:off,1:on)
pos1-posopt3       =off        # (0:off,1:on,2:precise)
pos1-posopt4       =off        # (0:off,1:on)
pos1-posopt5       =off        # (0:off,1:on)
pos1-posopt6       =off        # (0:off,1:on)
pos1-exclsats      =           # (prn ...)
pos1-navsys        =47         # (1:gps+2:sbas+4:glo+8:gal+16:qzs+32:bds+64:navic)
pos2-armode        =fix-and-hold # (0:off,1:continuous,2:instantaneous,3:fix-and-hold)
pos2-gloarmode     =fix-and-hold # (0:off,1:on,2:autocal,3:fix-and-hold)
pos2-bdsarmode     =off        # (0:off,1:on)
pos2-arfilter      =on         # (0:off,1:on)
pos2-arthres       =3
pos2-arthresmin    =3
pos2-arthresmax    =3
pos2-arthres1      =0.1
pos2-arthres2      =0
pos2-arthres3      =1e-09
pos2-arthres4      =1e-05
pos2-varholdamb    =0.1        # (cyc^2)
pos2-gainholdamb   =0.01
pos2-arlockcnt     =0
pos2-minfixsats    =4
pos2-minholdsats   =5
pos2-mindropsats   =10
pos2-arelmask      =15         # (deg)
pos2-arminfix      =100
pos2-armaxiter     =1
pos2-elmaskhold    =15         # (deg)
pos2-aroutcnt      =20
pos2-maxage        =30         # (s)
pos2-syncsol       =off        # (0:off,1:on)
pos2-slipthres     =0.05       # (m)
pos2-dopthres      =0          # (m)
pos2-rejionno      =1          # (m)
pos2-rejcode       =10         # (m)
pos2-niter         =1
pos2-baselen       =0          # (m)
pos2-basesig       =0          # (m)
out-solformat      =nmea       # (0:llh,1:xyz,2:enu,3:nmea)
out-outhead        =on         # (0:off,1:on)
out-outopt         =on         # (0:off,1:on)
out-outvel         =on         # (0:off,1:on)
out-timesys        =gpst       # (0:gpst,1:utc,2:jst)
out-timeform       =hms        # (0:tow,1:hms)
out-timendec       =3
out-degform        =deg        # (0:deg,1:dms)
out-fieldsep       =
out-outsingle      =on         # (0:off,1:on)
out-maxsolstd      =0          # (m)
out-height         =geodetic   # (0:ellipsoidal,1:geodetic)
out-geoid          =internal   # (0:internal,1:egm96,2:egm08_2.5,3:egm08_1,4:gsi2000)
out-solstatic      =all        # (0:all,1:single)
out-nmeaintv1      =0          # (s)
out-nmeaintv2      =0          # (s)
out-outstat        =state      # (0:off,1:state,2:residual)
stats-eratio1      =300
stats-eratio2      =300
stats-eratio5      =300
stats-eratio6      =300
stats-errphase     =0.003      # (m)
stats-errphaseel   =0.003      # (m)
stats-errphasebl   =0          # (m/10km)
stats-errdoppler   =1          # (Hz)
stats-snrmax       =52         # (dB.Hz)
stats-errsnr       =0          # (m)
stats-errrcv       =0          # ( )
stats-stdbias      =30         # (m)
stats-stdiono      =0.03       # (m)
stats-stdtrop      =0.3        # (m)
stats-prnaccelh    =3          # (m/s^2)
stats-prnaccelv    =1          # (m/s^2)
stats-prnbias      =0.0001     # (m)
stats-prniono      =0.001      # (m)
stats-prntrop      =0.0001     # (m)
stats-prnpos       =0          # (m)
stats-clkstab      =5e-12      # (s/s)
ant1-postype       =llh        # (0:llh,1:xyz,2:single,3:posfile,4:rinexhead,5:rtcm,6:raw)
ant1-pos1          =0          # (deg|m)
ant1-pos2          =0          # (deg|m)
ant1-pos3          =0          # (m|m)
ant1-anttype       =
ant1-antdele       =0          # (m)
ant1-antdeln       =0          # (m)
ant1-antdelu       =0          # (m)
ant2-postype       =single     # (0:llh,1:xyz,2:single,3:posfile,4:rinexhead,5:rtcm,6:raw)
ant2-pos1          =0          # (deg|m)
ant2-pos2          =0          # (deg|m)
ant2-pos3          =0          # (m|m)
ant2-anttype       =
ant2-antdele       =0          # (m)
ant2-antdeln       =0          # (m)
ant2-antdelu       =0          # (m)
ant2-maxaveep      =1
ant2-initrst       =on         # (0:off,1:on)
misc-timeinterp    =off        # (0:off,1:on)
misc-sbasatsel     =0          # (0:all)
misc-rnxopt1       =
misc-rnxopt2       =-EPHALL
misc-pppopt        =
file-satantfile    =
file-rcvantfile    =
file-staposfile    =
file-geoidfile     =
file-ionofile      =
file-dcbfile       =
file-eopfile       =
file-blqfile       =
file-tempdir       =
file-geexefile     =
file-solstatfile   =
file-tracefile     =

Using rtkpost

Simply select .obs and .nav data provided by your rover (generated using convbin above) and .obs data from your base (also generated using convbin above).

Next steps

  • figure out if “CONFIG ALLEPHRTCM ENABLE” option has any impact
  • explore if GPS/GNSS ephemeris can be used with RANGEB undocumented option
  • update RTKGPS+ to demo5_b34L
  • figure out if SW Maps can be used to feed RTCM3 data from base to feed the UM980 to compute RTK on the module in real time

OsmAnd

OsmAnd 5.1 (Android)

The new Android update is here!

The new Android update is here!

We've improved the interface, made settings easier to manage, and added new features to make your everyday navigation with OsmAnd even more smooth and enjoyable.

🔄 Update Now!

Thanks for using OsmAnd — safe travels!

What's new

• Added support for web and cross-platform purchases.
• Moved Temperature units to General settings for easier access.
• Added battery level indicator for BLE sensors.
• New, more intuitive UI for point selection in Navigation.
• Improved widget visibility with a new outline.
• Added Uphills/Downhills analyzer.
• Expanded Wikipedia & Wikivoyage integration for more POIs.
Bug fixes.

Cross-Platform Purchases

Maps+ and OsmAnd Pro purchases can now be used across different platforms, including Android, iOS, and the OsmAnd website. This means you can buy a subscription on one platform and use it on another without any additional cost.

Now, you can buy OsmAnd products on the OsmAnd website and use them on your Android or iOS devices, and vice versa. This feature is available for all OsmAnd products, including Maps+ and OsmAnd Pro.

Pricing

Temperature Units

The Temperature units setting has been moved to the General settings section for easier access. This change allows you to quickly adjust the temperature units without navigating through multiple menus.

Menu → Configure profile → General settings → Units & formats → Temperature

BLE Sensors Battery Level

The battery level indicator for BLE sensors has been added to the Sensors settings section. This feature allows you to monitor the battery status of your connected sensors, ensuring they are always ready for use.

New Point Selection UI

The point selection interface in Navigation has been redesigned to be more intuitive and user-friendly. The new UI allows you to easily select points on the map, making navigation smoother and more efficient.

Navi

Widget Outline

An outline has been added to widgets, improving visibility and making it easier to interact with them, especially when using transparent widgets.

Widget Outline

Uphills/Downhills Analyzer

A new Uphills/Downhills analyzer has been added to the Analyze by intervals feature. This tool provides detailed information about the elevation changes along your route, helping you better understand the terrain and plan your activities accordingly.

Analyze track Analyze track

Wikipedia & Wikivoyage Integration

Wikipedia and Wikivoyage integration has been expanded to include more Points of Interest (POIs). This means you can now access a wider range of information about places around you, enhancing your exploration experience.

Bug fixes


If you have suggestions for improving the Android version of the app, please get in touch with us. We appreciate and welcome your contribution to the further development of OsmAnd.



OsmAnd 5.1 (iOS)

OsmAnd 5.1 for iOS is out now!

OsmAnd 5.1 for iOS is out now!

We’re excited to bring you the latest update — OsmAnd 5.1 is now available on the App Store. This version includes interface improvements, easier widget configuration, and new features to make exploring even more intuitive.

🔄 Update Now

Download the update and enjoy a better, smoother OsmAnd experience.
Thanks for being with us — safe travels!

What's new

• Added support for web and cross-platform purchases
• New Route information widget
• Widgets on the Left & Right panels now include a height option
• Added a rename action for Favorite groups.
• Added "Unit of Volume" and "Fuel Tank Capacity" options.
• Added a "Coordinates Grid" overlay.
• Added the ability to assign activities to tracks
• Improved the appearance menu of Favorites
Bug fixes

Cross-Platform Purchases

Maps+ and OsmAnd Pro purchases can now be used across different platforms, including Android, iOS, and the OsmAnd website. This means you can buy a subscription on one platform and use it on another without any additional cost.

Now, you can buy OsmAnd products on the OsmAnd website and use them on your Android or iOS devices, and vice versa. This feature is available for all OsmAnd products, including Maps+ and OsmAnd Pro.

Pricing

New Route Information Widget

New Route information widget displays the estimated arrival time, remaining travel time, and distance for the current route. This widget provides essential navigation information at a glance, making it easier to plan your journey and stay informed about your progress.

Menu → Configure screen → Top panel/Bottom panel → Add widget → Navigation Points → Route information

Route information widget

Widgets on the Left & Right Panels

Widgets on the Left & Right panels include a height option, allowing you to customize the size of the widgets to better fit your preferences and screen layout. This change improves the usability of the widgets and makes them more adaptable to different screen sizes.

Route information widget

Rename Action for Favorite Groups

You can now rename Favorite groups directly from the Favorites menu. This feature allows you to organize your favorites more effectively and quickly access the locations you need.

Route information widget Route information widget

Unit of Volume and Fuel Tank Capacity

The "Unit of Volume" and "Fuel Tank Capacity" options have been added to the settings, allowing you to customize how these measurements are displayed in the app. This change enhances the usability of OsmAnd for users who prefer specific units of measurement.

Menu → Settings → App profiles → General settings → Units & Formats → Unit of volume

Menu → Settings → App profiles → Navigation settings → Vehicle parameters → Fuel tank capacity

Coordinates Grid Overlay

A new "Coordinates Grid" overlay has been added, providing a visual reference for coordinates on the map. This feature is useful for users who need precise location information and enhances the overall map experience.

Configure map → Show on map → Coordinates grid

Grid Grid

Assign Activities to Tracks

You can now assign activities to tracks, allowing you to categorize and organize your recorded tracks more effectively. This feature is particularly useful for users who engage in multiple activities, such as hiking, cycling, or running, and want to keep their tracks organized by activity type.

Changing Appearance of Favorites

We redesigned the appearance menu of Favorites, allowing you to customize the look of your favorite locations. You can now choose from various icons and colors to make your favorites more visually appealing and easier to identify.

Grid

Bug fixes


If you have suggestions for improving the iOS version of the app, please get in touch with us. We appreciate and welcome your contribution to the further development of OsmAnd.


 Apple AppStore


15 Years of OsmAnd

Hi everyone,

Hi everyone,

Today is a special day — OsmAnd is turning 15. An incredible number! It feels like we were just writing posts about our 5th anniversary and 10th anniversary, and now, it's already been fifteen years. Time flies when you're passionate about what you do.

Looking back, I realize that the magic of OsmAnd isn't just about code or maps. Above all, it's about people. And today, I want to give a huge, sincere thank you to the three main communities without whom none of this would be possible.

15 Years of OsmAnd

Thank You for Being with Us!

To our OsmAnd Team

To the people who create, improve, and support the project every single day. Your dedication, talent, and persistence are the fuel for our shared journey. Thank you for the thousands of hours of work and for pouring your hearts into every detail.

To our GitHub Community

To everyone who sends us code, reports bugs, suggests ideas, and participates in discussions. You are our external brain and our strictest, yet fairest, critics. Your involvement is what makes OsmAnd a truly open and vibrant project. Thank you for your contributions!

To the OpenStreetMap Community

Our foundation and main source of inspiration. Every trail, every house, every detail on the map is the work of millions of volunteers from around the world. You are creating a digital copy of the planet, accessible to everyone, and we are proud to be part of this movement. Without you, there would be no us. Thank you!

Our Journey and Focus on the Future

The scale of this journey is truly humbling. Over the past 15 years, we’ve delivered more than 35 releases for the Android version — and over 25 releases for iOS since its launch.

Today, we’re proud to share these global stats:

  • 2.5 million monthly active users (MAU) across all platforms
  • Over 100,000 daily active users (DAU)
  • More than 20 million installs worldwide

All these 15 years can be roughly divided into three stages. For the first five years, we built the very basic functionality—offline maps and navigation that just worked. Over the next five years, we transformed OsmAnd into a full-fledged application with plugins, extensive settings, and professional tools. We dedicated the third five-year period to deep internal work: completely rewriting and improving key components like the rendering engine and routing algorithms.

Now, a new, fourth stage begins. We have reached functional maturity, and our main goal for the near future is to polish what we’ve already built. We will focus on stability, speed, and consolidation. User expectations are growing, and what was once considered normal must now be flawless. The application must run faster, be more stable, and feel more cohesive.

How will we achieve this? Through immense attention to detail: deep analysis, manual and automated testing. We will move in fast but very small steps, carefully monitoring the results and listening to your feedback. Our task is to consolidate existing functionality, making it more intuitive and reliable.

I believe this approach will allow us to build a solid foundation. And after that, we can focus with renewed energy on the major, long-awaited features that you constantly write to us about and for which we previously lacked the time.

15th Anniversary Specials

What's a birthday without gifts? To celebrate our anniversary, we've prepared several great surprises for you! To take advantage of them, make sure you have the latest version of the app, 5.1, installed.

  • "OsmAnd XV" our new one-time purchase, which grants you 15 years of access to all Pro features and lifetime access to all Maps+ features OsmAnd Pro for 15 years. As a special thank you, you'll also receive an extra gift: two limited-edition T-shirts.
  • Free Cross-Platform Purchases: We have finally enabled the ability to use your purchases across different platforms at no extra cost. Buy on iOS and use on Android, Website, or vice versa.
  • Discounts on our Website: Head over to our website, where special anniversary discounts on our products are waiting for you.

Thank you for being with us all these years. Our journey continues, and the most exciting parts are still ahead!

With warmth and gratitude,

Victor Shcherb CEO of OsmAnd

Monday, 23. June 2025

Pascal Neis

From Sky to Trail: Testing GPS Accuracy with Drones, Action Cam and Smartwatch

In the early days of mapping and cartography experiments, GPS tracks were often the starting point. Contributors to the OpenStreetMap (OSM) project, especially before 2010, relied heavily on GPS devices. They would walk or cycle routes and later upload their recorded tracks and observations to OSM. Today, GNSS-capable devices are everywhere: smartphones, smartwatches, action cams, […]

In the early days of mapping and cartography experiments, GPS tracks were often the starting point. Contributors to the OpenStreetMap (OSM) project, especially before 2010, relied heavily on GPS devices. They would walk or cycle routes and later upload their recorded tracks and observations to OSM. Today, GNSS-capable devices are everywhere: smartphones, smartwatches, action cams, and drones. These tools don’t just record where things are, but also what they are, through images, videos, and other sensor inputs. This opens up new possibilities for mobile mapping. I recently tried something new: drone-based tracking in Active Mode—a self-experiment in modern mobile mapping.

What did the test setup look like, and which devices were used? For my tests mapping various paths and (MTB) trails, I used a range of devices and configurations. I flew two drones: the DJI Avata (2024) and the DJI NEO (2024). For the action cam, I used a GoPro HERO 12 Black, and I also wore a Garmin fēnix® 8 smartwatch. My overall goal was to evaluate the GPS accuracy of these different devices. The tests were conducted on closed-off field and forest paths. Differentiating between open terrain, wooded trails, and steep sections helped account for potential signal interference from satellite shading.

How can the relevant data be accessed? The GPS tracks from the DJI drones can be exported from their log files, found in the DJIFlightRecord directory of the DJI Fly App (on iOS, in my case). I used the free tool dji-log-parser to extract the GPS data. To extract the GPS track from GoPro video footage (using GPMF metadata), I used the Python package gpmf. Below is a screenshot from JOSM (an OSM editor), showing part of the recorded GPS tracks for a test route. During the test, the GoPro and Garmin watch were worn by the person. The NEO drone followed the person in Active Tracking mode, while the Avata was flown separately using FPV.

What results did these first tests yield? Both the Avata and the NEO provided GPS tracks, but compared to the “reference” route, deviations of several meters were common. The tracking mode itself influenced the recorded path, especially when the drone followed from behind or at an angle. The GoPro produced similar results, with tracks that were sometimes even farther off than the drones. In contrast, the Garmin watch delivered the most “accurate” and consistent GPS data in my forest-area tests.

My personal conclusion? A drone in tracking mode is great for YouTube videos, but due to GPS accuracy limitations, it’s only conditionally suitable for direct mobile mapping, at least with the drones I tested and at my running or cycling speeds. I was a bit disappointed by the GoPro’s positioning accuracy; I expected better performance given its capabilities. The biggest surprise? The Garmin watch—its GPS track was by far the most reliable throughout my experiments.

Side Note: The DJI Mini 4 Pro, an Insta360 One RS, and a DJI Osmo were also partially used during the tests. However, due to the Mini 4 Pro’s size and the lack of GPS in the Insta360, I haven’t included them in detail here. Otherwise, this post would have gotten way too long 😉

PS: The mapped MTB trails from the FlowTrail Heidenrod can now be found on OSM 👉 Relation

Tuesday, 24. June 2025

OpenStreetMap User's Diaries

What food is there - and can I get a wheelchair in?

I recently updated this map:

and this one:

to show different types of restaurants (the most common cuisine types cause the top part of the icon to be modified), just like that map has shown fast food for some time now. However, it’s not technically difficult to also show what wheelchair access is available - this one:

is an Italian restauran

I recently updated this map:

Some restaurants in London (raster)

and this one:

Some restaurants in London (vector)

to show different types of restaurants (the most common cuisine types cause the top part of the icon to be modified), just like that map has shown fast food for some time now. However, it’s not technically difficult to also show what wheelchair access is available - this one:

A restaurant icon with a pizza slice above (Italian) and a yellow flash below (limited wheelchair)

is an Italian restaurant with limited wheelchair access. The yellow flash for that is deliberately small so as to not dominate the view, but visible if you are looking for it.

Shouldn’t showing that information be “table stakes” for maps showing OSM data?


My MapRoulette presentation at SOTM US

I had a fantastic time at SOTM US. Thanks to all at OSM US for their work putting the event together.

I gave two presentations, one on MapRoulette and one on the new Meet Your Mappers tool. I posted annotated slides for the MapRoulette talk on my blog.

I had a fantastic time at SOTM US. Thanks to all at OSM US for their work putting the event together.

I gave two presentations, one on MapRoulette and one on the new Meet Your Mappers tool. I posted annotated slides for the MapRoulette talk on my blog.