rphyrin's Diary

Recent diary entries

Your edits are safe

Posted by rphyrin on 16 August 2026 in English.

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.

See full entry

Overpass Ultra

Posted by rphyrin on 5 August 2026 in English.

This afternoon, I noticed that several of my colleagues were visiting a recently opened school in the far south.

They took several photos, which is quite a rarity on the internet, since not many people actually go there and upload pictures of the newly built buildings.

I wanted to upload those photos, hoping they might be useful for anyone trying to find information about the place.

Then I remembered that OpenStreetMap has this image=* tag.

I could associate an image with the place by adding an image URL there. So I opened Vespucci on my Android phone and added the image URL to the object.


Now I’m back at my PC, and I wanted to make a simple app (or maybe just a script) to browse every image=* tag that exists in OpenStreetMap.

At first, I thought of doing it the usual way : build a Leaflet web map, query the Overpass API, then display the images in popups.

But then I remembered that the Overpass API has recently been under heavy load.

From what I’ve heard, it’s because of a barrage of AI scrapers… or maybe just a flood of quick-and-dirty, vibe-coded OSM apps being produced en masse.

Whatever the exact reason, it has noticeably affected the service.

Knowing that, I was discouraged from making the situation any worse. So I scrapped that idea.


Then I remembered something else:

Overpass Ultra.

I don’t know exactly how it works internally, but I assume it uses a different Overpass API endpoint than the ones I would normally query directly.

If that’s the case, perhaps using Ultra wouldn’t add to the current strain on the public Overpass servers.

I also realized that Overpass Ultra’s advanced styling syntax lets me solve the whole problem directly within the query itself, without having to build my own Leaflet-based web app.

So here it is: a quickly put-together Ultra query that displays every OpenStreetMap object containing an image=* tag and shows the referenced image in a simple popup.

See full entry

"We Prefer Not to Be Mapped"

Posted by rphyrin on 28 July 2026 in English.

One day, in a certain neighborhood, there was a heated discussion about naming an unnamed road.

At first, the discussion was about deciding what name they should choose for the road.

But can you guess the final consensus of that discussion?

They preferred not to be mapped.

The status quo was good enough, they said. The road looked like a maze, with little or no clue on how to properly navigate it. They argued that if they named the unnamed road, it would give “outsiders” a clue on how to navigate it, which was “bad” for the internal security of the people who lived there.

This made me think about the ethical grounds of conducting large-scale mapathon campaigns remotely.

We generally work under the assumption that “the more mapped places, the better.” But what if the locals don’t consent to being mapped?

What if they prefer not to be mapped?

Terjangkau : Neighborhood Explorer

Posted by rphyrin on 15 July 2026 in English.

Today, someone mentioned to me that there’s an ongoing “reform” of a certain local tagging scheme.

At first, I really, really, really, really, really didn’t want to get involved at all.

But in the end, I decided to give it a try and skim the proposal anyway.


After that, I wanted to present an argument.

To support that argument, I wanted to introduce this tool that I made several weeks ago.

But then I realized that I probably never made a blog post announcing it at all.

Weird. Usually, I always make a blog post whenever I finish an app.

After double-checking everything, I think it’s safe to say that I never made a blog post about this app.

Alright. Here we go : https://altilunium.github.io/terjangkau/

See full entry

Altilunium LocationPad v26.5.22

Posted by rphyrin on 22 May 2026 in English.

That day, I received this email.

19 May 2026 (1:19 PM): We would also like to invite you to a special mapathon as part of the OpenStreetMap Community Building activities in Syria. This activity aims to train participants on using the OpenStreetMap platform and contributing to mapping buildings and roads to support humanitarian work in Syria. Date: 22 May 2026. Time: 11:00 AM (Syria Time). Location: Online (meeting link will be sent after registration).

11:00 AM Syria time is about 3:00 PM in UTC+7.

So, this afternoon, I attended the online meeting.

After that, I joined the mapathon hosted on the HOT Tasking Manager.

Even though, in the presentation, the speaker conducted the mapathon using the iD editor in the browser, this time I preferred to use my set of “powertools”: JOSM, Draw Buildings (B), and LastUpdated.

See full entry

Altilunium LocationPad v26.5.20

Posted by rphyrin on 20 May 2026 in English.

While preparing this article, I wanted to export the coordinate data of the battlefield map that I created in Altilunium LocationPad to GitHub Gist.

Then, I realized that the exported file format was actually just plain JSON, not proper GeoJSON. That’s why GitHub Gist couldn’t render it as an interactive map.

