1 / 38

6. Simple Features Specification

6. Simple Features Specification. Background information UML overview Simple features geometry. UML. The Unified Modeling Language (UML) is a standard way of representing software objects, as well as modeling non-software systems.

jersey
Télécharger la présentation

6. Simple Features Specification

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  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 doesn’t 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(anotherGeometry:Geometry):Integer — Returns 1 (TRUE) if this geometric object is “spatially equal” to anotherGeometry. • Touches(anotherGeometry:Geometry):Integer — Returns 1 (TRUE) if this geometric object “spatially touches” anotherGeometry. • Crosses(anotherGeometry:Geometry):Integer — Returns 1 (TRUE) if this geometric object “spatially crosses’ anotherGeometry. • Within(anotherGeometry:Geometry):Integer — Returns 1 (TRUE) if this geometric object is “spatially within” anotherGeometry. • Overlaps(anotherGeometry:Geometry):Integer — Returns 1 (TRUE) if this geometric object “spatially overlaps” anotherGeometry. • Contains(anotherGeometry:Geometry):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(distance:Double):Geometry — 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(anotherGeometry:Geometry):Geometry — Returns a geometric object that represents the Point set intersection of this geometric object with anotherGeometry. • Union(anotherGeometry:Geometry):Geometry — Returns a geometric object that represents the Point set union of this geometric object with anotherGeometry. • Difference(anotherGeometry:Geometry):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:

More Related