国产午夜成人免费看片无遮挡_日本免费xxxx色视频_免费人成网上在线观看_黄网址在线永久免费观看

當前位置:雨林木風下載站 > 技術開發教程 > 詳細頁面

VB中運用MapX創建用戶定制工具

VB中運用MapX創建用戶定制工具

更新時間:2022-05-01 文章作者:未知 信息來源:網絡 閱讀次數:

摘要 本文介紹了VB中如何利用MapX創建用戶定制地圖工具,詳細地說明了整個創建過程,以及在創建定制工具的過程中所使用的關鍵方法。

  1.前言

  隨著地理信息系統的發展,國內外已出現了不少GIS(地理信息系統)軟件,其中MapX是MapInfo公司的ActiveX控件產品。由于它是一種基于Windows操作系統的標準控件,因而MapX4.0支持絕大多數標準的可視化開發環境,如:VisualBasic,Delphi,PowerBuilder,VisualC++等面向對象語言,而且可以使用Lotus Script將MapX4.0嵌入到Lotus Notes中。

  雖然MapX4.0提供了許多標準工具,可以直接使用,但是很多情況下,這些標準工具不能滿足實際的需要,這就要求通過定制地圖工具來規定工具能完成何種功能,例如畫橢圓工具,標尺工具(測線段長度)等等。下面,筆者就通過一具體實例來介紹一下VB中采用MapX4.0控件制作地圖的定制工具。

  2.VB環境下MapX編程

  利用MapX4.0創建用戶定制工具分為以下三步:

  2.1 創建定制工具

  本例創建的是畫橢圓工具。首先,宣稱全局常量miAddEllipseTool = 1,1就代表了畫橢圓這個工具。然后,在主窗體中創建畫橢圓工具。
關鍵方法(創建定制工具):

OBJECT.CreateCustomTool (ToolNumber, Type, Cursor, [ShiftCursor] , [CtrlCursor], [InfoTips])

  OBJECT(對象):Map對象;

  ToolNumber(工具號)是創建出代表畫橢圓工具的miAddEllipseTool;

  Type(類型):描述了工具的行為,這個參數取的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(經緯度)坐標
Public RectY2 As Double 注釋:新加橢圓(所需的矩形)的點2的Y(經緯度)坐標
Private Sub Form_Load() 注釋:創建定制工具
Map1.CreateCustomTool miAddEllipseTool, _
miToolTypePoint, miCrossCursor
End Sub

  此時所創建的工具沒有任何功能,要工具具備相應的功能由第二步實現。

2.2編寫工具句柄 (工具具備什么功能)。

  當按下鼠標左鍵時,需要記下橢圓的起始位置;當鼠標右鍵彈上時,需要記下橢圓的結束位置,這時,畫出橢圓。橢圓將以這兩點為矩形的對角線在矩形框中繪制橢圓。需要特別注意的是,MapX4.0中使用的坐標系統是經/緯度系統,而MouseDOwn,MouseUp事件中的坐標是屏幕坐標,因此,需要將屏幕坐標轉化為經/緯度坐標,所畫橢圓才能顯示在正確的位置上。

  關鍵方法(繪制橢圓):

OBJECT.CreateEllipticalRegion(Rectangle,[Angle] , [Resolution] , [Style] )
OBJECT:FeatureFactory對象;
Rectangle(矩形):Rectangle對象,確定了橢圓的大小;
Angle(角度):變量,決定橢圓繞中心點旋轉的角度;
Resolution(精度) :變量, 橢圓的精度,由多少點構成;
Style(樣式): 變量,定義了所畫橢圓的樣式,如顏色,線型等。
實際編碼:
Private Sub Map1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button = vbLeftButton And (Map1.CurrentTool = miAddEllipseTool) Then
 Map1.NumericCoordSys.Set miLongLat, 0
 注釋:將屏幕坐標轉變為經緯度坐標
 Map1.ConvertCoord X, Y, RectX1, RectY1, miScreenToMap
 End if
End Sub
Private Sub Map1_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
 If Button = vbLeftButton And (Map1.CurrentTool = miAddEllipseTool) Then
  注釋:將地圖的坐標系統設為經/緯度坐標
  Map1.NumericCoordSys.Set miLongLat, 0
  注釋:將屏幕坐標轉變為經緯度坐標
  Map1.ConvertCoord X, Y, RectX2, RectY2, miScreenToMap
  注釋:鼠標彈起時,畫橢圓
  Call AddEllipse(form1,RectX1,RectY1,RectX2,RectY2)
 Endif
End sub

