测试代码
private void buttonItem21_Click(object sender, EventArgs e)
{
DateTime dt1 = DateTime.Now;
CBuffer buffer = new CBuffer();
//List<IGeometry> geoList = buffer.GetBufferInterList(this.myMapControl1.get_Layer(0) as IFeatureLayer, this.PntCurrent, 100000);
int disNum = -1;
ILine line = buffer.GetNearestLine(this.myMapControl1.get_Layer(0) as IFeatureLayer, this.PntCurrent, 100000, ref disNum);
IGraphicsContainer pGraphicsContainer = this.myMapControl1.Map as IGraphicsContainer;
pGraphicsContainer.DeleteAllElements();
//foreach (IGeometry kv in geoList)
//{
// ILineElement pLineElement;
// pLineElement = new LineElementClass();
// IElement pElement;
// pElement = pLineElement as IElement;
// pElement.Geometry = kv;
// pGraphicsContainer.AddElement((IElement)pLineElement, 0);
//}
IMarkerElement pMarkerElement4;
pMarkerElement4 = new MarkerElementClass();
IElement pElement4;
pElement4 = pMarkerElement4 as IElement;
pElement4.Geometry = this.PntCurrent;
pGraphicsContainer.AddElement((IElement)pMarkerElement4, 0);
IMarkerElement pMarkerElement;
pMarkerElement = new MarkerElementClass();
IElement pElement2;
pElement2 = pMarkerElement as IElement;
pElement2.Geometry = line.FromPoint;
pGraphicsContainer.AddElement((IElement)pMarkerElement, 0);
IMarkerElement pMarkerElement2;
pMarkerElement2 = new MarkerElementClass();
IElement pElement3;
pElement3 = pMarkerElement2 as IElement;
pElement3.Geometry = line.ToPoint;
pGraphicsContainer.AddElement((IElement)pMarkerElement2, 0);
I

这段代码演示了如何使用ArcEngine找到一个点到polyline集合的最近点,并进行垂足计算。在buttonItem21_Click事件中,通过CBuffer类的方法获取最近的线段、起点、终点,以及计算的垂足点,并在地图上绘制这些元素。代码还展示了如何更新和刷新地图视图。
3490

被折叠的 条评论
为什么被折叠?



