`
xuyuanshuaaa
  • 浏览: 388322 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

android的位置服务和地图

阅读更多
实现位置服务的技术有GPS和google网络地图,将这些不同的定位技术统称为LBS,
LocationManager 有两种定位,GPS和NETWORK
locationProvider
通过他们可以得到某人的当前位置或者进行位置跟踪,和设定区域提醒功能。
1     示例:获取位置信息
androidmanifest.xml
gps方法
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
NETWORK方式
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
定位用户的位置:
//得到LocationManager对象
LocationManager locationManager = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
//设定定位方式为GPS_PROVIDER,得到位置对象Location
Location location = locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER);
double lat = location.getLatitude();
double lng = location.getLongitude();
latLongString = "纬度:" + lat + "\n经度:" + lng;
myLocationText.setText("您当前的位置是:\n" +latLongString);
设定模拟器 显示位置信息。

处理制定定位方式以外还可以使用Criteria让系统选择最符合条件的LOCATIONPROVIDER.
Criteria criteria = new Criteria();
        criteria.setAccuracy(Criteria.ACCURACY_FINE);
        criteria.setAltitudeRequired(false);
        criteria.setBearingRequired(false);
        criteria.setCostAllowed(true);
        criteria.setPowerRequirement(Criteria.POWER_LOW);
        String provider = locationManager.getBestProvider(criteria, true);
可以同时存在多个,根据相关程度系统自行决定
可以用下个方法返回所有与查询条件想符合的locationProvider
List<String>  matchProvider = locationManager.getProvider(criteria, false);

2    跟踪位置变化
设定监听器 locationListener
locationManager.requestLocationUpdates(provider, 2000, 10,
        		locationListener);
    }
   private final LocationListener locationListener = new LocationListener() {
    	public void onLocationChanged(Location location) {
    	updateWithNewLocation(location);
    	}
    	public void onProviderDisabled(String provider){
    	updateWithNewLocation(null);
    	}
    	public void onProviderEnabled(String provider){ }
    	public void onStatusChanged(String provider, int status,
    	Bundle extras){ }
    };
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics