zoukankan      html  css  js  c++  java
  • [Map 3D开发实战系列] Map Resource Explorer 背景介绍Kick off

    随着对AutoCAD Map 3D开发技术感兴趣的人越来越多,从这篇文章开始,我将以一个小型项目为例,从设计到实现,一步一步的记录一个Map 3D项目的开发过程。如果你对AutoCAD Map 3D二次开发技术感兴趣,欢迎加入这个项目一起学习研究。 这个项目的名字就叫做 Map Resource Explorer,现在已经作为一个开源项目发布在Google Code上,你可以随时查看其源码和进展情况,更欢迎你和我一起参与开发实战。

    背景介绍:

    AutoCAD Map 3D是构建在AutoCAD基础之上的地理信息平台软件,它除了包含了AutoCAD的全部功能,还有丰富的面向地理信息领域的专用工具和功能。Map 3D通过FDO(Feature Data Object)技术直接访问市面上绝大多数的GIS数据格式(包括SDF, SHP, MySQL,Oracle , SQL Server Spatial等),从而避免格式转换,数据冗余,数据多版本维护等麻烦事。

    这些数据连接信息、图层等在Map  3D中都以资源的形势存在,他们其实是可以用XML形势表示的。在Map 3D开发调试过程中,我们经常需要检查这些资源的XML是否正确,而现在有没有这样一个工具可以让我们方便的查看Map 3D中资源的情况。这就是这个项目设计的初衷。目标就是设计一个插件,能够遍历浏览Map 3D所有资源及其资源的XML表示。

    AutoCAD Map 3D基于AutoCAD构建,因而 AutoCAD的相关API在Map 3D上都能正常运行,而我们对Map 3D进行二次开发,也必然会用到AutoCAD.net API来创建界面等工作; Map 3D 提供的Geospatial Platform API,这是一组基于.net的API,和MapGuide API好多方法属性的用法都是一样的,如果你熟悉MapGuide的开发,就能很快的开始Map 3D的开发。反之亦然,通过这个项目你了解了Map 3D的开发之后,再做MapGuide开发也会有帮助。

    工具准备:

    工欲善其事,必先利其器。开始工作之前首先把必要的工具准备好。

    1. AutoCAD Map 3D 2011或者Civil 3D 2011, 这是必然的,ADN用户可以从ADN网站下载,非ADN用户可以到Autodesk网站申请试用版http://usa.autodesk.com/adsk/servlet/pc/index?siteID=123112&id=13842112 

    2. Visual Studio 2008 SP1

    3. TortoriseSVN,我把这个项目的源码放在GoogleCode上,如果你有兴趣共同学习,你需要TortoiseSVN(http://tortoisesvn.net/downloads)。

    4  AnkhSVN,这个工具可以把SVN和Visual Studio界面结合起来,版本控制更方便,下载地址(http://ankhsvn.open.collab.net/)。

    开始工作:

    这个小工具将作为Map 3D的一个插件运行。我们第一步就是在Visual Studio里创建一个Class Library的项目:

    image

    添加AutoCAD及Map 3D相关引用,并把Copy Local属性设置为False,这些程序集都在Map 3D的安装目录下:

    AutoCAD.NET相关的程序集:

    acmgd.dll

    acdbmgd.dll

    Map 3D相关程序集:

    Autodesk.Map.Platform.dll

    Autodesk.Map.Platform.Core.dll

    Autodesk.Map.Platform.Utils.dll;

    Autodesk.Gis.Map.Shared.dll;

    OSGeo.MapGuide.Foundation.dll

    OSGeo.MaoGuide.PlatformBase.dll

    image

    把原先的Class1.cs 删除,新建一个名字比较友好的类Command.cs, 我们先写个简单的CmdList命令,这个命令的功能非常简单,就是在命令行上打印出可用的命令:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text; 
    
    using Autodesk.AutoCAD.ApplicationServices;
    using Autodesk.AutoCAD.EditorInput;
    using Autodesk.AutoCAD.Runtime; 
    
    using MapResourceExplorer.UI;
    using Autodesk.Gis.Map.Platform.Utils;
    using MapResourceExplorer.Model; 
    
    namespace MapResourceExplorer
    {
    
    public class Commands
    { 
    
        [CommandMethod("CmdList")]
        public void CmdListCommand()
        {
            Util.PrintLn("PROMPT: MapResourceExplore commands:");
            Util.PrintLn("\nResourceExplorer");
            Util.PrintLn("\nRegisterEvents");
        } 
    
    }
    
    }
    
    好了,今天先到这儿,下一篇讲怎么运行和调试。
    

    源代码:

    我现在已经写了一部分,源码上传到了Google Code,http://code.google.com/p/map-resource-explorer/, 如果你感兴趣可以下载查看。如果你有兴趣加入共同学习那更好了,你可以给我写信把你的gmail账号告诉我。发信到duchangyu#gmail.com(#替换成@)

    Cheers,

    峻祁连

    作者:峻祁连
    邮箱:junqilian@163.com
    出处:http://junqilian.cnblogs.com
    转载请保留此信息。
  • 相关阅读:
    GDB 运行PYTHON 脚本+python 转换GDB调用栈到流程图
    GDB-Dashboard-GDB可视化界面
    使用gdb调试Python进程
    从底层理解Python的执行
    python 用pdb调试
    GDB反向调试 + 指令记录+函数历史记录
    linux 0.11 源码学习+ IO模型
    LINUX系统全部参数 sysctl -a + 网络参数设置
    Linux Kernel 排程機制介紹
    linux 系统调优2
  • 原文地址:https://www.cnblogs.com/junqilian/p/1947242.html
Copyright © 2011-2022 走看看