On Fri, Mar 8, 2019 at 11:37 AM Martijn van Exel <m...@rtijn.org> wrote:
>
> I agree that a local US OSM map with a *subtly* adapted rendering would be 
> fantastic. Phil Gold did some interesting work years ago on rendering US 
> style highway shields taking into account (sometimes crazy) route concurrency 
> (http://elrond.aperiodic.net/shields/?zoom=13&lat=39.75926&lon=-86.02786&layers=B
>  - note that this is based on years-old data and probably pre-carto-switch 
> stylesheet). Lars Ahlzen created the beautiful TopOSM which is a lot more 
> divergent from the main map style, but another great example of initiatives 
> around custom map rendering coming out of the US community.

I've borrowed ideas (and some limited amount of code) from both of
them in doing my experimental rendering at
https://kbk.is-a-geek.net/catskills/test4.html. It has North American
highway shields. I say 'North American' because it handles the
Canadian and a few Mexican ones, with concurrences, also.  It has a
lot more than Phil! incorporated thanks to a yeoman effort by Minh
Nguyen (sorry, Minh, no time to go hunting for Vietnamese diacritics
to spell your name correctly!)

It has scalability issues that are fixable, but imply ditching a fair
piece of the toolchain.
I'm tracking a project for it at
https://github.com/kennykb/osm-shields/projects.  I have a Kanban for
it at https://github.com/kennykb/osm-shields/projects/1.

The chief roadblocks to scaleability are that the graphics are
generated in what amounts to a batch process, taking several minutes,
triggered by the Osmosis update of the 'northamerica' export from
geofabrik.de. If the process is to scale to minutely updates and the
whole planet, it needs to do shield rendering incrementally in
response to specific updates affecting it.

The fact that osm2pgsql does not and will not ever support querying of
relations at rendering time is a headache, and so the first job will
have to be retooling everything to the table formats used by imposm3.
(This is entirely doable; it's quite a lot of very routine programming
that I've simply not had time to take on.)
https://github.com/kennykb/osm-shields/issues/13

Then there's the issue that the graphics for individual shields are
being stored in PNG, which is rendered in a batch process that takes
typically several minutes (so could not cope with minutely updates). I
have some sketches for how that could be accomplished, but again, I
keep running out of time.
https://github.com/kennykb/osm-shields/issues/5

Also, 'carto' does not have support for the GroupSymbolizer in Mapnik,
needed for highway shield rendering, so I'm still stuck with defining
the rendering in Mapnik XML. This isn't a problem for me, but others
might demand better support.

Finally, Mapnik itself would benefit from being able to render SVG's
with template parameters substituted from objects in the database. I
think that the pipeline could be implemented in a scalable fashion
without this last task, but there would be more custom code about.

I've sounded out the maintainers of various of the OSM software, and
get different assessments.
osm2pgsql - Actively hostile to supporting what I need, contend that
osm2pgsql is the wrong tool for the job.
imposm3 - Interested and helpful, and it appears that they wouldn't
actually have to do anything (imposm3 may have everything needed
'right out of the box').
Phil Gold!'s 'highway shields' project - Moribund, but I've extracted
from it what I think I need and put the code at
https://github.com/kennykb/osm-shields/
TopOSM - Again, moribund, but I have working renderings derived from
it that suit me and could serve as starting points for new
development.
Carto - Maintainers would be very interested in GroupSymbolizer support.
OSM Carto - Little interest, but that's because of the emphasis on
consistent rendering worldwide, and this is really a project specific
to North America.
Mapnik - I've not really needed to approach the Mapnik team yet - I've
been treating it as a black box.

So, it looks as if there's a path forward, but it involves a bunch
more programming than I've had time to take on. I'm very good at
programming, but my time is limited. I'm much less good at project
management, and I'm terrible at recruiting, so I've been unable so far
to form a team to tackle this. A better leader than I could probably
make significant forward progress with my technical assistance. I may
find this thrust upon me, but I hope to dodge any requests to lead
open-source development efforts while I'm still in the paid workforce.
(With luck, retirement is a couple or three years away.)

> Perhaps something for a BoF session at the next SOTM!

Finding the time and money to attend a conference that my employer
doesn't sponsor is hard for me at the moment, particularly since I'm
already committed once or twice a year to conferences on another "free
time" (hah!) project. (Also, I presume you mean SOTM-US? An overseas
conference would add a whole other level of complexity to my getting
to go.)

> Finally, I don’t think it’s a funding or infrastructure issue. It’s just that 
> someone needs to lead it.

That might have to be me, but in that case I have to say, "not yet."

_______________________________________________
Talk-us mailing list
Talk-us@openstreetmap.org
https://lists.openstreetmap.org/listinfo/talk-us

Reply via email to