So, in this version (26.5.20), Altilunium LocationPad now properly exports and imports coordinate data in the proper GeoJSON format.

Image 1 : The exported GeoJSON can now be properly rendered by GitHub Gist.

Every day at around 4 pm (unless there’s IRL business that I have to attend to), I log in to https://osmbc.openstreetmap.de/ to edit this week’s edition of WeeklyOSM.

My task is to review all the links submitted by both WeeklyOSM editors and guest users. I study each link, then write a short sentence describing it.

Some link submitters already accompany their links with proper sentences when submitting, so I mostly skip those. I only focus on links that don’t have English text yet.


This afternoon, while doing my daily WeeklyOSM editing, I stumbled upon this MapComplete post announcing that it is now possible to add pictures to reviews on MapComplete. This feature is powered by Mangrove Reviews.

Then, I suddenly remembered a certain discussion thread on c.osm.org regarding the possibility of building “a crowd-sourced review service for OpenStreetMap.”

See full entry

Altilunium LocationPad v26.4.6

Posted by rphyrin on 6 April 2026 in English. Last updated on 11 April 2026.

So, I’ve been using Altilunium LocationPad for several of my personal projects until now. But recently, I encountered several problems.

I dabble with multiple projects at once, but this app saves everything in a single database. I want this app to be able to create several separate “canvases”, so I can manage several of my projects at once, without mixing them with other projects.

See full entry

Yesterday, I attended the OpenStreetMap Local Chapters and Communities Congress 2026 online.

There were at least 15 participants who signed the attendance list on the event’s HackMD document, representing a range of countries including the Philippines, Italy, the United States, Canada, Greece, Indonesia, Belgium, Kenya, and Brazil. The document is available publicly here.

After introductions and updates from the OpenStreetMap Foundation Board, the session moved into a group discussion titled “Challenges in OpenStreetMap and overcoming those challenges.” This discussion was conducted through Mentimeter, allowing participants to submit anonymous responses to guided questions.

Here is a (selected) summary of the discussion results:


Question 1 : If a new mapper asked you “what’s the hardest part about being in the OSM community?” what would you say.

“So many smart people. All with their strong opinions about how things should be done.”

“Dealing with abusive community members.”

See full entry

Maintainers Working Group #4

Posted by rphyrin on 8 March 2026 in English.

Today I received an invitation to attend the bi-monthly OSM US Maintainers Working Group.

But due to timezone difficulties, I don’t think I’ll be able to attend it live.

The meeting agenda has been shared, mainly focusing on the topic of standards and interoperability. There are some interesting starter questions there, so I’m intrigued to answer those questions in an OSM diary instead, hoping that I’ll be able to join the discussion asynchronously.

So, here we go :


“What standards (geospatial file or data formats, metadata schemas, wire protocols, structured text formats, encodings, etc.) does your project depend on or interact with?”

I frequently use GeoJSON format in several of my projects.

“Are there any standards that you wish would be evolved/extended but aren’t actively maintained? Or implementations that aren’t fully compliant that you wish would be?”

GeoJSON fits pretty much all of my required use cases. My only concern right now is how to make GeoJSON files more compact. I haven’t researched much about this since there’s currently no urgent performance issue that needs to be handled, but I love tweaking my apps for performance.

“Are there standard formats or protocols that you would like to use, but aren’t well supported in your language/ecosystem?”

The General Transit Feed Specification.

I’ve been interested in this data format for a long time, but I still don’t know how to properly tinker with it. Last time I worked on this, I had to make my own Python implementation to read and navigate GTFS files. I don’t know what the current situation is right now. Maybe it’s already supported, maybe not.

“What are your thoughts on Overture’s OGC proposal?”

I already posted my thoughts in a certain Slack thread somewhere. Here’s the verbatim quote:

“Does an OGC standard become legally binding worldwide or something?

See full entry

Querying OSM objects by their shapes

Posted by rphyrin on 19 February 2026 in English.

There has been a very interesting question on the OSM US Slack lately.

“Does anyone have a method to search through the OSM database for a building of a particular shape? I need assistance finding OSM buildings with this specific shape. They should be located in NJ, DE, northeastern MD, eastern PA, or southern NY.”

The question quickly exploded into a huge discussion. At the time of writing, there are already 71 replies.

Someone suggested :

“You could load OSM buildings into PostGIS and then use ST_HausdorffDistance to compare the geometries.”

From there, the discussion veered into how to solve that specific puzzle and find the exact OSM building in question.

