创建地图对象

  必要:创建地图对象,必须使用FeatureFactory对象

  1、 创建一个点对象

  点对象有一个坐标点(X,Y),点对象变量是Point类型,点对象的样式(Style)是符号样式。

  Dim Pnt AS MapXLib.Point

  Dim FeaFaac AS MapXLib.FeatureFactory

  Dim Lyr AS MapXLib.Layer

  Dim Ftr AS MapXLib.Feature

  Dim NewStyle AS MapXLib.Style

  ‘绑定

  SET Lyr=MainMap.Layers.Item(LayerName)

  SET FeaFac=mainmap.featurefactory

  ‘设置点对象样式

  With NewStyle

  .SymbolType = miSymbolTypeBitmap

  .SymbolBitmapSize = 24

  .SymbolBitmapTransparent = False

  .SymbolBitmapName = "YIEL2-32.BMP"

  End With

  Mainmap.AutoRedraw=False ‘禁止自动刷新

  Lyr.Editable=True ‘置当前图层为可写状态

  ‘创建点对象

  pnt.set X1,Y1

  ‘添加进当前图层

  Set Ftr=FeaFac. CreateSymbol (Pnt,Newstyle) ‘创建符号

  ‘Set Ftr=FeaFac. CreateSymbol (Pnt,MainMap.DefaultStyle)

  ‘添加

  Lyr.AddFeature Ftr

  Lyr.Refresh

  Mainmap.AutoRedraw=True

  Lyr.Editable=False

  ‘释放

  SET Pnt = Nothing

  SET FeaFac = Nothing

  SET Lyr = Nothing

  SET Ftr = Nothing

  ‘以上代码放在MapX的ToolUsed事件下

  单独修改某个图元的样式:SET Ftr.Style=NewStyle,再用Update 即可

  2、 创建一个线矩形

  Dim Pnts AS MapXLib.Points

  With NewStyle

  .LineColor=Rgb(0, 0,255)

  End With

  ‘第一个点

  Pnt.Set X1,Y1

  Pnts.add Pnt

  ‘第二个点

  Pnt.Set X2,Y1

  Pnts.add Pnt

  ‘第三个点

  Pnt.Set X2,Y2

  Pnts.add Pnt

  ‘第四个点

  Pnt.Set X1,Y2

  Pnts.add Pnt

  ‘第五个点

  Pnt.Set X1,Y1

  Pnts.add Pnt

  ‘创建线矩形

  SET Ftr=FeaFac.CreateLine(Pnts,NewStyle)

  Lyr.AddFeature Ftr

  Lyr.Refresh

  3、 上面创建对象中存在的问题:并未对其数据数据进行赋值创建对象的同时创建其数据集合

  Dim Pnt AS MapXLib.Point

  Dim FeaFac AS MapXLib.FeatureFactory

  Dim Lyr AS MapXLib.Layer

  Dim Ftr AS MapXLib.Feature

  Dim NewStyle AS MapXLib.Style

  Dim ds AS MapXLib.Dataset

  Dim Flds AS MapXLib.Fields

  ‘绑定

  SET Lyr=MainMap.Layers.Item(LayerName)

  SET ds=Lyr.Datasets.Item(1)

  Set Flds=ds.Fields

  SET FeaFac=mainmap.featurefactory

  ‘设置点对象样式

  With NewStyle

  .SymbolType = miSymbolTypeBitmap

  .SymbolBitmapSize = 24

  .SymbolBitmapTransparent = False

  .SymbolBitmapName = "YIEL2-32.BMP"

  End With

  Mainmap.AutoRedraw=False ‘禁止自动刷新

  Lyr.Editable=True ‘置当前图层为可写状态

  ‘创建点对象

  pnt.set X1,Y1

  ‘创建图形

  Set Ftr=FeaFac. CreateSymbol (Pnt,Newstyle) ‘创建符号

  ‘Set Ftr=FeaFac. CreateSymbol (Pnt,MainMap.DefaultStyle)

  ‘设置属性

  For I=1 to Flds.Count

  Lyr.KeyFields=Flds.Item(i).Name

  Ftr.KeyValue=ValueStr(I) ‘这里并没有对字段类型进行判断

  Next

  ‘另外一种方法:使用RowValues和RowValue对象

  ‘添加

  Lyr.AddFeature Ftr

  Lyr.Refresh

  Mainmap.AutoRedraw=True

  Lyr.Editable=False

  ‘释放

  SET Pnt = Nothing

  SET FeaFac = Nothing

  SET Lyr = Nothing

  SET Ftr = Nothing

  SET ds = Nothing

  SET Flds = Nothing

  4、 创建表

  (1) 临时表:

  A、用MainMap.Layers.CreateLayer方法创建临时表。但这个临时表只有一个字段:GeoNa

  me( Char 24)。程序运行过程中该表存放位置为系统临时文件夹下

  B、使用LayerInfo对象创建临时表,可以指定字段。示例:

  Dim Lyr As MapXLib.Layer

  Dim LayerInfo As New MapXLib.LayerInfo

  Dim Flds As New MapXLib.Fields

  ‘字段定义

  Flds.AddStringField "ID", 12

  Flds.AddStringField "Name", 50

  Flds.AddNumericField "Deptch", 12, 2

  Flds.AddIntegerField "Length"

  ´

  LayerInfo.Type = miLayerInfoTypeTemp

  LayerInfo.AddParameter "FileSpec", FileName

  LayerInfo.AddParameter "NAME", LayerName

  LayerInfo.AddParameter "Fields", Flds

  Set Lyr = MainMap.Layers.Add(LayerInfo, 1)

  Set Lyr = Nothing

  Set LayerInfo = Nothing

  (2) 创建永久表

  Dim Lyr As MapXLib.Layer

  Dim LayerInfo As New MapXLib.LayerInfo

  Dim Flds As New MapXLib.Fields

  Flds.AddStringField "ID", 12

  Flds.AddStringField "Name", 50

  Flds.AddNumericField "Deptch", 12, 2

  Flds.AddIntegerField "Length"

  ´

  LayerInfo.Type = miLayerInfoTypeNewTable

  LayerInfo.AddParameter "FileSpec", FilePath + "" + FileName

  LayerInfo.AddParameter "NAME", LayerName

  LayerInfo.AddParameter "Fields", Flds

  Set Lyr = MainMap.Layers.Add(LayerInfo, 1)

  Set Lyr = Nothing

  Set LayerInfo = Nothing

  5、 创建工具句柄

  系统已经定义工具句柄都以整数(包括16进制)常数存在,句柄号大于1000和小于12基本都为系统使用。

  A. 定义常数:必须为全局变量

  Global Const CreateSymbolTool = 13 ´创建节点

  Global Const CreateLineTool = 15 ´创建管线

  Global Const InfoTipTool = 16 ´信息工具

  Global Const MoveFeature = 17 ´移动地图

  Global Const ScaleDistanceTool = 18 ´测量两点间的距离

  B. 使用CreateCustomTool创建新的工具句柄:

  MainMap.CreateCustomTool CreateSymbolTool, miToolTypePoint, miSymbolCursor

  MainMap.CreateCustomTool CreateLineTool, miToolTypeLine, miCrossCursor

  MainMap.CreateCustomTool InfoTipTool, miToolTypePoint, miCrossCursor

  MainMap.CreateCustomTool MoveFeature, miToolTypeLine, miPanCursor

  MainMap.CreateCustomTool ScaleDistanceTool, miToolTypeLine, miPanCursor

  C. 如何使用?

  在Map对象的ToolUsed事件的ToolNum参数为当前所激活的工具

  使当

  前操作指向某行为:MainMap.CurrentTool=工具句柄号,如放大:MainMap.CurrentTool=

  miZoomInTool,移动图元:MainMap.CurrentTool=MoveFeature

  操作具体的工具句柄时,执行该捕捉到的工具句柄的代码:

  在ToolUsed事件中:

  Select Case ToolNum

  Case MoveFeature

  ‘执行代码

  End Select

