阅读:1950回复:2
实现旋转,至少设置有1个地图图层[转帖]
作者: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的参考后总结的。希望对大家有帮助!! |
|
1楼#
发布于:2003-09-14 21:38
斑竹,谢谢转载,见笑了。望能对大家有帮助!!
|
|
2楼#
发布于:2003-09-15 09:21
晕,原来是你!哈哈,兄弟多发发资料给大家学习哦。
|
|