logo separator

[mkgmap-dev] Similar Arcs

From Gerd Petermann gpetermann_muenchen at hotmail.com on Sun May 23 19:02:49 BST 2021

Hi Mike,

the NodCheck (and NodDisplay is part of the display utility, see https://svn.mkgmap.org.uk/svn/display
NodCheck reports lots of errors about angles and lengths of arcs which probably are not critical and mostly caused by rounding.

There are some pdf docs about the IMG format and also the wiki
https://wiki.openstreetmap.org/wiki/OSM_Map_On_Garmin/NOD_Subfile_Format
Some details are probably not documented, esp. the last findings about encoding of bearings.

I think it is possible to suppress some duplicate arcs, e.g. if two roads have the same first arc it should be possible to truncate one of the roads. It might be needed to remove all the data in RGN and NET as well, so that you simulate the removal of data in OSM. I don't see a need for this, the effect should be very small for styles which don't try to make objects like amenity=parking routable.

Gerd

________________________________________
Von: mkgmap-dev <mkgmap-dev-bounces at lists.mkgmap.org.uk> im Auftrag von Mike Baggaley <mike at tvage.co.uk>
Gesendet: Sonntag, 23. Mai 2021 19:27
An: 'Development list for mkgmap'
Betreff: Re: [mkgmap-dev] Similar Arcs

Hi Gerd,

The primary reason for the patch and hence the rules is to reduce the number
of similar arcs warnings to a manageable number that are actually useful. A
useful side effect is slightly reducing the size of the map. Many of the
warnings are caused by highway areas overlapping linear highways. You are
right that the patch does cause incorrect routing data - the first few I
tried to route over seemed to be OK, but others failed, so I assume it is
just luck when one still works. I can't find any NodCheck in the code, and
with all warnings enabled, I don't see any messages relating to this. I was
following your suggestion about using the code for --report-similar-arcs as
a base to drop overlapping arcs. Checking back, I see you did mention you
didn't know whether this would produce incorrect NOD data. I have realised I
also need to delete the reverse arc and have added code for that, but
haven't discovered how the NOD data is connected. Can you point me in the
right direction? Don't suppose there is any documentation about the code
structure...

Cheers,
Mike

-----Original Message-----
From: Gerd Petermann [mailto:gpetermann_muenchen at hotmail.com]
Sent: 22 May 2021 06:31
To: Development list for mkgmap <mkgmap-dev at lists.mkgmap.org.uk>
Subject: Re: [mkgmap-dev] Similar Arcs

Hi Mike,

what exactly is the benefit of those rules? What's the problem if the
similar arcs are not removed?
I can't belief that this works without causing possibly wrong routing data.
Doesn't NodCheck complain about the removed arcs?

Gerd

________________________________________
Von: mkgmap-dev <mkgmap-dev-bounces at lists.mkgmap.org.uk> im Auftrag von Mike
Baggaley <mike at tvage.co.uk>
Gesendet: Samstag, 22. Mai 2021 00:51
An: 'Development list for mkgmap'
Betreff: [mkgmap-dev] Similar Arcs

Hi Gerd,

Please find attached the patch for deleting similar arcs. It uses a new
mkgmap:nooverlap tag which can be set to a number between 0 and 127 (default
0) in the lines file. If set to a number greater than zero then the
overlapping part of the line will be deleted if it overlaps another line,
providing the access of the other line is a superset of its access. If both
lines have non zero values and have the same access then the line with the
higher value will be deleted.

In my style file I have the following:

highway=service & (area=yes | mkgmap:mp_created=true) & (foot=yes |
foot=designated | foot=official | foot=permissive | (foot!=* & (access!=* |
access=yes | access=permissive))) {set mkgmap:car=no; set mkgmap:bicycle=no;
set foot=yes; set mkgmap:flare-check=no; set mkgmap:numbers=false; set
mkgmap:set_unconnected_type=none; set mkgmap:set_semi_connected_type=none;
set mkgmap:nooverlap=1} [0x13 road_class=0 road_speed=0 resolution 22]

highway=pedestrian & (area=yes | mkgmap:mp_created=true) & (foot=yes |
foot=designated | foot=official | foot=permissive | (foot!=* & (access!=* |
access=yes | access=permissive))) {set mkgmap:car=no; set mkgmap:bicycle=no;
set foot=yes; set mkgmap:flare-check=no; set mkgmap:numbers=false; set
mkgmap:set_unconnected_type=none; set mkgmap:set_semi_connected_type=none;
set mkgmap:nooverlap=1} [0x0d road_class=0 road_speed=0 resolution 22]

amenity=parking & (parking!=* | parking=surface) & (foot=yes |
foot=designated | foot=official | foot=permissive | (foot!=* & (access!=* |
access=yes | access=permissive))) {set mkgmap:car=no; set mkgmap:bicycle=no;
set foot=yes; set mkgmap:numbers=false; set
mkgmap:set_unconnected_type=none; set mkgmap:set_semi_connected_type=none;
set mkgmap:nooverlap=2; set mkgmap:delivery=no; set mkgmap:truck=no; set
mkgmap:bus=no; set mkgmap:taxi=no; set mkgmap:emergency=no } [0x08
road_class=0 road_speed=0 resolution 24 continue]

and similar for railway=platform, man_made=pier, man_made=jetty and
leisure=slipway.

Cheers,
Mike


_______________________________________________
mkgmap-dev mailing list
mkgmap-dev at lists.mkgmap.org.uk
https://www.mkgmap.org.uk/mailman/listinfo/mkgmap-dev


More information about the mkgmap-dev mailing list