在线看毛片视频-国产免费av在线-欧美日韩一区二区三区-国产成人无码av在线播放无广告-亚洲人va欧美va人人爽-国产第一草草-西班牙黄色片-四虎在线网站8848-最新av片免费网站入口-东京热无码中文字幕av专区-日本大人吃奶视频xxxx-欧美精品一区二区三区四区五区-国产片天天弄-国产免费内射又粗又爽密桃视频-欧美爱爱网站-日韩v欧美

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

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等,編程思路和關鍵方法都是相同的。

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

本類教程下載

系統下載排行

在线看毛片视频-国产免费av在线-欧美日韩一区二区三区-国产成人无码av在线播放无广告-亚洲人va欧美va人人爽-国产第一草草-西班牙黄色片-四虎在线网站8848-最新av片免费网站入口-东京热无码中文字幕av专区-日本大人吃奶视频xxxx-欧美精品一区二区三区四区五区-国产片天天弄-国产免费内射又粗又爽密桃视频-欧美爱爱网站-日韩v欧美
  • <li id="86scu"><menu id="86scu"></menu></li>
    <li id="86scu"></li>
    <button id="86scu"></button>
  • <s id="86scu"></s><button id="86scu"><menu id="86scu"></menu></button>
  • 一级黄色香蕉视频| 九九热免费在线观看| 亚洲黄色a v| 欧美不卡在线播放| 91香蕉视频网址| 国产亚洲视频一区| 亚洲色图38p| 国产一级做a爰片久久| 91av俱乐部| 久热免费在线观看| 欧美少妇性生活视频| 国产成人黄色片| 国产视频一区二区三区在线播放| 亚洲色欲久久久综合网东京热| 男人的天堂成人| 黄色一级片黄色| 无码人妻少妇伦在线电影| 欧美图片激情小说| 国产精品免费观看久久| 日韩免费毛片视频| 三上悠亚在线一区| 国产免费裸体视频| 免费在线观看亚洲视频| 中文字幕国产传媒| 婷婷中文字幕在线观看| 91免费国产精品| 中文字幕无码不卡免费视频| 亚洲一区二区三区四区五区xx| 三级在线免费看| 久久99国产精品一区| 99在线免费视频观看| 嫩草av久久伊人妇女超级a| 911福利视频| 欧美国产日韩激情| 蜜臀av免费观看| 特级西西444| 黑鬼大战白妞高潮喷白浆| 成年人三级黄色片| 97成人在线观看视频| 一级片黄色免费| 日韩在线视频在线观看| 污污视频网站在线| 欧美成人精品欧美一级乱| 亚洲一区二区中文字幕在线观看| 你真棒插曲来救救我在线观看| 亚欧在线免费观看| 天堂8在线天堂资源bt| www欧美激情| 91国视频在线| 97视频在线免费| 欧美特黄aaa| av视屏在线播放| 久久久久免费看黄a片app| 亚洲精品手机在线观看| 国产成人a亚洲精v品无码| 超碰超碰超碰超碰超碰| 亚洲欧美日韩三级| 无码精品a∨在线观看中文| 欧美 国产 精品| 日韩av福利在线观看| 亚洲黄色a v| 亚洲成人福利在线观看| 97国产精东麻豆人妻电影| 欧美性潮喷xxxxx免费视频看| 香蕉视频色在线观看| 亚洲18在线看污www麻豆 | 免费无码不卡视频在线观看| 亚洲精品国产suv一区88| 在线观看免费不卡av| 国产区二区三区| 手机在线免费观看毛片| 中文字幕乱码人妻综合二区三区| 黄网站欧美内射| 可以在线看的av网站| 91成人综合网| 日日摸日日碰夜夜爽无码| 免费在线a视频| www.亚洲天堂网| 欧美综合在线观看视频| 女性隐私黄www网站视频| 91视频最新入口| www日韩在线观看| 亚洲18在线看污www麻豆 | xxww在线观看| 国产又大又长又粗又黄| 国产在线无码精品| 成人午夜免费在线| 黄色片视频在线免费观看| 精品久久久久av| 天堂av.com| www.一区二区.com| 日韩欧美精品在线观看视频| 欧美大尺度做爰床戏| 色姑娘综合天天| 秋霞无码一区二区| 尤蜜粉嫩av国产一区二区三区| 一区二区三区 日韩| 天天色天天干天天色| 日本中文字幕高清| 成人免费aaa| 青青草成人免费在线视频| 国产精品97在线| 蜜臀一区二区三区精品免费视频| 黄色一级视频播放| 亚洲视频在线观看一区二区三区| 色婷婷.com| 狠狠97人人婷婷五月| 日本不卡一区在线| 欧美日韩在线中文| www.99riav| www.桃色.com| 久久久久久久少妇| www.成年人视频| 偷拍盗摄高潮叫床对白清晰| 天天夜碰日日摸日日澡性色av| 天天久久综合网| 日本www.色| 欧美牲交a欧美牲交| 欧美交换配乱吟粗大25p| 国产一二三在线视频| 成人在线观看黄| 男生操女生视频在线观看 | 日本不卡一区二区在线观看| 福利视频免费在线观看| 日本888xxxx| 熟女性饥渴一区二区三区| 青青在线视频免费观看| 欧美性视频在线播放| 色噜噜狠狠一区二区| 欧美丰满熟妇bbbbbb百度| 国产欧美久久久久| 熟女视频一区二区三区| 九九九九九国产| 在线免费观看av网| 国产aⅴ爽av久久久久| 国产视频1区2区3区| 999精彩视频| 天天摸天天舔天天操| 污污网站免费观看| 中文字幕一区久久| 国产精品人人爽人人爽| 久久婷婷综合色| 欧美视频在线第一页| 人妻av中文系列| 屁屁影院ccyy国产第一页| 特级黄色录像片| 中文字幕精品在线播放| 国产三级中文字幕| 97超碰人人爱| 日韩精品一区在线视频| av免费观看网| 欧美三级理论片| 九九热视频免费| 国产911在线观看| 婷婷五月综合缴情在线视频| 强开小嫩苞一区二区三区网站| 国产高潮呻吟久久久| 黄色成人在线免费观看| 无码专区aaaaaa免费视频| 日韩免费高清在线| 91在线第一页| 中文字幕无码精品亚洲35| 69久久久久久| 久久免费一级片| 成人一级生活片| 成人中文字幕在线播放| www.日本在线播放| 青青青免费在线| 成 人 黄 色 小说网站 s色| 91女神在线观看| 日本十八禁视频无遮挡| 日韩一级免费片| 欧美午夜性视频| 天天色天天综合网| 国产极品尤物在线| 加勒比av中文字幕| www黄色在线| 久久国产午夜精品理论片最新版本| 国产又猛又黄的视频| 国产毛片久久久久久国产毛片| 91高清国产视频| 欧美日韩中文在线视频| 激情小视频网站| 欧美国产日韩另类| 男人日女人bb视频| 欧美a级免费视频| 久久精品国产99久久99久久久| 99爱视频在线| 欧美日韩福利在线| 青青草免费在线视频观看| jizzzz日本| 色综合色综合色综合色综合| 日韩免费毛片视频| 极品美女扒开粉嫩小泬| 国产精品久久久久久久久电影网| 国产又大又黄又粗又爽| 性欧美极品xxxx欧美一区二区| 成人在线看视频| 免费看a级黄色片| 欧美变态另类刺激|