BlueSpray - Help
© SchoonerTurtles, Inc. 2012-2015

Introduction
Contents
Getting Started
Download
Navigating
Tutorials
Scripting
Advanced
About

Working with Topological Data

BlueSpray includes a true topological data representation for vector data. This will make working with topological data much easier and will maintain the accuracy and reduce the complexity of you data.

Topological Data

Topological data is spatial data where the features have defined relationships between each other. examples of topological data include:

  • Road networks
  • Stream networks
  • Political boundaries such as states, counties, nations
  • Watershed boundaries
  • Ecological regions

Below you will see an example where the states of Wyoming and Colorado share a boundary on the left. With non-topological data, such as that included in a Shapefile, you can actually move the state of Wyoming without moving the boundary with Colorado! This is because the data structure used with the data cannot represent the boundary between the states as a single line. This problem is made worse by most GIS packages and data formats no longer support topological data as they once did.

Example of topological problems with state layers

BlueSpray solves this by providing the LayerVector class which can represent either topological data or non-topological data. When the data is converted to topological data the problem above goes away because the boundary between the states is represented by a single line. This is an improvement in the size of the data, the speed of many operations, and especially in the amount of work you have to do in fixing problems introduced by representing topological data in non-topological data structures. Imagine if you try to take two different vector layer data sets such as the states from Mexico and the US and try to put them into one vector layer. The states may appear to line up perfectly but there will be small errors in the coordinates that represent the edges of the states. If you reproject this data, or apply any other spatial operation to the data, you'll suddenly find the edges no longer match up. You will then have to manually or automatically (both of which take a long time) remove the "slivers" and "gaps" that are introduced along the edges. Instead, you can convert the data to a topological data format, which will require some work to remove the "slivers" and "gaps" but this will be minimized because you are working with the original data. Then, when you process the data you'll find that there are no more slivers or gaps introduced and the processing will typically be much faster.

The one downside of topological data structures is that they are more complex to manager internally and can be a little more confusing to learn to edit.

How Topological Data is Represented in BlueSpray

- vertices

- edges

- features, elements, polys

Editing Topological Data

Topological Editing

- Convert an edge point to a vertex

- Convert a vertex to an edge point (combine edges)
- Right click on the vertex and select "To Edge Point". This can only be done with vertices that have 2 edges attached to them.

- Combine vertices into a single vertex

- Break up a vertex with multiple edges

- Break a poly into two separate polys (split a hole?):
- This is effectively creating a new edge to split and existing poly into two new polys that share an edge.
- First, make sure you have a start vertex and an edge vertex for the new edge either by using existing vertices or by converting exiting edge points into vertices. You can also add edge points and then convert them to vertices if needed.
- Then, use the poly tool to create a new edge between the two vertices and through the existing poly
- BlueSpray will automatically make the existing poly match the poly on one side of the edge and create a new poly for the area on the other side of the edge.

- Removing a shared edge (duplicating an edge)

- Merging two edges
- Right click on a point or segment in the edge and select "Merge with edge"

- Merge two holes?
- Drag the one of the edges of the holes until they are adjacent
- then merge the two edges as above