1

我正在使用 AR Toolkit,但我不确定它是否运行良好,或者我的 iPhone 是否有问题。

当我尝试定位一个点时,我会在其右侧看到它的标签。它从不指向那个位置。你有同样的问题吗?

换句话说,当我在 iPhone 的屏幕上看到我试图指向的地方时。我看到那个地方和它的标签在它的右边。

我不确定我的指南针是否有问题或工具包无法正常工作。

有什么线索吗?

4

1 回答 1

1

我已经修改了我的计算,参考链接的方向

计算两个 CLLocationCoordinate2D 之间的方位

double poiLon = coordinate.coordinateGeoLocation.coordinate.longitude;
double poiLat = coordinate.coordinateGeoLocation.coordinate.latitude;
double a = poiLon - self.currentLocation.coordinate.longitude;
double b = poiLat - self.currentLocation.coordinate.latitude;

poiLon=degreesToRadians(coordinate.coordinateGeoLocation.coordinate.longitude);
poiLat=degreesToRadians(coordinate.coordinateGeoLocation.coordinate.latitude);
double radCurrLatPoi=degreesToRadians(self.currentLocation.coordinate.latitude);
double radCurrLonPoi=degreesToRadians(self.currentLocation.coordinate.longitude);

a=sin(poiLon-radCurrLonPoi)*cos(poiLat);
b=cos(radCurrLatPoi)*sin(poiLat)-sin(radCurrLatPoi)*cos(poiLat)*cos(poiLon-radCurrLonPoi);

//sin(tLng-fLng)*cos(tLat), cos(fLat)*sin(tLat)-sin(fLat)*cos(tLat)*cos(tLng-fLng)
double alpha = 180.0 * atan2(a, b) / M_PI;

if (alpha < 0.0)
    alpha += 360.0;
else if (alpha > 360.0)
    alpha -= 360.0;

CLLocationDirection theHeading = self.currentHeading.trueHeading;
double deltaOrient = alpha - theHeading;
 CGFloat X = 320.0/2.0 + (deltaOrient * 320.0f / 30.0);//x position

注意: poiLon,poiLat -from 在此上下文中的位置 radCurrLatPoi,radCurrLonPoi-To 在此上下文中的位置

这在某些方面效果很好,在这种特定情况下不匹配

我现在的位置:18.551861,73.942108

我的兴趣点:73.943202,18.552456 73.943693,18.552754 73.943275,18.552687

我认为这可能是因为我完成了 360 度角...任何建议

于 2012-06-19T09:40:39.107 回答