r/openstreetmap

NEED HELP ?

NEED HELP ?

I don't know who update my area osm .. THANK U SO MUCH 😭♥️ I NEED HELP ALSO HOW TO ADD PLAYGROUND AREA ...

u/Gaurab5034 — 16 hours ago

It's insane how you can’t even tell the changes but this took me like 4 hours

And there's still so much to do

u/FrancoPantoja — 23 hours ago

Is there a technical or design reason why projection choices are still missing from the main OSM website?

I’ve been wondering why the main OSM website still uses Mercator without any other projection options. OSM is one of the best global mapping projects, but the default view still shows the world in a heavily distorted way.

It would be great if the main site allowed users to switch between several projections, even with just a few simple options. I also think a globe view should become the default presentation of OSM. A globe feels much more natural for a worldwide map and better represents the planet without the crazy distortions of the Mercator.

Is there a technical or design reason why projection choices are still missing from the main OSM website?

u/Wihros — 1 day ago

Added 797 motorcycle parking bays to London OSM using council FOI requests

I've been sending Freedom of Information requests to London councils asking for their motorcycle parking bay data, then uploading the missing bays to OpenStreetMap.

So far: 240 from Camden (open data), 69 from Tower Hamlets (FOI), 313 from Lambeth (FOI), 171 from RBKC (FOI, with BNG coordinates converted via pyproj). Plus 4 from personal surveys. Total: 797 bays added.

The process: download council data, run a gap-finder script comparing council bays against Overpass, geocode any streets without GPS coordinates via Nominatim, spot-check 6 random bays on Google Maps, then upload via JOSM.

Spot-check accuracy has been 94-100% across all four boroughs. Council data is surprisingly reliable since they use it for enforcement.

The data powers a free motorcycle parking finder at parkmoto.london, but more importantly it's all on OSM for anyone to use.

Still waiting on FOI responses from Islington and Southwark. Happy to share the FOI template if anyone wants to try this approach for other data types.

reddit.com
u/Astreon_dev — 3 days ago

I've just heard about Open Street Maps and my mind is completely blown

Wow. How did I go 33 years through life without hearing about this? It's like a better, more practical google maps in every sense of the word. I have so many questions though -

- Does publishing changes made to Open Street Maps publish immediately, for all to see? If so, how does Open Street Maps prevent against trolls/bots randomly making some nonsense edits and publishing it, just to mess with everyone? Or does that just generally not happen, because the only people who know about OSM are cool and nice people?

- How come people use google maps? This seems so much better and more accurate...

- It's using a LOT of RAM in my browser, is there any "low power" setting I can enable for it to run faster?

Thank you so much!!

reddit.com
u/LightcraftStudio — 4 days ago

Overpass Turbo style help

I wanna search for all Hanover Square and make them black and Water street red, but unfortunately everything is red. If I remove both node and relation on both of em, it suddenly works. I'm kinda confused, can someone help?

u/meenzerloewe — 2 days ago

MapToPoster Online: Turn Your Favorite City into a Professional Art Poster

https://preview.redd.it/m7cadeekr02h1.png?width=1672&format=png&auto=webp&s=a77025efbafa71b2b2ae7c3d196017598ab0b2a2

Map posters are a fascinating type of visual work: they take a city’s roads, waterways, green spaces, and other geographic elements and re-render them as decorative art — rather than simply screenshotting an ordinary map.

I came across a Python CLI project called maptoposter that generates city map posters with some really interesting results. But command-line tools still have a bit of a barrier for most users: you need to install Python, set up the environment, run commands, and then go find the output file.

So I built a web version: MapToPoster Online. It’s a browser-based implementation of the maptoposter concept, designed so that users can open a webpage, choose a city, adjust the theme and fonts, and then export a city map poster suitable for printing or use as a wallpaper.

What It Does

MapToPoster Online fetches geographic elements — roads, bodies of water, green spaces, and more — from OpenStreetMap and other data sources, then re-renders them in a poster style. Current features include:

  • Select a city and generate a map poster
  • Adjust map radius, theme, colors, fonts, and layout
  • Export in multiple sizes: A4 portrait, A4 landscape, square, mobile wallpaper, desktop wallpaper, and more
  • 300 DPI output for print-ready quality
  • 20 built-in themes
  • Upload custom TTF/OTF fonts
  • UI available in English, Chinese, Japanese, Korean, German, Spanish, and French
  • Browser IndexedDB caching — repeated generation of the same city is significantly faster

https://preview.redd.it/zzqx0wkrr02h1.png?width=1270&format=png&auto=webp&s=52a4f80812c8dc9a51a95be1a09c7ea3dfe277c0

https://preview.redd.it/cy0ajwkrr02h1.png?width=1270&format=png&auto=webp&s=d6cd2ba09b395b0a4cbce7bcafbeb8f243345122

The Real Challenge: Large-Scale Map Data in the Browser

The core challenge of this project isn’t “drawing a few lines” — it’s handling sufficiently large map datasets entirely within the browser.

Take Tokyo at an 18km radius as a benchmark: road features alone can exceed 560,000 elements, with the raw GeoJSON coming in at around 40MB. GeoJSON is human-readable, but it’s fundamentally a mass of deeply nested objects. When the browser has to parse, transform, and transfer all of that, noticeable stuttering is almost inevitable.

If you went the traditional route, the pipeline would look roughly like this:

  • Receive GeoJSON from the API
  • JSON.parse
  • Convert to an array of objects in JavaScript
  • Pass to a Worker
  • Pass to WASM
  • Deserialize into structs in Rust
  • Finally, render

Each step seems reasonable on its own, but stacked together they get slow fast. In early optimization logs for this project, JSON.parse alone was blocking the main thread for 3 to 5 seconds, leaving the UI completely unresponsive. Passing complex objects between JS and WASM also carries overhead, since it creates a large number of intermediate structures across two runtimes.

This is one of the reasons the project uses Rust/WASM for rendering: offloading large-scale geometric computation and drawing to a more controlled memory model, while minimizing JavaScript’s exposure to complex object graphs.

https://preview.redd.it/uvz1vscwr02h1.png?width=1774&format=png&auto=webp&s=a79085da3985e173015b9895578e94739600cd37

The Approach: Flatten Map Data into Contiguous Memory as Early as Possible

The core idea now is to create as few complex JavaScript objects as possible and to flatten geographic data into contiguous memory as early in the pipeline as possible.

Complex GeoJSON gets converted into a Float64Array with a structure roughly like this:

[total_features, type_1, point_count_N, x1, y1, ..., xN, yN, type_2, point_count_M, ...]

The benefits: data can be transferred between threads as a Transferable Object, avoiding large object copies; and the Rust/WASM side can read sequentially by offset, without needing to reconstruct a pile of nested structs.

The project evaluated binary serialization options like MessagePack — essentially a more compact alternative to JSON that reduces text-parsing overhead. But if you still need to deserialize into large numbers of objects afterward, the bottleneck doesn’t go away.

The more effective direction turned out not to be “swap JSON for another format,” but to reduce objects altogether: keep data as contiguous arrays as it moves between JS, Worker, and WASM.

https://preview.redd.it/78brxs3yr02h1.png?width=1672&format=png&auto=webp&s=1701c78d66e81c10a226094ace2072ca07808da7

Sharded Parallelism: Splitting Data at Road Boundaries

Map projection is fundamentally a math-heavy operation over a large number of coordinate points. Individual roads are independent of each other, which makes the problem highly parallelizable.

The project splits the large binary buffer into multiple shards at road boundaries and distributes them across parallel Workers.

You can’t just cut at fixed byte offsets. A road is a polyline, and cutting through the middle of one would produce broken segments during rendering. So before sharding, the code scans the index to locate each road’s boundaries, and uses those to determine where each shard begins and ends.

In the Tokyo 18km benchmark, early Worker parsing and processing took around 6.5 seconds. After switching to binary data with 4-core sharding, that dropped to roughly 0.95–1.05 seconds.

https://preview.redd.it/b3ysrkkzr02h1.png?width=1536&format=png&auto=webp&s=cff37d43f55e7eaa7ac33e13a0fe8693d51e701a

The WASM Renderer: Single-Pass Classification

There’s a subtle but impactful optimization in road rendering: don’t scan the same dataset multiple times for different road types.

The naive approach might scan once for motorways, once for primary roads, once for secondary roads, once for residential roads — easy to reason about, but the same memory block gets traversed repeatedly.

The current approach does a single pass: as each road is read, it’s dispatched directly to the corresponding PathBuilder based on road type. One traversal handles all classification, reducing memory bandwidth usage and improving CPU cache behavior.

In the project’s optimization logs, WASM core rendering time came down from roughly 12 seconds to 7.25 seconds, with single-pass classification being one of the key contributors.

Pitfall 1: 300 DPI Isn’t Just Scaling the Canvas Up

When building print output, it’s tempting to think “just multiply the resolution” and call it done. A4 at 300 DPI gives you a very large canvas.

But once the canvas is larger, the original stroke widths look wrong. In early versions, residential roads, tertiary streets, and similar minor roads were nearly invisible in high-resolution output. The root cause: stroke widths weren’t compensated for output resolution.

The fix was to tie road widths to the export scale. Different road classifications still maintain their relative thickness, but the overall widths need to scale with the output. Otherwise the preview looks fine, and the moment you export at high resolution, the side streets vanish.

Pitfall 2: The Overpass API Isn’t a Reliable “Big Data Endpoint”

Map data primarily comes from OpenStreetMap, queried via the Overpass API for roads, water, and green spaces.

