Ko có gì ở đây 🤡
Users' Diaries
Recent diary entries
You can find a German version of this article here: Kreise in MapLibre
I want to integrate a Geolocate control into a MapLibre map and customize it both visually and functionally to fit my app.
At first, I considered using the GeolocateControl that comes standard with MapLibre. However, I quickly discarded this approach because adapting it to my needs seemed too cumbersome without a lot of fiddling.
My goal is that when the button is clicked, the display of the current location is toggled—so it can be turned on and off.
MapLibre itself offers several ways to draw circles on the map, depending on whether they should be pixel-accurate or meter-accurate.
Circles on a MapLibre Map
My starting point is a simple map.

As an OpenStreetMap contributor, I’ve always been dedicated to enhancing the detail and usability of local data. Recently, however, I ran into a frustrating problem: in areas I’ve mapped, the Chinese names for many places fail to display correctly in certain applications and services (like OsmAPP, JawgMaps, and MapTiler). Instead, they either fall back to Pinyin or default to the English name (name:en), which looks odd—especially when a primary name tag clearly exists but is simply ignored.
The root of the problem lies in the peculiar rendering rules of these applications, which often prioritize name:[lang] tags that match the user’s language. Even though we add a name tag, the absence of an explicit name:zh or name:zh-Hans tag can leave the renderer confused, causing it to fall back to name:en or just display the Pinyin transliteration.
Manually adding these tags to thousands of elements is obviously out of the question. You can’t just copy and paste your way through it; the sheer monotony would be mind-numbing. So, I decided to automate the process by writing a script.
Tech Stack and Script Logic
When high performance is a priority, C++ is the natural choice. I also leveraged two powerful open-source libraries:
-
pugixml: A lightweight, high-performance C++ XML parser, perfect for rapidly reading and writing large
.osmfiles. -
OpenCC: The community’s go-to library for Simplified and Traditional Chinese conversion, which I used to generate
name:zh-Hanttags.
The core logic of my script is as follows:
作为一名贡献者,我一直致力于提升本地 OSM 数据的细节和可用性。但是最近我发现一个令人困扰的问题:在我绘制过的区域,很多地点的中文名称在某些软件/服务中 (比如 OsmAPP、JawgMaps 和 MapTiler 的瓦片等)无法正确显示(回退为拼音),或是优先显示了英文名 (name:en),导致看起来怪怪的,明明有 name 但就是不用。
主要原因这些软件的神必渲染规则通常会优先寻找符合用户语言的 name:[lang] 标签。虽然我们加了 name 标签,但如果缺少了明确的 name:zh 或 name:zh-Hans 标签,渲染器可能就会“不知所措”,转而去寻找 name:en 或干脆直接显示拼音。
手动为成千上万个要素添加这些标签显然是不现实的,又不能靠复制粘贴,一圈下来人可能都麻了。我决定靠自动化,也就是写一个脚本来解决这个问题。
技术选型与脚本逻辑
对于这种讲究高性能的操作,C++ 肯定是首选,我还用了两个强大的开源库:
-
pugixml: 一个以轻量和高性能著称的 C++ XML 解析库,用来极速读写庞大的
.osm文件。 -
OpenCC: 社区公认的中文简繁转换标准库,用于生成
name:zh-Hant标签。
我编写的脚本核心逻辑如下:
-
读取与解析: 使用
pugixml加载从 Overpass API 查询的的本地.osm数据文件; -
遍历要素: 循环遍历文件中的每一个
nodeway和relation; -
定位目标: 检查元素是否含有
k="name"的tag; -
生成标签: 如果找到
name标签,则执行以下操作:- 复制
name标签的值,创建新的<tag k="name:zh" v="..."/>; - 再次复制
name标签的值,创建新的<tag k="name:zh-Hans" v="..."/>; - 调用 OpenCC 库(使用
s2twp.json),将name的值从简体中文转换为台湾地区通行的繁体中文,并创建<tag k="name:zh-Hant" v="..."/>;
- 复制
-
生成变更文件: 将所有被修改的要素(保留其原始
version号)写入一个全新的.osc(osmChange) 文件中,以便上传。
这里我贴一个 AI 生成的代码 (懒得写),各位可以参考一下:
To help make OSM more inclusive in line with the diversity statement https://osmfoundation.org/wiki/Diversity_Statement I’ve gone through the wiki and changed all relevant instances of specific pronouns to their gender neutral versions. This both encourages inclusivity by including non binary people, and makes the pages easier to understand.
Pages and text that have not been changed are statements by members of the community, talks, personal user pages and other related pages where changing the phrases would reflect directly on someone’s opinion. This resulted in changes to around ~190 wiki pages, or if you include modified templates, another ~4100 pages. Below is a list of phrases I changed to their gender neutral version.
- he/she
- she/he
- his/her
- her/his
- he or she
- she or he
- his or her
- her or his
- s/he
- him/herself
- her/himself
- him/her
- her/him
I’m surprised at the few recent pages still using he/she type references to people, namely the State Of The Map proposal for Paris 2026, especially after the drama around LGBT people and State Of The Map 2024.
Happy mapping, and I’m glad to help make the community more welcoming and accessable for all. <3 Phoebe
Myanmar Earthquake 2025 - Bago Township Roads and Buildings Mapping Toady 200 edit Mapping Contribution done
Happy to be part of the Esri India User Conference—a great opportunity to learn new trends, attend practical sessions, and connect with industry experts and scientists. Grateful to my organization Jio-bp and my lead for giving me this chance to represent at the Esri India User Conference.
Acabo de mapear Algunas Secciones de RURRENABAQUE entre ellas la policía cantonal y algunos hoteles
Cuauhtémoc ya tiene sus edificios en OpenStreetMap. ¡Disfrútenlo en el mapa!

