GitHub代码托管平台使用指南与最新功能解析

2026-02-08 0 707

在当今这个数字化的时代,GIS技术,即地理信息系统,在多个行业扮演着关键角色。不过,关于其开发阶段的关键技术和可能遭遇的难题,人们了解得并不多。这便是我们需深入研究的内容。

GIS组件开发的基础

现在构建四十余种常用GIS组件具有重大价值。比如在[某具体项目]里,地图模块中包含了丰富的精确地理信息。众多开发者根据实际需求对组件进行个性化调整。在实际开发过程中,运用Vue3与Vite的搭配,开发效率显著提升。以某公司的GIS开发项目为例,采用这种组合可以比传统方法减少大约30%的开发时长。

GIS组件的开发涉及多个模块,这些模块的需求各不相同。以场景模块为例,它需要考虑现实中的诸多因素,比如光照。比如在[某地区]的城市规划中,若忽视光照和阴影效果,场景展示将显得不真实。

# 安装依赖包
npm install
# 服务启动/平台启动
npm run dev

3DVis-Vue3总体架构解析

- public
	- app							// 与应用项目
	- config
		- baseConfig.js				// 地理资源配置文件,可配置影像、地形、模型等
		- UIConfig.js				// 组件的配置文件,控制加载、默认状态等行为
	- VGEEarth
		- Config
			- ImageLayerTimeLine	// 卷帘对比组件的配置文件
			- pathPlanning			// 路径规划组件的配置文件
			- plotTool				// 标绘工具组件的配置文件
			- skybox				// 天空盒组件的配置文件
		- Ext						// 其他第三方依赖库的路径
		- Src						// VGEEearhSDK 的路径
	- favicon.ico
- src
	- assets
	- components			// 开发者编写的第二次开发组件路径
	- plugin
	- router
	- store
	- VGEUtils				// GIS 相关组件	
	- App.vue
	- main.js
- index.html
- package.json

该架构由多个部分组成。最底层就像建筑的地基,而类库层和组件层则是核心所在。类库层负责的数据解析和分析,是整个系统的支柱。以某个GIS项目为例,其数据解析功能能够快速应对复杂数据。

组件层通过调用类库来执行特定功能。比如在一个应用案例中,组件层所采用的模块化组件保证了各自功能的独立运作。因此,在调整或更动某个特定功能时,不会对其他部分造成影响。

开发中的特殊规则

const baseConfig = {
    /** SDK 的版本号,可由开发者去自定义 */
    Version: string,
    /** SDK 的 Token,用于与后台服务进行通信 */
    Token: string,
    /** 业务系统的名称 */
    appName: string,
    /** 显示在浏览器上 Tab 栏上的系统名称 */
    appTitle: string,
    /** 业务系统的图标 */
    appIcon: string,
    /** 数字地球的默认启动视角 */
    homeView: {
        longitude: number,
        latitude: number,
        height: number,
        /** 弧度制 **/
        headingRadians?: number,
        pitchRadians?: number,
        rollRadians?: number
    },
    /** 是否显示从全球旋转然后推进到默认视角的加载动画 */
    startAnimation: boolean,
    /** 演示服务器 基础路径 */
    demoServerUrl: string,
    /** 系统后台服务 基础路径 */
    AppBaseUrl: string,
    /** 静态资源服务器 基础路径 */
    GISResourcesUrl: string,
    /** GIS资源配置:图层、地形、gltf模型、倾斜模型、矢量、兴趣点 */
    layerList: ResourceItem [],
    terrainList: ResourceItem [],
    modelList: ResourceItem [],
    cesium3DTileSetList: ResourceItem [],
    geoJsonList: ResourceItem [],
    poiList: ResourceItem []
};
VGEEarth.ConfigTool.loadConfig(baseConfig);

在软件开发阶段,确保不出现全局变量污染是一项关键规范。曾经,一个开发团队未能重视此点,导致多个功能出现混乱。而在另一个知名项目开发过程中,团队严格遵循了这一规范,结果项目得以稳定运行。

