- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
APPinventor GPS定位程序说明.docx
4.2程序界面设计程序界面采用蓝白灰搭配的简洁配色和扁平化的视觉设计,减少用户的认知成本。在APP Inventor中采用Screen Arrangement控件对屏幕进行分割与排版来保持界面美观。程序一共有3屏,分别是Screen1摇一摇定位界面、Screen2定位信息和Screen3数据记录。每个Screen之间可以跳转返回。4.3程序架构设计Screen1摇一摇定位界面,当用户晃动手机触发定位功能。当手机定位成功获取到经纬高度数据时,便将数据传到Screen2。当定位失败,没有获取到数据,Screen1就会触发一个计时器,每0.5秒重新获取一次经纬高度,此时界面显示正在定位。直至获取到信息后才会打开Screen2,否则一直停留在Screen1。Screen2定位信息界面。Screen2接受到Screen1传来的经纬高度信息后通过WebPost向API发送请求,WebGet获取API返回的数据进行处理从而将结果显示到Screen2。用户录入设备信息后按保存按钮,Screen2将通过WebPost向数据库上传数据。Screen3数据记录。数据记录可对数据库的数据进行浏览、删除、发送的操作。4.4摇一摇功能当用户晃动手机,重力传感器AccelerometerSensor触发震动效果并激活GPS定位功能。4.5 GPS定位功能GPS定位功能是调用了LocationSensor部件获取经纬高度信息。手机晃动,计时器Clock2生效。Clock2生效时每0.5秒触发一次。当获取的Latitiude不等于0时,也就是成功获取经纬高度信息时,Clock2失效,同时将数据传到Screen2并打开Screen2。 GPS定位成功的判断过程在Screen1完成。4.6API调用利用APP Inventop里的Web组件对API进行调用,利用Web.get来获取返回的数据程序。一共调用了3个API。第一个是转换坐标的API:/gpsApi.php?lat=22.502412986242lng=113.93832783228将经纬度发送过去获得转换后的百度坐标系的经纬高度。第二个是获取静态地图的API:/staticimage?center=116.403874,39.914888width=300height=200zoom=11将转换后的经纬高度发送过去获得对应经纬高度的静态地图。第三个是获取街道名称的API:/geocoder?location=23.16177945888,112.57470709225output=jsonkey=E78ebbf34f3b7d067d7b94a18dd642bb将转换后的经纬高度发送过去获得对应街道地址。第一个和第三个API的返回值是包含结果的JSON值,需要将结果提取出来。Web1即第一个API的JSON提取如图。4.7信息录入功能利用ListPicket组件,可让对设备类型进行选择,texebox组件可获得用户输入的设备信息。右图是将用户选择的设备类型的值+用户输入的设备信息的值设为tag的值。将经纬高度信息的值设为val值。4.8新浪SAE数据库的搭建程序中所使用的网络数据库是新浪SAE的MySQL数据库。首先在新浪SAE注册一个开发者账号,注册完毕就就能使用MySQL服务。数据库的PHP代码如下?phpheader ( Content-type:text/html;charset=utf-8 );$order = strip_tags ( $_REQUEST [ord] ); // 从http字段中取命令数$tag = $_POST [tag]; // 获取post数据中的tag$value = $_POST [val]; // 获取post数据中的value$mysql = new SaeMysql (); // 初始化/* 连主库 */$link = mysql_connect( SAE_MYSQL_HOST_M . : . SAE_MYSQL_PORT, SAE_MYSQL_USER, SAE_MYSQL_PASS );/* 连从库 *//*$link=mysql_connect(SAE_MYSQL_HOST_S.:.SAE_MYSQL_PORT,SAE_MYSQL_USER,SAE_MYSQL_PASS);*/if ($link) {mysql_select_db( SAE_MYSQL_DB, $link );switch ($order) {case 1 :{$sql = INSERT INTO `test1` ( `tag` , `value` ) VALUES ( . $tag . , . $value . ) ; // 上传数据$mysql-runSql( $sql
文档评论(0)