init
This commit is contained in:
275
docs/content/6-sunvstation-xi-tong-jia-gou.md
Normal file
275
docs/content/6-sunvstation-xi-tong-jia-gou.md
Normal file
@@ -0,0 +1,275 @@
|
||||
本文档从架构层面阐述 SunvStation 系统的设计理念、核心组件及其交互关系,帮助开发者理解系统的整体结构,为深入学习和二次开发奠定基础。
|
||||
|
||||
## 整体架构概览
|
||||
|
||||
SunvStation 采用分层架构设计,将 C++ 核心能力、Python 接口封装和业务逻辑管理清晰分离,形成高内聚、低耦合的系统结构。整个系统围绕 SSProcessManager 核心管理类展开,通过 Mixin 设计模式将功能模块化组合,同时借助 SWIG 技术实现 C++ 与 Python 的无缝集成。
|
||||
|
||||
Sources: [__init__.py](__init__.py#L1-L12), [PySSProcess.py](PySSProcess.py#L1-L100)
|
||||
|
||||
```mermaid
|
||||
graph TB
|
||||
subgraph "应用层 Python 业务逻辑"
|
||||
SSProcess[SSProcessManager<br/>核心管理类]
|
||||
|
||||
subgraph "Mixin 功能模块"
|
||||
SelectionM[SelectionMixin<br/>选择集操作]
|
||||
GeoEditM[GeoEditMixin<br/>地理对象编辑]
|
||||
ProjectM[ProjectMixin<br/>项目管理]
|
||||
LogM[LogMixin<br/>日志记录]
|
||||
ProgressM[ProgressMixin<br/>进度管理]
|
||||
end
|
||||
|
||||
ObjBase[ObjBaseAttr<br/>属性管理器]
|
||||
end
|
||||
|
||||
subgraph "接口层 SWIG 封装"
|
||||
Core[PySSCore<br/>核心类型与工作空间]
|
||||
Database[PySSDatabase<br/>数据库操作]
|
||||
Map[PySSMap<br/>地图与数据集]
|
||||
DataSource[PySSDataSource<br/>数据源访问]
|
||||
View[PySSView<br/>视图控制]
|
||||
DataX[PySSDataX<br/>数据交换]
|
||||
Check[PySSCheck<br/>数据检查]
|
||||
Math[PySSMath<br/>数学计算]
|
||||
Widget[PySSWidget<br/>UI组件]
|
||||
end
|
||||
|
||||
subgraph "实现层 C++ 核心库"
|
||||
CoreDL[_PySSCore.pyd]
|
||||
DatabaseDL[_PySSDatabase.pyd]
|
||||
MapDL[_PySSMap.pyd]
|
||||
DataSourceDL[_PySSDataSource.pyd]
|
||||
ViewDL[_PySSView.pyd]
|
||||
DataXDL[_PySSDataX.pyd]
|
||||
CheckDL[_PySSCheck.pyd]
|
||||
MathDL[_PySSMath.pyd]
|
||||
WidgetDL[_PySSWidget.pyd]
|
||||
end
|
||||
|
||||
SSProcess -.->|继承| SelectionM
|
||||
SSProcess -.->|继承| GeoEditM
|
||||
SSProcess -.->|继承| ProjectM
|
||||
SSProcess -.->|继承| LogM
|
||||
SSProcess -.->|继承| ProgressM
|
||||
SSProcess -->|使用| ObjBase
|
||||
|
||||
SelectionM -->|调用| Core
|
||||
SelectionM -->|调用| DataSource
|
||||
GeoEditM -->|调用| Core
|
||||
GeoEditM -->|调用| Database
|
||||
ProjectM -->|调用| Core
|
||||
ProjectM -->|调用| Map
|
||||
LogM -.->|回调| Widget
|
||||
ProgressM -->|调用| Widget
|
||||
|
||||
Core -->|加载| CoreDL
|
||||
Database -->|加载| DatabaseDL
|
||||
Map -->|加载| MapDL
|
||||
DataSource -->|加载| DataSourceDL
|
||||
View -->|加载| ViewDL
|
||||
DataX -->|加载| DataXDL
|
||||
Check -->|加载| CheckDL
|
||||
Math -->|加载| MathDL
|
||||
Widget -->|加载| WidgetDL
|
||||
|
||||
style SSProcess fill:#e1f5ff
|
||||
style CoreDL fill:#fff4e1
|
||||
style DatabaseDL fill:#fff4e1
|
||||
style MapDL fill:#fff4e1
|
||||
style DataSourceDL fill:#fff4e1
|
||||
style ViewDL fill:#fff4e1
|
||||
style DataXDL fill:#fff4e1
|
||||
style CheckDL fill:#fff4e1
|
||||
style MathDL fill:#fff4e1
|
||||
style WidgetDL fill:#fff4e1
|
||||
```
|
||||
|
||||
### 架构层次说明
|
||||
|
||||
SunvStation 系统架构分为三个层次,各层职责明确,通过标准接口实现交互。
|
||||
|
||||
**应用层**负责业务逻辑编排和用户交互,包含 SSProcessManager 核心管理类和多个 Mixin 功能模块。SSProcessManager 通过继承多个 Mixin 类组合功能,对外提供统一的 API 接口,对内协调各个功能模块的协作。ObjBaseAttr 作为属性管理器,统一管理地物属性的名称映射和索引转换。Sources: [PySSProcess.py](PySSProcess.py#L28-L70)
|
||||
|
||||
**接口层**由多个 SWIG 自动生成的 Python 模块组成,每个模块对应特定的功能域。这些模块将 C++ 对象和方法封装为 Python 可调用的接口,同时保持与底层实现的高效通信。所有接口模块遵循相同的 SWIG 封装模式,包括类型代理、迭代器支持和动态属性管理。Sources: [PySSCore.py](PySSCore.py#L1-L50), [PySSDatabase.py](PySSDatabase.py#L1-L50), [PySSView.py](PySSView.py#L1-L50)
|
||||
|
||||
**实现层**是编译为动态链接库(.pyd 文件)的 C++ 核心代码,提供高性能的地理数据处理能力。这一层包含工作空间管理、地图渲染、数据库访问、空间分析等核心算法和功能。C++ 实现通过 SWIG 暴露给 Python,既保证了性能,又提供了易用的脚本接口。Sources: [PySSMap.py](PySSMap.py#L1-L50), [PySSDataX.py](PySSDataX.py#L1-L50), [PySSCheck.py](PySSCheck.py#L1-L50)
|
||||
|
||||
## 核心组件详解
|
||||
|
||||
### SWIG 封装层
|
||||
|
||||
SWIG(Simplified Wrapper and Interface Generator)是连接 C++ 和 Python 的桥梁,通过自动生成的代理类实现类型安全的跨语言调用。所有 PySS*.py 文件都包含统一的 SWIG 生成代码模板,包括代理对象表示、动态属性控制、元类支持和迭代器实现。Sources: [PySSCore.py](PySSCore.py#L10-L45)
|
||||
|
||||
| SWIG 模块 | 功能域 | C++ 动态库 |
|
||||
|---------|--------|-----------|
|
||||
| PySSCore | 核心类型、工作空间、几何对象 | _PySSCore.pyd |
|
||||
| PySSDatabase | 数据库操作、对象存储 | _PySSDatabase.pyd |
|
||||
| PySSMap | 地图管理、数据集访问 | _PySSMap.pyd |
|
||||
| PySSDataSource | 数据源访问、查询 | _PySSDataSource.pyd |
|
||||
| PySSView | 视图控制、地图显示 | _PySSView.pyd |
|
||||
| PySSDataX | 数据交换、导入导出 | _PySSDataX.pyd |
|
||||
| PySSCheck | 数据检查、验证规则 | _PySSCheck.pyd |
|
||||
| PySSMath | 数学计算、坐标转换 | _PySSMath.pyd |
|
||||
| PySSWidget | UI 组件、进度条 | _PySSWidget.pyd |
|
||||
|
||||
SWIG 封装层使用版本 4.4.0,通过条件导入机制支持包内和独立模块两种导入方式,确保在不同部署环境下的兼容性。Sources: [PySSCore.py](PySSCore.py#L10-L14), [PySSDatabase.py](PySSDatabase.py#L10-L14)
|
||||
|
||||
### SSProcessManager 核心管理类
|
||||
|
||||
SSProcessManager 是 SunvStation Python 接口的核心入口,通过单例模式 SSProcess 向外提供服务。该类在初始化时获取工作空间和当前地图实例,创建必要的辅助对象,为后续操作准备环境。Sources: [PySSProcess.py](PySSProcess.py#L28-L70)
|
||||
|
||||
```mermaid
|
||||
flowchart LR
|
||||
A[SSProcessManager.__init__] --> B[获取 WorkSpace 单例]
|
||||
B --> C[获取当前 ScaleMap]
|
||||
C --> D[获取 GlobalOptions 单例]
|
||||
D --> E[创建 ObjBaseAttr 属性管理器]
|
||||
E --> F[创建 GeoBaseList 选择集]
|
||||
F --> G[创建 SSearchHelper 搜索助手]
|
||||
G --> H[创建缓存对象列表]
|
||||
H --> I[创建进度条和日志对象]
|
||||
I --> J[初始化完成]
|
||||
|
||||
style A fill:#e1f5ff
|
||||
style J fill:#d4edda
|
||||
```
|
||||
|
||||
SSProcessManager 的成员变量涵盖了工作空间管理的各个方面,包括工作空间引用、地图实例、全局配置、属性管理器、选择集列表、搜索助手、当前选中对象、新建对象缓存、删除对象缓存、进度条和日志记录器等。这种设计将所有操作所需的状态集中管理,简化了跨模块协作。Sources: [PySSProcess.py](PySSProcess.py#L33-L66)
|
||||
|
||||
### Mixin 设计模式
|
||||
|
||||
Mixin 设计模式是 SSProcessManager 架构的核心特征,通过将功能拆分为独立的 Mixin 类,实现代码复用和职责分离。SSProcessManager 继承自五个 Mixin 类:SelectionMixin、GeoEditMixin、ProjectMixin、LogMixin 和 ProgressMixin,每个 Mixin 负责特定的功能域。Sources: [PySSProcess.py](PySSProcess.py#L28)
|
||||
|
||||
Mixin 之间存在依赖关系,形成了清晰的功能层次。SelectionMixin 继承自 GeoEditAware、LogAware 和 ProgressAware,继承了地理编辑、日志记录和进度管理的抽象接口。GeoEditMixin 定义了地理对象编辑的抽象方法,为具体实现提供规范。这种基于抽象基类的设计确保了 Mixin 之间的松耦合和高内聚。Sources: [ssprocess_mixins/selection_mixin.py](ssprocess_mixins/selection_mixin.py#L21-L40), [ssprocess_mixins/geo_edit_mixin.py](ssprocess_mixins/geo_edit_mixin.py#L13-L55)
|
||||
|
||||
| Mixin 类 | 功能域 | 主要方法 |
|
||||
|---------|--------|----------|
|
||||
| SelectionMixin | 选择集管理 | clearSelection, setSelectCondition, selectFilter, getSelGeoCount |
|
||||
| GeoEditMixin | 地理对象编辑 | createDefaultGeoBase, createNewObjByCode, addNewObjPoint, saveBufferObjToDatabase |
|
||||
| ProjectMixin | 项目和工作空间 | getWorkspace, getCurrentMap, pushUndoMark, getSysPathName, mapZoom |
|
||||
| LogMixin | 日志记录 | set_logger, log_error_msg |
|
||||
| ProgressMixin | 进度管理 | disable_progress, startProgress, stepProgress, closeProgress |
|
||||
|
||||
### 属性管理系统
|
||||
|
||||
ObjBaseAttr 类负责地物属性的统一管理,将属性名称映射为索引,提供类型安全的属性访问。该类在初始化时注册所有预定义的属性名称,包括点属性、地物通用属性、几何参量、注记属性等,并为常用属性提供便捷访问属性。Sources: [ObjBaseAttr.py](ObjBaseAttr.py#L6-L80)
|
||||
|
||||
属性名称采用 SSObj_ 前缀的命名约定,涵盖了地物对象的各个方面。点属性包括 PointName、PointCount、PointType、X、Y、Z;地物通用属性包括 Code、LayerName、Color、LineType、ID、Name、Type 等;几何参量包括 Area、Length、3DLength、边界坐标等;注记属性包括字体、颜色、对齐方式、方向等。通过统一的属性命名和管理,系统确保了属性访问的一致性和可维护性。Sources: [ObjBaseAttr.py](ObjBaseAttr.py#L13-L60)
|
||||
|
||||
## 模块架构与职责
|
||||
|
||||
### 核心模块
|
||||
|
||||
PySSCore 模块定义了系统的基础类型和工作空间管理类,是整个系统的核心依赖。该模块包含 WorkSpace 单例类、GeoBase 地物基类、GeoBaseList 地物列表、SSearchHelper 搜索助手等核心类型。WorkSpace 采用单例模式,提供全局唯一的工作空间实例,通过 getInstance() 方法访问。ScaleMap 代表比例尺地图,管理数据集和图层。Sources: [PySSProcess.py](PySSProcess.py#L55-L66)
|
||||
|
||||
PySSDatabase 模块负责数据库操作,包括对象的创建、修改、删除和查询。该模块封装了底层数据库访问逻辑,提供事务支持和缓存管理。PySSMap 模块管理地图和数据集,提供图层控制、视图操作和数据集访问功能。PySSDataSource 模块处理数据源访问,支持多种数据格式和查询方式。Sources: [PySSDatabase.py](PySSDatabase.py#L1-L80), [PySSMap.py](PySSMap.py#L1-L100)
|
||||
|
||||
### 功能域划分
|
||||
|
||||
SunvStation 系统按照功能域划分为六个主要领域,每个领域由相应的模块和 Mixin 负责实现。选择集与查询领域由 SelectionMixin 和 SSearchHelper 负责,支持条件设置、过滤查询和选择集遍历。地理对象编辑领域由 GeoEditMixin 负责,提供对象创建、坐标添加、属性设置和数据库保存功能。Sources: [ssprocess_mixins/selection_mixin.py](ssprocess_mixins/selection_mixin.py#L44-L65), [ssprocess_mixins/geo_edit_mixin.py](ssprocess_mixins/geo_edit_mixin.py#L13-L55)
|
||||
|
||||
数据交换领域由 PySSDataX 模块负责,支持外部数据的导入导出和格式转换。数据检查领域由 PySSCheck 模块负责,提供检查记录管理和自定义规则验证。高级功能领域由 ProjectMixin、LogMixin 和 ProgressMixin 共同负责,涵盖工作空间管理、日志记录和进度显示。参考手册领域则提供完整的 API 文档和工具函数索引。Sources: [PySSDataX.py](PySSDataX.py#L1-L80), [PySSCheck.py](PySSCheck.py#L1-L50)
|
||||
|
||||
## 设计模式与架构特性
|
||||
|
||||
### Mixin 设计模式
|
||||
|
||||
Mixin 设计模式是系统架构的核心特征,通过多重继承实现功能的组合。每个 Mixin 类专注于单一职责,提供相关的方法集合。SelectionMixin 专注于选择集操作,包括清除选择集、设置条件、执行过滤等。GeoEditMixin 专注于地理对象编辑,包括对象创建、属性修改、缓存管理等。ProjectMixin 专注于项目和工作空间操作,包括获取工作空间、地图缩放、撤销标记等。Sources: [ssprocess_mixins/selection_mixin.py](ssprocess_mixins/selection_mixin.py#L44-L65), [ssprocess_mixins/project_mixin.py](ssprocess_mixins/project_mixin.py#L31-L56)
|
||||
|
||||
Mixin 之间通过抽象基类建立契约关系,确保接口的一致性。LogAware 和 ProgressAware 定义了日志和进度管理的抽象接口,LogMixin 和 ProgressMixin 提供具体实现。GeoEditAware 定义了地理编辑的抽象方法,GeoEditMixin 实现这些方法,其他需要编辑功能的 Mixin 可以继承 GeoEditAware 或依赖 GeoEditMixin。Sources: [ssprocess_mixins/log_mixin.py](ssprocess_mixins/log_mixin.py#L17-L28), [ssprocess_mixins/progress_mixin.py](ssprocess_mixins/progress_mixin.py#L17-L35)
|
||||
|
||||
### 单例模式
|
||||
|
||||
单例模式在系统中广泛使用,确保全局唯一对象的创建和访问。WorkSpace 采用单例模式,通过 getInstance() 方法获取唯一实例,全局维护工作空间状态。GlobalOptions 同样采用单例模式,管理系统全局配置选项。SSProcess 作为全局导出的单例,提供统一的访问入口,简化了 API 的使用。Sources: [PySSProcess.py](PySSProcess.py#L55-L58), [PySSProcess.py](PySSProcess.py#L136-L137)
|
||||
|
||||
### 抽象基类模式
|
||||
|
||||
抽象基类(ABC)用于定义 Mixin 之间的契约,确保接口的一致性和可扩展性。LogAware 和 ProgressAware 使用 abc.ABC 作为基类,定义了必须实现的抽象方法。GeoEditAware 继承自 abc.ABC,定义了地理编辑的抽象方法列表。这种设计利用 Python 的类型系统,在编译时检查接口的完整性,提高了代码的健壮性。Sources: [ssprocess_mixins/log_mixin.py](ssprocess_mixins/log_mixin.py#L17-L18), [ssprocess_mixins/geo_edit_mixin.py](ssprocess_mixins/geo_edit_mixin.py#L12)
|
||||
|
||||
### 依赖注入模式
|
||||
|
||||
依赖注入模式在系统中体现在对象成员的显式声明和初始化上。SSProcessManager 和各个 Mixin 类都显式声明了成员变量类型,包括 workspace、map、global_options、logger 等。这种设计使得依赖关系清晰可见,便于单元测试和模块替换。成员变量的类型注解使用 typing 模块,包括 Optional 和 Callable,提高了代码的可读性和 IDE 支持度。Sources: [PySSProcess.py](PySSProcess.py#L33-L66), [ssprocess_mixins/selection_mixin.py](ssprocess_mixins/selection_mixin.py#L21-L40)
|
||||
|
||||
## 技术栈与依赖
|
||||
|
||||
### SWIG 封装技术
|
||||
|
||||
SWIG 版本 4.4.0 是系统跨语言集成的核心技术,通过自动生成的代理类实现 C++ 和 Python 的无缝连接。每个 PySS*.py 文件都包含 SWIG 生成的标准模板,包括动态属性控制、迭代器支持和元类实现。SWIG 使用 _swig_repr 提供对象的字符串表示,使用 _swig_setattr_nondynamic_instance_variable 和 _swig_setattr_nondynamic_class_variable 防止动态属性添加,确保类型安全。Sources: [PySSCore.py](PySSCore.py#L1-L45), [PySSDatabase.py](PySSDatabase.py#L1-L45)
|
||||
|
||||
### Python 类型提示
|
||||
|
||||
系统广泛使用 Python 类型提示,提高代码的可读性和 IDE 支持度。typing.Optional 用于可能为 None 的对象,如 logger 和 progress。typing.Callable 用于回调函数类型。成员变量使用显式类型注解,如 workspace: WorkSpace、map: ScaleMap、enable_progress: bool。这种设计利用 Python 3.5+ 的类型系统,在不影响运行时性能的前提下提供静态类型检查。Sources: [PySSProcess.py](PySSProcess.py#L33-L66), [ssprocess_mixins/log_mixin.py](ssprocess_mixins/log_mixin.py#L17-L28)
|
||||
|
||||
### 抽象基类(ABC)
|
||||
|
||||
abc 模块用于定义抽象基类和抽象方法,建立 Mixin 之间的契约。LogAware 和 ProgressAware 定义了日志和进度管理的抽象方法,LogMixin 和 ProgressMixin 提供具体实现。GeoEditAware 定义了地理编辑的抽象方法,包括 createDefaultGeoBase、createNewObjByCode、addNewObjPoint 等。这种设计利用 Python 的抽象基类机制,在编译时检查接口实现,提高了代码的健壮性。Sources: [ssprocess_mixins/log_mixin.py](ssprocess_mixins/log_mixin.py#L17-L28), [ssprocess_mixins/geo_edit_mixin.py](ssprocess_mixins/geo_edit_mixin.py#L12)
|
||||
|
||||
## 数据流与交互
|
||||
|
||||
### 初始化流程
|
||||
|
||||
系统初始化从导入 sunvpy 模块开始,通过 __init__.py 定义包的元信息和导出接口。创建 SSProcessManager 实例时,依次获取 WorkSpace 单例、当前 ScaleMap、GlobalOptions 单例,创建 ObjBaseAttr 属性管理器、GeoBaseList 选择集、SSearchHelper 搜索助手,初始化缓存对象列表、进度条和日志对象。初始化完成后,SSProcess 作为全局单例提供服务。Sources: [PySSProcess.py](PySSProcess.py#L28-L70), [PySSProcess.py](PySSProcess.py#L136-L137)
|
||||
|
||||
### 操作流程
|
||||
|
||||
用户通过 SSProcess 调用 Mixin 提供的方法,如 setSelectCondition 设置选择条件,selectFilter 执行过滤查询,getSelGeoCount 获取选择集数量。方法调用通过 Mixin 委托给 SWIG 封装的 C++ 对象,如 SSearchHelper 的 m_selectConditions 属性,WorkSpace 的 getCurrentScaleMap 方法。结果通过 SWIG 代理对象返回 Python 层,由 Mixin 进行必要的数据转换和缓存管理。Sources: [ssprocess_mixins/selection_mixin.py](ssprocess_mixins/selection_mixin.py#L44-L65)
|
||||
|
||||
### 缓存管理
|
||||
|
||||
系统采用多级缓存机制,提高性能和事务管理能力。selGeoList 和 selNoteList 缓存脚本选择集的地物和注记,bufferObjList 和 bufferNoteList 缓存需要保存的对象,newBufferObjList 和 newBufferNoteList 缓存新创建的对象,delBufferGeoList 缓存需要删除的对象。通过 saveBufferObjToDatabase 方法批量将缓存对象保存到数据库,通过 pushUndoMark 方法创建撤销标记,支持操作回滚。Sources: [PySSProcess.py](PySSProcess.py#L59-L66), [ssprocess_mixins/geo_edit_mixin.py](ssprocess_mixins/geo_edit_mixin.py#L56-L60)
|
||||
|
||||
```mermaid
|
||||
sequenceDiagram
|
||||
participant User as 用户代码
|
||||
participant SSProcess as SSProcessManager
|
||||
participant Mixin as Mixin 模块
|
||||
participant SWIG as SWIG 封装层
|
||||
participant CPP as C++ 核心库
|
||||
|
||||
User->>SSProcess: SSProcess.setSelectCondition()
|
||||
SSProcess->>Mixin: SelectionMixin.setSelectCondition()
|
||||
Mixin->>SWIG: searchHelper.m_selectConditions.add()
|
||||
SWIG->>CPP: SSearchHelper::addCondition()
|
||||
CPP-->>SWIG: 返回结果
|
||||
SWIG-->>Mixin: 返回结果
|
||||
Mixin-->>SSProcess: 完成
|
||||
SSProcess-->>User: 返回
|
||||
|
||||
User->>SSProcess: SSProcess.selectFilter()
|
||||
SSProcess->>Mixin: SelectionMixin.selectFilter()
|
||||
Mixin->>SWIG: searchHelper.search()
|
||||
SWIG->>CPP: SSearchHelper::executeQuery()
|
||||
CPP-->>SWIG: 返回 GeoBaseList
|
||||
SWIG-->>Mixin: 返回选择集
|
||||
Mixin->>Mixin: 缓存到 selGeoList
|
||||
Mixin-->>SSProcess: 完成
|
||||
SSProcess-->>User: 返回选择集数量
|
||||
|
||||
User->>SSProcess: SSProcess.saveBufferObjToDatabase()
|
||||
SSProcess->>Mixin: GeoEditMixin.saveBufferObjToDatabase()
|
||||
Mixin->>SWIG: GeoBaseList.saveToDatabase()
|
||||
SWIG->>CPP: Database::batchSave()
|
||||
CPP-->>SWIG: 返回保存结果
|
||||
SWIG-->>Mixin: 返回结果
|
||||
Mixin->>Mixin: 清空缓存
|
||||
Mixin-->>SSProcess: 完成
|
||||
SSProcess-->>User: 返回
|
||||
```
|
||||
|
||||
## 推荐学习路径
|
||||
|
||||
基于系统架构和文档目录,建议按照以下顺序深入学习 SunvStation 系统:
|
||||
|
||||
1. **基础概念**:首先阅读[库概述](1-ku-gai-shu)和[安装与环境配置](2-an-zhuang-yu-huan-jing-pei-zhi),了解系统基本概念和部署要求。
|
||||
|
||||
2. **入门实践**:通过[第一个脚本:查询地物属性](3-di-ge-jiao-ben-cha-xun-di-wu-shu-xing)和[使用 SSProcess 管理选择集](4-shi-yong-ssprocess-guan-li-xuan-ze-ji)进行实践操作,熟悉基本 API。
|
||||
|
||||
3. **架构理解**:在实践基础上,深入理解本文档[SunvStation 系统架构](6-sunvstation-xi-tong-jia-gou),然后学习[SWIG 封装机制说明](7-swig-feng-zhuang-ji-zhi-shuo-ming)和[C++ 扩展模块与 Python 接口](10-c-kuo-zhan-mo-kuai-yu-python-jie-kou),理解跨语言集成原理。
|
||||
|
||||
4. **核心概念**:学习[工作空间与地图概念](8-gong-zuo-kong-jian-yu-di-tu-gai-nian)和[Mixin 设计模式](9-mixin-she-ji-mo-shi),理解系统核心概念和设计思想。
|
||||
|
||||
5. **功能深入**:根据业务需求,深入学习各个功能域的文档,包括选择集与查询、地理对象编辑、数据交换、数据检查等章节。
|
||||
|
||||
6. **参考手册**:在开发过程中,随时查阅[SSProcessManager 完整 API](40-ssprocessmanager-wan-zheng-api)、[ObjBaseAttr 属性索引](41-objbaseattr-shu-xing-suo-yin)和[地理对象类型定义](42-di-li-dui-xiang-lei-xing-ding-yi)等参考手册。
|
||||
|
||||
这种学习路径从基础到深入,从实践到理论,帮助开发者逐步掌握 SunvStation 系统的核心能力和架构设计。
|
||||
Reference in New Issue
Block a user