Style | StandardCards

OpenStreetMap Blogs

Sunday, 28. December 2025

weeklyOSM

weeklyOSM 805

18/12/2025-24/12/2025 [1] OSM-based web app to display Wikidata items around a location | © Rtnf | Map data © OpenStreetMap Contributors. Community [1] rtnf has developed WD-NearbyItem, an OpenStreetMap-based web app to display the Wikidata items around a location. bmaczero has setup a MapRoulette task to fix multi-pitch tennis courts in the US. Malle Yeno…

Continue reading →

18/12/2025-24/12/2025

lead picture

[1] OSM-based web app to display Wikidata items around a location | © Rtnf | Map data © OpenStreetMap Contributors.

Community

  • [1] rtnf has developed WD-NearbyItem, an OpenStreetMap-based web app to display the Wikidata items around a location.
  • bmaczero has setup a MapRoulette task to fix multi-pitch tennis courts in the US.
  • Malle Yeno shared his 2025 OSM mapping activities in Regina, Saskatchewan, Canada, ranging from StreetComplete surveys, street-level imagery collection, pavement (sidewalk) mapping, and indoor mapping, to maintaining the city’s OSM Wiki page and proposing new OSM tags.
  • Pieter Vander Vennet explained the current complexity and problems with the existing road crossing tagging scheme on OpenStreetMap and called on the community to improve it together.
  • rphyrin shared the thoughts he had when wearing an OpenStreetMap-based t-shirt.
  • SilvEsth blogged that YouthMappers UMSA Bolivia have participated in mapping the Senda Verde Wildlife Sanctuary, in the Amazon rainforest of Bolivia, and the Puma Katari public transportation network in the city of La Paz.

Local chapter news

  • The OpenStreetMap US December 2025 newsletter has been published.
  • OpenStreetMap US recounted several of their notable moments of 2025.

OSM research

  • Zijian Hu and others have used OpenStreetMap data to estimate network-wide road traffic flow in 15 cities across Europe and North America. You can access the full article published in Communications in Transportation Research.

OSM in action

  • Astrid has won first prize in the recent GNU/Linux.ch Advent giveaway, a Purism Librem 5 smartphone, by correctly solving the puzzle and submitting an OpenStreetMap-themed short story.

Open Data

  • fghj753 reported that the Estonian government is planning to make their open aerial imagery less detailed after criticisms from several homeowners over privacy concerns.

Software

  • The CoMaps team shared the progress they made in 2025, how it was enabled by its active, all-volunteer community, and how you can help too.
  • Bastian Greshake Tzovaras has released the comaps-map-distributor command-line tool to help users download and locally distribute the map files used by the CoMaps Android app.
  • Daniel Schep shared what has recently changed in Ultra, a web application made to simplify making maps with MapLibre GL JS.
  • The openstreetmap-website project has some new year gifts for users of the OSM website, including linked tag references in changeset comments and emojis in vector map layers.
  • The BBBike Extracts Service now supports the column-orientated data format GeoParquet, as well as vector tile packages in the Shortbread schema in MBTiles format, for custom regions on request.

Programming

  • Anatoly Alizar has tested GeoDesk’s GOB OSM data storage format in practice.

Releases

  • CoMaps has released version 2025.12.19. In addition to fresh OpenStreetMap data from 17 December 2025, the new features on Android include better warnings about outdated maps when trying to edit OSM and the ability to specify your own remote server for downloading maps.

Did you know that …

  • … ‘OpenStreetMap New Zealand’ has a tool for restoring the history of features that have been deleted and then redrawn?

Other “geo” things

  • jnally, of Spatial Source, noted that the rare alignment of true north, magnetic north, and grid north in Great Britain (we reported earlier) is coming to an end and is not expected to occur again for several centuries.
  • Adam Cox is the software designer for the OldInsuranceMaps.net site, which provides an open and online workflow for creating georeferenced layers of historical maps, especially those from the Sanborn Map Collection (from the US Library of Congress). Sanborn was an American cartography company that was prominent in the 19th and 20th centuries. Many websites and web maps use OldInsuranceMaps.net’s resources, such as the OpenHistoricalMap.
  • CBS News Colorado reported that a plane has made a safe emergency landing without the pilot’s help, in what appears to be the first real-world use of Garmin’s ‘Autoland’ emergency system.
  • Terence Eden, the developer behind the OpenBenches project, highlighted a number of wholesome comments left by users in their bench entries on the platform.

Upcoming Events

Country Where Venue What When
flag Hamburg CCH – Congress Center Hamburg OSM@39c3 2025-12-27 – 2025-12-30
flag New Delhi online OSM India×TomTom Online Mapathon 2025-12-28
flag Braga Mercado Municipal de Braga OSM Braga meetup / mapathon 2026-01-03
flag MAP Mercator museum OpenStreetMap Belgium at the MAP-Mercator museum 2026-01-03
flag Braunschweig Stratum0 Braunschweiger Mappertreffen im Stratum0 Hackerspace 2026-01-03
flag नई दिल्ली Jitsi Meet (online) OSM India – Monthly Online Mapathon 2026-01-04
Missing Maps London: (Online) Mapathon [eng] 2026-01-06
iD Community Chat 2026-01-07
flag Stuttgart Stuttgart Stuttgarter OpenStreetMap-Treffen 2026-01-07
MapYourGrid webinar: Data quality in OpenStreetMap for energy system planning 2026-01-08
flag Dresden Bottoms Up, Dresden OSM-Stammisch Dresden 2026-01-08
flag Bochum Das Labor, Alleestraße 50, Bochum OSM-Treffen in Bochum 2026-01-08
flag Online OpenStreetMap Midwest Meetup 2026-01-08
OSMF Engineering Working Group meeting 2026-01-09
flag Jitsi-Meet Erstes Online-Treffen der OSM-Mapper:innen im Sauerland 2026-01-09
flag Chiasso Mapping party @ New Year’s brunch by Wikimedia CH 2026-01-10
flag København Cafe Bevar’s OSMmapperCPH 2026-01-11
Missing Maps : Mapathon en ligne – CartONG [fr] 2026-01-12
flag 臺北市 MozSpace Taipei OpenStreetMap x Wikidata Taipei #84 2026-01-12

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 IVIDES.org, 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.


Shaun McDonald

Heatpump install

In June 2025 I got a heat pump installed in my 3 bedroom semi-detached house built in 1900. I thought I’d document the process as it may be of interest to others, particularly some aspects of the heat pump sizing and installation of the underfloor heating, which on discussing with some people they found quite… Continue reading Heatpump install

In June 2025 I got a heat pump installed in my 3 bedroom semi-detached house built in 1900. I thought I’d document the process as it may be of interest to others, particularly some aspects of the heat pump sizing and installation of the underfloor heating, which on discussing with some people they found quite interesting and useful.

I started the discussion with the local installer, Rewneable Heat, about a year before, and it took much back and forth via email with some phone calls and a couple of site visits to get the retrofit all designed. As I’d done the basic heat survey in a spreadsheet myself, they were able to use this as a starting point and saved them having to come out and do all the measurements.

We moved into the property 2 years before the install, and on moving in discovered there was an issue with the thin kitchen radiator leaking at the valves, so had to isolate it quickly as no easy way to fix it properly, combined with knowing we were going to install the heat pump which would require radiator upgrades, so no point installing something to be taken out within a couple of years. There was also no insulation above the kitchen at all, so within the first year I installed some sheep’s wool insulation called Thermafleece from Celtic Renewables, which made a noticeable improvement to the warmth in the kitchen.

The gas combi-boiler was over a decade old. By the time it came to install time of the heat pump we were starting to have reliability issues with the boiler. For example it had an odd setup for taking the condensate away, where there was a small container with a water level activated pump, which would pump the water to the drain. This pump was starting to run constantly in some cases. The system was also losing pressure, which meant that I frequently needed to top up the pressure but couldn’t see where the leak was.

A family member works for Mitsibushi in the heat pump department in Livingston (where they make the heat pumps), so going for a Mitsibushi seemed a no brainer. The local installer we chose didn’t normally use that brand, but were happy to go with it.

The heat loss survey suggested that we needed 6.9 kW, however looking at historical gas smart meter data for the coldest day over the previous couple of years suggested the maximum gas used over any hour was less than 6kWh, typically just over 5kWh, thus the heat loss survey was potentially over estimating the heat power we needed. Heat loss surveys over estimating the power needed is a known issue, as they take a bit of a worst case scenario with the amount of heat loss, and are unable to take account of some of the characteristics of the building which could mean there’s less heat loss compared to the calculation. There’s also some additional fabric or insulation improvements we can do to help reduce the heat loss, thus reducing the heat demand required. For example, we’ve recently had a water leak, which turned out to be the flat roofs about the bedrooms being end of life and needing replacing, with the replacement also including insulation (none before).

The cupboard that had the gas boiler is where the new hot water tank plus electrical sub board got installed. The Mitsubishi 170 litre slimline pre-plumbed cylinder just fitted in, and was likely the largest Mitsubishi hot water tank that would fit. It was a tight fit, and the installers did a neat job getting it all fitted in.

Most radiators were upgraded to larger radiators to allow a low flow temperature, and therefore more efficient system. Two of the radiators that weren’t upgraded were borderline needing upgraded to a larger size, however were difficult to do so due to the position and space available. We may come back and change them in the future, but thought we’d see how we get on first. With one of them, insulating the flat roof above should help (still to do), and would probably be the priority, which should reduce the heat loss and therefore heat requirements in that room. It’s also got the washing machine and tumble dryer, so when it’s cold there are other heat sources likely on too, reducing some of the need for a larger radiator.

In the kitchen we got the installer to remove the thin leaking radiator, capping the pipes in the ceiling. This was replaced with underfloor heating. The heating installer came in early week 1 to install the underlay and underfloor heating pipes. We then had just under a week to get most of the tiles stuck down, particularly in the cupboard that the new hot water cylinder would be installed. The installer used an insulated board with pre-cut grooves for the underfloor heating pipes. We then used the tile adhesive directly on the boards and pipes with the tiles on top, making it an easy process. The hardest part was trying to get the tiles level everywhere.

3 doors needed to have the bottom trimmed off due to the extra floor height. Easy enough done with the circular saw.

No concrete screed was needed, which puts the room completely out of use until it’s dry. It’s also quite costly and time consuming to install the concrete screed. With this backer board solution we could strategically lay the tiles to keep use of the kitchen whilst being careful where we stepped and leaning over at times.

Week 2 the main part of the install took 5 days, starting on the Monday.

Day 1 was mostly removing the old gas boiler, draining the system, and preparation work. The concrete base stands for the heat pump were created. The new electrical sub board for the heat pump was installed, with the house power off for a short time to connect this in. Once the boiler was out in the morning we had no water from the hot taps.

