logo separator

[mkgmap-dev] Allow blanks in function parameters

From Ticker Berkin rwb-mkgmap at jagit.co.uk on Wed Jan 8 11:12:45 GMT 2020

Hi Gerd

I'll do patch for the function parameters shortly.

Are you trying to trying to check if a way/polygon is in all nearby
polygons simultaneously, or just checking one-by-one until you get
'true'?

If one-by-one, the moment any line crosses then you can stop, with
IN/ON/OUT all being true (unless the line/polygon folds back on
itself). If no crossing, then need to take any point that wasn't ON
and see if that is IN; presumably using the same logic as for POINT is
-in.

The problem with the one-by-one is that multi-polygon processing might
have split the target polygon and so the this simplistic method can
give the wrong answer. 

Considering all targets simultaneously looks much more complicated, but
I guess you need to make a list of all crossing points and cancel out
ones at the same position.

For POINT is-in, I guess you just cut the polygon(s) through the point
and count the cuts on one side, even>OUT, odd>IN. true>ON

Ticker

On Wed, 2020-01-08 at 10:14 +0000, Gerd Petermann wrote:
> Hi Ticker,
> 
> I am still struggling with the insideness tests. 
> 
> I noticed that the scanner doesn't accept a blank in the functions
> parameters, e.g.  these two rules are not accepted: 
> building=* & building!=no & is_in(landuse,residential, any)=false
> [0x13 resolution 24]
> building=* & building!=no & is_in(landuse, residential,any)=false
> [0x13 resolution 24]
> 
> I'd prefer to allow this as well. Maybe you can have a look at this? 
> 
> Gerd


More information about the mkgmap-dev mailing list