基于WM 6.0 OS的智能手机定位监控系统设计
(2)地图显示
任给一个经纬度,要将其代表的位置在地图上显示出来,就要将该经纬度转换为对应放大因子的tile坐标。本系统采用一种近似的方法转换,经过分析发现,经度与x坐标呈线性对应关系,其计算公式为:
其中,longitude为经度值,其范围为-180~+180,西经用负值表示,东经用正值表示;0.0063为校正值;z为放大因子。
纬度与y坐标转换公式为:
其中,latitude为纬度值,其范围为-90~+90,北纬用正值表示,南纬用负值表示;z为放大因子。将经纬度转化为tile坐标后,就能将经纬度与地图匹配了,这样就可以将经纬度对应的位置在地图上显示出来。
本系统采用的Windows Mobile Pocket PC的窗体客户区宽度和高度分别为240像素和268像素,每个tile为256×256像素,这样客户区就需要4个或6个tile拼接而成,如图2和图3所示。
(3)地图拖动
地图移动相当于改变地图的中心坐标。本系统实现地图拖动的方法为:当在触摸屏上点击地图某一点时,将地图的中心坐标移到点击处。如图4所示,设点O为窗口客户区中心,点P为点击处,计算点P与点O的水平和垂直像素距离△Px和△Py,然后将地图中心分别沿水平方向和垂直方向移动△Px和△Py像素,即可实现地图的拖动功能,拖动后地图如图5所示。
(4)地图放大/缩小
Google地图的放大因子z的取值为0~17,分别代表0~17级不同比例尺的地图。0~17级地图分别用18张不同详细程度的地图实现,故实现地图的放大/缩小功能只需要改变放大因子的大小,将当前现实的地图切换到改变后的放大因子所对应的比例尺的地图上,中心点经纬度不变。
评论