请教了各位了。。。
|  |      1mhycy      2015-05-28 11:27:36 +08:00 火星坐标是啥? 另外这个需求确定不是直角三角求斜边长? | 
|  |      2mhycy      2015-05-28 11:29:47 +08:00 补充: 如果是加偏坐标要求距离的话, 因为加偏是非线性的,所以在没有转换成实际坐标之前, 无法运算 | 
|  |      5Lilacs OP | 
|  |      6mhycy      2015-05-28 11:48:55 +08:00 | 
|  |      7fangjinmin      2015-05-28 12:33:15 +08:00 假设是2维坐标的话,基点坐标为(a1,b1),目标坐标为(a2,b2),判断的条件为 (|a1-a2|绝对值的平方+|b1-b2|的绝对值的平方)再开平方< X 米 | 
|  |      8mhycy      2015-05-28 12:45:32 +08:00 @fangjinmin 应该需要考虑,这是一个球面坐标... | 
|  |      9choury      2015-05-28 12:58:45 +08:00 via Android @fangjinmin 不能这么算吧,这个加偏函数不是线性的,我觉得火星坐标是不能直接计算的 | 
|  |      10processzzp      2015-05-28 13:06:56 +08:00 via Android @mhycy 这东西现在算不上机密了,几年前就有人(具体是谁忘了,当时互联网还不怎么发达)用搜狗还是高德的API把实际坐标--火星坐标的对应关系一点点爬出来了。 吐槽:这玩意鸟用没有,就增加了一堆麻烦,真想打兔子的机构早就研究得一清二楚了,反而害苦了一群开发者,不知道浪费了多少人力 | 
|  |      11Lilacs OP 换算一下思路,就是两个坐标点的距离,结果换算为米。在火星坐标系内。 | 
|  |      12GhostFlying      2015-05-28 13:34:24 +08:00 via Android 看你精度要求,转换回 wgs 84 目前只看到二分逼近的做法,10次一般能把误差控制在 0.5 米左右,如果更高,只能增加迭代次数。 但是如果小范围精度要求不高的话,甚至没必要转换回来,直接火星坐标算就好了。 | 
|  |      13wesley      2015-05-28 13:41:53 +08:00 google 球面2点记录公式 | 
|  |      14wesley      2015-05-28 13:42:10 +08:00 球面2点距离公式 | 
|  |      15Lilacs OP | 
|  |      16Lilacs OP 到最后我是这样算的,在坐标中1米 = 0.00001 public static boolean isArrive(double lat, double lng, double targetLat, double targetLng, int scope) { double latDistance = Math.abs(lat - targetLat); double lngDistance = Math.abs(lng - targetLng); double targetScope = scope * 0.00001; if(latDistance < targetScope && lngDistance < targetScope) { return true; } return false; } 如果坐标范围过大就会有问题,但是我使用的基本都在北京。 纬度在赤道附近0.00001 > 1米 在极点附近 基本 = 0 |