IFeatureClass featureClass = GetLayerByName( " 摄像头 " ).FeatureClass;
IFeature featureForDraw;
IFeatureCursor tmpcur = Base.QueryElement(featureClass, "" );
while ( true )
{
featureForDraw = tmpcur.NextFeature(); // 得到对象
if (featureForDraw != null )
{
ISimpleFillSymbol pointSymbol = new SimpleFillSymbolClass();
pointSymbol.Style = ESRI.ArcGIS.Display.esriSimpleFillStyle.esriSFSNull;
pointSymbol.Color = Base.GetRGBColor( 255 , 0 , 0 );
ILineSymbol linesymbol = new SimpleLineSymbolClass();
linesymbol.Width = 1.1 ;
linesymbol.Color = Base.GetRGBColor( 255 , 0 , 0 );
pointSymbol.Outline = linesymbol;
IPoint p = featureForDraw.ShapeCopy as IPoint;
// 这里用了属性查询,用到前面得到的对象的主字段值。
// IRubberBand pRubberBand=new RubberCircleClass();
ESRI.ArcGIS.Geometry.IConstructCircularArc con = new CircularArcClass();
double FW = 40.0 ;
double zj = 0.01 ; // 直径
double jd = 1.414 ;
string _fw = featureForDraw.get_Value(featureForDraw.Fields.FindField( " SP_ANGLE " )).ToString().Trim();
if (_fw != string .Empty)
{
FW = double .Parse(_fw);
}
string _zj = featureForDraw.get_Value(featureForDraw.Fields.FindField( " BOUND " )).ToString().Trim();
if (_zj != string .Empty)
{
zj = double .Parse(_zj);
}
try
{
// con.ConstructCircle(p,System.Convert.ToDouble(bound_str)/2000,false);
ESRI.ArcGIS.Geometry.ICircularArc cir = new CircularArcClass();
cir = con as ICircularArc;
// 重点
cir.PutCoordsByAngle(p,FW * Math.PI / 180 , 40 * Math.PI / 180 ,zj);
IPoint 起始点 = cir.FromPoint;
IPoint 结束点 = cir.ToPoint;
ILine line = new LineClass();
ILine line1 = new LineClass();
line.PutCoords(p,起始点);
line1.PutCoords(结束点,p);
ISegmentCollection polygon = new PolygonClass();
object Missing = Type.Missing;
polygon.AddSegment(line as ISegment, ref Missing, ref Missing);
polygon.AddSegment(cir as ISegment, ref Missing, ref Missing);
polygon.AddSegment(line1 as ISegment, ref Missing, ref Missing);
IGeometry geometry = polygon as IGeometry;
object tmpSymbol = ( object )pointSymbol;
axMapControl1.DrawShape (geometry, ref tmpSymbol);
}
catch
{
}
}
else
{
break ;
}
}
}
catch (Exception ex)
{
System.Console.WriteLine(ex.Message);
}
ArcGIS Engine 画扇形要素
最新推荐文章于 2023-03-28 10:03:26 发布