android地图方位角_Android获取经纬度、计算距离、方位角

最近在Android上做GPS的东西,获取经纬度、计算距离、方位角,感觉在搞GIS样。当然,玩笑了,玩玩而已,稍微总结一下。

经度指示南北方向,纵向。

纬度指示东西方向,横向.

获取经纬度

使用GPS权限:

Android提供LocationManager和Location,可以方便的获得经纬度、海拔等位置。使用LocationManager来获得位置管理类,从而可以获得历史GPS信息以及位置变化的监听注册;使用Location来获得具体的位置信息。代码如下:

locationm= (LocationManager) getSystemService(LOCATION_SERVICE);

Criteria criteria =newCriteria();

criteria.setAccuracy(Criteria.ACCURACY_FINE);

criteria.setAltitudeRequired(false);

criteria.setBearingRequired(false);

criteria.setCostAllowed(true);

criteria.setPowerRequirement(Criteria.POWER_LOW);

String provider =locationm.getBestProvider(criteria,true);

Location location =locationm.getLastKnownLocation(provider);

//获得上次的记录

gps_loc(location);

LocationListener GPS_listener =newLocationListener() {

//监听位置变化,实时获取位置信息

@Override

publicvoidonStatusChanged(String provider,intstatus,

Bundle extras) {

//TODOAuto-generated method stub

}

@Override

publicvoidonProviderEnabled(String provider) {

//TODOAuto-generated method stub

}

@Override

publicvoidonProviderDisabled(String provider) {

//TODOAuto-generated method stub

}

@Override

publicvoidonLocationChanged(Location location) {

//TODOAuto-generated method stub

//位置发生改变时

gps_loc(location);

}

};

locationm.requestLocationUpdates(provider, 1000, 0, GPS_listener);

}

//获得自己位置

privatevoidgps_loc(Location location) {

if(location !=null) {

self_weidu= location.getLatitude();

self_jindu= location.getLongitude();

}else{

self_weidu= 0;

self_jindu= 0;

}

}

两点经纬度,计算距离

1.Lat1 Lung1表示A点经纬度,Lat2 Lung2表示B点经纬度;

2.a=Lat1–Lat2为两点纬度之差b=Lung1 -Lung2为两点经度之差;

3.6378.137为地球半径,单位为千米;

计算出来的结果单位为千米。

我作为不明真相的群众就围观转一下maps的代码:计算的结果是米为单位。

//计算两点距离

privatefinaldoubleEARTH_RADIUS= 6378137.0;

privatedoublegps2m(doublelat_a,doublelng_a,doublelat_b,doublelng_b) {

doubleradLat1 = (lat_a * Math.PI/ 180.0);

doubleradLat2 = (lat_b * Math.PI/ 180.0);

doublea = radLat1 - radLat2;

doubleb = (lng_a - lng_b) * Math.PI/ 180.0;

doubles = 2 * Math.asin(Math.sqrt(Math.pow(Math.sin(a / 2), 2)

+ Math.cos(radLat1) * Math.cos(radLat2)

* Math.pow(Math.sin(b / 2), 2)));

s = s *EARTH_RADIUS;

s = Math.Round(s * 10000) / 10000;

returns;

}

两点经纬度,计算方位角

方位角这个玩意更加是不知道计算公式,在谷歌上搜了两个钟头也没找到公式。在一个移动通信论坛有工具,只是下不了,非得邀请码才注册,和那个什么社区一样了。最后在下了一个excel,用它的计算公式写了一个。

计算方位角pab,

其中lat_a, lng_a是A的纬度和经度;lat_b, lng_b是B的纬度和经度。代码如下:

//计算方位角pab。

privatedoublegps2d(doublelat_a,doublelng_a,doublelat_b,doublelng_b) {

doubled = 0;

lat_a=lat_a*Math.PI/180;

lng_a=lng_a*Math.PI/180;

lat_b=lat_b*Math.PI/180;

lng_b=lng_b*Math.PI/180;

d=Math.sin(lat_a)*Math.sin(lat_b)+Math.cos(lat_a)*Math.cos(lat_b)*Math.cos(lng_b-lng_a);

d=Math.sqrt(1-d*d);

d=Math.cos(lat_b)*Math.sin(lng_b-lng_a)/d;

d=Math.asin(d)*180/Math.PI;

//d = Math.round(d*10000);

returnd;

}