We headed across the road to the swimming pool for a swim, and shower in the evening. Rather handy having a swimming pool so close to home and a monthly pass. With the gas boiler out, I emailed Octopus Energy to start the process to remove the gas meter.

Day 2 was implementing the pipework changes and hanging some of the radiators that were changing. The external pipes and electrical cables were put in place, but not connected up.

Day 3 most of the radiators were hung by the end of the day, and the hot water tank was filled and connected up. The heat pump was moved into place and linked up. The hot water tank was filled (but not heated yet), so we could get water from the hot tap again. We were rather impressed that the pressure on the hot and cold taps was now equal, whereas with the combi boiler the hot water at the taps was noticeably lower pressure.

Day 4 was getting the system up and running, checking for leaks, bleeding radiators, learning the controls, connecting the heat pump to Melcloud (Mitsibushi’s cloud service), and then running the system overnight to start commissioning. With it being so warm, it was hard to keep the heat pump going all the time (on reflection, using a different mode from weather compensation, such as target flow may have worked better). With it being mostly new radiators, and the system being mostly clean anyway, it wasn’t too much of an issue. Once the heat pump was linked up to MelCloud I could also link the heat pump up to my Home Assistant install which runs on a Raspberry Pi. This meant I could record some details such as flow, return, and outside temperatures.

Day 5 was finishing up the install, flushing the system and re-filling it, putting the thermostats in place, and completing the insulation of the pipes. As they were doing that they spotted a minor leak on the small ball valves to one of the radiators that wasn’t changed, so replaced those with straight pipe. My kids spotted that the smaller kids bedroom had a bigger radiator and found it strange, however this is expected due to the extra external wall, thus greater heat loss in the smaller room.

The warranty for the Mitsibushi heat pump needs the paperwork submitted by the home owner rather than the installer as with other manufacturers. This was an easy process with the only hickup being that they could couldn’t find the serial number I entered on the form. They kindly asked for a photo via email and 3 weeks later I had an email confirming the manufacturer’s warranty. This was different to other heat pump manufacturers that our installer use where the installer submits the warranty documentation and passes it on to the customer.

The EPC was completed the following Friday evening, organised by the heat pump installer. It was a quick process as the installer had passed on the install details, so it was a case of verifying and taking photos of the relevant details.

The EPC went from a mid E to a high D, only just missing out on the C rating by one point. Some more insulation, solar PV, and a battery should get that improved further.

With the EPC stating that we’ve got the heat pump, and the invoice, I could then send off to Home Energy Scotland for the funding payment having started the application process prior to the works starting (very important). The payment came through within a week or two, so was pretty quick, I was then able to pay this on to the heat pump installer.

The basic energy monitoring on the Mitsubishi isn’t particularly accurate, and is rounded to the down to the whole kWh. So I added a Shelly EM with a CT clamp to get some more accurate and live monitoring, and connected it up to Home Assistant.

CT clamp around the electrical cable for all of the electric that the heat pump uses. This links to the grey meter box.

A week after the install of the heat pump was completed, an Octopus engineer came and removed the gas meter, and capped the gas supply. Another week later and my account was updated that the meter was removed and final bill produced and sent a few days after that.

Gas meter box with the meter removed. There is a yellow and green earthing cable linking the two pipes.

I found the pure weather compensation and dumb thermostat hasn’t worked so well, as it’s hard to find an exactly optimum heating curve, for example when it’s wet and windy I found a slightly higher flow rate was needed. I also got annoyed with the hot water occasionally heating up during the Octopus Agile peak time, so have setup Havenwise, which uses the energy tariff and weather to optimise the heating. This has produced a much more stable temperature, as it’s able to lower the flow temperature when approaching the set temperature, and raise it for example when the back door has been left open and let the cold air in, thus getting back to temperature much quicker compared to pure weather compensation. It reduces some of the cycling I seen in some weather conditions if I didn’t have the weather compensation right for that wind and rain condition. Having a cap of 45˚C flow temperature in the Havenwise system has really helped to avoid too high a temperature, and massively overshooting the target temperature. The design flow temperature is 45˚C at -5.6˚C.

So far, comparing our total energy costs to the previous year for each month has shown that we are saving some money. The original quote suggested we’d be roughly similar cost to before, so a small reduction in cost whilst getting a warmer house with better hot water is a lovely quality of life improvement. Still have the coldest months to go, to really tell how well it will work.

To confirm my direct debit for energy is set right I take the previous 12 months cost and divide it by 12, and can then tweak the direct debit also taking account of the current balance. At the point of the install in June the total prior year cost was £180 per month. Now at the end of December we’re at £153 per month. We’re on the Octopus Agile tariff and use Havenwise to time the hot water by the heat pump for the times that are cheapest, and set appropriate flow temperatures based on heat demand.


OpenStreetMap User's Diaries

নাগা বাজার–মৌলভীবিভা সড়ক সংলগ্ন গ্রামীণফোন টাওয়ার ম্যাপিং অভিজ্ঞতা

আজ আমি রাজশাহী জেলার বাগমারা উপজেলার কাতিলা গ্রামে অবস্থিত নাগা বাজার এলাকায় মাঠ পর্যায়ের পর্যবেক্ষণ (field survey) পরিচালনা করি। নাগা বাজার–মৌলভীবিভা সড়ক দিয়ে চলাচলের সময় লক্ষ্য করি যে, প্রধান সড়কের পাশে একটি গ্রামীণফোন সেলুলার টাওয়ার স্থাপিত রয়েছে, যা এখনো OpenStreetMap-এ সঠিকভাবে চিহ্নিত ছিল না।

মাঠ পর্যায়ে অবস্থান নিশ্চিত করার পর আমি টাওয়ারটির সঠিক লোকেশন নির্ধারণ করি এবং OpenStreetM

আজ আমি রাজশাহী জেলার বাগমারা উপজেলার কাতিলা গ্রামে অবস্থিত নাগা বাজার এলাকায় মাঠ পর্যায়ের পর্যবেক্ষণ (field survey) পরিচালনা করি। নাগা বাজার–মৌলভীবিভা সড়ক দিয়ে চলাচলের সময় লক্ষ্য করি যে, প্রধান সড়কের পাশে একটি গ্রামীণফোন সেলুলার টাওয়ার স্থাপিত রয়েছে, যা এখনো OpenStreetMap-এ সঠিকভাবে চিহ্নিত ছিল না।

মাঠ পর্যায়ে অবস্থান নিশ্চিত করার পর আমি টাওয়ারটির সঠিক লোকেশন নির্ধারণ করি এবং OpenStreetMap-এ একটি নতুন পয়েন্ট (node) যোগ করি। ম্যাপিংয়ের সময় টাওয়ারটির ধরন, অপারেটর ও নেটওয়ার্ক তথ্য যাচাই করে যথাযথ ট্যাগ ব্যবহার করেছি, যেমন—communications_tower, operator=Grameenphone এবং tower:type=cellular।

এই টাওয়ারটি নাগা বাজার এলাকার মোবাইল নেটওয়ার্ক কভারেজ নিশ্চিত করতে গুরুত্বপূর্ণ ভূমিকা রাখছে। স্থানীয় ব্যবসা প্রতিষ্ঠান, বাজারের দোকানদার ও আশপাশের বসতবাড়ির মানুষ প্রতিদিন এই নেটওয়ার্কের উপর নির্ভরশীল। তাই টাওয়ারটির অবস্থান ম্যাপে যুক্ত হওয়ায় ভবিষ্যতে ডিজিটাল ম্যাপ ব্যবহারকারী, গবেষক ও জরুরি সেবাদানকারী সংস্থার জন্য তথ্যটি উপকারী হবে বলে আমি মনে করি।

গ্রামীণ এলাকার গুরুত্বপূর্ণ অবকাঠামো OpenStreetMap-এ যুক্ত করার মাধ্যমে স্থানীয় এলাকার ডিজিটাল দৃশ্যমানতা বাড়ানো সম্ভব। ভবিষ্যতেও নাগা বাজার ও আশপাশের এলাকায় রাস্তা, শিক্ষা প্রতিষ্ঠান ও অন্যান্য গুরুত্বপূর্ণ স্থাপনা ম্যাপিং করার পরিকল্পনা রয়েছে। Location: Naga Bazar,Katila, Bagmara Upazila, Rajshahi Source: Field survey Mapped features: Mobile communication tower (Grameenphone)


Walla Walla Washington Improvements

I am going to make some improvements to the Walla Walla Washington area over the next week. I’ve just found the Rapid editor uses the Microsoft Building Footprint data to suggest features. That’s excellent. Speeds things up significantly.

I am going to make some improvements to the Walla Walla Washington area over the next week. I’ve just found the Rapid editor uses the Microsoft Building Footprint data to suggest features. That’s excellent. Speeds things up significantly.

Saturday, 27. December 2025

OpenStreetMap User's Diaries

Portage, MI

I worked on Lloy street today in Portage MI. It could use some mapping love. Streets are there but not much else.

Porage GIS: mi-portage.civicplus.com/177/GIS-City-Maps

I worked on Lloy street today in Portage MI. It could use some mapping love. Streets are there but not much else.

Porage GIS: https://mi-portage.civicplus.com/177/GIS-City-Maps


Sulphur (Springs) Creek

Today while looking at the hand drawn parcel maps that the county provides I learned the creek that runs through my neighborhood has changed it’s name. On the maps it’s called Sulphur Spring Creek. On all the other maps I’ve seen, road signs, and from what we locals call it, it’s just Sulphur Creek. There’s even a nature center / animal rescue that is named for the creek. They don’t use the spri

Today while looking at the hand drawn parcel maps that the county provides I learned the creek that runs through my neighborhood has changed it’s name. On the maps it’s called Sulphur Spring Creek. On all the other maps I’ve seen, road signs, and from what we locals call it, it’s just Sulphur Creek. There’s even a nature center / animal rescue that is named for the creek. They don’t use the spring in their name either.

OK… after getting the comment re sulfurous springs, I did some digging. I haven’t found any historic proof of the claim in this article from last year, but …

“Nestled in the Hayward hills, the Sulphur Creek Nature Center is home to dozens of birds, amphibians, reptiles and mammals, including a coyote and a fox. The site straddles a small section of Sulphur Creek, named after the sulphur water bubbling up from nearby springs. In 1970, H.A.R.D. acquired the property, then a wellness retreat, and transformed it into the animal sanctuary it is today.”

The “spring” part of the creek is shown to be at the current location of the nature center. The other creeks that feed into it have been conflated into all being “Sulphur Creek” I suppose.

