arcmap如何用线生成具有一定宽度的面

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了arcmap如何用线生成具有一定宽度的面相关的知识,希望对你有一定的参考价值。

打开arctoolbox,找到用缓冲区工具(应该是在分析工具下吧,手边没有软件,记不清详细目录了,可以搜索一下),填入缓冲区宽度等参数(你需要宽度的一半,因为缓冲区是向两边生成的)。就能生成一个有指定宽度的面了。 参考技术A 用缓冲区分析,输入你要的宽度就可以了。当然要注意宽度是半边还是全部。追问

缓冲区分析在哪啊- -

参考技术B buffer

如何用滤镜创建svg线?

我想创建具有以下效果的线条。

line sample

以上是用以下方式创建的。

<svg id="svg_wrp" width="500" height="500">
    <defs>
         <filter id="crayon">
            <feTurbulence
                type="fractalNoise"
                baseFrequency="1.001"
                numOctaves="10"
                result="noise">
            </feTurbulence>
            <feDisplacementMap
                xChannelSelector="R"
                yChannelSelector="G"
                scale="50"
                in="SourceGraphic"
                result="newSource">
            </feDisplacementMap>
      <feGaussianBlur stdDeviation="1.1"/>
        </filter>
 </defs>
  <polyline    
  points="200,100 100,200"
  stroke="#000"
  stroke-width="10"
  fill="none"
  filter=url(#crayon) ></polyline>
</svg>

上图在Fiddle中

这种方法对我想做的很多事情都不适用。效果会根据线条的长度和方向而改变。

我能想到的唯一方法就是把所有的线都替换成多边形。然后就可以直接使用滤镜了。但这样我就必须创建一个复杂的多边形,并对每个角和曲线进行计算。

所以在我这样做之前,我想知道是否有办法用svg多线或其他方法来实现上述目的。

编辑:Michael Mullany的回答解决了只用垂直和水平线的问题,但我还是有一些线的效果不同的问题,请看下面的例子。注意左上角的效果降低了。有没有办法让所有线条的效果一致?

enter image description here

答案

默认的滤镜尺寸对水平线和垂直线不起作用,因为它们有一个零面积的边界框。你需要将你的滤镜单位改为。

<filter id="crayon" filterUnits="userSpaceOnUse" x="0" y="0" width="500" height="500">

否则这个滤镜就可以了。

更新:有一些baseFrequency的值会导致异常的moire-like伪影--显然1.001是这种情况下的其中之一。如果你把baseFrequency调整到0.98,问题就会消失。

以上是关于arcmap如何用线生成具有一定宽度的面的主要内容,如果未能解决你的问题,请参考以下文章

如何用CSS使图片自适应显示宽度

如何用arcgis将shp文件的坐标点导出excel

arcgis怎么快捷的删除重复的点?

ArcMap进行线符号制作

ArcMap进行线符号制作

如何在ArcGIS中绘制矢量网格图