Android 基于位置的开发与百度地图(一)

来源:互联网 发布:linux打开文本命令 编辑:程序博客网 时间:2024/06/12 01:02

Android 中基于位置的开发

一、找到自己的位置

归根结底,基于位置的服务所围绕的核心就是确定自己的位置。在Android中实现起来并不困难,主要借助 LocationManager 这个类就可以实现了。
LocationManager 的基本用法:
①要想使用LocationManager 就必须要先获取它的实例
②需要选择一个位置提供器,一般情况下都是获取所有可用的位置提供器
③将选择好的位置提供器传递给getLastKnownLocation()方法中,就可以得到一个Location对象,而这个Location对象包含了你所需要的位置信息,如经纬度、海拔等。虽然此方法可以获取经纬度,但是要想获取移动后最新的位置,LocationManager 提供了一个requestLocaionUpdates()方法,只要传入一个LocationListener 实例。

实例:获取自己当前位置的经纬度
public class MainActivity extends Activity {private TextView textView;private LocationManager locationManager;private String provider;public static final int SHOW_LOCATION=0;/* * LocationManager 的基本用法:(此例子只为获取当前位置的经纬度) * 步骤一:要想使用LocationManager 首先是要获取他的实例 * 步骤二:选择一个位置提供器provider * 步骤三:将选择好的位置提供器provider传入getLastKnownLocation()方法中,返回一个Location对象,而这个Location对象就包含了你所要位置信息的经纬度等等信息 *  * 以上三个步骤只是得到当前设备的位置信息,若移动设备改变位置,那么如何获取最新的位置信息呢? *  * 步骤五:LocationManager 提供一个requestLocationUpdates()方法,只需要传入一个LocationListener的实例 * 步骤四:所以还需要创建一个LocationListener的实例 *  */@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);textView=(TextView)findViewById(R.id.position);//步骤一:获取LocationManager的实例locationManager=(LocationManager)getSystemService(Context.LOCATION_SERVICE);//步骤二:获取可用的位置提供器List<String> providerlist=locationManager.getProviders(true);//true 表示返回只有启动的位置提供器if (providerlist.contains(LocationManager.GPS_PROVIDER)){provider=LocationManager.GPS_PROVIDER;}else if (providerlist.contains(LocationManager.NETWORK_PROVIDER)){provider=LocationManager.NETWORK_PROVIDER;}else {//当前没有位置提供器可以选择Toast.makeText(MainActivity.this, "当前没有位置提供器可以选择", Toast.LENGTH_LONG).show();return;}//步骤三:将选择好的位置提供器传入getLastKnownLocation()方法中,返回一个Location对象,这个Location对象就包含了你所要的位置信息Location location=locationManager.getLastKnownLocation(provider);if (location!=null){//显示当前设备的地理位置showLocation(location);}//步骤五://当移动设备位置发生改变时,获取最新的位置信息;第一个参数:位置提供器;第二个参数:监听位置变化的时间间隔;//第三个参数为:监听位置变化的距离间隔;第四个参数:LocationListener监听器//这里就表示:每5秒就检测一下位置的变化情况,若移动距离大于10米,就会调用LocationListener的onLocationChanged()方法locationManager.requestLocationUpdates(provider, 5000, 10, locationListener);}@Overrideprotected void onDestroy() {super.onDestroy();if (locationManager!=null){locationManager.removeUpdates(locationListener);}}// 步骤四:创建 LocationListener 的实例LocationListener locationListener=new LocationListener() {@Overridepublic void onStatusChanged(String arg0, int arg1, Bundle arg2) {// TODO Auto-generated method stub}@Overridepublic void onProviderEnabled(String arg0) {// TODO Auto-generated method stub}@Overridepublic void onProviderDisabled(String arg0) {// TODO Auto-generated method stub}@Overridepublic void onLocationChanged(Location location) {// TODO Auto-generated method stub//这里为当位置发生改变时调用的方法showLocation(location);}};private void showLocation(final Location location){String currentposition=location.getLatitude()+"\n"+location.getLongitude();textView.setText(currentposition);}








0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 家里的光纤断了怎么办 车被树枝刮花了怎么办 货车撞断了树枝怎么办? 把光缆挖断了怎么办 光缆有外伤断了怎么办 不小心挖断移动光缆怎么办 派克服内胆掉毛怎么办 汉王电纸书怎么无法开机怎么办? 压力喷水壶坏了怎么办 行车记录仪后摄像头不清楚怎么办 蓝牙听歌声音小怎么办 对讲机时灵时不灵怎么办 黑凉粉煮稀了怎么办 轮速传感器坏了怎么办 黑魂3被入侵了怎么办 轮胎螺丝滑牙了怎么办 gta5ol寻宝任务退出了怎么办 gta5线上模式买房子之后怎么办 开摩托车忘记带安全头盔怎么办 gta不想要车了怎么办 空气滤芯进水会怎么办 车胎扎了个钉子怎么办 德罗索没导弹了怎么办 CF手雷包不能用怎么办 cfAK爆头碰到狙怎么办 玩cf网络延迟高怎么办 逆水寒装备分解错了怎么办 轴与孔间隙过大怎么办 小孩眼睛被打了怎么办 玩王者荣耀手机屏幕竖着怎么办 棉被被老鼠尿湿怎么办 打完子弹能下来怎么办 怪物猎人 弩子弹打完了怎么办 烤瓷牙龈发黑了怎么办 做彩超前喝水了怎么办 胸贴过敏红痒怎么办 芡粉里面有虫了怎么办 勾芡淀粉放多了怎么办 剁排骨没有好刀怎么办 硬币掉进档位里怎么办 魅族mx5手机太卡怎么办