https://tricityvoice.com/sulphur-creek-nature-center-completes-renovation/

Friday, 26. December 2025

OpenStreetMap User's Diaries

2025 年中国大陆乡镇 OSM 要素完备度分析报告(一):指标设计和先期结果

在中国大陆,OSM 要素的缺失是众所周知的事实。然而,具体的缺失程度如何?哪些要素相对完善、哪些要素更加稀少?“一片空白”的区域又主要分布在哪里?当前,社区对此的认识大多是定性的,少有具体的数据支撑。自己动手,丰衣足食。为此,本文旨在尝试构建一种定量化的评价指标,用于界定某个地区的“空白”程度,比较不同类型要素的缺失程度,此即该地区 OSM 要素的完备性。

然而,何为“完备”实际上是非常主观的判断,对于相同的地理区域,不同需求的数据使用者可能会有不同的判断。例如,一个城市的路网和公共交通被绘制得十分详尽,或是植被和用地类型被划分得尤其清晰,就足够“完备”了么?对 POI 有兴趣的数据使用者可能不会这么觉得。然而,调查的进行仍是需要一个标准,那怕是比较粗断的标准。

思考过后,本文决定将“完备”的定义对象设定在中国大陆具有一定工商业活动和人口聚集规模的最小行

在中国大陆,OSM 要素的缺失是众所周知的事实。然而,具体的缺失程度如何?哪些要素相对完善、哪些要素更加稀少?“一片空白”的区域又主要分布在哪里?当前,社区对此的认识大多是定性的,少有具体的数据支撑。自己动手,丰衣足食。为此,本文旨在尝试构建一种定量化的评价指标,用于界定某个地区的“空白”程度,比较不同类型要素的缺失程度,此即该地区 OSM 要素的完备性

然而,何为“完备”实际上是非常主观的判断,对于相同的地理区域,不同需求的数据使用者可能会有不同的判断。例如,一个城市的路网和公共交通被绘制得十分详尽,或是植被和用地类型被划分得尤其清晰,就足够“完备”了么?对 POI 有兴趣的数据使用者可能不会这么觉得。然而,调查的进行仍是需要一个标准,那怕是比较粗断的标准。

思考过后,本文决定将“完备”的定义对象设定在中国大陆具有一定工商业活动和人口聚集规模的最小行政单位——乡、镇和街道等——所应当存在的设施,如道路、学校、医院、建筑等,设定由行政节点和边界道路交通公共和商业设施建筑和土地利用四个维度构成的 OSM 基础要素“完备度”评价指标。这些基础要素既与当地居民的日常生活息息相关,亦与不同绘图者的兴趣有所重合,希望能给各位社区同好寻找补充目标提供小小帮助。

此项工作由个人一时兴起完成,思虑不周之处,还请各位海涵。本文展示的是此项工作的先期结果,涵盖中国大陆 27 个省/市/自治区中的 9 个。后续工作倘若顺利预计会在农历新年前后完成。待全部工作完成以后,本文使用的脚本、示例及数据将会以 GPL-3.0 协议共享于 GitHub,有相关兴趣的读者可以自行取用。报告本身欢迎以 CC BY 4.0 协议转载 。如有不当之处,敬请通过评论和私信指出,我会尽量及时更正。


1 统计对象

1.1 乡镇中心

本文的统计对象限于中国大陆各乡级行政区划行政中心周边区域,而非整个乡级行政区划的下辖范围,其原因是:

  1. 乡级行政中心通常集中了整个区划范围内最多的人口和基础设施,应当作为 OSM 要素和公众兴趣点最多的区域
  2. 比较未被普遍标注的乡级行政边界,乡级行政中心的位置容易界定,周边区域范围较小,统计难度较低

具体地,考虑中国大陆普通乡镇的规模,本文将周边区域限定在行政中心所在节点1 km3 km 之内,前者用于搜寻人口密集区所需要的建筑、居民道路、医院、学校和商店等设施,后者则用于搜寻可能里行政中心更远的政府机关、大型道路和各种用地类型等。对于行政中心所在坐标,根据 中国大陆地区行政区划标注指北 的建议,其在 OSM 应以 place=suburbplace=town 标注,因此本文的想法是通过 overpass 接口对齐进行匹配。然而,由于存在 place 节点未被标记,或 name 标签中名字不清晰的情况,完全依赖 OSM 获取乡镇列表及其坐标显然是不合适的。为此,本文将 GitHub 上存档的 2024 年中国全国 5 级行政区划 列表作为参考,使用 overpass 接口尝试匹配 OSM 数据库中相应的节点并从中获取行政中心的位置信息。对于未能匹配到相应节点的乡镇,则由其他地理信息平台(如高德 API)补充其行政中心的位置信息。

在中国大陆,乡级行政区划涵盖街道民族乡苏木民族苏木县辖区共 8 种类型,但在这 8 种“由民政部门确认的单位”之外,中国大陆还存在数量可观的“类似乡级行政单位”,如开发区、产业园、农场、林场、牧场、兵团等,即俗称的“黑区”。考虑到乡镇级的此类“黑区”在 OSM 中被准确标注的情况寥寥,同时部分“黑区”还可能涉及敏感内容,本文会将其排除在统计范围之外。具体的排除方法则以行政代码为准,即剔除掉列表中乡级行政代码为 400–999 的条目,存在行政代码和下辖单位的县级及以上黑区则予以保留

截止 2024 年 6 月,中国大陆地区共设有 38672 个乡级行政区划,相关数据的下载、校对周期漫长。因此,本文作为工作的第一部分,选取了北京山西吉林江苏浙江湖北广东四川甘肃共 9 个省份展开试验。这 9 个省份的乡级行政区划数量恰好也占到了全国的三分之一,相信对整个中国大陆地区有充分的代表意义。

1.2 基础要素

“基础要素”在本文中是指被纳入统计标准的,应当被标记的各类 OSM 要素,数据类型包含节点、路径和关系。考虑到是在乡镇水平上的统计,以及中国大陆各乡镇现实的标注情况,本文认为“基础要素”的选取既要考虑其内容的普遍性,同时标准还不能设立得太高 (全是零分的话就没有意义了)。因此,本文的设计思路是:对于中国大陆内陆地区的普通乡镇,里面有什么要素是普遍存在,且当地居民、外地访客、研究学者会共通关注的?基于这个标准,本文目前能想到的有如下内容:

  1. 行政节点和行政边界
  2. 普通道路、公交站(客运站)、加油站、停车场、各种小型道路
  3. 政府机关、医院、学校、派出所、邮局、银行、生活与消费设施
  4. 建筑、用地类型与自然类型、公园、旅游名胜等

相对地,一些本文认为在中国大陆地区并不普遍存在于乡镇水平,或是被关注程度较低的要素,则不被纳入统计范围内,如:

  1. 铁路、高速铁路、轨道交通、和高速公路等 (铁路迷和高速迷们应该有自己的完备度统计吧)
  2. 公共厕所、消防站、垃圾站等标注数量过少,且关注程度较低的公共服务设施
  3. 在“基础要素”以外的,单纯的 OSM 要素种类和要素数量 (本文不是“要素密度”分析报告)
  4. 在“最低要求”以上的,建筑和 POI 数量 (即便在本文所设的“最低要求”下,大部分的乡镇在此方面依旧只能得到零分)
  5. 中国大陆相关法律法规所规定的不适合在公开地图上标识的内容

所以,如果读者是想要了解上述几个方面的内容,那么这项工作可能对你来说意义不大。总得来说,这项工作所描述的“完备度”还是非常主观、与商业需求脱节,只适用于中国大陆乡镇地区的评价标准。

2 统计方法

2.1 指标设计

本文设定的完备度指标总分 100 分,分为行政节点和边界(20 分)、道路交通(30 分)、生活和消费设施(30分)以及建筑和土地利用(20 分)四个组成部分,每个部分内按各基础要素及其种类的存在与否或是数量线性积分。

2.1.1 行政节点和边界(20 分)

乡镇级别的行政节点和行政边界会在 OSM-Carto 上被直接渲染出来,其存在与否、名称有无被正确标记,则决定了使用者能否准确搜索到其目标区域。本文认为其具有足够的重要性,在节点和边界的存在上都分别设定了 8 分的占比。此外,下级地名(通常是各村庄和社区)的标注程度也能体现出该地区行政关系的完整程度,占比 4 分。

  行政节点/存在 行政边界/存在 其他地名/个
3 km 8 8 ×1
最高 8 8 4

说明:

  1. 行政节点指被匹配到名称且含有 place 标签的节点,对行政节点是否存在于行政关系内没有要求
  2. 行政边界指被匹配到名称且含有 boundary=administrative 标签的关系
  3. 其他地名指同时含有 nameplace 标签的节点
  4. 表中的 “3 km”指以行政节点为中心的搜索范围大小,仅计算搜索范围内存在的要素,下同

关于节点/边界存在与否的判定条件

在存在与否的判定条件上,本文考虑了对 namealt_nameofficial_nameold_nameshort_name 五个常用标签进行匹配,匹配规则为上述标签的值包含用于匹配的名称即可。对于被判定不存在相应 place 节点的乡镇,作者在统计时大多进行了核查,并对官方名称唯一且和原列表中不一致的情况进行了更正。然而,对于下列存在对应节点,但在 overpass 中未被匹配到的情况,本文不会对其被判定为不存在的结果进行修正:

  1. 在政府文件和官办媒体的新闻报道中可见多个正式或通用名称,但在对应节点中仅标注了其中一个(此时有必要对各类 name 标签进行补充),这又可细分为四种情况:
  2. 对应节点中标注的名称含有错别字,该错误名称在民间或自媒体中偶尔可见,但从未出现在政府文件中 (此时应当对 name 标签进行更正),如温州市文成县黄坦镇/黄坛镇
  3. 部分乡/镇/街道被认为不具地名属性而不应存在对应节点,这种做法合乎道理,如吉林省延吉市小营镇,但其数量较少、情况特殊,本文暂未设计好对这种情况的排除算法,算是“误伤”
  4. 部分乡/镇/街道的节点与政府机关重合且未添加 place 标签,如杭州市拱墅区潮鸣街道,这种做法是否属于上一种情况、是否合适仍有争议,暂且保留

说明:上述并列的地名分别表示该地点在列表中的名称/在 OSM 中的名称

2.1.2 道路交通(30 分)

与连接各县市中心的高速公路和铁路不同,对于乡镇居民及目的地为乡镇的游客来说,最普遍、最重要的道路交通设施莫过于普通公路,以及相关的停车场、加油站等相关设施。因此,本文优先考虑县道及以上等级的公路在各乡镇的通达情况和乡镇中心居民道路的完备程度,此部分一共占比 20 分;另外判断公交站、停车场、加油站等公路出行设施的存在与否,其各占 2 分;最后兼顾小型道路和自行车道、人行道、小径等其他道路的种类丰富程度,此部分占比 4 分。

考虑到县道及以上等级的公路并不一定会抵达乡镇的中心区域,甚至不一定会连接到每个乡镇,上述设施的搜索范围主要设定为 3 km,且并未要求一定存在。另外,由于乡镇中心附近的居民道路对于当地居民有更重要的意义,同时也是为了鼓励将乡镇的 place 节点放在建成区中心的做法,1 km 以内的小型道路被赋予了额外的权重。

  道路/条 公交站/个 停车场/个 加油站/个 小型及其他道路/类
1 km 小型 ×0.3        
3 km 次级及以上 ×5
(最高 5.0)
三级 ×1
(最高 5.0)
小型 ×0.2
×2 ×2 ×2 ×1
最高 20 2 2 2 4

说明:

  1. 次级及以上道路指含有 highway=trunk/primary/secondary 标签的路径
  2. 三级道路指含有 highway=tertiary 标签的路径
  3. 小型道路指含有 highway=residential/unclassified 标签的路径
  4. 公交站指含有 bus=*highway=bus_stoppublic_transport=* 标签的要素
  5. 停车场指含有 amenity=parking 标签的要素
  6. 加油站指含有 amenity=fuel 标签的要素
  7. 小型及其他道路仅指含有 highway=residential/unclassified/service/track/cycleway/pedestrian/footway/path/steps 标签的路径,标签中每种不同的值算作一类,另 highway=living_street 由于其在中国大陆的适用争议而被排除在外
  8. 由于 1 km 范围内的要素同时也处在 3 km 范围内,1 km 范围内每条小型道路的得分实际上是 0.3+0.2=0.5

2.1.3 公共和商业设施(30 分)

对于公共和商业设施,本文优先考虑对本地居民至关重要的政府机关、医院、学校和派出所,其分别用于满足行政、医疗、教育和治安方面的相关需求,是百人以上的永久定居点存在的基础,每个占比 5 分。即便是在如达里雅布依乡这样身处沙漠中央的乡镇,也能一个不落地找到上述四类设施。此外,银行和邮局作为金融邮电设施用于保证居民与外界信息流通,也有一定的重要性,其每个占比 2 分。在此之后,还要考虑商店、餐馆和旅店这样等外地游客也有相当需求的生活消费设施 POI,其每个占比 1 分。考虑到城镇的规模不一,本文设计的指标只要求除生活消费设施以外的设施至少存在,不做额外的数量要求。

在搜索范围的设置上,本文考虑了 OSM 对用于渲染地名的 place 节点的放置的通行习惯:其被推荐放置在建成区中心——或者至少不那么偏僻的地方,而非和政府驻地绑定。因此,除了政府机关的搜索范围被设定为 3 km 外,医院、学校、派出所等通常存在于建成区中心的设施的搜索范围都被设定为 1 km。

  政府机关/个 医院/个 学校/个 派出所/个 邮局/个 银行/个 生活消费设施/个
1 km   ×5 ×5 ×5 ×2 ×2 ×1
3 km ×5            
最高 5 5 5 5 2 2 6

说明:

  1. 政府机关指含有 amenity=townhalloffice=government 标签的要素
  2. 医院指含有 amenity=hospital/clinic 标签的要素
  3. 学校指含有 amenity=school 标签的要素
  4. 派出所指含有 amenity=police 标签的要素
  5. 邮局指含有 amenity=post_office 标签的要素
  6. 银行指含有 amenity=bank 标签的要素
  7. 生活消费设施指含有 shop=*cuisine=*tourism=hotel/apartment 标签的要素,即商店、餐馆、酒店及公寓

2.1.4 建筑和土地利用(20 分)

从直观感受上看,建筑和土地利用的详细程度,实际上才是决定一个城镇的地图绘制是否“精细”的关键因素。然而,诚如之前提到的,对目前中国大陆的普通乡镇而言,不宜在此方面设置过高的标准。另外,建筑要素实际上比较容易提取,该方面其他的相关统计分析应当也不少,不问就不在此赋予过高的关注了。在本文的标准中,3 km 范围内的建筑或人造物每个占比 0.1 分,1 km 范围内再加权 0.1 分,换算下来 1 km 范围内存在 60 个 建筑或人造物即可满分,这个标准不高但也不容易达到;土地利用类型按数量算和建筑有一定关联(主要指画有建筑的住宅小区通常通常也会被同时标记为居住区),因此转而按种类计算,每类占 1 分;渲染上和土地利用类型相似的自然要素、公园或体育场,以及旅游设施等也按照土地利用类型计算。

  建筑或人造物/个 土地利用/类
1 km ×0.1  
3 km ×0.1 ×1
最高 12 8

说明:

  1. 建筑指含有 building=* 标签的路径
  2. 人造物指含有 man_made=* 标签的要素
  3. 土地利用指含有 landuse=* 或 *natural=* 标签的路径,标签中每种不同的值算作一类;另外,考虑到有些不含有土地利用标签的要素也会被单独渲染,且在公众的认知中也常作为重要的土地利用或自然要素,本文将含有 leisure=*tourism=*waterway=* 标签的路径各单独算作一类土地利用
  4. 由于 1 km 范围内的要素同时也处在 3 km 范围内,1 km 范围内每个建筑或人造物的得分实际上是 0.1+0.1=0.2

2.1.5 满分标准

总地来说,一个要素完备度为 100 分的乡级行政区,其行政中心附近的要素应当满足下列标准:

可见,这样的满分标准对于中国大陆的普通乡镇来说还是挺高的,但对于大部分中小城市来说又非常地低——然而真的如此么?各位观众可以实现预期下心目中的“满分”地区有没有达到这一标准。另外要事先说明的是,这样的“满分”不代表该地区的 OSM 要素真的满足了一般公共地图对于“完备”的要求,更不代表其是社区公认的“完备”标准。如果有读者对上述标准有所疑问或是建议,欢迎在评论区和私信进行讨论。

2.2 应用实例

为方便各位社区朋友理解,本文在此挑选出了各分数段几个具有代表性的实例,说明其在上述标准下处于此分数段的原因。但要说明的是,此处的“分数”不代表本人对此区域绘图质量的认可或否定,也就是说:

  • 对于要素完备度达到 100 分的区域,本文认为其拥有足够数量和种类的基础要素,在一定程度上有“标杆”作用;但这不代表本文对该区域的绘图质量、标签规范等本文不涉及的评价标准有完全的认可,请各位绘图者仔细甄别

  • 对于要素完备度不足 100 分的区域,本文认为其在基础要素的数量和种类上需要某种程度的查漏补缺,但这不代表本文对相关绘图者工作有所批评;每个 OSM 贡献者都是宝贵的,每个贡献者有自己独特的兴趣也是非常自然的事情 (包括本文的作者在内)。无论其贡献多少、贡献在哪个方面,都是填补中国大陆地区的空白的一份力量

  • 本文的要素完备度是基于 2025 年当前的 OSM 中国大陆社区发展状况,以及本文作者的主观目标设定的指标,因此并不客观,和其他采用了不同标准的类似研究也不能直接比较;不过,考虑到这方面的需求,本文会将统计时使用到的 .osm 存档于 GitHub,有兴趣的朋友可以用来测试自己设计的评价标准,考察下结果有何不同

注:该章节仅描述本文发表时(2025 年 12 月)各地区的要素完备程度,若未来的读者发现链接中地区的情况与描述不符时,请留意该区域内各要素的变更历史

2.2.1 分数段实例:100 分

这个分数段的乡级行政区占全体的 1%,主要是城市中心的街道,仅有少数几个乡、镇类型的行政区上榜。

例 1:宿迁市宿豫区皂河镇/深圳市南山区招商街道/襄阳市樊城区汉江街道

  • 兼具绘图质量和要素完备程度的城市案例,各类要素的完备程度远远超出了本文设立的满分标准

例 2:北京市通州区中仓街道/吕梁市离石区凤山街道/张掖市甘州区东街街道

  • 要素完备程度刚好达到了本文满分标准的城市案例,也是较能说明本文讨论的“完备度”并非绘图完善程度的区域

例 3:连云港市东海县张湾乡/潮州市饶平县三饶镇

  • 要素完备程度达到本文满分标准的乡镇案例,可以用来回答“中国大陆目前完备度最高的非城市区域是怎么样的情况?”这个问题

2.2.2 分数段实例:95–98 分

这个分数段的乡级行政区占全体的 2%;达到该分数段的区域,单从绘图的详细程度上讲可能不弱于满分段的部分案例,离满分标准通常只差一两个社区内的 Mapper 不常画的要素,例如邮局或派出所。

例 1:武汉市武昌区积玉桥街道/广州市荔湾区冲口街道

  • 大型城市的中心,各类要素基本齐全,前者离满分标准差一个生活消费设施和一个加油站,后者离满分标准差一个邮局

例 2:泰州市泰兴市延令街道/茂名市信宜市东镇街道

  • 小型城市的中心,各类要素基本齐全,前者离满分标准差一个派出所,后者离满分标准差一个邮局和一个生活消费设施

2.2.3 分数段实例:70–80 分

这个分数段的乡级行政区占全体的 8%,其对道路交通和土地利用的标注通常仍然满足标准,但对各类 POI 和建筑的标注的缺失变得明显,行政节点和关系没有被恰当标记的情况也开始出现。

例 1:杭州市余杭区良渚街道

  • 大型城市的外围,道路和用地类型的标注较为完备,但缺少学校、医院以外的设施,严重缺少 POI
  • 由于是在大型城市的外围,3 km 范围内仍然搜索到了不少建筑

例 2:大同市平城区开源街道

  • 中型城市的外围,用地类型的标注较为完备,但小型道路的数量不足,严重缺少 POI 和建筑,1 km 范围内的建筑甚至缺少到了个位数
  • 该街道有“开源街道”“开源街街道”两个常用名称,但没有设置相应的 alt_name 标签,导致其被判定为行政节点不存在

例 3:宜宾市筠连县巡司镇

  • 有国道和铁路经过的乡镇,道路、建筑、用地和自然的的标注都相对完备,但和城市相比起来数量较少,同样严重缺少 POI

2.2.4 分数段实例:20–40 分

这个分数段的乡级行政区占全体的 39%,是中国大陆大部分乡镇的常态,其通常会有县道及以上的大型道路经过,并绘制有一定种类的小型道路和河流、山峰等自然要素,另外还有标示乡镇中心范围的住宅用地等。

