您的位置:首页 > 编程语言

arcEngine经典代码-添加气泡提示框(标注,文本,)

2008-08-11 18:56 260 查看
private void axMapControl1_OnMouseDown(object sender, IMapControlEvents2_OnMouseDownEvent e)

{

if (i >= 3)//测试目的

return;

i++;

ITextElement te = createTextElement(e.mapX,e.mapY,"魁x");

axMapControl1.ActiveView.GraphicsContainer.AddElement(te as IElement, 1);

axMapControl1.Refresh(esriViewDrawPhase.esriViewGraphics, null, null);

}

int i;

public IBalloonCallout createBalloonCallout(double x, double y)

{

IRgbColor rgb = new RgbColorClass();

{

rgb.Red = 255;

rgb.Green = 255;

rgb.Blue = 200;

}

ISimpleFillSymbol sfs = new SimpleFillSymbolClass();

{

sfs.Color = rgb;

sfs.Style = esriSimpleFillStyle.esriSFSSolid;

}

IPoint p = new PointClass();

{

p.PutCoords(x, y);

}

IBalloonCallout bc = new BalloonCalloutClass();

{

bc.Style = esriBalloonCalloutStyle.esriBCSRoundedRectangle;

//

bc.Symbol = sfs;

//

bc.LeaderTolerance = 10;

//1

bc.AnchorPoint = p;

}

return bc;

}

public ITextElement createTextElement(double x, double y, string text)

{

IBalloonCallout bc = createBalloonCallout(x, y);

IRgbColor rgb = new RgbColorClass();

{

//rgb.Red = 255;

rgb.Green = 255;

}

ITextSymbol ts = new TextSymbolClass();

{

ts.Color = rgb;

}

IFormattedTextSymbol fts = ts as IFormattedTextSymbol;

{

fts.Background = bc as ITextBackground;

}

//fts.Size = 8;

ts.Size = 8;

IPoint point = new PointClass();

{

double width = axMapControl1.Extent.Width / 13;

double height = axMapControl1.Extent.Height / 20;

point.PutCoords(x + width, y + height);

}

ITextElement te = new TextElementClass();

//IMarkerElement me = new MarkerElementClass();

{

te.Symbol = ts;

//ts.Text = text;

te.Text = text;

}

IElement e = te as IElement;

{

e.Geometry = point;

}

return te;

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: