JADE Environment Development Ideas

What's new in the upcoming JADE release?

IMPROVED DEVELOPER EFFICIENCY. ENHANCED SECURITY. SMOOTHER INTEGRATION

The JADE 2022 release meets tomorrow’s business demands.


Start your update to JADE's latest release

Spatial Data Structures and Indexing

The JADE platform has provided a geospatial capability since 2010. This capability is currently only accessible using the .Net API. We are seeking expressions of interest in a RootSchema API that would allow developers to access the existing spatial capability directly from a JADE application.

See: https://github.com/jadesoftwarenz/JADE-geospatial-demo for an example C# application that uses the JADE .Net API to demonstrate the capability.

The current feature set is comprised of:

  • Data types that enable you to represent spatial data in the database

  • Spatial operators and predicate functions provided by the open-source GEOS - Geometry engine: https://trac.osgeo.org/geos/wiki

  • An R-Tree collection type for indexing multi-dimensional information

Spatial Data

Spatial data, also known as geospatial data, is information about a physical object that can be represented by numerical values in a geographic coordinate system.

In the database, spatial objects are used to represent the location, size, and shape of an object on planet Earth such as a building, a lake, a mountain, or a city. Spatial objects may also include attributes that provide more information about the entity that is being represented. Geographic Information Systems (GIS) or other specialized software applications can be used to access, visualise, manipulate and analyse geospatial data.

Spatial data is useful for any kind of location-based data, including locations on earth identified with latitude and longitude angles and locations identified with XY coordinates in a Cartesian grid.

The main data type JADE provides is commonly known as a geometry. Geometry types are represented as points on a planar, or flat-earth, surface. An example would be (5,2) where the first number represents that point's position on the horizontal (x) axis and the second number represents the point's position on the vertical (y) axis.

The underlying spatial model and implementation provides the following capability:
Representation: Point, LineString, Polygon, MultiPoint, MultiLineString, MultiPolygon, GeometryCollection

Predicates: Intersects, Touches, Disjoint, Crosses, Within, Contains, Overlaps, Equals, Covers

Operations: Union, Distance, Intersection, Symmetric Difference, Convex Hull, Envelope, Buffer, Simplify, Polygon Assembly, Valid, Area, Length.

Spatial Indexing

JADE provides a tree data structure like a BTree, used for indexing multi-dimensional information. The R in Rtree stands for rectangle, indicating the shape Rtree uses to split space. For more details about Rtree and how it works, see the following Web sites.

The JADE .NET R-Tree collection supports eight spatial search operations: Contain, Within, Disjoint, Intersect, Touch, Cross, Overlap, and Equal.

  • Hugh McColl
  • Mar 4 2021
  • Future consideration
  • Attach files
  • Kerry Glynn commented
    October 28, 2021 01:00

    We have previously created a Polygon class to hold the corners of the rectangle around the coordinated area and also a Coordinate class with x and y Real properties that are perceived to be lat / long since the data we are using is LINZ based. The Polygon includes an Array of Coordinates. We also have a MultiPolygon with a collection of Polygons. We then added a method on Polygon to manage finding if a point was inside the polygon definition. This was specifically used in relation to the local districts in NZ. We have a method to return the google image of the area (currently unused). On the Coordinate class there's methods to determine the distance to / from the coordinate given the curvature of the earth etc.

    As far as extensions possibly the travelling salesman problem solution would be good, although without roads to drive that's potentially moot. Being able to draw the polygon into a control would be good and potentially place points into it. Like a forest boundary and where the trees are in the forest.

  • Greg Matthews commented
    March 08, 2021 23:25

    We have used spatial search for an address feature, it worked pretty well.

    The classes (including RadeRTree) are unpublished. Would be really great if this could be moved formally into the product, published and supported.

  • Admin
    Hugh McColl commented
    March 04, 2021 20:18

    If you have had or envisage a use case for a geospatial capability in a JADE application, please record your use case in a comment and explain why a RootSchema API would be preferable to the existing .Net API for your use case.