type/subtype of points and cities

Hi I think the mkgmap internal handling of types/subtypes of points is obscure. In the points style file, the type code is always full, ie type << 8 | subtype, but when the points are read back from the RGN file for the MDR processing, the representation is the same provided the subtype is not zero, otherwise it is just type! Logic then decides that if the value is <= 0xff it is because the subtype is zero. It is simpler and much clearer to preserve the original representation. This also allows unambiguous use of type 0 with subtypes, and, possibly, city with subtypes. It also allows the same function to be used to test a type for being in the 'city' range, regardless of the context. mkgmap wasn't consistent the ranges for the isCity test. City POI are written in a different manner to the RGN file. The old range for this was: type >= 0x0100 && type <= 0x1100 which I've kept, except changing to: ...& type < 0x1200. A similar range was used for MDR5. However, city POI are held in group 1 of MDR 9/10. This is used in Find
City 'By Name'. The old range was: type <= 0xf, where, if the subtype was zero, type is right shifted by 8 (see above), non-zero subtypes messed up the testing. Now it uses the same range as above.
Actually neither of these ranges are correct for my Garmin devices. Find > City show nearby POI with types in the range 0x0100..0x0d1f, regardless of the img RGN or MDR. The eTrex Legend labels POIs in this range as {Large/Medium/Small} City/Town and points in the range 0x0e00..0x111f as "*". Find > City 'by-name' returns POI if in group 1 of MDR 9/10. I find it a useful feature to have a POI that can be searched for but doesn't flood the list of nearby points. Generally, non-zero subtypes for cities cause problems in the RGN structure and I've added a test for this to the style validation. There is also a fix to --make-poi-index, but I can't detect any effect of this option. This patch won't make any difference to the img output unless the there are points 0x1000, 0x1100. If this patch is accepted, I'll do the equivalent to the img display system. Regards Ticker

Hi Gerd Here is the patch based on the current trunk Ticker On Tue, 2019-04-23 at 11:51 +0100, Ticker Berkin wrote:
Hi
I think the mkgmap internal handling of types/subtypes of points is obscure.
In the points style file, the type code is always full, ie type << 8 | subtype, but when the points are read back from the RGN file for the MDR processing, the representation is the same provided the subtype is not zero, otherwise it is just type! Logic then decides that if the value is <= 0xff it is because the subtype is zero.
It is simpler and much clearer to preserve the original representation. This also allows unambiguous use of type 0 with subtypes, and, possibly, city with subtypes.
It also allows the same function to be used to test a type for being in the 'city' range, regardless of the context. mkgmap wasn't consistent the ranges for the isCity test.
City POI are written in a different manner to the RGN file. The old range for this was: type >= 0x0100 && type <= 0x1100 which I've kept, except changing to: ...& type < 0x1200. A similar range was used for MDR5.
However, city POI are held in group 1 of MDR 9/10. This is used in Find
City 'By Name'. The old range was: type <= 0xf, where, if the subtype was zero, type is right shifted by 8 (see above), non-zero subtypes messed up the testing. Now it uses the same range as above.
Actually neither of these ranges are correct for my Garmin devices. Find > City show nearby POI with types in the range 0x0100..0x0d1f, regardless of the img RGN or MDR. The eTrex Legend labels POIs in this range as {Large/Medium/Small} City/Town and points in the range 0x0e00..0x111f as "*".
Find > City 'by-name' returns POI if in group 1 of MDR 9/10. I find it a useful feature to have a POI that can be searched for but doesn't flood the list of nearby points.
Generally, non-zero subtypes for cities cause problems in the RGN structure and I've added a test for this to the style validation.
There is also a fix to --make-poi-index, but I can't detect any effect of this option.
This patch won't make any difference to the img output unless the there are points 0x1000, 0x1100.
If this patch is accepted, I'll do the equivalent to the img display system.
Regards Ticker _______________________________________________ mkgmap-dev mailing list mkgmap-dev@lists.mkgmap.org.uk http://www.mkgmap.org.uk/mailman/listinfo/mkgmap-dev

Hi Ticker, I see some new warnings for Minkos popular Openfietsmap styles with this patch: checking style: Openfietsmap full Warning: invalid type 0x1101 for POINT in style file points, line 97 Warning: invalid type 0x1102 for POINT in style file points, line 263 Warning: invalid type 0x1102 for POINT in style file points, line 264 Warning: invalid type 0x1108 for POINT in style file points, line 336 Warning: invalid type 0x1108 for POINT in style file points, line 348 Warning: invalid type 0x1108 for POINT in style file points, line 349 Warning: invalid type 0x1108 for POINT in style file points, line 350 The corresponding lines in the points file amenity=bus_station [0x1101 resolution 24 continue] railway=halt [0x1102 resolution 22] railway=station [0x1102 resolution 20-23 continue] (barrier=bollard | barrier=bus_trap | barrier=block) [0x1108 resolution 23] access:conditional=* & access:conditional ~ '!(sunset|sunrise|destination)' & bicycle!=no & bicycle!=permissive & vehicle!=no { name 'access=${access:conditional}' } [0x1108 resolution 24] bicycle:conditional=* & bicycle:conditional ~ '!(sunset|sunrise|destination)' { name 'bicycle=${bicycle:conditional}' } [0x1108 resolution 24] vehicle:conditional=* & vehicle:conditional ~ '!(sunset|sunrise|destination)' { name 'vehicle=${vehicle:conditional}' } [0x1108 resolution 24] Can you explain what happened with those POI without the patch? Gerd ________________________________________ Von: mkgmap-dev <mkgmap-dev-bounces@lists.mkgmap.org.uk> im Auftrag von Ticker Berkin <rwb-mkgmap@jagit.co.uk> Gesendet: Dienstag, 22. Oktober 2019 13:07 An: Development list for mkgmap Betreff: Re: [mkgmap-dev] type/subtype of points and cities Hi Gerd Here is the patch based on the current trunk Ticker On Tue, 2019-04-23 at 11:51 +0100, Ticker Berkin wrote:
Hi
I think the mkgmap internal handling of types/subtypes of points is obscure.
In the points style file, the type code is always full, ie type << 8 | subtype, but when the points are read back from the RGN file for the MDR processing, the representation is the same provided the subtype is not zero, otherwise it is just type! Logic then decides that if the value is <= 0xff it is because the subtype is zero.
It is simpler and much clearer to preserve the original representation. This also allows unambiguous use of type 0 with subtypes, and, possibly, city with subtypes.
It also allows the same function to be used to test a type for being in the 'city' range, regardless of the context. mkgmap wasn't consistent the ranges for the isCity test.
City POI are written in a different manner to the RGN file. The old range for this was: type >= 0x0100 && type <= 0x1100 which I've kept, except changing to: ...& type < 0x1200. A similar range was used for MDR5.
However, city POI are held in group 1 of MDR 9/10. This is used in Find
City 'By Name'. The old range was: type <= 0xf, where, if the subtype was zero, type is right shifted by 8 (see above), non-zero subtypes messed up the testing. Now it uses the same range as above.
Actually neither of these ranges are correct for my Garmin devices. Find > City show nearby POI with types in the range 0x0100..0x0d1f, regardless of the img RGN or MDR. The eTrex Legend labels POIs in this range as {Large/Medium/Small} City/Town and points in the range 0x0e00..0x111f as "*".
Find > City 'by-name' returns POI if in group 1 of MDR 9/10. I find it a useful feature to have a POI that can be searched for but doesn't flood the list of nearby points.
Generally, non-zero subtypes for cities cause problems in the RGN structure and I've added a test for this to the style validation.
There is also a fix to --make-poi-index, but I can't detect any effect of this option.
This patch won't make any difference to the img output unless the there are points 0x1000, 0x1100.
If this patch is accepted, I'll do the equivalent to the img display system.
Regards Ticker _______________________________________________ mkgmap-dev mailing list mkgmap-dev@lists.mkgmap.org.uk http://www.mkgmap.org.uk/mailman/listinfo/mkgmap-dev

Hi Gerd The old reader/osm/Gtype:checkType() didn't diagnose cities (however they might be defined) with non-zero subtypes - this is where the new message comes from. Old general/MapPoint:isCity[Type] defined city as: return type >= 0x0100 && type <= 0x1100 ie 0x1100 is city, 0x1101 isn't, which I thought wasn't a good definition, so I changed it to: return type >= 0x0100 && type < 0x1200; I chose all of 0x11XX to be considered cities so that 0x1100 processing as a city didn't change (this and 0x1000 were put into RGN indPoints, but were not indexed as cities by MDR) Changing it to < 0x1100 would be reasonable, because the device range seems to be < 0x0e00 and MDR5 city indexing was for points < 0x1000 Ticker On Tue, 2019-10-22 at 12:32 +0000, Gerd Petermann wrote:
Hi Ticker,
I see some new warnings for Minkos popular Openfietsmap styles with this patch: checking style: Openfietsmap full Warning: invalid type 0x1101 for POINT in style file points, line 97 Warning: invalid type 0x1102 for POINT in style file points, line 263 Warning: invalid type 0x1102 for POINT in style file points, line 264 Warning: invalid type 0x1108 for POINT in style file points, line 336 Warning: invalid type 0x1108 for POINT in style file points, line 348 Warning: invalid type 0x1108 for POINT in style file points, line 349 Warning: invalid type 0x1108 for POINT in style file points, line 350
The corresponding lines in the points file amenity=bus_station [0x1101 resolution 24 continue] railway=halt [0x1102 resolution 22] railway=station [0x1102 resolution 20-23 continue] (barrier=bollard | barrier=bus_trap | barrier=block) [0x1108 resolution 23] access:conditional=* & access:conditional ~ '!(sunset|sunrise|destination)' & bicycle!=no & bicycle!=permissive & vehicle!=no { name 'access=${access:conditional}' } [0x1108 resolution 24] bicycle:conditional=* & bicycle:conditional ~ '!(sunset|sunrise|destination)' { name 'bicycle=${bicycle:conditional}' } [0x1108 resolution 24] vehicle:conditional=* & vehicle:conditional ~ '!(sunset|sunrise|destination)' { name 'vehicle=${vehicle:conditional}' } [0x1108 resolution 24]
Can you explain what happened with those POI without the patch?
Gerd
________________________________________ Von: mkgmap-dev <mkgmap-dev-bounces@lists.mkgmap.org.uk> im Auftrag von Ticker Berkin <rwb-mkgmap@jagit.co.uk> Gesendet: Dienstag, 22. Oktober 2019 13:07 An: Development list for mkgmap Betreff: Re: [mkgmap-dev] type/subtype of points and cities
Hi Gerd
Here is the patch based on the current trunk
Ticker On Tue, 2019-04-23 at 11:51 +0100, Ticker Berkin wrote:
Hi
I think the mkgmap internal handling of types/subtypes of points is obscure.
In the points style file, the type code is always full, ie type << 8
subtype, but when the points are read back from the RGN file for the MDR processing, the representation is the same provided the subtype is not zero, otherwise it is just type! Logic then decides that if the value is <= 0xff it is because the subtype is zero.
It is simpler and much clearer to preserve the original representation. This also allows unambiguous use of type 0 with subtypes, and, possibly, city with subtypes.
It also allows the same function to be used to test a type for being in the 'city' range, regardless of the context. mkgmap wasn't consistent the ranges for the isCity test.
City POI are written in a different manner to the RGN file. The old range for this was: type >= 0x0100 && type <= 0x1100 which I've kept, except changing to: ...& type < 0x1200. A similar range was used for MDR5.
However, city POI are held in group 1 of MDR 9/10. This is used in Find
City 'By Name'. The old range was: type <= 0xf, where, if the subtype was zero, type is right shifted by 8 (see above), non-zero subtypes messed up the testing. Now it uses the same range as above.
Actually neither of these ranges are correct for my Garmin devices. Find > City show nearby POI with types in the range 0x0100..0x0d1f, regardless of the img RGN or MDR. The eTrex Legend labels POIs in this range as {Large/Medium/Small} City/Town and points in the range 0x0e00..0x111f as "*".
Find > City 'by-name' returns POI if in group 1 of MDR 9/10. I find it a useful feature to have a POI that can be searched for but doesn't flood the list of nearby points.
Generally, non-zero subtypes for cities cause problems in the RGN structure and I've added a test for this to the style validation.
There is also a fix to --make-poi-index, but I can't detect any effect of this option.
This patch won't make any difference to the img output unless the there are points 0x1000, 0x1100.
If this patch is accepted, I'll do the equivalent to the img display system.
Regards Ticker _______________________________________________ mkgmap-dev mailing list mkgmap-dev@lists.mkgmap.org.uk http://www.mkgmap.org.uk/mailman/listinfo/mkgmap-dev
mkgmap-dev mailing list mkgmap-dev@lists.mkgmap.org.uk http://www.mkgmap.org.uk/mailman/listinfo/mkgmap-dev

Hi Ticker, thanks. @Minko: I've created a small map with "Openfietsmap full" style and trunk r4315 , OSM data contains an amenity=bus_station. The result is that this POI appears in the map (a small dot with the label), but it is not in the mdr (like you say). I found no older versions of mkgmap where this would have worked different, so it seems useless to me because normally I'd want to be able to find the bus station under transport services. Why do you use 0x1101, 0x1102, or 0x1108 for POI? Gerd ________________________________________ Von: mkgmap-dev <mkgmap-dev-bounces@lists.mkgmap.org.uk> im Auftrag von Ticker Berkin <rwb-mkgmap@jagit.co.uk> Gesendet: Dienstag, 22. Oktober 2019 16:29 An: Development list for mkgmap Betreff: Re: [mkgmap-dev] type/subtype of points and cities Hi Gerd The old reader/osm/Gtype:checkType() didn't diagnose cities (however they might be defined) with non-zero subtypes - this is where the new message comes from. Old general/MapPoint:isCity[Type] defined city as: return type >= 0x0100 && type <= 0x1100 ie 0x1100 is city, 0x1101 isn't, which I thought wasn't a good definition, so I changed it to: return type >= 0x0100 && type < 0x1200; I chose all of 0x11XX to be considered cities so that 0x1100 processing as a city didn't change (this and 0x1000 were put into RGN indPoints, but were not indexed as cities by MDR) Changing it to < 0x1100 would be reasonable, because the device range seems to be < 0x0e00 and MDR5 city indexing was for points < 0x1000 Ticker On Tue, 2019-10-22 at 12:32 +0000, Gerd Petermann wrote:
Hi Ticker,
I see some new warnings for Minkos popular Openfietsmap styles with this patch: checking style: Openfietsmap full Warning: invalid type 0x1101 for POINT in style file points, line 97 Warning: invalid type 0x1102 for POINT in style file points, line 263 Warning: invalid type 0x1102 for POINT in style file points, line 264 Warning: invalid type 0x1108 for POINT in style file points, line 336 Warning: invalid type 0x1108 for POINT in style file points, line 348 Warning: invalid type 0x1108 for POINT in style file points, line 349 Warning: invalid type 0x1108 for POINT in style file points, line 350
The corresponding lines in the points file amenity=bus_station [0x1101 resolution 24 continue] railway=halt [0x1102 resolution 22] railway=station [0x1102 resolution 20-23 continue] (barrier=bollard | barrier=bus_trap | barrier=block) [0x1108 resolution 23] access:conditional=* & access:conditional ~ '!(sunset|sunrise|destination)' & bicycle!=no & bicycle!=permissive & vehicle!=no { name 'access=${access:conditional}' } [0x1108 resolution 24] bicycle:conditional=* & bicycle:conditional ~ '!(sunset|sunrise|destination)' { name 'bicycle=${bicycle:conditional}' } [0x1108 resolution 24] vehicle:conditional=* & vehicle:conditional ~ '!(sunset|sunrise|destination)' { name 'vehicle=${vehicle:conditional}' } [0x1108 resolution 24]
Can you explain what happened with those POI without the patch?
Gerd
________________________________________ Von: mkgmap-dev <mkgmap-dev-bounces@lists.mkgmap.org.uk> im Auftrag von Ticker Berkin <rwb-mkgmap@jagit.co.uk> Gesendet: Dienstag, 22. Oktober 2019 13:07 An: Development list for mkgmap Betreff: Re: [mkgmap-dev] type/subtype of points and cities
Hi Gerd
Here is the patch based on the current trunk
Ticker On Tue, 2019-04-23 at 11:51 +0100, Ticker Berkin wrote:
Hi
I think the mkgmap internal handling of types/subtypes of points is obscure.
In the points style file, the type code is always full, ie type << 8
subtype, but when the points are read back from the RGN file for the MDR processing, the representation is the same provided the subtype is not zero, otherwise it is just type! Logic then decides that if the value is <= 0xff it is because the subtype is zero.
It is simpler and much clearer to preserve the original representation. This also allows unambiguous use of type 0 with subtypes, and, possibly, city with subtypes.
It also allows the same function to be used to test a type for being in the 'city' range, regardless of the context. mkgmap wasn't consistent the ranges for the isCity test.
City POI are written in a different manner to the RGN file. The old range for this was: type >= 0x0100 && type <= 0x1100 which I've kept, except changing to: ...& type < 0x1200. A similar range was used for MDR5.
However, city POI are held in group 1 of MDR 9/10. This is used in Find
City 'By Name'. The old range was: type <= 0xf, where, if the subtype was zero, type is right shifted by 8 (see above), non-zero subtypes messed up the testing. Now it uses the same range as above.
Actually neither of these ranges are correct for my Garmin devices. Find > City show nearby POI with types in the range 0x0100..0x0d1f, regardless of the img RGN or MDR. The eTrex Legend labels POIs in this range as {Large/Medium/Small} City/Town and points in the range 0x0e00..0x111f as "*".
Find > City 'by-name' returns POI if in group 1 of MDR 9/10. I find it a useful feature to have a POI that can be searched for but doesn't flood the list of nearby points.
Generally, non-zero subtypes for cities cause problems in the RGN structure and I've added a test for this to the style validation.
There is also a fix to --make-poi-index, but I can't detect any effect of this option.
This patch won't make any difference to the img output unless the there are points 0x1000, 0x1100.
If this patch is accepted, I'll do the equivalent to the img display system.
Regards Ticker _______________________________________________ mkgmap-dev mailing list mkgmap-dev@lists.mkgmap.org.uk http://www.mkgmap.org.uk/mailman/listinfo/mkgmap-dev
mkgmap-dev mailing list mkgmap-dev@lists.mkgmap.org.uk http://www.mkgmap.org.uk/mailman/listinfo/mkgmap-dev
mkgmap-dev mailing list mkgmap-dev@lists.mkgmap.org.uk http://www.mkgmap.org.uk/mailman/listinfo/mkgmap-dev

