国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于SuperMap Object.NET的二三維一體化態(tài)勢(shì)標(biāo)繪系統(tǒng)研究與應(yīng)用

2014-04-29 01:12王洪昌劉禹鑫
安徽農(nóng)業(yè)科學(xué) 2014年26期
關(guān)鍵詞:森林防火

王洪昌 劉禹鑫

摘要 態(tài)勢(shì)標(biāo)繪指在地圖背景上標(biāo)繪各種具有空間特征的事、物的分布狀態(tài)或行動(dòng)部署。給出了態(tài)勢(shì)標(biāo)繪系統(tǒng)中實(shí)現(xiàn)各種標(biāo)繪符號(hào)算法的關(guān)鍵技術(shù),提出并實(shí)現(xiàn)了基于SuperMap Object.NET的二三維一體化態(tài)勢(shì)標(biāo)繪系統(tǒng)的集成應(yīng)用,并將成果成功應(yīng)用于黑龍江省森林防火電子沙盤指揮系統(tǒng)中,有效提高了系統(tǒng)態(tài)勢(shì)標(biāo)繪的表現(xiàn)效果。

關(guān)鍵詞 態(tài)勢(shì)標(biāo)繪;SuperMap Object.NET;二三維一體化;森林防火

中圖分類號(hào) S126 文獻(xiàn)標(biāo)識(shí)碼 A 文章編號(hào) 0517-6611(2014)26-09222-03

Research and Application of Two or Three Dimensional Integration Posture Plotting System Based on SuperMap Object.NET

WANG Hong-chang et al

(Heilongjiang Geomatics Center of State Bureau of Surveying and Mapping, Harbin, Heilongjiang 150081)

Abstract Posture plotting means to mark various spatial phenomena and objects on a map to describe some events or object distribution. This paper gives a key technology of algorithm to realize various plotting symbol in posture plotting system, propose and realize the application of two or three dimensional integration with posture plotting system based on SuperMap Object.NET, and the achievement is successful used for Heilongjiang Province forest-fire prevention electronic sand table command system, improves the performance effect of posture plotting in system.

Key words Posture plotting; SuperMap Object.NET; Two or three dimensional integration; Forest-fire prevention

態(tài)勢(shì)標(biāo)繪系統(tǒng)是地理信息系統(tǒng)中應(yīng)具備的基本功能,是指在地圖背景上標(biāo)繪各種具有空間特征的事、物的分布狀態(tài)或行動(dòng)部署[1]。目前,在國(guó)內(nèi)外優(yōu)秀的GIS軟件系統(tǒng)中,如ArcGIS、SuperMap等,都對(duì)態(tài)勢(shì)標(biāo)繪提供了基本的開(kāi)發(fā)接口,但態(tài)勢(shì)標(biāo)繪符號(hào)種類繁多,如商文俊等歸納起來(lái)一共分為5類:基本圖元、態(tài)勢(shì)區(qū)域、態(tài)勢(shì)箭頭、級(jí)別、象形符號(hào)[1]。傳統(tǒng)GIS軟件提供的開(kāi)發(fā)接口不能完全滿足開(kāi)發(fā)需要,在實(shí)現(xiàn)諸如態(tài)勢(shì)區(qū)域、態(tài)勢(shì)箭頭、引線標(biāo)注等復(fù)雜標(biāo)繪符號(hào)時(shí)還存在一定的困難,該研究給出了相關(guān)實(shí)現(xiàn)復(fù)雜標(biāo)繪符號(hào)的具體實(shí)現(xiàn)算法。

此外,二維GIS技術(shù)歷經(jīng)了一個(gè)比較長(zhǎng)的發(fā)展過(guò)程,目前所能實(shí)現(xiàn)的功能都趨于穩(wěn)定和完善;而三維GIS技術(shù)已成為當(dāng)前GIS技術(shù)發(fā)展的潮流,引領(lǐng)著新一代GIS技術(shù)和應(yīng)用的巨大變革。雖然當(dāng)前三維GIS發(fā)展迅速,但也存在著許多的應(yīng)用缺陷,尤其在數(shù)據(jù)上,三維GIS與二維GIS存在數(shù)據(jù)不兼容的狀況,在應(yīng)用上往往是二維一套數(shù)據(jù)而三維一套數(shù)據(jù),造成了數(shù)據(jù)的嚴(yán)重冗余,加大了系統(tǒng)在開(kāi)發(fā)、更新和維護(hù)上的難度[2-3]。SuperMap Object.NET提供的二三維一體化技術(shù)解決了GIS系統(tǒng)二維與三維中數(shù)據(jù)不兼容的問(wèn)題。為此,筆者在SuperMap Object.NET基礎(chǔ)實(shí)現(xiàn)了態(tài)勢(shì)標(biāo)繪系統(tǒng)的二三維數(shù)據(jù)一體化應(yīng)用。

1 SuperMap Object.NET 介紹

SuperMap Object.NET是超圖公司開(kāi)發(fā)的GIS系列軟件中的基礎(chǔ)桌面開(kāi)發(fā)平臺(tái),目前最新的版本是SuperMap iObjects.NET 7C。 利用SuperMap Object.NET用戶能夠簡(jiǎn)單快捷地在各種應(yīng)用系統(tǒng)中嵌入地圖應(yīng)用功能,大大增強(qiáng)了應(yīng)用系統(tǒng)的可操作度和空間分析能力[4]。

SuperMap Object.NET提供的二三維一體化技術(shù)體系能保證二維與三維GIS技術(shù)的無(wú)縫融合,包括二維與三維在數(shù)據(jù)模型、數(shù)據(jù)存儲(chǔ)方案、數(shù)據(jù)管理、符號(hào)、可視化和分析功能的一體化,提供海量二維數(shù)據(jù)直接在三維場(chǎng)景中的高性能可視化、二維分析功能在三維場(chǎng)景中的直接操作和越來(lái)越豐富的三維分析功能。其突破了單純的三維只能查一查、看一看的瓶頸,推動(dòng)三維GIS升華為面向業(yè)務(wù)管理和輔助決策的深度應(yīng)用。該研究采用SuperMap Object.NET提供的二三維一體化技術(shù)解決了態(tài)勢(shì)標(biāo)繪系統(tǒng)中數(shù)據(jù)不統(tǒng)一的問(wèn)題,實(shí)現(xiàn)態(tài)勢(shì)標(biāo)繪系統(tǒng)中各標(biāo)繪符號(hào)在二維系統(tǒng)和三維系統(tǒng)在數(shù)據(jù)存儲(chǔ)、符號(hào)、可視化的全面統(tǒng)一。

2 態(tài)勢(shì)標(biāo)繪系統(tǒng)符號(hào)具體實(shí)現(xiàn)

態(tài)勢(shì)標(biāo)繪目前在國(guó)內(nèi)外研究的技術(shù)比較多,如羅光成提出的軍標(biāo)圖形運(yùn)動(dòng)航跡平滑處理方法研究[5],錢紅林等虛擬戰(zhàn)場(chǎng)環(huán)境三維可視化關(guān)鍵技術(shù)研究[6-7],張欣等提出的戰(zhàn)場(chǎng)態(tài)勢(shì)推演GIS動(dòng)態(tài)表達(dá)技術(shù)與應(yīng)用[8]等。該研究主要給出態(tài)勢(shì)標(biāo)繪系統(tǒng)復(fù)雜符號(hào)繪制的關(guān)鍵技術(shù)及算法。

2.1 基本圖元符號(hào)

基本圖元指簡(jiǎn)單的點(diǎn)、線、面等要素對(duì)象。這些要素對(duì)象的繪制在大多數(shù)GIS平臺(tái)(如ArcGIS、SuperMap)中都有接口提供,所要指出的是在繪制完成后需要對(duì)要素對(duì)象進(jìn)行符號(hào)化處理并且能對(duì)單個(gè)要素進(jìn)行個(gè)性化符號(hào)定制,在GIS平臺(tái)中普通圖層一般是對(duì)整個(gè)圖層的所有要素對(duì)象進(jìn)行符號(hào)化定制,不能對(duì)單個(gè)要素對(duì)象進(jìn)行符號(hào)化定制,可以采用專題圖方式解決這個(gè)問(wèn)題,例如ArcGIS、SuperMap等平臺(tái)提供的單值專題圖方式,或SuperMap平臺(tái)提供的自定義專題圖等。

2.2 態(tài)勢(shì)區(qū)域

態(tài)勢(shì)區(qū)域是指具有空間特征的事、物的分布狀態(tài)在地域上的發(fā)展趨勢(shì)。在態(tài)勢(shì)標(biāo)繪系統(tǒng)中態(tài)勢(shì)區(qū)域往往是不規(guī)則的要素面對(duì)象,可以用簡(jiǎn)單的閉合線或面對(duì)象代表態(tài)勢(shì)區(qū)域?qū)ο?,這些對(duì)象的繪制與符號(hào)化方式與基本圖元的繪制和符號(hào)化方式相同。該研究主要介紹匯聚區(qū)域的繪制方式,匯聚區(qū)域是指形如圖1所示的符號(hào)要素,它用來(lái)表示具有空間特征的事、物的集中分布狀態(tài)。該要素繪制的核心算法如下所示(采用C#語(yǔ)言):

double distance=PlotHelper.distance(startPnt,endPnt);

Point2D midPnt = PlotHelper.getMidPoint(startPnt,endPnt);

Point2D pnt1 = PlotHelper.getThirdPoint(startPnt,midPnt,Math.PI * 1.5,distance / 4.5,PlotHelper.RIGHT_SIDE);

Point2D pnt20 = PlotHelper.getThirdPoint(startPnt,endPnt,0,distance * 0.8,PlotHelper.LEFT_SIDE);

Point2D pnt21 = PlotHelper.getThirdPoint(startPnt,pnt20,Math.PI * 1.5,distance / 5,PlotHelper.LEFT_SIDE);

Point2D pnt30 = PlotHelper.getThirdPoint(startPnt,endPnt,0,distance * 0.45,PlotHelper.LEFT_SIDE);

Point2D pnt3 = PlotHelper.getThirdPoint(startPnt,pnt30,Math.PI * 1.5,distance / 10,PlotHelper.LEFT_SIDE);

Point2D pnt40 = PlotHelper.getThirdPoint(startPnt,endPnt,0,distance * 0.15,PlotHelper.LEFT_SIDE);

Point2D pnt41 = PlotHelper.getThirdPoint(startPnt,pnt40,Math.PI * 1.5,distance / 7,PlotHelper.LEFT_SIDE);

List controlPnts = new List();

controlPnts.Add(startPnt);controlPnts.Add(pnt1);

controlPnts.Add(endPnt);controlPnts.Add(pnt41);

controlPnts.Add(pnt3);controlPnts.Add(pnt21);

List place = PlotHelper.getAdvancedBezierPoints(controlPnts);

2.3 態(tài)勢(shì)箭頭

態(tài)勢(shì)箭頭用來(lái)表示目標(biāo)對(duì)象的行進(jìn)軌跡或移動(dòng)路線。態(tài)勢(shì)箭頭從源地指向目的地,通常情況下不是直線,而是擁有不同弧度的曲線箭頭。因此態(tài)勢(shì)箭頭的繪制要滿足用戶的實(shí)時(shí)形變要求。按照形狀分類,態(tài)勢(shì)箭頭可分為簡(jiǎn)單箭頭、燕尾箭頭、雙箭頭和多箭頭等(圖2)。這幾類箭頭繪制的核心算法基本相同,下面給出具體的核心算法。

List points = new List();

points.AddRange(inpoints);

List arrowPoints = getArrowHeadPoints(points,headHeightFactor,headWidthFactor,neckHeightFactor,neckWidthFactor);

Point2D neckLeftPoint = arrowPoints[0];

Point2D neckRightPoint = arrowPoints[4];

List bodyPoints = getArrowBodyPoints(points,neckLeftPoint,neckRightPoint,tailWidthFactor);

List tailPoints = getArrowTailPoints(points,tailWidthFactor,hasSwallowTail,swallowTailFactor);

Point2D tailLeftPoint = tailPoints[0];

Point2D swallowTailPoint = tailPoints.Count == 3 ? tailPoints[1]: new

Point2D((tailPoints[0].X+tailPoints[1].X)/2,(tailPoints[0].Y+tailPoints[1].Y)/2);

Point2D tailRightPoint = tailPoints.Count == 3 ? tailPoints[2] : tailPoints[1];

int n=bodyPoints.Count;

List lPoints = bodyPoints.GetRange(0,n / 2);

List rPoints = bodyPoints.GetRange(n / 2,n - n / 2);

lPoints.Add(neckLeftPoint);rPoints.Add(neckRightPoint);

lPoints.Reverse();lPoints.Add(tailLeftPoint);rPoints.Reverse();

rPoints.Add(tailRightPoint);lPoints.Add(swallowTailPoint);

rPoints.Add(swallowTailPoint);lPoints.Reverse();

lPoints.AddRange(arrowPoints);lPoints.AddRange(rPoints);

2.4 引線標(biāo)注

引線標(biāo)注指形如圖3所示的符號(hào)要素。它主要用來(lái)對(duì)目標(biāo)對(duì)象進(jìn)行文字的輔助說(shuō)明,如對(duì)作戰(zhàn)指揮的兵力部署、救援隊(duì)伍的詳細(xì)信息、標(biāo)志性建筑物等信息進(jìn)行說(shuō)明等。引線標(biāo)注繪制的具體算法如下所示。

Point2Ds sopts = new Point2Ds();

Point2D topLeftPoint = new Point2D(rect.Left,rect.Top);

Point2D bottomRightPoint = new Point2D(rect.Right,rect.Bottom);

Point2D topRightPoint = new Point2D(bottomRightPoint.X,topLeftPoint.Y);

Point2D bottomLeftPoint = new Point2D(topLeftPoint.X,bottomRightPoint.Y);

Point2D bottomCenterPoint = new Point2D();

Point2D bottomHCenterPoint = new Point2D();

Point2D corePoint = new Point2D();

bottomCenterPoint.X =(bottomLeftPoint.X + bottomRightPoint.X)/ 2;

bottomCenterPoint.Y =(bottomLeftPoint.Y + bottomRightPoint.Y)/ 2;

bottomHCenterPoint.X =(bottomCenterPoint.X + bottomRightPoint.X)/ 2;

bottomHCenterPoint.Y =(bottomCenterPoint.Y + bottomRightPoint.Y)/ 2;

corePoint.X = bottomRightPoint.X;

corePoint.Y = 2 * bottomRightPoint.Y - topRightPoint.Y;

sopts.Add(bottomLeftPoint);sopts.Add(topLeftPoint);

sopts.Add(topRightPoint);sopts.Add(bottomRightPoint);

sopts.Add(bottomHCenterPoint);sopts.Add(corePoint);

sopts.Add(bottomCenterPoint);

GeoRegion region = new GeoRegion();

region.AddPart(sopts);

引線標(biāo)注在繪制完成后,還需要能夠?qū)ζ渌诘奈恢眠M(jìn)行拖拽,使其能精確地指向需要文字說(shuō)明的空間對(duì)象,這需要實(shí)時(shí)根據(jù)圖4所示的錨點(diǎn)和中心點(diǎn)的相對(duì)位置關(guān)系重塑引線標(biāo)注符號(hào)的空間形狀。圖4中錨點(diǎn)和中心點(diǎn)的空間位置關(guān)系按照平面坐標(biāo)可分為8個(gè)位置區(qū)域,在每個(gè)不同的位置區(qū)域中,需要重新繪制引線標(biāo)注對(duì)象。

