Email or username:

Password:

Forgot your password?
Top-level
Ilya Zverev

Since we're mentioning @josmeditor , here's one thing I made a long time ago:

josm.ru/

Yeah, that's a proper landing page (in Russian), with a few buttons, shortcuts to most important pages like a forum thread or a tag list, and a tutorial video.

I even browsed the changelog and added interesting changes to the feed, but stopped in 2020. I still use the page to download updates though.

24 comments
Ilya Zverev replied to Ilya

I'm a bit out of breath, but def not out of projects :) Gonna keep doing this until I get an answer from NLNet.

In 2010 Microsoft granted to OSM permission to trace Bing imagery. It was the only detailed imagery layer we had in Russia, so that enabled making a validator that found illegal imagery usage (google / yandex):

vakhtyor.osmz.ru/

Basically it watched where people uploaded buildings and checked for available Bing imagery.

In 2014 we got Mapbox layer, and I turned this off.

Ilya Zverev replied to Ilya

There are different kinds of imports. Safest are those done by hand, but also the dirtiest, in my opinion: it's easy to miss or to get lazy and just press upload.

For towns and villages, the best source we had was GNS, an american database of toponyms. I converted it to OSM format and wrote a short manual on copying it onto the map:

gns.osmz.ru/

Interesting that while box=yes parameter doesn't work on osm.org nowadays, parameters minlat, maxlat etc still do.

SK53 replied to Ilya

@zverik Still loads of redundant GNS tags on place nodes in Ireland (probably imported by Dermot - mackerski). Until the townlands project got going they were still the major source of places in rural Ireland. Still a lot of dedup & other cleanup needed.

I also did a bit with them for Pakistan, but never could trust the data in a country where the population had increased so much : sk53-osm.blogspot.com/2011/03/ (probably should correct GNIS->GNS

Ilya Zverev replied to SK53

@SK53 yeah, what felt a good idea in 2011, not that much now :)

Ilya Zverev replied to Ilya

So, imports. When I was working at Maps.Me, many companies asked if we can put them on the map. So I made another thing.

OSM Conflator takes a data source and carefully merges it with OSM data, with a way to update it later.

wiki.openstreetmap.org/wiki/OS

While it can take a plain JSON with tags, it is most powerful with profiles: Python scripts that control the behaviour.

It can export a preview GeoJSON and has other ways of adhering to the guidelines. Alas, few people had enough skill to use it.

So, imports. When I was working at Maps.Me, many companies asked if we can put them on the map. So I made another thing.

OSM Conflator takes a data source and carefully merges it with OSM data, with a way to update it later.

wiki.openstreetmap.org/wiki/OS

While it can take a plain JSON with tags, it is most powerful with profiles: Python scripts that control the behaviour.

Ilya Zverev replied to Ilya

Having a GeoJSON to preview an import is good, but how to suggest amendments?

That's why I made CF Audit: an interactive website to go through changes one by one, cross-reference them, and fix anything wrong.

Those fixes are kept for consequent imports with OSM Conflator, so less work next time.

audit.osmz.ru/

I know RocketData iterated on it for their operations, and there's a new IFS fork by @sfkeller team: cfauditgui.geoh.infs.ch/

Ilya Zverev replied to Ilya

So I got the conflator, and I got the audit tool, and the entire pipeline as shown on the picture. Did I use it?

Oh did I even. 5k Walmart supermarkets, tens of thousands Shell fuel stations, ~10k addresses in Moscow, various restaurant and shop chains... It all worked perfectly.

Of course it was just a few imports. I envisioned an automated system for high volume of data, still controllable by OSMers, but nobody asked for that, and I didn't have time.

Still, mentioned it at SotM EU 2023.

Ilya Zverev replied to Ilya

OSM Cards is a postcrossing thing for OpenStreetMap members. You get a person's postal address, write them a few encouraging words on a postcard and add a 5-letter code. When received, they type those letters in a form, and the connection is set up.

I announced this website at SotM 2020 and got a few beautiful cards. I lived in Minsk back then and printed like 50 postcards with the city map to send out — and now idk what to do with them :)

Send me one if you like: osmcards.org/profile/bqh2on123

OSM Cards is a postcrossing thing for OpenStreetMap members. You get a person's postal address, write them a few encouraging words on a postcard and add a 5-letter code. When received, they type those letters in a form, and the connection is set up.

I announced this website at SotM 2020 and got a few beautiful cards. I lived in Minsk back then and printed like 50 postcards with the city map to send out — and now idk what to do with them :)

Ilya Zverev replied to Ilya

You know OpenWhateverMap.

openwhatevermap.xyz/

Grant made the original version, then we lost the domain, and then I updated it with modern tiles and some interactivity: clicking on a tile reveals its name and URL.

David replied to Ilya

Very cool, I'm just missing

Ilya Zverev replied to Ilya

For the @sotm in Firenze I went all-out with the remote participation part. One thing I did was a Telegram bot, where people from anywhere could introduce themselves.

The idea was to put a face to hundreds of names on online channels. Because once you have a face and a voice attaches to words, it's impossible not to feel a proper conversation going when you type.

Not many people contributed, but still, was fun. The bot was disabled after the conference ended of course.

Ilya Zverev replied to Ilya

I feel like I've invented another job for myself, posting those tweets regularly. Let's do a few small things now.

Like, I love doing efficient focused tooling. GeoJSON Point Editor, while not entirely related to OSM, is exactly that. Faced with making a GeoJSON for ~100 point amenities, geojson.io was frustrating to use.

So I made this. Double click for a new point, type some words for properties (in a already focused field!), filter by keys, download the result.

zverik.github.io/point_ed/

I feel like I've invented another job for myself, posting those tweets regularly. Let's do a few small things now.

Like, I love doing efficient focused tooling. GeoJSON Point Editor, while not entirely related to OSM, is exactly that. Faced with making a GeoJSON for ~100 point amenities, geojson.io was frustrating to use.

Ilya Zverev replied to Ilya

Another one I made for my last job, and it's for annotating GeoJSON geometries: "Geometry Review".

You load a set of geometries to compare into it, and it shows a bunch of buttons for each set: "OK", "Bad" etc, your choice.

No extra clicking or studying required, you glance at the map, press a 1/2/3 key, see the next item. And export the result in the end.

Used this tool to annotate hundreds of routes and review predictions.

github.com/Zverik/geometry_rev

Geo is easy until you see it on the map.

Another one I made for my last job, and it's for annotating GeoJSON geometries: "Geometry Review".

You load a set of geometries to compare into it, and it shows a bunch of buttons for each set: "OK", "Bad" etc, your choice.

No extra clicking or studying required, you glance at the map, press a 1/2/3 key, see the next item. And export the result in the end.

Ilya Zverev replied to Ilya

For a very long time the leading repository on my github was "leaflet-grayscale" with a hundred stars.

I love @leaflet and made too many plugins for it. This one was quite simple — but I guess useful enough.

It just makes the map grayscale.

There are too few layers fit for a visualization background. Sometimes removing colors (and labels if possible) is good enough.

github.com/Zverik/leaflet-gray

watmildon replied to Ilya

@zverik @leaflet Yes! TIGERMap uses greyscale carto. Thankfully maplibre has a color saturation setting!

Robin Wilson replied to Ilya

@zverik @leaflet leaflet-grayscale is great and I use it a lot, thanks for making it!

Ilya Zverev replied to Ilya

Back to OSM, here's one you'd ban if you could.

Sisyphus make a person's mapping work as pointless as rolling a stone up a mountain. It plain reverts every changeset a person uploads to OpenStreetMap.

We used it in Maps.Me for reverting edits of our QA team.

Not ideal, which Frederik noted, but it works, the map is clean, no hassle with moving data to the sandbox.

Uses simple_revert as a library, of course. That library is underrated.

github.com/Zverik/sisyphus

Ilya Zverev replied to Ilya

People usually need three things from maps: tiles, geocoding, and routing. Three things too mundane to work on.

For Maps.Me Changes Monitoring, I filtered edits by countries. For that I wrote a simple reverse geocoder: QueryAt.

It returns a country, a region, and a populated place for a given location. 3 GB database for the entire world, no configuration or query parameters.

Won't recommend using it now though: 8 years later, you could do better.

github.com/zverik/queryat

Ilya Zverev replied to Ilya

The recent discussion around "class:bicycle" tag reminded me of my "surface:grade" proposal — basically the same thing, but done 13 years earlier, with 25k usages as of now and no clear documentation.

wiki.openstreetmap.org/wiki/Pr

Basically it's a measure of surface quality relative to roads with that surface quality. Not all roads ever, like smoothness=*.

You see a perfect gravel road? surface:quality=3. You're on a technically asphalt road and moving 1 km/h wishing they left it unpaved? Zero.

The recent discussion around "class:bicycle" tag reminded me of my "surface:grade" proposal — basically the same thing, but done 13 years earlier, with 25k usages as of now and no clear documentation.

wiki.openstreetmap.org/wiki/Pr

Basically it's a measure of surface quality relative to roads with that surface quality. Not all roads ever, like smoothness=*.

Ilya Zverev replied to Ilya

Having tag proposals on this list feels like cheating — despite those take weeks to materialize, mostly because of research and writing and discussing in our Russian-speaking community.

For example, my turns lanes proposal took two weeks researching eight other proposals, charting examples, writing the proposal and FAQ.

wiki.openstreetmap.org/wiki/Pr

It failed because it was hard to understand, unlike the semantically weird but simple turn:lanes schema.

Mappers need simple, not consistent.

Having tag proposals on this list feels like cheating — despite those take weeks to materialize, mostly because of research and writing and discussing in our Russian-speaking community.

For example, my turns lanes proposal took two weeks researching eight other proposals, charting examples, writing the proposal and FAQ.

Ilya Zverev replied to Ilya

When I set out to write a reverse geocoder, I had a very narrow scope in mind: basically the east coast of the US. But the longer you study something, the more edge cases you find. Got a few talks out of it:

youtube.com/watch?v=sjE6xy0BBg

Juno Reverse Geocoder is covered in tests no other geocoder would pass, and is built on SQL. I bragged that it was faster than Nominatim, but recently I've tested it and it's like 8 times slower. Still, worked fine for our company.

github.com/gojuno/jrg

When I set out to write a reverse geocoder, I had a very narrow scope in mind: basically the east coast of the US. But the longer you study something, the more edge cases you find. Got a few talks out of it:

youtube.com/watch?v=sjE6xy0BBg

Juno Reverse Geocoder is covered in tests no other geocoder would pass, and is built on SQL. I bragged that it was faster than Nominatim, but recently I've tested it and it's like 8 times slower. Still, worked fine for our company.

SK53 replied to Ilya

@zverik sounds a bit like user GeneralDreedle, although that account automatically everted edits by fantasy mappers

Go Up