三种获取手机的位置的方式

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期学后总结笔记(三)相关推荐

  1. 黑马52期学后总结笔记(十)

    92_杀毒软件的原理_34 1.什么是病毒? 电脑上的一个特殊的程序: 2.计算机第一个病毒? 搜索:计算机第一个病毒: 当时人们只是为了研究某个技术是否可行.没事干的时候开发的. 目的:技术研究或者 ...

  2. 黑马52期+28期+32期+46期最新android视频免费下载

    黑马52期+28期+32期+46期最新android视频免费下载,本人花费高价在黑马学员手上购买的,视频全部完整,加QQ2805816571获取下载地址.

  3. 斯坦福深度学习CS230课程cheatsheet学后总结笔记(1)

    斯坦福深度学习CS230课程cheatsheet学后总结提纲1 Marshal Zheng 2019-04-12 文章目录 斯坦福深度学习CS230课程cheatsheet学后总结提纲1 Overvi ...

  4. 2022黑马Redis跟学笔记.实战篇(二)

    2022黑马Redis跟学笔记.实战篇 二 实战篇Redis 开篇导读 4.1短信登录 4.1.1. 搭建黑马点评项目 一.导入黑马点评项目 二.导入SQL 三.有关当前模型 四.导入后端项目 相关依 ...

  5. 黑马程序员Java教程学习笔记(三)

    学习视频:https://www.bilibili.com/video/BV1Cv411372m 如侵权,请私信联系本人删除 文章目录 黑马程序员Java教程学习笔记(三) 面向对象:设计对象.注意事 ...

  6. 黑马12期 day73-EasyUI笔记(2017年7月11日16:23:45)

    黑马12期的easyui笔记 链接:http://pan.baidu.com/s/1gfJ1q1P 密码:brhq 转载于:https://www.cnblogs.com/huangtao1996/p ...

  7. 跟着鸟哥学Linux系列笔记1

    跟着鸟哥学Linux系列笔记0-扫盲之概念 跟着鸟哥学Linux系列笔记0-如何解决问题 装完linux之后,接下来一步就是进行相关命令的学习了 第五章:首次登录与在线求助man page 1. X ...

  8. 黑马程序员,黑马论坛----'黑马.Net10期,毕业90天,100%全部就业,平均薪水7089元!

    来源:黑马程序员,黑马论坛 黑马.Net10期,毕业90天,100%全部就业,平均薪水7089元! 班级名称:黑马.Net 10期    毕业时间:2014年3月25日      总人数:55 班  ...

  9. 第52期《SCI论文插图排版与绘制》课程欢迎你!

    全文概要:Adobe Illustrator是论文插图排版与绘制最常用的软件,既可以制作出符合任何杂志投稿要求的figure,也可以绘制出高分杂志上非常漂亮的示意图.但是自学软件操作往往费时费力,为了 ...

最新文章

  1. 如何评价创作歌手的业务能力?试试让NLP帮你分析一下
  2. 排序算法四:归并排序
  3. Effective MySQL之深入解析复制技术
  4. 高度随宽度适应的响应式方案
  5. 八中计算机是学啥的,北京八中:居然有这么好玩的课
  6. java如何对list进行排序_java中如何对list进行排序
  7. 自动化运维的正确姿势,你试了也会上瘾 | 社区福利
  8. 青铜到王者:AIOps 平台在腾讯的升级之路
  9. java 解决死锁_如何解决java中的死锁问题
  10. 微服务升级_SpringCloud Alibaba工作笔记0020---Nacos之命名和空间分组以及DataId三者之间的关系
  11. JVM设置最大最小内存参数
  12. JAVA中Calendar与Date类型互转
  13. OmegaXYZ知识图谱应用Github仓库(长期更新)
  14. 简单的抓包_学习笔记
  15. 郑传华:微商快速赚钱108招
  16. ESX4 安装前的考虑
  17. html中不显示竖线边框代码,DIV用CSS定义边框为实线,但为什么预览的时候不显示。...
  18. LeetCode题解(0695):岛屿的最大面积(Python)
  19. 猪呀,羊呀,送到哪里去?
  20. 广州2年php8k,2年后,那位月入3000月供3400的广州女孩,终于被我们找到了

热门文章

  1. 次梯度(坐标法)、迭代加权最小二乘、ADMM求解Lasso
  2. 【SQL Server】数据库开发指南(三)面向数据分析的 T-SQL 编程技巧与实践
  3. 站长号词库:今日热门长尾关键词挖掘 20221127
  4. 微服务架构设计基础之立方体模型
  5. vdex合并_【APK教程】合并odex与apk至完整apk
  6. 计算机网路复习系列:UrlConnection连接和Socket连接的区别
  7. 案例1:使用awk提取文本案例2:awk处理条件案例3:awk综合脚本应用案例4:awk流程控制案例5:awk扩展应用
  8. google host地址
  9. 【每日一篇】Servlet/tomcat/spring mvc之间关系
  10. JAVA素因子只有3 5 7_第k个数