依然不明白方位角的计算公式和原理,求达人指导。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/520692.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SpringBoot 集成 mybatisPlus

文章目录一、1. pom2. application.yml3. dao层接口集成baseMapper4. 启动类上扫描5. 创建数据库6. 初始化表结构7. 浏览器验证8. 源码地址一、 1. pom <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/P…

让开发变得更简单 | 阿里云中间件推出全新开发者服务

要码出未来&#xff0c;除了程序员专属的节日福利&#xff0c;还需要实打实的为程序员解决手头的难题。 10月24日&#xff0c;阿里云中间件推出全新开发者服务&#xff0c;发布3款开发工具&#xff0c;包括Alibaba Cloud Toolkit 、链路追踪Tracing Analysis和应用高可用服务AH…

android 4.4 屏幕方向,Android4.4屏幕旋转功能

由于Android4.4系统上去掉了ro.sf.hwrotation属性的支持&#xff0c;因为不能使用之前的方法进行屏幕旋转了。暂时没有找到相应的属性和后门&#xff0c;于是自己写了一个屏幕旋转的临时代码&#xff0c;后面找到更好的方法后再替换。具体代码如下&#xff1a;~/framework/nati…

免费!这里有一份开发者进阶“宝典”求带走

戳蓝字“CSDN云计算”关注我们哦&#xff01;作为开发者&#xff0c;无论是前端还是后端&#xff0c;做机器学习还是云计算、架构&#xff0c;保持对技术的敏感性都是非常重要的事。新技术一般发源于人力、财力等各方面资源都很雄厚的大厂&#xff0c;经过时间的沉淀逐渐成为技…

阿里云发布多款云管工具,任何角色都可以轻松完成云上运维

无论是在传统的开发过程&#xff0c;还是在云上&#xff0c;运维都是一个十分重要而又繁重的工作。随着企业规模的扩大&#xff0c;系统架构的复杂度在增加&#xff0c;部署规模也在不断扩大&#xff0c;控制台不再能满足其需求&#xff0c;需要一个便捷、实用的运维系统或者运…

介词for和with 和of的用法_常用介词用法(for to with of)

给……”、“对…… (而言)”。如:Let me pick it up for you.让我为你捡起来。Watching TV too much is bad for your health.看电视太多有害于你的健康。4.表示时间、距离,意为“计、达”。如:I usually do the running for an hour in the morning.我早晨通常跑步一小时。We…

xml报文需求实战

文章目录1. 工具类2. 测试类3. 工具发送报文为了大家快速理解报文解析是做什么的&#xff1f;简单的给大家按照企业的解析思路&#xff0c;给大家做了一个需求实战的真实流程&#xff0c;解析的报文每个厂商都不一样&#xff0c;因此&#xff0c;我自己造了一个xml报文&#xf…

阿里云容器技术专家莫源:乘风踏雪归来,仍是此间少年

我叫刘中巍&#xff0c;花名莫源&#xff0c;是阿里云容器服务团队的技术专家&#xff0c;13年加入阿里云&#xff0c;从零开始参与多款云产品的研发。在1024开发者节之际&#xff0c;来分享下自己的成长故事。 “平凡但不安分”的男孩 我是一个来自北方的孩子&#xff0c;从小…

12306 的技术扒光在你面前,100 万人如何抢 1 万张票

戳蓝字“CSDN云计算”关注我们哦&#xff01;作者 | IT牧场责编 | 阿秃12306 抢票&#xff0c;极限并发带来的思考每到节假日期间&#xff0c;一二线城市返乡、外出游玩的人们几乎都面临着一个问题&#xff1a;抢火车票&#xff01;虽然现在大多数情况下都能订到票&#xff0…

android monkey优化,GitHub - baozhida/AndroidMonkey: 这个项目是CrashMonkey4Android可执行文件,修复了一些bug,做了一些优化...

简介这个项目是CrashMonkey4Android可执行文件原版不支持64位java&#xff0c;只支持32位的此版本支持java 64位&#xff0c;并且修改了一些内部逻辑&#xff0c;把CrashMonkey4Android 和CrashMonkey4Android_tradefederation 重新打包2017-3-13更新1.去掉了每个monkey操作时候…

常见Serialize技术探秘(ObjectXXStream、XML、JSON、JDBC byte编码、Protobuf)

