最近有空时研究了一下MIT APP InVentor,这是一个原来google验室的项目,目的是为了给Andriod APP的开发者提供一种简便快捷的开发模式,但后来该项目被停止,2012年转给了MIT(麻省理工学院),目前由麻省理工学院继续开发及发布,当前最新的版本是2.0 bata版。

MIT APP Inventor应该是一个定位于 Android APP原生态开发模式及傻瓜式云端APP生成之间的开发工具产品,相比于Android APP原生态开发所采用的(SDK+JAVA+ Eclipse)开发模式,APP Inventor全部采用模块图形化的开发模式来开发Android APP,使得Android兴趣者不必进行任何代码开发,无需掌握任何具体的开发程序语言,仅根据业务需求设计就可以快速开发出APP产品,极大了降低了对APP开发的难度及开发周期,当然目前由于条件的限制,这种APP还是有很大的局限性,还不能充分及完整的用到Android OS中所有的资源,但对于一些UI、交互方式以及底层应用要求不是很高的APP而言,无疑是一个很好的开发利器,比起目前很多云端APP傻瓜式开发平台,又同时有了很大的自主灵活性,无疑有着很好的应用前景。

关于MIT APP Inventor的优缺点以及相关的资料信息,本文不再拗述,具体信息可参阅其官方网站www. appinventor.mit.edu。

本文重点讲述APP Inventor开发APP中如何利用GPS经纬度计算GPS距离、速度、方向。

目前的MIT APP Inventor中,具有LocationSensor控件,可作为位置方面的APP应用,当前版本(2.0)其输出参数仅包括纬度(Latitude)经度(Longtitude)高度(Altitude)以及精度(Accuracy)四个参数,但在实际的应用中还会用到距离、速度及方向参数,这在原生态APP开发中一点都不是问题,因为GPS的底层输出数据中已经至少包括了 “有效性、UTC时间、精度、纬度、经度、高度、速度、正北方向夹角”等参数,针对其中的速度与方向开发人员可直接使用,但在目前的APP Inventor中还不行,只能是通过已知的纬度、经度数据进行数学计算才能得到需要的数据,那么如何计算呢?本人通过查阅了网上的相关资料,对其中的算法进行了如下总结,与大家共享。

首先确定几个已知及假设条件,以便于后面的计算分析:

定义:假设地球是一个基本标准球体:

Pi=3.1415926  (圆周率)

R=6371Km(地球平均半径)

A点:(Lat1,Longti1)单位:degree

B点:(Lat2,Longti2)单位:degree

经度线周长(地球赤道周长)L=2*Pi*R=4003Km

经度不变的条件下,纬度每变化一度,距离变化 Lat_L=L/360=111km

1.  根据A点与B点的纬度与经度,如何计算AB点间的距离。

关于根据经纬度求距离,目前网上的资料很多,如果设距离为X

则:

2.  根据A点与B点的纬度与经度以及时间,如何计算A到B点间的速度。

设速度为S(Km/H),A点对应的时间为t1,B点对应的时间为t2

3. 根据A点与B点的纬度与经度,如何计算AB与真北方向的夹角

已知,同一经度条件下,纬度变化一度,距离改变大约 111km

将地球认为是一个标准球体,则在赤道上,经度每变化1度,距离的改变也是大约111km,随着纬度变为Lat_Radian, 在该纬度上经度每变化一度,距离变化:

当然在实际的处理过程中,还需加入当Lat2-Lat1=0,以及正负角度时的业务处理逻辑,以保证实际的数据业务需要,本文不再描述。

