admin管理员组文章数量:1566223
其实现在在国内很多的开发人员可能会选择使用国内厂商的API来进行定位和相关的地图操作,比如百度、高德或者腾讯地图。而Google官方API的最大问题在于可能会受到网络限制,换句话说,你可能需要“梯子”。
一、配置和基础代码
第一步:获取权限
<!-- 获取GPS地理位置权限 -->
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<!-- 获取 NET WORK地理位置权限 -->
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
第二步:在代码中定义一个LocationManager类的实例:
LocationManager locationManager = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
第三步:定制定位算法的一些参数:
Criteria criteria = new Criteria();
criteria.setAccuracy(Criteria.ACCURACY_FINE); //设置为最大精度
criteria.setAltitudeRequired(false); //不要求海拔信息
criteria.setCostAllowed(false); //是否允许付费
criteria.setPowerRequirement(Criteria.POWER_LOW); //对电量的要求
criteria.setBearingRequired(false); //不要求Bearing信息(类似地轴线的东西)
String bestProvider = locationManager.getBestProvider(criteria, false);
第四步:获取经纬度:
Location location = locationManager.getLastKnownLocation(bestProvider);
double latitude = location.getLatitude(); //经度
double longitude = location.getLongitude(); //纬度
double altitude = location.getAltitude(); //海拔
二、监听器
因为在定位的应用场景中,很多时候手机(或者其它设备)的位置是会一直变化的,例如在汽车上,或是在路上行走。所以需要一个监听器来监听全球定位的位置的实时变化。
第一步:创建监听器实例,并重载它的方法:
LocationListener locationListener = new LocationListener(){
@Override
public void onLocationChanged(Location location) {
// TODO Auto-generated method stub
//当位置发生变化时,你要做的事情
}
@Override
public void onProviderDisabled(String provider) {
// TODO Auto-generated method stub
//当位置提供者(Provider)不可用时,你要做的事情
}
@Override
public void onProviderEnabled(String provider) {
// TODO Auto-generated method stub
//当位置提供者(Provider)可用时,你要做的事情
}
@Override
public void onStatusChanged(String provider, int status,Bundle extras) {
// TODO Auto-generated method stub
//当状态发生变化时,你要做的事情
}
};
第二步:在LocationManager的实例里注册该监听器:
locationManager.requestLocationUpdates(bestProvider, 1000, 0, locationListener);
上述代码中的“1000”是监听器的监听间隔时间
如果直接使用Activity自身来实现监听器的话,那么在注册时可以使用this关键字:
locationManager.requestLocationUpdates(bestProvider, 1000, 0, this);
版权声明:本文标题:使用Google官方API进行全球定位 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://www.elefans.com/dianzi/1725992436a1051654.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论