桌面GIS平台效率提升的一点小经验

提升GIS工作效率的ArcTiler插件 ArcGIS桌面插件是为GIS专业人士提供的一套多功能工具集,旨在扩展和增强ArcGIS桌面产品的功能,提高工作效率和数据处理能力。从空间数据管理到高级空间分析,插件为用户提供了一系列强大而灵活的工具。在空间分析的高级技巧中,网络分析是一个重要领域。网络分析能够在交通网络、物流配送等方面提供优化方案。通过网络分析,用户可以计算最短路径、最佳旅行时间、服务区域覆盖等。此外,3D分析也是高级分析技巧中的一部分。 阅读详情


        最近 一直在做一个跨平台的桌面GIS平台,本来这个平台定义为移动GIS平台的,可是因为一些策划和领导意愿等原因,就把他当成一个PC桌面GIS平台来写了,反正也是跨平台也不怕多一个平台~

         做这个项目我是项目组中最年轻也是最没有资历最没有实力的一个成员了,但是由于人手问题,我还是在项目组的要求下单独负责了一个模块,地图符号库符号化模块的设计与开发,地图符号化做GIS的人都懂的,虽说算不上一个核心功能但是也是很麻烦的,其中还有很多设计地图渲染的一些技巧和效率的提升优化,在这个项目快完成之际,我也把自己在项目中的一些小经验记录下来,留给以后备用,也给需要的人一些参考。


        首先,要想提高一个GIS平台效率,我们必须明白一个问题就是,GIS平台究竟为什么慢,慢在那里?

搞清楚这个问题,首先我们要从GIS的实现说,一个GIS的平台要想画出一副漂亮的地图正确的地图,首先要到磁盘里面读数据,读取到数据之后要进行数据的坐标转换,将GIS坐标(可能是WGS84下的经纬度,也可能是BJ54下的米等等)转换为屏幕坐标,若是设置当前平台绘图的坐标系和原数据不同的话还需要进行动态投影的坐标转换,之后才是将GIS坐标转换为屏幕坐标,有了屏幕坐标之后那就直接调用绘图API进行绘图啦~

从这个流程我们可以看出,可能导致我们程序慢的原因就在于两个地方,第一,读取数据,实际上就是磁盘IO。第二,绘图,若是使用系统绘图API可能在绘图上能做的优化不多,但是可以肯定的是适当的调整绘图策略,肯定是可以极大的提高效率的。


在这个项目中我总结了以下几点经验:

        1.建立良好的物理索引,加快数据读取的时间。我们都知道,磁盘读取数据的速度取决于磁盘的查找数据时间,等待数据读取时间,和数据传输时间,其中后面两点是我们无法干涉的,能做的很少。这里所谓的物理索引指的是数据磁盘文件数据的索引,这样的索引标记了当前需要读取的数据在该文件的某个地方以便快速的定位到该数据块,如Shpfile的shx文件,建立这样的索引我们可以加快磁盘查找数据的时间。另外,存储数据的时候尽量要整块存储,读取的时候也要整块读取来减少磁盘IO次数来提高数据读取效率。


        2.建立良好的内存索引,加快数据筛选效率。对于GIS来说,绘图的时候为了加快显示时间,都不会去把所有的数据图层数据读取出来进行绘制,正确的做法是先通过屏幕显示范围计算出来地图数据所要显示的范围,然后通过一定的索引机制迅速的找到需要显示数据的ID,再通过数据的ID去硬盘查找数据读取数据,这个过程内存索引就显得异常重要,如何快速的找到要显示的地图数据数据的ID就是关键。最简单的地图索引有四叉树索引,R树索引等,当然对于四叉树索引,需要注意保持数据的深度不能太深,就是要尽量保持树的平衡,因为树一般都是递归搜索,树深度过深会直接影响到效率。例如有些数据中某一块(地域范围)数据非常多保存了几百条数据,另一块保存了几条甚至一条数据,这个时候若是四叉树建立不好的话不能平衡,也会导致效率比较低。


         3.数据的筛选抽稀。减少数据量,加快速度。假设这样一个场景,屏幕是1000*1000的分辨率,而由于地图的比例缩到比较小,此时显示的数据条数必定非常多,假设显示了100万条数据,而绘制每一条数据至少都需要一个像素宽,20个像素长,那么势必会导致有大量的数据的叠加显示,全部绘制显示这样的数据一方面会导致地图不美观,量一方面由于绘图数据特别多严重的拖慢了数据的读取和绘图世间。试想,当一个地物在地图上显示的已经没有一个像素那么大的时候你绘制他还有意义吗?答案当然是没有意义,既然没有意义那就不要画了吧,但是问题又来了,所有数据都小于一个像素了你全部都不画吗?地图是空白显然不是我们想要的结果。因此我们需要一定的算法来将部分数据绘制在图上,一方面要保证数据绘制出来的效果美观,另一方面要保证数据量大大的减少。


        4.高效的绘图算法。在平台开发过程中有很多算法 的使用率是非常之高的,例如当地图需要做动态投影的时候,那么需要绘制的每一条数据都要经过投影转换,实际上投影转换就是把每一个点的坐标都重新计算一遍,若是是你的屏幕上绘制的地物的点的个数有100万个的话,这个算法将使用100万次,显然他足以影响到我们的平台效率了,这样的情况还有很多,例如将屏幕坐标转换到地图坐标和降地图坐标转到屏幕坐标,这个算法应该是整个平台中使用最为频繁的一个算法了,他的效率直接影响了平台的效率,当然这个算法很简单也没有太多优化空间,只要不犯错误就行了,还有符号绘制的时候若是要绘制需要,那需要计算间隔,统计总长度,计算角度等一系列的算法。这里想表达的就是要把程序中那些使用频繁的算法写好,写精。


        5.适度的缓存。效率总是犹如一个天平,若时间是天平的一端的砝码,那么空间(内存)就是天平的另一端的砝码,时间多了那么空间自然消耗的少了,时间消耗的少了那么空间自然就消耗的多了,这就是我们程序中时空转换的一种思想,关键是我们如何去找到一个平衡点来达到最佳,因此缓存要适度。例如手持程序,限于其硬件原因,若是做了太多的缓存,内存不够用了程序会挂掉,若是完全不做缓存,效率有很低。对于GIS平台做缓存也是有一些技巧的,如地图数据本身比较大全部缓存肯定是不可以的,所以我们可以缓存其ID,当需要的时候就可以快速的定位到数据,如在地图上绘制GPS轨迹的时候,我们可以缓存当前除了GPS轨迹之外的一整张图片,每次更新地图的时候只需要把地图贴上再绘制GPS轨迹就好了,这样就免去了读取数据绘制数据所消耗的大量的时间,再例如若是PC程序我们把最近几次操作的的图片缓存下来回到上一视图或者下一视图的时候就只需要贴图即可,若是放大或者缩小的时候比例尺与缓存的图片比例尺相同或者几乎相同的时候我们就可以直接贴图(这里几乎相同只适用于使用工具缩放,没有明确的数据指定比例尺缩放),等等缓存方式都可以加快我们程序的速度,但是需要注意的是要适度,别因为做了过多的缓存导致系统内存不够用,那就悲剧了~


        6.良好的刷新机制。这一点其实和上一点还是有些相似的地方,地图绘制无非就是刷新地图重新绘制罢了,但是这个重新绘制也是有值得注意的地方,那些图层需要全部刷新,那些图层需要部分刷新,是完全重新读取数据绘制数据刷新还是直接贴图刷新,刷新的时候那些层先刷那些层后刷,这些都需要仔细斟酌,做的不好不但会影响效率,还有可能导致数据绘制异常。


        写在最后,说说我对GIS平台展示给我的一个认识,GIS平台展示给我的不是一些地物也不是一些要素,更不是一些分析结果,因为我是程序员,GIS平台展示给我的不过是一张图片。既然他是一张图片为什么绘图的时候我们不使用这种思想呢,我们绘制地图的时候先把地图数据都绘制到一张图片上,然后再把图片贴到屏幕上,展示给用户。而GIS绘图不过就是绘制点线面而已,说白了其实就是给一张BMP图片上绘制点而已。我们只要把我们得到的GIS数据转换成一些坐标写到图片中对应的位置即可。有了这样的思想GIS平台也就不过如此了~

在DELPHI平台上实现的GIS系统及其应用 本文还有配套的精品资源,点击获取 简介:本项目探讨了在DELPHI编程环境下构建GIS应用的方法,并结合Access和SQL Server数据库系统实现高效地理信息处理。介绍了DELPHI在GIS领域的应用,MCZN在系统中的关键作用,以及如何利用Access和SQL Server的数据库优势,提供定制化的GIS解决方案。此外,本项目还包括了系统源代码、数据库文件、地图数据... 阅读详情

相关推荐

C#语言实现的GIS应用开发示例

本文还有配套的精品资源,点击获取 简介:本项目"基于C#的GIS开发Demo"将深入探讨C#语言在GIS应用开发中的应用。C#语言结合.NET Framework库与开源GIS库,支持多种GIS功能实现,包括鹰眼、绘图、视图切换、地理信息操作等。开发过程涉及Visual Studio、地图资源管理,同时记录了存在的问题与项目升级日志,以帮助开发者理解GIS系统架构与关键算法...

weixin_30798867的博客 2844

几款国产GIS桌面端软件对比

GIS行业涉及国家地理安全的方方面面,尽可能使用国产GIS软件能够有效防止数据泄露,今天,小编为大家带来几款国产GIS桌面端软件对比,帮助大家根据实际需求,选择合适的国产GIS桌面端软件。‍为方便学习工作,有需要下载软件和学习提高的同学,可以来这里下载1.超图 SuperMap GIS使用人数与普及率SuperMap GIS 是国内市场上使用人数较多的 GIS 软件之一,广泛应用于政府、企业、教...

天波风客的博客 1万+

STM32寄存器级电机驱动:DRV8833 H桥与PWM调速原理

电机驱动是嵌入式控制系统的核心基础能力,其本质是微控制器通过数字信号精确控制功率器件的开关时序。理解H桥电路结构、反电动势防护机制及PWM调制原理,是实现可靠直流电机控制的前提。DRV8833作为典型双H桥驱动芯片,支持快衰减与慢衰减两种PWM调速模式,分别对应不同的电流泄放路径与动态响应特性。在STM32平台上,需结合时钟树配置、GPIO复用、定时器寄存器(PSC/ARR/CCR)精确计算,将抽象的转速需求转化为可执行的硬件操作。该技术广泛应用于智能小车、机器人关节、工业定位系统等实时运动控制场景,是掌握

weixin_42613017的博客 676

2024 年最火的 10 款 GIS 软件

软件下载地址(点击下方小程序):1ArcGIS ProGIS 数据栈主要功能:ArcGIS Pro 是 Esri 公司推出的专业 GIS 桌面应用程序,提供高级的地图制作、空间数据分析和三维可视化功能。特色:支持多图层编辑、实时协作、大数据处理和深度学习集成。使用的主要人群:专业 GIS 分析师、城市规划者、环境科学家等。2QGISGIS 数据栈主要功能:QGIS 是一个开源的 GIS 平台,提供...

天波风客的博客 4981

WSL2+Docker实战:在Windows上部署MinerU 2.5.3,解锁媲美Demo的VLM PDF解析能力

本文详细介绍了如何在Windows系统上通过WSL2+Docker部署MinerU 2.5.3,实现媲美Demo的VLM PDF解析能力。文章涵盖环境准备、Docker部署实战技巧及高级使用技巧,特别针对PDF识别中的复杂排版、公式和图表处理提供了优化方案,帮助用户高效处理学术论文和技术文档。

weixin_29291573的博客 482

空频、空时、空域、时域、频域抗干扰介绍

1、时域抗干扰:对时间域序列进行滤波,滤波系数h(n),采样序列不断进行输入与滤波系数卷积计算,得到响应输出;例如常用的FIR和IIR滤波器。 对于多窄带干扰噪声源和连续波干扰源有较好的处理效果,还可以解决多径问题; 可以通过在接收机前端处理中增加一个嵌入式块实现; 2、频域抗干扰:接收机不容易受到相对于接收机频带以外的强功率干扰; 通常为带通滤波和阻带滤波, 适用于窄带干扰噪声源,连续波干扰源以及较强的频带外干扰噪声源, 3、空域抗干扰:通过多个自适应天线按照特定组合成天线阵列,波束成形,针对

qq_43517907的博客 7305

常用开源桌面GIS软件

QGIS 始于2002年5月,算得上是开源GIS平台中的后起之秀。界面友好,分析功能可与GRASS GIS相媲美。主页:http://www.qgis.org/ GRASS GIS 源于1982年美国军方(陆军工程兵团的一个分支——美国陆军建筑工程研究实验室)的实际应用,重量级的开源桌面GIS软件。分析功能强悍,但界面简陋,很多操作是以命令的方式运行的,喜欢命令式操作的朋友可以尽情享受。 ...

bolutes 606

【Agent】AI Agent架构趋势及演进

本文系统介绍了AI Agent架构的发展趋势和技术框架,涵盖单Agent与多Agent系统设计、提示词工程与上下文管理、SpringAI开发框架等关键技术。重点阐述了AI原生应用参考架构,包括Nacos配置管理、Higress AI网关、RocketMQ会话状态管理等核心组件解决方案。同时深入探讨了AI应用可观测性体系,包含OpenTelemetry全链路追踪、关键指标监控以及基于LoongSuite开源工具的数据采集评估方法,为构建高效可靠的AI应用提供了全景式技术参考。

一个内容严谨、方向前沿、极具实践价值的AI大模型技术分享站 1106

桌面GIS连接Postgresql总结

对于非开发人员的GISer而言,数据库这东西更多停留在mdb,gdb的层面,相对而言这些数据的使用无论是在处理还是管理上,门槛相对较低。但是目前所处的信息爆炸的大数据时代,仅仅依靠桌面GIS本身的数据存储远远不够,在存储大量数据的时候,仍然需要专门的数据库管理。所以桌面GIS如何在关系型数据库中写入空间数据也是一个重要的过程。此文是在阅读了网上的部分博客及自己的亲身经验写成。主要介绍桌面GIS中两

胖胖雕的GIS博客 8821

基于 STM32 的智慧农业温室控制系统设计与实现

本文提出一种基于 STM32 微控制器的智慧农业温室控制系统设计方案,通过集成多类型环境传感器、执行机构及无线通信模块,实现对温室内温湿度、光照、土壤湿度等参数的实时监测与自动调控。文中详细阐述硬件选型、电路连接及软件实现流程,并附关键代码示例,为智慧农业领域提供低成本、高可靠性的温室控制解决方案。

weixin_42300449的博客 1923

禁止使用服务器 IP 访问 Apache 环境下的 Web 站点

通过在 Apache 的配置文件中添加适当的指令,我们可以轻松地禁止使用服务器 IP 地址访问我们的 Web 站点。在 Apache 环境下,有时我们希望禁止用户使用服务器的 IP 地址直接访问我们的 Web 站点,而只允许使用域名进行访问。现在,当用户尝试使用服务器的 IP 地址来访问你的网站时,他们将会被拒绝访问,只有通过域名才能正常访问。为了实现这个目标,我们可以通过 Apache 的配置文件进行相应的设置。表示禁止对根目录的访问权限,即禁止使用服务器的 IP 地址进行访问。

TpCode的博客 945

WebGIS和桌面GIS、移动GIS、三维GIS的区别

主要介绍WebGIS、移动GIS、桌面GIS、三维GIS等各自的概念和区别。

gis_witch的博客 4889

倍福---EL2262模块飞拍配置

控制器安装了twincat3,用EL2262实现相机飞拍功能。本文档只介绍如何通过EL2262实现飞拍的触发,并不涉及视觉方面的处理 参考文章: https://author.baidu.com/home?from=bjh_article&app_id=1669190598708386 https://mp.weixin.qq.com/s/r4Iq8kOP-o4_M8vCce5M9g 1、 飞拍的应用 在大多数场合,只能当被检测工件和相机都处于静止状态下才能进行拍照,拍照完成后,再移动工件或相机,进

weixin_41883890的博客 3742

WebGIS、桌面GIS、移动GIS、三维GIS的区别

它可以对空间信息进行分析和处理(简而言之,是对地球上存在的现象和发生的事件进行成图和分析)。GIS 技术把地图这种独特的视觉化效果和地理分析功能与一般的数据库操作(例如查询和统计分析等)集成在一起。WebGIS是建立在Web技术上的一种特殊环境下的。WebGIS通过互联网对地理空间数据进行发布和应用,以实现空间数据的共享和互操作,如GIS信息的在线查询和业务处理等。

yaogis888的博客 1357

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

避开这些误区,提升 GIS 制图效果与效率

通过良好的制图习惯和对地图学、GIS 基本原理的深入理解,可以不断提升地图制作水平,制作出既符合规范又具有特色的地图作品。你可以立即点击“分享”按钮,将本文免费分享给你的朋友!

632

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

SuperMap GIS桌面与移动端开发资源全攻略

可以快速验证GIS开发想法,其内置的AI助手能生成基础项目框架,一键部署功能特别适合演示空间分析等需要持续运行的服务。实际测试发现,从输入需求到看到运行效果只需3-5分钟,比传统开发环境配置节省90%时间。对于想学习SuperMap开发的初学者,建议先通过平台生成简单项目,再结合官方文档逐步深入。平台提供的实时预览功能,可以直观看到每个GIS功能的实现效果。空间分析提供网络分析、缓冲区分析等20+专业分析工具。Oracle数据库连接时需注意索引优化。双平台均支持离线地图缓存功能。

SilvermistOwl67的博客 756

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

怎么准备GIS技能大赛?网友的一点经验分享

但是真正做起来,真的发现处处都是坎,首先是数据的获取和处理,当时我们到处搜索信息,主要从疾控中心,各地卫健委的官方下载数据,但是发现数据的获取真的工作量真的很大,当时就接触了python,主要是为了爬数据,然后又了解学习了数据存储方面的知识。参加比赛,官方一般都会给一些学习资料,包括官方网址,软件安装包甚至学习视频课程,这个都是非常好的学习资料,利用起来,然后在官方组织的企业官网,也可以获取一些学习资料,这些都是有帮助。考研或者保研,很多院校在复试的时候,都会看你的简历,介绍中如果有获奖经历,很加分。

GIS前端嘉欣的博客 658

【免费下载】 提升GIS效率的利器:ArcGIS超级工具1.7

提升GIS效率的利器:ArcGIS超级工具1.7 【下载地址】ArcGIS超级工具1.7及安装说明 ArcGIS超级工具1.7及安装说明欢迎使用ArcGIS超级工具1.7版!本版本是针对ArcGIS平台的一款强大扩展工具集,旨在提升地理信息处理效率和工作流的便捷性 ...

gitblog_09732的博客 1795

当 GIS 遇上 AI 大模型

今年整个 IT 界、甚至科技界最火爆的技术就是 AI 大模型了,没有之一。以 OpenAI 的 GPT 为代表、国内外一众大模型跟进,形成了百模齐奔的态势。围绕着大模型,各项周边的应用也在快速发展。在 2023 年年底的云栖大会上,论坛标题带有“大模型”的搜索一下,有三十个之多。搞技术的同学朋友一聊天,不提大模型,都没得可聊了。笔者从事 GIS 开发多年,现在在阿里云-政企事业部-解决方案研发部,从事“空间数据中台”的研发。

python12222_的博客 3089

宋兰-桌面GIS应用高效开发

宋兰-桌面GIS应用高效开发 应用桌面GIS主要有三种开发方式:不依赖任何GIS工具软件的独立开发、完全借助于GIS工具软件提供的开发语言进行的单纯二次开发和利用GIS工具软件与面向对象的可视化编程软件进行的集成二次开发。 对其内容详细阅读

拟声的主扬在江湖 556
上一篇: C/C++开源库——TinyXml
下一篇: GIS椭球转换
修哥
博客等级 码龄14年 71粉丝 25原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值