Email or username:

Password:

Forgot your password?
Top-level
Ilya Zverev

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.

79 comments
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

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:

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/

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.

Ian Wagner ๐Ÿฆ€ :freebsd: :osm: replied to Ilya

@zverik @sotm @openstreetmap that was hard ๐Ÿ˜‚ at least I got a โ€œlong-time mapperโ€ score.

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.

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).

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).

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.

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/

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/

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.

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.

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

Ilya Zverev replied to Ilya

(should mention that there are TONS of nuances that don't fit into tweets.)

Two main issues with the proposal that don't make it a perfect one:

- It's too wordy, nobody would read it, despite the core idea is very simple (stop nodes).

- It challenges the current tram stop mapping (and nothing else).

The new PT schema should've been perfect in 2018 to be approved, and now it should be double-perfect, otherwise it won't pass any discussion. Everybody in OSM has their own opinion on PT mapping.

Ilya Zverev replied to Ilya

Keeping an up-to-date rendering database means relying on worldwide replication streams from osm.org or per-country streams from @geofabrik . But what if I want my own extract area?

In 2014 I dug into osm2pgsql's "slim" tables, and wrote a script to trim the data outside a given polygon:

github.com/Zverik/regional

I use it for my "veloroad" tile server, but not sure if it works: the database grows pretty fast. Maybe it's just because people are mapping more than ten years ago.

Ilya Zverev replied to Ilya

This one is new. Couple days ago I released @everydoor 5.0, and for it I made a new thing.

GeoScribble takes inspiration from OpenStreetBugs, which was where we put our OSM notes before 2013. Just a simple server with no auth and a few fast endpoints.

wiki.openstreetmap.org/wiki/Ge

The idea is, you draw lines and leave short notes on the map. Just like with walking papers.

I see it already being used in multiple countries. The layer can be added to @josmeditor and Rapid, or browsed online.

This one is new. Couple days ago I released @everydoor 5.0, and for it I made a new thing.

GeoScribble takes inspiration from OpenStreetBugs, which was where we put our OSM notes before 2013. Just a simple server with no auth and a few fast endpoints.

wiki.openstreetmap.org/wiki/Ge

The idea is, you draw lines and leave short notes on the map. Just like with walking papers.

TheStroyer replied to Ilya

@zverik @everydoor @josmeditor wow, that looks like it can improve the editing workflow a lot

Ilya Zverev replied to TheStroyer

@TheStroyer @everydoor @josmeditor

Indeed! Just last Sunday I was walking with my friends in a forest, and surveyed a few streams and boardwalks this way. They would be lost if not for the drawing feature.

Editing ways properly (e.g. in @vespucci_editor ) needs too much involvement, compared to just a single finger movement in ED.

vespucci replied to Ilya

@zverik @TheStroyer @everydoor @josmeditor why draw? just record a GPX track ...

PS: in a forest you probably want to use a DTM anyway for tracing.

PPS: not to mention that you are massively overstating the effort to simply directly add things.

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.

Go Up