2014-07-07 239 views
-1

我想,当我点击按钮将其保存与共享偏好协调GPS当前位置,也想比较,全球定位系统与新的坐标时的坐标位置发生变化(onLocationChanged事件)是谁做到这一点的最好办法?比较当前GPS(经纬度)点保存GPS(经纬度)点?

+0

是什么?你尝试,你与它有什么并发症? – tyczj

+0

获取当前位置,得到了原来的位置,并使用减法来看看他们是如何发生太大变化的。如果超过某个阈值,请将其计为已更改。 Location.distanceTo可能有所帮助。 –

+0

为什么反对票? –

回答

1

你或许可以用下面的SQL Oracle函数计算距离:

create or replace 
FUNCTION CALC_DISTANCE (Lat1 IN NUMBER, 
            Lon1 IN NUMBER, 
            Lat2 IN NUMBER, 
            Lon2 IN NUMBER) RETURN NUMBER IS 
-- Convert degrees to radians 
DEGTORAD NUMBER := 57.29577951; 
Radius NUMBER := 6387.7; 

BEGIN 
    RETURN(NVL(Radius,0) * ACOS((sin(NVL(Lat1,0)/DegToRad) * SIN(NVL(Lat2,0)/DegToRad)) + 
     (COS(NVL(Lat1,0)/DegToRad) * COS(NVL(Lat2,0)/DegToRad) * 
     Cos(Nvl(Lon2,0)/Degtorad - Nvl(Lon1,0)/ Degtorad)))); 
END; 

OR

你或许可以如下面的sqlite的分贝使用选择查询,并得到一个输出

String selectQuery = "SELECT (NVL(6387.7,0) * ACOS((sin(NVL(Lat1,0)/57.29577951) * SIN(NVL(Lat2,0)/57.29577951)) + 
      (COS(NVL(Lat1,0)/57.29577951) * COS(NVL(Lat2,0)/57.29577951) * 
      Cos(Nvl(Lon2,0)/57.29577951 - Nvl(Lon1,0)/ 57.29577951))))"; 
1

可以使用Location'sdistanceTo(Location dest)方法来测量两个位置之间米的距离。

Developer guide

返回此位置和 给定位置之间米的大致距离。距离使用WGS84椭球定义。