CN104683437A - 一种在线定位方法 - Google Patents

一种在线定位方法 Download PDF

Info

Publication number
CN104683437A
CN104683437A CN201410763067.0A CN201410763067A CN104683437A CN 104683437 A CN104683437 A CN 104683437A CN 201410763067 A CN201410763067 A CN 201410763067A CN 104683437 A CN104683437 A CN 104683437A
Authority
CN
China
Prior art keywords
mysql
time
catalogue
android
source code
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201410763067.0A
Other languages
English (en)
Inventor
韦江华
刘博学
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Guangxi University of Science and Technology
Original Assignee
Guangxi University of Science and Technology
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Guangxi University of Science and Technology filed Critical Guangxi University of Science and Technology
Priority to CN201410763067.0A priority Critical patent/CN104683437A/zh
Publication of CN104683437A publication Critical patent/CN104683437A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Information Transfer Between Computers (AREA)

Abstract

本发明公开了一种在线定位方法,包括:Android源码获取和编译;U-BOOT裁剪和编译;烧录;PHP+Mysql+Apache云端服务器环境搭建。本发明所述在线定位方法,可以克服现有技术中可靠性低、适用范围小和信息传送难度大等缺陷,以实现可靠性高、适用范围大和信息传送难度小的优点。

Description

一种在线定位方法
技术领域
本发明涉及通信技术领域,具体地,涉及一种在线定位方法。
背景技术
随着科学技术、社会经济的迅速发展,尤其是定位系统的不断发展和成熟,我国的综合实力在世界之林中得到显著提高,但是要想我国的综合竞争力更加显著,我们必须从军事、经济和科技发展等方面有所突破,而北斗导航系统作为我国自主研发的系统。它在军事上可以防止在未来的战役中受他人牵制,同时我们也可以用同样的手段反制其他人;在经济上每年能缔造庞大的经济效益,一方面,可以省去原本用于引进国外系统的巨额费用,另一方面,可以将自己的北斗系统以低价为国内用户服务,让尽可能多的行业部门使用上这种高科技设备,从而缔造更大的社会价值以及物质财富,还有一方面,我们可以将自己研发的系统,投放到国际市场,参与国际竞争,赚取外汇;从科学技术层面上我们既发展了自己的卫星定位、导航系统,又有了相关方面的技术储备,有了这些技术储备,我们国家就能够在未来的科技竞争中占据有利地位。
同样在信息高速发展、倡导资源节约型社会以及不断提高人均收入水平实现共同富裕,最求小康生活的现代,机械化、有效的服务已成为主流,不论是个人还是企业单位对移动物体(如交通工具、随身物品或者一些移动探测仪器等)的实时在线定位、检测的需求越发的大,再加上一些偏远地区的通信基站覆盖少,信息传送难度大。
在实现本发明的过程中,发明人发现现有技术中至少存在可靠性低、适用范围小和信息传送难度大等缺陷。
发明内容
本发明的目的在于,针对上述问题,提出一种在线定位方法,以实现可靠性高、适用范围大和信息传送难度小的优点。
为实现上述目的,本发明采用的技术方案是:一种在线定位方法,包括:
a、Android源码获取和编译;
b、U-BOOT裁剪和编译;
c、烧录;
d、PHP+Mysql+Apache云端服务器环境搭建。
进一步地,所述步骤a,具体包括:
(1)下载repo下载工具;
(2)在本地用mkfile创建bin目录,接着进入bin目录用:
gitclone https://android.googlesource.com/tools/repo
(3)下载完成后进入repo目录,并且用git checkout切换到稳定分支;
(4)用export将repo目录添加到当前系统的全局环境变量配置文件中;
(5)在本地创建android源码的目录,在目录中运用repo init来下载android4.0.4源码;
(6)下载完成后,接着先编译内核 3.0.35 的镜像和EXT4格式镜像;
(7)用. /buid/envsetup.sh配置环境和用lunch选择开发平台,最后用make -j6来编译。
进一步地,所述步骤b,具体包括:
(1)解压tar命令解压u_boot源码;
(2)进入解压后的路径,对源码进行cpu、板级平台、库等的筛选;
(3)在当前安卓源码的最开始路径中的配置文件中设置交叉工具链;
(4)编译配置文件,最后用make -j2编译出u-boot.bin。
进一步地,所述步骤c,具体包括:
首先设置usb模式用ndw去加载初始化内存,接着设置网络加载的ip和网关环境变量,将编译好u-boot.bin烧录到eMMC中的起始位置,最后设置为eMMC启动模式;接着通过网络将编译好的uImage烧录到u-boot的后面,同时设置内启动内核的方式;最后通过网络加载、烧录编译好的文件系统,就其烧录在内存内核的后面大小为 16M,接着重新启动,这样所有的烧录工作就完成了。
进一步地,所述步骤d,具体包括:
(1)开发环境的搭建:首先在Ubuntu12.4中运用apt-get命令下载、安装 Apache2,同时用本地回环地址在浏览器上进行测试,接着继续用 apt-get 命令下载、配置php5并在根目录/var/www下写一个php文件加以测试,最后也是用apt-get命令下载、配置mysql-service同下载php5-mysql使apache支持php mysql;
(2)服务器数据库的创建:首先使用mysql-u root-p登录Ubuntu SQL,接着用CREATE DATABASE beidou建立数据库并给其设置 username 和 password,然后退出,紧接着用mysql-u beidou-p 登录刚才创建好的数据库用于创建存储移动设备位置信息的的数据表Location_info,有主键 id、设备 id 号、经度Lobgtitude和纬度 Latitude 以及卫星授时时间Time五个属性。
本发明各实施例的在线定位方法,由于包括:Android源码获取和编译;U-BOOT裁剪和编译;烧录;PHP+Mysql+Apache云端服务器环境搭建;从而可以克服现有技术中可靠性低、适用范围小和信息传送难度大的缺陷,以实现可靠性高、适用范围大和信息传送难度小的优点。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。
下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
附图说明
附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。在附图中:
图1为本发明在线定位方法的工作原理示意图。
具体实施方式
以下结合附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。
根据本发明实施例,如图1所示,提供了一种在线定位方法。
本发明技术方案的北斗或GPS 双模定位则可以克服现有技术存在的困难,为有需要的人或者企事业单位提供相应的服务。
本发明的技术方案,跟随当前技术的发展,以发扬及主动运用我国自主产权的北斗导航系统为主要出发点,利用当今最为热门的android和云服务等技术,围绕移动互联网的快速发展趋势,同时也为了解决个人和企事业单位对移动物体的实时在线定位的强大需求等而开展的。本发明的技术方案,研究的主要内容有一下几个:
(1)安卓系统的裁剪定制;
(2)Freescale i.mx6q系列平台上的wifi、双模接口的等一系列硬件接口的驱动;
(3)D3020C北斗或GPS双模实时获取并提供位置服务;
(4)运用PHP+MYSQL+APACHE搭建起一个远端云后台;
(5)在服务器创建相应的位置服务数据库和数据表;
(6)运用HTTP的POST方法向服务器实时上传移动设备的具体位置数据;
(7)运用javaScript编写实现网页用户端的设计实现;
(8)运用android和java设计android手机客户端;
(9)使用Json格式实现在网络中通过HTTP协议传输移动终端的位置信息并实现用户端对其解析;
(10)运用HTTP的GET方法向服务器请求下载资源;
(11)运用百度api进行百度地图的定位开发。
本发明的技术方案的总体设计
2.1系统设计的整体框架
在做好前期的一些本发明技术方案研究的背景、目的、意义和内容,以及对像需求、技术、经济,系统功能需求、开发环境、工具分析和系统、软硬件方案论证的基础上,接着就可以对系统实现的整体框架进行设计,如图1所示,先给出一个比较直观的的系统整体框架模型。
在图1 中我们能直观的看出本发明的技术方案,设计大致分为北斗位置信息接收中心(飞思卡尔i.mx6q系列开发板)安装在移动需要定位的物体上、远端云服务器和移动web网页客户端和android手机客户端几部分组成。
了解完系统整体比较直观的设计框架和思想之后,接着列出在技术角度,不论硬件、还是软件方面的编程框架和编程思路,我们可以明显看到底层飞思卡尔i.mx6q系列移动平台上跑一个Android4.0.4 系统来实时接受北斗或GPS双模模块的实时位置信息,同时通过连接 wifi/网卡/3G 运用 HTTP 的 POST 方式将数据传送到由 PHP、Mysql 和Apache 搭建的远端云服务器进行存储,并且该服务器是跑在ubuntu12.04上的;接着当移动客户端需要移动物体的实时位置信息时,就主动通过有线/无线网络运用HTTP 的 GET 方式从服务器请求数据,这样移动客户端如 web 网页客户端和 android 客户端就可以调用百度地图的API 把从服务器获得的经纬度等位置信息刷到百度地图上实时显示,并且有2D、三维和卫星地图几种形式来选择显示。
2.2硬件平台的整体框架
本发明的技术方案,系统设计所用到的硬件框架,其用的处理器是I.MX6Q、Cortex-A9架构能兼容单核、双核和四核,同时其最高主频达到1.2GHZ,有64位1GB的DDR3和两通道32位的LPDDR2,8GB用户可定制的NandFlash,小于4W的低功耗功率,设有HTML、USB、SD卡、TF卡、1000/100/10Mbps的Ethernet、多屏显示、 LCD、触摸屏等诸多接口,除此此之外还有3路UART口及1路CAN接口,LCD接口支持TFT LCD 1024x600,LVDS:接口支持720p60,1080p60,音频输入是MIC,音频输出是Headphones,采用RTC实现外部实时时钟,掉电保存时间等,电源采用5V2A电压输入;并且拥有丰富的软件资源,均支持安卓4.0.4版本系统、ubuntu12.04和Linux的3.0.35内核。
在安卓 4.0.4 中支持 SD 卡脱机快速烧录、USB 下载烧录、单文件/多文件一键烧录、EXT4 格式的文件系统烧写等烧录方式,同时其 Uboot 支持 eMMC 和 SD 卡两种启动方式,并且支持 LVDS、LCD、HDML、VGA 多种显示设备,支持 Linux3.0.35 版本内核,在内核中也跟其他嵌入式产品一样有 eMMC、看门狗、RTC、IO、SPI、I2C、PWM 控制器、LCD、触摸屏、USB、串口、以太网、WIFI、3G、USB 转串、HDLM、VGA、NAND_FLASH、SD 卡和TF 卡等等许多设备的驱动,其文件系统支持 EXT4、NFS、FAT32 和 NTFS 等几种文件系统。
2.3软件整体框架
本发明的技术方案,D2030C通过串口分别拿到北斗、GPS、北斗和 GPS双模的原始位置信息和时间,经过Android的内核层、动态库/中间键层、FrameWork 层也就是位置服务给用户空间提供的API接口层,直到用户空间java位置提供应用程序层;接着就可以在java位置服务应用程序中通过HTTP协议请求连接到远端云服务器,再采用POST方式将移动设备的实时位置信息和精准时间上传并执行服务器mysql 数据库的更新操作,使数据保存到相应的数据表中以便移动客户端的访问、获取;接着网页端和手机端就可以通过HTTP协议与服务器建立数据交互的通道,然后就可以采用GET方式从位置信息数据表中拿到移动设备的实时经纬度信息和时间,同时客户端就可以调用百度地图的API将获取到的位置信息标注到百度地图上,达到在线实时对移动设备的定位显示。
本发明技术方案的详细设计
3.1系统移植
3.1.1 Android源码获取和编译
本发明的技术方案,采用的系统是android4.0.4,首先要在android官网获取,其主要步骤有以下几点:
(1)下载repo下载工具;
(2)在本地用mkfile创建bin目录,接着进入bin目录用:
gitclone https://android.googlesource.com/tools/repo
(3)下载完成后进入repo目录,并且用git checkout切换到稳定分支;
(4)用export将repo目录添加到当前系统的全局环境变量配置文件中;
(5)在本地创建android源码的目录,在目录中运用repo init来下载 android4.0.4源码;
(6)下载完成后,接着先编译内核 3.0.35 的镜像和 EXT4 格式镜像;
(7)用. /buid/envsetup.sh 配置环境和用 lunch 选择开发平台,最后用make -j6来编译。
3.1.2 U-BOOT裁剪和编译
本发明的技术方案,采用的u-boot2010.03版本,其中的详细的定制和编译如下:
(1)解压tar命令解压u_boot源码;
(2)进入解压后的路径,对源码进行cpu、板级平台、库等的筛选;
(3)在当前安卓源码的最开始路径中的配置文件中设置交叉工具链;
(4)编译配置文件,最后用make -j2编译出u-boot.bin。
3.1.3 系统烧录
系统的烧录,首先设置 usb 模式用 ndw 去加载初始化内存,接着设置网络加载的 ip和网关环境变量,将编译好 u-boot.bin 烧录到 eMMC(inand)中的起始位置,大小是 4M,最后设置为 eMMC 启动模式;接着通过网络将编译好的 uImage 烧录到 u-boot 的后面,大小是 4M,同时设置内启动内核的方式;最后通过网络加载、烧录编译好的文件系统,就其烧录在内存内核的后面大小为 16M,接着重新启动,这样所有的烧录工作就完成了。
3.1.4 PHP+Mysql+Apache云端服务器环境搭建
(1)开发环境的搭建:首先在 Ubuntu12.4 中运用 apt-get 命令下载、安装 Apache2,同时用本地回环地址(127.0.0.1)在浏览器上进行测试,接着继续用 apt-get 命令下载、配置 php5 并在根目录/var/www 下写一个 php 文件加以测试,最后也是用 apt-get 命令下载、配置 mysql-service 同下载 php5-mysql 使 apache 支持 php mysql。
(2)服务器数据库的创建:首先使用 mysql-u root-p 登录 Ubuntu SQL,接着用 CREATE DATABASE beidou 建立数据库并给其设置 username 和 password,然后退出,紧接着用mysql -u beidou -p 登录刚才创建好的数据库用于创建存储移动设备位置信息的的数据表 Location_info,有主键 id、设备 id 号、经度 Lobgtitude和纬度 Latitude 以及卫星授时时间 Time 五个属性。
3.2硬件模块分析
3.2.1 双模模块D3020C介绍
本发明的技术方案,设计的硬件平台上采用的是型号为 TD3020C 北斗或GPS 双模模块来给系统提供实时位置信息,它有体积小、功耗低和支持热启动等优点,同时模块支持 BD2 B1 工作模式、GPS L1 工作模式和 BD2 B1/GPS L1 混合工作模式等三种模式。其功能框架图和硬件接口,其中电源采用 VCC、V_BCKP 和 V_ANT 作为输入,VCC_OUT 和VCC_RF 作为输出,天线接在 PF_IN 支持 BD2 B1/GPS L1 双模有源天线,UART 串口有串口 1(TXD1/RXD1)和串口 2(TXD2/RXD2)两串口,串口一用于获取位置信息输出同时也可用来设置、选择定位的模式,波特率在 48000bps~115200bps 范围之内,还有三路用户可自定义的 GPIO 接口。
软件接口协议方面,首先是语句标识符有BD、GP、GN、CC和P,输出语句格式符有位置信息(GGA)、大地坐标位置信息(GLL)、有效卫星号(GSA)、可视卫星状态(GSV)等;输入语句格式有设置当前系统工作状态(SIR )、设置串口工作波特率(CAS01)和设置NMEA输出更新率(CAS02)三种。
3.2.2 WIFI模块驱动分析
本发明技术方案设计采用的 WIFI 模块是基于 SDIO 的 NH387 型号,该 WIFI 模块的驱动基于sdio和 mmc 总线的。其中 wifi 设备和 wifi 驱动通过相应总线的匹配流程。
Wifi模块的数据包的发送和接收在整个网络层次结构的框架流程,对于数据包的接收先通过中断响应从网络设备媒介层中获取到,再通过网络协议接口层的网络设备结构体的函数调用链接到网络协议层,接着网络协议层通过netif_rx函数将wifi接收到的具体数据再经过socket层和虚拟文件系统层传到用户空间;同样用户空间向外发送数据出去,首先将数据通过虚拟文件系统层和网络socket层给网络协议层的dev_queue_device来发送,最后通过网路设备功能层的相应函数发送出去。接着wifi数据包的发送和接收。
3.3软件详细设计
3.3.1移动设备上位置提供及上传软件程序设计
本发明的技术方案,移动设备上位置提供及上传到远端服务器存储的软件详细设计流程,可以看出这块的软件设计大致分为北斗或GPS 经纬度、授时时间等位置信息的获取和上传远端服务器存储两部分组成。
在位置信息获取的部分,首先是加载本地显示的视图资源和显示控件的初始化以及在清单文件配置位置服务的 Service,接着申明、获取 Location 位置服务的客户端并设置我们申请好的 AK 值,然后用 registerLocationListener(this)注册监听位置服务函数,同时用 setLocationOption()函数对定位信息进行是否打开定位设备、设置获取百度坐标类型、启动缓存定位、定位请求时间间隔以及获取详细的位置信息等属性进行设置,最后通过 requestLocation 函数向双模模块发出定位请求来获取实时的经纬度等位置信息和卫星授时时间等信息,发送的请求是异步的,并且其返回值在onReceiveLocation 函数中接收。
实时位置信息上传部分设计,当发起定位请求,同时用 onReceiveLocation()接收到实时位置信息后,先用创建一个大小为 256 字节的 StringBuffer 来暂时存储位置信息的同步的、安全的容器的对象实例,接着将要上传到远端数据库的位置定位数据和授时时间数据重新打包并启动信息上传的线程。在线程中先构建 HTTP 的 POST 方式请求上传的实例,当请求成功后用字节流的形式将位置信息上传到远端与服务器中,当在云服务器端成功插入数据到 Location_info 数据表中会返回给请求端一个 JSON 数据个格式的反馈数据,解析反馈数据,当为 true 是则说明位置信息上传更新成功,否则失败。
3.3.2远端云服务器软件程序设计
在配置和搭建好远端云服务器的基础上,在本发明的技术方案,研究设计中,对远端云服务器的软件的详细流程。可以明显看到,远端云服务器的软件操作主要由服务器数据库的移动设备位置数据更新和服务器数据库的移动设备位置数据的获取两部分组成。
北斗移动设备位置信息更新的详细设计是用 php 语言设计编写的。首先由一个$_POST 数组变量获取从位置数据更新客户端通过HTTP 的POST 请求发送过来的变量名称和值,接着用 empty($_POST[变量名称])(其中在本发明的技术方案,中数据更新方面所涉及的变量名称有设备 id、设备当前的 Longitude、Latitude 和卫星授时时间)判断是否为空,如果不为空的话,将其对应的存储起来,如果为空则用编码输出提示缺少相应的属性,放弃此条数据的更新,从而更新失败;当所有数据均有属性值时,用相应的命令去链接数据库,其中“beidou007”和“beidou123321”分别是数据库的用户名和密码,连接成功之后 mysql_select_db('beidou', $con)选择服务器中存储北斗移动设备的位置数据的“beidou”数据库,然后再用刚才获取到的数据和 mysql_query($sql)方法将实施位置信息插入到 beidou 数据库中 Location_info 数据表中,接着当所有的操作完成之后将操作 beidou 数据库的链接关闭,从而保证其他数据的安全、完整性。
同样在北斗移动设备位置数据查询的详细设计也是用 php 语言编写、设计的。首先用一个$_GET 数组变量接收 Android 和 Web 网页客户端通过 HTTP 协议的 GET 方式发送过来的请求数据,然后判别从客户端用$_GET['id']接收的设备 id 的属性值是不是有效,如果为空同样用 echo urldecode(json_encode($result))提示打印输出缺少该属性,从而导致查询操作失败,成功则保存该属性值;接着继续执行上述操作;然后用属性值和echo urldecode(json_encode($result))方法去查询 Location_info 数据表,如果找到用 json_encode($recipe)方法打包成JSON 格式的数据并输出返回;最后继续用mysql_close($con)断开数据库的连接。
3.3.3 android客户端软件程序设计
本发明的技术方案,android 客户端的软件设计的框架流程,我们可以看到它由用户欢迎登录界面、百度地图 KEY 的申请、验证和检测、北斗移动设备的实时定位显示以及百度地图特有的离线地图下载几个大部分组成。
其中欢迎登录界面采用固定 username 和 password 的模式;KEY 的申请可以去百度地图 api 提供的 KEY 申请接口去申请;对于网络的检测、验证方式的设置在本发明的技术方案,中单独封装在一个 MKGeneralListener 类中重写的 onGetNetworkState(int iError)方法来完成、实现的,同样在重写的 onGetPermissionState(int iError)方法中实现 KEY 的检测和验证。
接着可以看到在对北斗移动设备的实时定位显示又由显示用到的资源的加载、实时位置信息的请求和位置信息的在百度地图上显示三块组成。
看完android客户端软件设计的整体框架之后,接着就去看看android客户端设计的核心模块实时位置定位显示的详细实现和数据流程。
在程序的刚开始必须先对地图管理类BMapManager进行初始化,接着用 setContentView(R.layout.activity_main)去加载地图显示的布局文件和一些资源,以及一些用到的控件的初始化和事件的监听,在本设计中设置了两个 2D 地图和卫星地图显示两个选择按钮;然后用 mMapController = mMapView.getController()去获取 BeiduMap 控制器继而对其像 Map 的缩放级别等属性进行设置,这之后接着去构建地 图 显 示 MKMapViewListener 的 接 口 类 并 重 写 地 图 加 载 过 程 中 用 到 的 像onGetTransitRouteResult()、onMapLoadFinish()等 方方法,接着自然而然调用regMapViewListener(DemoApplication.getInstance().mBMapManager,mMapListener)方法去用户地图显示的监听器;在完成这些之后我们就可以成功的将百度地图加载到MapView 控件上显示出来,但我们的本发明技术方案要求是要北斗移动设备的实时定位和详细位置描述,所以我们还要构建覆盖物弹出窗口PopupOverlay 图层和位置服务搜索 MKSearch实体对象的初始化,初始化时还需要构建 MKSearchListener()实例对象,当调用MKSearch 的 reverseGeocode(p)去获取具体详细的地址信息时,我们就能在MKSearchListener 实例中重写 onGetAddrResult(MKAddrInfo arg0, int arg1)中运用arg0.strAddr 来获取到具体某一点在百度地图上的详细位置信息。
做完以上的初始化准备工作后,接着就可以开启一个线程不断的每隔 1s 向远端云服务器去请求获取实时经纬度位置信息和时间。要实现这块首先要构建 HttpClient 对象运用 HttpGet("http://192.168.1.103/maps/WebService/getLocation.php?id=1")方法向服务器发书 GET 方式连接、数据请求,当链接。请求被服务器所受理后就可以使用 InputStreamReader 字符流去获取服务器查询返回的 JSON 格式数据,得到数据后紧接着构建JSONObject 对象去解析 JSON 数据。拿到具体的位置信息和时间后放到Hashtable 容器中通过 Handler 异步消息机制的 sendMessage(msg)方法发送到主线程实时标注到地图上。
主线程拿到数据后首先用 GeoPoint((int) (lat * 1E6), (int) (lon * 1E6))方法得到一个位置点,接着用 CoordinateConvert.fromGcjToBaidu(p2)矫正,同时使用reverseGeocode(p)获取该点在地图上的详细位置信息,然后构建并初始化ItemizedOverlay 图层把该点标注到地图上,同时弹出该点的位置信息描述窗口,最后将该点设置为中心显示并刷新地图,这样我们就实现了对北斗移动设备在 android 客户端端的实时在线定位。
3.3.4 web网页客户端软件程序设计
本发明的技术方案,的 web 网页客户端的软件实现的框架。通过图我们可以清楚的看到,网页客户端由登录界面、KEY 的申请、KEY 和外部 js 文件的加载以及实时定位几个部分组成。
其中欢迎登录界面也是用固定的用 username 和 password 登录;KEY 的申请同样也跟 android 客户端的申请方式一样;接着要加载 convertor.js 文件;最后实时在线定位功能的实现还是有资源的加载和初始化、获取位置信息和实时在百度地图上显示北斗移动设备的位置三块内容设计。
看完 web 网页客户端的软件框架设计后,我们发现明显对移动设备的实时定位显示才是核心。核心模块的软件详细设计和数据流程,该部分是由javaScript 和 HTML 语言所编写的。
可以看出,在程序的一开始在HTML 的一些常规设置之后就运用<script type=""src=""></script>的方式去加载 KEY 和将谷歌坐标转化为百度坐标的convertor.js 外部文件以及用<title>北斗或GPS 定位系统</title>方式去设置网页客户端的标题;接着用去 new BMap.Map("allmap")创建一个整个地图 deMap 实例,然后就去设置像centerAndZoom,enableScrollWheelZoom 等Map 属性的设置以及用addControl()方法去添加一些地图的控件,其中有地图缩放控制、比例控制和地图显示控制等。用BMapLib.SearchInfoWindow()方法自定义一个介绍开发者信息的窗口,添加一个测试标注并且 mark 标注上打开自定义的开发者信息窗口。
做完这一系列的资源加载和地图的相关初始化,以及简单测试后,我们要去通过HTTP 协议的 GET 方式不断地向服务器请求移动设备真实的位置信息并且标注在百度地图上从而实现对移动设备的实时在线定位的功能。这块的实现我们用 $.ajax 技术来实现与 web 与服务器之间的数据通信,在 ajax 中首先要设置 web 网页请求的 url 地址和GET 请求方式以及数据格式;当请求成功时就用 BMap.Point(data.Latitude, data.Longitude)获取移动设备最后出现的位置点和最后出现的时间点,接着我们就可以用 BMap.Convertor.translate(point,2,translateCallback)实现谷歌的真实经纬度转化为百度坐标,其中 translateCallback 函数是用来实现将转化后的百度坐标用BMap.Marker(point, {icon: myIcon})创建一个 mark,接着用 map.addOverlay()标注物体位置的方法添加到百度地图上,同时调用 HTML 显示窗口的方法弹出信息描述窗口,最 后 用 map.setCenter(point) 把 该 点 设 置 为 地 图 中 央 显 示 , 并 且 用setTimeout("myajax()",1000)实现每隔 1s 去向服务器请求定位显示,也达到一种地图刷新的效果。这样就实现了对北斗移动设备的实时在线定位显示功能。
本发明技术方案的测试与分析
4.1系统测试的目地和意义
在一款软件设计结束之后和正式投入应用之前,必须要对软件进行系统的、全面的功能和性能的测试,只有做完和做好系统测试这块才可以说完成了这个设计,保证了这个设计的完整性,只有这样才能让所设计的系统功能、性能更为强大,只有这样才会是对设计者的最大肯定和认可,只有这样才能让所设计出来的软件系统发挥发应有的能力和创造它所要达到的价值。
本发明的技术方案,研究设计之后,不论对软件和硬件还是服务器端和客户端等各个模块部分都做了系统的、详细的测试分析。在对各个功能模块测试之前,必须要先对北斗或GPS 硬件定位模式进行选择设置;等设置好定位模式后,继续要选择网络服务,本平台有有线、无线wifi和联通3G三种网络形式;做好以上两步后就可以对北斗信号进程测试。
4.2北斗移动设备数据上传测试与分析
在北斗移动设备上,上传到远端云服务器进行存储的实时位置信息和授时信息的情况。可以清楚的看出,能从北斗或GPS 模块获取正确的实时位置信息和授时时间信息,并且可以用HTTP协议远端上传到远端云服务器中进行存储。
4.3远端云服务器测试与分析
(1)远端云服务器对北斗移动设备的实时位置信息和时间信息的存储模块的的测试和验证我们可以通过在运行有服务器的ubuntu12.04下用命令行代码 mysql-u beidou007-p、show database 和 use beidou 以及 select * from Location_info;来查看。可以清楚的看到北斗1 号移动设备的实时位置信息和授时信息都能很准确、不丢信息包的每隔 3s,重复三次的数据存储到远端服务器数据库 beidou 中的位置数据表 location_info中。
(2)客户端向远端与服务器请求北斗移动设备的实时位置信息成功后,服务器查询Location_info 数据表给客户请求端返回的数据。
我们在浏览器上输入访问云端与服务器的 HTTP 协议以 POST 方式请求的网址,http://192.168.1.103/maps/WebService/getLocation.php?id=1 用来模拟客户端的数据申请,成功后以 json 的原始数据返回,从而说明我们可以通过这种格式的命令协议访问到远端服务器并且可获取到我们想要的北斗移动设备最后一次出现的经纬度位置信息和时间。
4.4 android客户端测试与分析
(1)android 客户端登录界面的测试,其中将“远程定位登陆入口” 采用字体闪烁来达到强调的效果,还有用文字跑马灯的形式给用户登录一些如用户名、密码以及故障紧急措施处理等一些温馨提示信息,同时采用的是 beidou 和 007 固定的用户名名和密码登录。当准确输入用户名和密码,然后点击登录按钮,就会跳转到如下
在登录成功界面上,可以提供给用户北斗移动设备在线实时定位入口和百度地图的离线下载地图的功能入口。
(2)实时在百度地图上定位显示功能测试,登录成功后,点击“北斗移动设备在线实时定位”选项进入到实时定位显示界面,接着我们就可以通过按键选择地图显示的类型,在本发明的技术方案,设计中android客户端有2D和卫星地图类型两种不同的地图类型显示。
我们可以明显看到到不论在2D地图还是卫星地图上都能正确的在百度地图上显示北斗移动设备的实时位置,而且还能正确的标注显示出该位置的详细位置描述和授时时间。其中定位的误差是在可控范围之内。
4.5 web网页客户端测试与分析
(1)网页客户端登录界面的测试,系统采用的是beidou和007固定的用户名名和密码登录。当正确输入用户名和密码登录,就会有提示登录成功的消息窗口显示,当点击确定或者关闭提示窗口,系统跳转到操作界面,用于实时显示北斗移动设备的实时位置信息的界面。
(2)在web网页客户端对北斗移动设备的在线实时定位的效果。可以看到可以选择2D、卫星和三维三种地图显示类型实现正确的实时定位显示北斗移动设备的位置信息,同时实现用窗口的形式将北斗最后一次出现的时间信息显示出来。这样客户就可以准确的掌握北斗移动设备的实时时间和地点等信息。
4.6系统测试结论
通过对定位模块的模式选择和网络选择以及北斗信号测试等等之后,继而通过以上北斗移动设备的实时位置信息的上传、远端服务器对信息的存储和操作、android 客户端的登录和两种地图类型的实时定位显示、描述以及web网页客户端的登录和三种地图类型的实时显示和描述等功能模块的测试,实现了北斗移动设备通过HTTP协议POST方式每隔3s和为了方式丢数据而3次重复的将实时的位置信息和授时时间信息上传到远端云服务器进行存储;当手机用户端和web网页用户端通过HTTP协议的GET方式向后台请求数据时,服务器能正确、快速的操作检索Location_info位置信息数据表以及将其打包并发送给相应的客户端;当android和web网页客户端通过固定的用户名和密码登录成功后并拿到服务器打包发送的实时位置信息时,都能正确解析并实时标注在2D、卫星和三维等不同地图类型的百度地图上,并加以详细位置和时间的显示说明。
综上所述,经过详细、系统的功能和性能测试,本发明的技术方案,研究的基于Android平台的在线定位方法功能全部实现并且性能良好。
最后应说明的是:以上所述仅为本发明的优选实施例而已,并不用于限制本发明,尽管参照前述实施例对本发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (5)

1.一种在线定位方法,其特征在于,包括:
a、Android源码获取和编译;
b、U-BOOT裁剪和编译;
c、烧录;
d、PHP+Mysql+Apache云端服务器环境搭建。
2.根据权利要求1所述的在线定位方法,其特征在于,所述步骤a,具体包括:
(1)下载repo下载工具;
(2)在本地用mkfile创建bin目录,接着进入bin目录用:
gitclone https://android.googlesource.com/tools/repo
(3)下载完成后进入repo目录,并且用git checkout切换到稳定分支;
(4)用export将repo目录添加到当前系统的全局环境变量配置文件中;
(5)在本地创建android源码的目录,在目录中运用repo init来下载android4.0.4源码;
(6)下载完成后,接着先编译内核 3.0.35 的镜像和EXT4格式镜像;
(7)用. /buid/envsetup.sh配置环境和用lunch选择开发平台,最后用make -j6来编译。
3.根据权利要求1或2所述的在线定位方法,其特征在于,所述步骤b,具体包括:
(1)解压tar命令解压u_boot源码;
(2)进入解压后的路径,对源码进行cpu、板级平台、库等的筛选;
(3)在当前安卓源码的最开始路径中的配置文件中设置交叉工具链;
(4)编译配置文件,最后用make -j2编译出u-boot.bin。
4.根据权利要求3所述的在线定位方法,其特征在于,所述步骤c,具体包括:
首先设置usb模式用ndw去加载初始化内存,接着设置网络加载的ip和网关环境变量,将编译好u-boot.bin烧录到eMMC中的起始位置,最后设置为eMMC启动模式;接着通过网络将编译好的uImage烧录到u-boot的后面,同时设置内启动内核的方式;最后通过网络加载、烧录编译好的文件系统,就其烧录在内存内核的后面大小为 16M,接着重新启动,这样所有的烧录工作就完成了。
5.根据权利要求4所述的在线定位方法,其特征在于,所述步骤d,具体包括:
(1)开发环境的搭建:首先在Ubuntu12.4中运用apt-get命令下载、安装 Apache2,同时用本地回环地址在浏览器上进行测试,接着继续用 apt-get 命令下载、配置php5并在根目录/var/www下写一个php文件加以测试,最后也是用apt-get命令下载、配置mysql-service同下载php5-mysql使apache支持php mysql;
(2)服务器数据库的创建:首先使用mysql-u root-p登录Ubuntu SQL,接着用CREATE DATABASE beidou建立数据库并给其设置 username 和 password,然后退出,紧接着用mysql -u beidou -p 登录刚才创建好的数据库用于创建存储移动设备位置信息的的数据表Location_info,有主键 id、设备 id 号、经度Lobgtitude和纬度 Latitude 以及卫星授时时间Time五个属性。
CN201410763067.0A 2014-12-12 2014-12-12 一种在线定位方法 Pending CN104683437A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410763067.0A CN104683437A (zh) 2014-12-12 2014-12-12 一种在线定位方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410763067.0A CN104683437A (zh) 2014-12-12 2014-12-12 一种在线定位方法

