android_定位的介绍

来源:互联网 发布:国云数据裁员 编辑:程序博客网 时间:2024/06/14 20:31

定位相关

  1. 基站定位

通过基站来定位, 偏差值较高, 百米左右

  1. WiFi定位

通过WiFi来定位, 偏差值估计 几十米左右

  1. GPS定位

通过GPS芯片定位 ,偏差值 几米左右

对于在中国的GPS定位,不得不提的就是火星坐标了

火星坐标

是一种国家保密插件,也叫做加密插件或者加偏或者SM模组,其实就是对真实坐标系统进行人为的加偏处理,按照特殊的算法,将真实的坐标加密成虚假的坐标,而这个加偏并不是线性的加偏,所以各地的偏移情况都会有所不同。而加密后的坐标也常被人称为火星坐标系统。

在android怎么实现定位呢?
代码演示一下`

public class MainActivity extends Activity {    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        //获取定位的管理者        LocationManager manager = (LocationManager) getSystemService(LOCATION_SERVICE);        /*          * 参数一: 使用什么方式定位 , 基站 、WiFi, gps         * 参数二:  过了多少时间,就更新位置         * 参数三: 过了多少距离就更新位置         */        manager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER,1000, 50, new LocationListener() {            //定位方式状态发生了变化            @Override            public void onStatusChanged(String provider, int status, Bundle extras) {                Log.d(TAG, "onStatusChanged==="+provider);            }            //这种定位方式可用            @Override            public void onProviderEnabled(String provider) {                Log.d(TAG, "onProviderEnabled==="+provider);            }            //这种定位方式不可用            @Override            public void onProviderDisabled(String provider) {                Log.d(TAG, "onProviderDisabled==="+provider);            }            //位置发生了变化,就调用            @Override            public void onLocationChanged(Location location) {//location.getLongitude()获取经度//location.getLatitude()获取维度Log.d("tag", "onLocationChanged==="+location.getLongitude() + "---" + location.getLatitude());            }        });    }}

添加权限

  <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
0 0
原创粉丝点击