/// <summary> /// M /// </summary> /// <param name="coordinateInfo1"></param> /// <param name="coordinateInfo2"></param> /// <returns></returns> protected static double Distance(CoordinateInfo coordinateInfo1, CoordinateInfo coordinateInfo2) { var d = CoordinatePositioningHelper.GetDistance(coordinateInfo1, coordinateInfo2); return d * 1000; }
/// <summary> /// 已知A点 和距离差,求 B点经度 /// </summary> /// <param name="coordinate1">经纬度 A</param> /// <param name="km">距离</param> /// <returns></returns> public static CoordinateInfo GetLngDistance(CoordinateInfo coordinate1, double km) { if (coordinate1 == null) { return null; } //纬度90度 if (coordinate1.Latitude > 90 || coordinate1.Latitude < 90) { var lng2 = coordinate1.Longitude * 100000 - km * 1000 / Math.Cos(coordinate1.Latitude); return new CoordinateInfo(lng2 / 100000, coordinate1.Latitude); } return new CoordinateInfo(0, coordinate1.Latitude); }
/// <summary> /// 获取两点间距离 KM /// </summary> /// <param name="coordinate1"></param> /// <param name="coordinate2"></param> /// <returns></returns> public static double GetDistance(CoordinateInfo coordinate1, CoordinateInfo coordinate2) { if (coordinate1 == null || coordinate2 == null) { return 0; } return GetDistance(coordinate1.Longitude, coordinate1.Latitude, coordinate2.Longitude, coordinate2.Latitude); }