我在自定義模型中使用lat和lng數組。我想對陣列進行排序,以使距離我的位置最小距離位於頂部位置等等。根據其地理位置對陣列進行排序
這是我曾嘗試
myLocation = new Location("");
myLocation.setLatitude(Double.valueOf(MyApplication.getInstance().getLatitude()));
myLocation.setLongitude(Double.valueOf(MyApplication.getInstance().getLongitude()));
Collections.sort(pings, new DistanceComparator());
private class DistanceComparator implements java.util.Comparator<PingModel>
{
@Override
public int compare(PingModel lhs, PingModel rhs)
{
Location lhsLocation = new Location("");
lhsLocation.setLatitude(Double.valueOf(lhs.latloc));
lhsLocation.setLongitude(Double.valueOf(lhs.lngloc));
Location rhsLocation = new Location("");
rhsLocation.setLatitude(Double.valueOf(lhs.latloc));
rhsLocation.setLongitude(Double.valueOf(lhs.lngloc));
return (int)rhsLocation.distanceTo(myLocation) - (int)lhsLocation.distanceTo(myLocation);
}
}
結果不知道什麼樣的排序它正在做,但它不是按照距離。
你可以把什麼是'坪'和distanceTo() –
坪是一個自定義模型的數組,而distanceTo是一個常規的谷歌定位函數,計算距離? –