我有一个应用程序,TextView
它可以找到您的位置,当您移动时,值会TextView
发生变化。
我想知道我该怎么做才能注册第一个位置,然后在 5 分钟后查找该位置。
例如:
min 0
LAT 000000
LONG 000000
( 保存 )
min 5
LAT 1111111
LONG 111111
如果 min0 == min 5
...
综上所述,我想在 5 分钟后比较 2 个字符串(开始时的纬度和经度)和经度和经度。
任何建议将不胜感激。
我有一个应用程序,TextView
它可以找到您的位置,当您移动时,值会TextView
发生变化。
我想知道我该怎么做才能注册第一个位置,然后在 5 分钟后查找该位置。
例如:
min 0
LAT 000000
LONG 000000
( 保存 )
min 5
LAT 1111111
LONG 111111
如果 min0 == min 5
...
综上所述,我想在 5 分钟后比较 2 个字符串(开始时的纬度和经度)和经度和经度。
任何建议将不胜感激。
此链接应服务于您的目的;
通过distanceTo or distanceBetween
。您可以根据纬度和经度创建 Location 对象:
Location location = new Location("");
location.setLatitude(lat);
location.setLongitude(lon);
我遇到的另一个解决方案,
有一个标准公式(Haversine)(也就是说,它适用于地球上的任何经度/纬度),但性能很慢,因为它需要 7 个三角函数和 2 个平方根。
如果您的几个点相距不远,您可以使用一个approximate
版本(Equirectangular),它要快得多。
// Approximate Equirectangular -- works if (lat1,lon1) ~ (lat2,lon2)
double x = (lon2 - lon1) * Math.cos((lat1 + lat2) / 2);
double y = (lat2 - lat1);
double d = Math.sqrt(x * x + y * y) * R; // where R is the earth's Radius
// R is 6,371 km
希望有帮助。
要比较两个字符串,请使用 String.equals(other String),http://docs.oracle.com/javase/6/docs/api/java/lang/String.html#equals(java.lang.Object)但是位置和字符串格式必须相同。
如果您想在其上放置某种缓冲区,因此位置不必完全相同,您可以解析字符串并将 Lat 和 Long 保存为整数,然后在触发 textview 之前将其与您的增量进行比较更新。