Return Value
A MapPoint.
{
// Use a builder convenience method or use a builder constructor.
// Create a 2D point without a spatial reference
MapPoint point2D = MapPointBuilderEx.CreateMapPoint(1, 2);
SpatialReference sr = point2D.SpatialReference; // sr = null
bool hasZ = point2D.HasZ; // hasZ = false
bool hasM = point2D.HasM; // hasM = false
bool hasID = point2D.HasID; // hasID = false
double x = point2D.X; // x = 1
double y = point2D.Y; // y = 2
double z = point2D.Z; // z = 0 default value
double m = point2D.M; // m is NaN default value
double id = point2D.ID; // id = 0 default value
// Or use a builderEx which doesn't need to run on the MCT.
MapPointBuilderEx builderEx = new MapPointBuilderEx(1, 2);
// do something with the builder
builderEx.Y = 3;
point2D = builderEx.ToGeometry();
sr = point2D.SpatialReference; // sr = null
hasZ = point2D.HasZ; // hasZ = false
hasM = point2D.HasM; // hasM = false
hasID = point2D.HasID; // hasID = false
x = point2D.X; // x = 1
y = point2D.Y; // y = 3
z = point2D.Z; // z = 0 default value
m = point2D.M; // m is NaN default value
id = point2D.ID; // id = 0 default value
// Create a 2D point with a spatial reference
SpatialReference spatialReference = SpatialReferenceBuilder.CreateSpatialReference(4269);
point2D = MapPointBuilderEx.CreateMapPoint(1, 2, spatialReference);
sr = point2D.SpatialReference; // sr != null
int wkid = sr.Wkid; // wkid = 4269
// Or use a builder
builderEx = new MapPointBuilderEx(1, 2, spatialReference);
// Do something with the builder
builderEx.SetValues(3, 5);
point2D = builderEx.ToGeometry();
sr = point2D.SpatialReference; // sr != null
wkid = sr.Wkid; // wkid = 4269
x = point2D.X; // x = 3
y = point2D.Y; // y = 5
// Change the spatial reference of the builder
builderEx.SpatialReference = SpatialReferences.WGS84;
point2D = builderEx.ToGeometry();
sr = point2D.SpatialReference; // sr != null
wkid = sr.Wkid; // wkid = 4326
x = point2D.X; // x = 3
y = point2D.Y; // y = 5
// Create a 3D point with M
MapPoint pointZM = MapPointBuilderEx.CreateMapPoint(1, 2, 3, 4);
sr = pointZM.SpatialReference; // sr = null
hasZ = pointZM.HasZ; // hasZ = true
hasM = pointZM.HasM; // hasM = true
hasID = pointZM.HasID; // hasID = false
x = pointZM.X; // x = 1
y = pointZM.Y; // y = 2
z = pointZM.Z; // z = 3
m = pointZM.M; // m = 4
id = pointZM.ID; // id = 0 default value
// Create a 3D point with M and a spatial reference
pointZM = MapPointBuilderEx.CreateMapPoint(1, 2, 3, 4, spatialReference);
sr = pointZM.SpatialReference; // sr != null
wkid = sr.Wkid; // wkid = 4269
// Create a point from another point in three ways
MapPoint clone = pointZM.Clone() as MapPoint; // Has the same values including the spatial reference as pointZM
MapPoint anotherZM = MapPointBuilderEx.CreateMapPoint(pointZM); // Has the same values including the spatial reference as pointZM
builderEx = new MapPointBuilderEx(pointZM); // Has the same values including the spatial reference as pointZM
// Do something with the builder
builderEx.HasM = false;
builderEx.ID = 7; // Setting the id also sets HasID = true
MapPoint pointZId = builderEx.ToGeometry();
sr = pointZId.SpatialReference; // sr != null
wkid = sr.Wkid; // wkid = 4269
hasZ = pointZId.HasZ; // hasZ = true
hasM = pointZId.HasM; // hasM = false
hasID = pointZId.HasID; // hasID = true
x = pointZId.X; // x = 1
y = pointZId.Y; // y = 2
z = pointZId.Z; // z = 3
m = pointZId.M; // m is NaN, default value
id = pointZId.ID; // id = 7
// Create a point with Z, M, and ID-values
MapPoint pointZMId = MapPointBuilderEx.CreateMapPoint(1, 2, 3, 4, 5, spatialReference);
sr = pointZMId.SpatialReference; // sr != null
wkid = sr.Wkid; // wkid = 4269
hasZ = pointZMId.HasZ; // hasZ = true
hasM = pointZMId.HasM; // hasM = true
hasID = pointZMId.HasID; // hasID = true
x = pointZMId.X; // x = 1
y = pointZMId.Y; // y = 2
z = pointZMId.Z; // z = 3
m = pointZMId.M; // m = 4
id = pointZMId.ID; // id = 5
// Pick and choose which attributes to include
MapPoint point = MapPointBuilderEx.CreateMapPoint(1, 2, false, 3, true, 4, true, 5);
sr = point.SpatialReference; // sr = null
hasZ = point.HasZ; // hasZ = false
hasM = point.HasM; // hasM = true
hasID = point.HasID; // hasID = true
x = point.X; // x = 1
y = point.Y; // y = 2
z = point.Z; // z = 0, default value
m = point.M; // m = 4
id = point.ID; // id = 5
// Or use a builder
builderEx = new(1, 2, true, 3, false, 4, true, 5);
// Do something with the builder
builderEx.ID = 7;
builderEx.SpatialReference = SpatialReferences.WGS84;
point = builderEx.ToGeometry();
sr = point.SpatialReference; // sr != null
wkid = sr.Wkid; // wkid = 4326
hasZ = point.HasZ; // hasZ = true
hasM = point.HasM; // hasM = false
hasID = point.HasID; // hasID = true
x = point.X; // x = 1
y = point.Y; // y = 2
z = point.Z; // z = 0, default value
m = point.M; // m is NaN, default value
id = point.ID; // id = 7
}
{
// MapPointBuilderEx constructors can run on any thread.
MapPoint point1 = null;
MapPoint point2 = null;
SpatialReference spatialReference = SpatialReferenceBuilder.CreateSpatialReference(54004);
MapPointBuilderEx mapPointBuilder = new MapPointBuilderEx(100, 200, spatialReference);
SpatialReference sr = mapPointBuilder.SpatialReference; // sr != null
int wkid = sr.Wkid; // wkid = 54004
bool hasZ = mapPointBuilder.HasZ; // hasZ = false
bool hasM = mapPointBuilder.HasM; // hasM = false
bool hasID = mapPointBuilder.HasID; // hasID = false
bool isEmpty = mapPointBuilder.IsEmpty; // isEmpty = false
double x = mapPointBuilder.X; // x = 100
double y = mapPointBuilder.Y; // y = 200
double z = mapPointBuilder.Z; // z = 0, default value
double m = mapPointBuilder.M; // m is NaN, default value
double id = mapPointBuilder.ID; // id = 0, default value
// Do something with the builder
mapPointBuilder.Z = 12; // Setting the z-value automatically sets HasZ property to true
point1 = mapPointBuilder.ToGeometry();
sr = point1.SpatialReference; // sr != null
wkid = sr.Wkid; // wkid = 54004
hasZ = point1.HasZ; // hasZ = true
hasM = point1.HasM; // hasM = false
hasID = point1.HasID; // hasID = false
x = point1.X; // x = 100
y = point1.Y; // y = 200
z = point1.Z; // z = 12
m = point1.M; // m is NaN, default value
id = point1.ID; // id = 0, default value
// Change some of the builder properties
mapPointBuilder.SetValues(11, 22);
mapPointBuilder.HasZ = false;
mapPointBuilder.HasM = true;
mapPointBuilder.M = 44;
// Create another point
point2 = mapPointBuilder.ToGeometry();
bool isEqual = point1.IsEqual(point2); // isEqual = false
// Set the builder to empty
// Sets X and Y to NaN. Sets other attributes to the default values.
// Does not change the attribute awareness.
mapPointBuilder.SetEmpty();
MapPoint point3 = mapPointBuilder.ToGeometry();
sr = point3.SpatialReference; // sr != null
wkid = sr.Wkid; // wkid = 54004
hasZ = point3.HasZ; // hasZ = false
hasM = point3.HasM; // hasM = true
hasID = point3.HasID; // hasID = false
isEmpty = point3.IsEmpty; // isEmpty = true
x = point3.X; // x is NaN
y = point3.Y; // y is NaN
z = point3.Z; // z = 0, default value
m = point3.M; // m is NaN, default value
id = point3.ID; // ID = 0, default value
// Create a builder from a point
mapPointBuilder = new MapPointBuilderEx(point2); // point1 = (11, 22, 0, 44, 0)
sr = mapPointBuilder.SpatialReference; // sr != null
wkid = sr.Wkid; // wkid = 54004
hasZ = mapPointBuilder.HasZ; // hasZ = false
hasM = mapPointBuilder.HasM; // hasM = true
hasID = mapPointBuilder.HasID; // hasID = false
isEmpty = mapPointBuilder.IsEmpty; // isEmpty = false
x = mapPointBuilder.X; // x = 11
y = mapPointBuilder.Y; // y = 22
z = mapPointBuilder.Z; // z = 0, default value
m = mapPointBuilder.M; // m = 44
id = mapPointBuilder.ID; // ID = 0, default value
// Setting attribute values automatically sets the corresponding flag to true
mapPointBuilder.Z = 150;
mapPointBuilder.ID = 2;
// Remove the spatial reference
mapPointBuilder.SpatialReference = null;
MapPoint point4 = mapPointBuilder.ToGeometry() as MapPoint;
sr = point3.SpatialReference; // sr = null
hasZ = point3.HasZ; // hasZ = true
hasM = point3.HasM; // hasM = true
hasID = point3.HasID; // hasID = true
isEmpty = point3.IsEmpty; // isEmpty = false
x = point3.X; // x = 11
y = point3.Y; // y = 22
z = point3.Z; // z = 150
m = point3.M; // m = 44
id = point3.ID; // ID = 2
}
Target Platforms: Windows 11 Home, Pro, Enterprise (64 bit)