6' Simple Features Specification - PowerPoint PPT Presentation

1 / 38
About This Presentation
Title:

6' Simple Features Specification

Description:

Note the differences between the triangle (inheritance) and diamond ... No two rings in the boundary cross, the rings in the boundary of a Polygon may ... – PowerPoint PPT presentation

Number of Views:19
Avg rating:3.0/5.0
Slides: 39
Provided by: gordon48
Category:

less

Transcript and Presenter's Notes

Title: 6' Simple Features Specification


1
6. Simple Features Specification
  • Background information
  • UML overview
  • Simple features geometry

2
UML

The Unified Modeling Language (UML) is a
standard way of representing software objects,
as well as modeling non-software systems. It is
commonly used in describing object-oriented code
libraries, such as the Simple Features
Specification. It grew out of object-oriented
software modeling by private companies in the
early-mid 90s, and was established as an
industry-wide standard in the late 90s. Visual
Studio includes a two-way code visualization tool
that is similar to UML, but doesnt include all
of its features.
3
UML

A class in UML
4
UML

Association between classes
5
UML
Generalization (inheritance)

6
UML
Aggregation (composition)

7
Simple Features Specification
With that quick introduction, we can now look at
the Simple Features Specification, which uses UML
to diagram its components. SFS is a simplified
geometry model, independent of any particular
implementation, that describes a way of
representing geometry that can be used in a
GIS. SFS is a part of a series of standards
published by the Open Geospatial Consortium,
details of which are available at
www.opengeospatial.org. There are multiple
implementations, including Geotools.net, which we
will use in class labs.

8
UML

Note the differences between the triangle
(inheritance) and diamond (aggregation) in the
relationships between the classes.
9
Geometry

Geometry is the root class of the hierarchy.
Geometry is an abstract (non-instantiable) class.
It contains methods available in all geometry
objects These include descriptive methods,
methods used to compare different
geometries. These will be reviewed after
describing the kinds of available geometries.
10
Point

A Point is a 0-dimensional geometric object and
represents a single location in coordinate space.
A Point has an x-coordinate value and a
y-coordinate value (doubles). The boundary of a
Point is the empty set.
11
Curve and LineString
A Curve is a one-dimensional geometric object
usually stored as a sequence of points, with the
subtype of Curve specifying the form of the
interpolation between points. The Simple
Features Spec defines only one subclass of Curve,
LineString, which uses linear interpolation
between points.

12
LineString
A LineString is a Curve with linear
interpolation between points. Each consecutive
pair of points defines a line segment. A Line is
a LineString with exactly 2 points. A LinearRing
is a LineString that is both closed and simple.
LinearRings are the basis of Polygons

13
LineString

14
Polygon
A Polygon inherits from Surface and contains
LinearRings. As in LineString and Curve,
Polygon is the only Surface in the Simple
Features Spec. Each interior boundary defines a
hole in the Polygon.

15
Polygon
A Polygon is a planar Surface, defined by 1
exterior boundary and 0 or more interior
boundaries. Each interior boundary defines a hole
in the Polygon. Polygons are topologically
closed. The boundary of a Polygon consists of a
set of LinearRings that make up its exterior and
interior boundaries. No two rings in the
boundary cross, the rings in the boundary of a
Polygon may intersect at a Point but only as a
tangent A Polygon may not have cut lines,
spikes or punctures. Useful methods include
Centroid, Area, and PointOnSurface.

16
Polygon

17
Polygon

18
Geometry
Polygon centroid

19
GeometryCollection

A GeometryCollection is a collection of 1 or more
geometric objects. It inherits from Geometry,
and implements abstract methods defined in the
Geometry class. Collections are defined for
each type of Geometry.
20
MultiPoint
The elements of a MultiPoint are restricted to
Points. The Points are not connected or
ordered. A MultiPoint is simple if no two Points
in the MultiPoint are equal (have identical
coordinate values). The boundary of a MultiPoint
is the empty set.

21
MultiLineString

A MultiLineString is a MultiCurve whose elements
are LineStrings

22
MultiPolygon

23
MultiPolygon

24
Geometry
Now that we have described the kinds of
geometries available, we can cover some of the
methods in the Geometry class that apply to all
of them. Descriptive methods Envelope(
)Geometry The minimum bounding box for this
Geometry, returned as a Geometry. The polygon is
defined by the corner points of the bounding box
(MINX, MINY), (MAXX, MINY), (MAXX, MAXY), (MINX,
MAXY), (MINX, MINY). IsEmpty( )Integer
Returns 1 (TRUE) if this geometric object is the
empty geometry. If true, then this geometric
object represents the empty point set, Ø, for the
coordinate space. AsText( )String Exports
this geometric object to a specific Well-known
Text Representation of Geometry. IsSimple(
)Integer Returns 1 (TRUE) if this Geometry has
no anomalous geometric points, such as self
intersection or self tangency.

25
Geometry

The Envelope() for a Polygon
26
Geometry
Text representations returned by AsText (useful
for reading/writing geometry from file or
database). A binary representation is also
specified

27
Geometry
Boolean methods that describe spatial
relationships Equals(anotherGeometryGeometry)I
nteger Returns 1 (TRUE) if this geometric
object is spatially equal to anotherGeometry. T
ouches(anotherGeometryGeometry)Integer
Returns 1 (TRUE) if this geometric object
spatially touches anotherGeometry. Crosses(anot
herGeometryGeometry)Integer Returns 1 (TRUE)
if this geometric object spatially crosses
anotherGeometry. Within(anotherGeometryGeometry)
Integer Returns 1 (TRUE) if this geometric
object is spatially within anotherGeometry. Ove
rlaps(anotherGeometryGeometry)Integer Returns
1 (TRUE) if this geometric object spatially
overlaps anotherGeometry. Contains(anotherGeomet
ryGeometry)Integer Returns 1 (TRUE) if this
geometric object spatially contains
anotherGeometry.

28
Geometry
The Touches relationship

29
Geometry
The Crosses relationship

30
Geometry
The Within relationship

31
Geometry
The Overlaps relationship

32
Geometry
Examples of additional methods that return
geometrical objects Buffer(distanceDouble)Geo
metry Returns a geometric object that
represents all Points whose distance from this
geometric object is less than or equal to
distance. ConvexHull( )Geometry Returns a
geometric object that represents the convex hull
of this geometric object. Intersection(anotherGeo
metryGeometry)Geometry Returns a geometric
object that represents the Point set intersection
of this geometric object with anotherGeometry. Un
ion(anotherGeometryGeometry)Geometry Returns
a geometric object that represents the Point set
union of this geometric object with
anotherGeometry. Difference(anotherGeometryGeome
try)Geometry Returns a geometric object that
represents the Point set difference of this
geometric object with anotherGeometry

33
Geometry
Buffer

34
Geometry
Convex hull

35
Geometry
Intersection

36
Geotools.net

The next two slides show the Geotools.net
geometry hierarchy, which implements Simple
Features geometry in C.
37
Geometry

38
Geometry
Convex hull
Write a Comment
User Comments (0)
About PowerShow.com