freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

了解mapobjectsword版(編輯修改稿)

2024-09-19 16:05 本頁(yè)面
 

【文章內(nèi)容簡(jiǎn)介】 167。 通過(guò)建立DataConnection、GeoDataset和圖層目標(biāo)及向地圖目標(biāo)的層集中添加數(shù)據(jù)的方法加入矢量地圖數(shù)據(jù)。167。 通過(guò)建立影像層目標(biāo)及向地圖目標(biāo)的層集中影像層的方法顯示影像地圖數(shù)據(jù)以作背景。167。 通過(guò)使用動(dòng)態(tài)跟蹤層目標(biāo)和添加GeoEvent目標(biāo)的方法實(shí)現(xiàn)動(dòng)態(tài)跟蹤。在地圖上畫(huà)層地圖包含許多層?,F(xiàn)在我們要討論MapObjects的各種層目標(biāo)和如何在地圖控件中管理圖層。用戶眼中的圖層地圖的最上方是動(dòng)態(tài)跟蹤層,最下方為地圖控件,中間為層集。層集中圖層目標(biāo)和影像層目標(biāo)可以任意順序排放,但通常影像層顯示在最底層作為背景。以層方式工作十分有意,因?yàn)樗愫苋菀椎倪x取同類(lèi)地物。程序員眼中的層以下是影響顯示地圖數(shù)據(jù)的關(guān)鍵目標(biāo):167。 地圖控件是顯示圖層的平臺(tái),它有兩個(gè)重要的屬性:層集和動(dòng)態(tài)跟蹤層目標(biāo)。167。 層集包含圖層目標(biāo)和動(dòng)態(tài)跟蹤層目標(biāo)。它們的順序決定在地圖控件中的相互覆蓋關(guān)系。167。 圖層目標(biāo)代表矢量數(shù)據(jù)。167。 影響層目標(biāo)代表柵格數(shù)據(jù)。167。 動(dòng)態(tài)跟蹤層目標(biāo)顯示實(shí)時(shí)數(shù)據(jù)。地圖控件的關(guān)鍵屬性是層和跟蹤層。當(dāng)你向表單中假如一地圖控件,你也同時(shí)建立了一個(gè)空層和空跟蹤層。另一重要屬性是Extent。它決定地圖的顯示范圍。用Refresh方法在地圖控件上畫(huà)層。當(dāng)你執(zhí)行下列操作時(shí)Refresh方法將自動(dòng)執(zhí)行:167。 向?qū)蛹屑尤雸D層或影像層。167。 使用Pan和CenterAt方法。167。 更新地圖控件的Extent屬性。167。 使用Clear或Remove方法。注意,有些操作不會(huì)引發(fā)Refresh方法,在編寫(xiě)程序時(shí)應(yīng)在這些操作后加上Refresh方法一使操作更新顯示。標(biāo)準(zhǔn)控件的屬性和方法如果你是VB的用戶,你應(yīng)了解一些標(biāo)準(zhǔn)屬性和方法:Container、DragIcon、Index、Left、Height、Drag、Setfocus等,這里我們還將介紹一些Mapobjects的專(zhuān)門(mén)屬性。層集層集是地圖控件的重要屬性,包含圖層和影像層。使用Add方法可向?qū)蛹屑尤雸D層或影像層,無(wú)論增加了圖層還是影像層,F(xiàn)ullExtent屬性都會(huì)使地圖撐滿。如果你想使全圖重新顯示,可設(shè)置Extent屬性為FullExtent。Set = Clear和Remove方法可刪除層集中某層。例如: (4)MoveTo、MoveToBottom和MoveToTop方法可改變層集中側(cè)的順序。層的表示可以有層名和索引兩種方式。例如,下面的例子中索引號(hào)為2,層名名叫Hydrography:(2). = vbBlue(2). = vbBlue(Hydrography). = vbBlue(Hydrography). = vbBlue圖層目標(biāo)圖層目標(biāo)代表矢量數(shù)據(jù)。你可以下面的方式建立新層:Dim mLayer As New MapObjects。MapLayer當(dāng)你通過(guò)DataConnection目標(biāo)的FindGeoDataset方法把圖層加到GeoDataset目標(biāo)中時(shí),以下操作將自動(dòng)執(zhí)行:167。 Extent屬性被更新為地圖的最大范圍。167。 Records屬性被分配了一Recordset目標(biāo)。167。 ShapeType屬性將依據(jù)形文件類(lèi)型被設(shè)成moPoint、moLine、moPolygon。167。 Symbol設(shè)為缺省,并隨即賦予顏色。167。 如果FindGeoDataset方法成功,Valid屬性將被設(shè)成True。167。 Visible屬性設(shè)成True。Renderer屬性將設(shè)為Nothing,等待你設(shè)定其中的一個(gè)Rerderer目標(biāo):ClassBreaksRenderer、ValueMapRenderer、DotDensityRenderer或LableRenderer。Maplayer給你提供了一些強(qiáng)有力的方法以改變Maplayer的屬性數(shù)據(jù)。這些將在第五章里講述。影像層目標(biāo)影像層目標(biāo)表示你的層集中的一個(gè)圖象文件。象圖層目標(biāo)一樣,可以如此創(chuàng)立一個(gè)新影像層目標(biāo):Dim iLayer As New Mapobjects ImageLayer然后,你可在層集里用Add方法往你的地圖畫(huà)面里加入圖象文件。你可能還要使用層集里的MoveToBottom方法,這樣圖象就不會(huì)擋住其它的層。當(dāng)你將影像層附加圖象文件時(shí),Extent屬性就會(huì)被更新,最大限度地反映地理范圍。在同一地理坐標(biāo)上,如果你想使用其它圖層,圖象文件應(yīng)有一個(gè)相關(guān)的配準(zhǔn)文件。反饋圖層類(lèi)型在層集里用Add方法加入圖層或影像層,如方法成功,就會(huì)反回True。一旦層集里包括了一些層目標(biāo),你必須隨時(shí)掌握各種層的類(lèi)型。下面是在層集中返回層類(lèi)型的例子:Dim Layer As objectsFor Each Layer In If = moMapLayer ThenMsgBook layer amp。 amp。 is a map layerElseIf = moImageLayer ThenMsgBook layer amp。 amp。 is a image layerEnd IfNext Layer注意,我們必須將層聲明為目標(biāo),這樣Visual Basic可在運(yùn)行時(shí)接受此定義。在上面例子中,還用到兩個(gè)常量:moMaplayer和moImagelayer,這增加了程序的可讀性。你可在MapObjects幫助屏上或在MapObjects程序員手冊(cè)上查到所有常量的值。全面檢查圖層在上面例子的基礎(chǔ)上,使用層集索引全面檢查圖層屬性:Dim i As IntegerFor i = 0 To 1If (i).LayerType = moMapLayer ThenIf (i).shapeType = moPoint ThenMsgBook Layer number amp。 i amp。 is a map layer and contains points.ElseIf (i).shapeType = moLine ThenMsgBook Layer number amp。 i amp。 is a map layer and contains lines.ElseIf (i).shapeType = moPolygon ThenMsgBook Layer number amp。 i amp。 is a map layer and contains polygons.End IfElseIf (i).LayerType = moImageLayer ThenMsgBook Layer number amp。 i amp。 is a image layer.End IfNext i圖層顯示圖層在地圖控件中的顯示順序與其在層集中索引的順序相反。新增圖層的索引號(hào)總是0,以有圖層的索引號(hào)按順序遞增。這與VB的一些集合有所不同。在地圖控制單中,Layers 是按 Layers 集里索引值的例序排列來(lái)調(diào)用的.Drawing事件當(dāng)你在地圖上調(diào)出圖層后,一系列事件就會(huì)起動(dòng)。你可將程序放到這些事件后面,并可讓用戶取消調(diào)出的大的地圖層。當(dāng)你在地圖控件中使用Refresh方法,就會(huì)出現(xiàn)如下情況:1. BeforeLayerDraw事件起動(dòng)。2. 層集按索引相反順序調(diào)出。3. AfterLayerDraw事件起動(dòng)。4. BeforeTrackingLayerDraw事件起動(dòng)。5. 如果任何GeoEvents加入到TrackingLayer中,他們就被畫(huà)出。6. AfterTrackingLayerDrow事件啟動(dòng)。這些Drawing事件的一個(gè)使用方法是往地圖上畫(huà)一些幾何圖形,如線、圓和在地圖上說(shuō)明注記,另一使用方法是調(diào)出層集或TrackingLayer之前來(lái)檢驗(yàn)狀態(tài)。如果你的用戶在地圖上已啟動(dòng)了一種方法,而它又占用了太長(zhǎng)的時(shí)間,你可按Escape鍵取消操作。你可賦予地圖控件的CancelAction屬性以下三種值。167。 moCancelNone是說(shuō)按Escape鍵將被忽略。167。 moCancelMap將停止所有層的調(diào)出。167。 moCancelLayer將停止當(dāng)前層的調(diào)出。按Escape鍵啟動(dòng)DrawingCancelled事件。將程序放到事件后,以便應(yīng)用程序可通過(guò)恰當(dāng)?shù)姆椒ㄌ幚砝L圖過(guò)程的末端。在你的應(yīng)用程序中控制地圖的調(diào)出速度的方法是在地圖控件中設(shè)置RefreshCount屬性。Mapobjects在緩沖器里調(diào)出地圖,當(dāng)達(dá)到一定矢量數(shù)目時(shí)更新地圖顯示。缺省情況下,此屬性為10,000。降低這種特性在較慢的計(jì)算機(jī)上可能會(huì)明顯提高效率,增加這種特性將加快一些地圖控件的調(diào)出。利用Win API擴(kuò)充MapObjects應(yīng)用程序MapObjects提供了一種方法來(lái)使用經(jīng)常出現(xiàn)在Window應(yīng)用程序接口程序中的兩個(gè)變量 hDC和hWND。hDC是一句柄,一個(gè)唯一Windows分配給表面設(shè)備的ID號(hào),如屏幕或打印機(jī),通過(guò)它你的應(yīng)用程序可產(chǎn)生可視操作。你可通過(guò)Windows API GetDC函數(shù)可以得到自己的hDC,但使用完,一定要用ReleaseDC功能退出。一旦你有了device context,你可用適合你的應(yīng)用程序的Windows API圖表來(lái)使用它。例如,在一個(gè)應(yīng)用程序里,這個(gè)應(yīng)用程序能夠在地圖點(diǎn)位上提供圖符設(shè)制,你就可以象如下程序:Private Sub mapMain_BeforeLayerDraw(ByVal index As Integer, ByVal hdc As Long)If index = 0 ThenRenderIconicMarkers hdc, (index), picLogoEnd IfPrivate Sub RenderIconicMarkers(hdc As Long, layer As MapLayer, pic As PictureBox)Dim recs As Set recs = Dim shpfield As Set shpfield = (Shape)Do While Not Dim pt As Set pt = DrawIconicMarker pt, pic, hdcLoopEnd SubPrivate Sub DrawIconicMarker(pt As , pic As PictureBox, hdc As Long)Dim x As Single, y As Single pt, x, yDim xPixels As Integer, yPixels As IntegerxPixels = (x, vbTwips, vbPixels)xPixels = (y, vbTwips, vbPixels)BitBlt hdc, xPixels 16, yPixels 16, 32, 32, pic, hdc, 0, 0, SRCCOPYEnd Sub另一方面,hWnd是Map的真正的句柄。它存在于較大的hDC中,盡管它設(shè)計(jì)成為地圖的屬性,實(shí)際上hwnd是windows變量,不能夠改變,只有運(yùn)用API子程序,才能通過(guò)它。在下面的例子中,當(dāng)用戶在地圖上拖動(dòng)鼠標(biāo),就會(huì)出現(xiàn)一個(gè)矩形,依據(jù)矩形的大小顯示地圖。程序得到了地圖的hwnd屬性,用來(lái)設(shè)置顯示設(shè)備。Private Declare Function Rectangle Lib gdi32 (ByVal hdc As Long, ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long) As LongPrivate Declare Function GetDC Lib user32 (ByVal hwnd As Long) As LongPrivate Declare Function ReleaseDC Lib user32 (ByVal hwnd As Long, ByVal hdc As Long) As LongPrivate Declare Function SetROP2 Lib gdi32 (ByVal hdc As Long, ByVal nDrawMode As Long) As LongPrivate Const R2_NOTXORPEN = 10Private Const R2_NOT = 6Dim g_hdc As LongDim g_hwnd As LongDim dragging As BooleanDim xs As Integer, ys As IntegerEnd SubPrivate Sub Form_Load()dragging = FalseEnd SubPrivate Sub Map1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)dragging = Trueg_hwnd = g_hdc = GetDC(g_hwnd)SetROP2 g_hdc, R2_NOTXORPENxs = (X, vbTwips, vbPixels)ys = (Y, vbTwips, vbPixels)Rectangle g_hdc, xs 10, ys 10, xs + 10, ys + 10End SubPrivate Sub Map1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)If dragging ThenRectangle g_hdc, xs 10, ys 10, xs + 10, ys + 10xs = (X, vbTwips, vb
點(diǎn)擊復(fù)制文檔內(nèi)容
職業(yè)教育相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1