4 結(jié)語(yǔ)

該研究基于SuperMap Object.NET平臺(tái),通過(guò)其提供的二維一體化技術(shù),給出了態(tài)勢(shì)標(biāo)繪中幾類標(biāo)繪符號(hào)繪制的思路和具體算法,并將其成功應(yīng)用于黑龍江省森林防火電子沙盤指揮系統(tǒng)中,為火災(zāi)撲救提供了輔助決策支持。相信隨著科學(xué)技術(shù)的不斷推進(jìn)和發(fā)展,態(tài)勢(shì)標(biāo)繪系統(tǒng)也將不斷改進(jìn)和升級(jí),并且將應(yīng)用于更多的行業(yè)中。

參考文獻(xiàn)

[1] 商文俊.基于SuperMap Object的地圖標(biāo)繪系統(tǒng)的設(shè)計(jì)實(shí)現(xiàn)[J].電腦知識(shí)與技術(shù),2008,10(28): 137-139.

[2] 陳鵬,林鴻,張鵬程,等.基于SuperMap 6R技術(shù)的二三維一體化研究[J].測(cè)繪,2011,4(2):51-53.

[3] 吳創(chuàng)奇.基于SuperMap的二三位一體化的WebGIS系統(tǒng)開(kāi)發(fā)[J].科技創(chuàng)新導(dǎo)報(bào),2011(21):23.

