Modify

Opened 4 weeks ago

Closed 4 weeks ago

Last modified 3 weeks ago

#17652 closed defect (fixed)

Method Geometry.isPolygonInsideMultiPolygon returns wrong result

Reported by: GerdP Owned by: team
Priority: normal Milestone: 19.04
Component: Core Version:
Keywords: template_report Cc:

Description

What steps will reproduce the problem?

  1. Load attached osm file
  2. Run validator

What is the expected result?

Maybe a warning for crossing or overlapping buildings

What happens instead?

Warning "Building inside building"

Please provide any additional information below. Attach a screenshot if possible.

It seems the method Geometry.isPolygonInsideMultiPolygon is simply wrong in this case.

URL:https://josm.openstreetmap.de/svn/trunk
Repository:UUID: 0c6e7542-c601-0410-84e7-c038aed88b3b
Last:Changed Date: 2019-03-31 21:17:00 +0200 (Sun, 31 Mar 2019)
Build-Date:2019-03-31 20:25:18
Revision:14945
Relative:URL: ^/trunk

Identification: JOSM/1.5 (14945 en) Windows 10 64-Bit
OS Build number: Windows 10 Home 1803 (17134)
Memory Usage: 559 MB / 1820 MB (367 MB allocated, but free)
Java version: 1.8.0_201-b09, Oracle Corporation, Java HotSpot(TM) 64-Bit Server VM
Screen: \Display0 1920x1080
Maximum Screen Size: 1920x1080
VM arguments: [-XX:StartFlightRecording=name=MyRecording2,settings=d:\dbg\gerd.jfc, -XX:FlightRecorderOptions=defaultrecording=true,dumponexit=true,dumponexitpath=e:\ld\perf_20190426_113327.jfr]
Dataset consistency test: No problems found

Plugins:
+ OpeningHoursEditor (34977)
+ apache-commons (34908)
+ buildings_tools
+ continuosDownload (82)
+ ejml (34908)
+ geotools (34908)
+ jaxb (34908)
+ jts (34908)
+ o5m (34908)
+ opendata
+ pbf (34908)
+ poly (34966)
+ reverter
+ undelete (34977)
+ utilsplugin2 (34977)

Validator rules:
+ c:\josm\core\data\validator\geometry.mapcss

Last errors/warnings:
- W: Warning - <html>Plugin opendata requires JOSM version 14977. The current JOSM version is 14945.<br>You have to update JOSM in order to use this plugin.</html>
- W: No configuration settings found.  Using hardcoded default values for all pools.
- W: Region [TMS_BLOCK_v2] Resetting cache
- W: Warning - <html>Plugin reverter requires JOSM version 14946. The current JOSM version is 14945.<br>You have to update JOSM in order to use this plugin.</html>
- W: Warning - <html>Plugin buildings_tools requires JOSM version 14960. The current JOSM version is 14945.<br>You have to update JOSM in order to use this plugin.</html>

Attachments (1)

bib.osm (2.0 KB) - added by GerdP 4 weeks ago.

Download all attachments as: .zip

Change History (5)

Changed 4 weeks ago by GerdP

Attachment: bib.osm added

comment:1 Changed 4 weeks ago by GerdP

Resolution: fixed
Status: newclosed

In 15021/josm:

fix #17652: Method Geometry.isPolygonInsideMultiPolygon returns wrong result

  • don't allow polygon to cross the outer way
  • performance improvement: only check if inner is inside outer when polygon is inside inner. Matters for complex mp with many inners.
  • add unit test which shows error #17652 with old code

comment:2 Changed 4 weeks ago by GerdP

Milestone: 19.04

comment:3 Changed 3 weeks ago by GerdP

I've just noticed that r15021 is a very good performance improvement for the case where you select a multipolygon by double clicking into it. For complex multipolygons like https://josm.openstreetmap.de/attachment/ticket/13289/rel1956189.osm.bz2 the old code almost made JOSM unusable while the new code reacts within a second.

comment:4 Changed 3 weeks ago by Klumbumbus

Oh yeah, thats huge! With an older version it takes 2 minutes to select the MP with double click on my computer. With JOSM latest less than a second.

Modify Ticket

Change Properties
Set your email in Preferences
Action
as closed The owner will remain team.
as The resolution will be set.
The resolution will be deleted.

Add Comment


E-mail address and name can be saved in the Preferences.

 
Note: See TracTickets for help on using tickets.