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
- Android 基于位置的开发与百度地图(一)
- Android 基于位置的开发与百度地图 (二)
- Android基于位置的服务开发,百度地图的使用
- Android百度地图开发(一):地图下载与配置
- Android实战--基于位置的服务(获取自己位置的经纬度+百度地图)
- 基于Android的百度地图开发
- android 开发:仿照微信 发送本人位置(基于百度地图)(前篇)
- android 开发:仿照微信 发送本人位置(基于百度地图)(后篇)
- android百度地图开发V4.5最新版(4)---显示自己的位置在地图上
- Android开发之百度地图的使用(一)
- Android 百度地图开发(一)
- Android开发---百度地图(一)
- Android百度地图开发(一)
- Android百度地图开发(一)
- Android百度地图开发(一)
- android 百度地图开发 一
- Android 百度地图开发(一)
- Android 基于百度地图开发定位以及获取当前详细地址(一)
- 【iOS开发-32】iOS程序真机调试需要购买调试证书怎么办?
- C++ 虚函数内存布局学习笔记
- Tomcat8.exe一闪而过问题解决
- XML语言简介
- puppet结合Mcollective + activemq
- Android 基于位置的开发与百度地图(一)
- 使用extern声明结构体遇到的问题及解决办法
- HDU 1074 动态规划,状态压缩
- Wallpaper
- typedef和#define的用法与区别
- AndroidManifest.xml中的<application标签中的android:name属性介绍
- 别爱“无私”的人
- Oracle 读写-只读表空间回复详解
- Android Activity 常用功能设置(全屏、横竖屏等)