Email or username:

Password:

Forgot your password?
Top-level
Ilya Zverev

So this reminds me, right around the Level0 I also finished the project I spent three months on, day to day. It introduced maps to multiple forum engines.

MapBBCode is primarily a way to mark a map data in bbcode, which is text. The hard thing was to make a series of libraries and plugins and modules to integrate it and Leaflet into engines like phpBB and FudForum.

mapbbcode.org/

And then it turned out, finding people to share supporting would be much harder.

An interactive map with a route from Saint-Petersburg to Tallinn via Border control rendered from the bbcode displayed below. It reads [map]coordinate(S); other coordinates and annotations[/map]. There are two buttons: "Update" and "Edit".
86 comments
Ilya Zverev replied to Ilya

The last editor I wanna mention is Maps.Me editor. I didn't make it all by myself, obviously, we had a brilliant team, and I just helped from sidelines.

It brought a hundred thousand new mappers to OpenStreetMap, although few of them stayed. In my few talks on this I argued it was the future of contributing: millions who don't care about the map, but bring the data.

Maps.Me got bought out, so now I recommend its fork, @organicmaps (pictured). Amazing how they still keep going. Support them.

Organic Maps place editor screenshot. Visible is a card for "Tchaikovsky" restaurant. There are names in Estonian and English, address editor ("Vene 9"), business hours field with a button to edit those, and a cuisines list.
Ilya Zverev replied to Ilya

To monitor what people were actually editing with Maps.Me, I made a tracker: MMWatch. Alas there are no living instances of it now.

The idea was to make a feed that you could easily assess with your eyes. No changesets, lots of filters, all the information presented. Basically that what I expect of modern change monitoring tools, but oh well. "Show Me The Way" did it best.

Here you could also mark suspicious edits and revert them with a button. Reverters are kind of editors too.

MMWatch screenshot, titled "OSM Edits Made With MAPS.ME". It shows several panel with statistics: "General" (total: 323123), "Top Users", "Edited Countries" (with Russia, Ukraine, and Germany leading), "Top Main Tags" (building=yes), and "Versions" (android leading). It also shows four changed objects with their tags. There are some service buttons for each change: links to changesets and users, and buttons for JOSM and Level0.
Ian Dees replied to Ilya

@zverik I was just thinking about Show Me The Way ... how could I make it better? feels like it could use a refresh now that there are so many more edits happening than when it was created ~10 years ago

Ilya Zverev replied to Ian

@ian Frankly I mostly used is as a screensaver. In that regard, it would help to better randomize edits, e.g. skip consequtive edits from the same user. When you observe for minutes how somebody maps buildings in one village, it becomes stale.

There could be a brand new project for a "starship console", the same but with walls of relevant text, and maybe better grouping, so you could see a changeset in total.

Maybe with options to focus on action, and alerts when something suspicious happens.

Ian Dees replied to Ilya

@zverik yea I was thinking about an option to put all the changes on a slowly spinning globe rather than focusing on individual changes. Maybe highlighting spots with more changes than normal? 🤔

Ilya Zverev replied to Ian

@ian Depends on the "why". For a screensaver, its value is in showing the diversity of mapping, imo. Hense the density is a downside.

For a monitoring tool, I'd first go in the way of filtering changes. Both conventional (e.g. area) and not (e.g. imports, weird buildings and roads, updates to old objects). Since it uses changes, not changesets, it could have some interesting options.

Ilya Zverev replied to Ilya

Reverting a change has been as important task in OSM as it is impossible. With geodata, there are just too many edge cases. And OSM, unlike Wikipedia, is not a set of objects which you can process independently, it is one big ball of wibbly-wobbly nodely-wayly stuff.

So I thought it might be fun to write a proper 3-way reverter myself:

github.com/Zverik/simple-rever

It doesn't get too deep in algorithms, hence it can reject a changeset, but if it works, it works 100% without conflicts.

Ilya Zverev replied to Ilya

And if doing "pip install" is too much work, there is a web version of that, ready for your changeset lists:

revert.osmz.ru/

Of course it's limited, since I don't want to overload mine or API servers.

Kamil Monicz (NorthCrab) recently published his own take on such reverter, but the usage of Google's text processing library leads to weird unreported issues when reverting geometry modifications. So be careful:

wiki.openstreetmap.org/wiki/Os

Screenshot of Revert UI. There is a box for changesets (has four big numbers filled in), a comment ("need those benches back"), and one button, "Revert these". There is also a link to a queue, and a short description text.
Ilya Zverev replied to Ilya

After OWL (look it up) died, we were left without map monitoring tools. So I wrote a backend in Perl, learnt OpenLayers and made this website.