目前业界有各种各样的网络输出传输时的序列化和反序列化方案&#xff0c;它们在技术上的实现的初衷和背景有较大的区别&#xff0c;因此在设计的架构也会有很大的区别&#xff0c;最终在落地后的&#xff1a;解析速度、对系统的影响、传输数据的大小、可维护性及可阅读性等方面…

js数组查找最接近_在JavaScript数组中找到最小元素的位置

在JavaScript数组中找到最小元素的位置注* 之前有篇文章介绍过数据遍历的性能比较&#xff1a; for in 比for loop慢至少20倍 &#xff0c;这是另外一篇比较数组查找性能的例子&#xff0c;通过对手工/indexOf/reduce三者的比较&#xff0c;再次映证&#xff0c;内置函数不一下…

Mybatis Generator 配置详解

许多人在Java项目中都会到使用Mybatis Generator这个工具包&#xff0c;这里把这个工具的配置完整列一下&#xff1a; <?xml version"1.0" encoding"UTF-8"?> <!DOCTYPE generatorConfigurationPUBLIC "-//mybatis.org//DTD MyBatis Gene…

MariaDB强势席卷DB-Engines榜单后续,与阿里云达成全球独家战略合作

2018年10月份&#xff0c;DB-Engines 发布了月全球数据库排名&#xff0c;排名前三的一如既往还是Oracle、MySQL、Microsoft SQL Server。排名是重要指标&#xff0c;同时增长率的重要性也同样备受重视。 MariaDB以黑马之势&#xff0c;强势席卷DB-Engines榜单 在DB-Engines跟…

html5怎么自动生成meta标签,html中meta标签该如何使用

为什么需要使用标签&#xff1f;在我们制作的网页中&#xff0c;要是想让它能够让更多的人去访问&#xff0c;最好的方法就是通过搜索引擎来找到你的网址&#xff0c;于是需要你的网页可以有关键词能够让搜索引擎来识别&#xff0c;于是HTML中的标签就是这个功能&#xff0c;将…

2025年将达6.4万亿美元!AI这下玩大了……

最近&#xff0c;在看大厂新季度财报时&#xff0c;发现了“搜狗”亮眼的成绩。就在前天&#xff0c;搜狗发布了2019年第三季度财报&#xff1a;营收3.149亿美元&#xff0c;实现14%的同比增长&#xff0c;高于行业增长速度。搜狗的净利润达3660万美元&#xff0c;比去年同期增…

存储系统设计——NVMe SSD性能影响因素一探究竟

目录 1 存储介质的变革 2 NVME SSD成为主流 2.1 NAND FLASH介质发展 2.2 软件层面看SSD——多队列技术 2.3 深入理解SSD硬件 3 影响NVME SSD的性能因素 3.1 GC对性能的影响 3.2 IO PATTERN对性能的影响 3.2.1 顺序写入Pattern对SSD性能优化的奥秘 3.2.2 读写冲突Patte…

教程 海湾主机crt_海湾消防主机JB-QT-GST5000火灾报警控制器(联动型)与crt是怎么联接编公式的...

联动公式是用来定义系统中报警设备与被控设备间联动关系的逻辑表达式。当系统中的探测设备报警或控制模块的状态发生变化时&#xff0c;控制器可按照这些逻辑表达式自动对被控设备执行“立即启动”或“延时启动”操作。本系统联动公式由等号分成前后两部分&#xff0c;前面为条…

使用IntelliJ IDEA 2020 高效开发 springboot项目

文章目录一、快速开发基础配置1. 全局配置2. maven3. 自动导入包4. 取消大小写敏感一、快速开发基础配置 前置知识&#xff1a; 有些时候明明都设置好了一些配置&#xff0c;但是新建项目之后&#xff0c;就恢复默认设置了&#xff0c;原因是你设置的配置支队你刚打开的这一个…

html实体转换成xa0,关于javascript:反应道具:在JSX动态内容中使用HTML实体?

我有一个React组件&#xff0c;我想为其道具分配一个包含JavaScript变量和HTML实体的字符串。我尝试过的一些方法导致HTML实体被转义。例如&#xff0c;从字面上呈现为" "而不是" –"。有没有办法让HTML实体在分配给React道具的JSX动态内容块中呈现为未转义…