我试图修改公式以获得2 lat或2 lon之间的距离,这将转换为x,y坐标。
下面的代码/公式(Haversine)给出了斜边(两个角度之间的直接距离)
然而,我只想使用纬度和光度来获得x,y坐标。经度。由于这些是直线,因此角度无关紧要。
一种方法是将两个纬度设置为零 - 这将给我经度距离(反之亦然) - 但是它需要我调用相同的函数3次:
1表示直接距离,1表示x距离,1表示y距离
有没有什么方法可以修改下面的代码来有效地计算所有3并将其作为数组返回[x_dis,y_dis,direct_dist]
{{1}}
答案 0 :(得分:0)
我能看到的最好方法是创建一个调用它三次并返回每个值的函数。
private static double[] getAlldistances(double lat1, double lat2, double long1, double long2, string unit){
double latDistance = distance(lat1, 0, lat2, 0, unit);
double longDistance = distance(0, long1, 0, long2, unit);
double directDistance = distance(lat1, long1, lat2, long2, unit);
return double int[3] {latDistance, longDistance, directDistance};
}
这应该使用您现有的功能而不会出现问题。通过将两个点的long或lat设置为0,我们可以计算出lats或longs之间的距离。代码未经测试,应视为伪代码。