3S基础知识:MapX应用教程—创建地图对象相关推荐

  1. FPGA基础知识极简教程(7)详解亚稳态与跨时钟域传输

    博文目录 写在前面 正文 FPGA或ASIC中的传播延迟 建立和保持时间是什么? 建立和保持时间与传播延迟和时钟频率有何关系? 如果违反建立和保持时间会发生什么? FPGA中的亚稳定是什么? 亚稳态何 ...

  2. decimal转换为int_FPGA基础知识极简教程(10)二进制到BCD转换算法

    写在前面 正文 快速认识 实现方式一 实现方式二 写在最后 写在前面 FPGA基础知识极简教程(9)[1]讲到了七段数码管的显示Verilog设计,我们都知道,要在数码管上显示的数字,使用BCD编码是 ...

  3. FPGA基础知识极简教程(10)二进制到BCD转换算法

    文章目录 写在前面 正文 快速认识 实现方式一 实现方式二 写在最后 写在前面 FPGA基础知识极简教程(9)讲到了七段数码管的显示Verilog设计,我们都知道,要在数码管上显示的数字,使用BCD编 ...

  4. 前端地图分类(包括坐标系,GIS基础知识,2D与3D地图结构划分)

    前端地图分类(包括坐标系,GIS基础知识,2D与3D地图结构划分) 经度:longitude(lng, 0 < lng < 180) 纬度:latitude(lat, 0 < lat ...

  5. FPGA基础知识极简教程(4)从FIFO设计讲起之异步FIFO篇

    博文目录 写在前面 正文 同步FIFO回顾 $clog2()系统函数使用 综合属性控制资源使用 异步FIFO设计 FIFO用途回顾 异步FIFO原理回顾 异步FIFO设计 异步FIFO仿真 参考资料 ...

  6. Java基础知识 廖雪峰教程笔记

    Java基础知识 Java基础知识 java简介 名词解释 运行Java程序 Java基本数据类型 模块 包装类型 记录类 异常处理 Java异常 使用Commons Logging 使用log4j ...

  7. j计算机基础知识,计算机办公自动化教程Office2003

    计算机办公自动化教程Office2003 语音 编辑 锁定 讨论 上传视频同义词 计算机基础知识一般指计算机办公自动化教程Office2003 一本通过学习使用office2003软件来进行电脑办公的 ...

  8. FPGA基础知识极简教程(9)七段数码管显示的Verilog简单设计

    博文目录 写在前面 正文 七段数码管原理 七段数码管译码表 单个七段数码管显示verilog设计 多个数码管动态扫描显示 参考资料 交个朋友 写在前面 作为FPGA的基础知识教程怎么能少得了这个简单的 ...

  9. 计算机wps表格基础知识,wps表格教程全套 - 51自学网

    原标题:wps表格教程全套 - 51自学网 WPS表格"共享工作簿"实现协同工作9分 出处:wps 时间:2013-03-11 人气:11359 您可能感兴趣的问题: 基础知识 处 ...

  10. FPGA基础知识极简教程(1)从布尔代数到触发器

    博文目录 写在前面 正文 初学者数字设计 什么是FPGA? 什么是ASIC? 数字设计师如何使用布尔代数? 使用查找表(LUT)在FPGA内部执行布尔代数 触发器如何在FPGA中工作? 参考资料 交个 ...

最新文章

  1. 大数据项目产品选型的五个建议
  2. 查询mysql所有对象_Mysql查看数据库对象(SQL命令总结)
  3. 4、Docker 提交运行中容器作为新的镜像
  4. java catch getm_Java------异常处理机制
  5. oracle 函数索引
  6. 春天猫rtsy_春天重试,因为冬天来了
  7. java coherence_Coherence配置默认覆盖路径
  8. 瑞幸咖啡业绩造假22亿:市场监管总局罚款1000万
  9. 初中参观机器人博物馆的作文_参观足球机器人实验室_550字
  10. UCOS操作系统——任务内嵌信号量(十一)
  11. android升级mcu升级,车载mcu需要升级吗_车载mcu升级有什么用
  12. 最新!2019 年中国程序员薪资生存调查报告出炉
  13. 11月 第4周 GitChat 话题排行榜
  14. 合肥Android两天十面总结
  15. 怎么画出好的架构图,架构师必备!
  16. C++ OpenCV 抠商标图片文字背景透明
  17. 苹果宣布 2022 年 Apple 设计大奖得主
  18. 快乐星球计算机老师,《快乐星球Ⅴ》新电脑老师(下)
  19. 第四十天 阿乐在其中—Android小游戏的飞机(四)加入敌人
  20. Python搭建代理池爬取拉勾网招聘信息

热门文章

  1. 网络工程师笔记--网络管理技术
  2. html5抽奖转盘生成器
  3. java代码转python代码(需要手动调整)
  4. 疯狂java 李刚 pdf_Java开发教程 – 《疯狂Java讲义第4版》PDF及代码+李刚
  5. Mac m1安装java jdk maven
  6. 常用的自动化运维工具
  7. 【C语言数据结构】数组
  8. Android开发项目计划书
  9. Linux下安装gcc5.5
  10. Centos 7/linux 安装gcc 教程