我不多写了。。网上现有的代码算法有问题。把代码放上来,需要的同志可以参考。
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);
}
程序猿们,我也跟风开了网店,主要经营土特产,云南核桃,四川正宗土鸡蛋鸡蛋。有需要的就支持一下小店哈 七彩山川美食(http://qcsc.taobao.com)