Publications (1)

Publication Number Publication Date
CN104683437A true CN104683437A (zh) 2015-06-03

Family

ID=53318007

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410763067.0A Pending CN104683437A (zh) 2014-12-12 2014-12-12 一种在线定位方法

Country Status (1)

Country Link
CN (1) CN104683437A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105589693A (zh) * 2015-12-18 2016-05-18 国云科技股份有限公司 一种基于react-native的快速实现移动端数据获取的方法
CN105635265A (zh) * 2015-12-24 2016-06-01 国云科技股份有限公司 一种基于react-native快速实现移动端数据上传的方法
CN116383091A (zh) * 2023-05-29 2023-07-04 珠海妙存科技有限公司 eMMC验证平台的启动方法、启动装置及存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101866295A (zh) * 2010-06-21 2010-10-20 清华大学 一种操作系统网络安装的方法
CN102436398A (zh) * 2011-11-15 2012-05-02 上海智翔信息科技股份有限公司 一种Android移植系统

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101866295A (zh) * 2010-06-21 2010-10-20 清华大学 一种操作系统网络安装的方法
CN102436398A (zh) * 2011-11-15 2012-05-02 上海智翔信息科技股份有限公司 一种Android移植系统

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
中国测绘地理信息学会仪器装备专业委员会编: "测绘地理信息仪器装备发展研究", 《测绘地理信息仪器装备发展研究 *
舒俊: "基于Android平台的移动终端设计与实现", 《万方数据企业知识服务平台》 *
郑伟: "基于Andriod的百度地图车辆定位系统设计与实现", 《中国优秀硕士学位全文数据库 信息科技辑》 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105589693A (zh) * 2015-12-18 2016-05-18 国云科技股份有限公司 一种基于react-native的快速实现移动端数据获取的方法
CN105635265A (zh) * 2015-12-24 2016-06-01 国云科技股份有限公司 一种基于react-native快速实现移动端数据上传的方法
CN116383091A (zh) * 2023-05-29 2023-07-04 珠海妙存科技有限公司 eMMC验证平台的启动方法、启动装置及存储介质
CN116383091B (zh) * 2023-05-29 2023-08-29 珠海妙存科技有限公司 eMMC验证平台的启动方法、启动装置及存储介质

