使用SuperMap iDesktopX如何去掉“耗子尾巴”

       在项目中,通过会遇到一些错误的矢量数据,比如“耗子尾巴”。什么是“耗子尾巴呢”,我们所说的“耗子尾巴图斑”,是不规则图斑的一种形态。规则的图斑,应该形态接近圆、矩形、菱形或凸多边形的图斑。自然界中多数图斑应该是相对规则的,即使河流等长条形的图形,其在微观层面上(临近节点之间)也是有比较规则的。不规则的图斑,包括各类拓扑错误、微小洞、边线夹角过小等形态。耗子尾巴图斑是其中的一种。
耗子尾巴主要包括几种形态:
       A型是一个相对规则的图斑和一个相对狭长的图斑的组合,如一个湖泊和一条入湖河流的水面合并为一个图斑;

在这里插入图片描述
       B型是两个相对规则的图斑之间用一个狭长图斑链接为一个图斑,如两个村庄和连接的道路合并为一个图斑;一种是一个相对完整的图斑中有一条狭长缝隙。
在这里插入图片描述
       耗子尾巴属于形态严重不规则的图斑,是数据库建设不能容忍的(至少原理上不能容忍),因为会对各类管理工作造成比较大的影响。如某个基本农田图斑是A型或者B型图斑,尾巴宽度很窄,只有几厘米、几十厘米,在实际生活中这样的地是不可能存在的;但在用地报批时候,某个项目正好占用了一点点(几平方米、甚至零点几平方米)基本农田,项目建设就要叫停。所以,在各类地理空间数据库建设时,本来应该检查出这些问题,并修改掉。实际上,自然资源部门的各类数据库建设、质检中,都没有对这类错误进行检查,那么使用iDesktopX工具该如何检查耗子尾巴这种错误数据呢,核心思想就是需要将耗子尾巴分离出来,下面简单介绍一下实现步骤:
一、面提取中心线
       提取面对象的中心线,设置提取面对象的最大宽度为面对象的最大宽度,这样提取的结果越正确。
在这里插入图片描述
二、对面提取中心线的结果做缓冲区分析
       缓冲区半径主要取决于需要删掉耗子尾巴的宽度,比如需要去除的耗子尾巴是2米宽度的图斑,缓冲区半径就应该设置该宽度的1/2,将缓冲区的结果保留,数据集名称为buffer。
三、面数据转换为线数据
       将业务数据通过类型转换将面数据转换为线数据,这样就可以拿到耗子尾巴数据的轮廓线
四、裁剪
       使用第二步操作的结果裁剪第三步的线数据,就可以得到耗子尾巴的轮廓线了。如果对裁剪掉原始数据的耗子尾巴,可以直接对这一步的结果做一个缓冲区分析,最后用缓冲区分析的结果和业务数据做叠加分析就可以了。
       上述的操作步骤也可以直接使用处理自动化(GPA)模型自动处理,模型参考如下:
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Vue.js是一个流行的JavaScript框架,而SuperMap是一款强大的地理信息系统(GIS)软件开发平台。如果你想在Vue.js中使用SuperMap,你可以按照以下步骤进行操作: 1. 在你的Vue.js项目中安装SuperMap的JavaScript API。你可以通过SuperMap官方网站或npm来获取并安装SuperMap的JavaScript API。 2. 在你的Vue.js组件中引入SuperMap的JavaScript API。你可以在需要使用SuperMap的组件中使用`import`语句来引入SuperMap的JavaScript API。 ```javascript import SuperMap from 'supermap'; ``` 3. 在Vue.js组件的生命周期钩子函数中初始化SuperMap。你可以在`created`或者`mounted`钩子函数中初始化SuperMap,并创建地图对象、图层等。 ```javascript created() { // 初始化地图对象 const map = new SuperMap.Map("map", { controls: [ new SuperMap.Control.Navigation(), new SuperMap.Control.LayerSwitcher(), ] }); // 添加基础图层 const layer = new SuperMap.Layer.TiledDynamicRESTLayer("World", "http://localhost:8090/iserver/services/map-world/rest/maps/World", { transparent: true }); map.addLayer(layer); } ``` 4. 在Vue.js组件的模板中添加地图容器。你可以在组件的模板中添加一个`div`元素作为地图容器,并为其指定一个唯一的ID。 ```html <template> <div> <div id="map"></div> </div> </template> ``` 5. 根据需要在Vue.js组件中添加其他地图功能。你可以根据SuperMap的API文档和示例代码来添加其他地图功能,如标记、查询、分析等。 这样,你就可以在Vue.js项目中使用SuperMap进行地图开发了。请注意,上述代码只是一个简单的示例,你可以根据自己的需求进行适当的修改和扩展。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值