Android定位
2015-09-19 09:50
387 查看
1.网络定位 ip地址定位,(让ip地址和实际地址形成一个数据库) 缺点:因为ip地址是动态分配的,会导致定位不准确 2.基站定位 在每个地区都用,保证手机有信号,就可以定位到自己,其范围是几百米到几公里不等 缺点:受地区限制,定位不准确 3.GPS .卫星定位 目前大多数手机都拥有的Gps定位,就是卫星定位(美国卫星),中国有的定位系统是北斗星定位。 卫星定位至少需要3颗卫星,GPS的定位用了24颗卫星。覆盖了90%区域。 目前非常的流行,原因是定位准确,并且只要我们的智能手机有电,不用网络也是可以定位的(效果其实有影响) 缺点:受云层,建筑等干扰 4.A-GPS辅助定位GPS,通过,网络和GPS共同定位,,一般Android手机都是这种定位。 用一个简单的例子说明定位: import java.util.List; import android.location.Location; import android.location.LocationListener; import android.location.LocationManager; import android.os.Bundle; import android.app.Activity; public class MainActivity extends Activity { private LocationManager lm; private LocationListener listener; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); lm = (LocationManager) getSystemService(LOCATION_SERVICE); // 获取手机所有的定位方式 List<String> allProviders = lm.getAllProviders(); listener = new LocationListener() { /** * 位置发生变化 */ @Override public void onLocationChanged(Location location) { String j = "经度:" + location.getLongitude(); String w = "维度:" + location.getLatitude(); String accuracy = "精确度"+location.getAccuracy(); String altitude = "海拔"+location.getAltitude(); System.out.println("j:===="+j+"w:===="+w+"10"+accuracy+"sasa"+altitude); } /** * 状态发生变化 */ @Override public void onStatusChanged(String provider, int status, Bundle extras) { // TODO Auto-generated method stub } @Override public void onProviderEnabled(String provider) { // TODO Auto-generated method stub } @Override public void onProviderDisabled(String provider) { // TODO Auto-generated method stub } }; //第一个参数是指以什么作为定位提供者(我选择的是GPS定位), // 最短更新时间 // 最短更新距离 // 定位的监听 lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0,// 这里我用的是时时更新 listener); } @Override protected void onDestroy() { // TODO Auto-generated method stub super.onDestroy(); //可以去除监听 lm.removeUpdates(listener); } } // 获取最佳的位置提供者 Criteria criteria = new Criteria(); criteria.setCostAllowed(true);// 是否允许付费(4G网络定位就是要付费的) criteria.setAccuracy(Criteria.ACCURACY_FINE);// 精确度一般就好,越高越耗电 String bestProvider = lm.getBestProvider(criteria, true); 经度: longitude -180~180 纬度: latitude -90~90 经度的起点为本初子午线,规定以过伦敦格林威治天文台的那条经线为0度经线,即本初子午线。 --Zero
相关文章推荐
- Android程序的时候就要设计到编写xml布局文件,这里就教你如何设置xml的自动补全。
- android 内存优化
- Android中Acition和Category常量表——转
- Android基础复习之基本控件
- android的5个存储方式
- Android-自定义ViewGroup
- andrid五大布局
- Android 开发环境下载地址
- Android 关于finish()、onDestory()、System.exit(0)、onCheckedChanged(RadioGroup arg0, int checkId)总结
- Android——单、多线程下载
- 使用Axure RP设计Android界面原型
- android Textview属性细节以及EditText属性
- Android 图片特效处理:Shader着色器、渲染
- Android 自定义九宫格控件Gridview用法以及属性
- 中文圣经 for Android
- Android 图片特效处理:Bipmapshader位图渲染器(CLAMP 、REPEAT 、MIRROR 区别)
- android 给view赋值的方法有几种?
- Android自定义控件之滑动开关
- Android下拉刷新实现原理
- Android自定义控件开发流程