[quote=引用 3 楼 tjcyjd 的回复:] [quote=引用 1 楼 xie609 的回复:] 这个方法 用于计算两个点之间的距离 private static double distance(double lon1, double lat1, double lon2, double lat2) { double pi = 0.0174532925199432944; // PI / 180; double t5 = Math.sin(lat1 * pi) * Math.sin(lat2 * pi) + Math.cos(lat1 * pi) * Math.cos(lat2 * pi) * Math.cos((lon1 - lon2) * pi); return (Math.atan(-t5 / Math.sqrt(-t5 * t5 + 1)) + 2 * Math.atan(1)) * 3437.74677 * 1.1508 * 1.6093470878864446 * 1000; }
[quote=引用 1 楼 xie609 的回复:] 这个方法 用于计算两个点之间的距离 private static double distance(double lon1, double lat1, double lon2, double lat2) { double pi = 0.0174532925199432944; // PI / 180; double t5 = Math.sin(lat1 * pi) * Math.sin(lat2 * pi) + Math.cos(lat1 * pi) * Math.cos(lat2 * pi) * Math.cos((lon1 - lon2) * pi); return (Math.atan(-t5 / Math.sqrt(-t5 * t5 + 1)) + 2 * Math.atan(1)) * 3437.74677 * 1.1508 * 1.6093470878864446 * 1000; }
[quote=引用 4 楼 deltatang 的回复:] 知道两个点的距离怎么计算了,做一次对所有好友的迭代,一一计算距离不就出来了? 或者说,你是考虑性能问题,好友太多,距离计算量太大? 比如R-tree?
[quote=引用 7 楼 xie609 的回复:] [quote=引用 3 楼 tjcyjd 的回复:] [quote=引用 1 楼 xie609 的回复:] 这个方法 用于计算两个点之间的距离 private static double distance(double lon1, double lat1, double lon2, double lat2) { double pi = 0.0174532925199432944; // PI / 180; double t5 = Math.sin(lat1 * pi) * Math.sin(lat2 * pi) + Math.cos(lat1 * pi) * Math.cos(lat2 * pi) * Math.cos((lon1 - lon2) * pi); return (Math.atan(-t5 / Math.sqrt(-t5 * t5 + 1)) + 2 * Math.atan(1)) * 3437.74677 * 1.1508 * 1.6093470878864446 * 1000; }
知道两个点的距离怎么计算了,做一次对所有好友的迭代,一一计算距离不就出来了? 或者说,你是考虑性能问题,好友太多,距离计算量太大? 比如R-tree?
这个方法 用于计算两个点之间的距离 private static double distance(double lon1, double lat1, double lon2, double lat2) { double pi = 0.0174532925199432944; // PI / 180; double t5 = Math.sin(lat1 * pi) * Math.sin(lat2 * pi) + Math.cos(lat1 * pi) * Math.cos(lat2 * pi) * Math.cos((lon1 - lon2) * pi); return (Math.atan(-t5 / Math.sqrt(-t5 * t5 + 1)) + 2 * Math.atan(1)) * 3437.74677 * 1.1508 * 1.6093470878864446 * 1000; }
67,513
社区成员
225,879
社区内容
加载中
试试用AI创作助手写篇文章吧