百度地图绘制运动轨迹技巧

百度地图绘制运动轨迹技巧,第1张

很多运动类的app都有画出跑步者运动轨迹的需求,拿咕咚来说,我们看一下它的效果图:

本篇将要实现的效果1跑步结束后,静态的画出整个运动轨迹2跑步过程中,时时动态的画运动轨迹

如何实现:

1将点与点连成线,在百度地图MapView上画出线条图层;

2获取定位点List<LatLng>:通过百度定位sdk:LocationClient类获取,户外运动画运动轨迹,要求位置点的精度高,所以我们必须使用gps定位类型的位置结果。

一 静态画整个运动轨迹

1画轨迹

运动轨迹效果

2添加起始图标图层、点击图层响应事件

运动轨迹效果,点击图标d出信息窗口

点击起始图标

点击图标d出信息窗口d出Toast

d出Toast

到这里,运动结束后画出整个轨迹图和图层添加点击事件就介绍完了。

二 时时动态的画运动轨迹

时时动态画运动轨迹效果

运动轨迹:箭头为当前位置和方向

关键在于取点:gps刚接收到信号时返回的一些点精度不高,容易造成位置偏移,如何取点很重要。

退出记得释放资源

注:我们画运动轨迹要求定位sdk返回的位置精度很高,轨迹的效果才会好,因而必须接受gps位置点。但是gps位置的在刚开始收到信号时精度不高,会出现位置漂移的情况,所以要选取一个精度较好的点。在建筑物、桥梁、大树、隧道里面,gps信号不好,精度不高,所以在开阔地带,运动轨迹效果更好。

效果,因为我太懒只做了个简单的四方向布朗运动,但是实际上即使是斜线也是可以追踪的。

通用型很高,代码都做了注释,如果哪里没有看懂的可以追问我或者私信我,我基本上过几天都会看。

Dim Place(1 To 2) As Long

Private Sub Form_Load()

With Label1

Place(1) = Left + (Width / 2)     '初始化中央横坐标

Place(2) = Top + (Height / 2)     '初始化中央纵坐标

End With

'Label1是作为小船的控件 _

需要注意的是,轨迹是直接绘制在Form1容器上的,任何控件都会遮挡 _

如果是自己制作的话,记得把容器(比如pic控件、Frame控件或者Form窗体的autoReadraw属性设置为True

End Sub

Private Sub Timer1_Timer()

'用于控制小船,这里为了方便直接让小船做布朗运动

Dim Direc As Integer, Dis As Integer

Randomize

Direc = Int(Rnd  4 + 1)    '方向↑↓←→随机一个

Dis = Int(Rnd  100 + 1)    '距离1~100随机一个

With Label1

Select Case Direc

Case Is = 1                 '方向为上

    Move Left, Top - Dis

Case Is = 2                 '方向为下

    Move Left, Top + Dis

Case Is = 3                 '方向为左

    Move Left - Dis, Top

Case Is = 4                 '方向为右

    Move Left + Dis, Top

End Select

'防止小船脱出窗口

If Top < 0 Then Top = 0

If Top + Height > Form1Height Then Top = Form1Height - Height

If Left < 0 Then Left = 0

If Left + Width > Form1Width Then Left = Form1Width - Width

'===========================追踪部分================================

Dim lData(1 To 2) As Long

lData(1) = Left + (Width / 2)

lData(2) = Top + (Height / 2)     '其实可以直接使用中央坐标,但是为了使代码可读性上升,定义了临时数组

Form1Line (lData(1), lData(2))-(Place(1), Place(2))        '划线

Place(1) = Left + (Width / 2)     '刷新中央横坐标

Place(2) = Top + (Height / 2)     '刷新中央纵坐标

End With

End Sub

根轨迹的绘制,主要依据是其8条性质。鉴于是轨迹草图,内容相比较简单。①根轨迹起于开环极点P1=…P2=…止于Z1=…Z2…和无穷远处;②有n=(取决于阶数)条根轨迹,且关于实轴对称;③有n-m=…条渐近线,且与实轴的交点σ=(∑Pi-∑Zi)/(n-m),交角φ=(2k+1)2π/(n-m);④实轴上的根轨迹区间是(…,…);⑤确定分离点,∑1/(d-Pi)=∑1/(d-Zi),根据实轴上的根轨迹取舍d;⑥与虚轴的交点,令S=wj,代入特征式D(S),令实部、虚部分别为0,解出对应的共轭虚根(如果存在)⑦根据以上内容做画。  说明;Pi,Zi分别表示开环极点、零点,m,n 开环传函一般分子阶数小于分母阶数,故其中的最小阶数m一般表零点和最大阶数n 表极点。此外,可以选择性的添加出射角……

以上就是关于百度地图绘制运动轨迹技巧全部的内容,包括:百度地图绘制运动轨迹技巧、vb软件 画以小船为中心的航行轨迹、自动控制原理根轨迹草图绘制方法及步骤等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://www.outofmemory.cn/zz/10113713.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存