enum DataTypeEnum {
    layer = \'layer\',
    terrain = \'terrain\',
    gltf = \'gltf\',
    Cesium3DTile = \'Cesium3DTile\',
    geoJson = \'geoJson\',
    water = \'water\',
    poi = \'poi\'
}
interface ResourceItem {
    pid: string,				// 资源项的 pid,如果不指定,将默认自动生成一个
    name: string,				// 资源项的名称
    catalog: string,			// 资源项所属的目录
    dataType: DataTypeEnum,		// 资源项的类型
    showInTree: boolean,		// 资源项是否会出现在资源数中
    defaultLoad: boolean,		// 资源是否默认加载
    /** 资源项的网络根路径 **/
    netRootPaths?: string[],
    /** 资源项是否开启 IndexedDB 缓存,如为 ture 则 netRootPaths 为必填项 **/
    offlineCache: boolean,
    /** 资源项的解码字符串 **/
    decryptionKey?: string,
    
    /** 为 Cesium 的默认参数。例如:
    1、当资源类型为 layer 时,properties 对应填写 new Cesium.ImageryLayer(imageryProvider, options)的 options 参数
    2、当资源类型为 terrain 时,properties 对应填写 new Cesium.Cesium3DTileset(options) 的 options 参数
    **/
    properties: any;			// 为 Cesium 的默认参数。例如
}

引入第三方库有它的技巧。通过index.html导入静态脚本文件,能带来不少便利。比如在某个大型开发项目中,这样做就解决了npm可能引发的版本不兼容等问题,还提升了项目的运行效率。

enum layerSchemeEnum {
    \'layer-wms\' = \'layer-wms\',
    \'layer-tms\' = \'layer-tms\',
    \'layer-wmts\' = \'layer-wmts\',
    \'layer-singleTileImagery\' = \'layer-singleTileImagery\',
    \'layer-xyz-3857\' = \'layer-xyz-3857\',
    \'layer-xyz-4326\' = \'layer-xyz-4326\',
    \'layer-arcgisMapServer\' = \'layer-arcgisMapServer\',
    \'layer-geoserver\' = \'layer-geoserver\',
    \'IonImageryProvider\' = \'IonImageryProvider\'
}

二次开发的基础配置

{
    pid: \'f859bb06-68b3-aed9-f7c5-e85c0c544516\',
    name: \'高德电子地图\',
    catalog: \'基础数据\',
    dataType: \'layer\',
    showInTree: true,
    defaultLoad: true,
    properties: {
       scheme: \'layer-xyz-3857\',
       url: \'http://webst04.is.autonavi.com/appmaptile?style=7&x={x}&y={y}&z={z}\'
    }
}

基础配置内容十分全面。它包括了项目运行所需的关键信息。比如,项目名称这一项,能帮助用户迅速辨认项目。以[某公司内部项目]为例,只需调整初始视角等参数,不同用户就能获得满意的视觉效果。

{
    pid: \'5b1f7a60-3195-4b95-1916-6e87558145f2\',
    name: \'区域地形\',
    catalog: \'经典场景\',
    dataType: \'terrain\',
    default: false,
    properties: {
        scheme: \'CesiumTerrainProvider\',
        url: \'https://127.0.0.1:3560/yuncs/dem\'
    },
}

在配置过程中,对组件状态的调节至关重要。比如,当[某特定组件]状态发生变动时,所调用的函数便依照这些规则进行,确保其显示与隐藏状态的准确调整。

组件中的工具实现

interface Offset {
    lon: number,
    lat: number,
    height: number
}

实现工具功能涉及多道工序。必须添加特定的模板样式组件。举例来说,在编写[某文件的工具]时,加入样式模板组件,这样才能确保工具窗口的样式保持统一。

{
    name: \'大雁塔\',
    catalog: \'三维模型\',
    dataType: \'3DTiles\',
    properties: {
        url: \'https://127.0.0.1:3560/3DTIles/tileset.json\',
        maximumScreenSpaceError: 2,
        offset: {
            height: 180
        }
    }
},

