Skip to content
This repository has been archived by the owner on Feb 23, 2024. It is now read-only.

Microsoft.Geospatial

Brian Kircher edited this page Sep 17, 2021 · 13 revisions

AltitudeReference

The altitude reference system to be used in defining a geographic shape.

public enum Microsoft.Geospatial.AltitudeReference
    : Enum, IComparable, IFormattable, IConvertible

Enum

Value Name Summary
0 Ellipsoid The altitude reference is based on an ellipsoid which is a mathematical approximation of the shape of the Earth.
1 Terrain The altitude reference is based on distance above terrain or ground level.
2 Surface The altitude reference is based on the distance above the tallest surface structures, such as buildings, trees, roads, etc., above terrain or ground level.

GeoBoundingBox

Defines a rectangular area in Latitude and Longitude coordinates.

public struct Microsoft.Geospatial.GeoBoundingBox
    : IEquatable<GeoBoundingBox>

Properties

Type Name Summary
LatLon BottomLeft The minimum coordinate for the GeoBoundingBox.
LatLon Center The center of the GeoBoundingBox.
IEnumerable<LatLon> Corners Enumerates each of the corners in this box.
LatLon TopRight The maximum coordinate for the GeoBoundingBox.

Methods

Type Name Summary
Boolean Equals(Object obj)
Boolean Equals(GeoBoundingBox other)
Int32 GetHashCode()
Boolean Intersects(LatLon location) Returns true if the specified location is in this GeoBoundingBox or intersects the edge of this GeoBoundingBox.
Boolean Intersects(GeoBoundingBox other) Returns true if the specified location is in this GeoBoundingBox or intersects the edge of this GeoBoundingBox.
Boolean Overlaps(IList<LatLon> ring) Tests whether this bounding box overlaps the provided polygon.
Boolean Overlaps(LatLon p1, LatLon p2) Tests whether this bounding box overlaps the provided polygon.
MercatorBoundingBox ToMercatorBoundingBox() Returns the Microsoft.Geospatial.MercatorBoundingBox for this Microsoft.Geospatial.GeoBoundingBox.
String ToString()

GeoBoundingBoxBuilder

Encapsulates logic for building a Microsoft.Geospatial.GeoBoundingBoxBuilder instance.

public class Microsoft.Geospatial.GeoBoundingBoxBuilder

Properties

Type Name Summary
Boolean IsEmpty Gets whether or not the box has grown to include anything.

Methods

Type Name Summary
void Grow(LatLon point) Creates the box or increases it to encompass the specified point.
void Grow(Double longitude, Double latitude) Creates the box or increases it to encompass the specified point.
void Grow(Single longitude, Single latitude) Creates the box or increases it to encompass the specified point.
void Grow(IEnumerable<LatLon> points) Creates the box or increases it to encompass the specified point.
void Grow(GeoBoundingBox box) Creates the box or increases it to encompass the specified point.
GeoBoundingBox ToGeoBoundingBox() Gets an immutable box from the builder.

IBinarySerializable

Interface to read/write types from/to binaries.

public interface Microsoft.Geospatial.IBinarySerializable

Methods

Type Name Summary
void Read(BinaryReader reader) Types that get serialized to blob implement this method to hydrate their contents from binary storage.
void Write(BinaryWriter writer) Types that get serialized to blob must implement this method to commit their contents to binary storage.

LatLon

Represents Latitude + Longitude.

public struct Microsoft.Geospatial.LatLon
    : IBinarySerializable, IEquatable<LatLon>

Properties

Type Name Summary
Boolean IsValid Returns true if the specified coordinate is valid.
Double LatitudeInDegrees The latitude in degrees.
Double LatitudeInRadians Gets the longitude value, converted to radians.
Double LongitudeInDegrees The longitude in degrees.
Double LongitudeInRadians Gets the latitude value, converted to radians.

Methods

