複製鏈接
請複製以下鏈接發送給好友

鷹眼圖

鎖定
鷹眼圖是GIS中一個基本的功能,鷹眼圖,顧名思義,在鷹眼圖上可以像從空中俯視一樣查看地圖框中所顯示的地圖在整個圖中的位置.Windows下的可視化開發工具大家接觸得最多的就是,下面將詳細介紹在VC與VB環境下鷹眼圖的具體實現,從這也可以看出利用MapX開發GIS應用程序的方法和技巧。
中文名
鷹眼圖
外文名
Hawkeye map
別    名
縮略圖
詳細代碼
Dim m_Layer As Layer
語    種
VC,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