例 1:吉林市吉林高新技术产业开发区新北街道

  • 城郊例子,存在大型道路和小型道路,存在工业用地、河流和树林、存在下级村庄的名称,完全没有公共和商业设施

例 2:韶关市武江区江湾镇/陇南市两当县鱼池乡

  • 乡镇例子,存在大型道路和小型道路,存在住宅用地、河流和树林、存在下级村庄的名称,完全没有公共和商业设施

2.2.5 分数段实例:<20 分

这个分数段的乡级行政区占全体的 6%,其通常至少有个节点和道路,但缺少除水域以外的其他要素;不过有些出乎意料的是,在调研的九个省市内,连道路都不通、完全“一片空白”的乡镇还真不好找,看来道路还是中国大陆范围内里最受欢迎的 OSM 内容之一。

例 1:盐城市滨海县八巨镇

  • 省道经过的平原乡镇,有节点、水域且小型道路相对丰富的例子

例 2:丽水市景宁畲族自治县家地乡

  • 县道尽头的山区乡镇,有节点、水域且自然要素相对丰富的例子

例 3:巴中市通江县胜利乡

  • 仅有三级道路和河流经过的乡镇

3 统计结果

注 1:方便起见,本章节的“全国”均指先期工作中涵盖的 9 个省/市,并非完整的全国范围的统计结果

注 2:本章节展示的行政边界及行政关系均来自于中国国家地理信息平台,与 OSM 的绘图标准会有所差异;平台数据的时效推测是在 2019 年前,一些拆分后新设立的行政区(如杭州市钱塘区)的平均数据会被映射到拆分前的行政区上,另外一些新设立的行政区(如温州市龙港市)则缺少对应数据,还请各位见谅

注 3:本章节对县/市及更高等级的平均完备度计算方式为简单平均,县/市的行政等级上未排除”黑区“,乡级行政区的上级单位以行政代码为准;然而,由于国家地理信息平台不提供”黑区“的行政边界,因此会出现章节 3.3 中列出的县/市级”黑区“未在章节 3.2 中出现的情况,同样请各位见谅

3.1 完备度的总体分布

从直方图上看,完备度的总体分布较为均匀、合理(至少像是难度较大的课堂测试中会得到的分布)全国乡镇平均完备度得分为 47.68,各省(不含北京市)的平均完备度得分则在 39 到 58 之间。完备度得分的高峰在 35 分左右。得分在 98–100 分的乡级行政区,同时即各位社区同好最为活跃的地区,则占全体数量的 2.5%,主要由各大城市中心区域的街道组成。

观察各类别要素的得分,可以看出道路交通是全国乡镇要素中最为完备的一个类别,缺失最为严重的则是公共和商业设施。具体到各个类别:

  1. 行政节点和边界:全国约 30% 的乡级行政区划有完整的 place 节点和行政关系;只有 place 节点,但缺少行政关系的乡级行政区则占到了 65%;另有 5% 的乡级行政区因各种因素而没被恰当标注
  2. 道路交通:全国约 25% 的乡镇中心接近了本文设立的满分标准;余下分数段的频率分布较为均匀,但在 20 分前后分化成两个群体,其分别代表在单纯的公路以外有无标注相关交通设施的乡镇,各占约 40%
  3. 公共和商业设施:全国仅有约 3% 的乡镇中心标有数量充足的公共和商业设施,而有约 57% 的乡镇在此方面是完全的“一片空白”,另有约 22% 的乡镇只标注了常见的政府机关、医院和学校
  4. 建筑和土地利用:该类型的数据分布呈现两级分化,约 20% 的乡镇中心有充足的建筑和用地类型,但占比达 51% 的完备度在 8 分及以下的乡镇则只被标注了用地类型而缺少建筑

3.2 完备度的空间分布

3.2.1 北京市

除去作为首都的特殊因素,北京在地理条件上其实颇具中国大陆地级市的典型特征:位居平原的中心市辖区,以及外围的丘陵山地各县(尽管现已改制为区)。从区划数量上看,北京共有 343 个乡级行政区,大致是省会城市的 2–3 倍,且高度集中在城市中心区域。因此,北京市内达到满分标准的乡级行政区数量是全国最多的,共有 32 个。当然,除去数量差异,北京地区和其他地区的绘图者的兴趣差异可能也是原因之一。城市中心之外,昌平、大兴等各区仍有待完善,尤其是存在感最为薄弱的平谷区。受这些相对“偏僻”的乡镇影响,北京乡镇的平均完备度为 77.47,仅相当于珠三角一带的平均水平。公共和商业设施的缺失是主要原因,但除此之外,乡级行政关系的缺失也是北京相对于珠三角和苏南各市的一个弱点。

3.2.2 广东省

广东整体的要素完备度领先全国各省,其下辖各地级市的要素完备度整体都有较高水平,主要体现在行政关系和道路交通方面。然而,在此之上,公共和商业设施,以及建筑和用地类型,决定了地级市之间的完备程度的相对差距。深圳以 91 的分数取得了全国地级行政区平均完备度的榜首,除了各类要素确实齐全之外,相较于北京、上海、广州这样的大城市还有着管辖面积较小,没有乡村包袱的特殊原因。和珠三角各市同时超出省内平均水平的有粤西的江门市和粤东的汕头市,地处山区的韶关市、清远市和河源市的下辖各县则是全省要素最不完备的区域,急需补充各类建筑、用地以及设施。

3.2.3 江苏省

江苏整体的要素完备度仅次于广东,虽然没有如深圳这样面积小又精的地级市,但胜在面积较大的苏南各市下辖乡镇都有不错的完备水平。和广东的情况类似,江苏各市的行政关系和道路交通都较为完备,缺少的是公共和商业设施以及建筑和用地类型。值得称道的是,当地 OSM 爱好者的日常维护使得位于苏北的宿迁市市辖区有明显超出周边地区的完备水平。江苏急需补充的地区主要是苏中、苏北各县的下辖乡镇。

3.2.4 浙江省

浙江整体的要素完备度较粤、苏差了半档,主要原因在于浙南的金华、丽水两市的下辖乡镇拉低了平均水平。与前两个省份中完备度较低的乡镇相比,丽水的乡镇在建筑和用地方面的缺失颇为严重。另外,行政节点和行政边界的缺失也是拉低浙江整体完备度的重要原因,其中仅温州市文成县就有 11 个乡镇(如大峃镇、周壤镇等)未匹配到相应的行政节点。

3.2.5 甘肃省

甘肃整体的要素完备度恰好和全国平均水平相当,比较意外的是甘肃的各地级市中心的要素完备水平都还不错,如兰州、天水、张掖和定西,没有特别明显的地域差异。市区外的各个乡镇的基础要素相对匮乏,但也就只是和苏、粤两地完备度较低的区域相当,产生区别的原因在于甘肃各市的市区较小、街道类型的乡级行政区不多。甘肃也有不少需要补充的行政关系。

3.2.6 吉林省

吉林整体的要素完备度也和全国平均水平相近,但内部差异较甘肃更大。朝鲜族聚居的延边、白山的完备度水平接近苏南、浙北各市,随后是长春、吉林两大城市。然而,吉林的中部、西部地区,如白城、四平、松原等,其乡镇则严重缺少行政关系、建筑、用地和 POI ,“空白”区域连绵成片

3.2.7 山西省

山西整体的要素完备度较甘肃、吉林又低了一挡,区别在于山西没有成片的、完备度较高的区域,全省各市的完备度相对均匀地偏低。各市的人口密集区完备度都尚可,人口密集区外的乡镇则都接近“空白”,因此决定平均水平的是各市下辖的县乡行政区数量。具体到各市,阳泉市因其较小的管辖面积而位居山西完备度榜首,随后是省会太原,临近北京的大同完备度也相对较高。晋西北的忻州、朔州、吕梁三市是山西 OSM 要素最为匮乏的区域,其中公共和商业设施的匮乏尤其严重。

3.2.8 湖北省

湖北整体的要素完备度在先期调查的 9 个省市中位居倒数第二,这是有些让作者意外的结果。从空间分布上,可以看到湖北“强省会”战略的显著成果:武汉市以 70.82 的平均完备度超过苏州、杭州,但排名第二的黄石则直接到了 47.73,差距之大为各省之最。不过在武汉以外,黄石、襄阳、天仙潜三县和宜昌的城区也有很高的完备度,尤其是襄阳城区的完备水平远超过了本文的满分标准。观察得分构成,除了之前提到过的建筑、用地、公共和商业设施,以及行政关系以外,道路数量的缺失成为了新的显著问题。湖北的“空白”区域遍布全省,广大的江汉平原及四周山区上,是远在全国平均线之下的“空白”乡镇。

3.2.9 四川省

四川的整体情况和湖北有些相似,同样有成都这样的“强省会”,且不是一般地“强”:在建成面积位居全国前列的条件下,成都四环内的平均完备程度甚至在北京之上 。在成都之后,自贡这样较为完备、下辖面积又较小的地级市还补上了档次之间的空白。然而,四川的乡级行政区是全国最多的,仅按本文统计到了其中的 3101 个乡镇(政府公布的统计名单上有 4633 个),就比位居第二的河北多了接近一半。因此,即便个别市镇中心较为完备,大量填满背景的“空白”乡镇也将四川的平均完备度拉到了全国最低的位置 (当然,感觉上更加空白的贵州等省还没有被纳入统计,大家可以预测下贵州处在哪个位置)。另外,川西高原各市的平均完备度甚至稍高于川东岭谷各市,这可能有川西高原各市的乡镇主要集中在干线公路附近且少数民族聚居、所受关注度较高的原因。

3.3 完备度最高/最低的重点地区

各省县级行政区平均完备度的 Top 5:

排名 北京市 广东省 江苏省 浙江省 甘肃省 吉林省
1 东城区
98.65
广州市越秀区
97.11
宿迁市宿迁经济技术开发区
94.00
杭州市上城区
93.43
兰州市城关区
96.28
长春市南关区
89.86
2 西城区
95.87
深圳市福田区
97.00
南京市秦淮区
93.92
杭州市拱墅区
91.78
临夏回族自治州临夏市
87.31
延边朝鲜族自治州延吉市
88.01
3 石景山区
92.78
深圳市南山区
96.38
南京市玄武区
91.86
嘉兴市嘉善县
91.44
兰州市安宁区
85.21
长春市朝阳区
83.30
4 海淀区
92.10
肇庆市端州区
95.00
苏州市姑苏区
89.51
杭州市西湖区
91.17
兰州市七里河区
85.09
延边朝鲜族自治州珲春市
79.62
5 丰台区
90.54
广州市海珠区
94.89
无锡市梁溪区
88.78
宁波市江北区
89.00
兰州市西固区
82.58
长春市长春高新技术产业开发区
79.28
排名 山西省 湖北省 四川省
1 太原市迎泽区
89.36
武汉市江汉区
96.46
成都市成华区
95.64
2 阳泉市城区
86.50
武汉市江岸区
89.18
成都市锦江区
95.18
3 长治市潞州区
82.31
武汉市武昌区
88.71
成都市金牛区
94.31
4 太原市杏花岭区
81.75
黄石市铁山区
86.00
成都市青羊区
93.58
5 大同市平城区
77.07
襄阳市樊城区
84.23
成都市武侯区
92.93

各省县级行政区平均完备度的 Bottom 5:

排名 北京市 广东省 江苏省 浙江省 甘肃省 吉林省
5 门头沟区
68.08
河源市和平县
31.96
连云港市灌云县
29.72
温州市泰顺县
27.16
酒泉市玉门市
31.97
白城市镇赉县
29.76
4 密云区
67.90
清远市阳山县
31.95
徐州市邳州市
28.62
丽水市龙泉市
25.77
酒泉市金塔县
31.66
辽源市东辽县
26.79
3 房山区
65.33
河源市连平县
28.69
徐州市贾汪区
28.51
丽水市庆元县
25.09
武威市古浪县
30.75
松原市长岭县
25.48
2 延庆区
63.48
河源市龙川县
28.41
盐城市射阳县
27.68
丽水市景宁畲族自治县
21.29
张掖市民乐县
28.32
长春市农安县
23.72
1 平谷区
50.52
河源市东源县
27.60
徐州市沛县
27.48
温州市文成县
19.91
张掖市临泽县
27.81
四平市梨树县
21.98
排名 山西省 湖北省 四川省
5 运城市万荣县
25.36
恩施土家族苗族自治州来凤县
22.56
达州市万源市
25.05
4 吕梁市岚县
24.52
宜昌市当阳市
22.16
内江市资中县
25.04
3 运城市闻喜县
24.44
宜昌市远安县
21.97
巴中市通江县
24.98
2 吕梁市交口县
24.36
黄冈市罗田县
21.84
甘孜藏族自治州炉霍县
23.95
1 吕梁市兴县
24.18
咸宁市通城县
19.94
乐山市沐川县
23.79

4 总结

回到开头的几个问题,中国大陆的乡镇“空白到了什么程度?看到这里已经可以得出一个定量化的答案——即便是在先期试验中的 9 个省市,在并不算高的完备标准下,依然仅有 2.5% 的乡级行政区能达到接近满分的标准,全体样本的平均得分则仅 47.64,且这 9 个省市中已经涵盖了北京、广东、江苏等热点区域,真实的全国平均数据还会更低。大部分城市建成区外的乡级行政区的完备度得分都在 20–40 之间,仅有节点、道路和河流要素被绘制在 OSM 中。

接下来要回答的问题则是:哪些要素的缺失情况最少,哪些要素的缺失情况更加严重?这个答案相信符合大家的直观感受:行政关系和道路的缺失情况最少,公共和商业设施的缺失情况最为严重。按照满分标准,全国有 30% 的乡级行政区有完整的行政关系,有 25% 的乡镇中心有接近满分标准的道路和交通设施,有 20% 的乡镇中心有较为充足的建筑和用地类型,但仅有 3% 的乡镇中心标注有足够的公共和商业设施;相对地,按照零分标准,大部分乡镇在其他标准下多多少少都有一些得分,真正的“一片空白”在乡镇中心非常罕见——至少基本都有道路连接和居民用地的标注——但有高达 57% 的乡镇中心没有标注任何的公共和商业设施,如政府机构、医院、学校、商店等。

最后的问题则是,中国大陆的“空白”区域主要分布在哪些地方?(可能会有人说:“任何地方”,某种意义上乡镇以外的“乡村”确实是这样)只看乡镇中心的完备度分布,尽管上面提到的要素在全国范围内的缺失是普遍的,但我们确实能在调查样本中找到一些更加显眼的、少有人关注的连片“空白”区域,例如:

  1. 山西:西北部的吕梁、朔州
  2. 吉林:中西部的白城、四平、松原
  3. 江苏:中北部的盐城、连云港、徐州
  4. 浙江:南部的丽水、温州
  5. 湖北、四川全省

至此,感谢您阅读这篇稍微有些冗长的报告,欢迎各位留言反馈。希望这能作为 2026 年的新年礼物给社区同好们作为一些参考,也期待能在明年的年度报告中看到不一样的新气象,谢谢!


Danh Mục Các Đường Dây 500kV Hiện Hữu

Danh Mục Các Đường Dây 500kV Hiện Hữu 1. Đường dây 500kV Bắc-Nam mạch 1 Chiều dài: 1.487 km 3.437 trụ tháp sắt Từ: trạm biến áp 500kV Hòa Bình Đến: trạm biến áp 500kV Phú Lâm Khởi công: 5/4/1992 Đóng điện: 27/5/1994 Công suất truyền tải thiết kế: 600 – 800 MW Sản lượng điện truyền tải hàng năm: ≈ 2.000 GWh Tổng mức đầu tư: 5.488,39 tỷ đồng (~ 544 triệu USD) 2. Đường dây 500kV Bắc-Nam mạc

Danh Mục Các Đường Dây 500kV Hiện Hữu

1. Đường dây 500kV Bắc-Nam mạch 1

Chiều dài: 1.487 km

3.437 trụ tháp sắt

Từ: trạm biến áp 500kV Hòa Bình

Đến: trạm biến áp 500kV Phú Lâm

Khởi công: 5/4/1992

Đóng điện: 27/5/1994

Công suất truyền tải thiết kế: 600 – 800 MW

Sản lượng điện truyền tải hàng năm: ≈ 2.000 GWh

Tổng mức đầu tư: 5.488,39 tỷ đồng (~ 544 triệu USD)

2. Đường dây 500kV Bắc-Nam mạch 2

Chiều dài 1.596,3 km

4 dự án độc lập: Pleiku - Phú Lâm, Pleiku - Dốc Sỏi - Đà Nẵng, Đà Nẵng - Hà Tĩnh và Hà Tĩnh - Nho Quan - Thường Tín.

Khởi công: Đầu năm 2002

Đóng điện: 19/4/2004, 30/8/2004, 23/5/2004 và 23/9/2005

Công suất truyền tải thiết kế: 1.300 – 1.500 MW

Tổng mức đầu tư: 7.510 tỷ đồng (~ 476,7 triệu USD)


About 4 years of buildings import in Belgium

The Belgian OSM community is importing buildings from governmental data into OSM for some years now. In December I was supposed to present a analysis about this process regarding the import of buildings data from the PICC, the source of data for the Walloon region.

Unfortunately I got sick and I could not present. Anyway, here are some key numbers about this process not only for Wallonia

The Belgian OSM community is importing buildings from governmental data into OSM for some years now. In December I was supposed to present a analysis about this process regarding the import of buildings data from the PICC, the source of data for the Walloon region.

Unfortunately I got sick and I could not present. Anyway, here are some key numbers about this process not only for Wallonia but for Belgium.

The big picture

In Belgium, there are 3 different sources of government data for buildings, each one for the 3 regions of Belgium: Flanders, Wallonia, Brussels. All these sources are integrated in what we call the “building import tool”: the web application buildings.osm.be. People who want to use this tool are encouraged to learn about the import process and to conflate (merge) with existing buildings. In many places indeed, there are already buildings in OSM and integration of every single imported building with existing ones is the preferred way, rather than “delete and replace”. We also ask to not blindly trust official data and to always look if current data in OSM does not bring interesting added value in terms of accuracy and/or local knowledge. After all, it is one of the key force of OpenStreetMap.

What are the lessons

Having imported thousands of buildings myself in the past 3 years using this tool, I found some weird situations in the government data: oddities in house numbering, strange shapes of buildings compared to aerial imagery, etc. Honestly, these are very rare situations, but still it might be interesting to report it to the administration. What is more frequent are update of buildings compared to official data: during the import, by comparing with the aerial imagery or local knowledge, one can find some new buildings, or demolished ones, or some changes in the building outline.

For other opinions, see this thread: https://community.openstreetmap.org/t/feedback-about-the-buildings-import-process-for-the-picc/138241

Some numbers (and a map)

A total of 3,564,874 buildings were imported into OSM in Belgium using the building import tool. It is nearly half of the total number of buildings in OSM in Belgium. Also, before the import tool was set up, a lot of buildings were manually drawn (or semi-manually using some JOSM plugin) from the governmental WMS imageries. So actually even more buildings in OSM somehow come from governmental data. On the other hand, using the import tool, contributors actually replaced/added tags into already existing OSM buildings. So it is hard to tell without further analysis the exact part of buildings that comes from official data.

Without looking at the histories of OSM objects, it is rather difficult to count the number of users who have imported buildings using the tool. By looking at the tag “source:geometry:ref”, 175 contributors have imported (or edited after someone else’s import) at least 100 buildings. The top 10 contributors have imported about 67% of the total imported buildings. This is often observed in OSM (and in other crowdsourcing project): a small amount of users makes the most of the contributions.

Here is a map of the imported buildings colored by the top ten contributors.

Imported buildings in OpenStreetMap in Belgium by contributors

Nowadays, there are still some streets with missing buildings, roughly drawn building blocks without addresses in some city centres, but the places with missing buildings tend to disappear. Yet, in the future, adding new buildings, tagging demolished ones and updating building geometries across the country will remain necessary.


Project Description/ Pseudo-code Status of linked lakes to wikidata in Sweden(Part 2)

In regards that the tool wiki.openstreetmap.orgdata.link works best with smaller administerey areas I will break it down on the municipality level(Kommun in Swedish) we have 290 in Sweden.

Goal:

To be served a table which have the following data:

municipality(kommun) Amount of linked lakes Total amount of lakes Precentage Total

In regards that the tool https://wiki.openstreetmap.orgdata.link works best with smaller administerey areas I will break it down on the municipality level(Kommun in Swedish) we have 290 in Sweden.

Goal:

To be served a table which have the following data:

municipality(kommun) Amount of linked lakes Total amount of lakes Precentage
Total amount of municipality(kommun) Total amount of linked lakes Total amount of lakes Total Precentage

Main category of all lakes in Sweden on sv.wikipedia.org:

The catgory I will use to get total amount of lakes in each municipality(kommun)

Kategori:Insjöar i Sverige efter kommun

Approach

I will then query each municipality(kommun) using Sophox in the SPARQL language on each municipality(kommun) (by name). I will then get a list of QID of all the wikidata lakes that I then can use to ask Sophox if any element has that wikidata QID. If anyone has that

Acknowledged drawbacks/limitations of this strategy:

  1. This database query will not detect cases which multiple elements in OSM has the same QID. The tool https://wiki.openstreetmap.orgdata.link will make you aware of this but not i a table which can give you an overview. For that it is best to update the code at that project, see issue #680 I created in it´s repostory.

Where does the data off the lakes come from in wikidata?

They are inported some time the last 10 years from the national database of lakes and bodies of water called VISS Bots created the articles on Swedish wikipedia from this database and this is the reason we now can link the data from OSM to the wikipedia articles through the wikidata QID on the https://wiki.openstreetmap.org/wiki/Tag:water=lake polygons(enclosed ways/areas and multipolygons).

Why didn´t I just use the Overpass Turbo API?

You may ask why I just didn´t query the Overpass API to get how many water=lake polygons also had a wikidata tag vs no wikidata tag? There could have been new very small lakes which where mapped in OSM which is not present in VISS(not a lake in the eyes of VISS/the government) and in extension wikipedia/wikidata. This projects goal is to show as many maplinked great polygons from OSM in the infoboxes on the lakes, to be able to motivate people to use https://wiki.openstreetmap.orgdata.link and track progress in doing so!

Presentation:

I will publish the Sophox query here in the diary and also try to pitch the creator for https://wiki.openstreetmap.orgdata.link to implement it the search tab for . Type: administrative. I will also publish the it as a Soppbox example.


Cool Tools that I am/should start using

Merry Christmas! Part 1

Hi! I’m @likeToTravel, and I suck at writing, so I’m gonna go straight to the point:

THE LIST Pascal Neis Stuff:
  • OSMviz. I use this to visualize my changes because I am so dumb, I don’t understand OSMCha (hence, you won’t find OSMCha on my list). To see a changeset, go to the link and add the changeset number after ?c= in the link. Or, ju

Merry Christmas!


Part 1

Hi! I’m @likeToTravel, and I suck at writing, so I’m gonna go straight to the point:

THE LIST

Pascal Neis Stuff:

  • OSMviz. I use this to visualize my changes because I am so dumb, I don’t understand OSMCha (hence, you won’t find OSMCha on my list). To see a changeset, go to the link and add the changeset number after ?c= in the link. Or, just go to…
  • Find Suspicious OpenStreetMap Changesets. This is very useful to find changesets that asked for help. You can also have a link directly to that changeset’s OSMviz or Achavi page.
  • How did you contribute to OpenStreetMap? (aka hdyc). Cool because you can visualize any user’s stats.
  • OSMstats. It’s cool because it has a lot of stats, for lack of a better word.
  • OSMfight. Funny :)

Overpass & other:

  • Overpass Turbo. I use this to create challenges on MapRoulette, which is cool, but it also has some other interesting uses.
  • Achavi. Better version of OSMviz! Basically the same, even the link thing I was talking about with the changeset number.
  • OSM Buildings. It’s just cool.
  • OSM Lane Visualizer. This helps me a lot with understanding any tag that starts with turn, especially https://wiki.openstreetmap.org/wiki/Key:turn:lanes& https://wiki.openstreetmap.org/wiki/Key:turn:lanes:*.
  • Go Map!!. OSM Editor for iOS and iPadOS! I don’t use Android, so this is my best option. The UI is weird, and you really need to know your tags if you want to map here, but apart from that, it can also do GPS Traces, which works insanely well with Shortcuts (it is an app).

Honorable Mention

To my hikers, OSM Destination Signs.


Mappatori a Palermo?

Sono entrato da poco nel magico mondo di open street map, e sto cercando di mappare il mio quartiere in maniera più precisa possibile di capirne sempre di più, ma non posso fare altro che chiedermi sono solo a mappare nella mia città? esistono mappatori di Palermo con i quali è possibile scambiare opinioni e consigli ?

Sono entrato da poco nel magico mondo di open street map, e sto cercando di mappare il mio quartiere in maniera più precisa possibile di capirne sempre di più, ma non posso fare altro che chiedermi sono solo a mappare nella mia città? esistono mappatori di Palermo con i quali è possibile scambiare opinioni e consigli ?

Thursday, 25. December 2025

OpenStreetMap User's Diaries

Trying to gather statistics using Sophox on Swedish lakes which have wikidata tags within administrative boundries (Part 1)

I´m trying to start a project to learn SPARQL to be able to get on how many of the 63 00 lakes which are in swedish wikipedia/wikidata has their wikidata tag on the OSM element. If the OSM element contains the wikidata tag we can show the proper zoomed polygon in the template sidebar on the articles in all their glory, instead of just a coordinate from wikidata. Mall:Insjöfakta Sverige is the t

I´m trying to start a project to learn SPARQL to be able to get on how many of the 63 00 lakes which are in swedish wikipedia/wikidata has their wikidata tag on the OSM element. If the OSM element contains the wikidata tag we can show the proper zoomed polygon in the template sidebar on the articles in all their glory, instead of just a coordinate from wikidata. Mall:Insjöfakta Sverige is the template which makes this possible, please share it for other purposes to use the maplinked feature on other WMF Wikipedias than sv.wikipedia.org!

https://en.wikipedia.org/wiki/Wikipedia:Why_mapframe_maps%3F

Part 2


There's No Place Like Home

Honestly, I have been reading everybody’s diary entries and diving in and looking at all the different areas and detail and I forgot how I even got here! NO idea but I am very intrigued I do not know how much I will have to contribute but I’m determined to figure this all out! I’m fresh meat here amd have never heard of openstreetmap until I landed in the middle of Nigeria very far from home…saf

Honestly, I have been reading everybody’s diary entries and diving in and looking at all the different areas and detail and I forgot how I even got here! NO idea but I am very intrigued I do not know how much I will have to contribute but I’m determined to figure this all out! I’m fresh meat here amd have never heard of openstreetmap until I landed in the middle of Nigeria very far from home…safe travels and Merry Christmas from Michigan 🇺🇸💋

Love and Light Aphrodite888


Mapmas Day 24: Silo-ence of the Lambs

I was doing some Unmapped Small Town USA work this evening, and realized that I had tagged a bunch of probable grain silos in other areas as buildings, specifically in Arbela, MO, and Granger, MO, so I’ve gone back in and corrected those to more accurately reflect their purpose. Apologies to Arbela and Granger!

Otherwise, Dover, KY showed up on Unmapped Small Town USA. There’s some great

I was doing some Unmapped Small Town USA work this evening, and realized that I had tagged a bunch of probable grain silos in other areas as buildings, specifically in Arbela, MO, and Granger, MO, so I’ve gone back in and corrected those to more accurately reflect their purpose. Apologies to Arbela and Granger!

Otherwise, Dover, KY showed up on Unmapped Small Town USA. There’s some great progress already, but still more to do, so I’m taking advantage of some holiday downtime to fill in more buildings.

Otherwise, I hope you have a lovely Christmas Eve, if that is your custom, and a lovely Christmas Day, if that is your custom. If not, I hope you have a very Merry Thursday. :)


নাগা বাজার ও কাতিলা সবুজ সংঘ হাই স্কুল ও কলেজ: একটি কেন্দ্রীয় এলাকা

নাগা বাজার রাজশাহী জেলার বাগমারা উপজেলার কাতিলা গ্রামের একটি গুরুত্বপূর্ণ বাজার। নাগা বাজার থেকে প্রায় ১৬০০ মিটার দূরে অবস্থিত কাতিলা সবুজ সংঘ হাই স্কুল ও কলেজ, যা স্থানীয় শিক্ষার্থীদের জন্য উচ্চ মাধ্যমিক ও কলেজ পর্যায়ের শিক্ষা প্রদান করে।

বাজার ও স্কুলের ঘনিষ্ঠ অবস্থান এলাকার শিক্ষার সাথে বাণিজ্যিক কার্যক্রমকে সংযুক্ত করে। এই দুই কেন্দ্রের ম্যাপে Node ও Area হিসেবে যোগ করা OSM ব্যবহা

নাগা বাজার রাজশাহী জেলার বাগমারা উপজেলার কাতিলা গ্রামের একটি গুরুত্বপূর্ণ বাজার। নাগা বাজার থেকে প্রায় ১৬০০ মিটার দূরে অবস্থিত কাতিলা সবুজ সংঘ হাই স্কুল ও কলেজ, যা স্থানীয় শিক্ষার্থীদের জন্য উচ্চ মাধ্যমিক ও কলেজ পর্যায়ের শিক্ষা প্রদান করে।

বাজার ও স্কুলের ঘনিষ্ঠ অবস্থান এলাকার শিক্ষার সাথে বাণিজ্যিক কার্যক্রমকে সংযুক্ত করে। এই দুই কেন্দ্রের ম্যাপে Node ও Area হিসেবে যোগ করা OSM ব্যবহারকারীদের জন্য এলাকাটিকে সহজে চিহ্নিত ও বোঝার সুযোগ তৈরি করে।


নাগা বাজারের পার্শ্ববর্তী প্রশাসনিক কেন্দ্র: ১৫ নং যোগীপাড়া ইউনিয়ন পরিষদ

১৫ নং যোগীপাড়া ইউনিয়ন পরিষদ বাগমারা উপজেলার কাতিলা গ্রামের এলাকায় অবস্থিত। এটি নাগা বাজার থেকে প্রায় ১৫০০ মিটার দূরে অবস্থিত। ইউনিয়ন পরিষদ স্থানীয় প্রশাসনিক কার্যক্রমের কেন্দ্র হিসেবে কাজ করে। এখানে ইউনিয়নের বিভিন্ন সরকারি সেবা, নথি, পরিকল্পনা ও নাগরিক সেবা প্রদান করা হয়। নাগা বাজারের সাথে ঘনিষ্ঠ অবস্থানের কারণে এটি এলাকার মানুষের দৈনন্দিন জীবন ও বাণিজ্যিক কার্যক্রমের জন্য গুরুত্বপূর্ণ।<

১৫ নং যোগীপাড়া ইউনিয়ন পরিষদ বাগমারা উপজেলার কাতিলা গ্রামের এলাকায় অবস্থিত। এটি নাগা বাজার থেকে প্রায় ১৫০০ মিটার দূরে অবস্থিত। ইউনিয়ন পরিষদ স্থানীয় প্রশাসনিক কার্যক্রমের কেন্দ্র হিসেবে কাজ করে। এখানে ইউনিয়নের বিভিন্ন সরকারি সেবা, নথি, পরিকল্পনা ও নাগরিক সেবা প্রদান করা হয়। নাগা বাজারের সাথে ঘনিষ্ঠ অবস্থানের কারণে এটি এলাকার মানুষের দৈনন্দিন জীবন ও বাণিজ্যিক কার্যক্রমের জন্য গুরুত্বপূর্ণ।

