麻辣GIS微信平台

更多 GIS 干货

微信关注不错过

VC++开发GIS系统(31)VC++开发GIS系统的整体规划

说了这么多了,前面的基础内容也介绍了许多。从今天这个教程起,算是真正意义的开发了。既然开发就应该有需求,项目管理,代码迭代,项目文档等等内容,真正意义的开发应该有详细的文档说明才是。如下图就是当年我们组的开发文档,虽然不专业,但是现在看看还是很有心得。

在我们这个教程中,我不可能把每个文档也写下来,原因2个,一是文档耗时;二是当初分工的时候我也不是写文档的...所以这个项目就是在假设已经明确需求,各类接口设计已经完成的情况下进行开发。这里我简要的把接下来要做的项目做一个介绍。先是一张老图:

这是我们项目做完后的最后一个版本截图,在本文中,我将介绍每个功能的实现过程和系统的开发方方面面,尽管许多代码不是我写的,但当时控制的接口文档是一致的,也不难读懂(这就是规范化软件开发的好处!)本教程把项目名称也改成了malagis-desktop。

系统运行环境

windows xp,windows vista,windows 7,windows 8及windows 10

功能模块

    MENUITEM "输入点",                         ID_INPUT_POINT
    MENUITEM SEPARATOR
    MENUITEM "选择点",                         ID_SELECT_POINT
    MENUITEM "移动点",                         ID_MOVE_POINT
    MENUITEM "复制点",                         ID_COPY_POINT
    MENUITEM SEPARATOR
    MENUITEM "修改参数",                        ID_RE_POINTPRO
    MENUITEM SEPARATOR
    MENUITEM "删除点",                         ID_DEL_POINT
    MENUITEM "删除所有点",                       ID_DELALL_POINT

线

    MENUITEM "输入线",                         ID_INPUT_LINE
    MENUITEM SEPARATOR
    MENUITEM "选择线",                         ID_SELECT_LINE
    MENUITEM "清空状态",                        ID_CLEAR_LINE_STATE
    MENUITEM SEPARATOR
    MENUITEM "移动线",                         ID_MOVE_LINE
    MENUITEM "复制线",                         ID_COPY_LINE
    MENUITEM "参数编辑",                        ID_EDIT_LINEPRO
    MENUITEM SEPARATOR
    MENUITEM "剪断线",                         ID_CUT_LINE
    MENUITEM "线上加点",                        ID_ADDPNT_LINE
    MENUITEM "线上移点",                        ID_MOVEPNT_ONLINE
    MENUITEM "线上删点",                        ID_DELPNT_ONLINE
    MENUITEM SEPARATOR
    MENUITEM "删除线",                         ID_DEL_LINE
    MENUITEM "删除所有线",                       ID_DELALL_LINE

    MENUITEM "输入区",                         ID_INPUT_POLYGON
    MENUITEM SEPARATOR
    MENUITEM "选择区",                         ID_SELECT_POLY
    MENUITEM "清空状态",                        ID_CLEAR_AREA_STATE
    MENUITEM SEPARATOR
    MENUITEM "复制区",                         ID_COPY_POLY
    MENUITEM "移动区",                         ID_MOVE_POLY
    MENUITEM "修改参数",                        ID_REPOLY_PRO
    MENUITEM SEPARATOR
    MENUITEM "边界加点",                        ID_ADD_PNT_AREA
    MENUITEM "边界移点",                        ID_MOVE_PNT_AREA
    MENUITEM "边界删点",                        ID_DEL_PNT_AREA
    MENUITEM SEPARATOR
    MENUITEM "删除区",                         ID_DEL_POLY
    MENUITEM "删除所有区",                       ID_DELALL_POLY

注释

    MENUITEM "输入注记",                        ID_INPUT_TAG
    MENUITEM "选择注释",                        ID_SELECT_TAG
    MENUITEM "移动注记",                        ID_MOVE_TAG
    MENUITEM "复制注记",                        ID_COPY_TAG
    MENUITEM SEPARATOR
    MENUITEM "修改注记文本",                      ID_ALTER_TAGTEXT
    MENUITEM "修改参数",                        ID_RE_TAGGPRO
    MENUITEM SEPARATOR
    MENUITEM "删除注记",                        ID_DEL_TAG
    MENUITEM "删除所有注记",                      ID_DELALL_TAG

空间分析

    POPUP "地物拓扑"
    BEGIN
        MENUITEM "选择点",                         ID_TOPO_SELPNT
        MENUITEM "选择线",                         ID_TOPO_SELLINE
        MENUITEM "选择区",                         ID_TOPO_SELPOLY
    END
    POPUP "距离量算"
    BEGIN
        MENUITEM "自定义距离量算",                     ID_GET_DISTANCE
        MENUITEM "已知线段量算",                      ID_DIS_LINE
    END

全图操作

    MENUITEM "放大",                          ID_ZOON_IN
    MENUITEM "缩小",                          ID_ZOON_OUT
    MENUITEM "移动",                          ID_PAN
    MENUITEM "复位",                          ID_MICFW
    MENUITEM "刷新",                          ID_FRASH

开发方式

模块化DLL开发,这个技术我已经在VC++开发GIS系统(1)使用DLL导出类编程示例中详细介绍了。具体的介绍就说到这里,在后面的教程中,我们将从头开始更新代码,每篇教程我都会把代码相应的更新在git上,如果想关注可以随时关注,git地址:
https://coding.net/u/yqc/p/malagis-desktop-prj/git

相关阅读

麻辣GIS-Sailor

作者:

GIS爱好者,学GIS,更爱玩GIS。

声明

1.本文所分享的所有需要用户下载使用的内容(包括但不限于软件、数据、图片)来自于网络或者麻辣GIS粉丝自行分享,版权归该下载资源的合法拥有者所有,如有侵权请第一时间联系本站删除。

2.下载内容仅限个人学习使用,请切勿用作商用等其他用途,否则后果自负。

手机阅读
公众号关注
知识星球
手机阅读
麻辣GIS微信公众号关注
最新GIS干货
关注麻辣GIS知识星球
私享圈子

留言板(小编看到第一时间回复)