鷹眼圖

Map2.Con Map1.Cen Map1.Cen

什麼是鷹眼圖
鷹眼圖是GIS中一個基本的功能,鷹眼圖又名縮略圖,顧名思義,在鷹眼圖上可以象從空中俯視一樣查看地圖框中所顯示的地圖在整個圖中的位置.Windows下的可視化開發工具現在大家接觸得最多的就是VC,VB,下面將詳細介紹在VC與VB環境下鷹眼圖的具體實現,從這也可以看出利用MapX開發GIS應用程式的方法和技巧。
VB下鷹眼圖的實現
VB下鷹眼圖實現的思路是這樣的:在某一Form上放兩個MapX控制項:Map1(主圖),Map2(鷹眼圖);然後在鷹眼圖上創建一個圖層,在該圖層上添加一個矩形Feature,該矩形的大小隨著主圖邊界而變化。
具體實現參考下面詳細代碼。
Dim m_Layer As Layer ’鷹眼圖上臨時圖層
Dim m_Fea As MapXLib.Feature ’鷹眼圖上反映主地圖視窗位置的Feature
Private Sub Form_Load()
Set m_Layer = Map2.Layers.CreateLayer("Rectlayer") ’在Map2創建圖層
End Sub
’根據map1的Bounds在Map2上繪製矩形Feature
Private Sub Map1_MapViewChanged()
Dim tempFea As MapXLib.Feature ’聲明Feature變數
Dim tempPnts As MapXLib.Points ’聲明Points變數
Dim tempStyle As MapXLib.Style ’聲明Style變數
’矩形框線還沒有創建時
If m_Layer.AllFeatures.Count = 0 Then
’設定矩形框線樣式
Set tempStyle = New MapXLib.Style ’創建Style對象
tempStyle.RegionPattern = miPatternNoFill ’設定Style的矩形內部填充樣式
tempStyle.RegionBorderColor = 255 ’設定Style的矩形框線顏色
tempStyle.RegionBorderWidth = 2 ’設定Style的矩形框線寬度
'在圖層創建大小為Map1的邊界的Rectangle對象
Set tempFea = Map2.FeatureFactory.CreateRegion(Map1.Bounds, tempStyle)
Set m_Fea = m_Layer.AddFeature(tempFea) ’添加矩形框線
Else ’否則,根據Map1的視野變化改變矩形框線的大小和位置
With m_Fea.Parts.Item(1)
.RemoveAll ’除去已有的矩形框線的頂點
’添加大小和位置已變化的矩形框線的四個頂點
.AddXY Map1.Bounds.XMin, Map1.Bounds.YMin
.AddXY Map1.Bounds.XMax, Map1.Bounds.YMin
.AddXY Map1.Bounds.XMax, Map1.Bounds.YMax
.AddXY Map1.Bounds.XMin, Map1.Bounds.YMax
End With
m_Fea.Update ’更新顯示
End If
End Sub
’鷹眼圖上滑鼠單擊用來導航主圖,其方法是把滑鼠處的坐標設定為主圖的中心
Private Sub Map2_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
Dim MapX As Double ’定義x坐標變數
Dim MapY As Double ’定義y坐標變數
’把螢幕坐標轉換為地圖坐標
Map2.ConvertCoord X, Y, MapX, MapY, miScreenToMap
’設定主圖的中心x坐標和y坐標
Map1.CenterX = MapX
Map1.CenterY = MapY
End Sub

相關詞條

熱門詞條

聯絡我們