Similar Documents

Publication Publication Date Title
CN104678412A (zh) 北斗或gps双模在线定位方法
CN104683438A (zh) 一种北斗或gps双模在线定位方法
ES2875348T3 (es) Aplicación de gestión de aplicaciones
CN106970790B (zh) 一种应用程序创建的方法、相关设备及系统
US20220405470A1 (en) Systems and methods for updating a mobile application
EP2941717B1 (en) System and method of provisioning and reprovisioning a mobile device based on self-locating
Fuad et al. Remote vehicle tracking system using GSM Modem and Google map
CN108345543B (zh) 一种数据处理方法、装置、设备及存储介质
CN104025560B (zh) 用于向远程环境提供数据录入内容的方法和设备
CN105723337B (zh) 用于从交互式开发环境递增地编译软件制品的方法和系统
US9021427B2 (en) Conversion methods of applications of mobile devices and mobile devices and systems using the same
CN107710157A (zh) 多租户、租户特定的应用程序
CN105393226A (zh) 脚本测试案例和手动测试案例的自动生成
CN105005058A (zh) 基于Android平台的北斗和GPS双模在线定位方法
KR102652384B1 (ko) 메신저 봇을 이용하여 IoT 기기를 제어하기 위한 방법, 시스템, 및 비-일시적인 컴퓨터 판독가능한 기록 매체
CN104683437A (zh) 一种在线定位方法
CN106412078B (zh) 精准信息推送方法、装置和系统
EP2989597A1 (en) Wireless carrier platform for service applications
CN109032573A (zh) 一种硬件编程系统和方法
CN102647464B (zh) 一种服务器及采用该服务器的自助旅行系统
CN104678413A (zh) 一种在线定位系统
CN107995375A (zh) 一种信息推送方法、移动终端及存储介质
CN104698481A (zh) 一种北斗或gps双模在线定位系统
CN107193565A (zh) 跨移动端开发原生app的方法
CN107135516A (zh) 一种参数测试处理方法、移动终端以及计算机可读存储介质

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20150603