Diary Entries in English
Recent diary entries
My Google Summer of Code 2026 project was Category Support in Nominatim.
The goal was to replace Nominatim’s single class/type representation with a proper categories field so that one OSM object can carry multiple categories. For eg, an object tagged as both a hotel and a restaurant can now be represented in one row with categories such as:
osm.tourism.hotel
osm.amenity.restaurant
What was completed
- Added the PostgreSQL
ltree[]categories column to the main Nominatim tables. - Generated multiple categories from OSM tags during import while keeping the existing
classandtypefields for compatibility. - Updated ranking, triggers, migrations, and related database logic to use categories.
- Replaced the old
place_classtype_*search tables with category-based search using indexed queries. - Removed the old
place_classtype_*table creation and maintenance code. - Added category filters to the search API.
- Updated the SQLite adaptor and tests for category data.
- Updated the documentation for the category system and its API behaviour.
Pull requests
- #4106: Add ltree categories column for multi-tag OSM object support - merged
- #4146: Use ltree categories column instead of place_classtype tables - merged
- #4163: Remove the place_classtype tables - merged
- #4164: Add category filters to the search API - merged
- #4166: Update the documentation for the category series - documentation PR
Querying by category
The search API can now accept category filters. For example:
/search?q=restaurant+Berlin&include=osm.amenity.restaurant
/search?q=Berlin&include=osm.amenity
/search?q=hotel+Berlin&include=osm.tourism.hotel&include=osm.amenity.restaurant
/search?q=restaurant+Berlin&exclude=osm.amenity.fast_food
A parent category such as osm.amenity can match categories below it, so a query can include restaurants, cafes, bars, and other amenities without listing every child category separately.
Acknowledgements
HonestDating #SoulMate #RealRelationship #Single #Love #LongTermRelationship #SeriousRelationship #Dating #Chatting #FindingLove #RealConnection #LooCan you guess why I’m so excited todaykingForLove #OnlineDating #TrueLove #TheOne #Trust #BigAss #BigBoobs #Tattoos
I’ve just joined OpenStreetMap after using the CoMaps app for a month. I’ve been a frequent Google Maps Local Guide, but want to support open source efforts.
Today, I signed up and updated a shop that was labelled as disused to a cafe that recently opened local to me.
I need to vent for a minute.
Aligning aerial imagery terrifies me. I feel like no matter what I do, I will be off by a little bit. Whenever I come across a place where buildings are mapped and are a little bit off from the aerial imagery I’m using, I think to myself “I should probably align my imagery with those buildings,” but then I look at the primary road the buildings are right next to and realize that it is aligned with how my aerial imagery is right now. And then I see a cluster of features made 9+ years ago which is nowhere close to being aligned with my imagery and I question whether all of my contributions have been miles off of the correct location and if I’ve accidentally been vandalizing hundreds of places across Virginia without even knowing. But the worst feeling is when the same aerial imagery layer has its tiles slightly misaligned from the one right next to it, so I have to make the decision on which tile I should align all my changes with.
How can I achieve peace when it comes to aligning aerial imagery?
GSoC 2026 with OpenStreetMap
Routing through pedestrian areas in Valhalla
During this Google Summer of Code, I’ve solved a very common problem that pedestrian routers have by adding the feature to route through open pedestrian areas, such as squares, plazas, pedestrian zones… instead of routing around the perimeter.
It’s now merged and running on the full planet build. Where pedestrians used to be sent all the way around the perimeter, Valhalla now creates a path straight across it.
Before :

I plan to participate in State of the Map 2026 next week.
So, in preparation for it, I read the programme page on the SOTM 2026 website and manually picked out all the topics that I’m interested in.
I plan to use the list below as a guide to help me navigate the programme and decide which events I should attend.

