精华内容
下载资源
问答
  • 如何在Arcmap中对点,线,面进行缓冲区分析,可用于分析污染扩散,噪声影响等 如何在Arcmap中对点,线,面进行缓冲区分析,可用于分析污染扩散,噪声影响等
  • 一、实验目的 1. 理解缓冲区分析和叠置分析的基本原理。 2. 学习缓冲区分析、利用Arc Toolbox进行叠加分析的操作。 3. 掌握如何合理利用空间分析中的缓冲区分析和叠置分析解决实际问题。
  • ArcGIS空间统计分析,将空间信息(面积、长度、邻近关系、朝向和空间关系 )整合到经典统计分析中,以研究与空间位置相关的事 物和现象的空间关联和空间关系,从而揭示要素的空间 分布规律。
  • 缓冲区分析是最常用的一种空间分析,在道路拓宽、流域季节性扩张、设施服务范围等分析中经常需要用到左右缓冲半径不等的缓冲区分析,本范例将示范如何进行左右缓冲半径不等的线对象和整个数据集的缓冲区分析
  • arcgis api for js 缓冲区分析。可以直接运行,可以实现,初学者可以下载看看
  • 缓冲区分析

    2017-12-07 15:50:20
    范例使用c++组件实现对数据集创建缓冲区,生成缓冲区结果数据集。
  • 本范例在Objects Java中示范经纬度坐标系下线对象的缓冲区创建,缓冲分析的左右缓冲半径单位为米,而且不相等,生成的缓冲区面数据集为经纬度坐标系。
  • 该文档是一份AE二次开发的学习资料,适合AE初学者。文档中详细介绍了缓冲区分析的开发过程,对于二次开发者来说是一份很不错的学习资料。
  • 可对数据进行缓冲区分析处理,设置相应半径,查看区域范围内的结果
  • ArcEngine+C#缓冲区分析(GP工具+ITopologicalOperator接口两种方法实现) GP工具为打开窗口,ITopologicalOperator接口代码设置参数直接点击地图实现缓冲分析
  • 在综合考虑GPS定位点精度以及道路宽度的基础上,构建道路缓冲区区域,通过分析道路缓冲区区域与路网中道路的对应关系以及GPS定位点与道路缓冲区区域之间的位置关系,确定GPS定位点所在的匹配道路。实验证明,算法...
  • 应用GIS分析中的缓冲区原理,对影响沉积相的各种参数进行分析研究,并在Microsoft Visual Stdio. NET编程环境中完成缓冲区算法。最后,根据某油田各种实际地质参数数据,应用该方法实现了河道沉积相形成的快速正演...
  • 测绘地理信息技术专业教学资源库 PAGE - 10 - 缓冲区分析利用缓冲区计算道路网密度 激活Data frame4看到两个图层线状图层道路面状图层区界要求计算某个区界范围内的道路网密度按一般定义道路网密度=区界范围内的道路...
  • C#缓冲区分析代码

    2013-08-15 14:05:20
    这是一个关于缓冲区分析的C#实现代码,很好用!
  • 详细介绍arcgis API for flex实现缓冲区分析的步骤,以及Geometry Service进行缓冲区计算
  • ArcGIS学习总结(四)——缓冲区分析应用

    万次阅读 多人点赞 2019-06-02 11:09:58
    1.1 点要素图层的缓冲区分析 在 ArcMap 中新建地图文档,加载图层:StudyArea ,point 打开 Arctoolbox,执行命令<Spatial Analyst Tools>-<Distance>-<欧几里德距离>,按下图所示设置各参数 在...

     

    操作步骤

    1. 距离制图-创建缓冲区

    1.1 点要素图层的缓冲区分析

    在 ArcMap 中新建地图文档,加载图层:StudyArea ,point 打开 Arctoolbox,执行命令<Spatial Analyst Tools>-<Distance>-<欧几里德距离>,按下图所示设置各参数 在 ArcView GIS 3.x 中 Find Distance 功能与 ArcGIS 中<<欧几里德距离>制图功能相同。

    点击“环境设置”按钮设置“常规选项”中的“输入范围”,使其与StudyArea 相同

    1)显示并激活由 point.shp 产生的新栅格主题,eucdist_poin(如上图)。

    在进行分析时,若选中了 point 图层中的某一个或几个要素,则缓冲区分析只对该要素进行;否则,对整个图层的所有要素进行。

    1.2 线要素图层的缓冲区分析

    1).在 ArcMap 中,新建地图文档,加载 line 图层,点击常用工具栏将地图适当缩小。

    2).分别选中图层 line 中的两条线,进行缓冲区分析,注意比较线的缓冲区分析与点的缓冲区分析有何不同。 方法:打开 Arctoolbox,执行命令<Spatial Analyst Tools>-<Distance>-<欧几里德距离>;设置“环境设置”中“常规选项”中的“输出范围”为“Same As Display”

    3)取消选定,对整个 line 层面进行缓冲区分析,观察与前两个分析结果的区别(如下图)。

    1.3 多边形图层的缓冲区分析

    在 ArcMap 中新建地图文档,添加图层:polygon,进行缓冲区分析,观察面的缓冲区分析与点、线的缓冲区分析有何区别。 与创建线的缓冲区相同,先将地图适当缩小,将“环境设置”中“常规选项” 中的“输出范围”为“Same As Display”

    2.综合应用实验

    2.1 水源污染防治

    Point 图层面表示了水源(如:水井)的位置分布,要求利用缓冲区分析找出水源污染防治的重点区域。步骤:

    • 在 ArcMap 中,新建地图文档,添加表示水源分布的点图层数据 point.shp。
    • 打开 ArcToolbox,执行<Spatial Analyst Tools>-<Distance>-<欧几里德距离> 命令。
    • 显示并激活由 point.shp 产生的新栅格图层 eucdist_poi1(如下图)。
    • 右键点击栅格图层 eucdist_poi1,在右键菜单中执行“属性”命令,设置图层显示符号,可调整分类和设置图例显示方式。

    新的栅格图层显示了区域内每个栅格距最近的水井的距离,其中红色的栅格距各个井的距离最近,对水源的影响最大;蓝色的栅格距各个井的距离最远,影响最小。

    • 在本例中认为距各个水井 0.1 以内的区域对水质的影响和污染最大,因此,打开“空间分析”工具栏(首先要确保“空间分析”扩展模块已经加载),执行菜单命令<空间分析>-<栅格计算器>,将距离≤0.1 以内的区域提取出作为缓冲区进行专项的污染防治。(如下图)。

                      

    2.2 受污染地区的分等定级

    假定:point 图层表示的是几个点状污染源,距污染源的远近不同,受污染的状况也不同,距污染源越近,受污染越严重,据此对污染源附近地区进行分等定级。

    1. 在 ArcMap 中,新建地图文档,添加图层:point.、StudyArea。打开 ArcToolbox,执行<Spatial Analyst Tools>-<Distance>-<欧几里德距离>命令,得到新的栅格图层 Dist_of_Point; 
    2. 打开“空间分析”工具栏,执行命令:<空间分析>-<栅格计算器>,基于栅格图层 Dist_of_point 进行栅格计算,分别提取([Dist_of_point]0.1)和区域、及([dist_of_point] >= 0.1 & [dist_of_point] <= 0.15)的区域,分别得到栅格图层:“计算”和“计算 2”;

              

     

    3.对栅格图层:“计算 2”进行重分类运算(执行命令<空间分析>-<重分类>命令),使得原来的 True(1)值为 0,False(0)值为 1,得到新的栅格图层:Reclass of 计算 2。

    4.将图层“计算”与“Reclass of 计算 2”相加(执行命令:<空间分析>-<栅格计算器>),得到中间结果:计算 3:执行命令<空间分析>-<重分类>对栅格图层“计算 3” 按分等定级的要求进行分类得到结果栅格图层“Reclass of 计算 3”。  (<=0.1 的区域污染级别定为 1,)=0.1 且<=0.15 的区域级别定为 2, >0.15 的区域级别定为 3)

     

      2.3 城市化的影响范围

    假定:urban 图层表示的是城市化进程中的一些工业小城镇,还包括一个自然生态保护区。这些小城镇的城市化会对周边地区产生一些扩张影响,但自然生态保护区周围 0.05 的范围内不能有污染性的工业,因此其城市化的范围就受到限制。

    (1) 在 ArcMap 中,新建地图文档,添加图层:urban.shp、UrbanArea,对 urban 图层中的自然保护区图斑(属性 Type=”保护区”)执行[<Spatial Analyst Tools>-<Distance>-< 欧几里德距离>]命令,得到Dist_Nature);对 urban 图层中的除了自然保护区的所有图斑执行[<Spatial Analyst Tools>-<Distance>-<欧几里德距离>]命令,得到Dist_Res

     

    (2)对图层Dist_Nature执行栅格计算(使用空间分析工具中的栅格计算器),提取<=0.05 的区域,并进行重分类,使得原来的 True(1)值为 0,False(0)值为 1,得到“Reclass of 计算”。

    (3)对图层 Dist_Res 进行栅格计算提取<=0.06 的区域,得到“计算 2”;

    (4)将图层“Reclass of 计算”与“计算 2”相乘的栅格计算(使用空间分析工具栏中的栅格计算器),得到城市化范围“计算 3”图层。

    展开全文
  • 空间分析缓冲区分析.pptx
  • 实用ARCGIS进行缓冲区分析具体步骤
  • C#+AE缓冲区分析

    千次阅读 2019-09-27 21:37:11
    一、AE缓冲区接口和类 还是老生常谈,先来了解实现缓冲区功能都需要那些接口和类: GP工具:也就是Geoprocessor类,这其中主要是封装了输入路径、输出路径还有就是可以调用各种工具的函数方法。它给我的感觉类似于...

    趁着这次总结的机会,就想着把这几个星期编的小功能都写成博客记录下来,省的之后遗忘,我写这些东西也算是给自己加深印象吧,鱼的记忆哈哈。

    一、AE缓冲区接口和类

    还是老生常谈,先来了解实现缓冲区功能都需要那些接口和类:
    GP工具:也就是Geoprocessor类,这其中主要是封装了输入路径、输出路径还有就是可以调用各种工具的函数方法。它给我的感觉类似于原来我是一亩地一亩地的打农药,突然有一天来了一架飞机直接在天上散农药,一下子活就干完了。这GP工具就是那飞机,它大大的提高了效率。
    Buffer类:这里注意了这是AnalysisTools下的Buffer类,我记得有两个buffer类,下图是Buffer类中的参数设置表。
    在这里插入图片描述图有点不清晰,我就只能截一点相对重要的信息。
    在这里插入图片描述

    二、功能的实现

    2.1功能实现代码

       private IActiveView pActiveView;
       private AxMapControl mapControl;
    
       //通过构造函数获取MapControl控件
       public BufferAnalysis(AxMapControl mainmapControl)
           : this()
       {
           mapControl = mainmapControl;
           pActiveView = mainmapControl.ActiveView;
       }
    
       //输出路径
       private void button1_OutputPath_Click(object sender, EventArgs e)
       {
           SaveFileDialog saveDlg = new SaveFileDialog();
           saveDlg.Filter = "Shapefile(*.shp)|*.shp";
           if (saveDlg.ShowDialog() != DialogResult.OK) return;
    
           textBox2_OutputPath.Text = saveDlg.FileName;
       }
    
       //生成窗体函数
       private void BufferAnalysis_Load(object sender, EventArgs e)
       {
           if (mapControl == null || pActiveView.FocusMap.LayerCount == 0)
           {
               return;
           }
           IEnumLayer layers = pActiveView.FocusMap.get_Layers();
           layers.Reset();
           ILayer layer = layers.Next();
           while (layer != null)
           {
               comboBox1_ChooseLayer.Items.Add(layer.Name);
               layer = layers.Next();
           }
       }
    
       //确认分析
       private void button2_OK_Click(object sender, EventArgs e)
       {
           double bufferDistance = Convert.ToDouble(textBox1_BufferDistance.Text.Trim());
           if (bufferDistance == 0.0)
           {
               MessageBox.Show("缓冲区距离有误!");
               return;
           }
    
           if (comboBox1_ChooseLayer.Text == string.Empty)
           {
               MessageBox.Show("输入图层不能为空!");
               return;
           }
    
           if (textBox2_OutputPath.Text == string.Empty)
           {
               MessageBox.Show("输出路径不能为空!");
               return;
           }
           int index = comboBox1_ChooseLayer.SelectedIndex;
           string name = getLayerPath(pActiveView.FocusMap.get_Layer(index));
           string outPath = textBox2_OutputPath.Text.Trim();
    
           Geoprocessor pGp = new Geoprocessor();
           pGp.OverwriteOutput = true; //允许运算结果覆盖现有文件,可无
           ESRI.ArcGIS.AnalysisTools.Buffer pBuffer = new ESRI.ArcGIS.AnalysisTools.Buffer();
           //获取缓冲区分析图层
           ILayer pLayer = pActiveView.FocusMap.get_Layer(index);
           IFeatureLayer featLayer = pLayer as IFeatureLayer;
           //IFeatureCursor cursor = featLayer.Search(null, false);
           //IFeature feaClass = cursor.NextFeature();
    
           pBuffer.in_features = featLayer;
    
           pBuffer.out_feature_class = outPath; //输出路径
           pBuffer.buffer_distance_or_field = bufferDistance; //缓冲区参数
           pBuffer.dissolve_option = "NONE"; //融合缓冲区重叠交叉部分,如果不融合填"ALL"
           pGp.Execute(pBuffer, null); //执行
    
           string pFolder = System.IO.Path.GetDirectoryName(outPath); //得到字符串中文件夹位置
           string pFileName = System.IO.Path.GetFileName(outPath); //得到字符串中文件名字
           mapControl.AddShapeFile(pFolder, pFileName); //往地图控件里添加文件
           mapControl.ActiveView.Refresh(); //激活窗口刷新
           this.Close();
       }
    
       //获取图层源路径
       private string getLayerPath(ILayer pLayer)
       {
           IDatasetName pDatasetName = (pLayer as IDataLayer2).DataSourceName as IDatasetName;
           IWorkspaceName pWorkspaceName = pDatasetName.WorkspaceName;
           return pWorkspaceName.PathName +"\\" +pLayer.Name+".shp";
       }
    

    为了省事,我直接将代码整个复制过来了哈哈。

    2.2功能实现效果

    在这里插入图片描述在这里插入图片描述

    三、过程总结

    GP工具的出现大大的提升了编程的速度,但是这也使得我们变得“肤浅”,不过现在对我这种小白来讲现在的主要矛盾其实还是学习怎么使用GP工具,其他的日后再说吧哈哈。

    展开全文
  • supermap 缓冲区分析 Buffer_Query objects
  • Cesium缓冲区分析

    千次阅读 2020-11-21 22:27:24
    Cesium缓冲区分析前言效果图关键代码 前言 在Cesium中做缓冲区分析其实与在二维地图中做缓存区分析是一样的道理,缓冲后需要将二维坐标转到三维坐标,然后在场景中显示结果。 效果图 关键代码 //初始化点缓冲 ...

    Cesium缓冲区分析

    前言

    在Cesium中做缓冲区分析其实与在二维地图中做缓存区分析是一样的道理,缓冲后需要将二维坐标转到三维坐标,然后在场景中显示结果。

    效果图

    在这里插入图片描述

    关键代码

    //初始化点缓冲
        initPointBuffer() {
            let point = [106.422638966289, 29.5698367125623];
            this.addPoint(point);
    
            let pointF = turf.point(point);
            let buffered = turf.buffer(pointF, 60, { units: 'meters' });
            let coordinates = buffered.geometry.coordinates;
            let points = coordinates[0];
            let degreesArray = this.pointsToDegreesArray(points);
            this.addBufferPolyogn(Cesium.Cartesian3.fromDegreesArray(degreesArray));
        },
    
        //添加点
        addPoint(point) {
            this.viewer.entities.add({
                position: Cesium.Cartesian3.fromDegrees(point[0], point[1], 0),
                point: {
                    pixelSize: 10,
                    color: Cesium.Color.YELLOW,
                    outlineWidth: 3,
                    outlineColor: Cesium.Color.YELLOW.withAlpha(0.4),
                }
            });
        },
    
        //初始化线缓冲
        initPolylineBuffer() {
            let points = [
                [106.425203158107, 29.5694914480581],
                [106.428808047023, 29.569230166027],
                [106.431661917416, 29.5692674920729],
                [106.434708906857, 29.5693048181049]
            ];
            let degreesArray = this.pointsToDegreesArray(points);
            this.addPolyline(Cesium.Cartesian3.fromDegreesArray(degreesArray));
    
            let polylineF = turf.lineString(points);
            let buffered = turf.buffer(polylineF, 30, { units: 'meters' });
            let coordinates = buffered.geometry.coordinates;
            points = coordinates[0];
            degreesArray = this.pointsToDegreesArray(points);
            this.addBufferPolyogn(Cesium.Cartesian3.fromDegreesArray(degreesArray));
        },
    
        //添加线
        addPolyline(positions) {
            this.viewer.entities.add({
                polyline: {
                    positions: positions,
                    width: 2,
                    material: Cesium.Color.YELLOW,
                }
            })
        },
    
        //初始化面缓冲
        initPolygonBuffer() {
            let points = [
                [106.438549830166, 29.5701073244566],
                [106.440695597377, 29.5701073244566],
                [106.440738512722, 29.5688755679036],
                [106.438700033871, 29.5687262630581],
                [106.438034846035, 29.5690248725284],
                [106.438549830166, 29.5701073244566]
            ];
    
            let degreesArray = this.pointsToDegreesArray(points);
            this.addPolygon(Cesium.Cartesian3.fromDegreesArray(degreesArray));
    
            let polygonF = turf.polygon([points]);
            let buffered = turf.buffer(polygonF, 60, { units: 'meters' });
            let coordinates = buffered.geometry.coordinates;
            points = coordinates[0];
            degreesArray = this.pointsToDegreesArray(points);
            this.addBufferPolyogn(Cesium.Cartesian3.fromDegreesArray(degreesArray));
        },
    
        //添加面
        addPolygon(positions) {
            this.viewer.entities.add({
                polygon: {
                    hierarchy: new Cesium.PolygonHierarchy(positions),
                    material: Cesium.Color.YELLOW.withAlpha(0.6),
                    classificationType: Cesium.ClassificationType.BOTH
                },
                polyline: {
                    positions: positions,
                    width: 2,
                    material: Cesium.Color.YELLOW.withAlpha(0.4),
                }
            });
        },
    
        //添加缓冲面
        addBufferPolyogn(positions) {
            this.viewer.entities.add({
                polygon: {
                    hierarchy: new Cesium.PolygonHierarchy(positions),
                    material: Cesium.Color.RED.withAlpha(0.6),
                    classificationType: Cesium.ClassificationType.BOTH
                },
            });
        },
    
        //格式转换
        pointsToDegreesArray(points) {
            let degreesArray = [];
            points.map(item => {
                degreesArray.push(item[0]);
                degreesArray.push(item[1]);
            });
            return degreesArray;
        },
    
    

    在前端我们可以借助turf插件进行缓冲区的生成,这样不用依赖后的GIS服务器就能做分析。

    详情参见 Cesium实战专栏

    展开全文
  • 实验目的:熟练掌握A rcGIS缓冲区分析和叠置分析操作,综合利用各项空间分析工具解决实际问题。 实验要求:对每个条件进行缓冲区分析,运用空间叠置分析对多个图层叠加,并分等级,确定合适的区域。 实验数据:ArcEx...
    • 实验平台:ArcGIS 9.3
    • 实验目的:熟练掌握A rcGIS缓冲区分析和叠置分析操作,综合利用各项空间分析工具解决实际问题。
    • 实验要求:对每个条件进行缓冲区分析,运用空间叠置分析对多个图层叠加,并分等级,确定合适的区域。
    • 实验数据:ArcEx8
    • 实验步骤

    打开ArcMap,加载数据ArcEx8,如下所示:

    ◆ 选择view\data frame properties,在打开的对话框里将map,display选为meters,如下所示:

    展开全文
  • 提出一种应用在3维数字地球中的通过图形处理器(GPU)快速实现矢量数据缓冲区分析的算法。使用一张4通道的纹理图作为容器将地理实体的矢量数据传人GPU,利用GPU的高效并行特性,将目标缓冲区纹理中的每个像素所对应的...
  • VB环境中用arcengine库实现缓冲区分析的源代码
  • tatukgis中,有关实现缓冲区分析的教学课件
  • 【实验描述】缓冲区(Buffer)是为了识别某一地理实体对周围地物的影响而在其周围建立的一定宽度多边形区域,缓冲区分析(Buffer Analysis)是用来确定不同地理要素的空间临近性或接近程度的一种分析方法。...
  • 在地质灾害评价中大多都会选取断裂和河流等因子,而河流、断裂等线性的因子在gis最常用的方法就是做缓冲区分析,下边我们就以某县域内的河流做缓冲区分析。 1.首先打开arcmap,加载一个县域的面文件和县域内的水系...
  • AEC#何如做缓冲区分析

    2011-04-28 11:05:59
    AEC#何如做缓冲区分析,本人实际经验总结
  • ArcGIS缓冲区分析停止工作

    千次阅读 2019-04-27 11:22:59
    ArcGIS缓冲区分析时停止工作,不知道哪里的问题呀

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 216,004
精华内容 86,401
关键字:

缓冲区分析