Email or username:

Password:

Forgot your password?
Top-level
Ilya Zverev

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.

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