想出解決辦法:
我用這個函數(輔助函數)來獲取軸承從我的當前位置到身邊最近的建築物(使用一組半徑):
public static float calculateBearing(GeoPoint before, GeoPoint after) {
Point pBefore = location2Point(before);
Point pAfter = location2Point(after);
float res = -(float) (Math.atan2(pAfter.y - pBefore.y, pAfter.x
- pBefore.x) * 180/Math.PI) + 90.0f;
if (res < 0)
return res + 360.0f;
else
return res;
}
public static Point location2Point(GeoPoint aLocation) {
return new Point((int) (aLocation.getLongitudeE6()),
(int) (aLocation.getLatitudeE6()));
}
一旦你擁有你身邊的建築物的方位,然後您必須使用TYPE_ORIENTATION傳感器的SensorEventListener將其與您的手機所在的方位進行比較,以找出您指向的最近的建築物。