注釋:畫橢圓過程
Public Sub AddEllipse(frm As Form, x1 As Double, _
y1 As Double,x2 As Double,y2 As Double, EditLayer As Variant)
 Dim RECT As New MapXLib.Rectangle 注釋:畫橢圓的矩形框
 Dim CreatedEllipse As Feature 注釋:所畫的橢圓
 Dim I as integer,EditLayer as integer
 注釋:設置畫橢圓的矩形框
 RECT.Set x1, y1, x2, y2
 With frm.Map1
  注釋:創建橢圓
  Set CreatedEllipse = .FeatureFactory. _
  CreateEllipticalRegion(RECT, , 500, .DefaultStyle)
  注釋:確定哪一層是可編輯層,橢圓只能畫在可編輯層上
  For I=1 to .map1.layers.count
   If .map1.layers(I).editable=true then
    Editlayer=I
    Exit for
   Endif
  Next I
  注釋:將橢圓添加到所畫的圖層上
  .Layers.Item(EditLayer).AddFeature CreatedEllipse
 End With
End Sub



  此時,畫橢圓工具具備了畫橢圓的功能,運用定制的這個工具由第三步實現。

  2.3調用定制工具

  注釋:設置當前工具為定制的畫橢圓工具

  Map1.CurrentTool=miAddEllipse

  或 Map1.currenttool=1

  3. 結束語

  本例畫橢圓時,從鼠標按下,一直到鼠標最后彈起時才可以看到橢圓出現在地圖上,這就是說在鼠標移動(MouseMove事件)時,從鼠標按下,到鼠標彈起的中間過程是看不到中間過程的橢圓出現的。為了實現在鼠標移動時,也可以看到橢圓,那么需要在MouseMove事件中畫橢圓,并且,每次畫橢圓時刪除掉前一次畫的橢圓。這樣的運行結果就是看到,從鼠標按下,到鼠標彈起的過程中,隨鼠標的移動而有了繪橢圓的變化過程。

   另外,本文是以VB5為例,進行的編程,但對于其它語言,如VC++,Delphi等,編程思路和關鍵方法都是相同的。

溫馨提示:喜歡本站的話,請收藏一下本站!

本類教程下載

系統下載排行