WhoDidIt tracks node edits and groups them into small rectangles, so you can see where people changed geometries, and could subscribe to an area.

My instance did non survive the https, but thankfully Simon made a fork. Alas I can't get it to work either:

simon04.dev.openstreetmap.org/

It's definitely old, OSMCha covers all that better. But it was pretty.

After OWL (look it up) died, we were left without map monitoring tools. So I wrote a backend in Perl, learnt OpenLayers and made this website.

WhoDidIt tracks node edits and groups them into small rectangles, so you can see where people changed geometries, and could subscribe to an area.

My instance did non survive the https, but thankfully Simon made a fork. Alas I can't get it to work either:

Screenshot of WhoDidIt, taken from the Pic of the Day OSM wiki page. Shows a map with multiple colored rectangles, and some filtering buttons. There is a popup open, which shows two changesets and their node and way counts.
Ilya Zverev replied to Ilya

For a possible new version that also accounted for ways and relations, I first looked at augmented diffs. But every time I try to use them, I regret it.

So I started writing "changechange": a script that keeps track of references and enriches official osmChange files with geometries and references.

github.com/Zverik/changechange

It would not lead to 100 MB minutely diffs, like in Overpass, but enough to keep track of changes and maintain filtered extracts.

Didn't have resources to finish though.

For a possible new version that also accounted for ways and relations, I first looked at augmented diffs. But every time I try to use them, I regret it.

So I started writing "changechange": a script that keeps track of references and enriches official osmChange files with geometries and references.

github.com/Zverik/changechange

Ilya Zverev replied to Ilya

Regarding mapping statistics, we are still down to counting nodes and ways. For a mapping party in 2021 I spent three weeks experimenting with something better.

OSM Changes Counter is not well documented, but can count changes to objects of a given type, split them by city, apply weights (e.g. tagged node is worth more than a road way).

It also correctly counts roads splits and merges to output results in km — I think it's the only tool in all OSM that does that.

github.com/Zverik/osm-changes-

Regarding mapping statistics, we are still down to counting nodes and ways. For a mapping party in 2021 I spent three weeks experimenting with something better.

OSM Changes Counter is not well documented, but can count changes to objects of a given type, split them by city, apply weights (e.g. tagged node is worth more than a road way).

Ilya Zverev replied to Ilya

This one is not about OSM, but might be interesting to railway enthusiasts like me :)

GeoAlbum is a photo album with geospatial context. The script was inspired by @tmcw 's Big: keyboard navigation, data in html tags. You make an html page, include the library file, and it turns into an interactive album with numbered photos and additional layers.

github.com/zverik/geoalbum

I used it to share photos from a railway construction site along three years:

textual.ru/lk120430/

GeoAlbum screenshot, railway construction from 2014. First photo A: "Glaring nothing in 2012, concrete viaduct to nowhere in 2013, turned out almost ready: a steamroller was levelling sand embankments." Second photo B: "Here is the service road we took". To the right there are two maps: an overview with numbered photo spots, and the detail map with lettered photo locations.
Ilya Zverev replied to Ilya

In 2020 the @sotm was held online for doomsday reasons. I usually help with fun things at these conferences, so for 2020 I made an @openstreetmap quiz. Having tried it now, I'd say I made it a bit harder than I should have.

zverik.github.io/sotm2020-quiz

Being a fan of data structures, I of course made it a quiz framework, but unlike GeoAlbum, this repo got zero forks. Probably because I didn't share it much.

Today is the last day to submit your talk for @sotm 2024 btw!

2024.stateofthemap.org/calls/g

In 2020 the @sotm was held online for doomsday reasons. I usually help with fun things at these conferences, so for 2020 I made an @openstreetmap quiz. Having tried it now, I'd say I made it a bit harder than I should have.

zverik.github.io/sotm2020-quiz

Being a fan of data structures, I of course made it a quiz framework, but unlike GeoAlbum, this repo got zero forks. Probably because I didn't share it much.

Ilya Zverev replied to Ilya

I dabbled in creating map styles like ten years ago, with Mapnik and TileMill. For our local cycling community I made a style that looks excellent printed in black&white, on which we could overlay routes. It was called like the community: "Veloroad".

Trained eye could notice multiple things on it that even modern styles don't do: look at road and river names, station symbols, place visibility.

There is a working tile server, but super slow. Probably gonna take it down.

osmz.ru/veloroad.html#7/58.374

I dabbled in creating map styles like ten years ago, with Mapnik and TileMill. For our local cycling community I made a style that looks excellent printed in black&white, on which we could overlay routes. It was called like the community: "Veloroad".

Trained eye could notice multiple things on it that even modern styles don't do: look at road and river names, station symbols, place visibility.

Veloroad map style, centered on Viljandi, Estonia, zoom ~12. Visible are black and grey lines for roads, road and lake names, a railway in the style of soviet military maps. Some labels are in Russian.
Ilya Zverev replied to Ilya

Obviously running command-line tools to produce a map is not ideal for non-GIS people. So I also made a web UI to prepare route maps.

You just upload a GPX trace, adjust the printing bounds, add a scale bar if needed, and download a PDF. Another online tool would merge several PDFs into a booklet.

It's actually a set of tools underneath, some fix mapnik's SVG issues, some preprocess the values. I know of at least one business spawned from this (not mine obviously).

Screenshot of "Get Veloroad" page. To the right is a map with a blue bounding box. To the left, a set of settings for a printed maps. These include paper format, bounding box adjustment, trace file upload, scale bar, map style, and an output image format.
TheStroyer replied to Ilya

@zverik would you have preferred it would be your own company to make a product out of it? Or do you want to have a different company based on OSM?

Ilya Zverev replied to TheStroyer

@TheStroyer I don't want to run a company based on a single product, because I don't have an attention span and management skills for that :) I'm pretty fine with my tools used for business, and with this one, I helped set them up actually.

TheStroyer replied to Ilya

@zverik ah yes short attention span. That's why you have so many different projects 😂
But seriously, manh of these projects are really great. They just needs l have started just one project in OSM. And it's probably less complex than many of your projects

Ilya Zverev replied to Ilya

Ten years ago everybody made maps with Mapnik. There were several scripts that simplified the task, but all had issues. So I wrote another.

Nik4 makes preparing a map image easy. No calculations needed, just choose an area, put physical or pixel dimensions, and you got the exact map you expected.

github.com/Zverik/Nik4

There were many little features inside that removed hassles. Like partial rendering, scale factors, ppi and route fitting. And fixing cairo's SVG output.

Ilya Zverev replied to Ilya

Of course another question that was heard from every business, "how do we get the tiles". Mapnik had a sample python script packaged, but it was slow and hard to use. I'm pretty good at APIs, so I made my own.

Polytiles can render regular raster tiles for a given bbox in multiple threads. Obviously. It also can use a polygon file or a relation from OSM, it can render retina tiles, generate an mbtiles file, or just produce multiple lists for other tools.

github.com/Zverik/polytiles

Ilya Zverev replied to Ilya

Obviously setting up Mapnik locally is hard, and people wanted to download OSM tiles with a proper UI.

In 2011 I took over the development of JTileDownloader, which does exactly that. Bulk downloading was frowned upon even then. I tried to ease the load: imposed a 5 tiles/sec limit and altered downloading order to meta-tiles (8x8 tile packs).

wiki.openstreetmap.org/wiki/JT

Still, @osm_tech don't care, JTD was banned by user-agent, and people returned to anonymous bulk downloaders with no safeguards.

Obviously setting up Mapnik locally is hard, and people wanted to download OSM tiles with a proper UI.

In 2011 I took over the development of JTileDownloader, which does exactly that. Bulk downloading was frowned upon even then. I tried to ease the load: imposed a 5 tiles/sec limit and altered downloading order to meta-tiles (8x8 tile packs).

JTileDownloader java app screenshot with two panels. To the left, a pane with dozens of options, including bounding boxes, GPX file, zoom levels, tile server, and a button to download tiles. To the right, a slippy map with a box over Lithuania selected.
Ilya Zverev replied to Ilya

And back to my projects from days back, that still operate. In the same trend, seeing something and improving on it, I took Frederik's BigMap and added an online tile-stitching service.

bigmap.osmz.ru/

The UI is the same, still bad, but it's the easiest way to get a raster map for an area. And also georeferencing files for OziExplorer or QGIS. Many people use it daily.

I see how it could be made better, faster and easier, but as always, not enough time. And no alternatives haha.

Screenshot of a map, on which is overlaid a block with many controls. It says "Map is 4x3 tiles (1024x768 px) at zoom 10, aspect 1.33:1" on top. There are three 4-directional buttons: Expand, Shift, and Shrink. And four options to zoom in or out. Below there are links to download georeferencing files, perl or python scripts, or put the job into a queue.
Rihards Olups replied to Ilya

@zverik Have used this one (grabbing the generated Perl script) - thank you for this tool :)

How is georeferencing done?

Ilya Zverev replied to Rihards

@richlv Thanks for using it! Georeferencing is simple — it's tiles, we know exact locations of all corners :) Just download a WLD file and put it near the image.

Rihards Olups replied to Ilya

@zverik Ah, is this a usecase like "download tile files locally and use them as a georeferenced layer"?

I'm only doing OSM in an amateurish way, thus these GIS things are another world for me =)

Ilya Zverev replied to Rihards

@richlv Yes, exactly. A good alternative to adding a live OSM layer and re-downloading tiles every time something moves.

Rihards Olups replied to Ilya

@zverik Neat, thank you for the explanation. Maybe one day I'll find time to dig more into these topics :)

Ilya Zverev replied to Ilya

When belgian OSM guys made the Welcome Tool in 2016, I set up an instance for Russia and started welcoming people.

I sent a few hundred messages, and after promoting the tool, some other mappers did too.

Alas the response rate was like one percent.

And when I got replies, sometimes I wished I hadn't.

But without welcoming messages, people in OSM feel themselves in a vacuum. There are still no links to communities anywhere on osm.org.

Here's the global WT instance: welcome.osm.be/

Screenshot of a "New OSM Contributors in Russia" web page. There's a short instruction on logging in, and a big button "Log in with OSM". The footer says, "An OpenStreetMap Russia project. Source code available. Powered by neis-one.org."
Eugene Alvin Villar 🇵🇭 replied to Ilya

@zverik maybe you have some suggestions on how to improve openstreetmap.org/communities ? One idea being floated around is to embed the OSM Community Index map somehow in that page. (The list of local chapters is already dynamically based on the index.)

#OpenStreetMap

Ilya Zverev replied to Eugene Alvin Villar 🇵🇭

@seav Start with a big bold link to the forum on the "Communities" page!

Generally I'd take the hint from the iD editor. It does a pretty good job of listing links after you upload a changeset.

Luis Villa replied to Ilya

@zverik ooof I feel that one. Have started making my first contributions in years (because I realized I can add bike racks) but it might as well be posting into the void.

Ilya Zverev replied to Ilya

Today, brownouts start for OAuth1a endpoints. In a month, only OAuth2 can be used.

One of my services using OAuth1 is OSM Authentication Proxy. Since storing passwords is bad, and OAuth sometimes is too hard to implement (you need a browser!), I made this proxy.

Essentially it's a website that says "yes, the person with the token is indeed an OSM user". It doesn't upload anything to OSM API.

I thought of using it for command-line tools and plugins, but ended up not.

auth.osmz.ru/

A screenshot of a logged-in website "OpenStreetMap Authentication Proxy" for user Zverik. It shows a lengthy description of the service. The master token is hidden, while three temporary tokens are listed.
Ilya Zverev replied to Ilya

Command-line applications have a hard time with OAuth, because it requires a browser. The auth flow has so many steps, it was much easier to just give up and use Basic Auth with a password.

Taking a hint from a Google's library, I made cli-oauth2: a Python library that makes authenticating a one-line task.

github.com/Zverik/cli-oauth2

Fun fact: the idea came when I was rewriting Level0 for command-line. Didn't get it to work (yet haha), but there's one less problem to solve.

Ilya Zverev replied to Ilya

This one came up yesterday, while preparing for @organicmaps GSoC student work.

When developing an editor, you need to work with OSM Sandbox, a dev copy of API with no data. Sometimes it's frustrating because complex data is where an editor breaks. Usually I downloaded an OSM extract in JOSM, fixed ids, and uploaded it to the Sandbox, but on the 100th time I gave up.

github.com/Zverik/osm_to_sandb

This script helps you transfer a bbox worth of data in two commands, one of which is pip install.

This one came up yesterday, while preparing for @organicmaps GSoC student work.

When developing an editor, you need to work with OSM Sandbox, a dev copy of API with no data. Sometimes it's frustrating because complex data is where an editor breaks. Usually I downloaded an OSM extract in JOSM, fixed ids, and uploaded it to the Sandbox, but on the 100th time I gave up.

Organic Maps replied to Ilya

@zverik Does the script also change IDs? What does "fix ids" mean? For readers' info, Organic Maps Editor doesn't store IDs and doesn't rely on them.

InsertUser replied to Organic

@organicmaps
I'd guess it flips them to be negative and resets any version numbers so that the dev server recognises them as new and assigns IDs to them rather than rejecting them as unknown.
@zverik

Ilya Zverev replied to Organic

@organicmaps To upload objects to the sandbox, you need to give them negative ids and keep the references. This is not related to OM, just a low-level API stuff.

Ilya Zverev replied to Ilya

Okay I skipped three days, so here are three tweets on a big thing I did at Maps.Me. It's on the deep end of the iceberg.

In short, I was tasked with bringing subway networks to the app. Which was based on OSM data, so naturally I thought how to fix the data model: every city had its own tagging schema.

To monitor the process, I wrote the validator, which now powers @organicmaps :

cdn.organicmaps.app/subway/ind

Alexey later improved it, a lot. Now there are over 300 cities, all uniformly mapped!

Okay I skipped three days, so here are three tweets on a big thing I did at Maps.Me. It's on the deep end of the iceberg.

In short, I was tasked with bringing subway networks to the app. Which was based on OSM data, so naturally I thought how to fix the data model: every city had its own tagging schema.

"Subway Validation Results. 305 of 308 networks validated without errors. To make a network validate successfully please follow the (link) metro mapping instructions. Commit your changes to the OSM and then check back to the updated validation results after the next validation cycle, please. See (link) the validation instance description for the schedule and capabilities". There is also a map link, and a long list of countries, mostly in green, each having 1 to 15 cities with subways.
Ilya Zverev replied to Ilya

It was made possible with planning, iterating, and preparing a detailed tagging schema that incorporated most tagging practices:

wiki.openstreetmap.org/wiki/Me

It started as a proposal, which failed the voting. Then I made another proposal, but didn't have the nerve to go through voting the 2nd time.

But also I noticed how most objections come from just a few people in EU, so I just started tidying up networks in many cities, and when we passed 80 (with help of other OSMers), it became the standard.

It was made possible with planning, iterating, and preparing a detailed tagging schema that incorporated most tagging practices:

wiki.openstreetmap.org/wiki/Me

It started as a proposal, which failed the voting. Then I made another proposal, but didn't have the nerve to go through voting the 2nd time.

Hand-drawn schema of a complex subway station. There are two platforms with two intersecting lines. Each platform has overground exits, and some escalators.
Ilya Zverev replied to Ilya

At that point I was ready to tackle the general public transport schema. After all, PTv2 is impossible to route over and a pain to use.

So, with experience in processing PT data for routing and validation, I generalized it for all kinds of transport, and presented at @sotm in Milan:

wiki.openstreetmap.org/wiki/Pr

Technically it's flawless. It has full backward compatibility, easy to map, tagging is pretty and conscise.

But at that point I got burnt out at my job and couldn't make the final step.

At that point I was ready to tackle the general public transport schema. After all, PTv2 is impossible to route over and a pain to use.

So, with experience in processing PT data for routing and validation, I generalized it for all kinds of transport, and presented at @sotm in Milan:

wiki.openstreetmap.org/wiki/Pr

"Stop Areas and Groups": three pictures denoting correct and incorrect ways of grouping stop elements into stop_area relations.
rugk replied to Ilya

@zverik
Hmm giving out tokens on a HTTP site does not sound secure, does it?

Ilya Zverev replied to rugk

@rugk yeah I decided not to set up certificates given nobody uses the service :)

Simon Poole replied to Ilya

"There are still no links to communities anywhere on osm.org." @zverik every time you use iD and then there's a whole very visible tab dedicated to the subject openstreetmap.org/communities

Ilya Zverev replied to Simon

@simon *every time you upload a change in iD — which is a pretty long way to a link.

On the tab there's a list of Local Chapters, essentially legal entities. Works for a business, too much for a person. I just want a link to a forum at least, or that localized panel from iD ideally, visible at all times on the main page.

Andy Allan replied to Ilya

@zverik @simon I intend to make much more use of the OCI integration into openstreetmap-website, but I'm juggling a lot of different things.

I would like it so that when you set your home location, you see the list of local communities (taken from OCI) on your dashboard.

Fla replied to Ilya

@zverik @organicmaps OrganicMaps makes it easy to *add* a place, but I never found how to *edit* one.

Organic Maps replied to Fla

@fla @zverik select a place and press Edit Place button at the bottom. Just make sure you have the latest maps data.

Fla replied to Organic

@organicmaps @zverik

I dont have any Edit button. I am correctly logged in my OSM account. My build is 2024.03.31-8-FDroid but it was also the case with all the previous version.

Mikkel Roald-Arbøl replied to Organic

@organicmaps @fla @zverik I also don’t have an Edit button on iOS. On the newest Testflight version 2024.03.31 (7).

Ilya Zverev replied to Mikkel

@roaldarboel @organicmaps @fla Edit button is not shown if maps are older than three months. Could you plz check that your maps are updated?

Fla replied to Ilya

@zverik @roaldarboel @organicmaps

Ah, indeed, that's the reason! Well, would have been better to still display the button but then explaining that maps have to be updated first.

Go Up