[4] 施峰,王宏圖,代紀(jì)元,等.基于SuperMap的區(qū)縣礦產(chǎn)資源規(guī)劃數(shù)據(jù)庫(kù)系統(tǒng)研究[J].測(cè)繪與空間地理信息,2013(2):94-95.

[5] 羅光成,楊日杰.軍標(biāo)圖形運(yùn)動(dòng)航跡平滑處理方法研究[J].指揮控制與仿真,2011,33(4):87-89.

[6]

錢紅林,陳國(guó)華,周雯雯.虛擬戰(zhàn)場(chǎng)環(huán)境三維可視化關(guān)鍵技術(shù)研究[J].裝備 學(xué)院學(xué)報(bào),2013,24(4):82-83.

[7] 陶留鋒,邢廷炎,呂建軍.基于BlazeDS 推技術(shù)的即時(shí)協(xié)同標(biāo)繪系統(tǒng)[J].計(jì)算機(jī)應(yīng)用與軟件,2013,30(9):104-105.

[8] 張欣,張立立,曹國(guó)峰,等.戰(zhàn)場(chǎng)態(tài)勢(shì)推演GIS動(dòng)態(tài)表達(dá)技術(shù)與應(yīng)用[J].地球信息科學(xué),2006,8(4):81-82.

猜你喜歡
森林防火
林業(yè)資源保護(hù)和森林防火管理措施探討
西海子管護(hù)站森林防火工作措施
關(guān)于營(yíng)林技術(shù)在森林防火中的應(yīng)用研究
浙江天臺(tái)縣森林防火現(xiàn)狀及預(yù)防對(duì)策
会理县| 黎川县| 丁青县| 荣成市| 宝清县| 朝阳县| 大理市| 虎林市| 福州市| 花莲市| 莱西市| 武胜县| 同仁县| 双江| 当涂县| 樟树市| 仪陇县| 苍山县| 海兴县| 游戏| 皋兰县| 衡南县| 青浦区| 东乌| 耒阳市| 天津市| 内黄县| 大石桥市| 温泉县| 阿坝县| 达拉特旗| 永城市| 五华县| 马龙县| 运城市| 揭东县| 六枝特区| 维西| 涞水县| 综艺| 汽车|