One person added, “So the strategy is: create the shape of the building you want to search for, scale it to, say, fill a 100x100 m bounding box or something. Ask Postgres to, within a search-area bounding box, take each building and scale it to a 100x100 m bounding box, compute the Hausdorff distance with the scaled input shape, and return all OSM element IDs and their Hausdorff distances, sorted in ascending order.”

Another said, “What I’m currently doing is combining several shape exports into a single file with around 20,000 objects that have concavity. Concavity plus more than 10 nodes eliminates most buildings.”


At that point, instead of hunting that elusive specific OSM building, I became more interested in the generalized version of the problem.

So I added my two cents to the discussion:

“The generalized version of this problem would be : Can we represent a shape in some kind of data type that allows us to computationally check whether two objects have the same shape, regardless of rotation and scaling?

I haven’t studied the Hausdorff distance yet, but I’m wondering whether it can solve this problem, or if there’s a better alternative—Hu moments, Procrustes analysis, Fourier descriptors for contours…”

Someone replied :

See full entry

Offosm : OSM that you can access while you’re offline

Posted by rphyrin on 2 February 2026 in English. Last updated on 6 February 2026.

Starting in 2026, I slightly adjusted my daily routine, particularly around my weeklyOSM-related activity. Instead of passively consuming updates, I began actively scanning for news by lurking in several regional OSM online groups. Occasionally, genuinely newsworthy discussions emerge there.

One such case appeared today in the OpenStreetMap Braga (Portugal) Telegram group.

In the aftermath of Storm Kristin, which recently hit Portugal, multiple OSM-driven humanitarian initiatives surfaced. These efforts focused on mapping damage, identifying locations that require assistance, and highlighting places offering help.

At some point, the discussion shifted toward the need for a truly offline mapping application. Connectivity issues in affected areas appeared to render many OSM-based emergency platforms ineffective, simply because they still depend on an active internet connection.

This resonated with my own experience. I have built several “half-offline” OSM-based applications before. They are only partially offline because they store coordinate data locally in the user’s browser, while the application code itself and the OSM map tiles still require network access.

That led to a straightforward question: if we want a truly offline application, shouldn’t the map tiles themselves also be stored locally in the browser? Storing coordinate data is already trivial, but what about images? BLOBs? Is this feasible at scale?

While I was still thinking through these constraints, someone in the same Telegram group announced that an offline emergency platform had already been built. Naturally, I was curious and tested it by toggling my network connection on and off.

The result was clear: the application remained accessible offline.

See full entry

Mapping the Jakarta torrential rain of January 12, 2026

Posted by rphyrin on 12 January 2026 in English. Last updated on 14 January 2026.

This morning, when I woke up, I felt that something was different. The sky looked darker, the temperature felt colder, and the faint sound of drizzling rain outside carried a gloomy tone.

I immediately rushed to check the forum chat that morning, trying to scrape together information. What was going on out there?

07:17:55: “Heavy rain”
07:18:44: “Same here in Bogor”
07:19:39: “With a storm like this, how am I supposed to get to the office?”
07:39:11: “Anyone in North Jakarta who lives toward the east / near Bekasi. Is it storming there?”
07:40:20: “Yep. Storming. Starting to ease up a bit though.”
07:48:25: “Seems pretty widespread. Cikarang’s getting wind and rain too.”
07:50:04: “Still early morning but the rain is insanely heavy. What a Monday.”
07:55:41: “With rain this heavy, it’s best to just go back to sleep~”
08:00:26: “Heavy rainnn”
08:10:46: “The rain is so damn heavy.”
08:14:28: “Waiting for it to stop, but it’s just getting heavier.”
08:16:52: “This storm. No way I’m working. Just want to WFH.”

Heavy rain? A storm? How bad could it be? Here, the rain was only a light drizzle, but the darkness of the sky and the chill in the air felt very different. This wasn’t ordinary rain.

I kept reading the forum.

08:15:11: “Same in Central Jakarta, storm-level rain. Can’t work at all.”
08:29:58: “Force majeure, man. I ain’t leaving for work like this.”
08:37:55: “With rain this bad, offices should really normalize letting employees WFH, at least for sectors that don’t need physical presence."
08:40:00: “Stuck getting out of Tanah Abang. The rain’s way too heavy.”
08:45:47: “Early morning chaos in the airspace above CGK. Looks like no planes can land. Four domestic flights diverted to Lampung. Flight SQ950 had to do three go-arounds. This morning’s rain is insane.”

Huh?

