项目总结一:基于Android平台的智能停车系统

原创 2015年07月06日 22:43:41

最近在做一个基于物联网的技术的智能停车平台,Android端+pc端,手机端是Android开发的一套+高德地图SDK+高德导航SDK,pc端是Linux+Django+Mysql+Apache+(Html、Css+Div),今天想记录一下实时获取停车场车位数据以及在地图上为停车场添加注标。

目前项目面向的用户是兰州市的用户,整个兰州市的停车场也就是差不多有200多个,数据量不大,需要在地图上为兰州市的所有停车场都加上标注,并且标注分为三种:当前有空闲车位的停车场标注为绿色,没有车位的停车场标注为红色,没有联网的停车场标注为蓝色。

第一种做法:

轮询请求服务器,每次请求都把兰州市所有停车场的信息:经纬度、编号、名字、总车位、剩余车位请求下来,然后根据每个停车场当时的联网状况以及剩余车位状况在地图上添加标注。

这种做法很粗暴,很省事,但是可用性太差,非常消耗手机资源(电能、数据流量、内存),如果停车场数据暴增,将会出现客户端卡死现象。这种做法立马就被淘汰了。

第二种做法:

打开App,进入地图界面,获取当前地图可视区域的中心点位置的经纬度,获取当前地图的缩放级别,然后把当前经度longitude、纬度latitude、半径radius(这个半径是根据当前地图的缩放级别来给出的,比如地图的缩放级别是15,就把radius的值设为2000米,当然需要根据具体情况来确定)post给服务器,服务器根据传过来的三个参数,计算以当前经纬度为圆心,以radius为半径的圆中包含那些停车场,然后把在范围之内的停车场数据返回给客户端。

每当地图的可视区域发生变化时,就去当前重新获取可视区域中心点的经纬度,并根据缩放级别设置radius大小(缩放级别越大,radius应越小),然后post参数给服务器,获取在范围内的停车场数据,然后进行显示。


经过实验,第二种做法明显比第一种做法合理的多,当然第二种做法也并不像想象中的那么简单易做,以为给地图加上可视区域发生变化的监听后,每次用手去触碰一下地图,就会触发可视区域发生变化的回调函数,这样即便我的手机旋转一下,都会不断的去触发可视区域发生变化的回调函数,每触发回调函数,就会发生请求服务器的操作,这样明显是不合理的,所以我就认为判断了一下,当触发可视区域发生变化的回调函数时,首先去判断地图的缩放级别有没有发生变化,如果发生变化,就必须执行请求服务器的操作。再判断,如果当前可是区域中心的经纬度没有发生变化或者变化极小(变化的绝对值不超过0.00005)并且地图的缩放级别没有发生变化,就不去请求服务器,第二种判断就解决了晃动一下手机或者点击一下地图带来的频繁请求服务器的问题。


未完待续




相关文章推荐

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

安卓百度地图开发——停车定位导航APP

我把自己的毕设程序上传到了GitHub上面,有需要的可以去下载 https://github.com/supergyz/AndroidBDMap 相关介绍本人计算机系大四毕业生,毕设做的是“基于安...
  • Mezzio
  • Mezzio
  • 2016年06月03日 12:40
  • 2298

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

Android实战开发租赁管理软件视频教程 Android项目实战教程

Android实战开发租赁管理软件(适配UI,数据的存储,多线程下载) 课程讲师:CS  课程分类:Android 适合人群:中级 课时数量:21课时 用到技术:基本的组件,适配UI,数据的...

基于Android的移动图书馆管理系统

1.选题的来源、目的和意义 随着社会经济的不断发展以及计算机互联网技术的日新月异,尤其是移动互联网的到来,弥补了传统电脑的不足,给人们的交流带来了极大的方便。Android操作系统作为当前最受广泛应用...

基于android平台的视觉检测智能相机的实现-opencv4android的应用

本例对于在安卓平台上实现机器视觉算法还是个不错的例子,故将代码和方法放出来。本实例仅用了一点点安卓的知识和opencv4android的函数,供新手参考= =。...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:项目总结一:基于Android平台的智能停车系统
举报原因:
原因补充:

(最多只允许输入30个字)