zoukankan      html  css  js  c++  java
  • MapX对图层的引用和创建实例

    如何建立一个新的图层?所建立的图层是永久的还是临时的?
    如何获得已有的图层对象?
    如何创建一个图元,并设置图元的属性?并且在图层中绘制出来?

    如何建立一个新的图层?所建立的图层是永久的还是临时的?
    可以使用layers对象的CreateLayer方法

    CreateLayer方法使您可以创建新的临时或永久Maplnfo表图层。所创建的表有一列名,用于标注和数据绑定。当要添加或更新图元时,Name属性将会放人图元名称列中。
    函数原形:
    CreateLayer(Name,[FileSpec],[Position],[KeyLength],[CoordSys])

    参数含义:
    Name   
    指定图层的名称(图层的用户名)。 
    FileSpec   
    变体型:所创建图层位置的路径名。文件名应包括.tab扩展名其他组 成Maplnfo表的文件(.map,·dat,等等)在与.tab文件的相同路径下创 建。如果没有给定文件名,则创建临时图层,当地图或OCX被删除。
    Position   
    变体型:它在图层列表中的初始位置。如果省略,自动图层定位运算法则将给图层分派基于图层类型的图层顺序。
    KeyLength   
    变体型:添加到表中放置图元名称的列的长度。如果省略,默认  
    CoordSys   
    变体型:CoordSys对象,指定存储新图层的坐标系。可选;如果省略,使用Map.NumericCoordSys属性。

    如何获得已有的图层对象?
    CMapXLayer layer = m_ctrlMapX.GetLayers().Item("scratch layer");

    如何创建一个图元,并设置图元的属性?并且在图层中绘制出来?
    以下代码实现了创建一个临时图层并在土层中绘制一个文本类型的图元

    CMapX m_ctrlMapX;
    CMapXLayer m_lyrMapXLayer;

    m_lyrMapXLayer = m_ctrlMapX.GetLayers().CreateLayer("TempLayer",NULL,1,32);
    m_ctrlMapX.GetLayers().SetAnimationLayer(m_lyrMapXLayer);

    CMapXFeature m_ftrMapXFeature;
    m_ftrMapXFeature.CreateDispatch(m_ftrMapXFeature.GetClsid());

    m_ftrMapXFeature.Attach(m_MapView->m_ctrlMapX.GetDispatch());
    //Attach方法用来使地图的坐标系与独立图元相关联

    m_ftrMapXFeature.SetType(miFeatureTypeText);
    //设置类型为文本图元

    m_ftrMapXFeature.SetCaption("Hello,My Deer");

    m_ftrMapXFeature.SetStyle(m_ctrlMapX.GetDefaultStyle());
    m_ftrMapXFeature.GetPoint().Set(126.61,45.3);
    // 设定图元的风格和位置

    //添加到图层
    m_lyrMapXLayer.AddFeature(m_ftrMapXFeature);

  • 相关阅读:
    心情日记:疯人疯语
    疾病研究:转载口服药物恢复了杜氏进行性肌营养不良患者缺失的蛋白
    报告论文:游程(行程)长度编码matlab(或者C++)实现
    技巧心得:没有 显示隐藏的文件和文件夹 选项
    视频教程:YUV420和RGB相互转换C++实现(二)
    应聘经历:网易公司 笔试
    视频教程:YUV和RGB相互转换MATLAB实现(一)
    读书札记:7天搞定C语言(一)
    嵌入式系统Linux内核开发工程师必须掌握的三十道题
    交流:IT学习大本营:“2×10+10:积分+资源分”大派送
  • 原文地址:https://www.cnblogs.com/strinkbug/p/683533.html
Copyright © 2011-2022 走看看