GIS的二次开发使用pb调用mapx控件原创

上传人:博****1 文档编号:509343544 上传时间:2022-08-11 格式:DOC 页数:18 大小:77.50KB
返回 下载 相关 举报
GIS的二次开发使用pb调用mapx控件原创_第1页
第1页 / 共18页
GIS的二次开发使用pb调用mapx控件原创_第2页
第2页 / 共18页
GIS的二次开发使用pb调用mapx控件原创_第3页
第3页 / 共18页
GIS的二次开发使用pb调用mapx控件原创_第4页
第4页 / 共18页
GIS的二次开发使用pb调用mapx控件原创_第5页
第5页 / 共18页
点击查看更多>>
资源描述

《GIS的二次开发使用pb调用mapx控件原创》由会员分享,可在线阅读,更多相关《GIS的二次开发使用pb调用mapx控件原创(18页珍藏版)》请在金锄头文库上搜索。

1、GIS的二次开发使用pb调用mapx控件(原创)/新建图层的函数/wf_add_layeroleobject aLayer,lb_dataset,LayerInfo,Fldsole_1.object.Geoset=H:water_pt_map.gstalayer=Create OleObject alayer.ConnectToNewObject(MapX.Layer.5)LayerInfo=Create OleObject LayerInfo.ConnectToNewObject(MapX.LayerInfo.5)Flds=Create OleObject Flds.ConnectToNew

2、Object(MapX.fields.5) Flds.AddStringField (ID, 12 ) Flds.AddStringField (Name, 50)/新建图层LayerInfo.Type = 6LayerInfo.AddParameter (NAME, meteruse) LayerInfo.AddParameter (Fields, Flds )LayerInfo.AddParameter (AUTOCREATEDATASET, 1)LayerInfo.AddParameter (DATASETNAME, PT_WATER)alayer = ole_1.object.Laye

3、rs.Add(LayerInfo, 1)/设置活动图层ole_1.object.layers.animationlayer = alayer /=/name:wf_add_dot/dec3 ldc_x,ldc_y/增加点的函数,分级别显示/time:20040924/=long ll_f/按照级别设置颜色if il_jb = 1 thenole_1.object.DefaultStyle .SymbolCharacter = 35ole_1.object.DefaultStyle .SymbolFontColor = RGB(255, 0, 0)ole_1.object.DefaultStyl

4、e .SymbolFont.Size = 12/ole_1.object.DefaultStyle .SymbolFont=Map Symbolsole_1.object.DefaultStyle .textFontColor = RGB(255, 0, 0)ole_1.object.DefaultStyle .textFont.Size = 12ole_1.object.DefaultStyle .textFont=宋体 elseif il_jb = 2 then ole_1.object.DefaultStyle .SymbolCharacter = 36ole_1.object.Defa

5、ultStyle .SymbolFontColor = RGB(255, 255, 0)ole_1.object.DefaultStyle .SymbolFont.Size = 11ole_1.object.DefaultStyle .textFontColor = RGB(255, 255, 0)ole_1.object.DefaultStyle .textFont.Size = 11 elseif il_jb = 3 thenole_1.object.DefaultStyle .SymbolCharacter = 37ole_1.object.DefaultStyle .SymbolFon

6、tColor = RGB(255, 127, 0)ole_1.object.DefaultStyle .SymbolFont.Size = 10ole_1.object.DefaultStyle .textFontColor = RGB(255, 127, 0)ole_1.object.DefaultStyle .textFont.Size = 10 end ifint i,n=1oleobject f,f2,lb_dataset,flds,rvoleobject aLayeroleobject m_pointlb_dataset=Create OleObject lb_dataset.Con

7、nectToNewObject(MapX.dataset.5)flds=Create OleObject flds.ConnectToNewObject(MapX.fields.5)rv=Create OleObject rv.ConnectToNewObject(MapX.rowvalue.5)alayer=Create OleObject /(mapx.layer.5)f=Create OleObjectf2=Create OleObjectm_point =Create OleObjectalayer.ConnectToNewObject(MapX.Layer.5)ll_f = f.Co

