Share via


Polygon Class

Definition

Polygon geometry class in the Azure Cosmos DB service.

A polygon is represented by the set of "polygon rings". Each ring is closed line string. First ring defines external ring. All subsequent rings define "holes" in the external ring.

Rings must be specified using Left Hand Rule: traversing the ring in the order of its points, should result in internal area of the polygon being to the left side.

[System.Runtime.Serialization.DataContract]
[System.Text.Json.Serialization.JsonConverter(typeof(Azure.Cosmos.TextJsonGeometryConverterFactory))]
public sealed class Polygon : Azure.Cosmos.Spatial.Geometry, IEquatable<Azure.Cosmos.Spatial.Polygon>
[<System.Runtime.Serialization.DataContract>]
[<System.Text.Json.Serialization.JsonConverter(typeof(Azure.Cosmos.TextJsonGeometryConverterFactory))>]
type Polygon = class
    inherit Geometry
    interface IEquatable<Polygon>
Public NotInheritable Class Polygon
Inherits Geometry
Implements IEquatable(Of Polygon)
Inheritance
Polygon
Attributes
Implements

Examples

This example shows how to define a polygon which covers small portion of the Earth:

var polygon = new Polygon(
        new[]
        {
            new Position(20.0, 20.0),
            new Position(30.0, 20.0),
            new Position(30.0, 30.0),
            new Position(20.0, 30.0)
            new Position(20.0, 20.0)
        });

This example shows how to define a polygon which covers area more than one hemisphere: (Notice that only order of coordinates was reversed).

var polygon = new Polygon(
        new[]
        {
            new Position(20.0, 20.0),
            new Position(20.0, 30.0),
            new Position(30.0, 30.0),
            new Position(30.0, 20.0)
            new Position(20.0, 20.0)
        });

Constructors

Polygon(IList<LinearRing>, GeometryParams)

Initializes a new instance of the Polygon class in the Azure Cosmos DB service.

Polygon(IList<LinearRing>)

Initializes a new instance of the Polygon class in the Azure Cosmos DB service.

Polygon(IList<Position>)

Initializes a new instance of the Polygon class, from external ring (the polygon contains no holes) in the Azure Cosmos DB service.

Properties

AdditionalProperties

Gets additional properties in the Azure Cosmos DB service.

(Inherited from Geometry)
BoundingBox

Gets bounding box for this geometry in the Azure Cosmos DB service.

(Inherited from Geometry)
Crs

Gets the Coordinate Reference System for this geometry in the Azure Cosmos DB service.

(Inherited from Geometry)
Rings

Gets the polygon rings in the Azure Cosmos DB service.

Type

Gets geometry type in the Azure Cosmos DB service.

(Inherited from Geometry)

Methods

Distance(Geometry)

Distance in meters between two geometries in the Azure Cosmos DB service.

(Inherited from Geometry)
Equals(Object)

Determines whether the specified Polygon is equal to the current Polygon in the Azure Cosmos DB service.

Equals(Polygon)

Determines if this Polygon is equal to the other in the Azure Cosmos DB service.

GetHashCode()

Serves as a hash function for the Polygon type in the Azure Cosmos DB service.

Intersects(Geometry)

Checks if current geometry1 intersects with geometry2.

(Inherited from Geometry)
IsValid()

Determines if the geometry specified is valid and can be indexed or used in queries by Azure Cosmos DB service.

If a geometry is not valid, it will not be indexed. Also during query time invalid geometries are equivalent to undefined.

(Inherited from Geometry)
IsValidDetailed()

Determines if the geometry specified is valid and can be indexed or used in queries by Azure Cosmos DB service and if invalid, gives the additional reason as a string value.

If a geometry is not valid, it will not be indexed. Also during query time invalid geometries are equivalent to undefined.

(Inherited from Geometry)
Within(Geometry)

Determines if current inner Geometry is fully contained inside outerGeometry in the Azure Cosmos DB service.

(Inherited from Geometry)

Applies to