[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
转载请保留此信息。
原文地址:https://www.cnblogs.com/junqilian/p/1947242.html