8、nnectToNewObject(MapX.Feature.5)ll_f = f2.ConnectToNewObject(MapX.Feature.5)ll_f = m_point.ConnectToNewObject(MapX.point.5)aLayer=ole_1.object.layers.item(meteruse)lb_dataset = aLayer.Datasets.Item(PT_WATER)flds=lb_dataset.FieldsaLayer.LabelProperties.Dataset =lb_datasetaLayer.LabelProperties.DataFi

9、eld =lb_dataset.Fields.Item(id)aLayer.autolabel=trueaLayer.Editable=Trueif is_name and not isnull(is_name) thenif il_same_f = 1 then/已经在地图上存在的 移动坐标 f = aLayer.GetFeatureByKey (is_FeatureKey) f.point.Set(adc_x ,adc_y) f.update() else/没有存在的增加之ole_1.object.AutoRedraw=Falsem_point.Set(adc_x ,adc_y)f = o

10、le_1.object.featurefactory.createsymbol(m_point,ole_1.object.defaultstyle) aLayer.KeyField= Flds.Item(1).Name f.KeyValue=is_name f2=aLayer.addfeature(f)is_FeatureKey =f2.FeatureKeyil_same_f = 1end ifaLayer.Refreshole_1.object.AutoRedraw=trueend if/=/name :wf_delete_feature/string as_featruekey/删除地图上

11、的一个 符号/20040913/=oleobject aLayeralayer=Create OleObject /(mapx.layer.5)alayer.ConnectToNewObject(MapX.Layer.5)aLayer=ole_1.object.layers(meteruse)aLayer.DeleteFeature(as_featruekey) aLayer.refresh摘要 本文介绍了VB中如何利用MapX创建用户定制地图工具,详细地说明了整个创建过程,以及在创建定制工具的过程中所使用的关键方法。1.前言随着地理信息系统的发展,国内外已出现了不少GIS(地理信息系统)软件

12、,其中MapX是MapInfo公司的ActiveX控件产品。由于它是一种基于Windows操作系统的标准控件,因而MapX4.0支持绝大多数标准的可视化开发环境,如:VisualBasic,Delphi,PowerBuilder,VisualC+等面向对象语言,而且可以使用Lotus Script将MapX4.0嵌入到Lotus Notes中。虽然MapX4.0提供了许多标准工具,可以直接使用,但是很多情况下,这些标准工具不能满足实际的需要,这就要求通过定制地图工具来规定工具能完成何种功能,例如画椭圆工具,标尺工具(测线段长度)等等。下面,笔者就通过一具体实例来介绍一下VB中采用MapX4.0

13、控件制作地图的定制工具。2.VB环境下MapX编程利用MapX4.0创建用户定制工具分为以下三步:2.1 创建定制工具本例创建的是画椭圆工具。首先,宣称全局常量miAddEllipseTool = 1,1就代表了画椭圆这个工具。然后,在主窗体中创建画椭圆工具。关键方法(创建定制工具):OBJECT.CreateCustomTool (ToolNumber, Type, Cursor, ShiftCursor , CtrlCursor, InfoTips)OBJECT(对象):Map对象;ToolNumber(工具号)是创建出代表画椭圆工具的miAddEllipseTool;Type(类型):描

14、述了工具的行为,这个参数取的ToolTypeConstants(工具类型常量)值。本例,工具是按下鼠标左键到弹上鼠标左键的过程中画椭圆。本例中取的是miToolTypePoint;Cursor(指针形状):使用该工具时,该工具在地图上显示的形状,该参数从CursorConstants(指针常量)中取值。本例选用的是miCrossCursor,那么当选择该工具时,该工具将在地图上显示成十字叉形状;ShiftCursor ,CtrlCursor:这两个参数是可选的,缺省情况时,SHIFT键和CTRL键不起作用;InfoTips(工具提示): Boolean型。 如果要显示工具提示,需要将此参数设为true;缺省值为false。实际编码:Public Const miAddEllipseTool = 1 定制的加椭圆工具Public RectX1 As Double 新加椭圆(所需的矩形)的点1的X(经纬度)坐标Public RectY1 As Double 新加椭圆(所需的矩形)的点1的Y(经纬度)坐标Public RectX2 As Double 新加椭圆(所需的矩形)的点2的X(经纬度)坐标Pu

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 工作计划

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号