일부 혼란스러운 매핑을 정리하고 OpenRailwayMap 이용을 고려하기 위해 몇몇 부분을 다듬고자 초안을 작성함.
network 키 구분하기
- route = train : 일반철도 노선 (호남선). 지하철 노선에는 사용하지 않음
- route = railway : 대중교통 노선 (호남선 무궁화호 등..)
노선 (운행 계통)
- 선로와 노선의 차이를 잘 구분해야 합니다.
- 번호가 붙지 않은 노선의 ref 태그에는 노선기호의 문구(신분당선 -> 신분당) 혹은 역 번호의 앞부분을 넣는 것을 고려 (예: 용인경전철 Y1## -> Y1 혹은 Y)
정거장
- public_transport = stop_area_group가 비표준 태그이기 때문에, 사용을 지양해야 합니다.
- 하나의 역은 하나의 public_transport = stop_area 관계로 나타내어야 합니다. (노선별로 관계를 분리하지 않아야 함)
- 지하철 출구의 name은 숫자가 아닌 이름이 있는 경우에만 입력합니다. (번호가 붙은 출구는 name을 비우고 ref만 입력합니다)
- public_transport=stop_area의 name 역시 ‘~역’을 제거합니다. (시설물로서의 역을 나타낸다기보다 정거장으로서의 역을 나타내는 경향이 크기 때문)
Ref 키 사용 정리
철도 관련 지물에 붙는 번호/코드의 종류를 정리해 보았습니다.
- 노선번호(대중교통): route=railway의 ref
- 노선번호(선로): route=train의 ref 및 railway=rail의 ref
- 선로번호(역 구내): railway=rail의 railway:track_ref (ref를 쓰지 않도록 합시다)
- 타는 곳 번호(역): local_ref
- 역번호: 개별 역의 ref
- 역명 전산약어: 개별 역의 railway:ref
아래 ref키는 특별히 등록된 것은 아니고 이런 key를 사용하면 좋겠다는 부분입니다.
- AFC(역무자동화설비) 코드: 개별 역(노선별) ref:AFC
- 매표단말(ARS) 역코드: alt_ref
- KROIS 코드: ref:KROIS
- XROIS 코드: ref:XROIS
신호기 (railway=signal)
OpenRailwayMap의 매핑 기준을 따르게 되어 있는데, 국내에는 railway:signal:CATEGORY=TYPE 유형의 매핑 기준이 만들어져 있지 않아 신호기의 종류를 상세히 매핑할 방법이 없습니다. 이에 새로 체계를 만들어 보고자 합니다.
추가 검토가 필요한 사항
아래의 사항은 필요하다고 사료되나 해외 사례 검토 결과 보류할 필요가 있어 보이는 부분입니다.
노선 관계의 ‘name’ 태그에서 이름이 아닌 요소 제거하기
- name 태그에 ‘도봉산 → 온수’처럼 방향을 표시하지 않는 것: from, to 태그로 표현할 수 있음
- name 태그에 ‘수도권 전철’처럼 네트워크를 표시하지 않는 것: network 태그로 표현할 수 있음
Hey OSM Kerala,
I’ve recently come across these innovative “Bottle Booths” scattered across Kerala as part of the state’s push for better plastic waste management. From what I’ve gathered, they’re public recycling stations designed specifically for collecting plastic bottles to reduce littering and promote recycling. The Kochi Corporation alone has installed over 300 of them in various spots, and similar initiatives are popping up elsewhere, often tied to the Haritha Karma Sena waste collection program.
Inspired by this, I’ve started mapping them into OpenStreetMap! So far, I’ve added a few in my local area, tagging them as:
https://wiki.openstreetmap.org/wiki/Tag:amenity=recyclinghttps://wiki.openstreetmap.org/wiki/Tag:recycling_type=containerhttps://wiki.openstreetmap.org/wiki/Tag:recycling:plastic_bottles=yes- Optional extras like
https://wiki.openstreetmap.org/wiki/Tag:name=Bottle Boothandhttps://wiki.openstreetmap.org/wiki/Tag:operator=Local Corporation(e.g., Varkala Muncipality) if known.
I’m not entirely sure about the full benefits of mapping every single one—maybe it’ll help apps like OsmAnd or Organic Maps guide people to the nearest booth, encouraging more recycling and cutting down on plastic pollution. It could also provide useful data for environmental projects or local governments.
If anyone’s in Kerala and wants to join in, let’s collaborate! keep an eye out and add them as you go. Here’s a photo of one.
https://commons.wikimedia.org/wiki/File:Plastic_bottle_booth,_Kerala.jpg
Happy mapping!
Merhaba. yaptığım düzenlemelerde hatalar olmuş ve yetkili tarafından düzenlenmiş bana mail olarak geldi mesajı okudum hatamı anladım fakat hala düzenleme yapamıyorum yardımcı olursanız sevinirim
https://prnt.sc/XRCtescwmNnc - https://prnt.sc/7XiO-hw3YZf_ - https://prnt.sc/G1gPDpibpcrX
Take a look to watch they on the outside it ain’t safe to watch look alive
I’ve been mulling over an idea for a while: what if we grab a complete snapshot of OpenStreetMap data for a given region, then run some statistics over it?
Things like which tags are most frequently used, who the top contributors are by edit count, and who has been active in that area the longest.
For the last one, “longest active” means the timespan between a contributor’s very first edit within that region and their most recent edit (also within that region). This distinction helps separate two very different contributor types: the one-hit wonders who show up during a mapping campaign, make a huge number of edits in a short burst, and then disappear forever; and the long-term caretakers, often locals, who quietly keep the map up to date whenever they notice changes in their surroundings.
To explore this idea, I had to build some tools.
Step one was downloading all OSM objects within a given administrative boundary (relation) : https://altilunium.github.io/osm-region-downloader/
2025.09.08
I am two days late to write this post. Life gets in the way. However, I felt I should have this in writing. On 6 September 2025, after 11:30 PM, I suddenly realized that the ending day marks something significant. It marks the 10th year completion of my journey with OpenStreetMap. 10 years ago, on this day in 2015, I entered a workshop arranged by Save the Children International in Bangladesh. The workshop was arranged by a project named Kolorob (Bengali word for the sound of a lot of people cheering together) who were training youths on how to edit OpenStreetMap. Little did I know back then that it will entirely change the direction of my life.
10 years since 6 September 2015 consists of 3654 days. Checking my HDYC told me that I mapped 3425 days in that 10 years. That is about 9.38 years of mapping each day. It felt quite overwhelming. Mapping became such an integrated part of my life that it hardly feels something I do, rather something automated that is to be done regularly.
It was a rewarding journey, mixed with bittersweet memories of field mapping in hot summer days in the sun, venturing to unknown areas for GPS tracks, remotely mapping areas after areas that I will probably never visit, spending hours after hours on validating, figuring out how to best map an area, learning new tools, plugins, taking workshops, teaching and training new mappers, solving data collection problems, and so on.
Over time, due to various aspects of life and career, I drifted apart from organized mapping community. However, my mapping continued. I kept mapping unmapped areas of the world. My joy is to take a part of the world with no features mapped and then completing it, literally putting it on the map.
I hope to continue my mapping journey, one day at a time.
Hello
y first day in mapping was sweet and exciting. I felt good to know that even small tasks I did could help improve global maps. It was interesting to discover how roads, buildings, and other features are added, and I enjoyed learning while contributing to something meaningful. That experience motivated me to keep mapping and to grow my skills further.
Wijzigingenset: 171572422.
Ford gewijzigd in vlonderpad. Bij een ford (doorwaadbare plaats) is de waterstand hoger dat is hier niet het geval. Zie onderstaande foto.
![]()
Hello OSM friends! I’m Bhausaheb…… from Nashik, working in GIS Industry as an GIS Engineer. Recently, I have been mapped new buildings around my locality using ID Editor.