logo separator

[mkgmap-dev] nearby POIs

From jan meisters jan_m23 at gmx.net on Sat May 2 21:28:40 BST 2020

Hi Mike, hi Gerd,

thanks for the nearby option, I like the new way to unclutter the map.

To my args-file i´ve added:
nearby-poi-rules=*/named:10,*/unnamed:30,0x2f00-0x2f1f:30,0x3200-0x331f:50,0x13700-0x1370d:30

A lot of the pois seem to be reduced (deleted) as expected, but I stumbled on tourism=picnic_site and leisure=picnic_table here:
https://www.openstreetmap.org/way/498671746
https://www.openstreetmap.org/way/108892873

These 2 polygon tourism=picnic_site contain picnic pois, tourism in the one and leisure in the other.
My rule combines the pois in 0x2f0b:
tourism=picnic_site | leisure=picnic_table [0x2f0b resolution 24]

As long as tourism and leisure are collected in one poi, both poi will not be reduced.
If separated to different pois, tourism is reduced, leisure not.
I can´t get the option to work on both.

Regards
Jan


> Am 29.04.2020 um 18:06 schrieb Gerd Petermann <gpetermann_muenchen at hotmail.com>:
> 
> Hi Mike,
> 
> OK, did not see this line
>  fileRules.addAll(Arrays.asList(rules));
> 
> So, I think I'll commit the patch tomorrow if nobody else suggests changes.
> 
> Gerd
> 
> ________________________________________
> Von: mkgmap-dev <mkgmap-dev-bounces at lists.mkgmap.org.uk> im Auftrag von Mike Baggaley <mike at tvage.co.uk>
> Gesendet: Mittwoch, 29. April 2020 17:52
> An: 'Development list for mkgmap'
> Betreff: Re: [mkgmap-dev] nearby POIs
> 
> Hi Gerd,
> 
> I've replaced the trim statements with replaceAll in the attached updated
> patch. Having thought a bit more about caching the rules, I've realised in
> the multithreaded environment, there would need to be object locks and
> synchronisation, which would be unnecessarily complicated.
> 
> Regarding the two options - I had 30 odd rules in my command line, so the
> config file is better for me, but I expect that most users will probably
> just use one or two rules. Your range suggestion has allowed me to reduce
> the number of rules to about 25. The config file option doesn't override the
> inline option; if both are provided then both sets of rules are applied -
> hence I don't think the documentation needs changing.
> 
> Regards,
> Mike
> 
> -----Original Message-----
> From: Gerd Petermann [mailto:gpetermann_muenchen at hotmail.com]
> Sent: 29 April 2020 07:28
> To: 'Development list for mkgmap' <mkgmap-dev at lists.mkgmap.org.uk>
> Subject: Re: [mkgmap-dev] nearby POIs
> 
> Hi Mike,
> 
> regarding error handling I think we can wait for someone to complain. Each
> solution has its pros and cons.
> regarding option handling:
> - I have no idea what users do. It is possible to create very different maps
> with a single execution of mkgmap. I can't think of any good reason to do
> this, but I also see no way to find out if anybody does. I presume that many
> users don't read this list.
> - If you see a simple solution to cache the results which works fine with
> multiple threads using different options go ahead.
> - When I suggested --nearby-poi-rules-config=filename I thought that is
> should replace --nearby-poi-rules. Having both options simply complicates
> everything. If you think that it is unlikely to have more than two rules we
> should better remove --nearby-poi-rules-config=filename, else it should be
> documented that --nearby-poi-rules-config=filename overwrites
> --nearby-poi-rules.  Sorry for suggesting it in the first place.
> - all those trim() statements in combination with substring() look error
> prone. If I got that right you could use rule.replaceAll("\\s+", "") once to
> remove all whitespace characters?
> 
> Gerd
> 
> ________________________________________
> Von: mkgmap-dev <mkgmap-dev-bounces at lists.mkgmap.org.uk> im Auftrag von Mike
> Baggaley <mike at tvage.co.uk>
> Gesendet: Dienstag, 28. April 2020 22:06
> An: 'Development list for mkgmap'
> Betreff: Re: [mkgmap-dev] nearby POIs
> 
> Hi Gerd, please find attached an updated patch that allows for # comments
> either as whole lines or as ends of a line. It also allows whitespace
> between the components of the rules.
> 
> At the moment, if an error is found in a rule, this is reported as an error
> and that rule is ignored. This does result in duplicated error messages, one
> from each tile. I'm happy to change this to stop processing if you think
> that is better. I'm not keen on ignoring all rules if an error is found in a
> rule. If the rules file is not found then this will also just report an
> error and continue. Perhaps this one at least would be better if it caused
> termination?
> 
> I did think about loading the rules at the beginning, prior to processing
> the tiles, but realised this would break the 'option before tile' convention
> which allows different options to be passed to each tile (does anyone do
> this for anything other than the description?). It would be pretty
> straightforward to cache the options and resulting rules and if the options
> are the same for the next tile, use the cached rules instead of
> reprocessing. What do you think?
> 
> Regards,
> Mike
> 
> -----Original Message-----
> From: Gerd Petermann [mailto:gpetermann_muenchen at hotmail.com]
> Sent: 28 April 2020 09:21
> To: 'Development list for mkgmap' <mkgmap-dev at lists.mkgmap.org.uk>
> Subject: Re: [mkgmap-dev] nearby POIs
> 
> Hi Mike,
> 
> I did not try it, but it seems the configuration file doesn't allow the
> typical "#" as comment. This makes it rather useless. We should at least
> allow comment lines starting with a # to be ignored.
> I've added code to handle this, also untested.
> 
> - What should happen when an error was found in the rules?
> + Ignore only the bad rule(s)?
> + Ignore all rules?
> + stop processing?
> We have this problem with other options like --style-option as well, so it's
> not directly related to the patch. I think It would be good to check this
> before any tile is processed, but the current implementation of the option
> handling makes this really difficult.
> 
> Gerd
> 
> ________________________________________
> Von: mkgmap-dev <mkgmap-dev-bounces at lists.mkgmap.org.uk> im Auftrag von Mike
> Baggaley <mike at tvage.co.uk>
> Gesendet: Montag, 27. April 2020 16:06
> An: 'Development list for mkgmap'
> Betreff: Re: [mkgmap-dev] nearby POIs
> 
> Hi Gerd, please find attached an updated patch that addresses the points
> below.
> 
> Cheers,
> Mike
> 
> -----Original Message-----
> From: Mike Baggaley [mailto:mike at tvage.co.uk]
> Sent: 22 April 2020 17:55
> To: 'Development list for mkgmap' <mkgmap-dev at lists.mkgmap.org.uk>
> Subject: Re: [mkgmap-dev] nearby POIs
> 
> Hi Gerd,
> 
> To answer your points:
> 
> 1) 0x2f1f was just a POI in my style which I have as a bus stop, and as bus
> stations often have all individual stops mapped it can be useful to remove
> duplicates (I don't use the default style). Looking at the default style I
> see that it has both bus stops and taxi as 0x2f17. I'm happy with either the
> example changing to 0x2f17 or the default style changing to 0x2f1f for bus
> stops (I have 0x2f17 just for taxi). The sample doesn't have to match the
> default style, but it would make sense for it to do so.
> 
> 2) The code sorts the rules into POI type order, but doesn't sort by
> distance. It would better handle the example you have given if it sorted
> rules with the same POI type by distance. I'll look into this.
> 
> 3) Allowing a range of POI types seems like it could be useful. I see that
> --poi-excl-index uses a hyphen to specify a range and propose we use the
> same format. I'll look into this as well.
> 
> Regards,
> Mike
> 
> -----Original Message-----
> From: Gerd Petermann [mailto:gpetermann_muenchen at hotmail.com]
> Sent: 22 April 2020 07:07
> To: 'Development list for mkgmap' <mkgmap-dev at lists.mkgmap.org.uk>
> Subject: Re: [mkgmap-dev] nearby POIs
> 
> Hi Mike,
> 
> okay, I started to find out if the code works as documented. Here is a first
> set of questions:
> 1) I started with the given sample
> --nearby-poi-rules=*/named:10,*/unnamed:25,0x2f1f:30
> and found out the the default style doesn't use type 0x2f1f. Is that
> intended?
> 2) Is it allowed to use multiple rules for the same POI type?
> Two rules like
> --nearby-poi-rules=0x2f1f:10:merge-at-mid-point,0x2f1f:1
> are accepted, but I am not sure what to expect when this is done. The rules
> are applied in the given order, so the second will never match, right?
> 3) The option --poi-excl-index allows to specify ranges of POI types.
> Wouldn't it be good to use the same logic for --nearby-poi-rules?
> 
> Gerd
> 
> ________________________________________
> Von: mkgmap-dev <mkgmap-dev-bounces at lists.mkgmap.org.uk> im Auftrag von Mike
> Baggaley <mike at tvage.co.uk>
> Gesendet: Mittwoch, 22. April 2020 01:03
> An: 'Development list for mkgmap'
> Betreff: Re: [mkgmap-dev] nearby POIs
> 
> HI Gerd, the mods look fine to me. I don't think documenting a config file
> in a sample file is a good idea. I think it is much better if all the
> documentation is in one place. I also think it make sense to keep the
> --nearby-poi-rules option as I expect some users would just want something
> like -- nearby-poi-rules=*:25, and it would be overkill to have to create a
> config file to do this. I have fixed the formatting issues in the options
> file in the attached version of the patch.
> 
> Regards,
> Mike
> 
> -----Original Message-----
> From: Gerd Petermann [mailto:gpetermann_muenchen at hotmail.com]
> Sent: 21 April 2020 08:46
> To: 'Development list for mkgmap' <mkgmap-dev at lists.mkgmap.org.uk>
> Subject: Re: [mkgmap-dev] nearby POIs
> 
> Hi Mike,
> 
> attached is a modified version of the patch. I've removed some of the
> changes in StyledConverter and did some cleanup on the NearbyPoiHandler.
> 
> I think you got me wrong regarding the config file. With similar to
> --road-name-config=filename I really meant that the config file should be
> provided as an example containing the detailed documentation.
> The option --nearby-poi-rules should be removed, it just adds complexity.
> This will also fix some formatting problems in file options.
> 
> Gerd
> 
> ________________________________________
> Von: mkgmap-dev <mkgmap-dev-bounces at lists.mkgmap.org.uk> im Auftrag von Mike
> Baggaley <mike at tvage.co.uk>
> Gesendet: Montag, 20. April 2020 16:00
> An: 'Development list for mkgmap'
> Betreff: Re: [mkgmap-dev] nearby POIs
> 
> Hi Gerd, the logging changes were actually part of another patch that is
> aimed at tidying up logging, which causes me significant problems due to the
> mixed use of System.err.println and log.xxxx. If you want to remove the
> System.error.println change from the patch then that is fine.
> 
> Regards,
> Mike
> -----Original Message-----
> From: Gerd Petermann [mailto:gpetermann_muenchen at hotmail.com]
> Sent: 20 April 2020 07:25
> To: 'Development list for mkgmap' <mkgmap-dev at lists.mkgmap.org.uk>
> Subject: Re: [mkgmap-dev] nearby POIs
> 
> Hi Mike,
> 
> I agree about the changes to debug level because the remaining log.info()
> messages are still meaningful.
> 
> You changed some System.err.println(...) to log.info(...).
> This has two effects:
> 1) severity is changed from error to info (which is wrong in these cases),
> the user should always see these messages.
> 2) the normal logging procedure prints the path to the current tile but the
> tile is not relevant and thus may be confusing.
> 
> I am not 100% sure about the messages log.warn("road has < 2
> points",way.getId(),"(discarding)");
> You probably only see them when you disable WrongAngleFixer by modfying the
> code. What was the reason for the change?
> 
> Gerd
> 
> 
> ________________________________________
> Von: mkgmap-dev <mkgmap-dev-bounces at lists.mkgmap.org.uk> im Auftrag von Mike
> Baggaley <mike at tvage.co.uk>
> Gesendet: Sonntag, 19. April 2020 15:24
> An: 'Development list for mkgmap'
> Betreff: Re: [mkgmap-dev] nearby POIs
> 
> Hi Gerd, the logging changes seem to me to be correct (though unrelated to
> the nearby POI change), reducing the severity of some messages to match
> those elsewhere. I accept that these things are open to interpretation, but
> would consider messages about entering and leaving functions and similar
> static code location messages to be debug level messages (e.g. "Maintaining
> highway counters"), those that give information that the code is doing
> something that does not need any action to be informational messages (e.g.
> "Pruning point xxxx"), those that might warrant investigation would be
> warning (e.g. Oneway road xxx goes nowhere" ) and those that indicate some
> sort of real problem would be error (e.g. "shape is not closed with
> identical points ").
> 
> Regards,
> Mike
> 
> -----Original Message-----
> From: Gerd Petermann [mailto:gpetermann_muenchen at hotmail.com]
> Sent: 19 April 2020 08:41
> To: 'Development list for mkgmap' <mkgmap-dev at lists.mkgmap.org.uk>
> Subject: Re: [mkgmap-dev] nearby POIs
> 
> Hi Mike,
> 
> thanks, will look at it during the next days. Some of the changes to the
> logging in StyledConverter are probably not OK.
> 
> Gerd
> 
> ________________________________________
> Von: mkgmap-dev <mkgmap-dev-bounces at lists.mkgmap.org.uk> im Auftrag von Mike
> Baggaley <mike at tvage.co.uk>
> Gesendet: Sonntag, 19. April 2020 08:45
> An: 'Development list for mkgmap'
> Betreff: Re: [mkgmap-dev] nearby POIs
> 
> Hi Gerd, please find attached an updated patch that provides a config file
> option and puts the nearby POI code into a new class.
> 
> Cheers,
> Mike
> 
> -----Original Message-----
> From: Mike Baggaley [mailto:mike at tvage.co.uk]
> Sent: 08 April 2020 14:02
> To: 'Development list for mkgmap' <mkgmap-dev at lists.mkgmap.org.uk>
> Subject: RE: [mkgmap-dev] nearby POIs
> 
> HI Gerd, I'll look into having a config file option and separating the code
> into a new class. Probably will be a couple of days before I get back to you
> with an updated version of the patch.
> 
> Cheers,
> Mike
> 
> -----Original Message-----
> From: Gerd Petermann [mailto:gpetermann_muenchen at hotmail.com]
> Sent: 07 April 2020 09:07
> To: Development list for mkgmap <mkgmap-dev at lists.mkgmap.org.uk>
> Subject: Re: [mkgmap-dev] nearby POIs
> 
> Hi Mike,
> 
> the syntax for the option parameters is extremely complex. I think it would
> be better to use a config file for that, similar to the option
> --road-name-config=roadNameConfig.txt we could have a
> --nearby-poi-rules=nearbyPoiConfig.txt
> What do you think?
> 
> Gerd
> 
> 
> ________________________________________
> Von: mkgmap-dev <mkgmap-dev-bounces at lists.mkgmap.org.uk> im Auftrag von Mike
> Baggaley <mike at tvage.co.uk>
> Gesendet: Montag, 6. April 2020 20:24
> An: 'Development list for mkgmap'
> Betreff: [mkgmap-dev] nearby POIs
> 
> Hi Gerd, please find attached a patch for handling the removal of duplicate
> POIs that are near to each other but not coincident. The existing code
> handles the removal of coincident duplicates, but leaves other duplicates in
> place. It is very common in OSM for buildings to be tagged as amenities with
> a single node also being tagged as the same amenity. If using
> --add-pois-to-areas, this can lead to a lot of duplication. The patch
> provides a new command line option with the following syntax:
> 
> --nearby-poi-rules=type[/all|/named|/unnamed]:max-distance[:delete-poi|delet
> e-name|merge-at-mid-point][,...]
> 
> This defines a set of rules to follow when a POI is near to another of the
> same type. Each rule consists of three parts separated by colons. The
> first two parts must be provided; the last part can be defaulted.
> 
> The first part of the rule is the Garmin POI type code with an optional
> suffix; it determines when the rule is triggered. The type code may be
> specified in decimal or hexadecimal (e.g. 0x2c0b). A rule is triggered
> when processing a POI if the type code of the POI matches the rule type,
> providing there is also a match in the POI name and the first part
> suffix. If the suffix is '/all' (the default) then the match is only made
> on the type. If the suffix is '/named' then the rule is only triggered if
> the POI has a name. If the suffix is '/unnamed' then the rule is only
> triggered if the POI has no name. A wildcard of an asterisk character may
> be used to match any type code. The wildcard may also be combined with a
> suffix to allow separate processing of named and unnamed POIs.
> 
> The second part of the rule is the distance in metres which an already
> processed POI must be within for it to be considered to be nearby and
> hence trigger the action part of the rule.
> 
> The third part of the rule is the action part and provides three options:
> ::delete-poi - the POIS are considered to be duplicates and the
> duplicate is deleted. This is the default.
> ::delete-name - the POIS are not duplicates, but only a single
> name needs to be displayed.
> ::merge-at-mid-point - the POIS are considered to be duplicates
> but the location of the existing point is moved to a point
> midway between the two points.
> 
> Wildcard rules are only applied if no other rule is applicable.
> 
> For example:
> :
> --nearby-poi-rules=*/named:50,*/unnamed:25,0x2f1f/named:50:delete-name,0x2f1
> f:3,0x641d:400:merge-at-mid-point
> 
> This has the following effect:
> :       If no other rule applies, a POI with the same name and type and
>        within 50m of one already processed will be deleted
>        If no other rule applies, a POI having no name and of the same type
>        and within 25m of one already processed will be deleted
>        A POI of type 0x2f1f that is within 50m of another POI with the same
> name and type will have its name deleted
>        A POI of type 0x2f1f that is within 3m of another POI with the same
> type will be deleted
>        A POI of type 0x641d that is within 400m of another POI with the
> same
> type will be deleted and the existing point moved
> 
> Note: a POI that matches another in type, name and exact location is always
> considered a duplicate and deleted.
> 
> Regards,
> Mike
> 
> 
> 
> _______________________________________________
> mkgmap-dev mailing list
> mkgmap-dev at lists.mkgmap.org.uk
> http://www.mkgmap.org.uk/mailman/listinfo/mkgmap-dev
> 
> 
> _______________________________________________
> mkgmap-dev mailing list
> mkgmap-dev at lists.mkgmap.org.uk
> http://www.mkgmap.org.uk/mailman/listinfo/mkgmap-dev
> 
> 
> 
> 
> _______________________________________________
> mkgmap-dev mailing list
> mkgmap-dev at lists.mkgmap.org.uk
> http://www.mkgmap.org.uk/mailman/listinfo/mkgmap-dev



More information about the mkgmap-dev mailing list