APPinventor GPS定位程序说明.docx

上传人:小** 文档编号:76171966 上传时间:2019-02-03 格式:DOCX 页数:9 大小:485.76KB
返回 下载 相关 举报
APPinventor GPS定位程序说明.docx_第1页
第1页 / 共9页
APPinventor GPS定位程序说明.docx_第2页
第2页 / 共9页
APPinventor GPS定位程序说明.docx_第3页
第3页 / 共9页
APPinventor GPS定位程序说明.docx_第4页
第4页 / 共9页
APPinventor GPS定位程序说明.docx_第5页
第5页 / 共9页
点击查看更多>>
资源描述

《APPinventor GPS定位程序说明.docx》由会员分享,可在线阅读,更多相关《APPinventor GPS定位程序说明.docx(9页珍藏版)》请在金锄头文库上搜索。

1、第四章 程序实现4.2 程序界面设计图4-1 程序界面程序界面采用蓝白灰搭配的简洁配色和扁平化的视觉设计,减少用户的认知成本。在APP Inventor中采用Screen Arrangement控件对屏幕进行分割与排版来保持界面美观。图4-2 界面布局程序一共有3屏,分别是Screen1摇一摇定位界面、Screen2定位信息和Screen3数据记录。每个Screen之间可以跳转返回。4.3 程序架构设计Screen1摇一摇定位界面,当用户晃动手机触发定位功能。当手机定位成功获取到经纬高度数据时,便将数据传到Screen2。当定位失败,没有获取到数据,Screen1就会触发一个计时器,每0.5秒

2、重新获取一次经纬高度,此时界面显示正在定位。直至获取到信息后才会打开Screen2,否则一直停留在Screen1。Screen2定位信息界面。Screen2接受到Screen1传来的经纬高度信息后通过WebPost向API发送请求,WebGet获取API返回的数据进行处理从而将结果显示到Screen2。用户录入设备信息后按保存按钮,Screen2将通过WebPost向数据库上传数据。图4-3 程序界面流程图Screen3数据记录。数据记录可对数据库的数据进行浏览、删除、发送的操作。4.4 摇一摇功能当用户晃动手机,重力传感器AccelerometerSensor触发震动效果并激活GPS定位功能

3、。4.5 GPS定位功能GPS定位功能是调用了LocationSensor部件获取经纬高度信息。手机晃动,计时器Clock2生效。Clock2生效时每0.5秒触发一次。当获取的Latitiude不等于0时,也就是成功获取经纬高度信息时,Clock2失效,同时将数据传到Screen2并打开Screen2。图4-4 摇一摇定位功能编程 GPS定位成功的判断过程在Screen1完成。4.6 API调用利用APP Inventop里的Web组件对API进行调用,利用Web.get来获取返回的数据程序。一共调用了3个API。第一个是转换坐标的API:http:/ Json解码编程第一个和第三个API的返

4、回值是包含结果的JSON值,需要将结果提取出来。Web1即第一个API的JSON提取如图。4.7 信息录入功能利用ListPicket组件,可让对设备类型进行选择,texebox组件可获得用户输入的设备信息。右图是将用户选择的设备类型的值+用户输入的设备信息的值设为tag的值。将经纬高度信息的值设为val值。图4-6 信息录入功能编码4.8 新浪SAE数据库的搭建程序中所使用的网络数据库是新浪SAE的MySQL数据库。首先在新浪SAE注册一个开发者账号,注册完毕就就能使用MySQL服务。数据库的PHP代码如下runSql ( $sql );echo 1;break;case 2 :$resul

5、t = mysql_query ( SELECT * FROM test1 where tag= . $tag . ); / 下载数据while ( $row = mysql_fetch_array ( $result ) ) echo $row value . ,;break;case 3 :$sql = SELECT * FROM test1; / 获取所有val$result = mysql_query ( $sql );while ( $row = mysql_fetch_array ( $result ) ) echo $row value . ,;break;case 4 :$sq

6、l = delete from test1 where tag = . $tag . ;/ 获取所有tag$mysql-runSql ( $sql );echo 1; / 删除指定tag的数据break;case 5 :$sql = update test1 set value = . $value . where tag = . $tag . ;$mysql-runSql ( $sql );echo 1; / 更换数据break;default :echo 0;$mysql-closeDb ();?数据库的访问连接为http:/ 数据操作功能图4-7 数据上传功能编程4.9.1 数据上传功能

7、利用web组件访问网址http:/ 数据删除功能同理,利用web组件访问网址http:/ 数据发送功能利用ActivityStarter1组件,呼叫的action为 android.intent.action.SEND,ExtraKey为android.intent.extra.TEXT即可呼出类似分享按钮的功能。通过这个Acivity,可将经纬高度信息通过短信、微信、邮件、QQ等以分享方式发送出去。4.9.4数据列表获取利用web组件访问http:/ 数据记录界面和http:/ 程序调试与测试第五章 程序调试与测试在开发过程中,遇到两个难题导致程序一直报错,最后经过调试后终于得以解决。5.1

8、 Screen2定位信息报错Screen2定位信息报错的原因由于当初没有在Screen1设置判断经纬高度的数值。若果定位失败,经纬高度的值为0.0,0.0,0.0。当Screen2将这串数值发送到API后,返回的结果跟正常结果不同,使原本Screen2中的Json解析函数不能解析,发生错误导致程序报错。解决办法:在Screen1中设置定位是否成功的判断,如图4-所示,当LocaticonSensor1.Latitude不等于0,也就是定位成功后才执行后边的语句,否则就重复获取经纬高度直至LocaticonSensor1.Latitude不等于0。图5-1 程序报错信息5.2 Screen3数据

9、记录报错Screen3数据记录报错的原因是原来列表项数的判断位于tag数组的语句中, val数组语句中并没有根据数据长度来决定列表项数。当网速受影响,val数组获取快于tag数组,由于没有判读列表项数,空列表会执行读取语句导致读取到空的数组导致程序报错。解决办法:添加val数组中列表项数的判断。图5-2 添加的代码5.3 录入信息设置限制字符图5-4 限制字符提示图5-3 限制字符编程数据库中返回的tag值是由“,”来隔开每一个值。所以如果tag数组中(即设备类型+设备信息)含有“,”将影响Screen3中数据列表的解析,从而导致列表结果显示出错。所以在输入设备信息中加入限制的字符,当输入的设备信息含有该字符时,程序会出现相应提示。5.4 程序测试本次以学校输电线路爬杆实训基地的三座铁塔为例,分别测试三座铁塔的经纬高度。图5-5 定位测试杆塔,分别为杆塔1、杆塔2、杆塔3经采用GPS信号的方式来定位,测出三座杆塔的经纬高度数据如下图:图5-6 测试数据图5-7 测试数据在地图显示将坐标转换成以百度地图为参考系的坐标后,显示在百度地图上如图所示。坐标情况基本符合实际情况,误差在允许的范围内。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 管理学资料

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号