大雀软件园

首页 软件下载 安卓市场 苹果市场 电脑游戏 安卓游戏 文章资讯 驱动下载
技术开发 网页设计 图形图象 数据库 网络媒体 网络安全 站长CLUB 操作系统 媒体动画 安卓相关
当前位置: 首页 -> 技术开发 -> Script -> 应用MapX编程两例

应用MapX编程两例

时间: 2021-07-31 作者:daque

0 mapx简介        mapx是mapinfo公司供给的具备宏大舆图领会功效的activex控件产物。因为它是一种鉴于windows操纵体例的规范控件,所以能扶助绝大普遍规范的可视化开拓情况,如visual c++、visual basic、delphi、powerbuilder、visual studio.net等。编制程序职员在开拓进程中不妨采用本人最熟习的开拓谈话,轻快地将舆图功效嵌入到运用中,而且不妨摆脱mapinfo的软硬件平台运转。运用mapx,不妨大略赶快地在软硬件中嵌入舆图化功效,巩固软硬件的空间领会本领。mapx沿用鉴于mapinfo professional沟通的舆图化本领,不妨实行mapinfo professional具备的绝大局部舆图编纂和空间领会功效。                  mapx的重要功效囊括:        [1]专题舆图绘制  运用专题舆图绘制不妨直觉地表白数据。将数据与舆图上的东西关系联,而后运用脸色源代码(或其它款式)来直觉地展现数据。可运用六种各别款式的任何一种(脸色范畴、点密度、独立值、分级标记、饼图或线形图)察看数据。       [2]逐层细化舆图绘制  经过大略的点击即可详查数据。对于olap/dss,不妨经过点击让用户逐层细化到舆图上的地区。       [3]数据绑定  舆图不妨与嵌套了mapx的容器、odbc或dao数据源贯串。mapx 供给了几何各别典型的数据绑定,囊括邮编级其余地舆源代码。       [4]解释  不妨自行设置解释的表露方位。超过表露特定命据。还可介入文本、标记、表格使舆图消息越发充分直觉。       [5]图层化  不妨表露和遏制舆图图层,使其缩放水平在预设的隔绝内时才表露。不妨运用或创造无缝图层,进而就像处置一个表一律处置一组表。不妨经过特出图层来扶助特出的运用,那些特出图层囊括动绘图层(用来及时盯梢)和userdraw 图层(用来在舆图顶部绘制特出舆图元素,比方徽标)。       [6]栅格图像  在图层中介入一个栅格图像层动作后台不妨使最后的舆图越发明显、场面。       [7]机动标签  不妨自意向舆图增添标签,并不妨遏制其属性和表露。       [8]采用东西  可在舆图上拖动鼠标在圆、矩形或一定的点上采用一个或多个东西或记载以供领会。       [9]特性工场  用featurefactory东西不妨创造、兼并、缓冲或废除点、线、地区东西。       [10]东西集  用户不妨经过单击和拖放操纵来与舆图交互。不妨运用mapx内置的导航、采用、标签、缩下班具,大概创造自设置的东西来满意步调的诉求。       [11]舆图编纂  承诺用户增添、窜改、简略舆图上的文本、编纂地区、点等特出东西。       [12]投影和坐标系  经过扶助百般坐标体例和舆图投影,mapx承诺微调舆图的表露并在当地坐标中处置x-y坐标数据。       [13]长途空间效劳器贯穿  不妨考察保存在oracle 8i 和mapinfo spatialware中的长途舆图数据。空间数据效劳器如spatialware和oracle 8i等都供给了进步的查问处置本领 ,普及了空间数据构造的本能。将空间数据保存到联系型数据库中,不妨减少运用步调的精巧性和舆图数据的安定性。      1 大略的gis功效       对于舆图缩放、平移、采用、标签等比拟大略的功效,不妨经过树立mapx控件东西的currenttool属性简单地赢得。如平移功效就不妨大略地用以次语句赢得:    map1.currenttool = mipantool  (假如mapx控件名字是map1)         

       2 东西闪耀功效      很多gis体例中要用到图形东西的闪耀功效。比方:节点在状况未知时表露灰色,在接收查问时以闪耀以表白状况。这局部功效是借助准时器控件实行的。步调代码重要局部如次:       '记载暂时正在处置的节点图标    dim curcussym as new mapxlib.feature    '两个瓜代表露的图标    dim newstyle as new mapxlib.style, oldstyle as new mapxlib.style    '用来调换图目标布尔值    dim blnold as boolean    ………… private sub timer1_timer()  (历次准时器间隙功夫到时挪用此因变量)    set lyr = map1.layers.item(1)    set feafac = map1.featurefactory    with newstyle     .symboltype = misymboltypebitmap     .symbolbitmapsize = 24     .symbolbitmaptransparent = true     .symbolbitmapname = "red.bmp"   (要表露的第一张图片)    end with        with oldstyle     .symboltype = misymboltypebitmap     .symbolbitmapsize = 24     .symbolbitmaptransparent = true     .symbolbitmapname = "gray.bmp"   (要表露的第二张图片)    end with        map1.autoredraw = false     (遏止机动革新)    if (blnold = true) then     (即使正表露第一张图片,就替代为第二张图片)     curcussym.style = oldstyle    blnold = false    else    curcussym.style = newstyle  (即使正表露第一张图片,就替代为第二张图片)     blnold = true    end if    curcussym.update  (革新图片) end sub  

      3  增加和删除站点图标功效      在减少、缩小、变换节点时会用到该功效。该局部功效是经过一个自设置东西实行的。重要实行代码如次:          '在工程模块中设置增删省点的东西常数   public const creatertusymboltool = 106   public const deletertusymboltool = 107       '备案东西  private sub form_load()   …………     map1.createcustomtool creatertusymboltool, mitooltypepoint, misizeallcursor    map1.createcustomtool deletertusymboltool, mitooltypepoint, misizeallcursor  end sub      '东西的挪用    private sub map1_toolused(byval toolnum as integer, byval x1 as double, byval y1 as double, byval x2 as double, byval y2 as double, byval distance as double, byval shift as boolean, byval ctrl as boolean, enabledefault as boolean)   …………     '增添节点图标    if toolnum = creatertusymboltool then    dim pnt as new mapxlib.point    dim feafac as new mapxlib.featurefactory    dim lyr as new mapxlib.layer    dim ftr as new mapxlib.feature    dim newstyle as new mapxlib.style      set lyr = map1.layers.item(1)    set feafac = map1.featurefactory    '树立节点图目标款式    with newstyle     .symboltype = misymboltypebitmap     .symbolbitmapsize = 24     .symbolbitmaptransparent = true     .symbolbitmapname = "gray.bmp"    end with    map1.autoredraw = false   '遏止图层机动革新    lyr.editable = true            '置暂时图层为可写状况    '创造点东西    pnt.set x1, y1       set ftr = feafac.createsymbol(pnt, newstyle)   '创造标记     '记载暂时正在处置的用户标志    set curcussym = ftr        '增添节点图标进暂时图层并革新图层    lyr.addfeature ftr    lyr.refresh

    map1.autoredraw = true '回复图层的机动革新    lyr.editable = false    '开释东西    set pnt = nothing    set feafac = nothing    set lyr = nothing    set ftr = nothing  end if  '简略节点图标  if toolnum = deletepointtool then    dim obj as mapxlib.feature    dim selectedftrs as mapxlib.features    dim lyr as mapxlib.layer

    set lyr = map1.layers.item(1)    set selectedftrs = lyr.selection    for each obj in selectedftrs        lyr.deletefeature (obj)    next  end if          end sub   

       4  提防事变        用来表露的bmp图片必需放在mapx安置目次下的custsymb子目次下,存为不大于256色的图片,如许才不妨用.symbolbitmapname = "gray.bmp"如许的语句来挪用表露。 

       5 mapx与.net的贯串        因为mapx是一个avtivex控件,以是不妨被.net托管运用。但因为.net对activex控件托管的实行是借助一个一致“壳”的包装东西实行的,并且很多在vb6底下的activex本领不复扶助(如默许参数等),将mapx运用到.net中有少许难度。固然基础功效仍旧比拟简单实行的,如采用东西挪用的语句为:axmap1.currenttool = mapxlib.toolconstants.miselecttool(axmap1为十分于vb6底下的map1东西)。          

 

热门阅览

最新排行

Copyright © 2019-2021 大雀软件园(www.daque.cn) All Rights Reserved.