GIS Boundary Software

Click image to enlarge.

Pictured above is the Prospecting Software neighborhood definitions for Broward County. The entire set includes definitions for all 4 counties in South Florida (Broward, Miami-Dade, Monroe, and Palm Beach).

The Geographic Information System (GIS) stores, analyzes, and displays data related to location. The neighborhood definitions are stored in the GIS as layered polygons. Ex State, County, City, Community, Neighborhood. A polygon is closed shape defined by a connected sequence of latitude/longitude coordinate pairs, where the first and last coordinate pair are the same and all other pairs are unique. These polygons can have thousands of points.

This software interprets the GIS information in order to do 3 important tasks for the Prospecter.

 

Verify the neighborhood definitions.

We do this by determining that all lower-tiered polygons are completely enclosed by their higher-tiered polygon. This ensures that a county is inside of a state, a city is inside of a county, and so on.

We do this by independently verifying that every point in the smaller polygon is enclosed by the larger polygon.

 

Determine if a property (point) is in a neighborhood (polygon).

 This a well-known problem in computational geometry. We use the Winding Number Algorithm to find the solution.

Imagine walking the edges of a polygon in a straight line while keeping a count.

Every time you pass the point (= latitude) when you are east of the point (> longitude), determine if the point is on your left or right side.

If the point is on your left, add 1.

If the point is on your right, subtract 1.

If the total is not 0 at the end, then the point is inside the polygon.

As you can imagine, the time to completion is proportional to the number of edges of the polygon.

By Avelludo – Own work, CC BY-SA 4.0

 

Determine if a property belongs to any neighborhood, and if so, which one.

To do this quickly, we build hierarchical bounding boxes for fast index searching while we verify the definitions(above). A bounding box is crude polygon (rectangle) defined with 4 points and only vertical and horizontal edges.

At every level of the definition tree, we find the smallest bounding box that completely encloses the defined polygon. We can search much faster with these cruder nested polygons.

We use a recursive search algorithm to determine if a property is inside one of the neighborhoods. We first determine if it’s in any defined states. If so, then determine if it’s inside a defined county in the state. And so on.

We can keep checking down recursively, which is fast in software. Only the last step uses the real neighborhood polygon. This really saves time when this process has to run thousands of times.