So many planes couldn’t land at Soekarno-Hatta? How bad was the rain last night?

See full entry

A trip to the Ragunan Zoo

Posted by rphyrin on 8 January 2026 in English.

“From here, how do we get to Ragunan Zoo?”

Good question.

I paused. This wasn’t a matter of intuition; it was a routing problem.

I opened a navigation app, queried the destination, and switched the mode to public transport. The proposed solution was a multi-hop journey : take the blue commuter line to Manggarai, transfer to the red line toward Bogor, get off at Pasar Minggu, then continue with something called S15A.

S15A?

That identifier triggered a red flag. After a quick lookup, it turned out to be an angkot.

That immediately raised another question. Was there really no direct busway route to Ragunan? Not even a JakLingko alternative? Cost sensitivity was also a concern. There are plenty of public transportation modes in this city: MRT, LRT, Commuter Line, Transjakarta BRT, and Transjakarta non-BRT, but angkot and ride-hailing motorcycles are the two worst options, since they can end up being pricey due to the lack of government subsidization.

At that point, I decided to discard the initial navigation output entirely. Close the app. Start over with a more specialized tool.

I switched to the official Transjakarta application.

It refused to open and forced an update. Fine. Update first, then rerun the query.

Post-update, I defined the problem more explicitly. Assume the train leg was already completed. Starting point: Pasar Minggu Station. Destination: Ragunan. The goal was to find a replacement for the S15A angkot.

Search results came back clean. Instead of S15A, there was a JakLingko option: JAK47, Pasar Minggu–Ragunan. That was acceptable. Same endpoint, better integration.

Solution candidate number one locked in.


Then I expanded the scope. What if we removed the train entirely? What if the journey started directly from Bekasi using Transjakarta, via Vida to Cawang Sentral?

New query. New parameters. Starting point: Cawang Sentral. Destination: Ragunan.

See full entry

Last weekend I traveled to the west coast of Java, specifically Anyer in Banten. The journey was done by train from Jakarta to Cilegon, followed by a local shared minivan taxi to Anyer.

Throughout the trip, I collected field observations using Sakumap. The result was a raw GeoJSON file containing coordinates and timestamps for each entry.

For observations I considered significant, I wrote a detailed report on the OSM Wiki. Less critical features such as restaurants, fuel stations, farms, and forest areas were added directly to OpenStreetMap by importing the Sakumap GeoJSON into iD Editor or JOSM, without additional documentation on the wiki, as the overhead did not seem justified.

See full entry

Today, i wear OpenStreetMap

Posted by rphyrin on 21 December 2025 in English.

Today, i wear a T-shirt printed with Medan’s road network, based on OpenStreetMap data.

Every time i glanced down at those tangled lines, a quiet curiosity crept in. I kept wondering who mapped this exact line segment I’m looking at right now, which contributor traced it, corrected it, or patiently aligned it to reality. It’s a strange and comforting thought, carrying a small piece of someone else’s mapping work on fabric, a reminder that this map is made of countless individual moments of care.

Infohazard : Epilogue

Posted by rphyrin on 21 September 2025 in English. Last updated on 22 September 2025.

This afternoon, while pondering and daydreaming about seriously quitting OSM for real, I ventured into the land of Wikimapia.

Then I stumbled upon a conversation between high-ranking admins over there.

“Why did you delete a number of TNB sub-stations from the map? Don’t you think those tags were useful, to some people at least? I think the user(s) who initially created those tags put a lot of effort in detailing the model nos., etc. for some of the sub-stations. Thanks.”

“The TNB sub stations is not a place. It just an OBJECT just like small bridges, security guard post, small jetty etc. Different with a PLACE such as Pulau Pinang Bridge or any big bridges, police station or a port such as Port Kelang. As you can see there are few users that like to tag a small roadside stall and a small public toilet. That also is in the list for deletion. You must know to differentiate what can be tag and what can’t.”

“I was under the impression that anything permanent of some importance (except personal houses) could be tagged. If that’s the case, people shouldn’t be tagging ATM machines, telco towers, transmission towers, etc. To be honest, I disagree with you on this point as TNB substations are permanent and important to some people as I mentioned before.”

“You may disagree with me but TNB sub stations is not an important objects for WM users. It just like tagging a bus stops and taxi stands if you know what I mean”

Well, maybe I should stay in OpenStreetMap.


Jokes aside, I’m quite surprised that Wikimapia is still active today. I still see several Wikimapia mappers still doing dedicated micromapping in their respective neighborhoods.

See full entry