• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      MapInfo二次開發(fā)在坐標(biāo)轉(zhuǎn)換中的應(yīng)用

      2011-11-15 03:29:50毛之琳
      測繪通報 2011年12期
      關(guān)鍵詞:檢核二次開發(fā)重合

      李 東,毛之琳

      (國家測繪地理信息局大地測量數(shù)據(jù)處理中心,陜西西安710054)

      MapInfo二次開發(fā)在坐標(biāo)轉(zhuǎn)換中的應(yīng)用

      李 東,毛之琳

      (國家測繪地理信息局大地測量數(shù)據(jù)處理中心,陜西西安710054)

      在VC++環(huán)境下運用MapInfo軟件進(jìn)行二次開發(fā),編制坐標(biāo)轉(zhuǎn)換程序。利用OLE技術(shù)與MapInfo建立聯(lián)系,實現(xiàn)坐標(biāo)轉(zhuǎn)換的地理信息處理功能,使用戶直觀了解轉(zhuǎn)換區(qū)域位置、大小、點位分布及轉(zhuǎn)換殘差情況,并可在圖中對重合點進(jìn)行取舍。

      坐標(biāo)轉(zhuǎn)換;OLE;二次開發(fā)

      一、引 言

      測繪工程中經(jīng)常涉及坐標(biāo)轉(zhuǎn)換處理的問題,而轉(zhuǎn)換精度的高低將直接影響著工程質(zhì)量。轉(zhuǎn)換精度除與數(shù)學(xué)模型有關(guān)外,更主要是與重合點分布、精度、個數(shù)等因素有關(guān)。即使程序輸出的轉(zhuǎn)換成果精度很高,但因重合點采用不當(dāng),轉(zhuǎn)換成果質(zhì)量也將受到質(zhì)疑。坐標(biāo)轉(zhuǎn)換的實質(zhì)是為了尋找最佳轉(zhuǎn)換參數(shù),是不斷對重合點進(jìn)行取舍的過程。準(zhǔn)確判斷重合點的數(shù)量及分布是否達(dá)到要求,找出粗差點所在位置并剔除是轉(zhuǎn)換處理的重要環(huán)節(jié)。如果坐標(biāo)轉(zhuǎn)換與圖形相脫節(jié),各種點位及殘差分布不清,容易造成轉(zhuǎn)換成果的質(zhì)量問題。筆者在VC++環(huán)境下集成MapInfo編制坐標(biāo)轉(zhuǎn)換程序,將坐標(biāo)轉(zhuǎn)換與圖形有效地結(jié)合,不僅可實現(xiàn)地理信息二次開發(fā)的放大、選擇、平移等基本功能,而且可實現(xiàn)繪制點位分布圖和轉(zhuǎn)換殘差圖,并可對重合點和外檢點進(jìn)行增刪。通過顯示行政區(qū)圖和基本比例尺地形圖范圍,可清楚了解轉(zhuǎn)換區(qū)域位置及大小,使坐標(biāo)轉(zhuǎn)換處理更加直觀容易。

      二、坐標(biāo)轉(zhuǎn)換基本原理

      坐標(biāo)轉(zhuǎn)換的基本原理是利用兩種不同坐標(biāo)系重合點坐標(biāo)和數(shù)學(xué)模型,通過最小二乘法獲取最小殘差的轉(zhuǎn)換參數(shù),然后利用轉(zhuǎn)換參數(shù)計算待定點坐標(biāo)[1-2]。

      1.數(shù)學(xué)模型

      坐標(biāo)轉(zhuǎn)換常用的數(shù)學(xué)模型有平面四參數(shù)模型和Brush七參數(shù)模型,基本可滿足各種坐標(biāo)轉(zhuǎn)換的需要。以平面四參數(shù)模型為例

      式中,x0、y0為平移參數(shù);α為旋轉(zhuǎn)參數(shù);m為尺度參數(shù);(x2,y2)為輸出平面直角坐標(biāo);(x1,y1)為輸入平面直角坐標(biāo)。

      2.重合點選取原則

      不同坐標(biāo)系轉(zhuǎn)換的前提條件是轉(zhuǎn)換區(qū)域應(yīng)具備一定數(shù)量、分布均勻的重合點。應(yīng)選擇有代表性的高精度重合點作為轉(zhuǎn)換之用,要求重合點的點位分布均勻,具有一定密度,盡量選取控制網(wǎng)的起始點和高等級的控制點,在待轉(zhuǎn)換點周圍、內(nèi)部都要有重合點。必要時選定部分均勻分布的重合點作為外部檢核點,對轉(zhuǎn)換精度進(jìn)行檢核。一般當(dāng)轉(zhuǎn)換范圍不超過4個1∶100 000圖幅時,重合點至少應(yīng)選擇5個,外部檢核點不少于5個,且要求均勻分布、能覆蓋轉(zhuǎn)換區(qū)域,考慮到重合點中可能存在粗差點,需要選擇多余點作為備用點??傊?,一般轉(zhuǎn)換參數(shù)不能用于外推計算,待定點應(yīng)位于重合點范圍之內(nèi)。

      3.精度估計

      (1)轉(zhuǎn)換參數(shù)精度估計

      利用重合點轉(zhuǎn)換回代誤差,評定轉(zhuǎn)換解算精度。

      轉(zhuǎn)換殘差(V)=已知點平面坐標(biāo)-轉(zhuǎn)換回代平面坐標(biāo)

      轉(zhuǎn)換(殘差)中誤差

      式中,n為重合點個數(shù)。

      (2)外部檢驗

      低精度成果向高精度坐標(biāo)轉(zhuǎn)換時,低精度成果應(yīng)盡可能附合到高精度成果上,設(shè)立合理外部檢核點是驗證轉(zhuǎn)換精度的有效方法之一,部分重合點不參加轉(zhuǎn)換而用于外符合精度檢核,外部檢核點誤差σ為

      式中,m為檢核點個數(shù);Δ為檢核點轉(zhuǎn)換坐標(biāo)與其已知值之差。

      當(dāng)?shù)途瘸晒蚋呔茸鴺?biāo)轉(zhuǎn)換時,坐標(biāo)轉(zhuǎn)換精度要通過外部檢核點誤差與轉(zhuǎn)換(殘差)中誤差來全面衡量,當(dāng)兩者數(shù)值接近時,認(rèn)為坐標(biāo)轉(zhuǎn)換精度是可靠的。

      三、程序設(shè)計

      1.MapInfo二次開發(fā)功能

      (1)VC++與MapInfo集成技術(shù)

      跨平臺集成地圖開發(fā)是在Windows環(huán)境下,將利用VC++編制的應(yīng)用程序,通過調(diào)用語句來啟動后臺MapInfo應(yīng)用程序。集成程序首先構(gòu)造MapBasic語句的字符串,使用對象連接與嵌入技術(shù)(object linking and embedding,OLE)將該字符串發(fā)送給MapInfo來控制MapInfo的運行[3],其調(diào)用關(guān)系如圖1所示。

      圖1 用戶程序與MapInfo調(diào)用關(guān)系

      (2)在VC++環(huán)境下通過OLE控制MapInfo

      VC中集成地圖技術(shù)是利用OLE自動化技術(shù)中的Do、Eval等方法,通過向MapInfo發(fā)送一系列命令或取得返回信息實現(xiàn)應(yīng)用程序與MapInfo之間交流。具體方法有以下4種。

      1)Do方法:向MapInfo發(fā)送特殊字符串命令,將一個字符串解釋為MapBasic語句并執(zhí)行,并且不返回參數(shù)。如顯示殘差圖zdtw

      mapinfo.Do(″set map layer zdtw display graphic″);

      2)Eval方法:向MapInfo發(fā)送特殊字符串命令,將一個表達(dá)式解釋為MapBasic表達(dá)式并返回表達(dá)式的值,即一個字符串。如返回圖中選擇的點名

      char te[30];

      strcpy(te,mapinfo.Eval(″selection.點名″));

      3)RunCommand方法:使用方法完全同Do方法,直接執(zhí)行嵌入的所有MapBasic支持的命令,不返回值。

      4)RunMenuCommand方法:執(zhí)行定義好的標(biāo)準(zhǔn)命令。如圖形放大

      mapinfo.RunMenuCommand(1705);

      2.坐標(biāo)轉(zhuǎn)換集成地圖的方法

      關(guān)于VC++中集成MapInfo地圖的具體步驟,文獻(xiàn)[4-5]對此作過較為詳細(xì)的論述,在此不再贅述。坐標(biāo)轉(zhuǎn)換與地圖結(jié)合需要解決的主要問題是轉(zhuǎn)換處理數(shù)據(jù)如何以地圖形式反映出來,以及地圖上的數(shù)據(jù)如何反饋到轉(zhuǎn)換數(shù)據(jù)文件中。

      (1)解決問題的思路

      坐標(biāo)轉(zhuǎn)換處理通過輸出點位圖和殘差圖數(shù)據(jù),調(diào)用后臺MapInfo應(yīng)用程序生成點位分布圖和殘差圖,完成轉(zhuǎn)換數(shù)據(jù)向地圖的轉(zhuǎn)變。通過OLE控制MapInfo取得返回信息,將圖面提取信息反饋到轉(zhuǎn)換數(shù)據(jù)文件中,從而實現(xiàn)坐標(biāo)轉(zhuǎn)換與地圖的結(jié)合。

      (2)程序流程圖

      程序流程圖如圖2所示。首先,從文件中讀取轉(zhuǎn)換數(shù)據(jù),經(jīng)坐標(biāo)轉(zhuǎn)換計算,輸出畫點位圖和殘差圖數(shù)據(jù)文本文件;然后啟動MapInfo調(diào)用MapBasic繪圖應(yīng)用程序;最后生成MapInfo點位分布圖表和殘差圖表,并加以顯示。如果轉(zhuǎn)換沒有達(dá)到要求,對重合點進(jìn)行取舍,然后返回重新讀入轉(zhuǎn)換數(shù)據(jù),再重復(fù)以上步驟,直到達(dá)到轉(zhuǎn)換要求,輸出成果。

      圖2 程序流程圖

      (3)生成點位分布圖和殘差圖

      調(diào)用MapBasic編制的繪圖應(yīng)用程序,分別生成點位分布圖和殘差圖

      mapinfo.Do(″Run Application″zdt.mbx″″);∥zdt.mbx為繪圖應(yīng)用程序

      1)生成點位分布圖程序

      2)生成點位殘差圖程序

      (4)刪除與添加重合點方法

      尋找最佳轉(zhuǎn)換參數(shù)時,需要不斷對重合點進(jìn)行刪除和添加。刪除重合點的方法是在轉(zhuǎn)換數(shù)據(jù)文件中找到要刪除的重合點,在點名前加入“*”號作為刪除標(biāo)志,當(dāng)程序讀入轉(zhuǎn)換數(shù)據(jù),遇見帶有“*”號的點不讀跳過,相當(dāng)于刪除該重合點;添加重合點方法是在已有“*”號的點名前去掉星號,恢復(fù)該重合點地位,相當(dāng)于添加。同理,對于外部檢核點,其刪除標(biāo)志為“@”號。具體實現(xiàn)方法:首先點擊工具欄中“選擇”按鈕,再從顯示點位分布圖中,選中要刪除的點,程序自動在轉(zhuǎn)換數(shù)據(jù)文件中查找相應(yīng)的點名,并在其點名前添加“*”號,程序再重新讀入轉(zhuǎn)換數(shù)據(jù)文件,從而完成對重合點的刪除操作

      為了區(qū)別圖中重合點和被刪除點,MapBasic程序?qū)λ鼈冑x予不同標(biāo)志,重合點標(biāo)志為五角星,而被刪除點標(biāo)志為三角形

      四、算例演示

      以某城市GPS點的2000國家大地坐標(biāo)系坐標(biāo)向1980西安坐標(biāo)系坐標(biāo)的轉(zhuǎn)換為例,其中B1、B3、B4、B5、B6、B7為重合點,其余為待轉(zhuǎn)換點,轉(zhuǎn)換計算如圖3、圖4所示。

      圖3 坐標(biāo)轉(zhuǎn)換計算

      圖4 坐標(biāo)轉(zhuǎn)換殘差分布圖

      圖4顯示了重合點和待轉(zhuǎn)換點的分布情況,橢圓反映了重合點轉(zhuǎn)換殘差的大小,B3點殘差最大,橢圓也最大;同時顯示1∶100 000圖幅范圍作為比較參照物,用戶可以判斷轉(zhuǎn)換區(qū)域的大小、位置和圖幅號信息,B2點為被剔除的重合點。

      五、結(jié)束語

      從實用性和方便性出發(fā),在VC++環(huán)境下集成利用MapInfo開發(fā)的坐標(biāo)轉(zhuǎn)換程序,凸顯了圖形功能,能夠直觀了解轉(zhuǎn)換區(qū)域的地理位置、大小、所在圖幅、點數(shù)量及分布情況,便于準(zhǔn)確判斷重合點分布是否合理。在圖上以橢圓形式反映轉(zhuǎn)換殘差大小,并可對重合點和外檢點進(jìn)行取舍,有助于尋找最佳轉(zhuǎn)換參數(shù),使坐標(biāo)轉(zhuǎn)換處理更加直觀,進(jìn)一步保證了成果質(zhì)量。

      [1] 施一民.現(xiàn)代大地控制測量[M].北京:測繪出版社,2003.

      [2] 程鵬飛,成英燕,文漢江,等.2000國家大地坐標(biāo)系實用寶典[M].北京:測繪出版社,2008.

      [3] 劉光.地理信息系統(tǒng)二次開發(fā)教程:語言篇[M].北京:清華大學(xué)出版社,2003.

      [4] 聶田.MapInfo在 VC++中的集成及其鷹眼的實踐[J].科技信息:學(xué)術(shù)研究,2007(15):279.

      [5] 顏輝武,徐智勇,祝國瑞.VC++中MapInfo的跨平臺集成地圖技術(shù)的實現(xiàn)[J].測繪工程,2002,9(3): 14-17.

      Application of Secondary Development of MapInfo in Coordinate Transformation

      LI Dong,MAO Zhilin

      0494-0911(2011)12-0058-03

      P282.2

      B

      2010-12-06

      李 東(1958—),男,山東濰坊人,高級工程師,主要從事大地測量數(shù)據(jù)處理及應(yīng)用程序開發(fā)等工作。

      猜你喜歡
      檢核二次開發(fā)重合
      從“檢核”到“鷹架”
      垂直荷載木結(jié)構(gòu)大跨屋頂設(shè)計
      淺談基于Revit平臺的二次開發(fā)
      甘肅科技(2020年20期)2020-04-13 00:30:02
      淺談Mastercam后處理器的二次開發(fā)
      模具制造(2019年3期)2019-06-06 02:11:02
      西門子Easy Screen對倒棱機(jī)床界面二次開發(fā)
      電力系統(tǒng)單回線自適應(yīng)重合閘的研究
      電子制作(2017年10期)2017-04-18 07:23:07
      檢核目錄法的研究與應(yīng)用—以書架設(shè)計為例
      福建省廈門第一中學(xué)黃建通老師:中學(xué)生創(chuàng)新思維課程引入“奧斯本檢核表技法”
      新校長(2016年8期)2016-01-10 06:43:49
      考慮暫態(tài)穩(wěn)定優(yōu)化的自適應(yīng)重合閘方法
      基于Pro/E二次開發(fā)的推土鏟參數(shù)化模塊開發(fā)
      家居| 尼勒克县| 大安市| 冷水江市| 全椒县| 诏安县| 乌兰察布市| 清流县| 措美县| 阿荣旗| 镇平县| 大石桥市| 通河县| 周宁县| 安阳县| 南宫市| 河源市| 黑龙江省| 陇川县| 静安区| 湄潭县| 高阳县| 大邑县| 开封县| 大洼县| 区。| 万年县| 遵化市| 双流县| 康马县| 怀远县| 托克托县| 尼木县| 巢湖市| 昭通市| 永年县| 桓台县| 江安县| 苏尼特左旗| 和田县| 杭锦旗|