- 博客(77)
- 资源 (15)
- 收藏
- 关注
原创 ArGIS Engine专题(16)之GP工具实现影像批量复制重采样和按矢量范围批量裁剪
本文的最终目的其实是要实现影像按矢量范围批量裁剪,笔者准备处理的影像范围较大,并且是按各个市分块的,要实现统一裁剪时,需要将各个市的影像进行镶嵌合并,arcgis镶嵌数据集提供了完美的存储结构,它可以直接将多个不同来源的影像数据镶嵌在一块,镶嵌并不是融合,不会合并成一个文件,否则需要花费大量时间,并且不一定成功,镶嵌不会移动和改变原始文件。
2023-11-03 20:22:32 505
原创 ArGIS Engine专题(15)之GP模型在地图服务与地图服务之间实现叠置分析
以下是一些常见的业务场景:(1)空间规划和土地利用:通过将不同的地理数据层叠加在一起,可以进行空间规划和土地利用分析。例如,将土地所有权、土地类型、市政设施等数据层叠加,可以识别出适合建设住宅区、商业区或公园的最佳位置。(2)自然资源管理:叠加分析在自然资源管理中非常有用。通过将地形、水系、植被覆盖等地理数据层叠加,可以确定最佳的采矿、林业或农业发展策略,同时保护环境和生态系统。(3)市场分析和商业决策:叠加分析可以帮助企业做出市场分析和商业决策。
2023-10-23 20:25:32 311
原创 ArGIS Engine专题(14)之GP模型根据导入范围与地图服务相交实现叠置分析
前端系统开发时,可能遇到如下场景,如客户给出一个图斑范围,导入到系统中后,需要判断图斑是否与耕地红线等地图服务存在叠加,叠加的面积有多少。虽然arcgis api中提供了相交inserect接口,但只是针对图形几何之间的相交,如何要使用该接口,则需要先把地图服务中所有要素查询后转为几何体进行循环相交分析,这样势必会造成分析效率低,为此我们可以采用发布GP的方式,实现流程化处理,可以减少时间并且处理也更简单。
2023-10-20 21:12:42 529
原创 ArGIS Engine专题(13)之矢量要素图层符号化(单一符号化渲染)
要素符号化是指为地理要素(如点、线、面等)设置视觉表示样式的过程。通过符号化,可以将地理要素以不同的颜色、大小、形状、填充等方式呈现,以便更好地表达地理数据的含义和特征。本文主要实现了四大类要素符号化方式,包括单一符号化渲染、唯一值渲染、分级渲染、图表渲染。单一符号渲染:单一符号(适用于点、线、面)唯一值渲染包括:唯一值图、符号匹配(适用于点、线、面)分级渲染包括:分级图(适用于点、线、面)、点密度图(只适用于面要素)图表渲染包括:柱状图、饼状图(只适用于面状要素)先从最基本的单一符号化入手。
2023-10-18 19:29:14 865
原创 ArGIS Engine专题(12)之GP模型集成Python脚本实现影像切片服务自动发布
上一篇文章介绍了通过arcgis python编写脚本代码,实现矢量图层发布成要素服务,这一篇接着介绍如何将影像图层发布为切片服务,并实现后台自动切片,本文采用国家2000坐标系标准进行切片。
2023-09-14 21:01:54 200
原创 ArGIS Engine专题(11)之GP模型集成Python脚本实现要素服务自动发布
介绍如何在gp模型中集成arcpython脚本,实现要素服务的自动化发布,从而减轻人工发布的时间成本,提高工作效率,使业务流程一键自动化管理成为可能。
2023-09-12 22:35:28 219
原创 ArGIS Engine专题(10)之构建GP模型实现相邻要素自动聚合合并
在应用影像数据自动化提取分析,生产矢量成果过程(如使用AI分析影像,自动提取变化图斑等),可能分析后出现两条或多条图斑之间产生缝隙,而在实际场景中相近的图斑可以视为同一个,尤其是河流,如果比较狭长,容易出现断层,就有必要将其进行适当延伸后合并,这样也更适合业务需求。
2023-02-18 18:03:45 844 1
原创 ArcGIS Engine基础(31)之使用仿射变换对矢量数据进行空间校正
在生产数据过程中,因每个工程项目都可能有自己的施工坐标系,难免会产生数据提供方与数据使用方采用的坐标系不一致,造成数据在不同坐标系下存在一定偏移、旋转、缩放等,为了让数据能够在新坐标系准确定位,需要进行空间校正,空间校正是针对矢量图的,栅格配准是针对栅格影像的,arcgis中提供的空间校正的方法有:仿射变换、投影变换、相似变换、橡皮页变换等。其中等角变换要求至少两个已知点,因为他的变换函数使用4参数;而真彷射变换要求至少三个已知点,因为他的变换函数使用6参数。
2023-01-10 19:55:34 1555
原创 ArcGIS API For JavaScript(8)之使用动态图层dynamicLayers实现多图层合并截图
场景还原: 定位某个矢量图斑范围面,过滤展示该图斑,以图斑为中心,截图图斑周边并附带影像底图的截图。 在前端要实现地图截图,首先想到的是使用arcgis rest api中的export接口,这是没问题的,export方法可以很轻松的实现图片导出。官网rest api导出截图的参考地址如下:Export Map—ArcGIS REST APIs | ArcGIS Developers 通过bbox控制导出范围,用于定位到指定图斑范围;layers控制要导出的图层;l
2022-12-05 21:22:29 1306
原创 ArcGIS Engine基础(30)之通过地图文档MapDocment按范围截取多图层叠加后的图片
不借助MapControl控件,直接通过地图文档MapDocment截图
2022-12-04 17:49:01 496
原创 ArcGIS Engine基础(29)之加载arcgis server切片地图服务
使用arcgis engine加载arcgis server切片地图服务的三种方式。
2022-11-26 21:06:32 1655 3
原创 Cesium 之实现房屋模型拆解
本文按照mars3d提供的在线例子,自己实现了类似功能。模型的拆解其实是将模型组装的各个部分模块以延迟动画方式进行位置重置,从而能够单独浏览,更直观的看到内部结构。实现思路很简单1、模型的加载使用primitives 加载模型2、通过modelMatrix控制位置直接上代码,可根据实际需求自行扩展。JS/* * @Descripttion: * @version: * @Author: xiongz * @Date: 2022-05-12 11:31:46 *
2022-05-22 16:09:35 3024 11
原创 Cesium 之实现鹰眼功能(可拖拽矩形框定位范围)
本文实现的一种思路如下:1、通过Cesium.Viewer创建鹰眼地图,获取主地图的当前范围和中心点位置,在鹰眼地图中创建矩形用于定位参考。2、主地图联动鹰眼图注册主地图相机的移动前(moveStart)和移动后(moveEnd)事件,来联动鹰眼地图的范围。3、鹰眼地图联动主地图通过拖拽矩形框,改变鹰眼地图范围后联动改变主地图范围。使用鼠标的LEFT_DOWN、LEFT_UP和MOUSE_MOVE事件来实现矩形框实体位置的变化。直接上代码,有需要的小伙伴可以参考。JS代.
2022-05-22 10:31:12 2585 3
原创 Cesium 之加载在线底图(天地图、高德、百度、腾讯、谷歌等并实现偏移纠正)
在线底图常用坐标系包括:1、WGS84地心坐标系,是为GPS全球定位系统使用而建立的坐标系,Cesium地理坐标系默认采用该坐标系。2、CGCS 2000国家2000大地坐标系,天地图所采用的坐标系3、GCJ-02国测局坐标系,也叫火星坐标系,1)国测局02年发布的坐标体系,它是一种对经纬度数据的加密算法,即加入随机的偏差。2)互联网地图在国内必须至少使用GCJ-02进行首次加密,不允许直接使用WGS-84坐标下的地理数据,同时任何坐标系均不可转换为WGS-84坐标。3)
2022-03-20 16:27:02 6092 7
原创 Cesium 之加载倾斜摄影3d模型(解决倾斜漂移问题)
以Cesium3DTileset方式加载服务发布的倾斜摄影静态资源Json文件,参考如下:item.url='倾斜摄影的json地址/tileset.json';let tileset = window.viewer.scene.primitives.add(new Cesium.Cesium3DTileset({ url: item.url, // modelMatrix: Cesium.Matrix4.fromArray([1, 0, 0, 0, 0, 1, ...
2022-03-19 17:20:04 6728 3
原创 Cesium 之解析supermap iserver rest api几何体为Cesium实体(含多面体、带孔洞的转换)
Cesium 之解析supermap iserver rest api几何体为Cesium实体(含多面体、带孔洞的转换)
2022-03-19 16:12:36 598
原创 Cesium 之解析arcgis server rest api几何体为Cesium实体(含多面体、带孔洞的转换)
Cesium使用Entity无法表达多面、多线、多点为单个实体,多面、多线、多点被解析成多个entity,可以使用CustomDatasource来存储解析后的entity。this.highLightEntityDs = new Cesium.CustomDataSource('attributeHighLightEntities');this.map.dataSources.add(this.highLightEntityDs)对于arcgis server rest api...
2022-03-19 15:49:03 887
原创 Cesium 之加载ArcGIS Server服务实现属性过滤显示
Cesium可以通过ArcGisMapServerImageryProvider加载arcgis地图服务,layers属性设置图层序号进行图层过滤,但并未提供根据属性字段过滤。查看ArcGisMapServerImageryProvider源码发现,buildImageResource方法提供了获取图片资源的方法,其中layers的实现如下:从以上可以看出,图层过滤参数满足arcgis rest api 提供的export接口参数写法,并且最后调用的getDerivedResource方法就是采
2022-03-19 12:06:25 3106 4
原创 Cesium 之加载ArcGIS Server 4490切片服务(含orgin -400 400)
1、搜索源码中 ArcGisMapServerImageryProvider类metadataSuccess方法(1)读取切片模式时增加支持wkid 4490坐标系的判断,同时将切片信息也传入,为了在获取行列号xy时,可以通过读取切片信息,使用自定义方法改写行列号的获取方式。else if (data.fullExtent.spatialReference.wkid === 4490) { that._tilingScheme = new GeographicTilin..
2022-03-13 18:32:40 5801 7
原创 ArGIS Engine专题(9)之利用GP实现空投区域分析
目录一、结果预览二、需求描述三、数据准备四、步骤流程概述五、具体实现及代码一、结果预览二、需求描述利用坡度、水域、居民区、电力线、植被等数据结合分析模型,形成空投区分级结果,支持分级参数自定义输入或根据特定需求定制推荐参数三、数据准备(1)基础分析图层 带数字高程模型的栅格数据,用于坡度等级分类。(2)其他可用矢量分析图层 这里包括水域、居民区、电力线、植被等,其中植被图层需要有植被类型字段,...
2021-10-10 17:03:54 205
原创 ArGIS Engine专题(8)之利用GP监督分类最大似然法实现根据矢量样本和影像提取植被类型
目录一、结果预览二、步骤流程概述三、具体实现及代码一、结果预览(1)绘制训练样本界面GP监督分类操作界面GP监督分类结果二、步骤流程概述(1)输入影像栅格数据(2)生成GSG训练文件(3)输出分类提取后的结果影像三、具体实现及代码输入影像栅格数据:导入要进行植被类型提取的影像,使用接口加载栅格数据即可。生成GSG训练文件:如何生成GSG训练文件是本文的重点,有三种方式。(1)手动绘制矢量多边形生成特征文件 ...
2021-10-10 17:03:44 475
原创 ArGIS Engine专题(7)之利用GP水文分析工具实现基于DEM的山谷线提取
目录一、结果预览二、步骤流程概述三、GP实现代码①、计算邻域内栅格的平均值②、原始输入栅格与平均值栅格进行相减③、使用栅格重分类获取负地形④、反地形计算⑤、水流方向计算⑥、汇流累积量计算⑦、汇流累积量零值提取⑧、滤波器处理⑨、结果栅格重分类⑩、结果栅格与(3)中负地形相乘⑪、结果栅格继续重分类一、结果预览二、步骤流程概述本文山谷线的提取步骤大致可分为以下11个步骤:(1)计算邻域内栅格的平均值(2...
2021-10-10 17:03:35 397
原创 ArGIS Engine专题(6)之利用GP水文分析工具实现基于DEM的山脊线提取
图片来源于https://blog.csdn.net/BigSun1993/article/details/50485122
2021-10-10 17:03:25 375
原创 ArGIS Engine专题(5)之矢量和栅格实现投影变换(使用带三参数/七参数的自定义投影变换方法)
目录1、坐标系知识简介功能展示:1、投影变换2、创建投影变换方法GIS数据都是在不同坐标系下测量生产,要想实现坐标转换,最好还是先关注下坐标系的基础知识,这样才能更全面的去理解。1、坐标系知识简介以下只做个简介具体知识,可查找度娘。地球表面有高原、有盆地,是起伏不平的,并不是一个规则的球面,当我们要进行一些数学计算会很不方便。水准面-》大地水准面-》参考椭球体-》大地基准1、水准面:假设地球表面上全是水,水覆盖了整个地球,并且保持静止的状态,这样形成了一个
2021-10-10 17:03:09 522
原创 ArGIS Engine专题(4)之 网络分析最短路径分析(带道路单双向和转弯限制因素)
目录什么是网络分析两种常用网络道路单双向及转弯要素网络分析相关接口网络分析流程什么是网络分析当研究内容涉及到:从 A 点到 B 点最快的方式是什么? 哪些房屋距离消防站有五分钟车程? 业务覆盖哪些市场区域? 一支配送或服务车队如何在提高客户服务质量的同时降低运输成本?等问题时就需要应用到网络分析,它是为了解决这些问题,寻找最优路径,服务设施的最佳坐落位置,最佳物流配送等应用而生的两种常用网络一、几何网络(公用设施与河流网络)与网络数据集(交通网)(
2021-10-10 17:00:55 740
原创 ArGIS Engine专题(3)之矢量栅格属性表(分页异步加载,解决大数据量加载一种方式)
对于数据量小时,直接一次性显示所有数据完全没有问题,然而在实际应用中往往数据量都较大,尤其是GIS空间数据,有时甚至可以达到百万级、千万级,如果没有好的设计逻辑,往往会出现假死、无响应、反应超级慢,甚至会出现内存不足,而直接闪退,在用户体验上极差。为了解决大数据量加载问题,本文将采用分页、异步加载的方式来实现。目录一、实现属性数据分页(1)arcengine提供了IQueryFilterDefinition3可以实现分页(2)直接通过IQueryFilter结合ITable查询检索二
2021-10-10 16:59:13 394
原创 ArGIS Engine专题(2)之地图同步
地图同步是GIS开发中的基础功能,只要需要同时展示地图视图和布局视图时,地图同步就是必不可少的。本文将介绍两种常用的同步方式。1、自定义地图同步类ControlsSynchronizer该方式是通过以地图为对象,将地图Map作为整体进行替换。(1)对于地图视图,提供Map属性来替换整个地图,即可用m_mapControl.Map=newMap ; 实现替换。(2)对于布局视图,IPageLayout接口提供了ReplaceMaps方法,void ReplaceMaps(IMaps..
2021-10-10 16:57:52 490
原创 ArcGIS Engine专题(1)之License许可统一管理类
ArcEngine/ArcObject二次开发的项目,在使用相关组件时都需要进行许可管初始化。许可初始化可以通过两种方式实现。目录一、手动拖拽许可控件LicenseControl二、通过IAoInitialize接口进行初始化 (推荐)三、注意事项为了便于项目的重复使用,本文将主要介绍通过代码方式创建较为通用的许可管理类一、手动拖拽许可控件LicenseControl拖动LicenseControl控件到窗体上,可通过右键修改许可级别,默认许可级别为“ArcGIS .
2021-10-10 16:56:36 6281
原创 ArcGIS API For JavaScript(7)之通过CSS3 Filter(滤镜)方式实现不重发底图服务而改变底图配色方案
场景还原:在实际应用中,如果已经发布的服务不满足客户的配色需求时,一般做法是从数据源入手,重新配色后发布,但有时数据源来自于第三方(比如天地图服务),无法获取到数据源时,就无法实现重发布,本文将采用CSS3 Filter(滤镜)的来实现配色改变。之所以可以使用CSS来实现,是因为切片图层其实都是以DIV容器包裹着一系列的img文件,因为可以使用CSS调节图片样式。CSS3 Filter 属性说明如下:Greyscale(灰度) Blur(模糊) Saturate(饱和) Se.
2021-10-09 16:25:46 962 1
原创 ArcGIS Engine基础(28)之获取图层中在拓扑关系上自重合要素的两种方法
第一种方法:建立拓扑关系进行拓扑分析实现(1)创建临时文件地理数据库(2)在文件地理数据库工作空间中创建要素数据级(3)
2021-06-09 20:08:55 894
原创 ArcGIS Engine基础(27)之IGeoDatabaseBridge.GetFeatures实现通过FID要素编号数组快速获取要素
根据FID要素编号获取要素的第一个想到的可能是通过IFeature feature=featureClass.GetFeature(oid)对于多个编号
2021-06-09 17:30:34 523
原创 ArcGIS Engine基础(26)之IFeatureIndex2和IIndexQuery2实现查找某个点位置或者范围最近的要素
查找最近点位置,可以使用IProximityOperator IProximityOperator pProximity = (IProximityOperator)pGeometry; IPoint pNearestPoint = pProximity.ReturnNearestPoint(pInputPoint, esriSegmentExtension.esriNoExtension);
2021-06-09 15:55:13 956 2
原创 ArcGIS API For JavaScript(6)之使用ArcGIS REST APIs实现地图服务管理(查询、启动、停止、删除)
实现效果如下:可以在自己的app应用中操作地图服务的启动、停止、删除。实现过程:1、先生成token生成token的url:http://localhost:6080/arcgis/admin/generateToken可查看官网生成token的文档介绍https://developers.arcgis.com/rest/enterprise-administration/server/generatetoken.htm参数:(1)username: 使用该toke.
2021-05-22 17:39:19 1079
原创 ArcGIS API For JavaScript(5)之使用SVG实现扩散效果动画,并且实现缩放平移后SVG图形位置自动更新
实现的案例效果如下:实现过程:1、首先需要找到地图容器,在地图容器中动态添加SVG图形,并且保证SVG图形位于其他交互图层的底部,防止其他图层被遮挡,导致交互事件失败。地图容器对应的html元素id为map.id+“_gc”通过使用prepend将svg添加到最底层$('#map_gc').prepend(` <svg xmlns="http://www.w3.org/2000/svg" version="1.1" style="display:block" id="addS
2021-05-21 20:50:29 1911 2
原创 ArcGIS API For JavaScript(4)之图层渐变过渡切换及对点要素图层中新增要素进行符号放大并高亮闪烁动画展示
实现的案例效果如下:图层渐变效果即是对图层的透明度(0-1)进行动画展示。透明度变化动画使用dojo框架中dojo/_base/fx的animateProperty来完成,可针对html原始进行opacity进行设置。arcgis api的图层渲染后其实都是由一层div包裹着,通过api提供的getNode方法获可取图层div。在获取div前先确保图层已经初始化并生成dom元素。渐变方法代码如下: //渐变切换图层,可用于底图切换时达到过渡效果
2021-05-21 20:01:58 1512 5
原创 ArcGIS API For JavaScript(3)之点击查询多个地图服务图层时实现infoWindow默认第一个展示最顶层服务数据的一种方法
场景还原:客户的一个奇葩需求。当多个服务数据在同位置上有重叠覆盖的情况时,希望第一个优先展示最顶层服务的数据的属性信息。当我们在地图上进行点选或者进行其他范围选择时,如果需要将当前地图上加载的所有地图服务都查询并使用InfoWindow进行展示时,infoWindow虽然可以通过数字显示总共查询到的要素个数,通过点击下一个可以切换,但由于查询的执行是异步的,默认是无法确保查询的第一个要素为最顶层服务的数据。需要解决的问题:可考虑在所有查询执行完毕后进行截获,重置InfoWindow中展示
2021-04-26 20:31:39 720
原创 ArcGIS API For JavaScript(2)之解决内网映射外网后,ArcGIS Server内置的GP打印服务因IP问题导致打印失败
场景还原:客户服务器网络情况说由内网映射到外网,实现了外网访问,在服务器内部网络是无法再访问到映射的外网IP;ArcGIS Server安装在该服务器内,因GP打印服务内置在ArcGIS Server下,服务器内部只能通过内网访问地图服务,当客户在外网环境下登录系统后,GP打印服务获取到的地图服务都是外网的地址,导致打印失败。需要解决的问题:实际上需要解决的是如何将打印服务传入的地图服务参数地址由外网再转回到内网。查询GP打印服务调用可以发现有个Web_Map_as_JSON参数,这个参
2021-04-26 19:41:07 568 2
原创 ArcGIS API For JavaScript(1)之前端获取地图服务MapServer的所有数据(突破默认1000条的限制)
在实际的应用场景中,有可能需要一次性读取到地图服务中的所有数据的需求,当服务中数据量超过默认1000条时,因数据量限制,请求只会得出前1000条,虽然可以通过对ArcGIS Server中更新请求最大值,但数据稍大些时,往往会造成服务超时的情况,导致请求失败。以下通过Promise.all等待多个query查询结束后合并所有结果来实现。 function queryAll(config,map,callback) { // var load = layer.
2021-04-26 17:29:46 1239
原创 Echarts图表应用(1)之离散特征数据实现X轴按月份等间距及横纵标记线实现
一、首先要达到X轴按月份等间距的较好效果,需要说明几点:1、作为X轴的数据是日期数据,如2021/4/222、数据是离散的,并且作为X轴的值不能过多,比如选取每个月份的几个特征日期值。本文使用的X轴需要展示的数据如下:xAxisData: ["2020/1/20", "2020/1/21", "2020/1/22", "2020/1/23", "2020/1/24", "2020/1/25", "2020/1/26", "2020/1/27", "2020/1/28...
2021-04-22 17:02:13 2310
原创 ArcGIS Engine基础(25)之布局视图工具类(地图打印功能)
打印工具OnClick事件public override void OnClick() { AxPageLayoutControl pageLayoutControl = AxPageLayoutControl.FromChildHandle((IntPtr)m_HookHelper.ActiveView.ScreenDisplay.hWnd) as AxPageLayoutControl; if(p
2021-04-22 15:46:03 923
房屋模型数据 https://blog.csdn.net/wokao253615105/article/details/1249
2023-06-16
地理信息系统算法题——C#
2013-07-09
[零基础学JavaScript.电子教程视频 01 迅雷种子
2011-04-05
ASP项目开发全程实录视频5 迅雷BT种子
2011-04-03
ASP项目开发全程实录视频4 迅雷BT种子
2011-04-03
ASP项目开发全程实录视频3 迅雷BT种子
2011-04-03
网页特效代码集合(免费)
2011-04-03
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人