private static double gps2d(double lat_a, double lng_a, double lat_b, double lng_b) { double d = 0; lat_a = lat_a * Math.PI / 180; lng_a = lng_a * Math.PI / 180; lat_b = lat_b * Math.PI / 180; lng_b = lng_b * Math.PI / 180; d = Math.sin(lat_a) * Math.sin(lat_b) + Math.cos(lat_a) * Math.cos(lat_b) * Math.cos(lng_b - lng_a); d = Math.sqrt(1 - d * d); d = Math.cos(lat_b) * Math.sin(lng_b - lng_a) / d; d = Math.asin(d) * 180 / Math.PI; if (lat_b >= lat_a) { if (d < 0) { d = 360 + d; } } else { d = 180 - d; } return d; }http://ideone.com/woZsDA
網路上找到的程式碼算出來的都是與縱軸的最小夾角,加了一點程式碼讓結果變為與北方的方位角
0 意見:
張貼留言