Type Name Summary
Boolean ApproximatelyEquals(LatLon other, Double tolerance = 1E-09) Determines whether two LatLon coordinates are considered equal based on a precision threshold. https://msdn.microsoft.com/en-us/library/ya2zha7s(v=vs.110).aspx The default tolerance is set to 9 decimal places where the precision is approximately equal to 110 microns, since 10 decimal places or more indicates a computer or calculator was used. In our applications, it's likely to have come from calls to SQL MakeValid().
Boolean Equals(Object obj)
Boolean Equals(LatLon other)
Int32 GetHashCode()
Boolean IsOnTheEdgeOfTheWorld() Check if a vertex lies on the edge of the world, from -180 to 180 longitude, and from -90 to 90 latitude
Boolean Overlaps(IList<LatLon> ring) Determines if the point is inside or outside the ring. Uses the crossing count algorithm to count the number of times a horizontal ray from the point crosses the ring. It is assumed that though the ring is closed, it does not duplicate the first vertex.
void Read(BinaryReader reader) Hydrate the contents from binary storage. Expected order of data is Longitude, Latitude.
MercatorCoordinate ToMercatorCoordinate() Returns the Microsoft.Geospatial.MercatorCoordinate from this Microsoft.Geospatial.LatLon.
String ToString()
void Write(BinaryWriter writer) Commit their contents to binary storage.

Static Fields

Type Name Summary
Double MaximumLatitude The maximum valid latitude.
Double MaximumLongitude The maximum valid longitude.
LatLon MaxValue A Coordinate2D with maximum values for X and Y.
Double MinimumLatitude The minimum valid latitude.
Double MinimumLongitude The minimum valid longitude.
LatLon MinValue A Coordinate2D with minimum values for X and Y.
LatLon Origin The origin coordinate, (0, 0).
Int64 SizeInBytes Size of this struct.

Static Methods

Type Name Summary
LatLon FromRadians(Double latitudeInRadians, Double longitudeInRadians) Initializes a new instance of the Microsoft.Geospatial.LatLon struct from radians.
Double Wgs84LatitudeToMercator(Double wgs84LatitudeInRadians) Converts from WGS 84 latitudes in radians (-PI/2...PI/2) to Mercator unit latitude value (-0.5...0.5).
Double WrapLongitude(Double longitude) Wraps a longitudinal value in degrees to the -180 to 180 range.

LatLonAlt

A latitude, longitude, and altitude.

public struct Microsoft.Geospatial.LatLonAlt
    : IEquatable<LatLonAlt>

Properties

Type Name Summary
Double AltitudeInMeters Meters, Z. This is always relative to WGS84 Datum.
Double LatitudeInDegrees The latitude in degrees.
Double LatitudeInRadians Gets the longitude value, converted to radians.
LatLon LatLon Degrees, YX
Double LongitudeInDegrees The longitude in degrees.
Double LongitudeInRadians Gets the latitude value, converted to radians.

Methods

Type Name Summary
Boolean Equals(Object obj)
Boolean Equals(LatLonAlt other)
Int32 GetHashCode()
String ToString()

MercatorBoundingBox

Defines a rectangular area in Mercator space.

In Mercator space, X coordinates are longitudinal values and Y coordinates are latitudinal values.

The direction that the MercatorBoundingBox wraps longitudinally is determined by the X cordinate of the left and right points. If the BottomLeft X coordinate is greater than the TopRight X coordinate, the MercatorBoundingBox wraps across the anti-meridian.

public struct Microsoft.Geospatial.MercatorBoundingBox
    : IEquatable<MercatorBoundingBox>

Properties

Type Name Summary
MercatorCoordinate BottomLeft The bottom left coordinate of the bounding box.
MercatorCoordinate Center The center of the box.
Double Height The height of the bounding box in Mercator space.
MercatorCoordinate TopRight The top right coordinate of the bounding box.
Double Width The width of the bounding box in Mercator space.

Methods

Type Name Summary
Boolean Contains(MercatorBoundingBox& other) Returns true if the specified Microsoft.Geospatial.MercatorBoundingBox is completely contained within this box.
Boolean Equals(MercatorBoundingBox other)
Boolean Equals(Object obj)
Int32 GetHashCode()
Boolean Intersects(LatLon latLon) Returns true if the Microsoft.Geospatial.LatLon intersects the Microsoft.Geospatial.MercatorBoundingBox.
Boolean Intersects(MercatorCoordinate& other) Returns true if the Microsoft.Geospatial.LatLon intersects the Microsoft.Geospatial.MercatorBoundingBox.
Boolean Intersects(MercatorBoundingBox& other) Returns true if the Microsoft.Geospatial.LatLon intersects the Microsoft.Geospatial.MercatorBoundingBox.
GeoBoundingBox ToGeoBoundingBox() Converts this MercatorBoundingBox to a lat-lon Box.
String ToString()

MercatorBoundingCircle

Defines a circle in Mercator space.

public struct Microsoft.Geospatial.MercatorBoundingCircle
    : IEquatable<MercatorBoundingCircle>

Properties

Type Name Summary
MercatorCoordinate Center The center of the circle in Mercator space.
Double Radius The radius of the circle in Mercator space.

Methods

Type Name Summary
Boolean Contains(MercatorBoundingBox& mercatorBoundingBox) Returns true if the Microsoft.Geospatial.MercatorBoundingBox is completely contained within this Microsoft.Geospatial.MercatorBoundingCircle.
Boolean Equals(MercatorBoundingCircle other)
Boolean Equals(Object obj)
Int32 GetHashCode()
Boolean Intersects(LatLon latLon) Returns true if the Microsoft.Geospatial.LatLon intersects the circle. Handles anti-meridian wrapping.
Boolean Intersects(MercatorCoordinate& mercatorCoordinate) Returns true if the Microsoft.Geospatial.LatLon intersects the circle. Handles anti-meridian wrapping.
Boolean Intersects(MercatorBoundingBox& mercatorBoundingBox) Returns true if the Microsoft.Geospatial.LatLon intersects the circle. Handles anti-meridian wrapping.
String ToString()

MercatorCoordinate

Represents a coordinate in the Mercator system (EPSG:3857). The latitude and longitude values range from -0.5 to +0.5.

public struct Microsoft.Geospatial.MercatorCoordinate
    : IEquatable<MercatorCoordinate>

Properties

Type Name Summary
Double X The longitude in Mercator space where -0.5 represents -180 degrees, 0 is the prime meridian, and +0.5 represents to 180 degrees.
Double Y The latitude in Mercator space. Valid range from -0.5 to 0.5, corresponding to Microsoft.Geospatial.MercatorCoordinate.MinimumLatitudeInDegrees and Microsoft.Geospatial.MercatorCoordinate.MaximumLatitudeInDegrees.

Methods

Type Name Summary
Boolean Equals(MercatorCoordinate other)
Boolean Equals(Object obj)
Int32 GetHashCode()
LatLon ToLatLon() Creates a Microsoft.Geospatial.LatLon from this Microsoft.Geospatial.MercatorCoordinate
String ToString()
MercatorCoordinate Wrap() Wraps the longitudinal value of the Mercator coordinate if it extends outside the range of [-0.5, 0.5].

Static Fields

Type Name Summary
Double MaximumLatitudeInDegrees Minimum valid latitude of the Mercator projection in degrees.
Double MaximumLatitudeInRadians Maximum valid latitude of the Mercator projection in radians.
Double MinimumLatitudeInDegrees Minimum valid latitude of the Mercator projection in degrees.
Double MinimumLatitudeInRadians Minimum valid latitude of the Mercator projection in radians.
MercatorCoordinate Origin The origin coordinate, (0, 0).

Static Methods

Type Name Summary
Double Distance(MercatorCoordinate& first, MercatorCoordinate& second) The squared distance in Mercator space between the specified coordinates. Does not take into account longitude wrapping.
Double DistanceSq(MercatorCoordinate& first, MercatorCoordinate& second) The distance in Mercator space between the specified coordinates. Does not take into account longitude wrapping.
Double MercatorToWgs84LatitudeInRadians(Double mercatorLatitude) Converts from Mercator unit latitude value (-0.5...0.5) to WGS 84 latitudes in radians (-PI/2...PI/2).
Double WrapLongitude(Double x) Wraps a longitudinal value in Mercator space to the -0.5 to 0.5 range.

