- GIS论坛-GIS空间站 ( http://bbs.gissky.net/Default.asp )
-- 编程技术交流 ( http://bbs.gissky.net/ShowForum.asp?forumid=22 )
--- [求助]C#+AE9.2开发小问题 ( http://bbs.gissky.net/ShowPost.asp?id=44838 )


作者:giseaglet
发表时间:2008-7-2 16:15:08

本人刚刚开始从事开发工作,虽然大学期间是学GIS的,但是接触的东西不多,现在上手感觉很困难,有个问题请大家指教。

通过一些网上的教程和一些博客上的东西,基本了解了C#+AE开发的基本流程,感觉很好,很强大,呵呵。

我现在手里有一个小任务(公司安排,要看学习能力),觉得自己研究过后还是有些迷糊,下面把我的问题说出来,等待大侠回答。

任务是实现shape文件(一个点要素文件)的加载,可以在该图层上添加点要素,并输入属性;可以删除点要素;点图层数据查询,通过点击地图上的点,查询距离该点位置最近的点元素,列出属性信息。

shape文件读取很容易实现,在添加点要素的时候经过别人指点之后添加的东西总是不在那个图层上,思路是把屏显display作为容器。其他的功能就更没有实现了。

期待的帮助为:希望哪位可以用开发角度帮我分析一下这个任务,用一些AO术语来描述一下任务,然后可以指点一下思路,谢谢大家!!



作者:兔八哥
发表时间:2008-7-4 8:25:19

你可以增加一个编辑图层管理这样的菜单,控制你当前编辑的图层,而新添加的要素在就在当前编辑图层上面。


发表您的观点,进入该主题参与讨论...


作者:万里云
发表时间:2008-7-6 14:14:48

ao的开发帮助里面很多例子代码,你这些功能都可以找到现成的代码

用心找找吧,这个是编辑的相关代码

//IWorkspaceEdit Example

    //e.g., nameOfFeatureClass = "States"
    //on ArcSDE use ISqlSyntax::QualifyTableName for fully qualified table names.
    public void IWorkspaceEdit_Example(IWorkspace workspace, string nameOfFeatureClass)
    {
        IFeatureWorkspace featureWorkspace = (IFeatureWorkspace)workspace;
        IFeatureClass featureClass = featureWorkspace.OpenFeatureClass(nameOfFeatureClass);
        IWorkspaceEdit workspaceEdit = (IWorkspaceEdit)workspace;
        //start editing with undo redo functionality
        workspaceEdit.StartEditing(true);
        workspaceEdit.StartEditOperation();
        IFeature feature = featureClass.GetFeature(1);
        feature.Delete();
        workspaceEdit.StopEditOperation();
        Console.WriteLine("Would you like to undo your operation? Y or N");
        string response = Console.ReadLine();
        if(response.ToUpper() == "Y")
        {
            workspaceEdit.UndoEditOperation();
        }
        bool hasEdits = false;
        workspaceEdit.HasEdits(ref hasEdits);
        if (hasEdits)
        {
            Console.WriteLine("Would you like to save your edits? Y or N");
            response = Console.ReadLine();
            if (response.ToUpper() == "Y")
            {
                workspaceEdit.StopEditing(true);
            }
            else
            {
                workspaceEdit.StopEditing(false);
            }
        }
    }


发表您的观点,进入该主题参与讨论...


Powered by GIS空间站 © 2002-2007