java gps 距离计算_GPS坐标定位与距离计算

public classMainActivity extends Activity {//定位都要通过LocationManager这个类实现

privateLocationManager locationManager;privateString provider;

@SuppressWarnings("static-access")

@Overrideprotected voidonCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);//获取定位服务

locationManager =(LocationManager) getSystemService(Context.LOCATION_SERVICE);//获取当前可用的位置控制器

List list = locationManager.getProviders(true);if(list.contains(LocationManager.GPS_PROVIDER)) {//是否为GPS位置控制器

provider =LocationManager.GPS_PROVIDER;

}else if(list.contains(LocationManager.NETWORK_PROVIDER)) {//是否为网络位置控制器

provider =LocationManager.NETWORK_PROVIDER;

}else{

Toast.makeText(this, "请检查网络或GPS是否打开",

Toast.LENGTH_LONG).show();return;

}

Location location=locationManager.getLastKnownLocation(provider);if (location != null) {//获取当前位置,这里只用到了经纬度

String string = "纬度为:" + location.getLatitude() + ",经度为:"

+location.getLongitude();

}//绑定定位事件,监听位置是否改变//第一个参数为控制器类型第二个参数为监听位置变化的时间间隔(单位:毫秒)//第三个参数为位置变化的间隔(单位:米)第四个参数为位置监听器

locationManager.requestLocationUpdates(provider, 2000, 2,

locationListener);

}

LocationListener locationListener= newLocationListener() {

@Overridepublic void onStatusChanged(String arg0, intarg1, Bundle arg2) {//TODO Auto-generated method stub

}

@Overridepublic voidonProviderEnabled(String arg0) {//TODO Auto-generated method stub

}

@Overridepublic voidonProviderDisabled(String arg0) {//TODO Auto-generated method stub

}

@Overridepublic voidonLocationChanged(Location arg0) {//TODO Auto-generated method stub//更新当前经纬度

}

};//关闭时解除监听器

@Overrideprotected voidonDestroy() {//TODO Auto-generated method stub

super.onDestroy();if (locationManager != null) {

locationManager.removeUpdates(locationListener);

}

}

}


版权声明:本文为weixin_39605455原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。