这里我是通过脚本从服务器上下载地点数据的,现在我想使用毕达哥拉斯按距离的升序对select s.value as Parent, tb2.lastlevel
into ##tmp_getAllLastLevel
from [DWH-INF].[center].[dbo].[IFIRView_NeginTitleTotal] tb2 join
dbo.Split(',', @value) s
on s.value in (tb2.lastlevel, tb2.level1, tb2.level2, tb2.level3, tb2.level4, tb2.level5, tb2.level6, tb2.level7, tb2.level8);
的列表进行排序
Place
答案 0 :(得分:1)
您可以像这样
Collections.sort(pl, new Comparator<Place>() {
public int compare(Place pl1, Place pl2) {
// Write your logic here.
return Math.sqrt(pl1.longitude * pl1.longitude + pl1.latitude * pl1.latitude) <
Math.sqrt(pl2.longitude * pl2.longitude + pl2.latitude * pl2.latitude);
}});
答案 1 :(得分:0)
您可以使用hypot()
返回距java.lang.Math
类2点的距离:
Collections.sort(pl, new Comparator<Place>() {
public int compare(Place pl1, Place pl2) {
Double d1 = Math.hypot(Double.parseDouble(p1.getLongitude()), Double.parseDouble(p1.getLatitude()));
Double d2 = Math.hypot(Double.parseDouble(p2.getLongitude()), Double.parseDouble(p2.getLatitude()));
return d1.compareTo(d2);
}
});