2

我有一個MapView,我正在使用地理點繪製建築物。目前,該應用程序通過檢查您的長/平方米並與建築物進行比較來確定與您最近的建築物;但我想要做的就是將我的設備指向建築物,並讓建築物信息彈出,即使建築物不是您最近的建築物。確定建設你的Android設備指向

我已經查找了如何做到這一點,我將使用從ORIENTATION傳感器偵聽器接收到的方位角方向。我無法使用該方位角方向,並確定是否攔截地圖上的其中一個建築物。

我會使用ORIENTATION傳感器和方位角來完成這個嗎?我將如何去實施這個?任何幫助感謝!

回答

0

想出解決辦法:

我用這個函數(輔助函數)來獲取軸承從我的當前位置到身邊最近的建築物(使用一組半徑):

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將其與您的手機所在的方位進行比較,以找出您指向的最近的建築物。