Hi Minko, "(like you say)" should have been ... "(like Ticker wrote)" ... (a small dot with the label) ... sorry, I forgot to use the typ file, so 0x1101 is displayed with an icon showing a bus and without the label. But why do you use a type that is not indexed? Gerd ________________________________________ Von: mkgmap-dev <mkgmap-dev-bounces@lists.mkgmap.org.uk> im Auftrag von Gerd Petermann <gpetermann_muenchen@hotmail.com> Gesendet: Dienstag, 22. Oktober 2019 16:52 An: Development list for mkgmap Betreff: Re: [mkgmap-dev] type/subtype of points and cities Hi Ticker, thanks. @Minko: I've created a small map with "Openfietsmap full" style and trunk r4315 , OSM data contains an amenity=bus_station. The result is that this POI appears in the map (a small dot with the label), but it is not in the mdr (like you say). I found no older versions of mkgmap where this would have worked different, so it seems useless to me because normally I'd want to be able to find the bus station under transport services. Why do you use 0x1101, 0x1102, or 0x1108 for POI? Gerd ________________________________________ Von: mkgmap-dev <mkgmap-dev-bounces@lists.mkgmap.org.uk> im Auftrag von Ticker Berkin <rwb-mkgmap@jagit.co.uk> Gesendet: Dienstag, 22. Oktober 2019 16:29 An: Development list for mkgmap Betreff: Re: [mkgmap-dev] type/subtype of points and cities Hi Gerd The old reader/osm/Gtype:checkType() didn't diagnose cities (however they might be defined) with non-zero subtypes - this is where the new message comes from. Old general/MapPoint:isCity[Type] defined city as: return type >= 0x0100 && type <= 0x1100 ie 0x1100 is city, 0x1101 isn't, which I thought wasn't a good definition, so I changed it to: return type >= 0x0100 && type < 0x1200; I chose all of 0x11XX to be considered cities so that 0x1100 processing as a city didn't change (this and 0x1000 were put into RGN indPoints, but were not indexed as cities by MDR) Changing it to < 0x1100 would be reasonable, because the device range seems to be < 0x0e00 and MDR5 city indexing was for points < 0x1000 Ticker On Tue, 2019-10-22 at 12:32 +0000, Gerd Petermann wrote:
Hi Ticker,
I see some new warnings for Minkos popular Openfietsmap styles with this patch: checking style: Openfietsmap full Warning: invalid type 0x1101 for POINT in style file points, line 97 Warning: invalid type 0x1102 for POINT in style file points, line 263 Warning: invalid type 0x1102 for POINT in style file points, line 264 Warning: invalid type 0x1108 for POINT in style file points, line 336 Warning: invalid type 0x1108 for POINT in style file points, line 348 Warning: invalid type 0x1108 for POINT in style file points, line 349 Warning: invalid type 0x1108 for POINT in style file points, line 350
The corresponding lines in the points file amenity=bus_station [0x1101 resolution 24 continue] railway=halt [0x1102 resolution 22] railway=station [0x1102 resolution 20-23 continue] (barrier=bollard | barrier=bus_trap | barrier=block) [0x1108 resolution 23] access:conditional=* & access:conditional ~ '!(sunset|sunrise|destination)' & bicycle!=no & bicycle!=permissive & vehicle!=no { name 'access=${access:conditional}' } [0x1108 resolution 24] bicycle:conditional=* & bicycle:conditional ~ '!(sunset|sunrise|destination)' { name 'bicycle=${bicycle:conditional}' } [0x1108 resolution 24] vehicle:conditional=* & vehicle:conditional ~ '!(sunset|sunrise|destination)' { name 'vehicle=${vehicle:conditional}' } [0x1108 resolution 24]
Can you explain what happened with those POI without the patch?
Gerd
________________________________________ Von: mkgmap-dev <mkgmap-dev-bounces@lists.mkgmap.org.uk> im Auftrag von Ticker Berkin <rwb-mkgmap@jagit.co.uk> Gesendet: Dienstag, 22. Oktober 2019 13:07 An: Development list for mkgmap Betreff: Re: [mkgmap-dev] type/subtype of points and cities
Hi Gerd
Here is the patch based on the current trunk
Ticker On Tue, 2019-04-23 at 11:51 +0100, Ticker Berkin wrote:
Hi
I think the mkgmap internal handling of types/subtypes of points is obscure.
In the points style file, the type code is always full, ie type << 8
subtype, but when the points are read back from the RGN file for the MDR processing, the representation is the same provided the subtype is not zero, otherwise it is just type! Logic then decides that if the value is <= 0xff it is because the subtype is zero.
It is simpler and much clearer to preserve the original representation. This also allows unambiguous use of type 0 with subtypes, and, possibly, city with subtypes.
It also allows the same function to be used to test a type for being in the 'city' range, regardless of the context. mkgmap wasn't consistent the ranges for the isCity test.
City POI are written in a different manner to the RGN file. The old range for this was: type >= 0x0100 && type <= 0x1100 which I've kept, except changing to: ...& type < 0x1200. A similar range was used for MDR5.
However, city POI are held in group 1 of MDR 9/10. This is used in Find
City 'By Name'. The old range was: type <= 0xf, where, if the subtype was zero, type is right shifted by 8 (see above), non-zero subtypes messed up the testing. Now it uses the same range as above.
Actually neither of these ranges are correct for my Garmin devices. Find > City show nearby POI with types in the range 0x0100..0x0d1f, regardless of the img RGN or MDR. The eTrex Legend labels POIs in this range as {Large/Medium/Small} City/Town and points in the range 0x0e00..0x111f as "*".
Find > City 'by-name' returns POI if in group 1 of MDR 9/10. I find it a useful feature to have a POI that can be searched for but doesn't flood the list of nearby points.
Generally, non-zero subtypes for cities cause problems in the RGN structure and I've added a test for this to the style validation.
There is also a fix to --make-poi-index, but I can't detect any effect of this option.
This patch won't make any difference to the img output unless the there are points 0x1000, 0x1100.
If this patch is accepted, I'll do the equivalent to the img display system.
Regards Ticker _______________________________________________ mkgmap-dev mailing list mkgmap-dev@lists.mkgmap.org.uk http://www.mkgmap.org.uk/mailman/listinfo/mkgmap-dev
mkgmap-dev mailing list mkgmap-dev@lists.mkgmap.org.uk http://www.mkgmap.org.uk/mailman/listinfo/mkgmap-dev
mkgmap-dev mailing list mkgmap-dev@lists.mkgmap.org.uk http://www.mkgmap.org.uk/mailman/listinfo/mkgmap-dev _______________________________________________ mkgmap-dev mailing list mkgmap-dev@lists.mkgmap.org.uk http://www.mkgmap.org.uk/mailman/listinfo/mkgmap-dev

Hi Gerd To stay compatible with "Openfietsmap full" style, I've updated the patch to change the range of city to be: type >= 0x0100 && type < 0x1100; Release mkgmap had this as: type >= 0x0100 && type <= 0x1100; In release mkgmap, a point with value 0x1100 was added to the RGN as an indPoint, but not indexed as a city by MDR. Also 0x1100 is not findable as a nearby city, at least on Garmin eTrex. I couldn't detect any useful behaviour for this combination. Ticker On Tue, 2019-10-22 at 15:03 +0000, Gerd Petermann wrote:
Hi Minko,
"(like you say)" should have been ... "(like Ticker wrote)" ... (a small dot with the label) ... sorry, I forgot to use the typ file, so 0x1101 is displayed with an icon showing a bus and without the label. But why do you use a type that is not indexed?
Gerd
________________________________________ Von: mkgmap-dev <mkgmap-dev-bounces@lists.mkgmap.org.uk> im Auftrag von Gerd Petermann <gpetermann_muenchen@hotmail.com> Gesendet: Dienstag, 22. Oktober 2019 16:52 An: Development list for mkgmap Betreff: Re: [mkgmap-dev] type/subtype of points and cities
Hi Ticker,
thanks.
@Minko: I've created a small map with "Openfietsmap full" style and trunk r4315 , OSM data contains an amenity=bus_station. The result is that this POI appears in the map (a small dot with the label), but it is not in the mdr (like you say). I found no older versions of mkgmap where this would have worked different, so it seems useless to me because normally I'd want to be able to find the bus station under transport services.
Why do you use 0x1101, 0x1102, or 0x1108 for POI?
Gerd
________________________________________ Von: mkgmap-dev <mkgmap-dev-bounces@lists.mkgmap.org.uk> im Auftrag von Ticker Berkin <rwb-mkgmap@jagit.co.uk> Gesendet: Dienstag, 22. Oktober 2019 16:29 An: Development list for mkgmap Betreff: Re: [mkgmap-dev] type/subtype of points and cities
Hi Gerd
The old reader/osm/Gtype:checkType() didn't diagnose cities (however they might be defined) with non-zero subtypes - this is where the new message comes from.
Old general/MapPoint:isCity[Type] defined city as:
return type >= 0x0100 && type <= 0x1100
ie 0x1100 is city, 0x1101 isn't, which I thought wasn't a good definition, so I changed it to:
return type >= 0x0100 && type < 0x1200;
I chose all of 0x11XX to be considered cities so that 0x1100 processing as a city didn't change (this and 0x1000 were put into RGN indPoints, but were not indexed as cities by MDR)
Changing it to < 0x1100 would be reasonable, because the device range seems to be < 0x0e00 and MDR5 city indexing was for points < 0x1000
Ticker
On Tue, 2019-10-22 at 12:32 +0000, Gerd Petermann wrote:
Hi Ticker,
I see some new warnings for Minkos popular Openfietsmap styles with this patch: checking style: Openfietsmap full Warning: invalid type 0x1101 for POINT in style file points, line 97 Warning: invalid type 0x1102 for POINT in style file points, line 263 Warning: invalid type 0x1102 for POINT in style file points, line 264 Warning: invalid type 0x1108 for POINT in style file points, line 336 Warning: invalid type 0x1108 for POINT in style file points, line 348 Warning: invalid type 0x1108 for POINT in style file points, line 349 Warning: invalid type 0x1108 for POINT in style file points, line 350
The corresponding lines in the points file amenity=bus_station [0x1101 resolution 24 continue] railway=halt [0x1102 resolution 22] railway=station [0x1102 resolution 20-23 continue] (barrier=bollard | barrier=bus_trap | barrier=block) [0x1108 resolution 23] access:conditional=* & access:conditional ~ '!(sunset|sunrise|destination)' & bicycle!=no & bicycle!=permissive & vehicle!=no { name 'access=${access:conditional}' } [0x1108 resolution 24] bicycle:conditional=* & bicycle:conditional ~ '!(sunset|sunrise|destination)' { name 'bicycle=${bicycle:conditional}' } [0x1108 resolution 24] vehicle:conditional=* & vehicle:conditional ~ '!(sunset|sunrise|destination)' { name 'vehicle=${vehicle:conditional}' } [0x1108 resolution 24]
Can you explain what happened with those POI without the patch?
Gerd
________________________________________ Von: mkgmap-dev <mkgmap-dev-bounces@lists.mkgmap.org.uk> im Auftrag von Ticker Berkin <rwb-mkgmap@jagit.co.uk> Gesendet: Dienstag, 22. Oktober 2019 13:07 An: Development list for mkgmap Betreff: Re: [mkgmap-dev] type/subtype of points and cities
Hi Gerd
Here is the patch based on the current trunk
Ticker On Tue, 2019-04-23 at 11:51 +0100, Ticker Berkin wrote:
Hi
I think the mkgmap internal handling of types/subtypes of points is obscure.
In the points style file, the type code is always full, ie type << 8
subtype, but when the points are read back from the RGN file for the MDR processing, the representation is the same provided the subtype is not zero, otherwise it is just type! Logic then decides that if the value is <= 0xff it is because the subtype is zero.
It is simpler and much clearer to preserve the original representation. This also allows unambiguous use of type 0 with subtypes, and, possibly, city with subtypes.
It also allows the same function to be used to test a type for being in the 'city' range, regardless of the context. mkgmap wasn't consistent the ranges for the isCity test.
City POI are written in a different manner to the RGN file. The old range for this was: type >= 0x0100 && type <= 0x1100 which I've kept, except changing to: ...& type < 0x1200. A similar range was used for MDR5.
However, city POI are held in group 1 of MDR 9/10. This is used in Find
City 'By Name'. The old range was: type <= 0xf, where, if the subtype was zero, type is right shifted by 8 (see above), non-zero subtypes messed up the testing. Now it uses the same range as above.
Actually neither of these ranges are correct for my Garmin devices. Find > City show nearby POI with types in the range 0x0100..0x0d1f, regardless of the img RGN or MDR. The eTrex Legend labels POIs in this range as {Large/Medium/Small} City/Town and points in the range 0x0e00..0x111f as "*".
Find > City 'by-name' returns POI if in group 1 of MDR 9/10. I find it a useful feature to have a POI that can be searched for but doesn't flood the list of nearby points.
Generally, non-zero subtypes for cities cause problems in the RGN structure and I've added a test for this to the style validation.
There is also a fix to --make-poi-index, but I can't detect any effect of this option.
This patch won't make any difference to the img output unless the there are points 0x1000, 0x1100.
If this patch is accepted, I'll do the equivalent to the img display system.
Regards Ticker _______________________________________________ mkgmap-dev mailing list mkgmap-dev@lists.mkgmap.org.uk http://www.mkgmap.org.uk/mailman/listinfo/mkgmap-dev
mkgmap-dev mailing list mkgmap-dev@lists.mkgmap.org.uk http://www.mkgmap.org.uk/mailman/listinfo/mkgmap-dev
mkgmap-dev mailing list mkgmap-dev@lists.mkgmap.org.uk http://www.mkgmap.org.uk/mailman/listinfo/mkgmap-dev _______________________________________________ mkgmap-dev mailing list mkgmap-dev@lists.mkgmap.org.uk http://www.mkgmap.org.uk/mailman/listinfo/mkgmap-dev _______________________________________________ mkgmap-dev mailing list mkgmap-dev@lists.mkgmap.org.uk http://www.mkgmap.org.uk/mailman/listinfo/mkgmap-dev

Hi Ticker, okay, looks good to me. In an earlier post you mentioned that display tool needs changes, too. Please post that patch as well. Gerd ________________________________________ Von: mkgmap-dev <mkgmap-dev-bounces@lists.mkgmap.org.uk> im Auftrag von Ticker Berkin <rwb-mkgmap@jagit.co.uk> Gesendet: Montag, 4. November 2019 18:12 An: Development list for mkgmap Betreff: Re: [mkgmap-dev] type/subtype of points and cities Hi Gerd To stay compatible with "Openfietsmap full" style, I've updated the patch to change the range of city to be: type >= 0x0100 && type < 0x1100; Release mkgmap had this as: type >= 0x0100 && type <= 0x1100; In release mkgmap, a point with value 0x1100 was added to the RGN as an indPoint, but not indexed as a city by MDR. Also 0x1100 is not findable as a nearby city, at least on Garmin eTrex. I couldn't detect any useful behaviour for this combination. Ticker On Tue, 2019-10-22 at 15:03 +0000, Gerd Petermann wrote:
Hi Minko,
"(like you say)" should have been ... "(like Ticker wrote)" ... (a small dot with the label) ... sorry, I forgot to use the typ file, so 0x1101 is displayed with an icon showing a bus and without the label. But why do you use a type that is not indexed?
Gerd
________________________________________ Von: mkgmap-dev <mkgmap-dev-bounces@lists.mkgmap.org.uk> im Auftrag von Gerd Petermann <gpetermann_muenchen@hotmail.com> Gesendet: Dienstag, 22. Oktober 2019 16:52 An: Development list for mkgmap Betreff: Re: [mkgmap-dev] type/subtype of points and cities
Hi Ticker,
thanks.
@Minko: I've created a small map with "Openfietsmap full" style and trunk r4315 , OSM data contains an amenity=bus_station. The result is that this POI appears in the map (a small dot with the label), but it is not in the mdr (like you say). I found no older versions of mkgmap where this would have worked different, so it seems useless to me because normally I'd want to be able to find the bus station under transport services.
Why do you use 0x1101, 0x1102, or 0x1108 for POI?
Gerd
________________________________________ Von: mkgmap-dev <mkgmap-dev-bounces@lists.mkgmap.org.uk> im Auftrag von Ticker Berkin <rwb-mkgmap@jagit.co.uk> Gesendet: Dienstag, 22. Oktober 2019 16:29 An: Development list for mkgmap Betreff: Re: [mkgmap-dev] type/subtype of points and cities
Hi Gerd
The old reader/osm/Gtype:checkType() didn't diagnose cities (however they might be defined) with non-zero subtypes - this is where the new message comes from.
Old general/MapPoint:isCity[Type] defined city as:
return type >= 0x0100 && type <= 0x1100
ie 0x1100 is city, 0x1101 isn't, which I thought wasn't a good definition, so I changed it to:
return type >= 0x0100 && type < 0x1200;
I chose all of 0x11XX to be considered cities so that 0x1100 processing as a city didn't change (this and 0x1000 were put into RGN indPoints, but were not indexed as cities by MDR)
Changing it to < 0x1100 would be reasonable, because the device range seems to be < 0x0e00 and MDR5 city indexing was for points < 0x1000
Ticker
On Tue, 2019-10-22 at 12:32 +0000, Gerd Petermann wrote:
Hi Ticker,
I see some new warnings for Minkos popular Openfietsmap styles with this patch: checking style: Openfietsmap full Warning: invalid type 0x1101 for POINT in style file points, line 97 Warning: invalid type 0x1102 for POINT in style file points, line 263 Warning: invalid type 0x1102 for POINT in style file points, line 264 Warning: invalid type 0x1108 for POINT in style file points, line 336 Warning: invalid type 0x1108 for POINT in style file points, line 348 Warning: invalid type 0x1108 for POINT in style file points, line 349 Warning: invalid type 0x1108 for POINT in style file points, line 350
The corresponding lines in the points file amenity=bus_station [0x1101 resolution 24 continue] railway=halt [0x1102 resolution 22] railway=station [0x1102 resolution 20-23 continue] (barrier=bollard | barrier=bus_trap | barrier=block) [0x1108 resolution 23] access:conditional=* & access:conditional ~ '!(sunset|sunrise|destination)' & bicycle!=no & bicycle!=permissive & vehicle!=no { name 'access=${access:conditional}' } [0x1108 resolution 24] bicycle:conditional=* & bicycle:conditional ~ '!(sunset|sunrise|destination)' { name 'bicycle=${bicycle:conditional}' } [0x1108 resolution 24] vehicle:conditional=* & vehicle:conditional ~ '!(sunset|sunrise|destination)' { name 'vehicle=${vehicle:conditional}' } [0x1108 resolution 24]
Can you explain what happened with those POI without the patch?
Gerd
________________________________________ Von: mkgmap-dev <mkgmap-dev-bounces@lists.mkgmap.org.uk> im Auftrag von Ticker Berkin <rwb-mkgmap@jagit.co.uk> Gesendet: Dienstag, 22. Oktober 2019 13:07 An: Development list for mkgmap Betreff: Re: [mkgmap-dev] type/subtype of points and cities
Hi Gerd
Here is the patch based on the current trunk
Ticker On Tue, 2019-04-23 at 11:51 +0100, Ticker Berkin wrote:
Hi
I think the mkgmap internal handling of types/subtypes of points is obscure.
In the points style file, the type code is always full, ie type << 8
subtype, but when the points are read back from the RGN file for the MDR processing, the representation is the same provided the subtype is not zero, otherwise it is just type! Logic then decides that if the value is <= 0xff it is because the subtype is zero.
It is simpler and much clearer to preserve the original representation. This also allows unambiguous use of type 0 with subtypes, and, possibly, city with subtypes.
It also allows the same function to be used to test a type for being in the 'city' range, regardless of the context. mkgmap wasn't consistent the ranges for the isCity test.
City POI are written in a different manner to the RGN file. The old range for this was: type >= 0x0100 && type <= 0x1100 which I've kept, except changing to: ...& type < 0x1200. A similar range was used for MDR5.
However, city POI are held in group 1 of MDR 9/10. This is used in Find
City 'By Name'. The old range was: type <= 0xf, where, if the subtype was zero, type is right shifted by 8 (see above), non-zero subtypes messed up the testing. Now it uses the same range as above.
Actually neither of these ranges are correct for my Garmin devices. Find > City show nearby POI with types in the range 0x0100..0x0d1f, regardless of the img RGN or MDR. The eTrex Legend labels POIs in this range as {Large/Medium/Small} City/Town and points in the range 0x0e00..0x111f as "*".
Find > City 'by-name' returns POI if in group 1 of MDR 9/10. I find it a useful feature to have a POI that can be searched for but doesn't flood the list of nearby points.
Generally, non-zero subtypes for cities cause problems in the RGN structure and I've added a test for this to the style validation.
There is also a fix to --make-poi-index, but I can't detect any effect of this option.
This patch won't make any difference to the img output unless the there are points 0x1000, 0x1100.
If this patch is accepted, I'll do the equivalent to the img display system.
Regards Ticker _______________________________________________ mkgmap-dev mailing list mkgmap-dev@lists.mkgmap.org.uk http://www.mkgmap.org.uk/mailman/listinfo/mkgmap-dev
mkgmap-dev mailing list mkgmap-dev@lists.mkgmap.org.uk http://www.mkgmap.org.uk/mailman/listinfo/mkgmap-dev
mkgmap-dev mailing list mkgmap-dev@lists.mkgmap.org.uk http://www.mkgmap.org.uk/mailman/listinfo/mkgmap-dev _______________________________________________ mkgmap-dev mailing list mkgmap-dev@lists.mkgmap.org.uk http://www.mkgmap.org.uk/mailman/listinfo/mkgmap-dev _______________________________________________ mkgmap-dev mailing list mkgmap-dev@lists.mkgmap.org.uk http://www.mkgmap.org.uk/mailman/listinfo/mkgmap-dev

Hi Gerd Here is patch for Display. Changes are: Couple of extra diagnostics. Handles 1 byte cities. Moves a call of getSection(11).get... out of a loop. Consistent handling/display of point type/subtype. Understands the same MDR groups as generated by mkgmap so it can recreate the correct full type. Ticker On Tue, 2019-11-05 at 09:43 +0000, Gerd Petermann wrote:
Hi Ticker,
okay, looks good to me. In an earlier post you mentioned that display tool needs changes, too. Please post that patch as well.
Gerd
________________________________________ Von: mkgmap-dev <mkgmap-dev-bounces@lists.mkgmap.org.uk> im Auftrag von Ticker Berkin <rwb-mkgmap@jagit.co.uk> Gesendet: Montag, 4. November 2019 18:12 An: Development list for mkgmap Betreff: Re: [mkgmap-dev] type/subtype of points and cities
Hi Gerd
To stay compatible with "Openfietsmap full" style, I've updated the patch to change the range of city to be: type >= 0x0100 && type < 0x1100; Release mkgmap had this as: type >= 0x0100 && type <= 0x1100;
In release mkgmap, a point with value 0x1100 was added to the RGN as an indPoint, but not indexed as a city by MDR. Also 0x1100 is not findable as a nearby city, at least on Garmin eTrex. I couldn't detect any useful behaviour for this combination.
Ticker
On Tue, 2019-10-22 at 15:03 +0000, Gerd Petermann wrote:
Hi Minko,
"(like you say)" should have been ... "(like Ticker wrote)" ... (a small dot with the label) ... sorry, I forgot to use the typ file, so 0x1101 is displayed with an icon showing a bus and without the label. But why do you use a type that is not indexed?
Gerd
________________________________________ Von: mkgmap-dev <mkgmap-dev-bounces@lists.mkgmap.org.uk> im Auftrag von Gerd Petermann <gpetermann_muenchen@hotmail.com> Gesendet: Dienstag, 22. Oktober 2019 16:52 An: Development list for mkgmap Betreff: Re: [mkgmap-dev] type/subtype of points and cities
Hi Ticker,
thanks.
@Minko: I've created a small map with "Openfietsmap full" style and trunk r4315 , OSM data contains an amenity=bus_station. The result is that this POI appears in the map (a small dot with the label), but it is not in the mdr (like you say). I found no older versions of mkgmap where this would have worked different, so it seems useless to me because normally I'd want to be able to find the bus station under transport services.
Why do you use 0x1101, 0x1102, or 0x1108 for POI?
Gerd
________________________________________ Von: mkgmap-dev <mkgmap-dev-bounces@lists.mkgmap.org.uk> im Auftrag von Ticker Berkin <rwb-mkgmap@jagit.co.uk> Gesendet: Dienstag, 22. Oktober 2019 16:29 An: Development list for mkgmap Betreff: Re: [mkgmap-dev] type/subtype of points and cities
Hi Gerd
The old reader/osm/Gtype:checkType() didn't diagnose cities (however they might be defined) with non-zero subtypes - this is where the new message comes from.
Old general/MapPoint:isCity[Type] defined city as:
return type >= 0x0100 && type <= 0x1100
ie 0x1100 is city, 0x1101 isn't, which I thought wasn't a good definition, so I changed it to:
return type >= 0x0100 && type < 0x1200;
I chose all of 0x11XX to be considered cities so that 0x1100 processing as a city didn't change (this and 0x1000 were put into RGN indPoints, but were not indexed as cities by MDR)
Changing it to < 0x1100 would be reasonable, because the device range seems to be < 0x0e00 and MDR5 city indexing was for points < 0x1000
Ticker
On Tue, 2019-10-22 at 12:32 +0000, Gerd Petermann wrote:
Hi Ticker,
I see some new warnings for Minkos popular Openfietsmap styles with this patch: checking style: Openfietsmap full Warning: invalid type 0x1101 for POINT in style file points, line 97 Warning: invalid type 0x1102 for POINT in style file points, line 263 Warning: invalid type 0x1102 for POINT in style file points, line 264 Warning: invalid type 0x1108 for POINT in style file points, line 336 Warning: invalid type 0x1108 for POINT in style file points, line 348 Warning: invalid type 0x1108 for POINT in style file points, line 349 Warning: invalid type 0x1108 for POINT in style file points, line 350
The corresponding lines in the points file amenity=bus_station [0x1101 resolution 24 continue] railway=halt [0x1102 resolution 22] railway=station [0x1102 resolution 20-23 continue] (barrier=bollard | barrier=bus_trap | barrier=block) [0x1108 resolution 23] access:conditional=* & access:conditional ~ '!(sunset|sunrise|destination)' & bicycle!=no & bicycle!=permissive & vehicle!=no { name 'access=${access:conditional}' } [0x1108 resolution 24] bicycle:conditional=* & bicycle:conditional ~ '!(sunset|sunrise|destination)' { name 'bicycle=${bicycle:conditional}' } [0x1108 resolution 24] vehicle:conditional=* & vehicle:conditional ~ '!(sunset|sunrise|destination)' { name 'vehicle=${vehicle:conditional}' } [0x1108 resolution 24]
Can you explain what happened with those POI without the patch?
Gerd
________________________________________ Von: mkgmap-dev <mkgmap-dev-bounces@lists.mkgmap.org.uk> im Auftrag von Ticker Berkin <rwb-mkgmap@jagit.co.uk> Gesendet: Dienstag, 22. Oktober 2019 13:07 An: Development list for mkgmap Betreff: Re: [mkgmap-dev] type/subtype of points and cities
Hi Gerd
Here is the patch based on the current trunk
Ticker On Tue, 2019-04-23 at 11:51 +0100, Ticker Berkin wrote:
Hi
I think the mkgmap internal handling of types/subtypes of points is obscure.
In the points style file, the type code is always full, ie type << 8
subtype, but when the points are read back from the RGN file for the MDR processing, the representation is the same provided the subtype is not zero, otherwise it is just type! Logic then decides that if the value is <= 0xff it is because the subtype is zero.
It is simpler and much clearer to preserve the original representation. This also allows unambiguous use of type 0 with subtypes, and, possibly, city with subtypes.
It also allows the same function to be used to test a type for being in the 'city' range, regardless of the context. mkgmap wasn't consistent the ranges for the isCity test.
City POI are written in a different manner to the RGN file. The old range for this was: type >= 0x0100 && type <= 0x1100 which I've kept, except changing to: ...& type < 0x1200. A similar range was used for MDR5.
However, city POI are held in group 1 of MDR 9/10. This is used in Find
City 'By Name'. The old range was: type <= 0xf, where, if the subtype was zero, type is right shifted by 8 (see above), non-zero subtypes messed up the testing. Now it uses the same range as above.
Actually neither of these ranges are correct for my Garmin devices. Find > City show nearby POI with types in the range 0x0100..0x0d1f, regardless of the img RGN or MDR. The eTrex Legend labels POIs in this range as {Large/Medium/Small} City/Town and points in the range 0x0e00..0x111f as "*".
Find > City 'by-name' returns POI if in group 1 of MDR 9/10. I find it a useful feature to have a POI that can be searched for but doesn't flood the list of nearby points.
Generally, non-zero subtypes for cities cause problems in the RGN structure and I've added a test for this to the style validation.
There is also a fix to --make-poi-index, but I can't detect any effect of this option.
This patch won't make any difference to the img output unless the there are points 0x1000, 0x1100.
If this patch is accepted, I'll do the equivalent to the img display system.
Regards Ticker _______________________________________________ mkgmap-dev mailing list mkgmap-dev@lists.mkgmap.org.uk http://www.mkgmap.org.uk/mailman/listinfo/mkgmap-dev
mkgmap-dev mailing list mkgmap-dev@lists.mkgmap.org.uk http://www.mkgmap.org.uk/mailman/listinfo/mkgmap-dev
mkgmap-dev mailing list mkgmap-dev@lists.mkgmap.org.uk http://www.mkgmap.org.uk/mailman/listinfo/mkgmap-dev _______________________________________________ mkgmap-dev mailing list mkgmap-dev@lists.mkgmap.org.uk http://www.mkgmap.org.uk/mailman/listinfo/mkgmap-dev _______________________________________________ mkgmap-dev mailing list mkgmap-dev@lists.mkgmap.org.uk http://www.mkgmap.org.uk/mailman/listinfo/mkgmap-dev

Hi Ticker, the code in MdrDisplay sets cityPtrSize to either 2 or 3, so maybe perform the test once in printHeader() using the logger instead of System.out.printf()? Gerd ________________________________________ Von: mkgmap-dev <mkgmap-dev-bounces@lists.mkgmap.org.uk> im Auftrag von Ticker Berkin <rwb-mkgmap@jagit.co.uk> Gesendet: Dienstag, 5. November 2019 12:44 An: mkgmap development Betreff: Re: [mkgmap-dev] type/subtype of points and cities Hi Gerd Here is patch for Display. Changes are: Couple of extra diagnostics. Handles 1 byte cities. Moves a call of getSection(11).get... out of a loop. Consistent handling/display of point type/subtype. Understands the same MDR groups as generated by mkgmap so it can recreate the correct full type. Ticker On Tue, 2019-11-05 at 09:43 +0000, Gerd Petermann wrote:
Hi Ticker,
okay, looks good to me. In an earlier post you mentioned that display tool needs changes, too. Please post that patch as well.
Gerd
________________________________________ Von: mkgmap-dev <mkgmap-dev-bounces@lists.mkgmap.org.uk> im Auftrag von Ticker Berkin <rwb-mkgmap@jagit.co.uk> Gesendet: Montag, 4. November 2019 18:12 An: Development list for mkgmap Betreff: Re: [mkgmap-dev] type/subtype of points and cities
Hi Gerd
To stay compatible with "Openfietsmap full" style, I've updated the patch to change the range of city to be: type >= 0x0100 && type < 0x1100; Release mkgmap had this as: type >= 0x0100 && type <= 0x1100;
In release mkgmap, a point with value 0x1100 was added to the RGN as an indPoint, but not indexed as a city by MDR. Also 0x1100 is not findable as a nearby city, at least on Garmin eTrex. I couldn't detect any useful behaviour for this combination.
Ticker
On Tue, 2019-10-22 at 15:03 +0000, Gerd Petermann wrote:
Hi Minko,
"(like you say)" should have been ... "(like Ticker wrote)" ... (a small dot with the label) ... sorry, I forgot to use the typ file, so 0x1101 is displayed with an icon showing a bus and without the label. But why do you use a type that is not indexed?
Gerd
________________________________________ Von: mkgmap-dev <mkgmap-dev-bounces@lists.mkgmap.org.uk> im Auftrag von Gerd Petermann <gpetermann_muenchen@hotmail.com> Gesendet: Dienstag, 22. Oktober 2019 16:52 An: Development list for mkgmap Betreff: Re: [mkgmap-dev] type/subtype of points and cities
Hi Ticker,
thanks.
@Minko: I've created a small map with "Openfietsmap full" style and trunk r4315 , OSM data contains an amenity=bus_station. The result is that this POI appears in the map (a small dot with the label), but it is not in the mdr (like you say). I found no older versions of mkgmap where this would have worked different, so it seems useless to me because normally I'd want to be able to find the bus station under transport services.
Why do you use 0x1101, 0x1102, or 0x1108 for POI?
Gerd
________________________________________ Von: mkgmap-dev <mkgmap-dev-bounces@lists.mkgmap.org.uk> im Auftrag von Ticker Berkin <rwb-mkgmap@jagit.co.uk> Gesendet: Dienstag, 22. Oktober 2019 16:29 An: Development list for mkgmap Betreff: Re: [mkgmap-dev] type/subtype of points and cities
Hi Gerd
The old reader/osm/Gtype:checkType() didn't diagnose cities (however they might be defined) with non-zero subtypes - this is where the new message comes from.
Old general/MapPoint:isCity[Type] defined city as:
return type >= 0x0100 && type <= 0x1100
ie 0x1100 is city, 0x1101 isn't, which I thought wasn't a good definition, so I changed it to:
return type >= 0x0100 && type < 0x1200;
I chose all of 0x11XX to be considered cities so that 0x1100 processing as a city didn't change (this and 0x1000 were put into RGN indPoints, but were not indexed as cities by MDR)
Changing it to < 0x1100 would be reasonable, because the device range seems to be < 0x0e00 and MDR5 city indexing was for points < 0x1000
Ticker
On Tue, 2019-10-22 at 12:32 +0000, Gerd Petermann wrote:
Hi Ticker,
I see some new warnings for Minkos popular Openfietsmap styles with this patch: checking style: Openfietsmap full Warning: invalid type 0x1101 for POINT in style file points, line 97 Warning: invalid type 0x1102 for POINT in style file points, line 263 Warning: invalid type 0x1102 for POINT in style file points, line 264 Warning: invalid type 0x1108 for POINT in style file points, line 336 Warning: invalid type 0x1108 for POINT in style file points, line 348 Warning: invalid type 0x1108 for POINT in style file points, line 349 Warning: invalid type 0x1108 for POINT in style file points, line 350
The corresponding lines in the points file amenity=bus_station [0x1101 resolution 24 continue] railway=halt [0x1102 resolution 22] railway=station [0x1102 resolution 20-23 continue] (barrier=bollard | barrier=bus_trap | barrier=block) [0x1108 resolution 23] access:conditional=* & access:conditional ~ '!(sunset|sunrise|destination)' & bicycle!=no & bicycle!=permissive & vehicle!=no { name 'access=${access:conditional}' } [0x1108 resolution 24] bicycle:conditional=* & bicycle:conditional ~ '!(sunset|sunrise|destination)' { name 'bicycle=${bicycle:conditional}' } [0x1108 resolution 24] vehicle:conditional=* & vehicle:conditional ~ '!(sunset|sunrise|destination)' { name 'vehicle=${vehicle:conditional}' } [0x1108 resolution 24]
Can you explain what happened with those POI without the patch?
Gerd
________________________________________ Von: mkgmap-dev <mkgmap-dev-bounces@lists.mkgmap.org.uk> im Auftrag von Ticker Berkin <rwb-mkgmap@jagit.co.uk> Gesendet: Dienstag, 22. Oktober 2019 13:07 An: Development list for mkgmap Betreff: Re: [mkgmap-dev] type/subtype of points and cities
Hi Gerd
Here is the patch based on the current trunk
Ticker On Tue, 2019-04-23 at 11:51 +0100, Ticker Berkin wrote:
Hi
I think the mkgmap internal handling of types/subtypes of points is obscure.
In the points style file, the type code is always full, ie type << 8
subtype, but when the points are read back from the RGN file for the MDR processing, the representation is the same provided the subtype is not zero, otherwise it is just type! Logic then decides that if the value is <= 0xff it is because the subtype is zero.
It is simpler and much clearer to preserve the original representation. This also allows unambiguous use of type 0 with subtypes, and, possibly, city with subtypes.
It also allows the same function to be used to test a type for being in the 'city' range, regardless of the context. mkgmap wasn't consistent the ranges for the isCity test.
City POI are written in a different manner to the RGN file. The old range for this was: type >= 0x0100 && type <= 0x1100 which I've kept, except changing to: ...& type < 0x1200. A similar range was used for MDR5.
However, city POI are held in group 1 of MDR 9/10. This is used in Find
City 'By Name'. The old range was: type <= 0xf, where, if the subtype was zero, type is right shifted by 8 (see above), non-zero subtypes messed up the testing. Now it uses the same range as above.
Actually neither of these ranges are correct for my Garmin devices. Find > City show nearby POI with types in the range 0x0100..0x0d1f, regardless of the img RGN or MDR. The eTrex Legend labels POIs in this range as {Large/Medium/Small} City/Town and points in the range 0x0e00..0x111f as "*".
Find > City 'by-name' returns POI if in group 1 of MDR 9/10. I find it a useful feature to have a POI that can be searched for but doesn't flood the list of nearby points.
Generally, non-zero subtypes for cities cause problems in the RGN structure and I've added a test for this to the style validation.
There is also a fix to --make-poi-index, but I can't detect any effect of this option.
This patch won't make any difference to the img output unless the there are points 0x1000, 0x1100.
If this patch is accepted, I'll do the equivalent to the img display system.
Regards Ticker _______________________________________________ mkgmap-dev mailing list mkgmap-dev@lists.mkgmap.org.uk http://www.mkgmap.org.uk/mailman/listinfo/mkgmap-dev
mkgmap-dev mailing list mkgmap-dev@lists.mkgmap.org.uk http://www.mkgmap.org.uk/mailman/listinfo/mkgmap-dev
mkgmap-dev mailing list mkgmap-dev@lists.mkgmap.org.uk http://www.mkgmap.org.uk/mailman/listinfo/mkgmap-dev _______________________________________________ mkgmap-dev mailing list mkgmap-dev@lists.mkgmap.org.uk http://www.mkgmap.org.uk/mailman/listinfo/mkgmap-dev _______________________________________________ mkgmap-dev mailing list mkgmap-dev@lists.mkgmap.org.uk http://www.mkgmap.org.uk/mailman/listinfo/mkgmap-dev

Hi Gerd cityPtrSize exists twice in MdrDisplay. It is a global, based on the number of records on MDR5, and rounded up to 2. This is used by MDR11 as for the list of city offsets. Mdr5, the list of cities, has its own cityPtrSize from the magic number in the Mdr5 header. The extra check I put in was a message if this size wasn't 2 or 3, and I couldn't see a good way of outputting messages in the Displayer context. Otherwise I left this area alone Ticker On Tue, 2019-11-05 at 13:47 +0000, Gerd Petermann wrote:
Hi Ticker,
the code in MdrDisplay sets cityPtrSize to either 2 or 3, so maybe perform the test once in printHeader() using the logger instead of System.out.printf()?
Gerd
________________________________________ Von: mkgmap-dev <mkgmap-dev-bounces@lists.mkgmap.org.uk> im Auftrag von Ticker Berkin <rwb-mkgmap@jagit.co.uk> Gesendet: Dienstag, 5. November 2019 12:44 An: mkgmap development Betreff: Re: [mkgmap-dev] type/subtype of points and cities
Hi Gerd
Here is patch for Display.
Changes are: Couple of extra diagnostics. Handles 1 byte cities. Moves a call of getSection(11).get... out of a loop. Consistent handling/display of point type/subtype. Understands the same MDR groups as generated by mkgmap so it can recreate the correct full type.
Ticker
On Tue, 2019-11-05 at 09:43 +0000, Gerd Petermann wrote:
Hi Ticker,
okay, looks good to me. In an earlier post you mentioned that display tool needs changes, too. Please post that patch as well.
Gerd
________________________________________ Von: mkgmap-dev <mkgmap-dev-bounces@lists.mkgmap.org.uk> im Auftrag von Ticker Berkin <rwb-mkgmap@jagit.co.uk> Gesendet: Montag, 4. November 2019 18:12 An: Development list for mkgmap Betreff: Re: [mkgmap-dev] type/subtype of points and cities
Hi Gerd
To stay compatible with "Openfietsmap full" style, I've updated the patch to change the range of city to be: type >= 0x0100 && type < 0x1100; Release mkgmap had this as: type >= 0x0100 && type <= 0x1100;
In release mkgmap, a point with value 0x1100 was added to the RGN as an indPoint, but not indexed as a city by MDR. Also 0x1100 is not findable as a nearby city, at least on Garmin eTrex. I couldn't detect any useful behaviour for this combination.
Ticker
On Tue, 2019-10-22 at 15:03 +0000, Gerd Petermann wrote:
Hi Minko,
"(like you say)" should have been ... "(like Ticker wrote)" ... (a small dot with the label) ... sorry, I forgot to use the typ file, so 0x1101 is displayed with an icon showing a bus and without the label. But why do you use a type that is not indexed?
Gerd
________________________________________ Von: mkgmap-dev <mkgmap-dev-bounces@lists.mkgmap.org.uk> im Auftrag von Gerd Petermann <gpetermann_muenchen@hotmail.com> Gesendet: Dienstag, 22. Oktober 2019 16:52 An: Development list for mkgmap Betreff: Re: [mkgmap-dev] type/subtype of points and cities
Hi Ticker,
thanks.
@Minko: I've created a small map with "Openfietsmap full" style and trunk r4315 , OSM data contains an amenity=bus_station. The result is that this POI appears in the map (a small dot with the label), but it is not in the mdr (like you say). I found no older versions of mkgmap where this would have worked different, so it seems useless to me because normally I'd want to be able to find the bus station under transport services.
Why do you use 0x1101, 0x1102, or 0x1108 for POI?
Gerd
________________________________________ Von: mkgmap-dev <mkgmap-dev-bounces@lists.mkgmap.org.uk> im Auftrag von Ticker Berkin <rwb-mkgmap@jagit.co.uk> Gesendet: Dienstag, 22. Oktober 2019 16:29 An: Development list for mkgmap Betreff: Re: [mkgmap-dev] type/subtype of points and cities
Hi Gerd
The old reader/osm/Gtype:checkType() didn't diagnose cities (however they might be defined) with non-zero subtypes - this is where the new message comes from.
Old general/MapPoint:isCity[Type] defined city as:
return type >= 0x0100 && type <= 0x1100
ie 0x1100 is city, 0x1101 isn't, which I thought wasn't a good definition, so I changed it to:
return type >= 0x0100 && type < 0x1200;
I chose all of 0x11XX to be considered cities so that 0x1100 processing as a city didn't change (this and 0x1000 were put into RGN indPoints, but were not indexed as cities by MDR)
Changing it to < 0x1100 would be reasonable, because the device range seems to be < 0x0e00 and MDR5 city indexing was for points < 0x1000
Ticker
On Tue, 2019-10-22 at 12:32 +0000, Gerd Petermann wrote:
Hi Ticker,
I see some new warnings for Minkos popular Openfietsmap styles with this patch: checking style: Openfietsmap full Warning: invalid type 0x1101 for POINT in style file points, line 97 Warning: invalid type 0x1102 for POINT in style file points, line 263 Warning: invalid type 0x1102 for POINT in style file points, line 264 Warning: invalid type 0x1108 for POINT in style file points, line 336 Warning: invalid type 0x1108 for POINT in style file points, line 348 Warning: invalid type 0x1108 for POINT in style file points, line 349 Warning: invalid type 0x1108 for POINT in style file points, line 350
The corresponding lines in the points file amenity=bus_station [0x1101 resolution 24 continue] railway=halt [0x1102 resolution 22] railway=station [0x1102 resolution 20-23 continue] (barrier=bollard | barrier=bus_trap | barrier=block) [0x1108 resolution 23] access:conditional=* & access:conditional ~ '!(sunset|sunrise|destination)' & bicycle!=no & bicycle!=permissive & vehicle!=no { name 'access=${access:conditional}' } [0x1108 resolution 24] bicycle:conditional=* & bicycle:conditional ~ '!(sunset|sunrise|destination)' { name 'bicycle=${bicycle:conditional}' } [0x1108 resolution 24] vehicle:conditional=* & vehicle:conditional ~ '!(sunset|sunrise|destination)' { name 'vehicle=${vehicle:conditional}' } [0x1108 resolution 24]
Can you explain what happened with those POI without the patch?
Gerd
________________________________________ Von: mkgmap-dev <mkgmap-dev-bounces@lists.mkgmap.org.uk> im Auftrag von Ticker Berkin <rwb-mkgmap@jagit.co.uk> Gesendet: Dienstag, 22. Oktober 2019 13:07 An: Development list for mkgmap Betreff: Re: [mkgmap-dev] type/subtype of points and cities
Hi Gerd
Here is the patch based on the current trunk
Ticker On Tue, 2019-04-23 at 11:51 +0100, Ticker Berkin wrote:
Hi
I think the mkgmap internal handling of types/subtypes of points is obscure.
In the points style file, the type code is always full, ie type << 8
subtype, but when the points are read back from the RGN file for the MDR processing, the representation is the same provided the subtype is not zero, otherwise it is just type! Logic then decides that if the value is <= 0xff it is because the subtype is zero.
It is simpler and much clearer to preserve the original representation. This also allows unambiguous use of type 0 with subtypes, and, possibly, city with subtypes.
It also allows the same function to be used to test a type for being in the 'city' range, regardless of the context. mkgmap wasn't consistent the ranges for the isCity test.
City POI are written in a different manner to the RGN file. The old range for this was: type >= 0x0100 && type <= 0x1100 which I've kept, except changing to: ...& type < 0x1200. A similar range was used for MDR5.
However, city POI are held in group 1 of MDR 9/10. This is used in Find
City 'By Name'. The old range was: type <= 0xf, where, if the subtype was zero, type is right shifted by 8 (see above), non-zero subtypes messed up the testing. Now it uses the same range as above.
Actually neither of these ranges are correct for my Garmin devices. Find > City show nearby POI with types in the range 0x0100..0x0d1f, regardless of the img RGN or MDR. The eTrex Legend labels POIs in this range as {Large/Medium/Small} City/Town and points in the range 0x0e00..0x111f as "*".
Find > City 'by-name' returns POI if in group 1 of MDR 9/10. I find it a useful feature to have a POI that can be searched for but doesn't flood the list of nearby points.
Generally, non-zero subtypes for cities cause problems in the RGN structure and I've added a test for this to the style validation.
There is also a fix to --make-poi-index, but I can't detect any effect of this option.
This patch won't make any difference to the img output unless the there are points 0x1000, 0x1100.
If this patch is accepted, I'll do the equivalent to the img display system.
Regards Ticker _______________________________________________ mkgmap-dev mailing list mkgmap-dev@lists.mkgmap.org.uk http://www.mkgmap.org.uk/mailman/listinfo/mkgmap-dev
mkgmap-dev mailing list mkgmap-dev@lists.mkgmap.org.uk http://www.mkgmap.org.uk/mailman/listinfo/mkgmap-dev
mkgmap-dev mailing list mkgmap-dev@lists.mkgmap.org.uk http://www.mkgmap.org.uk/mailman/listinfo/mkgmap-dev _______________________________________________ mkgmap-dev mailing list mkgmap-dev@lists.mkgmap.org.uk http://www.mkgmap.org.uk/mailman/listinfo/mkgmap-dev _______________________________________________ mkgmap-dev mailing list mkgmap-dev@lists.mkgmap.org.uk http://www.mkgmap.org.uk/mailman/listinfo/mkgmap-dev

