-
缓冲区分析
2012-12-27 12:47:53缓冲区分析 1.1 点要素图层的缓冲区分析 2) 打开Arctoolbox,执行命令<Spatial Analyst Tools>-<Distance>-<欧几里德距 离>,按下图所示设置各参数 -
ArcGIS缓冲区分析.rar
2019-11-07 11:59:05ArcGIS缓冲区分析 内附操作文档和实验数据,练习ArcGIS缓冲区分析 -
缓冲区分析叠加分析
2012-11-25 19:25:14缓冲区分析叠加分析PPT教程。内容很全面 -
SuperMap Objects.NET 缓冲区分析
2017-12-07 17:29:24缓冲区分析是最常用的一种空间分析,在道路拓宽、流域季节性扩张、设施服务范围等分析中经常需要用到左右缓冲半径不等的缓冲区分析,本范例将示范如何进行左右缓冲半径不等的线对象和整个数据集的缓冲区分析。 -
实验指导:ArcGIS缓冲区分析与叠加分析
2018-04-04 16:42:41一、实验目的 1. 理解缓冲区分析和叠置分析的基本原理。 2. 学习缓冲区分析、利用Arc Toolbox进行叠加分析的操作。 3. 掌握如何合理利用空间分析中的缓冲区分析和叠置分析解决实际问题。 -
Cesium缓冲区分析
2020-11-21 22:27:24Cesium缓冲区分析前言效果图关键代码 前言 在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实战专栏
-
Flash3D缓冲区分析
2017-12-14 16:51:12SuperMap iClient for该示例展示了如何在Flsh3D客户端中进行三维缓冲区分析。 -
缓冲区分析代码
2013-05-03 13:59:14web GIS开发 刘光 唐大仕 编著 缓冲区分析代码 -
ArcGIS Engine缓冲区分析
2011-07-07 10:31:52ArcGIS Engine缓冲区分析,点的缓冲区分析、区域的缓冲区分析、渲染 -
缓冲区分析设计与实现
2017-12-04 10:23:03可对数据进行缓冲区分析处理,设置相应半径,查看区域范围内的结果 -
ogr 缓冲区_PyQGIS开发 -- 缓冲区分析
2021-01-17 16:02:37缓冲区分析在GIS中属于入门级分析内容,使用非常广泛。例如,需要统计全市内所有学校周围1公里范围分别有多少家小吃店?统计全市所有楼盘周围2公里范围分别有多少配套设施?等等。做法都是对待分析对象做不同大小的...缓冲区分析在GIS中属于入门级分析内容,使用非常广泛。例如,需要统计全市内所有学校周围1公里范围分别有多少家小吃店?统计全市所有楼盘周围2公里范围分别有多少配套设施?等等。做法都是对待分析对象做不同大小的缓冲区,然后利用空间查询,统计缓冲区范围内特定属性。
本文我们分两个部分来讲解。首先,使用QGIS桌面端软件操作来讲解如何做缓冲区,然后再讲PyQGIS的编程实现。再次强调:PyQGIS的接口与C++的接口几乎是一致的,所以用C++开发QGIS的朋友一样可以参考本文。
本文使用QGIS自带的示例数据「airports.shp」,或者你可以自由使用自己的数据。
QGIS桌面端缓冲区分析
1、打开QGIS桌面端软件,并加载「airports.shp」数据。
2、打开QGIS菜单项「Processing -> Toolbox」,在弹出的窗口中,输入「buffer」进行查询,并选择「fixed distance buffer」这个命令,弹出缓冲区参数配置窗口。(注意:这里的Distance我输入的1000,单位是当前地图单位,其余保持默认)。
3、点击确定之后,就可以看到地图中多了一个「Buffer」的图层,地图画布上也相应显示出了缓冲区形状。(为了方便显示,我这里把「airports」图层的样式设置为了飞机的形状)
是不是so easy?这样缓冲区就做好了。利用这个缓冲区图层,就可以查询统计当前每个机场周围的情况了。
PyQGIS实现
下面,我们来使用PyQGIS实现相同的功能,这样更有助于编程化自动处理,以及二次开发。
1、打开图层,并在地图画布上显示。这个在以前的文章中讲过了,下面直接给代码
layer = QgsVectorLayer("/Users/Jacory/OneDrive/Backup/Files backup/qgis_sample_data/shapefiles/airports.shp",
"airports", "ogr")
QgsMapLayerRegistry.instance().addMapLayers([layer])
2、新建临时缓冲区图层,并获取这个图层的「dataProvider」,准备好添加要素
bufferLayer = QgsVectorLayer("Polygon", "Buffer", "memory")
pr = bufferLayer.dataProvider()
3、循环「layer」图层中的每一个要素,并做缓冲区
features = layer.getFeatures()
for feat in features:
# 做缓冲区,第一个参数为Distance,第二个参数为segments
buffer = feat.geometry().buffer(1000, 5)
# 新建要素存放缓冲区几何形状,并添加到缓冲区图层中
b = QgsFeature()
b.setGeometry(buffer)
pr.addFeatures([b])
4、最后,把这个缓冲区图层添加到地图画布中,并显示
bufferLayer.updateExtents()
bufferLayer.setLayerTransparency(70) # 设置图层透明度,可以忽略
QgsMapLayerRegistry.instance().addMapLayers([bufferLayer])
结合上一文讲到的矢量图层查询操作,就可以进行具体的空间查询与统计了。
-------------------------------
OK,就是这样,谢谢阅读。
朋友们如果有感兴趣的内容希望笔者加入写作计划,可以在评论区留言。一起探讨,共同进步!
-
arcgis api for js 缓冲区分析
2018-11-12 09:53:21arcgis api for js 缓冲区分析。可以直接运行,可以实现,初学者可以下载看看 -
ArcGIS缓冲区分析
2012-02-06 10:26:41缓冲区分析是用来确定不同地理要素的空间邻近性和邻近程度的一类重要的空间操作 -
arcgis flex 缓冲区分析
2013-11-18 14:45:23利用arcgis api for flex 实现缓冲区分析功能,供大家参考 -
C#缓冲区分析代码
2013-08-15 14:05:20这是一个关于缓冲区分析的C#实现代码,很好用! -
Flash3D几何对象缓冲区分析
2017-12-14 23:08:08范例使用SuperMap iClient for Flash3D开发模式,实现几何对象缓冲区分析。 -
GIS—缓冲区分析
2018-11-27 16:56:34缓冲区分析:就是空间实体的一种影响范围或服务范围,缓冲区分析的基本思想是给定一个空间实体或集合,确定它们的领域,领域的大小由领域半径来确定。 原理:无论是点缓冲、线缓冲、面缓冲都要形成一个缓冲条件...缓冲区分析:就是空间实体的一种影响范围或服务范围,缓冲区分析的基本思想是给定一个空间实体或集合,确定它们的领域,领域的大小由领域半径来确定。
原理:无论是点缓冲、线缓冲、面缓冲都要形成一个缓冲条件(包括:指定缓冲距离、以要素确定距离…..)包括建立和分析两部分。
点的缓冲:1.单点定距缓冲:以点为圆心,往往得到一个圆形。
2.单点多距缓冲:形成一个多距缓冲。
3.多级缓冲(用途最多):根据应用目的,指定级别数及间距,在分析范围内的缓冲区为每一个目标点建立多级缓冲区。
4.按属性值缓冲:根据应用目的,选中作为缓冲距离的属性字段,在分析范围内的缓冲区为每一个目标点建立以属性字段值为缓冲距离的缓冲区。
线的缓冲:1.单线定距缓冲
2.单线多距缓冲
3.同距缓冲
4.按属性值缓冲
面的缓冲:存在内缓冲和外缓冲之分(内缓冲:在指定面状要素内部建立缓冲区,可以是单个面状要素,也可以是多个面状要素同时建立(用除要做内缓冲的所有面状的边界来做其的内缓冲);外缓冲:在指定面状要素外部建立缓冲区,可以是单个面状要素,也可以是多个面状要素同时建立)
-
iClient对接缓冲区分析
2019-08-02 09:57:26在SuperMap iServer分布式分析服务中,提供了针对海量数据的缓冲区分析功能。本文将介绍如何通过iClient对接分布式分析服务中的缓冲区分析。 一、开发准备 1、iServe开启分布式分析服务,参考博客 ...作者:lly
在SuperMap iServer分布式分析服务中,提供了针对海量数据的缓冲区分析功能。本文将介绍如何通过iClient对接分布式分析服务中的缓冲区分析。
一、开发准备
1、iServe开启分布式分析服务,参考博客 https://blog.csdn.net/supermapsupport/article/details/90903095
2、iClient开发包,可以通过iClient 产品官网进行下载二、iServer上的分布式分析缓冲区分析作业
在iServer上可通过图形化界面进行分析,并预览结果,来测试分析的结果是否为想要的结果。
1.首先在分布式分析服务中找到空间分析下的缓冲区分析buffers
2.创建分析作业,并填写相应参数
3.执行完毕后可在iServer预览分析结果
三、iClient 对接缓冲区分析
我们提供了多个GIS前端开发框架,在这以iClient for Classic为例来对接。
1.引入文件与服务并创建容器
<script type="text/javascript" src="../../dist/classic/include-classic.js"></script> <script type="text/javascript"> var resultLayer, processingsUrl = "http://localhost:8090/iserver/services/distributedanalyst/rest/v1/jobs", mapURL ="http://localhost:8090/iserver/services/map-world/rest/maps/World", map = new SuperMap.Map("map", { controls: [ new SuperMap.Control.Navigation(), new SuperMap.Control.Zoom(), new SuperMap.Control.LayerSwitcher() ], allOverlays: true });
2.注册秘钥
SuperMap.SecurityManager.registerToken(processingsUrl, "XEYE-4vTLNnss6Ryd0xGzZL1La8iTw7jpaKRAE5GYEsGDM8fJD3_OsZW4yu2ZtiL9tMkQEAL3tyApDHAlz1GYw..");
3.设置分析参数
var buffersAnalystJobsParameter = new SuperMap.BuffersAnalystJobsParameter({ datasetName: $('#datasetName').val(),//分析数据集 bounds: getBounds(), //分析范围 distance: $('#distace').val(), //缓冲距离 distanceField: $('#distanceField').val(),//缓冲距离字段 distanceUnit: $('#distanceUnit option:selected').attr('value'),//缓冲距离单位 dissolveField: $('#dissoveField').val() //融合字段 });
4.执行任务并展示地图
processingService.addBuffersJob(buffersAnalystJobsParameter, function (serviceResult) { if (serviceResult.error) { widgets.loader.removeLoader(); var errorMsg = serviceResult.error.errorMsg || "code: " + serviceResult.error.code; widgets.alert.showAlert(resources.msg_createFailed + "<br>" + errorMsg, false); return; } serviceResult.result.setting.serviceInfo.targetServiceInfos.map(function (info) { if (info.serviceType === 'RESTMAP') { SuperMap.FetchRequest.get(info.serviceAddress + '/maps').then(function ( response) { return response.json(); }).then(function (result) { var mapUrl = result[0].path; resultLayer = new SuperMap.Layer.TiledDynamicRESTLayer( "resultLayer", mapUrl, { transparent: true }); resultLayer.events.on({ "layerInitialized": addLayer }); function addLayer() { map.addLayer(resultLayer); widgets.loader.removeLoader(); } }); } }); });
5.显示结果
完整代码如下:
iClient for Classic:
http://iclient.supermap.io/examples/classic/editor.html#buffersAnalystJobService
iClient for Leaflet:
http://iclient.supermap.io/examples/leaflet/editor.html#buffersAnalystJobService
iClient for Openlayers:
http://iclient.supermap.io/examples/openlayers/editor.html#buffersAnalystJobService -
基于WebGIS的交互式缓冲区分析查询
2017-10-31 19:38:44详细介绍arcgis API for flex实现缓冲区分析的步骤,以及Geometry Service进行缓冲区计算 -
supermap 缓冲区分析
2016-09-18 17:30:42下面记录缓冲区分析的详细开发步骤,理清下开发的思路。 在开发缓冲区分析,我们知道使用的API函数为SuperMap.REST.GetFeaturesByBufferService,其构造函数有两个参数,一个为url,另外一个是options,在API函数... -
3维数字地球快速缓冲区分析算法
2017-10-31 19:25:27提出一种应用在3维数字地球中的通过图形处理器(GPU)快速实现矢量数据缓冲区分析的算法。使用一张4通道的纹理图作为容器将地理实体的矢量数据传人GPU,利用GPU的高效并行特性,将目标缓冲区纹理中的每个像素所对应的... -
tatukgis 缓冲区分析教学课件
2013-05-20 16:39:40tatukgis中,有关实现缓冲区分析的教学课件 -
PIE SDK缓冲区分析算法
2019-07-26 09:56:00缓冲区分析是指有点、线、面实体为基础,自动建立其周围一定宽度范围内的缓冲区多边形图层,然后建立该图层与目标图层的叠加,进行分析而得到的所需的结果。他是用来解决邻近度问题的控件分析工具之一。邻近度描述... -
实用ARCGIS进行缓冲区分析具体步骤
2015-05-03 17:00:18实用ARCGIS进行缓冲区分析具体步骤 -
ArcGIS缓冲区分析停止工作
2019-04-27 11:22:59ArcGIS缓冲区分析时停止工作,不知道哪里的问题呀 -
ArcGIS 实验理论基础十六 缓冲区分析
2020-07-26 19:16:23实验16 缓冲区分析 实验目的 理解缓冲区分析的原理 掌握缓冲区建立和缓冲区分析的基本方法 实验内容 某房地产准备开发一个住宅小区,需要对城市噪声进行分析,拟通过计算各地的噪声强度找出受噪声影响较小的... -
GP服务之缓冲区分析(自制视频)
2018-09-18 11:55:30GP服务之缓冲区分析(自制视频),很详细很详细很详细 -
GIS缓冲区分析教程
2010-05-13 09:50:49ARCGIS的缓冲区分析教程PPT——以市区选房为例