Re: [mkgmap-dev] Fwd: Re: AW: More method options for is_in function

2020-02-14 Thread Arndt Röhrig


 
 
  
   Hi Ticker,
  
  
   
  
  
   r-4451 runs without errors and the result is ok. Thank you.
  
  
   
  
  
   Greets
  
  
   
  
  
   Arndt
  
  
   
Ticker Berkin <
rwb-mkg...@jagit.co.uk> hat am 13. Februar 2020 um 18:14 geschrieben:
   
   

   
   

   
   
Hi Arndt, Gerd
   
   

   
   
Sorry - this was me mis-reading the code and is simply fixed.
   
   
The assertion failed when there are no polygons in the tile that match
   
   
the tag/key.
   
   

   
   
patch attached
   
   

   
   
Ticker
   
   

   
   
On Thu, 2020-02-13 at 16:39 +, Ticker Berkin wrote:
   
   

 Hi Arndt


 


 I can reproduce this - it seem to be something related to the


 _expression_ structure.


 


 Probably it just returned 'false' before, rather than raising the


 exception.


 


 I'll investigate


 


 Ticker


 


 On Thu, 2020-02-13 at 16:38 +0100, Arndt Röhrig wrote:


 
  
   Hi Gerd, hi Ticker,
  
  
   
  
  
   now i use is-in-r-4449. Sorry, some mistakes happen without
  
  
   explanation.
  
  
   
  
  
   4449 report this:
  
  
   
  
  
   Greets
  
  
   Arndt
  
  
   
  
  
   16:24:37,71 - mkgmap .\tools\mkgmap-is-in-r4449 Speiche_Fabrik
  
  
   java.lang.AssertionError: invoked the non-augmented instance
  
  
   at
  
  
   uk.me.parabola.mkgmap.osmstyle.function.IsInFunction.calcImpl(Is
  
  
   c
  
 


 ___


 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

Re: [mkgmap-dev] Fwd: Re: AW: More method options for is_in function

2020-02-13 Thread Ticker Berkin
Hi Arndt, Gerd

Sorry - this was me mis-reading the code and is simply fixed.
The assertion failed when there are no polygons in the tile that match
the tag/key.

patch attached

Ticker

On Thu, 2020-02-13 at 16:39 +, Ticker Berkin wrote:
> Hi Arndt
> 
> I can reproduce this - it seem to be something related to the
> expression structure.
> 
> Probably it just returned 'false' before, rather than raising the
> exception.
> 
> I'll investigate
> 
> Ticker 
> 
> On Thu, 2020-02-13 at 16:38 +0100, Arndt Röhrig wrote:
> > > Hi Gerd, hi Ticker,
> > > 
> > > now i use is-in-r-4449. Sorry, some mistakes happen without
> > > explanation.
> > > 
> > > 4449 report this:
> > > 
> > > Greets
> > > Arndt
> > > 
> > > 16:24:37,71 - mkgmap .\tools\mkgmap-is-in-r4449 Speiche_Fabrik 
> > > java.lang.AssertionError: invoked the non-augmented instance 
> > > at
> > > uk.me.parabola.mkgmap.osmstyle.function.IsInFunction.calcImpl(Is
> > > c
> ___
> mkgmap-dev mailing list
> mkgmap-dev@lists.mkgmap.org.uk
> http://www.mkgmap.org.uk/mailman/listinfo/mkgmap-devIndex: src/uk/me/parabola/mkgmap/osmstyle/function/IsInFunction.java
===
--- src/uk/me/parabola/mkgmap/osmstyle/function/IsInFunction.java	(revision 4450)
+++ src/uk/me/parabola/mkgmap/osmstyle/function/IsInFunction.java	(working copy)
@@ -117,10 +117,9 @@
 	public String calcImpl(Element el) {
 		log.info("calcImpl", System.identityHashCode(this), kind, params, el);
 		assert qt != null : "invoked the non-augmented instance";
-		resetHasFlags();
-
 		if (qt.isEmpty())
 			return String.valueOf(false);
+		resetHasFlags();
 		try {
 			switch (kind) {
 			case POINT:
@@ -134,7 +133,7 @@
 break;
 			}
 		} catch (CanStopProcessing e) {}
-		log.info("done", hasIn, hasOn, hasOut);
+		log.info("done", System.identityHashCode(this), hasIn, hasOn, hasOut);
 		return String.valueOf(mapHasFlagsAnswer());
 	}
 
@@ -304,7 +303,17 @@
 			}
 		}
 	}
+/*
+make above function return boolean depending on it finding something.
+maybe should also respond to ON
 
+in below, delay setting the IN flag until have done the above, because the line could all be ON the inner.
+and use return from above to set IN, assume that when it finds something, it will set IN of OUT etc
+
+for POLY, still need a final check that, even if ON/IN, none of the holes is in this one, so
+we need another check (can we use above not-in-hole...) that takes a point from the hole and
+checks if it is the polyLine
+ */
 	private void doCommonTest(Element el) {
 		List polyLine = ((Way)el).getPoints();
 		Area elementBbox = Area.getBBox(polyLine);
@@ -388,10 +397,7 @@
 }
 			}
 		}
-		if (!matchingPolygons.isEmpty()) {
-			return new ElementQuadTree(elementSaver.getBoundingBox(), matchingPolygons);
-		}
-		return null;
+		return new ElementQuadTree(elementSaver.getBoundingBox(), matchingPolygons);
 	}
 
 	public void unitTestAugment(ElementQuadTree qt) {
___
mkgmap-dev mailing list
mkgmap-dev@lists.mkgmap.org.uk
http://www.mkgmap.org.uk/mailman/listinfo/mkgmap-dev

Re: [mkgmap-dev] Fwd: Re: AW: More method options for is_in function

2020-02-13 Thread Ticker Berkin
Hi Arndt

I can reproduce this - it seem to be something related to the
expression structure.

Probably it just returned 'false' before, rather than raising the
exception.

I'll investigate

Ticker 

On Thu, 2020-02-13 at 16:38 +0100, Arndt Röhrig wrote:
> > Hi Gerd, hi Ticker,
> > 
> > now i use is-in-r-4449. Sorry, some mistakes happen without
> > explanation.
> > 
> > 4449 report this:
> > 
> > Greets
> > Arndt
> > 
> > 16:24:37,71 - mkgmap .\tools\mkgmap-is-in-r4449 Speiche_Fabrik 
> > java.lang.AssertionError: invoked the non-augmented instance 
> > at uk.me.parabola.mkgmap.osmstyle.function.IsInFunction.calcImpl(Is
> > c
___
mkgmap-dev mailing list
mkgmap-dev@lists.mkgmap.org.uk
http://www.mkgmap.org.uk/mailman/listinfo/mkgmap-dev