Hi Ticker, yes, mdr5 pointer can be one byte, but the mdr11 pointer seems to contain a flag byte. It seems that mkgmap always sets this flag, no idea why. There is a parameter isNew which is always true, this looks suspicious. I'll play with this tomorrow. Gerd ________________________________________ Von: mkgmap-dev <mkgmap-dev-bounces@lists.mkgmap.org.uk> im Auftrag von Ticker Berkin <rwb-mkgmap@jagit.co.uk> Gesendet: Dienstag, 5. November 2019 17:22 An: mkgmap development Betreff: Re: [mkgmap-dev] type/subtype of points and cities Hi Gerd cityPtrSize exists twice in MdrDisplay. It is a global, based on the number of records on MDR5, and rounded up to 2. This is used by MDR11 as for the list of city offsets. Mdr5, the list of cities, has its own cityPtrSize from the magic number in the Mdr5 header. The extra check I put in was a message if this size wasn't 2 or 3, and I couldn't see a good way of outputting messages in the Displayer context. Otherwise I left this area alone Ticker On Tue, 2019-11-05 at 13:47 +0000, Gerd Petermann wrote:
Hi Ticker,
the code in MdrDisplay sets cityPtrSize to either 2 or 3, so maybe perform the test once in printHeader() using the logger instead of System.out.printf()?
Gerd
________________________________________ Von: mkgmap-dev <mkgmap-dev-bounces@lists.mkgmap.org.uk> im Auftrag von Ticker Berkin <rwb-mkgmap@jagit.co.uk> Gesendet: Dienstag, 5. November 2019 12:44 An: mkgmap development Betreff: Re: [mkgmap-dev] type/subtype of points and cities
Hi Gerd
Here is patch for Display.
Changes are: Couple of extra diagnostics. Handles 1 byte cities. Moves a call of getSection(11).get... out of a loop. Consistent handling/display of point type/subtype. Understands the same MDR groups as generated by mkgmap so it can recreate the correct full type.
Ticker
On Tue, 2019-11-05 at 09:43 +0000, Gerd Petermann wrote:
Hi Ticker,
okay, looks good to me. In an earlier post you mentioned that display tool needs changes, too. Please post that patch as well.
Gerd
________________________________________ Von: mkgmap-dev <mkgmap-dev-bounces@lists.mkgmap.org.uk> im Auftrag von Ticker Berkin <rwb-mkgmap@jagit.co.uk> Gesendet: Montag, 4. November 2019 18:12 An: Development list for mkgmap Betreff: Re: [mkgmap-dev] type/subtype of points and cities
Hi Gerd
To stay compatible with "Openfietsmap full" style, I've updated the patch to change the range of city to be: type >= 0x0100 && type < 0x1100; Release mkgmap had this as: type >= 0x0100 && type <= 0x1100;
In release mkgmap, a point with value 0x1100 was added to the RGN as an indPoint, but not indexed as a city by MDR. Also 0x1100 is not findable as a nearby city, at least on Garmin eTrex. I couldn't detect any useful behaviour for this combination.
Ticker
On Tue, 2019-10-22 at 15:03 +0000, Gerd Petermann wrote:
Hi Minko,
"(like you say)" should have been ... "(like Ticker wrote)" ... (a small dot with the label) ... sorry, I forgot to use the typ file, so 0x1101 is displayed with an icon showing a bus and without the label. But why do you use a type that is not indexed?
Gerd
________________________________________ Von: mkgmap-dev <mkgmap-dev-bounces@lists.mkgmap.org.uk> im Auftrag von Gerd Petermann <gpetermann_muenchen@hotmail.com> Gesendet: Dienstag, 22. Oktober 2019 16:52 An: Development list for mkgmap Betreff: Re: [mkgmap-dev] type/subtype of points and cities
Hi Ticker,
thanks.
@Minko: I've created a small map with "Openfietsmap full" style and trunk r4315 , OSM data contains an amenity=bus_station. The result is that this POI appears in the map (a small dot with the label), but it is not in the mdr (like you say). I found no older versions of mkgmap where this would have worked different, so it seems useless to me because normally I'd want to be able to find the bus station under transport services.
Why do you use 0x1101, 0x1102, or 0x1108 for POI?
Gerd
________________________________________ Von: mkgmap-dev <mkgmap-dev-bounces@lists.mkgmap.org.uk> im Auftrag von Ticker Berkin <rwb-mkgmap@jagit.co.uk> Gesendet: Dienstag, 22. Oktober 2019 16:29 An: Development list for mkgmap Betreff: Re: [mkgmap-dev] type/subtype of points and cities
Hi Gerd
The old reader/osm/Gtype:checkType() didn't diagnose cities (however they might be defined) with non-zero subtypes - this is where the new message comes from.
Old general/MapPoint:isCity[Type] defined city as:
return type >= 0x0100 && type <= 0x1100
ie 0x1100 is city, 0x1101 isn't, which I thought wasn't a good definition, so I changed it to:
return type >= 0x0100 && type < 0x1200;
I chose all of 0x11XX to be considered cities so that 0x1100 processing as a city didn't change (this and 0x1000 were put into RGN indPoints, but were not indexed as cities by MDR)
Changing it to < 0x1100 would be reasonable, because the device range seems to be < 0x0e00 and MDR5 city indexing was for points < 0x1000
Ticker
On Tue, 2019-10-22 at 12:32 +0000, Gerd Petermann wrote:
Hi Ticker,
I see some new warnings for Minkos popular Openfietsmap styles with this patch: checking style: Openfietsmap full Warning: invalid type 0x1101 for POINT in style file points, line 97 Warning: invalid type 0x1102 for POINT in style file points, line 263 Warning: invalid type 0x1102 for POINT in style file points, line 264 Warning: invalid type 0x1108 for POINT in style file points, line 336 Warning: invalid type 0x1108 for POINT in style file points, line 348 Warning: invalid type 0x1108 for POINT in style file points, line 349 Warning: invalid type 0x1108 for POINT in style file points, line 350
The corresponding lines in the points file amenity=bus_station [0x1101 resolution 24 continue] railway=halt [0x1102 resolution 22] railway=station [0x1102 resolution 20-23 continue] (barrier=bollard | barrier=bus_trap | barrier=block) [0x1108 resolution 23] access:conditional=* & access:conditional ~ '!(sunset|sunrise|destination)' & bicycle!=no & bicycle!=permissive & vehicle!=no { name 'access=${access:conditional}' } [0x1108 resolution 24] bicycle:conditional=* & bicycle:conditional ~ '!(sunset|sunrise|destination)' { name 'bicycle=${bicycle:conditional}' } [0x1108 resolution 24] vehicle:conditional=* & vehicle:conditional ~ '!(sunset|sunrise|destination)' { name 'vehicle=${vehicle:conditional}' } [0x1108 resolution 24]
Can you explain what happened with those POI without the patch?
Gerd
________________________________________ Von: mkgmap-dev <mkgmap-dev-bounces@lists.mkgmap.org.uk> im Auftrag von Ticker Berkin <rwb-mkgmap@jagit.co.uk> Gesendet: Dienstag, 22. Oktober 2019 13:07 An: Development list for mkgmap Betreff: Re: [mkgmap-dev] type/subtype of points and cities
Hi Gerd
Here is the patch based on the current trunk
Ticker On Tue, 2019-04-23 at 11:51 +0100, Ticker Berkin wrote:
Hi
I think the mkgmap internal handling of types/subtypes of points is obscure.
In the points style file, the type code is always full, ie type << 8
subtype, but when the points are read back from the RGN file for the MDR processing, the representation is the same provided the subtype is not zero, otherwise it is just type! Logic then decides that if the value is <= 0xff it is because the subtype is zero.
It is simpler and much clearer to preserve the original representation. This also allows unambiguous use of type 0 with subtypes, and, possibly, city with subtypes.
It also allows the same function to be used to test a type for being in the 'city' range, regardless of the context. mkgmap wasn't consistent the ranges for the isCity test.
City POI are written in a different manner to the RGN file. The old range for this was: type >= 0x0100 && type <= 0x1100 which I've kept, except changing to: ...& type < 0x1200. A similar range was used for MDR5.
However, city POI are held in group 1 of MDR 9/10. This is used in Find
City 'By Name'. The old range was: type <= 0xf, where, if the subtype was zero, type is right shifted by 8 (see above), non-zero subtypes messed up the testing. Now it uses the same range as above.
Actually neither of these ranges are correct for my Garmin devices. Find > City show nearby POI with types in the range 0x0100..0x0d1f, regardless of the img RGN or MDR. The eTrex Legend labels POIs in this range as {Large/Medium/Small} City/Town and points in the range 0x0e00..0x111f as "*".
Find > City 'by-name' returns POI if in group 1 of MDR 9/10. I find it a useful feature to have a POI that can be searched for but doesn't flood the list of nearby points.
Generally, non-zero subtypes for cities cause problems in the RGN structure and I've added a test for this to the style validation.
There is also a fix to --make-poi-index, but I can't detect any effect of this option.
This patch won't make any difference to the img output unless the there are points 0x1000, 0x1100.
If this patch is accepted, I'll do the equivalent to the img display system.
Regards Ticker _______________________________________________ mkgmap-dev mailing list mkgmap-dev@lists.mkgmap.org.uk http://www.mkgmap.org.uk/mailman/listinfo/mkgmap-dev
mkgmap-dev mailing list mkgmap-dev@lists.mkgmap.org.uk http://www.mkgmap.org.uk/mailman/listinfo/mkgmap-dev
mkgmap-dev mailing list mkgmap-dev@lists.mkgmap.org.uk http://www.mkgmap.org.uk/mailman/listinfo/mkgmap-dev _______________________________________________ mkgmap-dev mailing list mkgmap-dev@lists.mkgmap.org.uk http://www.mkgmap.org.uk/mailman/listinfo/mkgmap-dev _______________________________________________ mkgmap-dev mailing list mkgmap-dev@lists.mkgmap.org.uk http://www.mkgmap.org.uk/mailman/listinfo/mkgmap-dev
mkgmap-dev mailing list mkgmap-dev@lists.mkgmap.org.uk http://www.mkgmap.org.uk/mailman/listinfo/mkgmap-dev

Hi all, you may be able to take also a look at Mapsoure--> find Places--> City : filter 'Country' type in 'D' --> it shows me for example /'DEU (Deutschland)/' and in a different spelling '/Deutschland (DEU//')/. , or/Spanien(ESP)/ and /ESP(Spanien)/.Why do I see 2 entries with different names for each country ? I assume, it comes from mdr. This phenomenon exists already since years. It seems for me senseless . regards thomas Am 05.11.2019 um 17:49 schrieb Gerd Petermann:
Hi Ticker,
yes, mdr5 pointer can be one byte, but the mdr11 pointer seems to contain a flag byte. It seems that mkgmap always sets this flag, no idea why. There is a parameter isNew which is always true, this looks suspicious. I'll play with this tomorrow.
Gerd
________________________________________ Von: mkgmap-dev <mkgmap-dev-bounces@lists.mkgmap.org.uk> im Auftrag von Ticker Berkin <rwb-mkgmap@jagit.co.uk> Gesendet: Dienstag, 5. November 2019 17:22 An: mkgmap development Betreff: Re: [mkgmap-dev] type/subtype of points and cities
Hi Gerd
cityPtrSize exists twice in MdrDisplay.
It is a global, based on the number of records on MDR5, and rounded up to 2. This is used by MDR11 as for the list of city offsets.
Mdr5, the list of cities, has its own cityPtrSize from the magic number in the Mdr5 header. The extra check I put in was a message if this size wasn't 2 or 3, and I couldn't see a good way of outputting messages in the Displayer context.
Otherwise I left this area alone
Ticker

Hi Thomas, I think it is Mapsouse which does that and it is wanted. Gerd ________________________________________ Von: mkgmap-dev <mkgmap-dev-bounces@lists.mkgmap.org.uk> im Auftrag von Thomas Morgenstern <webmaster@img2ms.de> Gesendet: Dienstag, 5. November 2019 18:46 An: mkgmap-dev@lists.mkgmap.org.uk Betreff: Re: [mkgmap-dev] type/subtype of points and cities Hi all, you may be able to take also a look at Mapsoure--> find Places--> City : filter 'Country' type in 'D' --> it shows me for example 'DEU (Deutschland)' and in a different spelling 'Deutschland (DEU'). , or Spanien(ESP) and ESP(Spanien). Why do I see 2 entries with different names for each country ? I assume, it comes from mdr. This phenomenon exists already since years. It seems for me senseless . regards thomas Am 05.11.2019 um 17:49 schrieb Gerd Petermann: Hi Ticker, yes, mdr5 pointer can be one byte, but the mdr11 pointer seems to contain a flag byte. It seems that mkgmap always sets this flag, no idea why. There is a parameter isNew which is always true, this looks suspicious. I'll play with this tomorrow. Gerd ________________________________________ Von: mkgmap-dev <mkgmap-dev-bounces@lists.mkgmap.org.uk><mailto:mkgmap-dev-bounces@lists.mkgmap.org.uk> im Auftrag von Ticker Berkin <rwb-mkgmap@jagit.co.uk><mailto:rwb-mkgmap@jagit.co.uk> Gesendet: Dienstag, 5. November 2019 17:22 An: mkgmap development Betreff: Re: [mkgmap-dev] type/subtype of points and cities Hi Gerd cityPtrSize exists twice in MdrDisplay. It is a global, based on the number of records on MDR5, and rounded up to 2. This is used by MDR11 as for the list of city offsets. Mdr5, the list of cities, has its own cityPtrSize from the magic number in the Mdr5 header. The extra check I put in was a message if this size wasn't 2 or 3, and I couldn't see a good way of outputting messages in the Displayer context. Otherwise I left this area alone Ticker
participants (3)
-
Gerd Petermann
-
Thomas Morgenstern
-
Ticker Berkin