I know rankings and stats don’t matter here in OSM
You know what’s crazy, That It’s only been 2 months and 1 week, Since I started contributing in OpenStreetMap
For real, I genuinely think, I am one of the fastest growing OSM contributors in the Philippines.
Following the launch of the OSM Skeleton methodology (see this post, featured in weeklyOSM #836), I wanted to illustrate it with an example by resolving the main reports in an area of Senegal where the demo is currently being deployed.
At first, I thought about mapping the Koungheul department, but given the scale of the task, I ultimately settled for one of its arrondissements, Ida Mouride. Arrondissements are the third level of administration in Senegal, after regions and departments.
The small size and limited number of Skeleton reports in this district allowed me to complete the task in about fifteen sessions of my daily OSM mapping routine.
The initial situation as of July 31 was as follows, for the entire department:

And zooming in on Koungheul:
I keep getting questions about multilingual names in OpenStreetMap, so I want to state my position clearly in one place.
I understand the OSM data-model argument: name:xx should normally represent a name that actually exists in that language, not simply a machine-generated translation. My mapping practice has evolved accordingly.
However, as a product person, I care primarily about the user experience.
A map is a product used by real people. If I travel to a country whose writing system I cannot read, a map that shows me only the local script may be technically pure but practically much less useful.
For example, an English-, Russian-, or Georgian-speaking traveller should not need to read Arabic, Chinese, Thai, or another unfamiliar script just to understand what street, station, church, village, or other place they are looking at.
There are several ways to solve this:
- verified names in the user’s language;
- standardized transliteration;
- localized rendering;
- automatic transliteration or translation at the application layer;
- sensible fallback rules when no localized name exists.
I do not particularly care which layer solves the problem.
What I care about is the outcome:
the user should be able to understand the map.
Database purity is useful when it improves data quality. It should not become an excuse for poor UX.
OpenStreetMap is a geographic database, but the value of that database ultimately comes from people being able to use it.
For OSM naming guidance, see:
This post also reflects the lessons I took from my earlier discussion about AI-assisted multilingual tagging. I no longer treat automatically generated translations as sufficient evidence that a name:xx exists.
But my broader position has not changed:
when data modelling and usability pull in different directions, I will keep advocating for a solution that gives users both accurate data and a usable map.
Thanks to a note suggested adding a Via Crucis station, I checked how similar routes in Switzerland are mapped in OpenStreetMap.
OSM tags relations for these with worship=stations_of_the_cross (and type=route route=worship ).
These relations model outdoor paths, not stations located inside a single church building.
- They can be found in traditionally Catholic regions of Switzerland. The ones mapped in OSM are mainly in Ticino and the canton of Solothurn (Soleure).
- Traditionally there are 14 stations, sometimes 15 stations.
- The monuments at stations vary: stones, crosses, sculptures, shrines or chapels.
- Distances and ascent vary: The ones at Sant’Abbondio and Astano follow the walls of the churchyard, the one to Madonna del Sasso has an ascent of almost 200 m.
- Some paths are old (18th or 19th century), others are more recent.
- The state of preservation varies greatly.
- Many routes lead to a chapel.
- Some paths to chapels feature stations on other subjects. These have
route=worship, but notworship=stations_of_the_cross.
RSI counts 54 in Italian-speaking Switzerland; the scope may not match OSM’s outdoor-route tagging. OSM has 10 Via Crucis in Ticino.
OSM has about 2000 wayside crosses and 1200 wayside “shrines” in Switzerland. Some could be part of Via Crucis that aren’t mapped yet.
Here is a short clip of the one above Biasca and a longer video about the one at Klingnau.
List
Here are a few mapped:
I remember when I first heard about these traffic cameras this guy paid me to listen to apb and manually log the codes to later look up and learn. Thinking about it these people were dangerous but it was normal for me being a military brat who joined the Marines after high school. I reminded the highest ranking ones of my grandfather who served 30 years. I guess it stirred up emotions making them uncomfortable cause I was clueless of my early departure resulting me in an unforseen path unaligned with my preset destiny.
This contribution is what Google identified as alpr I have a pic of it is just amazing how it doesn’t catch the license plate of a vehicle sitting in the middle of the intersection to prove truth of the occasion. Truth shall set us free
Your life is only a see through I never wanted to be you my goal was to necessary to those who needed a new perspective to bring others from the darkness into the light to be abundant. While in the darkness no one tried to save me instead my heart was like a clothes line chopped up into millions of pieces. I answered to the calling of the darkness and won my right to be to be silent. I learned to dim my brightness to a dull roar to respect those imbedded in the deep roots. They know I veil from divine right always seemed to be an outcast. I fell in love with the people everyone of them are necessary. I can’t speak about a certainty to take place when the times right. I understand it’s necessary thanks for not making it scary. Realization of I’m crazy just like you I’ll be a very bitter taste to you. Don’t take something your not willing to part from.
Several weeks ago, my bicycle finally got fixed, after being abandoned in a broken state for a long time.
Before that, I didn’t even know that my bicycle was actually broken.
All I knew was that this bicycle was really, really, really tiring to use. Even a short-distance trip was enough to tire me out for the whole day.
I didn’t know that this was caused by something being broken, which meant I had to put in (approximately) twice the effort to make it move (citation needed).
At that time, I simply blamed my own weak body. “Maybe I’m not strong enough to wield this bicycle,” I thought, dejected, considering giving up my whole cycling career prematurely.
Then, one random day, one of my family members used that bicycle, noticed something wrong with it, fixed it, and then it was finally ridable without needing much energy and force.
Alright. Now I can use my bicycle again, I guess.
For short trips, I usually prefer a bicycle to a motorcycle, for several reasons, you name it : hiking gas prices, the need to reduce our own carbon footprint to save the Earth (back then I took the mandatory environmental college course and thanks to that I’m still brainwashed so hard about the need to reduce my own carbon footprint), a nice opportunity to exercise my body, and the previous trauma of using a motorcycle and then suddenly having the engine not start so I had to walk the motorcycle to the nearest repair shop which turned out to be not near at all. Yeah, plenty of reasons.
So this afternoon, I decided to take a long trip to several places in my town, using my recently fixed bicycle.
I started around 4 PM and went home again around 6 PM.
Now it’s night, I’m sitting in front of my laptop, and getting curious : how many kilometers did I traverse this afternoon while cycling?
I didn’t bring a proper GPS device to record my trip this afternoon, but I remember each path that I took today. So, what should I do to calculate the distance?
At first, I tried BRouter.
Oh, where do I start?
It was around October when I had recently imported the barangay boundaries of my hometown, Cauayan City. I had just asked the GIS team at the local Planning and Development Office to adjust the boundaries again, as many issues were identified in the dataset. A while later, I had an idea to try to help the GIS team adjust the boundaries, because I figured, “Why not?” and they’re probably doing a lot of work already, given so many developments in the area.

A little back and forth, but then they stopped responding. I mean, it is basically a 50/50 chance that they respond or not. A little later, I dove into further research and stuff, and I thought of asking an institution to collaborate with me on making a dataset for the PDO to use and merge with theirs, so it can be as accurate as possible (I like things accurate).
One thing that usually worries us as OpenStreetMap mappers is having our hard work deleted by someone else, either accidentally or intentionally.
Thankfully, our edits are still in the database.
The delete operation in OpenStreetMap is not really a delete operation. It simply flips the object’s visible flag from true to false, while retaining its entire history.

And you can resurrect them using JOSM’s “Undelete Object” feature, as long as you have the OSM object’s ID.
New flock alprs are appearing in neighborhoods near where I go to college. This is scary, do your part.
- ᵈⁱˢᵗᵃⁿᶜᵉᵈ
I’m undergoing the learning path “Open Mapping Essentials” on HOT´s learning centre. In the process I have contributed by mapping local businesses and housing buildings in Managua. I also added a few rural roads in the Esteli area. All my changes are based on local knowledge of the areas. I am looking forward to contributing to the OSM and HOT communities.
Hi guys.
I would like to emphasize the benefit that the micromapping of certain features can contribute to unhoused communities. Of course, there still needs to be more awareness of OSM within these communities, but the data being there is great for the future and making the map more useful.
Tagging if the seats on benches are separated or not allows people to know where they are able to lay down and thus sleep if they don’t have access to other places to sleep. The tag seats:separated=yes/no is used for this purpose. Ive been adding this to every bench I map. Tagging benches that are not separated is just as important as tagging benches that are.
Drinking water is needed for all humans to live. Knowing where the nearest water fountain is, or the nearest convenience store that will let you fill up a water bottle from their fountain drink dispensers, can be super useful and help when times are tough. Consider looking out for drinking fountains at parks and other public places.
Hope you got something from this, happy mapping and I hope you have a nice day.
On August 12th, 2025, I made my first edit to OpenStreetMap. It has now been exactly one year since I began editing. Here are some of the coolest things I’ve done in my relatively small amount of time spent on this hobby:
-
3,095 changesets
-
226486 contributions
-
Added a “surface=” tag to every primary road, trunk road, and motorway in Virginia
-
Made changes in 64 countries
-
Procrastinated mountains of homework
It felt like this year went by so fast. I still remember the moment I discovered OpenStreetMap and how I got instantly addicted.
I hope to be an active contributor for years to come and meet tons of mappy people like me!