ArcGisEngine 缓冲区

ArcGisEngine缓冲区

缓冲区是地理空间目标的一种影响范围或服务范围,具体指在点、线、面实体的周围,自动建立的一定宽度的多边,数学表达为:Bi=(x:d(xi,Oi)≤R)。

在ArcGisEngine 二次开发中常会用到缓冲区,下面是缓冲区的分析建立的基础代码。

//地球半径:6378137.0 M
//地球周长:2*6378137.0 M * π = 20037508.94821158
//纬度38° 地球周长:20037508.94821158 * cos38 = 31544206 M
//弧度转变角度的单位 define RtA 57.324841f
//角度转变弧度的单位 define AtR 0.0174533f
double bRadius =5;  //缓冲区距离(米)
double earthR = 6378137.0;  //地球半径
double earthPerimeter = 2 * earthR * Math.PI;  //地球周长
double curLatPerimeter = earthPerimeter * Math.Cos(mapY * 0.0174533);   //根据地图当前纬度mapY,获取出当前纬度点所在纬度圈的周长
double oneMeter = 360 / curLatPerimeter;  //计算每一米所表示纬度的长度
double Radis = bRadius * oneMeter;  //用户输入的米转换为度表示
//拓扑接口,计算几何关系
ITopologicalOperator pTopo = geometry as ITopologicalOperator;  //将用户构造的几何图形转换为拓扑类型接口
IGeometry pGeometry = pTopo.Buffer(Radis);  //建立缓冲区
axMapControl1.FlashShape(pGeometry, 3, 300, null);  //闪烁新建立的几何图形
构造几何图形

IPoint point = new PointClass();
point.PutCoords(mapX, mapY);

线

IGeometry polyline = axMapControl1.TrackLine();

IGeometry polygon = axMapControl1.TrackPolygon();

你可能感兴趣的:(ArcGisEngine)