This summarizes the current contents of this package from an end-user perspective.

Scripts

Several scripts are included in the SQL Scripts directory. These include scripts for registering and unregistering all of the following components, as well as several examples of their use.

Functions

These static methods, implemented in the class Functions, can both be registered in SQL Server and used through T-SQL, as well as be used directly from the CLR:

SqlGeography FilterArtifactsGeography(SqlGeography geography, bool filterEmptyShapes, bool filterPoints, double lineStringTolerance, double ringTolerance)
Selectively filter unwanted, artifact, shapes from input geography, with the following arguments:
geography SQLGeography – Input geography object.
filterEmptyShapes boolean – A value of 1 will remove all empty shapes while a value of 0 will not remove any empty shapes.
filterPoints Boolean – A value of 1 will remove all point/multipoint shapes while a value of 0 will not remove any.
lineSTringTolerance double – Remove all linestring/multilinestring shapes shorter than the provided tolerance. A value of 0 will not remove any linestring/multilinestring shapes.
ringTolerance double – Remove all polygon rings thinner than provided tolerance (e.g. ring.STArea< ringTolerance * ring.STLength). A value of 0 will not remove any rings.
General behavior: Returned spatial objects will always be the simplest OGC construction possible.

SqlGeography FilterArtifactsGeometry(SqlGeometry geometry, bool filterEmptyShapes, bool filterPoints, double lineStringTolerance, double ringTolerance)
Selectively filter unwanted, artifact, shapes from input geometry, with the following arguments:
geometry SQLGeometry – Input geometry object.
filterEmptyShapes boolean – A value of 1 will remove all empty shapes while a value of 0 will not remove any empty shapes.
filterPoints Boolean – A value of 1 will remove all point/multipoint shapes while a value of 0 will not remove any.
lineSTringTolerance double – Remove all linestring/multilinestring shapes shorter than the provided tolerance. A value of 0 will not remove any linestring/multilinestring shapes.
ringTolerance double – Remove all polygon rings thinner than provided tolerance (e.g. ring.STArea< ringTolerance * ring.STLength). A value of 0 will not remove any rings.
General behavior: Returned spatial objects will always be the simplest OGC construction possible.

bool IsValidGeographyFromGeometry(SqlGeometry geometry)
Check if an input geometry can represent a valid geography without throwing an exception.
This function requires that the geometry be in longitude/latitude coordinates and that
those coordinates are in correct order in the geometry instance (i.e. latitude/longitude
not longitude/latitude). This function will return false (0) if the input geometry is not
in the correct latitude/longitude format, including a valid geography SRID.

bool IsValidGeographyFromText(string inputWKT, int srid)
Check if an input WKT can represent a valid geography. This function requires that
the WTK coordinate values are longitude/latitude values, in that order and that a valid
geography SRID value is supplied. This function will not throw an exception even in
edge conditions (i.e. longitude/latitude coordinates are reversed to latitude/longitude).

SqlGeography MakeValidGeographyFromGeometry(SqlGeometry geometry)
Convert an input geometry instance to a valid geography instance.
This function requires that the WKT coordinate values are longitude/latitude values,
in that order and that a valid geography SRID value is supplied.

SqlGeography MakeValidGeographyFromText(string inputWKT, int srid)
Convert an input WKT to a valid geography instance.
This function requires that the WKT coordinate values are longitude/latitude values,
in that order and that a valid geography SRID value is supplied.

SqlGeography ConvexHullGeography(SqlGeography geography)
Computes ConvexHull of input geography and returns a polygon (unless all input points are colinear).

SqlGeography ConvexHullGeographyFromText(string inputWKT, int srid)
Computes ConvexHull of input WKT and returns a polygon (unless all input points are colinear).
This function does not require its input to be a valid geography. This function does require
that the WKT coordinate values are longitude/latitude values, in that order and that a valid
geography SRID value is supplied.

SqlGeography DensifyGeography(SqlGeography g, double maxAngle)
Returns a geography instance equivalent to its input, but with no two consecutive points spaced more than maxAngle apart.

SqlGeography InterpolateBetweenGeog(SqlGeography start, SqlGeography end, double distance)
Takes start and end geography points and returns a new point that is a given distance from the start toward the end.

SqlGeometry InterpolateBetweenGeom(SqlGeometry start, SqlGeometry end, double distance)
Takes start and end geometry points and returns a new point that is a given distance from the start toward the end.

SqlGeography LocateAlongGeog(SqlGeography g, double distance)
Takes a geography linestring and finds the point a given distance along it.

SqlGeometry LocateAlongGeom(SqlGeometry g, double distance)
Takes a geometry linestring and finds the point a given distance along it.

SqlGeometry ShiftGeometry(SqlGeometry g, double xShift, double yShift)
Takes a geometry instance and shifts if by a given X and Y amount.

SqlGeometry VacuousGeographyToGeometry(SqlGeography toConvert, int targetSrid)
A special case of the equirectangular projection, taking each point (lat,long) --> (y, x).

SqlGeography VacuousGeometryToGeography(SqlGeometry toConvert, int targetSrid)
The inverse of the VacuousGeographyToGeometry projection.

Types

These types can be registered in SQL Server or used directly through the CLR.

SqlProjection
This class provides an extensible access point to various projections and inverse projections. See the file projection_example.sql for a sample of its use. Currently supported projections are:
  • Albers Equal Area
  • Equirectangular
  • Lambert Conformal Conic
  • Mercator
  • Oblique Mercator
  • Tranverse Mercator
  • Gnomonic

AffineTransform
This provides general affine transformations. See the example transform_example.sql for a sample of its use.

Aggregates

While implemented as classes, aggregates are essentially functions that take a collection of inputs to a single result.

GeographyUnionAggregate
This aggregate computes the union of a set of geographies.

GeometryEnvelopeAggregate
This aggregate computes the envelope of a set of input geometries.

Last edited Dec 29, 2010 at 6:02 PM by tintor, version 12

Comments

No comments yet.