国产午夜成人免费看片无遮挡_日本免费xxxx色视频_免费人成网上在线观看_黄网址在线永久免费观看

  • <label id="pxtpz"><meter id="pxtpz"></meter></label>
      1. <span id="pxtpz"><optgroup id="pxtpz"></optgroup></span>

        91精品综合久久久久久| 欧洲人成人精品| 一本色道亚洲精品aⅴ| 国产精品久久综合| 91天堂素人约啪| 一区av在线播放| 91精品免费观看| 免费观看久久久4p| 久久五月婷婷丁香社区| 国产91在线看| 亚洲午夜成aⅴ人片| 日韩一区二区在线免费观看| 九九在线精品视频| 中文字幕一区二区日韩精品绯色| 色狠狠一区二区三区香蕉| 亚洲一区二区3| 日韩你懂的在线观看| 国产精品一线二线三线| 国产精品久久久久aaaa樱花 | 看片的网站亚洲| 国产欧美一区二区精品秋霞影院| 99视频精品免费视频| 亚洲444eee在线观看| 日韩欧美一级在线播放| av亚洲产国偷v产偷v自拍| 五月天激情综合网| 国产精品美女久久久久久久久| 在线观看中文字幕不卡| 精品亚洲免费视频| 夜夜精品视频一区二区| 久久综合999| 欧美性猛交xxxx乱大交退制版 | 91久久线看在观草草青青| 免费观看一级欧美片| 国产精品久久国产精麻豆99网站 | 91美女视频网站| 久久99热国产| 亚洲va在线va天堂| ㊣最新国产の精品bt伙计久久| 日韩欧美成人午夜| 欧美在线免费观看视频| 成人午夜视频在线观看| 久久国产欧美日韩精品| 亚洲bdsm女犯bdsm网站| 亚洲欧美一区二区三区久本道91| 久久久99久久| 精品久久久久久久久久久院品网| 欧美日韩久久久久久| 在线免费观看一区| 91看片淫黄大片一级在线观看| 成人性生交大片免费| 国产一区在线不卡| 久久精品国产一区二区| 美女高潮久久久| 久久精品av麻豆的观看方式| 日精品一区二区| 男女男精品视频网| 日韩电影在线观看网站| 婷婷中文字幕综合| 亚洲aaa精品| 丝袜脚交一区二区| 日韩精品欧美成人高清一区二区| 亚洲国产精品一区二区www在线| 亚洲欧美日韩在线| 亚洲美女视频一区| 亚洲电影视频在线| 午夜视频在线观看一区二区 | 国产婷婷精品av在线| 精品国产91九色蝌蚪| 久久众筹精品私拍模特| 日本一区二区高清| 中文字幕五月欧美| 一区二区免费看| 五月天国产精品| 久草在线在线精品观看| 国产成人在线视频网址| 成人天堂资源www在线| 91免费观看视频在线| 91成人在线观看喷潮| 欧美精品在欧美一区二区少妇| 欧美一区二区三区四区高清| 精品噜噜噜噜久久久久久久久试看 | 国产真实乱子伦精品视频| 国产美女久久久久| 成a人片国产精品| 在线免费精品视频| 欧美大片日本大片免费观看| 欧美国产欧美综合| 亚洲一区日韩精品中文字幕| 日韩国产精品久久久久久亚洲| 精一区二区三区| 一本大道久久a久久精品综合| 欧美日韩精品一区二区三区四区| 欧美岛国在线观看| 亚洲人亚洲人成电影网站色| 午夜视频一区二区| 国产精品77777竹菊影视小说| 91日韩精品一区| 欧美一区二区三区啪啪| 国产免费成人在线视频| 亚洲国产精品久久久久婷婷884| 美国三级日本三级久久99| 床上的激情91.| 56国语精品自产拍在线观看| 欧美激情资源网| 婷婷中文字幕综合| 99免费精品在线| 久久蜜臀精品av| 视频一区免费在线观看| 91免费观看视频在线| 国产亚洲欧美激情| 蜜臀av性久久久久蜜臀aⅴ四虎| gogogo免费视频观看亚洲一| 91精品国产一区二区三区| 亚洲色图色小说| 日韩二区在线观看| 91麻豆成人久久精品二区三区| 日韩欧美一二三| 亚洲h在线观看| 在线国产亚洲欧美| 亚洲视频综合在线| 成人激情黄色小说| 精品99一区二区三区| 日本不卡一二三| 538在线一区二区精品国产| 亚洲主播在线播放| 欧美色视频在线观看| 亚洲成av人片在线观看无码| 欧美三级在线视频| 亚洲电影在线播放| 欧美色涩在线第一页| 午夜精品免费在线| 88在线观看91蜜桃国自产| 亚洲成av人影院| 884aa四虎影成人精品一区| 亚洲电影你懂得| 欧美一卡二卡三卡| 精品一区二区日韩| 久久精品一区二区三区不卡 | 91麻豆视频网站| 亚洲精品老司机| 欧美视频在线一区二区三区 | 久久成人免费电影| av资源网一区| 粉嫩久久99精品久久久久久夜| 国产欧美日韩不卡| 久久国产综合精品| 欧美高清一级片在线观看| 精品一区二区三区不卡| 欧美一区二区性放荡片| 亚洲综合免费观看高清完整版在线| 麻豆中文一区二区| 欧美一区日本一区韩国一区| 亚洲国产日韩精品| 91久久精品日日躁夜夜躁欧美| 亚洲欧洲av色图| 欧美乱妇23p| 男男成人高潮片免费网站| 6080亚洲精品一区二区| 美女一区二区久久| 中文字幕免费在线观看视频一区| 国产一区二区三区电影在线观看| 欧美一级艳片视频免费观看| 美国欧美日韩国产在线播放| 欧美一级片在线| 精品一区二区久久久| 亚洲色图视频网站| 欧美亚洲高清一区二区三区不卡| 一区二区不卡在线播放 | 91免费在线播放| 激情另类小说区图片区视频区| 精品国产亚洲一区二区三区在线观看 | 欧美精品乱码久久久久久按摩| 国产乱子伦视频一区二区三区| 日本一区二区三区久久久久久久久不| 国产一区二区三区久久久| 国产午夜精品一区二区| 韩国中文字幕2020精品| 一区二区三区精品久久久| 555夜色666亚洲国产免| 精品一区二区成人精品| 高清不卡一区二区在线| 日韩电影在线观看网站| 久久女同性恋中文字幕| 99re66热这里只有精品3直播| 中文字幕av不卡| 精品久久久久久综合日本欧美| 成人性生交大片免费看中文网站| 亚洲三级在线观看| 日韩无一区二区| 欧美日韩中文国产| 国产福利精品导航| 亚洲电影欧美电影有声小说| 在线观看免费一区| 99re在线精品| 国产一区二区看久久| 亚洲成av人片一区二区三区| 精品不卡在线视频| 欧美性色黄大片手机版| 成人av在线资源网站|