gis
gis
管理员
管理员
  • 注册日期2003-07-16
  • 发帖数15947
  • QQ554730525
  • 铜币25339枚
  • 威望15364点
  • 贡献值0点
  • 银元0个
  • GIS帝国居民
  • 帝国沙发管家
  • GIS帝国明星
  • GIS帝国铁杆
阅读:1950回复:2

实现旋转,至少设置有1个地图图层[转帖]

楼主#
更多 发布于:2003-09-14 18:07
作者:wjjolly  


地图控件必须至少设置有1个地图图层。
--------------------------------------------------------------------
这样实现:Map对象的RotationAngle属性可以实现旋转功能。
     可由两种方法实现:
实例1:本实例是利用RotationAngle属性旋转一张地图。要运行该程序,请先在窗体上设置两个command按钮,分别为Command1和Command2;地图控件Map1,地图控件必须至少设置有1个地图图层。然后将下面的代码Copy到代码窗口中运行即可。当你按Command1按钮时顺时针旋转地图,按Command2时,逆时针旋转。
Option Explicit
Private Sub Command1_Click()
  Map1.RotationAngle = Map1.RotationAngle + 30
End Sub

Private Sub Command2_Click()
  Map1.RotationAngle = Map1.RotationAngle - 30
End Sub
实例2:在窗体上设置一个Lable1;Map1,地图控件必须至少设置有1个地图图层;再放置一个Slider1控件。并将代码copy到代码窗口即可。这一方法的优点在于旋转的角度变化范围较小。
Option Explicit

Dim TrackRect As New MapObjects2.Rectangle
Dim TrackRectStartX As Single
Dim TrackRectStartY As Single

Private Sub Form_Load()
  Map1.TrackingLayer.SymbolCount = 1
  Map1.TrackingLayer.Symbol(0).SymbolType = moFillSymbol
  Label1.Caption = ""
  Slider1.Min = 0
  Slider1.Max = 360
End Sub

Private Sub Map1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
  If Button = 1 Then
    TrackRectStartX = X
    TrackRectStartY = Y

    Set TrackRect = Map1.TrackRectangle
  End If
End Sub

Private Sub Map1_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
    Dim myPoints As New MapObjects2.Points
    Dim myPoly As New MapObjects2.Polygon

    Debug.Print TrackRectStartX, TrackRectStartY, X, Y
    myPoints.Add Map1.ToMapPoint(TrackRectStartX, TrackRectStartY)
    myPoints.Add Map1.ToMapPoint(TrackRectStartX, Y)
    myPoints.Add Map1.ToMapPoint(X, Y)
    myPoints.Add Map1.ToMapPoint(X, TrackRectStartY)

    myPoly.Parts.Add myPoints
    Dim e As New MapObjects2.GeoEvent
    Set e = Map1.TrackingLayer.AddEvent(myPoly, 0)

End Sub

Private Sub Slider1_Change()
  Map1.RotationAngle = Slider1.value
  Label1.Caption = Map1.RotationAngle
End Sub

Private Sub Slider1_Scroll()
  Slider1_Change
End Sub


以上是我看MO的参考后总结的。希望对大家有帮助!!

喜欢0 评分0
wangjunjolly
路人甲
路人甲
  • 注册日期2003-09-11
  • 发帖数356
  • QQ
  • 铜币1040枚
  • 威望0点
  • 贡献值0点
  • 银元0个
1楼#
发布于:2003-09-14 21:38
斑竹,谢谢转载,见笑了。望能对大家有帮助!!
举报 回复(0) 喜欢(0)     评分
gis
gis
管理员
管理员
  • 注册日期2003-07-16
  • 发帖数15947
  • QQ554730525
  • 铜币25339枚
  • 威望15364点
  • 贡献值0点
  • 银元0个
  • GIS帝国居民
  • 帝国沙发管家
  • GIS帝国明星
  • GIS帝国铁杆
2楼#
发布于:2003-09-15 09:21
晕,原来是你!哈哈,兄弟多发发资料给大家学习哦。
举报 回复(0) 喜欢(0)     评分
游客

返回顶部