`
mapinfo
  • 浏览: 18398 次
  • 性别: Icon_minigender_2
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

【MapX教程之二】创建一个用户自定义图层

阅读更多
1 程序功能

在地图上建立一个用户自定义的图层,该图层上的每个图元包括图元编号、图元名称、图元描述、图元坐标等属性,并且生成一个数据集与该图层绑定。

2 程序实现

public bool NewUserLayer(string layerName)
//新建自定义图层,若存在则添加到图层集中
  {
   MapXLib.Layer layer;
   MapXLib.Fields flds=new MapXLib.FieldsClass();
   flds.AddStringField("source",50,false);
   flds.AddStringField("name",50,false);
   flds.AddStringField("identity",50,false);
   flds.AddStringField("description",50,false);
   flds.AddStringField("foundTime",50,false);
   flds.AddFloatField("objX",false);
   flds.AddFloatField("objY",false);
   MapXLib.LayerInfo layerInfo;
   layerInfo=new MapXLib.LayerInfoClass();   layerInfo.AddParameter("FileSpec",@appDirectory+"\\"+layerName+".tab");
   layerInfo.AddParameter("Name",layerName);
   layerInfo.AddParameter("Fields",flds);
   layerInfo.AddParameter("AutoCreateDataset",1);
   layerInfo.AddParameter("DatasetName","ds"+layerName);
   if (!File.Exists(@appDirectory+"\\"+layerName+".tab"))
   {
layerInfo.Type=MapXLib.LayerInfoTypeConstants.miLayerInfoTypeNewTable;
   }
   else
   {
   layerInfo.Type=MapXLib.LayerInfoTypeConstants.miLayerInfoTypeTab;
   }
   try
   {
    layer = axMap1.Layers.Add(layerInfo,1);
    axMap1.Refresh();
    return true;
   }
   catch
   {
    return false;
   }
  }

3 程序说明

(1)flds是MapXLib.Fields对象,即图层的属性字段集,将来会出现在.tab文件中。用new MapXLib.FieldsClass()来实例化一个MapX新的Fields对象。在对任何对象进行引用前,必须先实例化该对象。
AddStringField, AddFloatField是Fields字段集对象的两个方法,分别用来定义字符串字段及浮点型字段,并添加到Fields字段集对象中。有关AddStringField(),AddFloatField()的语法请参考MapX文档。
(2)MapXLib.LayerInfo对象是用来增加新层的一个非常好的方法,在layerInfo中具体定义该层的一些参数。
 layerInfo.AddParameter("FileSpec",@appDirectory+"\\userDrawLayer.tab"):指定该层的存放路径。@为转义字符, appDirectory为应用程序目录变量,可用Directory.GetCurrentDirectory()来得到。 userDrawLayer.tab为该层的.tab文件名。
 layerInfo.AddParameter("Name","userDrawLayer"):指定该层的名字”userDrawLayer”,名字将会出现在图层控制对话框中。
 layerInfo.AddParameter("Fields",flds):指定该图层的属性字段集对象,即上面新定义的MapXLib.Fields对象。
 layerInfo.AddParameter("AutoCreateDataset",1):指定是否自动产生数据集,1自动产生,0不产生。有关数据集的概念,在后续部分再重点作介绍。
 layerInfo.AddParameter("DatasetName","dsUserLayer");指定数据集的名字“dsUserLayer”。
 layerInfo.Type属性:指定新层的类型。MapXLib.LayerInfoTypeConstants.miLayerInfoTypeNewTable:指定产生一新层。 MapXLib.LayerInfoTypeConstants.miLayerInfoTypeTab:指定一存在的图层。
 axMap2.Layers.Add(layerInfo,1)语句:增加layerInfo所定义的新层,其中“1”代表增加至图层最上面。
这样就得到一个名为userdrawlayer的图层,并且得到一个名为dsUserLayer的数据集与该图层自动绑定。利用这种方法建立数据集非常方便,也非常好用。在一般情况下都可满足系统的需求。该数据集可理解为一张表格,该表格的结构即为上面定义的flds字段集对象,该表格中的每一个记录对应图层上每一个图元的属性记录。

编号 名称 描述 经度 纬度
01 北京市 中华人民共和国国首都 .. ..
… … … … …
(3)LabelProperties用来说明如何用数据集中的数据标注图层上每一个图元。
layer.LabelProperties.Dataset:指定数据集对象。
layer.LabelProperties.DataField:指定用数据集中哪个字段值标注图元。
layer.LabelProperties.Position:指定标注位置。
layer.LabelProperties.Style.TextFont.Size:指定标注的字体及大小等。
layer.LabelProperties.Offset:指定标注离图元中心的距离。
下面我们就可以在刚建立好的图层上描绘自己的内容了。

分享到:
评论

相关推荐

    MapX详细使用教程

    控件提供了一个直观的界面,允许用户进行地图的缩放、平移、旋转等操作。此外,MapX支持动态加载地图数据,使得大范围地图的展示变得高效。 **二、图层管理** MapX中的图层管理是关键特性之一。用户可以创建多个...

    MapX.zip_mapx_mapx教程

    这个“MapX.zip_mapx_mapx教程”压缩包包含了一个详细的MapX中文教程,对于想要学习和掌握MapX的用户来说,无疑是一份宝贵的资源。 MapX的核心功能包括地图显示、定位、路径规划、地图数据处理等。它支持多种地图...

    mapx教程 第二章(高校使用版)

    ### MapX教程第二章知识点详解 #### 一、MapX基础概述 MapX是一款功能强大的地理信息系统(GIS)开发工具,特别适用于高校教学和研究。本章节深入介绍MapX的基础概念,包括MapX对象体系的核心——`Map`对象,以及...

    vb开发mapx基础教程

    MapX是Microsoft MapPoint的一个组件,它允许开发者在应用程序中集成地图功能,VB6(Visual Basic 6)是Microsoft开发的一种编程环境,用于创建Windows桌面应用程序。本教程将深入探讨如何利用VB6来开发基于MapX的...

    MapX教程.pdf

    - **创建自定义工具**:学习如何根据需求创建自定义工具,扩展MapX的功能。 - **多边形绘制工具(Polytools)**:详细介绍Polytools工具的使用方法,用于绘制复杂的多边形。 #### 八、数据绑定 - **数据绑定的概念*...

    比较完善的C#中调用mapx教程

    MapInfo是一个知名的桌面GIS软件,MapX则允许在自定义应用程序中利用MapInfo的丰富功能。这部分内容可能涉及如何读取MapInfo表和图层,以及如何在C#程序中执行MapInfo的高级功能,如空间查询和分析。 总的来说,这...

    MapX教程

    2. Layer对象:表示地图上的一个图层,每个图层可以包含多个Feature对象。 3. Feature对象:表示地图上的单个地理实体,如点、线、多边形等。 4. Coordinate System:定义地图的坐标系统,如UTM、WGS84等。 5. ...

    MapInfo+MapX培训教程.pdf

    - **自定义工具**:通过创建自定义工具,开发者可以根据具体需求扩展MapX的功能。 - **多边形绘制工具(Polytools)**:Polytools是一种特殊类型的自定义工具,用于绘制多边形。掌握其使用方法可以方便地在地图上...

    C+MapX做的添加新图层源码

    在C++中,通过MapX提供的API,开发者可以创建自定义的地图应用,包括动态加载和管理地图图层。 在描述中提到的“C+MapX做的添加新图层源码”是一个简单的示例,演示了如何通过编程方式在MapX控件上添加新的图层。这...

    MapX开发教程

    MapX是Microsoft Visual Basic编程环境下的一种地图控件,它允许开发者在应用程序中集成地图功能,进行地图显示、数据可视化和地理分析。MapX是Borland公司开发的Geocoding和Mapping SDK,广泛应用于GIS(地理信息...

    Mapx_入门教程

    MapX 是 MapInfo 公司推出的一个用于地图可视化的OCX控件,它为开发者提供了在应用程序中集成地图展示和数据分析的强大功能。MapX 支持多种编程环境,如Visual Basic、PowerBuilder、Delphi、Visual C++以及Lotus ...

    MAPX开发程序过程打包录像.rar_MAPX VC_MapX5_mapx_mapx 教程_mapx5.0

    MapX还支持动态缩放、平移、图层管理以及自定义图例等功能,极大地增强了地图的可操作性和可视化效果。 **SetupFactory打包教程** "MAPX5.0用SetupFactory打包完全教程录象" 提供了使用SetupFactory工具将MapX开发...

    MapX Mobile培训教程PPT

    总的来说,MapX Mobile是一个强大的地图开发工具,它提供了一整套完整的地图创建、编辑、分析和展示的解决方案,适用于地理信息系统(GIS)和导航应用等领域。通过深入理解和熟练运用MapX提供的各种对象、属性、方法和...

    MapX二次开发实例

    - **自定义图层和符号**:MapX允许创建自定义图层和符号,以满足特定的显示需求。可以使用`Layer`类和`Symbol`类进行定制。 - **性能优化**:在处理大量地图数据或复杂交互时,需要注意性能优化,如合理缓存、减少...

    mapx二次开发资料

    《MapX二次开发详解》 MapX,由美国Bentley ...对于想要在GIS领域使用MapX进行应用开发的人员来说,这是一个不可多得的学习资源。通过深入学习和实践,你将能够利用MapX创造出功能强大、用户体验优秀的GIS应用。

    MapInfo+MapX培训教程

    - **绘制图层技巧:** 介绍如何使用MapX提供的绘图工具来创建自定义图层,这对于满足特定的视觉需求十分有用。 以上章节详细介绍了MapX的基本使用方法和关键知识点,对于希望深入了解MapX及其在GIS开发中应用的读者...

    mapx中文培训教程

    第二节 创建自定义工具 43 第三节 创建多边形绘制工具(Polytools) 46 第七章 数据绑定 49 第一节 数据绑定的概念 49 第二节 怎样向地图添加数据 49 第三节 DataSet对象和DataSets集合 49 第四节 使用 Fields 集合 ...

    MapX二次开发

    2. **地图对象的创建与管理**:MapX提供了一系列的地图对象,如Map、Layer、Symbol等,开发者需要了解这些对象的属性和方法,例如创建地图对象,加载地图图层,设置地图投影等。 3. **数据源的接入**:MapX支持多种...

    基于mapX的VB开发实例教程

    本教程围绕“基于mapX的VB开发实例”展开,旨在帮助开发者掌握如何利用VB和mapX创建具有地图展示、数据处理等GIS特性的应用程序。 【描述】:“很实用的开发实例,是从朋友那里得来的,上传一下给大家共享,希望对...

    基于MapX+VB实现的一个交通行业的系统代码

    对于初学者,这个项目是一个很好的学习资源,可以了解如何在VB中集成GIS功能,以及如何处理交通行业的特定需求。同时,对于已经在交通行业工作的开发者,这套代码可能提供了一种快速开发自定义GIS应用的起点,可以...

Global site tag (gtag.js) - Google Analytics