MercatorScale

Various helper methods used to compute the scaling factor of the Mercator projection, i.e. the amount of distortion. This varies based on the latitude of the coordinate. The scale of the distortion increases away from the equator and is exterme towards the poles. At Microsoft.Geospatial.MercatorCoordinate.MaximumLatitudeInDegrees, the distortion is around 11x.

public static class Microsoft.Geospatial.MercatorScale

Static Methods

Type Name Summary
Double AtLatitudeInDegrees(Double latitudeInDegrees) Calculates the Mercator scaling factor at the specified latitude in degrees.
Double AtLatitudeInRadians(Double latitudeInRadians) Calculates the Mercator scaling factor at the specified latitude in radians.
Double AtLatLon(LatLon latLon) Calculates the Mercator scaling factor at the specified Microsoft.Geospatial.LatLon.
Double AtMercatorCoordinate(MercatorCoordinate& mercatorCoordinate) Calculates the Mercator scaling factor at the specified Microsoft.Geospatial.MercatorCoordinate.
Double AtMercatorLatitude(Double y) Calculates the Mercator scaling factor at the specified latitude in Mercator space.

TileBorders

Flags enumeration identifying the borders of a tile.

public enum Microsoft.Geospatial.TileBorders
    : Enum, IComparable, IFormattable, IConvertible

Enum

Value Name Summary
0 None No borders
1 East Eastern (right) border
2 West Western (left) border
4 North Northern (top) border
8 South Southern (bottom) border

TileId

Encompasses a single Tile Id At level of detail 0, there is one tile with a value of 1 (""). At level of detail 1, there are four tiles with values of 4 ("0"), 5 ("1"), 6 ("2"), 7 ("3"). At level of detail 2, there are sixteen tiles with value starting at 16 ("00").

public struct Microsoft.Geospatial.TileId
    : IBinarySerializable, IEquatable<TileId>

Properties

Type Name Summary
Int64 Value Gets or sets the value of this tile.

Methods

Type Name Summary
Boolean Equals(Object obj) See System.Object.Equals(System.Object).
Boolean Equals(TileId other) See System.Object.Equals(System.Object).
TileId GetEast() Calculates the Microsoft.Geospatial.TileId to the East of this one, wrapping around the earth.
Int32 GetHashCode()
TileId GetNorth() Calculates the Microsoft.Geospatial.TileId to the North of this one.
TileId GetParent() Calculate the id of the tile that is one level of detail up from this tile. This method will return Microsoft.Geospatial.TileId.Null if the this tile has no parents.
TileId GetSouth() Calculates the Microsoft.Geospatial.TileId to the South of this one.
TileId GetWest() Calculates the Microsoft.Geospatial.TileId to the West of this one, wrapping around the earth.
Boolean IsParentOf(TileId tileId) Returns whether or not the specified tile id is an immediate or distant child of this tile id.
Boolean IsParentOf(IEnumerable<TileId> tileIds) Returns whether or not the specified tile id is an immediate or distant child of this tile id.
void Read(BinaryReader reader)
String ToKey() Gets the tile id as a string grid quadkey. This can be passed into Microsoft.Geospatial.TileId.Parse(System.String) and Microsoft.Geospatial.TileId.TryParse(System.String,Microsoft.Geospatial.TileId@).
String ToString()
Boolean TryGetChildren(TileId[]& children) Calculate the four child tile ids of this tile id.
Boolean TryGetParent(TileId& parent) Try to calculate the id of the tile that is one level of detail up from this tile.
void Write(BinaryWriter writer)

Static Fields

Type Name Summary
TileId Null The null tile id.

Static Methods

Type Name Summary
TileId Parse(String key) Initializes a new instance of the Microsoft.Geospatial.TileId struct from a string tile key.
Boolean TryParse(String key, TileId& tileId) Initializes a new instance of the Microsoft.Geospatial.TileId struct from a string tile key.

TileLevelOfDetail

Encapsulates the value of a tile level-of-detail.

public struct Microsoft.Geospatial.TileLevelOfDetail
    : IBinarySerializable, IComparable<TileLevelOfDetail>, IEquatable<TileLevelOfDetail>

Properties

Type Name Summary
Int16 Value Gets or sets the value of this object.

Methods

Type Name Summary
Int32 CompareTo(TileLevelOfDetail other)
Boolean Equals(TileLevelOfDetail other) Tests whether this value equals the other.
Boolean Equals(Object obj) Tests whether this value equals the other.
Int32 GetHashCode()
void Read(BinaryReader reader) Populates this object with a value read in from the provided System.IO.BinaryReader.
String ToString()
void Write(BinaryWriter writer) Writes this level of detail to the provided System.IO.BinaryWriter.

Static Fields

Type Name Summary
TileLevelOfDetail Max Gets the maximum level of detail supported by the system.
Int16 MaxValue The largest Level of Detail that is supported by this class.
TileLevelOfDetail Min Gets the minimum level of detail supported by the system. This will be 0 as that is the minimum functional value even though -1 is used for null.
Int16 MinValue The smallest Level of Detail that is supported by this class.
TileLevelOfDetail Null Gets a level of detail instance for no level of detail.
Int16 NullValue Gets the level of detail value that is used to represent no level of detail.

Static Methods

Type Name Summary
TileLevelOfDetail FindHighestLowerThan(TileLevelOfDetail levelOfDetail, HashSet<TileLevelOfDetail> levelsOfDetailToCheck) find the highest valid Lod that is lower than the given one
Boolean TryParse(String value, TileLevelOfDetail& levelOfDetail) Parses the level of detail from the specified string.

TileOperations

Common operations related to TilePosition and TileId. For more basic operations using the underlying primitive types, see PrimitiveTileOperations.

public static class Microsoft.Geospatial.TileOperations

Static Methods

Type Name Summary
void CalculateBounds(this TileId tileId, Double& westLongitudeInDegrees, Double& eastLongitudeInDegrees, Double& southLatitudeInDegrees, Double& northLatitudeInDegrees) Calculates the bounding box for this tile id.
LatLon CalculateCenter(this TileId tileId) Calculates the center of the Microsoft.Geospatial.TileId.
GeoBoundingBox CalculateGeoBoundingBox(this TileId tileId) Calculates the bounding box for this tile id.
LatLon CalculateLatLongAtPixel(this TileId tileId, Int32 xPixel, Int32 yPixel, Int32 pixelWidth, Int32 pixelHeight) Calculates the Latitude and Longitude at a given coordinate in pixel space. Pixel origin 0,0 is at the bottom left, proceeding up and to the right.
TileLevelOfDetail CalculateLevelOfDetail(this TileId tileId) Calculates the TileLevelOfDetail for the TileId.
IEnumerable<TileId> CalculateOverlappingTiles(IList<LatLon> ring, TileLevelOfDetail levelOfDetail) Returns a list of tiles that overlap the specified ring.
void CalculateSidePlanes(this TileId tileId, Plane3D& west, Plane3D& east, Plane3D& south, Plane3D& north) Gets the planes that run along the four sides of this tile id.
TileBorders CalculateTileBorders(this TileId tileId, LatLon point) Given a point, calculates if the point falls on a tile border or not. If the point is on a corner, then the point will fall into two sides.
TileBorders CalculateTileBorders(this GeoBoundingBox tileBoundingBox, LatLon point) Given a point, calculates if the point falls on a tile border or not. If the point is on a corner, then the point will fall into two sides.
TileId GetChild(this TileId tileId, TileQuadrant quadrant) Gets a specific child of this TileId
void GetChildren(this TileId tileId, TileId[] output) Fills out the specified array with the immediate children of this tile.
IReadOnlyList<TileId> GetChildrenAtLevelOfDetail(this TileId tileId, TileLevelOfDetail levelOfDetail) Gets a list of Microsoft.Geospatial.TileId values from an ancestor tile at the desired level of detail.
void GetChildrenTileIds(this TilePosition tilePosition, TileId[] output) Fills out the specified array with the immediate children as TileIds.
IEnumerable<TileId> GetCoveredTileIds(MercatorBoundingBox& boundingBox, TileLevelOfDetail levelOfDetail) Returns an enumeration of TileIds that cover the specified MercatorBoundingBox at the given level of detail. The enumeration starts in the upper left tile and ends at the lower right tile.
IEnumerable<TileId> GetCoveredTileIds(GeoBoundingBox boundingBox, TileLevelOfDetail levelOfDetail) Returns an enumeration of TileIds that cover the specified MercatorBoundingBox at the given level of detail. The enumeration starts in the upper left tile and ends at the lower right tile.
IEnumerable<TilePosition> GetCoveredTilePositions(MercatorBoundingBox& boundingBox, TileLevelOfDetail levelOfDetail) Returns an enumeration of TilePositions that cover the specified MercatorBoundingBox at the given level of detail. The enumeration starts in the upper left tile and ends at the lower right tile.
IEnumerable<TilePosition> GetCoveredTilePositions(GeoBoundingBox boundingBox, TileLevelOfDetail levelOfDetail) Returns an enumeration of TilePositions that cover the specified MercatorBoundingBox at the given level of detail. The enumeration starts in the upper left tile and ends at the lower right tile.
List<TileId> GetNeighbors(this TileId tileId) For a given tileId, returns a list containing the tile id and all (up to 8) neighbors for that tile
TileId GetParent(this TileId tileId, IEnumerable<TileLevelOfDetail> levelsOfDetailToCheck) Calculate the id of the tile that is one level of detail up from this tile. This method will return Microsoft.Geospatial.TileId.Null if this tile has no parents.
TileId GetParentAtLevelOfDetail(this TileId tileId, TileLevelOfDetail levelOfDetail) Gets the parent Microsoft.Geospatial.TileId of a parent tile at the desired level of detail.
String GetQuadKey(this TilePosition tilePosition) Creates the quad key string for the TilePosition.
TileQuadrant GetQuadrant(this TileId tileId) The corner of its parent that this tile is in.
void GetRelativeOffsetScale(this TileId childTileId, TileId parentTile, Single& offsetScaleX, Single& offsetScaleY, Single& childScale) Gets the normalized extent of this tile within the given parent tile.
Byte GetSubdomain(this TileId tile) Gets the subdomain of the tile, a value between 0 and 3. This id is relative to the parent tile. 0 is the first child, etc.
Boolean IsParentOf(this TilePosition tilePosition, TilePosition otherTilePosition) Returns true if the TilePosition is a parent of the specified TilePosition.
void PopulateCoveredTilePositionsList(MercatorBoundingBox& boundingBox, TileLevelOfDetail levelOfDetail, IList<TilePosition> tilePositionList) Populates the tilePositionList passed in with a list of TilePositions that cover the specified MercatorBoundingBox at the given level of detail. The list starts in the upper left tile and ends at the lower right tile.
GeoBoundingBox ToGeoBoundingBox(this TilePosition tilePosition) Converts the specified TilePosition to a Box.
MercatorBoundingBox ToMercatorBoundingBox(this TileId tileId) Converts the specified TileId to a MercatorBoundingBox.
MercatorBoundingBox ToMercatorBoundingBox(this TilePosition tilePosition) Converts the specified TileId to a MercatorBoundingBox.
TileId ToTileId(this TilePosition tilePosition) Calculates the Microsoft.Geospatial.TileId from a Microsoft.Geospatial.TilePosition.
TilePosition ToTilePosition(this TileId tileId, TileLevelOfDetail levelOfDetail) Calculates our position using the specified level of detail rather than going to the trouble of extracting ours.
TilePosition ToTilePosition(this TileId tileId) Calculates our position using the specified level of detail rather than going to the trouble of extracting ours.
Boolean TryGetChildren(this TileId tileId, IEnumerable<TileLevelOfDetail> levelsOfDetailToCheck, TileId[]& children) Calculate the children TileIds that have valid Lod from the current TileId.
Boolean TryGetParent(this TileId tileId, IEnumerable<TileLevelOfDetail> levelsOfDetailToCheck, TileId& parent) Try to calculate the id of the tile that is one level of detail up from this tile, on condition that this parent tile is a valid Lod. If not, keep getting the grand parents till finding one with valid lod.
Boolean TryGetParent(this TileId tileId, TileLevelOfDetail validLevelOfDetail, TileId& parent) Try to calculate the id of the tile that is one level of detail up from this tile, on condition that this parent tile is a valid Lod. If not, keep getting the grand parents till finding one with valid lod.
Boolean TryGetParent(this TilePosition tilePosition, Int16 delta, TilePosition& parentTilePosition) Try to calculate the id of the tile that is one level of detail up from this tile, on condition that this parent tile is a valid Lod. If not, keep getting the grand parents till finding one with valid lod.

TilePosition

The position of a Microsoft.Geospatial.TileId within a specific Microsoft.Geospatial.TileLevelOfDetail of tiles. This is an alternate, more verbose, expression of a single tile's Id.

public struct Microsoft.Geospatial.TilePosition
    : IEquatable<TilePosition>

Properties

Type Name Summary
TileLevelOfDetail LevelOfDetail Gets or sets the level of detail for this position.
Int32 X Gets or sets the horizontal offset for this position.
Int32 Y Gets or sets the vertical offset for this position.

Methods

Type Name Summary
Boolean Equals(Object obj) Overrides System.Object.Equals(System.Object).
Boolean Equals(TilePosition other) Overrides System.Object.Equals(System.Object).
Int32 GetHashCode() Overrides System.Object.GetHashCode.
String ToString()

TileQuadrant

Directions enumeration, for use primarily in choosing a child Microsoft.Geospatial.TileId.

public enum Microsoft.Geospatial.TileQuadrant
    : Enum, IComparable, IFormattable, IConvertible

Enum

Value Name Summary
0 Northwest The upper left quad, coded "0".
1 Northeast The upper right quad, coded "1".
2 Southwest The lower left quad, coded "2".
3 Southeast The lower right quad, coded "3".

Wgs84Datum

Collection of methods related to WGS84 earth centered XYZ (Cartesian) coordinates.

public static class Microsoft.Geospatial.Wgs84Datum

Static Fields

Type Name Summary
Double EccentricitySquared The squared eccentricity.
Double EquatorialCircumferenceInMeters The circumference of the Earth at the equator.
Double MajorRadiusInMeters The distance from the center of the Earth to the equator.
Double MinorRadiusInMeters The distance from the center of the Earth to the poles.

Static Methods

Type Name Summary
Vector3D FromLatLon(LatLon latLon) Gets the WGS84 ECEF coordinate for the specified latitude at longitude at altitude = 0.
Vector3D FromLatLonAlt(LatLonAlt lla) Gets the WGS84 ECEF coordinate for the specified latitude, longitude, and altitude.
Double GetApproximateDistanceToHorizon(LatLonAlt lla) Gets the approximate distance to the horizon from the specified LatLonAlt.
Double GetRadiusForLatitude(Double latitudeInDegrees) Gets the radius of the WGS84 ellipsoid at the specified latitude.
Vector3D GetSurfaceNormal(LatLon latLon) Gets the surface normal of the WGS84 elliposid at the specified LatLon.
Vector3D GetSurfaceNormal(Vector3D coordinate) Gets the surface normal of the WGS84 elliposid at the specified LatLon.
LatLonAlt ToLatLonAlt(Vector3D coordinate) Returns the LatLonAlt of the specified WGS84 ECEF coordinate.

Clone this wiki locally