黑马52期学后总结笔记(三)
三种获取手机的位置的方式
1、网络定位(network)。前提是必须连上网络:wifi、3G、2G;
获取到IP地址
例如:传美版QQ,彩虹版QQ,珊瑚虫版QQ,就有一个功能显示对方的IP;
根据IP显示具体的位置;
原理是建立一个库那个IP地址对应那个地方;早期警方破案就采用此特点;
有局限性:针对固定的IP地址。
如果手机网或者ip地址是动态分布IP,这个偏差就很大。这种情况是无法满足需求的。
2、基站定位(passive)。
工作原理:手机能打电话,是需要基站的。手机定位也是用基站的。
手机附近能收到3个基站的信号,就可以定位了。
基站定位有可能很准确,比如基站多的地方;
如果基站少的话就会相差很大。
精确度:几十米到几公里不等;
3、GPS定位(gps)。
A-GPS使用了卫星定位 需要联网辅助修正位置
需要3颗卫星;
特点是:需要搜索卫星,头顶必须是空旷的;
影响条件:云层、大厦、大树。
卫星:美国人、欧洲人的卫星。
北斗:中国的,但没有民用,只是在大巴,战机等使用。
精确度:15米左右
代码实现获取手机位置
1.写代码单独创建一个工程(TestGPS)演示;
packagecom.example.testgps;
publicclass MainActivity extends Activity {
private LocationManager lm;
private MyLocationListener listener;
@Override
protected void onCreate(BundlesavedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
lm= (LocationManager) getSystemService(LOCATION_SERVICE);
listener= new MyLocationListener();
// 第二个参数:两次位置更新的时间间隔
lm.requestLocationUpdates("gps", 0, 0, listener);
}
class MyLocationListener implementsLocationListener {
// 当位置发生变化 执行者方法
@Override
publicvoid onLocationChanged(Location location) {
String longitude = "经度:" + location.getLongitude() +"\n";
String latitude = "纬度:" + location.getLatitude() +"\n";
String accuracy = "精度:" + location.getAccuracy() +"\n";
TextView textView = newTextView(getApplicationContext());
textView.setText(longitude + latitude +accuracy);
setContentView(textView);
}
// 当某一个位置提供者状态发生变化的时候 关闭--》开启或者开启--》关闭
@Override
publicvoid onStatusChanged(String provider, int status, Bundle extras) {
}
@Override
publicvoid onProviderEnabled(String provider) {
}
@Override
publicvoid onProviderDisabled(String provider) {
}
}
@Override
protected void onDestroy() {
super.onDestroy();
lm.removeUpdates(listener);
listener= null;
}
}
2.权限:
<uses-permissionandroid:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permissionandroid:name="android.permission.ACCESS_MOCK_LOCATION"/>
获取手机位置的细节-火星坐标
准备条件是:得到GPS坐标
1、在ditu.google.cn上输入显示,找出偏移的原因;
2、介绍火星坐标
3、如何解决火星坐标的偏移的问题、创建Java工程使用代码
public static void main(String[] args)throws Exception {
ModifyOffset modifyOffset =ModifyOffset.getInstance(GetHuoxingLocation.class.getResourceAsStream("axisoffset.dat"));
PointDouble double1 =modifyOffset.s2c(newPointDouble(116.35372477, 40.06813447));
System.out.println(double1);
}
代码实现获取手机位置
1、创建服务GPSService 并移植代码到里面面,并优化细节。
2、 优化代码细节
Criteria criteria = new Criteria();
criteria.setAccuracy(Criteria.ACCURACY_FINE);
Stringprovider = lm.getBestProvider(criteria,true);
lm.requestLocationUpdates(provider, 0, 0,listener);
设置参数细化:
criteria.setAccuracy(Criteria.ACCURACY_FINE);//设置为最大精度
criteria.setAltitudeRequired(false);//不要求海拔信息
criteria.setBearingRequired(false);//不要求方位信息
criteria.setCostAllowed(true);//是否允许付费
criteria.setPowerRequirement(Criteria.POWER_LOW);//对电量的要求
黑马52期学后总结笔记(三)相关推荐
- 黑马52期学后总结笔记(十)
92_杀毒软件的原理_34 1.什么是病毒? 电脑上的一个特殊的程序: 2.计算机第一个病毒? 搜索:计算机第一个病毒: 当时人们只是为了研究某个技术是否可行.没事干的时候开发的. 目的:技术研究或者 ...
- 黑马52期+28期+32期+46期最新android视频免费下载
黑马52期+28期+32期+46期最新android视频免费下载,本人花费高价在黑马学员手上购买的,视频全部完整,加QQ2805816571获取下载地址.
- 斯坦福深度学习CS230课程cheatsheet学后总结笔记(1)
斯坦福深度学习CS230课程cheatsheet学后总结提纲1 Marshal Zheng 2019-04-12 文章目录 斯坦福深度学习CS230课程cheatsheet学后总结提纲1 Overvi ...
- 2022黑马Redis跟学笔记.实战篇(二)
2022黑马Redis跟学笔记.实战篇 二 实战篇Redis 开篇导读 4.1短信登录 4.1.1. 搭建黑马点评项目 一.导入黑马点评项目 二.导入SQL 三.有关当前模型 四.导入后端项目 相关依 ...
- 黑马程序员Java教程学习笔记(三)
学习视频:https://www.bilibili.com/video/BV1Cv411372m 如侵权,请私信联系本人删除 文章目录 黑马程序员Java教程学习笔记(三) 面向对象:设计对象.注意事 ...
- 黑马12期 day73-EasyUI笔记(2017年7月11日16:23:45)
黑马12期的easyui笔记 链接:http://pan.baidu.com/s/1gfJ1q1P 密码:brhq 转载于:https://www.cnblogs.com/huangtao1996/p ...
- 跟着鸟哥学Linux系列笔记1
跟着鸟哥学Linux系列笔记0-扫盲之概念 跟着鸟哥学Linux系列笔记0-如何解决问题 装完linux之后,接下来一步就是进行相关命令的学习了 第五章:首次登录与在线求助man page 1. X ...
- 黑马程序员,黑马论坛----'黑马.Net10期,毕业90天,100%全部就业,平均薪水7089元!
来源:黑马程序员,黑马论坛 黑马.Net10期,毕业90天,100%全部就业,平均薪水7089元! 班级名称:黑马.Net 10期 毕业时间:2014年3月25日 总人数:55 班 ...
- 第52期《SCI论文插图排版与绘制》课程欢迎你!
全文概要:Adobe Illustrator是论文插图排版与绘制最常用的软件,既可以制作出符合任何杂志投稿要求的figure,也可以绘制出高分杂志上非常漂亮的示意图.但是自学软件操作往往费时费力,为了 ...
最新文章
- 如何评价创作歌手的业务能力?试试让NLP帮你分析一下
- 排序算法四:归并排序
- Effective MySQL之深入解析复制技术
- 高度随宽度适应的响应式方案
- 八中计算机是学啥的,北京八中:居然有这么好玩的课
- java如何对list进行排序_java中如何对list进行排序
- 自动化运维的正确姿势,你试了也会上瘾 | 社区福利
- 青铜到王者:AIOps 平台在腾讯的升级之路
- java 解决死锁_如何解决java中的死锁问题
- 微服务升级_SpringCloud Alibaba工作笔记0020---Nacos之命名和空间分组以及DataId三者之间的关系
- JVM设置最大最小内存参数
- JAVA中Calendar与Date类型互转
- OmegaXYZ知识图谱应用Github仓库(长期更新)
- 简单的抓包_学习笔记
- 郑传华:微商快速赚钱108招
- ESX4 安装前的考虑
- html中不显示竖线边框代码,DIV用CSS定义边框为实线,但为什么预览的时候不显示。...
- LeetCode题解(0695):岛屿的最大面积(Python)
- 猪呀,羊呀,送到哪里去?
- 广州2年php8k,2年后,那位月入3000月供3400的广州女孩,终于被我们找到了
热门文章
- 次梯度(坐标法)、迭代加权最小二乘、ADMM求解Lasso
- 【SQL Server】数据库开发指南(三)面向数据分析的 T-SQL 编程技巧与实践
- 站长号词库:今日热门长尾关键词挖掘 20221127
- 微服务架构设计基础之立方体模型
- vdex合并_【APK教程】合并odex与apk至完整apk
- 计算机网路复习系列:UrlConnection连接和Socket连接的区别
- 案例1:使用awk提取文本案例2:awk处理条件案例3:awk综合脚本应用案例4:awk流程控制案例5:awk扩展应用
- google host地址
- 【每日一篇】Servlet/tomcat/spring mvc之间关系
- JAVA素因子只有3 5 7_第k个数