Advancements in JOSM tools, validation checks and auto-fixes using Java Topology Suite (JTS)
This is a modal window.
The media could not be loaded, either because the server or network failed or because the format is not supported.
Formal Metadata
Title |
| |
Title of Series | ||
Number of Parts | 27 | |
Author | ||
License | CC Attribution 3.0 Unported: You are free to use, adapt and copy, distribute and transmit the work or content in adapted or unchanged form for any legal purpose as long as the work is attributed to the author in the manner specified by the author or licensor. | |
Identifiers | 10.5446/59526 (DOI) | |
Publisher | ||
Release Date | ||
Language |
Content Metadata
Subject Area | |
Genre |
00:00
Computer animation
00:30
Computer animation
01:53
Computer animation
02:53
Computer animation
03:48
Computer animation
Transcript: English(auto-generated)
00:02
Good afternoon, everyone. My name is Mila Zagorski. I'm a staff software development engineer at Maxar. I integrated Java Topology Suite, also known as JTS, into Maxar's customized version of JOSM a couple years ago and have been leveraging it ever since to create advanced JOSM tools, validation checks, and automatic fixes.
00:21
In this lightning talk, I'll be going over what JTS is and providing demos of some of the many things I have developed using JTS for Maxar's customized version of JOSM. Java Topology Suite, or JTS, is a project in the Location Tech Working Group of the Eclipse Foundation. The source code can be found in the GitHub code repository provided at the top of the screen.
00:42
A few of the many benefits of JTS integration with JOSM are JTS is a core computational geometry library that powers many other libraries and applications as shown in the diagram on the right. The developer can easily convert between native OSM primitive and JTS geometry types. JTS provides a whole geometry-based approach instead of a segment-based approach to development.
01:03
JTS lends itself well to zoom-independent automatic fixes, also known as autofixes, and there are many out-of-the-box topology-based methods for the developer to use. Just search the JTS index link provided here to learn more. Starting at the top left of the screen, some of the tools that I have developed that utilize JTS methods are the tool that converts polygons to
01:25
points so the points can be output to a new data layer or an existing data layer, and the points maintain their parent polygons' tags and unique ID. The tool in the middle of the screen fixes duplicate and overlapping ways, provides a conflicting tag resolver, and maintains correct directionality of the way based on connected ways.
01:42
The tool on the right side of the screen adds available location tags to features, for example country code, state district, state, city, and town, based on the feature centroid. The JTS whole geometry approach allows for the flagging of many more issues during validation. For example, shown here, starting on the left is the waterways validation check I developed
02:03
that flags water features that do not have simple or valid geometries or are self-overlapping. It also flags closed waterways, riverbanks without a river stream or canal, unconnected waterways or wrong way flow, and waterways that do not fill the length of the riverbank.
02:20
In the middle of the screen are the validation results for the new unconnected ways and crossing ways validation checks I developed that illustrate the power of JTS to flag many more issues via a whole geometry based approach. The new crossing ways validation check flags true crossings with any type of geometry, including multiple polygons and crossings that contain noted intersections or are completely contained, such as a way inside a polygon.
02:45
On the right side of the screen is a list of some other validation checks I've developed that utilize JTS methods. The possibilities are endless. Shown here are a few of the validation automatic fixes I developed that leverage some JTS methods. Clock rise from top left.
03:02
Unconnected ways are snapped to the nearest straight line point. Crossing buildings are topologically fixed in a zoom independent manner. Overlapping railways are fixed with correct directionality and resolved conflicting tags. Railway surface crossovers receive an intersection node, if needed, and the correct railway crossing tag.
03:22
Railways that cross or are contained in buildings get correctly split at intersection nodes, if needed, and a covered equals yes tag gets added to the portion of railway that is within the building. Highways crossing railways or waterways and railways crossing waterways are correctly split and tagged based on user preference.
03:41
And bridges and tunnels that are automatically added are offset from the edge of the polygonal waterway. In summary, JTS can be a powerful addition to JOSSUM. I am happy to answer any questions and I can be reached at milo.zegorski.com. Thank you.