投影offset计算方法
发布网友
发布时间:2023-05-25 07:52
我来回答
共1个回答
热心网友
时间:2024-11-19 08:24
ArcGIS Runtime 算法解读之Offset 原创
2020-03-04 17:20:09
爱打DOTA的码农
码龄12年
关注
首先肯定是看官方的文档,但对于英文不好的,可能看着就一脸懵*!我就是这样的,因此花了点时间研究这个算法。我工作主要是对线进行偏移,因此只研究了线的偏移;对于面应该差不多;
public static Geometry Offset( Geometry geometry, double distance, OffsetType offsetType, double bevelRatio, double flattenError )
有5个参数:
geometry:就是要偏移的对象;
distance:就是要偏移的距离;正数就是将偏移对象向右偏移,这里的向右指的是,对象点的添加顺序构成的方向的右边。后面会在图中进行解释;
offsetType:是一个枚举类型,主要是设置偏移对象的顶点偏移后是什么;有四个类型:Round、Bevel、Miter、Square;
bevelRatio:在offsetType设置为:Bevel有用;后面看不同值有什么不同变化;
flattenError :控制在转角产生点的距离值;offsetType设置为:Round有用;
数据准备:4个点,11873952.9370746,3069453.75805943;11873987.946725,3069383.36827443;1874043.9341095,3069319.93501688;11874117.4966627,3069262.57004984
绘制出来的是这样的:
当距离值是正时,偏移的线会在右边,负值在左边;
注:此情形下,右边(即正数时)偏移距离越大,产生的线段越长;左边(即负数时)偏移距离越大,产生的线段越短。
以下开始对不同类型进行实验比较:
offsetType类型是Round:该类型会在线路拐角处产生很多个点,目的是为了看起来更圆滑;
1.1 bevelRatio和flattenError 不变,距离改变: