ArcGIS Pro SDK (九)几何 3 点
 
 
 
 
文章目录
 
  
 
 
 
1 构造地图点
 
MapPoint pt = MapPointBuilderEx.CreateMapPoint(1.0, 2.0, 3.0, 4.0);
MapPointBuilderEx mb = new MapPointBuilderEx(1.0, 2.0, 3.0, 4.0);
MapPoint ptWithM = mb.ToGeometry();
MapPoint clone = ptWithM.Clone() as MapPoint;
MapPoint anotherM = MapPointBuilderEx.CreateMapPoint(ptWithM);
MapPointBuilderEx builderEx = new MapPointBuilderEx(1.0, 2.0, 3.0);
builderEx.HasM = true;
builderEx.M = 4.0;
pt = builderEx.ToGeometry() as MapPoint;
builderEx = new MapPointBuilderEx(1.0, 2.0, true, 3.0, true, 4.0, false, 0);
pt = builderEx.ToGeometry() as MapPoint;
pt = MapPointBuilderEx.CreateMapPoint(1.0, 2.0, 3.0, 4.0);
 
2 地图点生成器属性
 
MapPoint point1 = null;
MapPoint point2 = null;
MapPointBuilderEx mb = new MapPointBuilderEx(1.0, 2.0, 3.0);
bool bhasZ = mb.HasZ;          
bool bhasM = mb.HasM;          
bool bhasID = mb.HasID;        
point1 = mb.ToGeometry();
mb.X = 11;
mb.Y = 22;
mb.HasZ = false;
mb.HasM = true;
mb.M = 44;
point2 = mb.ToGeometry();
double x = point1.X;                  
double y = point1.Y;                  
double z = point1.Z;                  
double m = point1.M;                  
int ID = point1.ID;                   
bool hasZ = point1.HasZ;              
bool hasM = point1.HasM;              
bool hasID = point1.HasID;            
bool isEmpty = point1.IsEmpty;        
bool isEqual = point1.IsEqual(point2);    
MapPoint point3 = MapPointBuilderEx.CreateMapPoint(point1);
x = point3.X;                   
y = point3.Y;                   
z = point3.Z;                   
m = point3.M;                   
ID = point3.ID;                 
hasZ = point3.HasZ;             
hasM = point3.HasM;             
hasID = point3.HasID;           
MapPointBuilderEx builderEx = new MapPointBuilderEx(point1);
x = builderEx.X;              
y = builderEx.Y;              
z = builderEx.Z;              
m = builderEx.M;              
ID = builderEx.ID;            
hasZ = builderEx.HasZ;        
hasM = builderEx.HasM;        
hasID = builderEx.HasID;      
isEmpty = builderEx.IsEmpty;     
MapPoint point4 = builderEx.ToGeometry() as MapPoint;
MapPoint point5 = MapPointBuilderEx.CreateMapPoint(point1);
x = point5.X;              
y = point5.Y;              
z = point5.Z;              
m = point5.M;              
ID = point5.ID;            
hasZ = point5.HasZ;        
hasM = point5.HasM;        
hasID = point5.HasID;      
isEmpty = point5.IsEmpty;     
 
3 地图点的相等性
 
MapPoint pt1 = MapPointBuilderEx.CreateMapPoint(1, 2, 3, 4, 5);
int ID = pt1.ID;           
bool hasID = pt1.HasID;     
MapPoint pt2 = MapPointBuilderEx.CreateMapPoint(1, 2, 3, 4, 0);
ID = pt2.ID;        
hasID = pt2.HasID;  
MapPoint pt3 = MapPointBuilderEx.CreateMapPoint(1, 2, 3, 4);
ID = pt3.ID;          
hasID = pt3.HasID;    
MapPoint pt4 = MapPointBuilderEx.CreateMapPoint(1, 2, 3, 44);
ID = pt4.ID;          
hasID = pt4.HasID;    
bool hasM = pt4.HasM; 
MapPoint pt5 = MapPointBuilderEx.CreateMapPoint(1, 2, 3);
ID = pt5.ID;          
hasID = pt5.HasID;    
hasM = pt5.HasM;      
bool isEqual = pt1.IsEqual(pt2);   
isEqual = pt2.IsEqual(pt3);        
isEqual = pt4.IsEqual
 
4 缩放至指定点
 
var pt = MapPointBuilderEx.CreateMapPoint(x, y, 
               SpatialReferenceBuilder.CreateSpatialReference(4326));
var poly = GeometryEngine.Instance.Buffer(pt, buffer_size);
if (!MapView.Active.Map.SpatialReference.IsEqual(poly.SpatialReference))
{
  
  poly = GeometryEngine.Instance.Project(poly, MapView.Active.Map.SpatialReference);
}
QueuedTask.Run(() =>
{
  
  MapView.Active.ZoomTo(poly, new TimeSpan(0, 0, 0, 3));
});