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

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

2008-08-21 10:58 441 查看
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;

}
}

posted @ 2008-08-11 18:56 风过 无痕
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: