1.走进SWMM源代码——GIS转SWMM经验及工具分享
2.什么是源码软件的二次开发
3.QGIS二次开发(一):环境配置与源码编译
4.Github上Fork开源代码,本地二次开发,次开程保持源码同步
5.element-plus源码与二次开发:package.json解析
走进SWMM源代码——GIS转SWMM经验及工具分享
作者:赵也(深圳创环) GIS格式数据在城市管线数据储存、发流智慧水务平台等行业中广泛应用。源码PINS等工具提供简单处理方式,次开程但复杂转换需要二次开发。发流数藏nft源码本文从Gis二次开发、源码UI使用、次开程转换算法编写角度,发流介绍GIS转SWMM流程。源码 欢迎关注“市政规划交流”公众号。次开程 视频主要内容: Part1:Gis二次开发 基于ArcMap控件二次开发。发流环境配置:ArcGis 源码for Desktop.1、ArcObject SDK for Microsoft .Net Framework4.0、次开程Microsoft Visual Studio (.4 + 4.5 +也行) Part2:UI简介 建立Gis和SWMM文件桥梁,发流简化数据转换流程。 Part3:核心算法模块介绍 Step1:背景数据需求。基础排水管网模型需空间数据包括: 点要素:检查井/排放口,包含编号、抖音源码出售flutter底高程、地表高程、标识字段等。 线要素:排水管渠,包含编号、起点编号、终点编号、断面类型、断面参数等。 面要素:汇水区,包含编号、汇流编号、不透水率等。 Step2:解析GIS点、线、面要素生成Inp文件结构。 核心代码模块介绍: 定义输出字符串集合,Inp文件本质是实验管理系统全套源码ASCII文件,字符串集合表示文件内容。 遍历要素集,通过FeatureCursor光标遍历特定要素(管网、检查井、下垫面),提取具体字符串。 将前缀字符串和提取的字符串依次写入Inp文件。 Part4:案例实操/工具分享 视频分左右,展示使用工具生成可运行的Inp文件案例。 额外提及:软件包中ConvertSWMMTest.esriaddin文件,为无编程环境的用户提供了直接安装addin并使用ConvertSwmmTest工具的途径。 附录:INP文件结构介绍什么是软件的二次开发
软件的二次开发就是在现有软件产品的基础上,针对客户的个化需求进行的开发,一般是由软件产品的开发厂商进行,或由厂商提供二次开发接口和源码由第三方来进行。不同于完全的定制开发,二次开发不是从头开发,是微信文库系统源码在已有软件的基础上进行的。评估一个软件产品是否合格,二次开发接口的成熟,完善,是否容易是一个重要的标志。
QGIS二次开发(一):环境配置与源码编译
在QGIS二次开发的探索中,由于可用资源有限,尤其是在Windows系统下利用Visual Studio 进行环境配置和源码编译时,开发者通常会面临困难。为了解决功能查找问题,重新编译源码变得尤为必要。以下是关键步骤:
首先,进行环境配置。参考知乎和CSDN文章,安装Qt5..1和osgeo4w的QGIS-dev、qgis-common和qgis-grass7版本。在Visual Studio中建立Qt项目,配置Qt和QGIS的路径,包括include、部署源码服务器lib和依赖项。设置为release版本后,成功加载QGIS二次开发库的标志是能够生成窗口界面。
在安装完成后,如果遇到dll缺失问题,可以在OSGeo4W\apps路径下查找并复制相关dll。如果问题依然存在,可能需要检查Qt环境变量设置,或者将相关dll复制到项目根目录。
接下来是源码编译。源码编译旨在直接查看代码实现,便于定位功能。具体步骤包括:从github下载QGIS源码和相关依赖库(如使用github.cnpmjs.org镜像),下载过程中注意处理缺失的依赖库;设置环境变量,通过cmake-gui配置源代码和build路径,确保VS版本和/位对应;在cmake过程中解决路径问题,可能需要手动添加缺失项的路径或解决安装冲突。
如果编译过程中出现大量错误,尝试调整VS版本、Qt版本或cmake版本。我的配置是VS 位、cmake 3..7、Qt5..1和qgis 3..3。任何疑问,欢迎交流探讨。
Github上Fork开源代码,本地二次开发,保持源码同步
在Github上,获取并利用开源代码进行本地二次开发是一项常见操作。首先,你需要通过Fork功能复制一个大佬的开源代码仓库,这就像克隆一个项目,让你可以在不影响原始项目的情况下进行试验或贡献代码。要实现这一点,只需简单地执行两个步骤:
1. Fork仓库:复制链接后,使用git clone命令,将仓库克隆到本地,例如:`git clone /YOUR-USERNAME/origin-repo.git`
2. 同步本地副本:为保持与原始仓库同步,你需要配置git。通常,这涉及设置upstream指向主仓库,然后使用git pull从upstream获取更新。如果你想将这些更改推送到你的Fork仓库,还需要执行一次`git push`操作。
通过这些步骤,你就可以在本地对Fork的源代码进行修改,并确保与原始代码库保持同步。这是开源社区中协作开发的基础实践,帮助开发者们扩展和改进现有的开源项目。
element-plus源码与二次开发:package.json解析
element-plus使用pnpm的workspace来搭建monorepo工程,允许在单一码仓库中集中管理大量互相依赖的包,同时确保发布时的独立性。pnpm-workspace.yaml文件在根目录声明内部可引用的包,执行pnpm i后,会在node_modules中创建软连接,无需手动link。
element-plus组件库将vue声明在peerDependencies中,避免在主项目安装组件库时额外安装vue。通过czg包定义规范,执行提交commit命令,确保遵循git规范。使用play子包进行简单的开发调试,引入本地组件库。通过gen命令快速创建新组件,使用模板生成组件基础模板。生成版本号文件命令用于在构建时提供rollup的banner参数,部署前更新版本号命令从环境变量获取TAG_VERSION和GIT_HEAD,写入到三个包的package.json中的version和gitHead字段。
清理dist目录命令使用pnpm run -r --parallel,以并行方式执行所有子包的命令,删除根目录下的dist目录,并执行所有子包的clean命令。构建文档和组件库的关键步骤包括使用rollup执行构建,通过@esbuild-kit/cjs-loader将esm和ts实时转换为CommonJS。生成类型声明文件和代码提示文件,复制源样式文件、编译为css、压缩,并输出到特定目录。启动组件库文档docs项目基于vitepress,构建组件文档,本地测试构建出的生产环境docs,生成多语言文件和CROWDIN_TOKEN。
执行各包的stub命令,使用unbuild打包工具,基于rollup,支持typescript,支持生成commonjs和esmodule和类型声明,无需额外配置。prepare Husky钩子脚本确保自动执行预定义命令,执行pnpm i后,自动执行pnpm stub,编译internal下的三个包入口。
通过上述详细解析,我们可以清晰了解到element-plus源码与二次开发中的核心功能与流程,从构建结构到构建流程,再到二次开发工具的运用,展示了其高效、灵活的特点。