logo separator

[mkgmap-dev] Test if POI is part of a line

From Gerd Petermann gpetermann_muenchen at hotmail.com on Sun Oct 16 09:35:07 BST 2022

Hi Felix,

I do understand that one would want to avoid rendering gates which are not on highways, but I don't understand why you care about
the effect on routing. That's a completely different story and I think mkgmap handles this very well with the --link-pois-to-ways option.
Or maybe you mean something else?

A barrier node should never be connected to more than one way, else it is a mapping error and mkgmap reports this in the log (if enabled).
It should be a rare case and thus I see no need to add lots of logic to avoid the rendering.
The corresponding nodes should be fixed in OSM.


Von: mkgmap-dev <mkgmap-dev-bounces at lists.mkgmap.org.uk> im Auftrag von Felix Herwegh <mlmmduk at herwegh.de>
Gesendet: Samstag, 15. Oktober 2022 18:36
An: mkgmap-dev at lists.mkgmap.org.uk
Betreff: Re: [mkgmap-dev] Test if POI is part of a line

> I would only like to display barrier/highway=gate point icons if they are part of a (best routable) line.

Since I try to declutter my maps as best as possible I too had "remove non-relevant gates" on my to do list and followed up on that today.
Accounting for points mapped on or between ways and access restrictions optionally stemming from point and/or way I was able, to already thin out my gates significantly. The include file is just "re-used" from my lines processing.

# NoAccess gates on relevant highways
# only works w/ mkgmap option --add-pois-to-lines
if (mkgmap:from-node:barrier ~ '.*(gate)' & highway=*) then
# gate on highway
   include "../inc/RaceSurf";
   # tagging of (preselected) elements w/ hgh:surface=(Race|noRace)
   # depending on quality in regard to race (and gravel) bike use

  if (hgh:surface=Race) then
       (mkgmap:from-node:access ~ 'no|private
        & !(mkgmap:from-node:bicycle ~ 'yes|permissive')
      # relevant access restricted by point
       (access ~ 'no|private'
        & !(bicycle ~ 'yes|permissive')
     # relevant access restricted by road segment

But I was not able, to solve the probably most interesting situation:
If a (gate) point is part of two (or more) consecutive ways, it is processed multiple times from --add-pois-to-lines, but one would need the tags of all ways involved at the same time to make the final decision on whether or not to render this point. (That is -for starters-, if not at least two ways were deemed interesting, the gate might not be rendered although from one way alone, it would).

Is there a concept, allowing to do that?

The only idea I came up with would be, to use the mkgmap:line2poitype tag to flag these POIs somehow and finally delete all, if not at least 2 of those where placed at the exact same location. Somewhat similar to deleting identical POIs at the same location as documented for the nearby-poi-rules. In the latter case (>2), delete all but one...

Cheers, Felix

More information about the mkgmap-dev mailing list