zoukankan      html  css  js  c++  java
  • Map 3D中通过程序删除图层及数据源

    在Map 3D中可以通过API来连接到SHP,Oracle等各种数据源,如果你对这个过程不熟悉,可以参考Map 3D ObjectARX SDK中的BuildMap示例,但BuildMap中没有演示如何断开到这些数据源的连接。如果你看过BuildMap的实现代码,就会发现连接到数据源其实就是创建FeatureSource资源的过程,添加图层到地图上即创建LayerDefinition的过程。那么于此对应,断开连接也就是删除相应资源的过程。

    下面是实现从地图中删除图层并断开连接的代码(在Map 3D 2013下测试通过):

        [CommandMethod("RemoveLayer")]
        public void RemoveLayer()
        {
          Document doc = Application.DocumentManager.MdiActiveDocument;
          Editor ed = doc.Editor;
          Database db = doc.Database;
    
          AcMapMap map = AcMapMap.GetCurrentMap();
          string layerName = "layer1";
    
          // remove the layer
          var layers = map.GetLayers();
          if (!layers.Contains(layerName))
          {
            ed.WriteMessage("\nLayer does not exist: " + layerName);
            return;
          }
    
          MgLayerBase layer = layers.GetItem(layerName);
          layers.Remove(layer);
    
          // remove the layer resource
          MgResourceIdentifier identifier = layer.LayerDefinition;
          MgResourceService resourceService
            = AcMapServiceFactory.GetService(MgServiceType.ResourceService)
            as MgResourceService;
    
          if (resourceService.ResourceExists(identifier))
            resourceService.DeleteResource(identifier);
    
          // remove the feature source
          identifier = new MgResourceIdentifier(layer.FeatureSourceId);
          if (resourceService.ResourceExists(identifier))
            resourceService.DeleteResource(identifier);
        }

    另外,这个方法也还有其他的妙用,今天没时间了,以后再详细写。

  • 相关阅读:
    selenium爬虫 :使用selenium爬取淘宝某口红店铺的用户对商品的评价
    在scrapy框架 使用ImagesPipeline 抓取下载某牙直播主播直播间封面的图片!
    在multiprocessing.dummy线程池,基于线程 pool.map(callback,alist)再次处理数据:爬取某音乐网站热歌排行榜里面的歌曲!
    selenium 模拟登陆 + requests 抓取登陆后的数据:某小说网站
    vue的基本使用总结一
    登录页面设计
    Auth模块
    批量插入/分页器
    前后端传输数据的编码格式(contentType)
    ajax
  • 原文地址:https://www.cnblogs.com/junqilian/p/2620490.html
Copyright © 2011-2022 走看看