Hi
The 'highway = turning_circle' still works.
Options used: --add-pois-to-lines & --link-pois-to-ways
mkgmap r4525 + poi-tagged-v3.jar
I can catch it with: mkgmap:from-node:highway = turning_circle & highway =
track [0x641a resolution 24]
But another example (i wrote 2 times a more detailed mail with pictures, which
I guess does not come through)
barrier = gate on a highway = track can't be catched
No response for
mkgmap:from-node:barrier = gate & highway = track {set
dbg1 = true ; echotags 'from-node'}
if I address the node by osmid() it can be found but then there are no
values of the track itself available
barrier = gate & osmid() = 2486838092 {set
dbg2 = true ; echotags 'by-id'}
If I echotags the track (where the barrier is part of) then there is a value:
mkgmap:way-has-pois=true
Looks like for the barrier no new node is created.
Test area
Node: barrier = gate https://www.openstreetmap.org/node/2486838092
Highway = track https://www.openstreetmap.org/way/241008394
I hoped to find the values of the track available with the barrier to be able
to control the access tags afterwards based on what I find on the track
(route_from_relation=foot) , in my case
Kind regards Joris
-----Oorspronkelijk bericht-----
Van: mkgmap-dev <[email protected]> Namens Gerd Petermann
Verzonden: dinsdag 9 juni 2020 12:03
Aan: Development list for mkgmap <[email protected]>
Onderwerp: Re: [mkgmap-dev] is_in() function for point on line
Hi all,
I've attached a new patch. The parameter tagged-node is not needed anymore. The
corresponding flag is set when the points style uses the mkgmap:from-nodes:
prefix. I've changed the code so that only those tags which are used with this
prefix are copied, the special tag mkgmap:copied-as-poi=true is only to the
original node added if at least one of its tags was copied with the
mkgmap:from-nodes: prefix.
Reg. performance: Without the additional logic mkgmap requires a lot more
memory, so I think it is better to reduce the number of generated POI and the
number of added tags.
Binary is here:
http://files.mkgmap.org.uk/detail/481
Gerd
________________________________________
Von: mkgmap-dev <[email protected]> im Auftrag von Gerd
Petermann <[email protected]>
Gesendet: Dienstag, 9. Juni 2020 10:24
An: Development list for mkgmap
Betreff: Re: [mkgmap-dev] is_in() function for point on line
Hi all,
forgot to add the download link for the binary:
http://files.mkgmap.org.uk/detail/480
I've now tested that --add-pois-to-lines=mid,tagged-node tagged-node works as
expected, but documentation still needs improvements.
If e.g. --add-pois-to-lines=mid,tagged-node is used the option tagged-node has
no effect unless the points style contains a corresponding rules like
mkgmap:from-node:highway = turning_circle & highway = track [0x641a
resolution 24]
is found.
I've implemented it like this to reduce the memory footprint because I thought
of those nodes which have unintresting tags like source=*. I forgot that those
tags are already removed before POIGeneratorHook is executed. I'll do some more
testing now...
Gerd
Gerd
________________________________________
Von: Gerd Petermann <[email protected]>
Gesendet: Dienstag, 9. Juni 2020 09:43
An: Development list for mkgmap
Betreff: AW: [mkgmap-dev] is_in() function for point on line
Hi Mike, Hi Joris
while looking at patch addpois-doc.patch I noticed that poi-tagged.patch has a
paste+copy error. The new option "tagged" did not work.
Attached is a corrected version which implements tagged-node and changes/adds
documentation.
@Mike: Don't know why I used "other" instead of "inner". My bad. We cannot just
change the doc, we also have to support the corrected option.
Reg. "creation of POIS from the lines style file" : It might be possible to add
new logic which would add a point object while a line is processed. Up to now
the order is "relations, points, lines[+polygons], so POIs are processed before
lines. If we change that we have to find an alternative for the dead-end-check
processing. Problem : That wouldn't allow to remove the existing code, it just
adds complexity with the risk of breaking existing installations.
Without the legacy code I would like the idea.
Gerd
________________________________________
Von: mkgmap-dev <[email protected]> im Auftrag von Mike
Baggaley <[email protected]>
Gesendet: Montag, 8. Juni 2020 23:45
An: 'Development list for mkgmap'
Betreff: Re: [mkgmap-dev] is_in() function for point on line
Hi Gerd, I've tried out the --add-pois-to-lines=mid option and it seems to work
well, giving me something like a 5% performance improvement. There are a couple
of errors in the documentation - it doesn't explain what 'other' does, and
there's no option for 'inner' (should 'other' read 'inner' in the option?).
Also it says that the default is to create all possible POI - I assume this is
the default if the option is provided with no value and that the default is for
no POIs to be added.
You haven't mentioned whether the patch also allows the creation of POIS from
the lines style file - I'm assuming it is just the command line.
Thanks for the quick implementation,
Mike
-----Original Message-----
From: Gerd Petermann [mailto:[email protected]]
Sent: 03 June 2020 08:40
To: Mike Baggaley <[email protected]>; 'Development list for mkgmap'
<[email protected]>
Subject: Re: [mkgmap-dev] is_in() function for point on line
Hi Joris, Hi Mike,
I've implemented the suggested improvements with r4507. Please suggest
improvements for the documentation changes.
I did not yet document the new prefix mkgmap:from-node: in the style because I
found no simple description. Feel free to suggest something.
Reg. the implementation:
I decided to ignore all tags with the prefix mkgmap: , e,g. those from the
LocationHook like mkgmap:admin_level2. It might happen that the values for the
node are different to those copied from the way, but I don't assume that
anybody wants to add extra rules for that.
Maybe I should change it the other way around so that the generated POI gets
the "exact" values from the node (without the mkgmap:from-node: prefix?
The code should also work for POIs added with the --add-pois-to-areas option
when the generated POI is using the location of a node because of the
--pois-to-areas-placement option.
Gerd
________________________________________
Von: Mike Baggaley <[email protected]>
Gesendet: Montag, 1. Juni 2020 12:34
An: 'Gerd Petermann'; 'Development list for mkgmap'
Betreff: RE: [mkgmap-dev] is_in() function for point on line
Hi Gerd,
I have --add-pois-to-lines in my command, but right near the beginning of my
points file I have
mkgmap:line2poitype=start | mkgmap:line2poitype=inner | mkgmap:line2poitype=end
{deletealltags} # only centre of line wanted
I wonder whether there could be some efficiency improvement by extending the
--add-pois-to-lines option to be something like
--add-pois-to-lines[=start|end|inner|mid[,...]]
We would then reduce the number of unwanted POIs created.
I actually only use this for placing bridge and tunnel names at the middle of
the way and replacing line gates with point gates, so being able to do this in
the lines file of my style sheet would be even better:
tunnel=* | bridge=* | barrier=gate {set mkgmap:addpoistoline=mid}
This assumes that generating POIs happens after the line stylesheet is
processed.
Regards,
Mike
-----Original Message-----
From: Gerd Petermann [mailto:[email protected]]
Sent: 01 June 2020 10:50
To: Development list for mkgmap <[email protected]>
Subject: Re: [mkgmap-dev] is_in() function for point on line
Hi Joris,
probably my ideas don't work. Your case is very special because you render the
POI only when it is part of a way. The example with entrance=main is probably
not a good one as entrance=main & is_in(building,mall,on) [...] already works.
I've coded a better patch so that your example will also work when option
--link-pois-to-ways is not used. Up to now the patch depends on that.
I do not yet see how mkgmap can avoid the generation of all useless POI without
adding a lot of code to analyse the rules in the points file, but I still think
about this. Problem is that we have the generated tags like
mkgmap:admin_level10 or mkgmap:residential and I fear to break something that
uses tricky rules with just these tags.
> Or we could work the other way around, in stead of render all poi's for all
> objects and not use them, the mapmaker specifies the explicit objects the
> poi's are needed.
Yes, might be an option. An exclude list might also work.
Gerd
________________________________________
Von: mkgmap-dev <[email protected]> im Auftrag von Joris
Bo <[email protected]>
Gesendet: Montag, 1. Juni 2020 10:51
An: Development list for mkgmap
Betreff: Re: [mkgmap-dev] is_in() function for point on line
Hallo Gerd,
This works perfect ! (points - file)
mkgmap:from-node:highway = turning_circle & highway = track [0x641a
resolution 24]
mkgmap:from-node:highway = turning_circle & highway != track [0x641b
resolution 24]
Your suggestion will indeed also feature your 'entrance=main' example which is
actually a very useful one to avoid cluttering The "add-poi-to-lines" option is
still usefull I think ?
For example
- to give a bicycle route a name-poi
- render a symbol for the line leisure = slipway
- render a cable car symbol for aerialway = gondola
- a warning symbol at the highway = via_ferrata
- or incline symbols at the start of steep mountain highways?
If those could be solved without rendering thousands of poi's for complex
multipolygon lines that would be great of course.
Or we could work the other way around, in stead of render all poi's for all
objects and not use them, the mapmaker specifies the explicit objects the poi's
are needed.
Kind regards
Joris
-----Oorspronkelijk bericht-----
Van: mkgmap-dev <[email protected]> Namens Gerd Petermann
Verzonden: zondag 31 mei 2020 11:38
Aan: Development list for mkgmap <[email protected]>
Onderwerp: Re: [mkgmap-dev] is_in() function for point on line
Hi Joris,
up to now we only mentioned nodes with a highway=* tag used in ways with a
highway=* tag.
I've coded a rather simple patch for that, but while I did that I wondered why
this should be limited to highways.
I decided to use the prefix "mkgmap:from-node:". Tags with prefix mkgmap: are
not copied.
My understanding is that you want a function which tells you if a tagged node
is used in one or more ways with a given tag.
For example, you may want to render a node with entrance=main, but only when it
is the entrance to a building=mall.
This will not work, because only nodes with the tags barrier or highway are
treated special.
I think it is possible to implement this as well. We probably just have to
check the points rules and look for uses of "mkgmap:from-node:".
Maybe this would also allow to get rid of the computational overhead produced
by the add-poi-to-lines option. The current implementation of this option is
really ugly as it computes lots of points which are never used to generate any
map object. Think of a complex natural=wood polygon (no other tags). If the
points file doesn't contain a rule for natural=wood there is no need to
generate the POIs.
I've uploaded a binary compiled with the attached patch here:
http://files.mkgmap.org.uk/download/473/mkgmap.jar
Gerd
________________________________________
Von: mkgmap-dev <[email protected]> im Auftrag von Joris
Bo <[email protected]>
Gesendet: Sonntag, 31. Mai 2020 09:06
An: Development list for mkgmap
Betreff: Re: [mkgmap-dev] is_in() function for point on line
Hi Gerd
Thanks for the answer, always nice if it makes sense again. Then it was worth
the testing 😊
For me that would be perfect, the number of cases this will occur is limited so
that it's no problem to explicitly test against this replace value. There are
probably more situations around highways where this could occur like highway =
bus_stop, highway = speedcamera, and traffic signals.
Kind regards,
Joris
-----Oorspronkelijk bericht-----
Van: mkgmap-dev <[email protected]> Namens Gerd Petermann
Verzonden: zaterdag 30 mei 2020 18:39
Aan: Development list for mkgmap <[email protected]>
Onderwerp: Re: [mkgmap-dev] is_in() function for point on line
Hi Joris,
yes, it is a special case. The generated POI gets the tags from the way, so
highway=turning_circle is replaced by highway=track.
The node 7131748927 appears only with the tag highway=turning_circle (and maybe
the address tags)
Not sure what to do. Maybe store the replaced tag(s) with a prefix, e.g.
mkgmap:replaced:highway=turning_circle in this case?
Gerd
________________________________________
Von: mkgmap-dev <[email protected]> im Auftrag von Joris
Bo <[email protected]>
Gesendet: Samstag, 30. Mai 2020 18:11
An: Development list for mkgmap
Betreff: Re: [mkgmap-dev] is_in() function for point on line
Hi Gerd
Could it be possible that in this case the highway tag of the line is ignored
because the point turning_circle is of type highway as well?
It's like there is a point {highway = turning_circle} on a line {highway =
track} It looks like I cannot catch it with the mkgmap:line2poitype and
mkgmap:line2poi.
Somewhere else I already use
leisure = slipway & mkgmap:area2poi != true & mkgmap:line2poitype = mid and
that works fine
Kind regards,
Joris
-----Oorspronkelijk bericht-----
Van: mkgmap-dev <[email protected]> Namens Gerd Petermann
Verzonden: zaterdag 30 mei 2020 17:51
Aan: Development list for mkgmap <[email protected]>
Onderwerp: Re: [mkgmap-dev] is_in() function for point on line
Hi Joris,
is_in() only works with polygons. You can use --add-pois-to-lines, but be aware
that it produces a lot of points for which you probablly don't want to add an
object to the map. See the help for the details.
Gerd
________________________________________
Von: mkgmap-dev <[email protected]> im Auftrag von Joris
Bo <[email protected]>
Gesendet: Samstag, 30. Mai 2020 17:40
An: Development list for mkgmap
Betreff: [mkgmap-dev] is_in() function for point on line
Hi
Does the is_in() function should also work for a point on a line in stead of in
a polygon?
highway = turning_circle & is_in(highway, track, in_or_on) = true [0x641a
resolution 24]
It returns false for this situation where the turningcircle is attached to a
highway = track.
(mkgmap:cache_is_in_POINT_highway_track_in_or_on=false)
Would there be another way to know if the point is attached to a highway =
track rather then a for example highway = residential?
I use add-pois-to-lines, and link-pois-to-ways but as far as I can see, that
doesn't give me more information.
https://www.openstreetmap.org/#map=18/49.65888/5.45845
[cid:[email protected]]
Kind regards
Joris
_______________________________________________
mkgmap-dev mailing list
[email protected]
http://www.mkgmap.org.uk/mailman/listinfo/mkgmap-dev
_______________________________________________
mkgmap-dev mailing list
[email protected]
http://www.mkgmap.org.uk/mailman/listinfo/mkgmap-dev
_______________________________________________
mkgmap-dev mailing list
[email protected]
http://www.mkgmap.org.uk/mailman/listinfo/mkgmap-dev
_______________________________________________
mkgmap-dev mailing list
[email protected]
http://www.mkgmap.org.uk/mailman/listinfo/mkgmap-dev
_______________________________________________
mkgmap-dev mailing list
[email protected]
http://www.mkgmap.org.uk/mailman/listinfo/mkgmap-dev
_______________________________________________
mkgmap-dev mailing list
[email protected]
http://www.mkgmap.org.uk/mailman/listinfo/mkgmap-dev
_______________________________________________
mkgmap-dev mailing list
[email protected]
http://www.mkgmap.org.uk/mailman/listinfo/mkgmap-dev