坐标间距离计算

本篇讨论讨论如何根据已知两点的坐标,量算两点之间的球面距离。

首先,了解一些Android地理定位的基础知识,Android关于地理定位的API全部位于android.location包内,包括以下几个主要类:

LocationManager:本类提供访问定位服务的功能,也提供获取最佳定位提供者的功能。

LocationProvider:本类是定位提供者的抽象类。定位提供者具备周期性报告设备地理位置的功能。

LocationListener:提供地理位置信息发僧改变时的回调功能。需要事先在定位管理器中注册监听器对象。

Criteria:该类使得应用能够通过在LocationProvider中设置的属性来选择合适的定位提供者。

Geocoder:用处理地理编码和反向地理编码的类。

其次,了解使用地理定位的流程:

获取LocationManger的实例,在Android中,通过getSystemService()方法获得。然后注册一个更新函数locationManager.requestLocationUpdate(LocationManager.GPS_Provider,0,0,locationManager);

第一个参数是将当前Activity页面注册给定位服务提供者

第二个参数是回调监听的时间间隔

第三个参数是回调监听的距离间隔

第四个参数是实例化的位置监听

一、在配置(AndroidManifest.xml)文件中设置程序的访问权限

1、允许应用程序访问网络:

<users-permission android:name="android.permission.INTERNET" />

2、允许应用程序访问精确定位:

<users-permission android:name="android.permission.ACCESS_FINE_LOCATION /">

二、实现位置函数

1、获得LocationManager对象

LocationManager locationManager = (LocationManager)Distance.this.getSystemService(LOCATION_SERVICE);

2、绑定位置监听器

locationManager.requestLocationUpdate(LocationManager.GPS_PROVIDER,0,0,new myListener());

3、实现时间监听接口

private class myListener implements LocationListener

接口中有四个重要函数:

onLocationChanged(Location location):当坐标改变时出发此函数

onProviderDisabled(String provider):Provider禁用时出发此函数,如GPS关闭。

onProviderEnable(String provider):Provider启用时出发此函数,如GPS打开。

onStatusChanged(String provider,int status,Bundle extras):Provider的状态在可用、暂时不可用和无服务三个状态直接切换时出发此函数。

本篇在实现此接口中仅仅实现了onLocaitonChanged(Location location)。以下步骤都是在onLocationChanged(Location location)函数中实现

(1)设定目标点(桂林站)( 25.261182,110.282886 )

Double lat1 = 25.261182;

Double lng1 = 110.282886

(2)获取移动设备当前坐标

Double lat2 = location.getLatitude();

Double lng2 = location.getLongitude();

(3)计算获得两者的距离

float[] result = new float[1];

Location.distanceBetween(lat1,lng1,lat2,lng2,result);

主要代码如下:

 模拟器发送坐标界面

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值