[mkgmap-dev] Re: my map testing

From Robert Vollmert rvollmert-lists at gmx.net on Fri Dec 12 09:59:47 GMT 2008

```On Dec 11, 2008, at 18:58, Alexander Atanasov wrote:
> Do not increase bmlen if the starting point is not a node.
> It represents the count of nodes, not their locations in the line
> and nnodes is set to the real count from the reader.
>
> I don't know how this is handled:
>  R1                           R1
> ------------------X-------------------
>                       | R2
>
> If R1 is the first segment it can be split in two and have bmlen=2 and
> 01 10 bitmaps.
>
> If it's not the first segment starting point is a node depending on
> the last point from the previous segment.
>
> So extend the nodes count only for roads with one node which is not
> the starting one, i don't see how to find the segments.

I tried to code what I saw in some maps. Namely, most of the time,
there's just the lower bmlen bits set, and bmlen=nnodes (eg bmlen=3,
bs=7). Then there's a few cases where the lowest bit is not set, but
above that bmlen bits are set, and bmlen=nnodes+1 (eg bmlen=3, bs=6).
Furthermore, this appears to happen iff the start point of a road is
not a node. In all the cases I've seen,
(highest bit in bs) == (1 << (bmlen - 1)) .

Do you have different examples?

Here's a of all bmlen / bs in a large map:

#  bmlen                    bs
----------------------------------------------
1  03                       06
1  07                       7e
1  08                       fe
1  12                       ff ff 03
1  16                       ff ff 3f
1  17                       ff ff 7f
1  18                       ff ff ff
1  19                       ff ff ff 01
1  1a                       ff ff ff 03
1  1c                       ff ff ff 0f
1  20                       ff ff ff ff
1  25                       ff ff ff ff 1f
1  28                       ff ff ff ff ff
2  14                       ff ff 0f
2  15                       ff ff 1f
2  21                       ff ff ff ff 01
3  01                       01
3  1b                       ff ff ff 07
5  02                       02
6  11                       ff ff 01
7  10                       ff ff
7  13                       ff ff 07
8  0e                       ff 3f
10  0c                       ff 0f
12  0d                       ff 1f
14  0f                       ff 7f
25  0b                       ff 07
31  08                       ff
31  0a                       ff 03
39  09                       ff 01
51  07                       7f
62  05                       1f
73  06                       3f
107  04                       0f
151  03                       07
21713  02                       03

Cheers
Robert

```