Wednesday, 24. December 2025

OpenStreetMap User's Diaries

Contribution à Surveillance sous Surveillance

Suite à la découverte du projet “Surveillance under Surveillance” grâce à @apitux, je cartographie les systèmes de videoprotection et de videosurveillance dans le Haut-Mâconnais.

Pour voir le résultat (impressionnant) : suivre de lien.

Suite à la découverte du projet “Surveillance under Surveillance” grâce à @apitux, je cartographie les systèmes de videoprotection et de videosurveillance dans le Haut-Mâconnais.

Pour voir le résultat (impressionnant) : suivre de lien.


Sam Wilson

What's a barge board?

Fremantle
2025 December 24 (Wednesday), 3:58PM
· OSM · canals ·

The Llangollen Canal had a bit of a failure the other day. I read somewhere (and annoyingly can't find it now) that there was a hurry to drop the barge boards into place up and down stream, to stop the canal completely emptying between locks. On one side the lock is quite close (it's s

Fremantle

· OSM · canals ·

The Llangollen Canal had a bit of a failure the other day. I read somewhere (and annoyingly can't find it now) that there was a hurry to drop the barge boards into place up and down stream, to stop the canal completely emptying between locks. On one side the lock is quite close (it's somewhere around this location but the BBC doesn't like making maps). OpenStreetMappers are pondering how to map these places of stoppage, whether barrier=stoplogs is good. So, are they stop logs or barge boards or something else? (I could just look it up of course, but I thought I'd just put words out into the void of the old internet instead.)

← Previous

My main RSS news feed: https://samwilson.id.au/news.rss
(or Wikimedia.rss, Fremantle.rss, OpenStreetMap.rss, etc. for topic feeds).

Email me at sam samwilson.id.au or leave a comment below…


OpenStreetMap User's Diaries

330 Tân Long B ,Tân Dân ,Đầm Dơi ,Cà Mau

Số nhà

Số nhà


Weird and cool

It is both weird and cool to see the map of my community change in apps I use regularly. Before I started actively updating things in OSM I didn’t recognize all the places OSM is used.

It is both weird and cool to see the map of my community change in apps I use regularly. Before I started actively updating things in OSM I didn’t recognize all the places OSM is used.


Another year of Ultra

Last November, I [Re]Introduced Ultra v3 which introduced a bunch of new features. Today, I’m happy to share what’s changed in Ultra over the past year.

Since my last update, I’ve implemented the following features in Ultra:

  • Many new styling features enabled by continued MapLibre updates
  • Sprite support updates
  • A new Overpass/OSM XML&JSON-to-GeoJS

Last November, I [Re]Introduced Ultra v3 which introduced a bunch of new features. Today, I’m happy to share what’s changed in Ultra over the past year.

Since my last update, I’ve implemented the following features in Ultra:

  • Many new styling features enabled by continued MapLibre updates
  • Sprite support updates
  • A new Overpass/OSM XML&JSON-to-GeoJSON conversion library
  • More basemap styles & style previews
  • More export options
  • Transforms
  • More providers
  • An “Open with Ultra” bookmarklet

🌍 MapLibre updates

In January of 2025, Ultra updated to the freshly released MapLibre v5, introducing globe support! View Example

Since then, further MapLibre changes have enabled a host of new styling features including:

📍 Sprites

I’ve added two sprite-related features to facilitate map styling:

SVG Support

You can now reference SVGs by URL in icon-image, just as you can reference PNGs by URL. This works well with inline data: URLs to create fill patterns:

View query on Ultra

Emojis

I’ve also added Noto Emojis to the list of sprites bundled with Ultra. Use the emoji: namespace and a short name from https://projects.iamcal.com/emoji-data/table.htm.

Here is an example query that renders each country with its flag:

View Example

🤖 osm2geojson-ultra

At some point, I found myself wanting support for Overpass-derived elements. This led to me forking osm2geojson-lite and creating osm2geojson-ultra. This replaces osmtogeojson in Ultra to convert Overpass responses to GeoJSON for use with MapLibre.

Here is a quick rundown of the differences between the three libraries:

feature osmtogeojson osm2geojson-lite osm2geojson-ultra notes
speed 🚂 🚃 🚅 benchmarks
out geom  
out center  
convert/local/make  
tainted object detection  

For more details and how to use osm2geojson-ultra in your own JavaScript projects, see the GitHub Repo.

Using derived objects support, I was able to create this query for making transit maps with Ultra:

View query on Ultra

🎨 Styles

Stadia Maps has kindly offered their styles for use on Ultra, including those from Stamen Design.

I’ve also added a more visual style picker so you have an idea of what each style looks like without having to actually load it:

💾 Export options

The single-function download button has been replaced with an export dialog that also allows you to copy GeoJSON to your clipboard or export the created MapLibre style.json for use on other sites.

💫 JavaScript Transforms

For a long time, I’ve wanted to be able to use Turf.js to mutate the GeoJSON rendered by an Ultra query. I’m stoked to share that I’ve figured out a way to integrate that! You can now specify a transform YAML front-matter config param to run arbitrary JavaScript on your query’s results.

It must consist of the source code for a JavaScript module with a default export of a function that accepts a GeoJSON FeatureCollection (the query result) and returns one too.

For example, this is a transform that does nothing:

transform: "export default data => data;"

But for a more interesting example, here is a query that renders the triangulated irregular network of a set of gunshot detectors and filters out edges that are too long:

View query on Ultra

To load 3rd party libraries, use a cloud JS Module CDN like esm.sh.

⚙️ More Providers

javascript

Since I’d built the JavaScript sandbox for transform support, I figured I should support “bring your own query provider” by implementing a JavaScript provider!

Similar to transforms, it must be a JS module that exports a function named source which returns a MapLibre Source.

Here is an example query I wrote this fall to find playgrounds along the route of my family’s first big roadtrip with our 1-year-old:

View query on Ultra

dsv

Ultra now also supports CSV&TSV powered by csv2geojson.

This powered a super early version of MapRVA’s Yesterdays project using a Google Sheet!

postpass

When Frederik Ramm announced Postpass, I was excited because the API returns GeoJSON and Ultra actually supported it out-of-the-box:

I have since added a new postpass provider that is configured by default to use the GeoFabrik instance of Postpass.

View Example

New BBox shortcut

Since Postpass is PostGIS and bboxes must be specified differently, I’ve introduced a new flexible way to express bounding boxes in Ultra queries. Like {{bbox}} it is wrapped in double curly braces, but inside those braces can be any combination of the letters w,n,e,&s which represent west, north, east, and south respectively. These will be replaced and comma-separated.

So for example, in a Postpass query, you can use geom && ST_MakeEnvelope({{wsen}},4326) to select features intersecting your map’s current bounding box.

For more unique ways of specifying the bbox, using just a single letter allows for any (lat/lon for now, no support for using a different CRS) format, such as QLever in this Example.

esri

I’ve also added a new query provider that supports vector Esri MapServer and FeatureServer layers powered by esri-dump.

View example query on Ultra

🔖 Open with Ultra

I’ve also built a bookmarklet to easily open resources using Ultra.

It features special support for:

  • overpass-turbo.eu - Loads query & viewport from Overpass Turbo in Ultra
  • QLever - Loads query & server from QLever in Ultra
  • Sophox - Loads query & server from Sophox in Ultra
  • geojson.io - Loads the GeoJSON from geojson.io as the query in Ultra
  • Gists - Loads the current gist as the query in Ultra
  • GitHub - Loads the githubusercontent.com URL for a file loaded in the web UI

For all other sites, it loads the URL as the query.

Ultra features some query providers which work well with this:

  • osmWebsite - detects https://openstreetmap.org/[node|way|relation]/:id URLs and loads that object via the Overpass API
  • osmWiki - detects https://wiki.openstreetmap.org/wiki/Key: and https://wiki.openstreetmap.org/wiki/Tag: URLs and loads that object with that tag or key via the Overpass API
  • taginfo - detects https://taginfo.openstreetmap.org/key/ and https://taginfo.openstreetmap.org/tags/ URLs and loads that object with that tag or key via the Overpass API
  • kml - detects https://www.google.com/maps/d (Google My Maps) URLs and loads that map via the KML export.

Install it here: https://overpass-ultra.us/docs/open-with-ultra/

⏭️ Next up: an Ultra workshop at Mapping USA

Want an hour long workshop on how to use Ultra? Sign up for Mapping USA!


A Girl's Journey Through Mappin

As a principle, I’ve always tried to use open-source software over proprietary software for any of my digital needs. I’ve personally found open source to be both more accurate and more sensible to use than proprietary alternatives.

One of the very few aspects of my life that had still not adopted open source was maps. I always used both Waze and Google Maps for everything. But whenever I

As a principle, I’ve always tried to use open-source software over proprietary software for any of my digital needs. I’ve personally found open source to be both more accurate and more sensible to use than proprietary alternatives.

One of the very few aspects of my life that had still not adopted open source was maps. I always used both Waze and Google Maps for everything. But whenever I looked at the maps, it felt like something was missing. I looked around, checked the environment, and realized how much of my surroundings simply wasn’t reflected on the screen.

I wanted to fix it, but… Google Maps doesn’t allow you to just add things. And while Waze does have an editor, it’s extremely locked down for the average user. So, I looked up online alternatives.

I discovered OpenStreetMap two months ago, and I found myself in awe of the sheer amount of detail… Far more than Google Maps or Waze could offer. It just so happened that I was on a trip to Barcelona, and I was using CoMaps to navigate. Using CoMaps proved extremely reliable, especially for public transportation. I never missed a metro, I found all my destinations quickly, and it was very easy to get around.

Still riding the Barcelona high, I opened CoMaps back at home and was fairly shocked to see that my neighborhood didn’t exist at all… Where the heck is it?!

So, I got on my computer, logged into OpenStreetMap for the first time, and started using the iD editor. In just a few hours, the rough outline of my neighborhood was there.

Soon enough, I found myself mapping for hours. Even during lectures, I’d have an OSM tab open for casual mapping. Then it escalated. I started bringing my laptop everywhere I traveled to map things on the go. I began using StreetComplete to add missing metadata. I took pictures and videos. Then I started recording GPS traces. And now I’m even considering setting up a full LiDAR mapping mount for my car…

Now I sit at 16k contributions, with over 400 buildings added. My neighborhood is micro-mapped to hell, and I plan to continue this with the rest of my town.

OpenStreetMap is the best.

Saturday, 22. November 2025

Peter Reed

Six years later

The grumpy old man returns.


 

The grumpy old man returns.