APP Inventor中如何利用GPS经纬度计算GPS距离、速度、方向相关推荐

  1. vue中引用高德地图根据经纬度计算两地距离

    vue中引用高德地图根据经纬度计算两地距离 一.示例图: npm安装 npm install vue-amap --save 在min.js文件中引入vue-amap import VueAMap f ...

  2. 地球经纬度计算两点距离

    现在利用--地球经纬度计算两点的距离--的基本原理计算气辉层所对应的经纬度距离. 基本原理如下: 纬度分为60分,每一分再分为60秒以及秒的小数.没错,60进制,纬度线投射在图上看似水平的平行线,但实 ...

  3. js根据经纬度计算两点距离

    js根据经纬度计算两点距离 1.html <button type="button" οnclick="distanceByLnglat(116.95400,39. ...

  4. 根据经纬度计算两地距离

    最近工作需要,网上搜索了下根据经纬度计算两地距离的方法,发现要么是几何法,画图.作一堆辅助线,然后证明推理,要么二话不说直接套公式.这篇文章介绍一种容易理解的方式来求这个距离. 0b00 思路 地球是 ...

  5. 百度地图根据经纬度计算距离php,详解js根据百度地图提供经纬度计算两点距离...

    正常在使用百度地图时,我们可以通过BMap的实例对象提供的方法计算距离: var map = new BMap.Map('map_canvas'); map.getDistance(point1 ,p ...

  6. mySQL函数根据经纬度计算两点距离

    mysql根据经纬度计算两点距离 定义自定义函数 DROP FUNCTION IF EXISTS func_calcDistance ; CREATE FUNCTION func_calcDistan ...

  7. 利用经纬度计算两地距离——Power BI

    通过两地的GPS经纬度信息来计算两地之间的直线距离 通过DAX公式,R为地球半径 var R = 6371.393 var Pi = PI() var a = POWER(sin(radians([l ...

  8. 在App Inventor中实例:画画(Canvas组件)

    实例应用一: 目标是创建一个PaintPot(油漆桶)应用,让用户在手机屏幕上绘制图画,并让用户用手机给自己拍照,然后在自己的照片上绘图. 在正式开始之前,在组件设计器右侧的"属性" ...

  9. js距离米转换为千米_js根据经纬度计算两点距离

    地球是一个近乎标准的椭球体,它的赤道半径为6378.140千米,极半径为6356.755千米,平均半径6371.004千米.如果我们假设地球是一个完美的球体,那么它的半径就是地球的平均半径,记为R.如 ...

最新文章

  1. 为什么双层循环 冒泡排序_冒泡排序的双重循环理解
  2. c++.net 托管类封装非托管类
  3. 利用mysql的预编译机制_SQL注入笔记记录+MySQL的事务隔离级别
  4. python主进程 子进程_pool主进程捕获子进程异常
  5. mysql修改表结构权限_mysql 修改表结构操作
  6. oracle appen,Oracle中关于insert中使用/*+append*/和nologging的总结
  7. 什么是Ajax和JSON,它们的优缺点
  8. (转)向SDE库中写入栅格和矢量数据
  9. 在同一个类中,一个方法调用另外一个有注解(比如@Async,@Transational)的方法,注解失效的原因和解决方法
  10. php面试 数组最大数,PHP 十万数字不同数组取最大的5个 (经典面试题topK) (原)
  11. 一篇文章带你搞懂 SpringBoot与Swagger整合
  12. [2018.07.14 T3] B君的第六题
  13. Element DateTimePicker 日期时间选择器 今天日期设置,并获取value值
  14. 微信更新值得注意的几点
  15. 32位系统的X86到底能支持多大内存
  16. 以太网、局域网、广域网、因特网、互联网与万维网
  17. VSCode配置 GitHub的Gist 同步设置和插件(简明教程)
  18. java new jsonparser_java – JSONParser无法解析为某种类型
  19. writeline是什么意思_c语言console.WriteLine什么意思?
  20. 【C语言】函数基本知识详细讲解(库函数、自定义函数、参数、函数的套用.....

热门文章

  1. vue3实现单点登录
  2. VS(Visual Studio)工具介绍
  3. 基于TCRT5000红外循迹模块DIY
  4. Cocoa​Pods
  5. Destroy无法删除对象
  6. 配置NPT时间同步器
  7. 常用JAVA项目监控工具
  8. ubuntu on thinkpad x61
  9. 大数据在银行业的应用与实践
  10. 分布式机器学习训练方案