- 博客(35)
- 资源 (7)
- 收藏
- 关注
原创 【C++11】左值引用,右值引用,移动/复制构造,完美转发
字面意思是可以放在等号左边的就是左值,只能放在等号右边的就是右值(为何是“可以”“只能”?例如++i是左值,但他依然可以放在等号右边)。严格上的定义:可以取地址的就是左值,反之为右值(不具名)。
2023-11-11 20:05:50 328
原创 【GeoTools】判断shp文件的合法性
总体思路:通过读取shp文件的几何类型和空间参考信息来判断合法性。如果都读取成功,则说明是合法的shp文件。(在某些场景下空间参考不是必须的)
2023-05-21 09:37:54 229
原创 【TIPS】在maven项目中配置仓库后找不到依赖的解决办法
在项目中添加了项目的geotools依赖,但是却找不到geotools,发现是。上面没有这个包,所以需要从其他的镜像中获取。
2023-04-22 17:21:35 1202
原创 【OpenLayers】VUE+OpenLayers+ElementUI加载WMS地图服务
修改vue项目的端口可以通过项目根目录下package.json文件修改serve:“serve”: “vue-cli-service serve --port 8002”启动vue项目:进入项目的目录下,执行npm run serve 启动。/vue.ps1,因为在此系统上禁止运行脚本,有关详细信息,…在配置好以上环境后,下面就可以正式实现加载wms地图服务的功能。安装完成后,控制台输入node -v,显示版本号即安装成功。安装完成之后控制台输入vue -V,显示版本号则安装成功。
2023-04-08 17:58:29 2755 1
原创 【Geoserver】使用GeoServer-Manager接口发布/取消发布WMS服务
Geoserver-Manager发布/取消发布WMS服务
2023-03-22 20:47:37 1132
原创 以日志记录功能初窥.net中的异步(Async)
1、写在前面最近在研究我们产品的代码,在某些功能(比如说入库)上用到了异步,但这么久一直也没有细细地去研究,网上对相关内容的通俗讲解很多都是以泡茶、洗衣服之类的生活例子,个人认为这对于理解异步的作用没有问题,但真正遇到问题还是不能很好的使用。所以我在学习相关内容的时候也写了一些示例代码,主要的功能是模拟一个耗时的操作,并模拟记录日志(因为我们产品也有响应的功能)。用了两个思路实现,分别是针对.net4.5以上版本的await/async语法糖和低版本.net的IAsyncResult。2、功能的设计设
2021-08-08 16:02:54 328
原创 ArcEngine导出数据量较大的属性表(ICursor接口的使用)
之前的博文“ArcEngine查看数据量较大属性表的解决方案”中,用了ICursor接口来实现数据量较大属性表的分页查询。既然实现了分页查询,那么就有可能会遇到数据量较大的属性表导出至本地的需求(虽然我觉得这样做意义不大,但是毕竟也算是客户的需求)。在这种情况下,一次性导出至本地显然是不合理的,势必会造成内存溢出的异常,所以考虑用ICursor接口。在ArcObject的帮助文档中对ICursor的说明中我看到了这样一句话:Cursors are forward only; they do not su
2020-12-07 21:31:15 743
原创 Visual Studio中的.net程序集防止被恶意篡改的方法(.net程序集强签名)
.NET CLR提供了一套公钥/私钥加密技术,主要是为了解决程序集唯一性标识的问题,这样一来,如果有两个程序集他们的名称、版本一样也不会产生冲突。这个技术也顺带解决了程序被恶意篡改的问题,在命令行中使用SN命令来生成私钥并对程序集签名,比较麻烦,好在宇宙第一IDE(visual studio)集成了这个命令,可以很容易地生成密钥为程序签名。在程序集右键–>属性–>签名中勾选“为程序集签名”,在“选择强名称密钥文件”选项中选择新建,在弹出的窗体的输入密钥文件名称、密钥文件的保护密码(可选),
2020-10-24 14:10:33 903
原创 ArcEngine查看数据量较大属性表的解决方案(解决HRESULT:0x8004160A)
在之前的博文“ArcEngine做一个“仿”ArcMap中的属性表”中,如果遇到数据量较大(万级以上)的数据就会出现查询很慢甚至内存溢出的问题,这对于一个实际应用的系统肯定是不允许的。好在ao中提供了定义过滤查询的接口:IQueryFilterDefinition3在接口文档中对这个接口的说明是这样的:Provides access to query filter definition properties.定义过滤条件主要要用到IQueryFilterDefinition3接口中PostfixC
2020-10-18 17:01:43 701
原创 ArcEngine实现要素重塑(Reshape)编辑操作
1、需求要实现的需求就是ArcGis中的重塑(Reshape)编辑操作,在ArcGIS的帮助文档中对这一工具的说明如下图:我的理解其实就是用一个线要素改变面或者线的形状,可以理解成操作更方便的节点编辑。2、实现思路如果因为需求比较急于实现可以直接跳过该部分,直接转向下一部分。通过查看ArcObject帮助,得知三个接口下有Reshape方法,分别是IRing、IPolyline、IGeometryServer2,通过接口的名字就可以排除第三个,这个操作和几何服务没有什么关系。2.1 IPoly
2020-10-12 22:37:39 1288 2
原创 ArcEngine注册版本编辑sde中的数据(解决报错0x80040356)
1、问题提出在我的上一篇博文中(ArcGIS编辑SDE的矢量数据(集)(解决因版本化问题不能编辑))解决了在ArcGIS中编辑sde时遇到的未注册导致不能编辑的问题,同样,在ArcEngine中也可以用同样的思路解决这个问题。这个问题比较简单,所以为了增加篇幅,我在这篇博文中整理了一下我解决ArcEngine问题的一贯思路,如果比较赶时间可以跳过第二部分。2、解决思路我始终坚信遇到问题最好的解决办法第一是帮助文档,第二是百度谷歌,所以在已经知道在ArcGIS中如何解决这个问题之后就可以在帮助文档中查找
2020-09-28 22:07:28 734 1
原创 ArcGIS编辑SDE的矢量数据(集)(解决因版本化问题不能编辑)
这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Mar
2020-09-24 22:06:11 1723 1
原创 ArcEngine做一个“仿”ArcMap中的属性表
1、需求GIS的数据有空间信息和属性信息,基于ArcEngine开发GIS系统的时候,空间信息用MapControl可以直接展示,但是属性信息却没有相关的控件直接进行展示(或许有接口,我没有找到,而且arcobject自带的接口可能很难满足客户奇奇怪怪的需求)。参考ArcMap中的属性表的功能仿制了一个自定义控件。2、界面设计这个是自定义控件的主界面,有两个GridControl组成,之所以用两个GridControl,是为了避免在大量数据的情况下一个GridControl反复刷新造成卡顿。自定义控
2020-09-13 15:45:49 784
原创 C# .net+DevExpress自定义控件(UserControl)之分页控件
1、需求在开发桌面系统时难免会碰到一些很大的表格,上千行甚至上万行,如果把这些表格全部用GridControl展示出来难免会觉得系统很臃肿,而且会影响系统的效率,所以对表格进行分页就比较重要了。其实在Dev中有自带的所谓“分页控件DataNavigation”,但是那个和我们一般使用的还是有很大区别,dev自带的分页控件准确来说是一个导航控件,显示的还是一张大表。2、分页控件UI设计左边是上下页和首末页的label,点击控件触发响应事件,还可以在文本框中输入页码来指定页跳转,还可以设置每页显示的条数
2020-08-29 16:36:59 2592
原创 初探Arcpy——用arcpy批量创建空要素类并写入数据
1、需求偶然间了解到之前的课题组老板提出了一个我认为既无聊又充满挑战的需求,无聊是因为我认为做出来的数据意义不大,充满挑战是因为我认为我现阶段是时候入门一下arcpy了。有某地区若干气象站30年每天的温度表格数据(最高温度、最低温度、平均温度),现在需要将每一天的数据进行插值(所以,得到的数据需要怎么分析?)。原始的数据很乱,我把原始的站点气象数据进行了整理,加上了经纬度以方便后续工作的开展,最终整理成下面的表格,总共47万多行,数据说大不大,说小不小:2、用arcpy怎么做?对于我之前有用过GP工具
2020-08-23 16:34:27 3473 1
原创 ArcEngine制作专题地图(上,标题、图例)(20190920)
1、需求为地图添加地图的基本要素(图例、比例尺、指北针)及相关注记,并将地图导出为图片。2、解决方案(1)创建地图的基本要素主要用到IMapFrame接口中的CreateSurroundFrame方法;(2)控制地图的基本要素主要用到IMapSurround接口;(3)还有一个IMapSurroundFrame接口,这个是做什么的我也不知道怎么表达,代码中慢慢意会吧;(4)通过一个标志...
2019-09-20 21:03:34 4182 1
原创 ArcEngine实现要素图层唯一值符号化(渲染)(20190909)
1、需求选择地图中某一要素图层的属性,对其进行唯一值符号化(相同的属性用同样的颜色渲染)2、解决方案(1)IUniqueValueRenderer接口实现要素唯一值的渲染;(2)IRandomColorRamp接口创建随机颜色带;3、界面设计主要有两个界面,分别是主窗体界面和唯一值符号化界面(1)主界面:(2)唯一值符号化界面4、代码实现实现要素图层属性唯一值设色的方法,这...
2019-09-09 21:48:52 3855 3
原创 ArcEngine实现要素属性的标注及取消标注(20190904)
1、需求选择地图中的某一要素图层的属性,在地图中对其进行标注,同时,标注的颜色、字号、字体可以进行修改。另外,取消不需要的图层标注。2、解决方案1、控制图层标注的显示或隐藏通过IGeoFeatureLayer.DisplayAnnotation属性设置;2、IAnnotateLayerPropertiesCollection接口操作要素类图层,包括清除图层标注等;3、ILabelEngi...
2019-09-04 21:34:40 2116
原创 ArcEngine调用工具箱(Geoprocessor)工具输入的要素/栅格为多个情况时的处理方法(20190829)
1、需求在用ArcEngine调用工具箱中的工具时,碰到了这样的情况,以工具箱中“Data Management Tools–>Features–>Feature ToPolygon”工具为例,需要选择多个输入的要素,如下图:查看这个工具的帮助文档,得知输入的要素是如下图这样的,他的In_feature可以是单个要素类,也可以是多个要素类。从帮助文档给的Python的代码示例...
2019-08-28 19:47:57 817
原创 ArcEngine使用Geoprocessor接口实现工具箱中的方法(以线要素平滑为例)(20190822)
1、前言接触AE开发也有一段时间了,现在基本的操作也算是熟悉了,既然作为ArcGIS的二次开发,理论上在ArcGIS中能实现的操作用AE都可以实现,尤其是ArcToolbox中的工具,功能非常丰富,在ArcEngine中用Geoprocessor接口调用工具箱即可实现工具箱中的功能,可以说是非常简单,这里以ArcGIS工具箱中“Cartography Tools–>Generalizati...
2019-08-22 22:23:26 2482 2
原创 ArcEngine创建拓扑并验证拓扑(20190813)
1、需求在空间分析中,有时需要判断要素与要素之间的关系,比如,在一个国家的所有省份必须要填满整个国界,不得有缝隙,再比如,省份与省份之间不能有重叠等,这些例子网上已经很详细了,这里就不多说了。我们需要做的就是在上一篇博客(https://blog.csdn.net/weixin_41607453/article/details/98991762)建立好了要素数据集、文件地理数据库的基础之上创建拓...
2019-08-13 21:46:15 2835 5
原创 ArcEngine新建文件地理数据库及其要素数据集,要素数据集加载(20190809)
1、需求为了完成拓扑分析模块,需要在系统中新增创建文件地理数据库、要素数据集并加载要素数据集中的数据一系列功能。2、设计思路很简单,和ArcGIS中新建文件地理数据库、导入数据、加载数据的功能一样:(1)创建文件地理数据库:选择某一位置,在选定的位置创建文件地理数据库;(2)创建要素数据集:选择已经建立的文件地理数据库,在该数据库中新建要素数据集(IFeatureWorkspace接口中...
2019-08-09 21:45:45 5461 1
原创 ArcEngine实现各个图层面积\长度\个数的实时统计(20190804)
1需求在空间规划作业中,编辑要素时,我们需要同时知道编辑要素的面积或长度,以保证工程在预算范围之内,所以,我们需要有一个工具对编辑过程进行实时的检测。2设计思路(1)首先需要编辑Map中的所有图层,把符合统计条件的图层找出来,在这里符合条件的是shp数据,如果是shp数据则进行统计;(2)对符合条件的图层的各个要素(Feature)进行遍历,以求得每个要素(Feature)的长度\面积,求...
2019-08-04 21:08:06 2057 1
原创 ArcEngine转换要素类的投影坐标系(20190722)
1、需求上一篇博客对不同坐标系统之间的转换做了简要的介绍,在此基础之上今天用ArcEngine来实现要素类投影坐标系转换的功能。2、设计思路(1)遍历IFeatureWorkspace中的所有shp,将其加到IFeatureClass的列表中,每一个IFeatureClass的Name添加到下拉列表框的Items中;(2)从下拉框中选择了IFeatureClass实例后,得到实例的Spat...
2019-07-22 21:39:21 1759 1
原创 ArcGIS不同坐标系统的转换(20190718)
最近要用ArcEngine完成一个实现要素类坐标转换的功能,所以花了半天时间把ArcGIS坐标系及其转换的一些内容研究了一下。关于坐标转换的原理,我不太善于总结,就很通俗的说一下,试想有一个魔方现在摆在水平的桌面上,这时一个桌腿被锯掉一块,那么桌面现在就不是水平的了,那么魔方上同一个点A相对于地面是怎样变化的呢,这就要用到七个参数,首先,A点肯定是移动了位置的,那么这个位置可以分解成三个方向上的...
2019-07-18 21:19:20 10725
原创 将CAD要素类中的点线面和注记按相应的"Layer"属性导出为shp文件(20190717)
最近公司事情太多,都一周没有写博客了,最近在做的事情是做一个将CAD矢量数据按照属性字段导出成shapefile的功能,CAD我不太了解,如果文章中对于CAD矢量数据有错误的地方也请大家指正,互相学习。要知道导出的方法,那么就应该先了解ArcGIS打开CAD数据的原理,下图是在ArcGIS中打开的一个dwg格式的矢量文件,在CAD中矢量数据是按照点线面注记来分层存储的,当然,这个数据还额外添加了...
2019-07-17 22:31:39 2660 2
原创 ArcEngine实现两个地图控件(axMapControl)之间的联动(20190710)
在开发的系统上有一个小需求,关联两个地图,以分析不同时期相同地点的地物变化,也就是两个axMapControl之间的联动,针对这个需求简单的设计了如下的界面:当然,这个界面比较原始,仅仅作为一个原型来说明这一功能,在用图形化界面设置ArcToolbar的Item属性的时候,一定不要把某些item选择错了,比如FullExtent和Pan,千万不要选成Scene或Global中的FullExten...
2019-07-10 22:30:21 2167
原创 ArcEngine连接地理数据库(20190702)
上一篇文章已经在postgreSQL中成功地新建了一个数据库,现在需要连接这个新建的数据库。在ArcGIS中对应的操作为ArcCatalog中Database Connection -->Add Database Connection。参考ArcGIS中连接地理数据库的工具,基于DevExpress插件设计了这一功能的界面:在选择了数据库类型,输入了IP、用户密码之后需要点击数据库名称...
2019-07-02 21:26:44 1653
原创 ArcEngine创建企业地理数据库(20190701)
在项目上,经常需要针对不同的分析、需求建立不同的数据库,本文就基于ArcEngine实现这一功能。这一功能在ArcGIS中相当于“Data Management Tools–>Geodatabase Administration–>Create Enterprise Geodatabase”工具。当然,我是因为接手了任务才知道建立企业数据库,对企业数据库的原理和优缺点也并不是特别了解,...
2019-07-01 21:55:53 693 4
原创 ArcEngine将含有坐标的Excel表导出成shp
ArcEngine将含有坐标的Excek表导出成shp转行做GIS二次开发的第一个需求,不算特别复杂的需求,但是对于新手的我来说也用了半天的时间,但是对于理解GIS中的图形的原理很有帮助,废话不多说,直接上干货。需求:将excel中的点数据连接成线并导出,excel中的记录如图所示:Excel中的“townfrom”列和“townto”列分别表示出发点编号和到达点编号,“PF”表示权重,这...
2019-06-28 21:38:05 1158
GDAL+TIFF+SQLITE+PROJ开发环境搭建源码包
2024-01-10
ArcEngine_Resharp_Demo.rar
2020-10-12
ArcEngine属性表自定义控件.rar
2020-09-13
C#自定义表格分页控件(含源码,可直接调用)
2020-08-29
ArcEngine使用Geoprocessor平滑线要素
2019-08-22
ArcEngine拓扑的建立和验证
2019-08-13
ArcEngine创建要素数据集、文件地理数据库、加载要素数据集
2019-08-09
CLM4技术说明
2018-07-26
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人