国产欧美日韩精品a在线观看-国产欧美日韩精品一区二区三区-国产欧美日韩精品综合-国产欧美中文字幕-一区二区三区精品国产-一区二区三区精品国产欧美

ACS880-07C
關(guān)注中國自動(dòng)化產(chǎn)業(yè)發(fā)展的先行者!
CAIAC 2025
2024
工業(yè)智能邊緣計(jì)算2024年會(huì)
2023年工業(yè)安全大會(huì)
OICT公益講堂
當(dāng)前位置:首頁 >> 案例 >> 案例首頁

案例頻道

基于MapX的組件式GIS技術(shù)應(yīng)用研究
  • 企業(yè):控制網(wǎng)     領(lǐng)域:儀器儀表    
  • 點(diǎn)擊數(shù):3481     發(fā)布時(shí)間:2005-08-31 11:20:09
  • 分享到:
采用具有強(qiáng)大地圖分析功能的ActiveX控件產(chǎn)品MapX和組件技術(shù)來構(gòu)建組件式 GIS(Com GIS)是一種新的地理信息系統(tǒng)開發(fā)技術(shù)。本文重點(diǎn)討論了Com GIS和MapX的特點(diǎn)和關(guān)鍵技術(shù)應(yīng)用,并同時(shí)給出了相應(yīng)技術(shù)集成開發(fā)Com GIS的方法和實(shí)現(xiàn)過程。



1地理信息系統(tǒng)的發(fā)展
    地理信息系統(tǒng)(GIS:Geographic Information System)作為一門綜合性的技術(shù),是一種對(duì)空間數(shù)據(jù)進(jìn)行采集、存儲(chǔ)、更新、分析、輸出等處理的工具,而軟件是其核心內(nèi)容之一。GIS技術(shù)的發(fā)展,在軟件模式上經(jīng)歷了功能模塊、包式軟件、核心式軟件,從而發(fā)展到組件式GIS和WebGIS的過程。傳統(tǒng)GIS雖然在功能上已經(jīng)比較成熟,但是由于這些系統(tǒng)多是基于十多年前的軟件技術(shù)開發(fā)的,屬于獨(dú)立封閉的系統(tǒng)。同時(shí),GIS軟件變得日益龐大,用戶難以掌握,費(fèi)用昂貴,阻礙了GIS的普及和應(yīng)用。組件式GIS的出現(xiàn)為傳統(tǒng)GIS面臨的多種問題提供了全新的解決思路。

2 組件式GIS
2.1 組件式GIS的基本思想及特點(diǎn)
    組件式GIS(Components GIS,以下簡(jiǎn)稱ComGIS)是指基于組件對(duì)象平臺(tái),具有標(biāo)準(zhǔn)的接口,允許跨語言應(yīng)用,因而使GIS軟件的可配置性、可擴(kuò)展性和開放性更強(qiáng),使用更靈活,二次開發(fā)更方便。其基本思想是把GIS的各大功能模塊劃分為幾個(gè)控件,每個(gè)控件完成不同的功能。各個(gè)GIS控件之間,以及GIS控件與其它非GIS控件之間,可以方便地通過可視化的軟件開發(fā)工具集成起來,形成最終的GIS應(yīng)用。

    把GIS的功能適當(dāng)抽象,以組件形式供開發(fā)者使用,將會(huì)帶來許多傳統(tǒng)GIS工具無法比擬的優(yōu)點(diǎn)。主要優(yōu)點(diǎn):
(1)小巧靈活、價(jià)格適中,性價(jià)比高;
(2)無須利用專門GIS開發(fā)語言,可直接嵌入MIS開發(fā)工具進(jìn)行開發(fā);
(3)可以實(shí)現(xiàn)強(qiáng)大的GIS功能;
(4)開發(fā)更簡(jiǎn)捷,代碼實(shí)現(xiàn)簡(jiǎn)易。

2.2 目前流行的組件式GIS軟件平臺(tái)

    目前應(yīng)用比較廣泛的是:MapInfo開發(fā)的MapX以及ERIS公司開發(fā)的MapObjects。下面將重點(diǎn)對(duì)利用MapInfo公司開發(fā)的MapX進(jìn)行GIS軟件開發(fā)特點(diǎn)以及主要過程進(jìn)行分析。

    MapX是具有強(qiáng)大地圖分析功能的ActiveX控件產(chǎn)品,能支持絕大多數(shù)標(biāo)準(zhǔn)的可視化開發(fā)環(huán)境如Visual C++、VisualBasic、Delphi、PowerBuilder等。編程人員在開發(fā)過程中可以選用自己最熟悉的開發(fā)語言,輕松地將地圖功能嵌入到應(yīng)用中,并且可以脫離MapInfo的軟件平臺(tái)運(yùn)行。MapX提供了各種工具、屬性和方法,熟練的運(yùn)用這些工具、屬性、方法通過編程可以滿足不同開發(fā)需求。

    用MapX開發(fā)ComGIS系統(tǒng)的基本方法如下圖1示:

2.3 MapX簡(jiǎn)介
2.3.1 MapX的數(shù)據(jù)組織
    MapX中的數(shù)據(jù)分為空間數(shù)據(jù)和屬性數(shù)據(jù).其中圖形矢量數(shù)據(jù)以MapInfo標(biāo)準(zhǔn)文件格式.tab存貯和管理,屬性數(shù)據(jù)用關(guān)系數(shù)據(jù)庫進(jìn)行管理,屬性數(shù)據(jù)和空間數(shù)據(jù)之間通過目標(biāo)標(biāo)識(shí)進(jìn)行關(guān)聯(lián)。空間數(shù)據(jù)在MapX控件中采用分層存放的結(jié)構(gòu),每張單獨(dú)的地圖被表示成一個(gè)圖層,每個(gè)圖層存儲(chǔ)為4個(gè)基本文件:屬性數(shù)據(jù)的表結(jié)構(gòu)文件.tab,屬性數(shù)據(jù)文件.dat,交叉索引文件.id,空間數(shù)據(jù)文件.map. 這種分層存放的結(jié)構(gòu),可以提高圖形的搜索速度,便于各種不同數(shù)據(jù)的靈活調(diào)用、更新和管理。屬性數(shù)據(jù)是用來反映與空間實(shí)體相對(duì)應(yīng)的屬性,在系統(tǒng)中用關(guān)系數(shù)據(jù)庫的二維關(guān)系表進(jìn)行存儲(chǔ)和管理。

2.3.2  MapX的模型結(jié)構(gòu)
    MapX組件的基本組成單元是Object(單個(gè)對(duì)象)和Collection(集合)。其中集合包括對(duì)象,是多個(gè)對(duì)象的組合。每種對(duì)象和集合負(fù)責(zé)處理地圖某一方面的功能.位于頂層的是Map對(duì)象,Layers、DataSets、Annotations是Map對(duì)象下面的3個(gè)重要的分支。其中Layer主要用于操作地圖的圖層,DataSet用于實(shí)現(xiàn)地圖與數(shù)據(jù)的綁定,訪問空間數(shù)據(jù)表,Annotation用于在地圖上增加文本或者符號(hào)。

3 利用VB,MapX,SQL開發(fā)ComGIS系統(tǒng)
    結(jié)合筆者所開發(fā)的一個(gè)電力地理信息系統(tǒng)來看如何開發(fā)ComGIS系統(tǒng)。

3.1 編輯功能實(shí)現(xiàn)
    ?屬性數(shù)據(jù)的編輯
    包括對(duì)高壓線路,配電線路,電力電纜線路,變電站,配電變壓器,道路,建筑物,行政區(qū)域等屬性數(shù)據(jù)庫表的錄入與修改。可采用SQL Server等關(guān)系數(shù)據(jù)庫來存儲(chǔ),這樣便于數(shù)據(jù)的維護(hù)和共享使用。

    ?圖形數(shù)據(jù)的編輯
    包括對(duì)圖形對(duì)象點(diǎn),線,面錄入與修改,以及對(duì)其風(fēng)格進(jìn)行編輯。
    GeoSet是在Geo Manager中建立好的GST文件,是圖層及其設(shè)置的集合,控制程序中顯示的地圖,對(duì)圖層進(jìn)行編輯和管理.通過對(duì)GeoSet屬性賦值可方便的引入所需的地圖集,并在引入的同時(shí)對(duì)Map對(duì)象初始化。
    Map1.GetSet=opendialog1.filename               // 從地圖文件夾中引入地圖
    對(duì)于由圖層組織起來的MapX地圖,可通過對(duì)圖層的創(chuàng)建、增加、刪除、移動(dòng)、縮放等來編輯,還可以創(chuàng)建用于實(shí)時(shí)跟蹤的活動(dòng)圖層和可繪制特殊圖形的用戶自定義圖層。
    Set lyrMyLayer=Map1.Layers.CreateLayer("MyLayer", , 1)  // 新創(chuàng)建一個(gè)圖層
    Set Map1.Layers.AnimationLayer=lyrMyLayer        // 將新建的圖層設(shè)置為活動(dòng)圖層
    通過MapX提供給用戶的一些通用工具,對(duì)Map對(duì)象的Current Tool屬性賦值,可方便的實(shí)現(xiàn)一些諸如放大、縮小、漫游等多種GIS基本操作功能。還可以使用自定義工具來增強(qiáng)這方面的功能。
    Map1.ZoomTo(x1,y1,x2,y2);       // 將地圖窗口縮放到某一特定位置
    Map1.Rotation=45;               // 將當(dāng)前地圖窗口旋轉(zhuǎn)45度
    Map1.CurrentTool=miPanTool;     // 實(shí)現(xiàn)地圖漫游
    Map1.CurrentTool=miLableTool;   // 指定位置加標(biāo)注
    Map1.CreateCustomTool MyTool,miToolTypeLine,miSizeAllCursor // 創(chuàng)建標(biāo)尺工具
    MapX提供了四種類型的Feature對(duì)象:區(qū)域、點(diǎn)、線、文本可通過訪問、修改、刪除及自定義feature對(duì)象的各種屬性來實(shí)現(xiàn)對(duì)地圖的編輯。
    Dim f As MapXLib.Feature
    Dim ps As MapXLib.Points
    ps.AddXY x1,y1
    ps.AddXY x2,y2                                    // 畫線
    Setf=Map1.Layers(1).AddFeature(Map1.FeatureFactory.CreateLine(ps,Map1.DefaultStyle))

3.2 查詢功能實(shí)現(xiàn)
    MapX以Dataset對(duì)象提供的方法進(jìn)行數(shù)據(jù)綁定,實(shí)現(xiàn)與數(shù)據(jù)庫交互,從而實(shí)現(xiàn)對(duì)圖形的屬性信息查詢或通過屬性信息查詢空間目標(biāo)。對(duì)于設(shè)備等的信息管理,可根據(jù)圖庫數(shù)據(jù)一致性對(duì)圖形和屬性進(jìn)行空間查詢。
    數(shù)據(jù)綁定:   Dim parm As New ODBCQueryInfo
                       parm.SqlQuery = "select * from 數(shù)據(jù)表名"
                       parm.DataSource = "數(shù)據(jù)庫名 "      // ODBC數(shù)據(jù)源名字
                       parm.ConnectString = "ODBC; "
                       Set ds = Map.Datasets.Add(miDataSetODBC, parm) 
    區(qū)域查詢:可查詢?nèi)魏我粋€(gè)區(qū)域圖元中編輯圖層在該區(qū)域中的圖元數(shù),既可實(shí)時(shí)顯示某一范圍內(nèi)的各種需要的地理信息,又可通過這種方式來判斷地理元素之間的相對(duì)位置及關(guān)系,從而進(jìn)一步分析基于地理接線圖的空間連接關(guān)系,實(shí)現(xiàn)網(wǎng)絡(luò)分析,跟蹤和動(dòng)態(tài)著色。
    //查詢編輯圖層上矩形區(qū)域內(nèi)圖元
    Dim rect As MapXLib.Rectangle
    Dim curFeatures As MapXLib.Features
    rect.set(x1,y1,x2,y2)
    Set curFeatures = searchLayer.SearchWithinRectangle(rect,searchType)
    查找定位:確定查找圖層,找到匹配圖元并將地圖放大,查找結(jié)果定位到地圖中央。
    Dim FindObj As MapXLib.Find     //據(jù)數(shù)據(jù)庫中的字段值進(jìn)行查找定位
    Dim FoundFeature As FindFeature
    Set FindObj = Map1.Layers("圖層名稱").Find
    Set FindObj.FindDataset = Map1.Datasets("圖層名稱"&"dataset")
    Set FindObj.FindField = FindObj.FindDataset.Fields("域名")
    Set FoundFeature = FindObj.Search ("域值")
    If (FoundFeature.FindRC Mod 10 = 1) Then
    Map1.Zoom To 縮放值, FoundFeature.CenterX, FoundFeature.CenterY

3.3 分析功能實(shí)現(xiàn)
    ?地理運(yùn)算
    測(cè)量?jī)蓚€(gè)地理對(duì)象間的直線、折線距離等地理運(yùn)算,需要注意的是鼠標(biāo)在MapX組件中截獲的點(diǎn)的坐標(biāo)是屏幕坐標(biāo),而在計(jì)算中我們往往是使用MapX中的地理坐標(biāo)系,所以坐標(biāo)轉(zhuǎn)換是經(jīng)常而且必要的步驟。Map1.CreateCustomTool (CUSTOM_MEASURE_TOOL,miToolTypeLine,miCrossCursor,miArrowCursor,
miArrowCursor,unusedParam)//自定義客戶工具
Private Sub Form_MouseMove (Button As Integer,Shift As Integer, X As Single, Y As Single)
  ……
  If Map1.CurrentTool=CUSTOM_MEATURE_TOOL Then
    Map1.ConvertCoord x1, y1, Coordx1,Coordy1, miScreenToMap
    distance=Map1.Distance(XDown,YDown,Coordx1,Coordy1)   // 對(duì)兩點(diǎn)距離進(jìn)行計(jì)算
   End If
End Sub

    ?空間分析
    系統(tǒng)支持空間對(duì)象的緩沖區(qū)分析及多種專題圖分析(范圍值專題圖、獨(dú)立值專題圖、點(diǎn)密度專題圖、等級(jí)符號(hào)專題圖、直方圖專題圖、餅圖專題圖)。可根據(jù)數(shù)據(jù)庫中不同字段生成相應(yīng)專題圖,通過選擇不同的專題圖種類,得到各種直觀的專題圖信息。
     Dataset.Themes.Add (專題圖類型,字段名,專題圖名稱)
Legend對(duì)象用于修改專題地圖的圖例;Themeproperties用于修改專題圖的顯示屬性.還可利用專題圖來動(dòng)態(tài)顯示帶電區(qū)、停電區(qū)和恢復(fù)路徑,基于某一屬性可表達(dá)出不同的區(qū)域及線對(duì)象。

3.4 地圖導(dǎo)出的實(shí)現(xiàn)
    MapX以矢量化的形式,將地圖對(duì)象存儲(chǔ)在地圖文件,只有在安裝了MapX或Mapinfo相應(yīng)產(chǎn)品的客戶機(jī)上才能夠顯示地圖,而利用MapX提供的導(dǎo)出功能,將地圖對(duì)象轉(zhuǎn)換成BMP等標(biāo)準(zhǔn)的光柵圖形格式,就可供其他應(yīng)用程序使用了。
   Map1.ExportMap(Location,Format,[W],[H])  Location:導(dǎo)出后的光柵圖像文件名
                                            Format:導(dǎo)出時(shí)的格式
   [W]:導(dǎo)出時(shí)的橫向放大倍數(shù)   [H]:導(dǎo)出時(shí)的縱向放大倍數(shù)
  Map1.ExportMap("c:\pincture\pic1.jpg",miFormatJPEG,2,2),則將當(dāng)前地圖導(dǎo)出到c:\picture\pic1.jpg文件中,并將地圖縱,橫同時(shí)放大為原來的兩倍

4 結(jié)束語
    在實(shí)際的開發(fā)過程中可以根據(jù)具體的需要來選擇開發(fā)方式。筆者利用MapX和VB,SQL實(shí)現(xiàn)的電力GIS系統(tǒng),不僅開發(fā)周期短,而且系統(tǒng)運(yùn)行穩(wěn)定,具有很好的可擴(kuò)充性。相信隨著GIS技術(shù)的發(fā)展以及市場(chǎng)需求不斷增加,組件式GIS技術(shù)會(huì)得到更廣泛的應(yīng)用。

熱點(diǎn)新聞

推薦產(chǎn)品

x
  • 在線反饋
1.我有以下需求:



2.詳細(xì)的需求:
姓名:
單位:
電話:
郵件:
主站蜘蛛池模板: 国产精品亚洲专区一区 | 国产一区二区三区四区在线 | 成人软件18免费网站 | 亚洲精品久久久久久久网站 | 亚洲码一区二区三区 | 亚洲国产高清在线 | 一本一道久久综合狠狠老 | 国产主播福利精品一区二区 | 免费观看成年的网站 | 国产一级成人毛片 | 九九热视频在线免费观看 | 久久久www成人免费精品 | 国产精品久久久久一区二区 | 亚洲精品不卡在线 | 亚洲精品一区二区三区第四页 | 国产高清视频免费最新在线 | 精品久久中文字幕有码 | 国产精品高清全国免费观看 | 美国三级大片 | 一级a毛片免费观看 | 自偷自偷自亚洲永久 | 国产高中生粉嫩无套第一次 | 欧美69精品国产成人 | 欧美激情中文字幕 | 成人午夜在线 | 亚洲美色综合天天久久综合精品 | 国产一级做a爱免费观看 | 久草在在线视频免费 | 全部孕妇毛片丰满孕妇孕交 | 萝控精品福利视频一区 | 久久久久久久久久毛片精品美女 | 日本手机在线视频 | 欧美一级成人 | 秘书高跟黑色丝袜国产91在线 | 国产aⅴ一区二区三区 | 国产一级免费视频 | 国内自拍亚洲 | 欧美日韩一区二区三区免费 | 美女白浆视频 | 免费a级毛片无码 | 天堂资源8中文最新版在线 天堂最新版 |