今天了解了Android studio的三种定位方式
1.GPS定位:需要GPS硬件支持,直接和卫星交互来获取当前经纬度。
优点:速度快、精度高、可在无网络情况下使用。
缺点:首次连接时间长、只能在户外已经开阔地使用,设备上方有遮挡物就不行了、比较耗电。
2.Network定位:又细分为WIFI定位和基站定位
(1)基站定位:一般手机附近的三个基站进行三角定位,由于每个基站的位置是固定的,利用电磁波在这三个基站间中转所需要时间来算出手机所在的坐标
a.优点:受环境的影响情况较小,不管在室内还是人烟稀少的地方都能用,只要有基站。
b.缺点:首先需要消耗流量、其实精度没有GPS那么准确,大概在十几米到几十米之间
(2)WIFI定位:
a.优点:和基站定位一样,它的优势在于收环境影响较小,只要有Wifi的地方可以使用。
b.缺点:需要有wifi、精度不准
3.AGPS定位:AssistedGPS(辅助全球卫星定位系统),是结合GSM或GPRS与传统卫星定位
GSP常用的类
LocationManager:位置信息管理类。
Android为定位系统提供了LocationManager管理类。通过LocationManager和其他几个辅助类,开发人员可以方便开发出GPS应用:
LocationManager lm = getSystemService(Context.LOCATION_SERVICE);
LocationProvider: 提供定位信息的类。
LocationManager 提供了方法getAllProviders()获取所有的LocationProvider;
也可以通过名称获取指定的LocationProvider。
(1) GPS定位:通过卫星实现的
LocationProvider lProvider = locationManager.getProvider(LocationManager.GPS_PROVIDER);
(2) 网络定位:通过WI-FI 或者信号塔进行定位
LocationProvider lProvider = locationManager.getProvider(LocationManager.NETWORK_PROVIDER);
Location:位置类
double getLatitude()获取维度值
double getLongtitude()获取经度值
double getAltitude(); 获得海拔
在设备位置发生改变的时候获取到最新的位置信息。
void requestLocationUpdates(LocationManager.GPS_PROVIDER, 3000, new LocationListener{
void onLocationChanged();