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);

  • 相关阅读:
    使用JS获取选中的复选框的值
    AngularJS实现tab选项卡
    Java递归获取树父节点下的所有树子节点
    SQL中的case when then
    用sql语句(alter)追加新字段、外键、删除列
    javascript把number转化成百分比
    使用group by来去除重复记录
    JavaScript数组
    基本排序方法
    (转)如何学好C语言
  • 原文地址:https://www.cnblogs.com/strinkbug/p/683533.html
Copyright © 2011-2022 走看看