Overpass is powerful, but it wasn’t designed for “unlimited large-radius map poster generation at scale.” Once the query area gets large, you start hitting timeouts, busy nodes, and failed responses.

A few measures help reduce failure rates and wait times:

  • Automatically split large query areas into smaller chunks
  • Concurrently request multiple Overpass mirror nodes and use the fastest response
  • Cache fetched data in IndexedDB so subsequent generation of the same city skips the network
  • At large radii, reduce precision on some road types to cut down on sub-pixel detail that doesn’t meaningfully affect the output

These don’t eliminate network issues entirely, but they make the tool substantially more usable in real browser environments.

Pitfall 3: Browser-Side Caching Deserves Serious Attention

For a given city and radius, users are very likely to iterate through themes, colors, and fonts repeatedly. Re-fetching map data on every render would make for a poor experience and put unnecessary load on public APIs.

The project uses IndexedDB to cache map data. Processed city data is compressed and saved locally; on subsequent generation, it’s read directly from cache. This means when users are adjusting styles, the wait is dominated by rendering — not re-downloading the same OSM data over and over.

Current Architecture

Simplified, the full pipeline looks like this:

https://preview.redd.it/q9u7lro2s02h1.png?width=1024&format=png&auto=webp&s=03c37abd588f21b645b53c6de61dc80604fc4931

Tech stack:

  • React 19 + TypeScript + Vite
  • Tailwind CSS v4 + Radix UI
  • OpenStreetMap / Overpass API / Protomaps
  • Rust + WebAssembly + tiny-skia
  • Web Worker
  • IndexedDB
  • Paraglide JS for i18n

Known Limitations

There are currently two notable constraints.

  • Generation for large cities or large radii can still be slow, particularly depending on Overpass node availability. Sharding, parallelism, and caching help, but the data source’s network state remains an uncontrollable variable.
  • OSM data completeness varies by city. In some areas, water, green space, or POI data may be sparse, which affects the final output quality.

What’s Next

The next area I want to focus on is finer control over map elements — things like POIs, road classification visibility, and water styling. The tool already generates usable city map posters, but if it’s going to handle a wider range of cities and aesthetic preferences well, granular control will matter a lot.

If you’re interested in GIS, map rendering, WASM performance optimization, or online design tooling, feel free to give it a try — and issues are very welcome.

reddit.com
u/Zealousideal_Rip3541 — 3 days ago

Remapped the Circuito Internazionale Napoli in Sarno, Campania, Italy

You can see the mapped place here. This time I edited the old circuit path instead of deleting it and remaking it from scratch like I did last time. A few details are missing, but it's way better than before!

u/NVT_06 — 4 days ago
▲ 454 r/openstreetmap+2 crossposts

[OC] I built a free tool that maps real Minneapolis zoning into the 11 official CS2 zone types — open source, works for any city

>Hey !

After spending way too many hours trying to build a 1:1 Minneapolis in CS2, I got frustrated guessing where Mixed Housing should go and which corridors are actually high-density commercial vs just stripes of Low Density Business. So I built a tool that pulls real-world zoning data from OpenStreetMap and classifies every block into the exact 11 zones CS2 has in the painter.

**What it gives you:**

A scrollable dark-mode map of any city, color-coded by the zones you'd actually use in-game:

🟢 **Residential (6):** Low Density Housing, Medium Density Row Housing, Medium Density Housing, Mixed Housing, Low Rent Housing, High Density Housing
🔵 **Commercial (2):** Low Density Business, High Density Business
🟣 **Offices (2):** Low Density Offices, High Density Offices
🟡 **Industrial Manufacturing**

For Minneapolis specifically that's 81,732 polygons. You can pan/zoom around and check "ok this corridor is Mixed Housing in real life, so I should zone it the same way in my build."

**Things I learned the hard way:**

  1. CS2's "Mixed Housing" doesn't exist as a clean tag in OpenStreetMap. People tag the apartment building as one polygon and the shop/restaurant inside it as a separate node. My first version found 3 Mixed Housing polygons in all of Minneapolis (lol). After switching to an Overpass spatial join (`around.comm:5`), it found 123. Big difference.

  2. I tried to fill OSM coverage gaps using Microsoft's satellite-derived building footprints (5M+ buildings in MN alone). It mostly worked but classified suburban houses near a Target store as "commercial" because my logic was naive. Script is still in the repo with a known-bug caveat if anyone wants to fix it.

  3. Leaflet's default SVG renderer chokes at 80k+ polygons. Switching to Canvas (`preferCanvas: true`) was the difference between unusable and fluid.

**How to use it:**

Clone, run `uv run extract_zoning.py`, open the visualizer. Whole thing takes 5 minutes if you have Python. If you want a different city, just change the bounding box — no code changes needed.

**New in v3.1**: Now also includes a **Road Network module** — 108,825 OSM roads classified into 6 CS2 categories (Highway / Major / Minor / Local / Pedestrian / Bike). Toggle modules on/off with the new pill UI to compare zones-only vs roads-only vs overlay views.

Happy to answer questions. Genuinely curious if anyone uses this for their own 1:1 build.

u/Kingleyend — 5 days ago
▲ 12 r/openstreetmap+1 crossposts

Is the recommended 360° camera for contributing to Panoramax still GoPro MAX?

I've seen this model being recommended as the best choice as recent as a year ago. However, when I went to compare cameras online it seemed to me that similarly priced competitors from Insta360 and DJI vastly outperform GoPro in terms of megapixels (72/120 vs. 29) and image resolution when taking still photos (5952/7760 rows vs. 2752v1/3840v2). GoPro seems to have an advantage when it comes to high-FPS action video, but that's not what is valueable for this project.

I know GoPro (at least the first model) has a GPS module, but is it really better in resolution than whatever data comes from the smartphone?

Are there other reasons to prefer GoPro? Maybe better anti-distortion measures?

reddit.com
u/Qwert-4 — 3 days ago

micromapped a neighborhood in Zurich, Switzerland

today was my first time actually going to a place to note all missing information in OSM and marking it on the map afterwards, and even though this took many hours, I actually think it was really fun!

map

u/midgril — 4 days ago

Why am I getting textured terrain in one section of OSM? Type in 'Du Toit's Peak' and you'll see it.

u/saigon567 — 4 days ago
▲ 9 r/openstreetmap+1 crossposts

What is that

This is an aerial photograph taken in France. The track on the left is used for the motorcycle test (plateau exam), but what is the track on the right?

I already saw that at other locations in France, with the same shape : 2 large white lines at the start and the end, the one at the end is slightly curvy; many white points in beetween.

I hope someone on the internet knows what's this track (in order to tag it correctly in OSM).

u/YBau62 — 4 days ago

How to handle parking space on private property?

Total noob here who just downloaded StreetComplete and the closest quest was the parking lot of my apartment complex. It wanted me to verify what type of parking space it is: parking garage, open lot etc. None feels fine, because it's private property? You need to live here in order to be able to park?

So I'm wondering: how is parking spaces supposed to be handled? It feels wrong to have a private parking space listed as parking lot on a map.

Edit: I've gotten help. Thank you all. 💛

reddit.com
u/Rojikoma — 6 days ago

How to name a path when multiple paths (routes) overlap?

This park near me has two different (current) maps of the same paths. A bit confusing. It looks like Buttonbush trace and Green Heron way overlap. How should I name the overlap section?

Buttonbush trace is much long and goes around the perimeter of the whole park and green heron way is just around the norther section. Thanks!

u/Kyrie-25 — 6 days ago

Spent the afternoon micromapping a wastewater treatment plant in Brazil

Mapped clarifiers, oxidation ditches, settling basins, ponds, service roads and surrounding vegetation at a wastewater treatment facility in Camaçari.

First pic is after editing, second is before. For some reason, Reddit won’t let me add captions to images on mobile.

u/Kantv — 7 days ago
▲ 0 r/openstreetmap+1 crossposts

I turned an old monitor into a connected map frame controlled from my phone

Hey everyone 👋

I’ve been working on a side project that turns maps into a connected wall art display for the living room.

The idea is simple:
- a screen mounted like a picture frame
- a minimalist city map displayed full screen
- everything controlled from a phone

The display itself is passive — no menus or UI on the screen — designed to feel more like a living decor object than a TV.

From the phone, you can:
- change the city
- customize themes/colors
- adjust zoom and labels
- create different ambiances

The prototype currently runs on:
- an old monitor / TV
- a mini PC
- a local web app

Built on top of the open source project Terraink + OpenStreetMap.

I’m experimenting with:
- smooth map transitions
- travel routes
- ambient gallery mode
- day/night themes
- “memory places”

Trying to create something between:
digital art, travel memories, and interactive home decor.

Would love feedback 👀
Would you put something like this in your home?

u/Fragrant-Cover8009 — 6 days ago
▲ 5 r/openstreetmap+2 crossposts

Help me make my pond real

Ok so I have this pond that for some reason has NOT been on pokemon go and I’m trying to figure out why it isn’t there and how I can put it there. It’s a pretty big body of water so it should show up, I want water spawns too because I like water types and anyways it’s nice to have. I did noticed that there’s lines going through it on OpenStreetMaps as compared to other bodies of water nearby so maybe that means something. Please help if you can.

u/Space_Goop — 7 days ago

How should i tag these?

While micro-mapping, I’ve found these low wood fence-like objects, acting like a bollard. these are pretty common around Australia, just wondering how i should tag this

u/braopol48 — 7 days ago