编写具体工具实现功能时,不同组件有其特定的注意事项。以fs-.vue文件为例,必须依据组件的具体功能需求细致入微地编写,绝不能草率行事。

/** 为 false 时,只将资源项显示在资源树中;为 true 时,直接加载上球,并显示在资源树中 **/
VGEEarth.ConfigTool.addOSMOnLine(false);
VGEEarth.ConfigTool.addMapBoxOnAliYun(false);
VGEEarth.ConfigTool.addBingMapOnIon(false);
VGEEarth.ConfigTool.addTerrainOnIon(false);
VGEEarth.ConfigTool.addTerrainOnAliYun(false);

视窗的自定义功能

用户能够通过视窗搭载的多个组件,享受到很高的操作自由度。他们可以随意调整工具和数据的布局,以满足个人需求。在[某GIS应用体验]中,这种灵活性受到了用户的高度赞扬。

this.$store.commit(\'setVGEEarthComAction\', { name: \'areaNavigation\', on_off: 2 });

用户自定义视窗主题UI颇具特色。然而,要找到对应的CSS文件进行修改并引入,并非易事。一位新手用户在尝试这一过程时,耗费了不少时间才成功找到正确的路径。

在此,我想请教众多读者,在GIS开发过程中,哪一部分让您感到最为棘手?衷心期望大家能参与到讨论中来。同时,还请为这篇文章点赞并转发,以便让更多的人认识到GIS组件的开发过程。

this.$store.getters.comStatus(\"areaNavigation\")

{name: \'洪水模拟\', type: \'ToolBoxItem\', open: false, comName: \'floodSimulation\', config: {inToolBox: true, iconClass: \'fenxi\'}},

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

申明:本文由第三方发布,内容仅代表作者观点,与本网站无关。对本文以及其中全部或者部分内容的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。本网发布或转载文章出于传递更多信息之目的,并不意味着赞同其观点或证实其描述,也不代表本网对其真实性负责。

左子网 开发教程 GitHub代码托管平台使用指南与最新功能解析 https://www.zuozi.net/73806.html

常见问题
  • 1、自动:拍下后,点击(下载)链接即可下载;2、手动:拍下后,联系卖家发放即可或者联系官方找开发者发货。
查看详情
  • 1、源码默认交易周期:手动发货商品为1-3天,并且用户付款金额将会进入平台担保直到交易完成或者3-7天即可发放,如遇纠纷无限期延长收款金额直至纠纷解决或者退款!;
查看详情
  • 1、描述:源码描述(含标题)与实际源码不一致的(例:货不对板); 2、演示:有演示站时,与实际源码小于95%一致的(但描述中有”不保证完全一样、有变化的可能性”类似显著声明的除外); 3、发货:不发货可无理由退款; 4、安装:免费提供安装服务的源码但卖家不履行的; 5、收费:价格虚标,额外收取其他费用的(但描述中有显著声明或双方交易前有商定的除外); 6、其他:如质量方面的硬性常规问题BUG等。 注:经核实符合上述任一,均支持退款,但卖家予以积极解决问题则除外。
查看详情
  • 1、左子会对双方交易的过程及交易商品的快照进行永久存档,以确保交易的真实、有效、安全! 2、左子无法对如“永久包更新”、“永久技术支持”等类似交易之后的商家承诺做担保,请买家自行鉴别; 3、在源码同时有网站演示与图片演示,且站演与图演不一致时,默认按图演作为纠纷评判依据(特别声明或有商定除外); 4、在没有”无任何正当退款依据”的前提下,商品写有”一旦售出,概不支持退款”等类似的声明,视为无效声明; 5、在未拍下前,双方在QQ上所商定的交易内容,亦可成为纠纷评判依据(商定与描述冲突时,商定为准); 6、因聊天记录可作为纠纷评判依据,故双方联系时,只与对方在左子上所留的QQ、手机号沟通,以防对方不承认自我承诺。 7、虽然交易产生纠纷的几率很小,但一定要保留如聊天记录、手机短信等这样的重要信息,以防产生纠纷时便于左子介入快速处理。
查看详情

相关文章

猜你喜欢
发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务