我使用Google地圖在Android上執行此操作。計算結點頻率
我有一個GeoPoint的陣列列表。 GeoPoint API is here。
List<GeoPoint> geoPoints;
現在我想檢查每個GeoPoint的頻率。 如果有一些相交(因爲其中兩個相等),我想打印出一個調試日誌。
Collections.frequency(geoPoints, geoPoints.get(i));
不回我正確的結果,它不檢查,如果兩個點相交......
我使用Google地圖在Android上執行此操作。計算結點頻率
我有一個GeoPoint的陣列列表。 GeoPoint API is here。
List<GeoPoint> geoPoints;
現在我想檢查每個GeoPoint的頻率。 如果有一些相交(因爲其中兩個相等),我想打印出一個調試日誌。
Collections.frequency(geoPoints, geoPoints.get(i));
不回我正確的結果,它不檢查,如果兩個點相交......
最有可能的,而與地圖上用手指繪製你將永遠不會有完全相同相同的兩個geopoints位置。
您可以使用的最簡單的方法是測試從一個地理點投影座標到另一個地理點投影座標的距離,如果該距離小於該值,則會考慮同一點。
例
projection.toPixels(geoArrList.get(i), pointToTest);
Point p1 = new Point();
for(int i=0; i<geoArrList.size(); i++){
projection.toPixels(geoArrList.get(i), p1);
int squareDistance = ((pointToTest.x - p1.x) * (pointToTest.x - p1.x) +
(pointToTest.y - p1.y) * (pointToTest.y - p1.y));
if(squareDistance < THRESOULD){
//same point
}
}
問候。
你是怎麼相交的? – Luis
當我有兩個相同的x和y座標的地理點,這意味着兩條線彼此相交 – krackmoe
你得到的全部錯誤。 'GeoPoint'沒有x,y座標,它們有經度和緯度。它們不代表線條,代表點,點不相交。他們是相同的或者他們是不同的。你肯定需要重新考慮你的問題... – Luis