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();
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值